Exempelrepo
En ny organisation har inget att skanna förrän den pushar kod. För att se vad säkerhetsfunktionerna gör innan dess kan en ägare av organisationen kopiera fremforges säkerhetsexempel till organisationen: ett litet repo med avsiktligt föråldrade beroenden, så att fynd, bedömningar av nåbarhet och en pull request med en säkerhetsfix dyker upp inom några minuter.
Skapa det
På Säkerhet › Översikt (/<org>/_admin/security/overview) har punkten Skanningstäckning i checklistan för att komma igång en knapp, Prova med ett exempelrepo. Organisationens ägare kan använda den; för revisorer avvisas den, som varje ändring.
- Den skapar
<org>/fremforge-security-sample, ett privat repo, och checkar in exemplet i det i en enda commit avfremforge. Repot skannas så snart det har skapats. - En organisation kan ha ett exempelrepo. Klickar du igen får du veta att det redan finns.
- Om ett repo som heter
fremforge-security-sampleredan finns skapas ingenting; byt namn på eller ta bort det repot först. - Varje försök finns i granskningsloggen som
code-security.sample_repo.created, med utfallet.
Vad det innehåller
Innehållet kommer från en fast, granskad commit av fremforges eget exempel. Det består av manifest, låsfiler och några rader kod som anropar de sårbara funktionerna. Beroendenas egen källkod ingår inte. Ingenting i det byggs, körs eller driftsätts: det finns inga arbetsflöden och ingen Dockerfile. Det är MIT-licensierat, och dess README nämner de säkerhetsmeddelanden det är tänkt att visa:
| Ekosystem | Paket | Version | Säkerhetsmeddelande | Nåbarhet |
|---|---|---|---|---|
| npm | lodash | 4.17.20 | CVE-2021-23337 (kommandoinjektion i template) | nåbar: exemplet anropar template |
| npm | lodash | 4.17.20 | CVE-2020-28500 (ReDoS) | ingen anropsväg |
| npm | minimist | 1.2.5 | CVE-2021-44906 (prototype pollution) | ingen anropsväg: listat, importeras aldrig |
| Go | golang.org/x/text | v0.3.5 | GO-2021-0113 / CVE-2021-38561 (language.ParseAcceptLanguage) | nåbar: exemplet anropar den |
| PyPI | PyYAML | 5.3.1 | CVE-2020-14343 (kodkörning genom full_load) | nåbar på importnivå |
De låsta versionerna har några fler säkerhetsmeddelanden än dessa. Vart och ett har en åtgärdad version, så Öppna fix-PR fungerar för alla. Om din organisation har automatiska säkerhetsfixar påslagna öppnas pull requests med fixar på exemplet av sig själva, precis som på vilket repo som helst.
Bara i konsolen
Fynd i exempelrepot visas i konsolen och i API:t, som alla andra. De lämnar aldrig fremforge:
- inget mejl med säkerhetsvarning, varken direkt eller i den dagliga sammanfattningen, och inget om dem i den veckovisa säkerhetssammanställningen;
- ingen varnings-webhook och ingen SIEM-händelse, inklusive de granskningshändelser som härleds från fynd (inläsning av skanningar, träffar, SLA-överträdelser);
- räknas aldrig i anonyma räkningar, och en organisation vars enda repo är exemplet bidrar inte alls till dem;
- räknas aldrig i fremforges egna mätningar av sina säkerhetsfunktioner.
Exemplet räknas inte heller som skanningstäckning: punkten i checklistan kräver fortfarande ett eget repo.
När det slutar vara ett exempel
Exemplet är fremforges innehåll bara så länge dess standardbranch står där fremforge lämnade den. Så snart någon pushar till, eller mergar in i, dess standardbranch (att merga en av dess fix-pull requests räknas) blir det ett vanligt repo: från och med då skickar dess fynd varningar, webhooks och SIEM-händelser, och räknas i anonyma räkningar och som skanningstäckning, som alla andra repon. Detta registreras i granskningsloggen som code-security.sample_repo.graduated. Pushar till andra brancher, till exempel en fix-pull requests branch, ändrar ingenting.
Ta bort det
Ta bort repot i Forgejo när du är klar. fremforge märker borttagningen och glömmer exemplet, så du kan skapa ett nytt senare. Att byta namn på det gör att det förblir ett exempel.