Hoppa till huvudinnehållet

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 av fremforge. 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-sample redan 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:

EkosystemPaketVersionSäkerhetsmeddelandeNåbarhet
npmlodash4.17.20CVE-2021-23337 (kommandoinjektion i template)nåbar: exemplet anropar template
npmlodash4.17.20CVE-2020-28500 (ReDoS)ingen anropsväg
npmminimist1.2.5CVE-2021-44906 (prototype pollution)ingen anropsväg: listat, importeras aldrig
Gogolang.org/x/textv0.3.5GO-2021-0113 / CVE-2021-38561 (language.ParseAcceptLanguage)nåbar: exemplet anropar den
PyPIPyYAML5.3.1CVE-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:

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.