Gå til hovedinnhold

Eksempelrepository

En ny organisasjon har ingenting å skanne før den pusher kode. For å se hva sikkerhetsfunksjonene gjør før det, kan en eier av organisasjonen kopiere fremforges sikkerhetseksempel inn i organisasjonen: et lite repository med bevisst utdaterte avhengigheter, slik at funn, vurderinger av nåbarhet og en pull request med en sikkerhetsrettelse dukker opp i løpet av minutter.

Opprett det

På Sikkerhet › Oversikt (/<org>/_admin/security/overview) har punktet Skannedekning i oppstartssjekklisten en knapp, Prøv det på et eksempelrepository. Eiere av organisasjonen kan bruke den; for revisorer avvises den, som alle endringer.

  • Den oppretter <org>/fremforge-security-sample, et privat repository, og committer eksempelet inn i det i én commit fra fremforge. Repositoryet skannes så snart det er opprettet.
  • En organisasjon kan ha ett eksempelrepository. Klikker du igjen, får du beskjed om at det allerede finnes.
  • Finnes det allerede et repository som heter fremforge-security-sample, opprettes ingenting; gi det repositoryet nytt navn eller slett det først.
  • Hvert forsøk havner i revisjonsloggen som code-security.sample_repo.created, med utfallet.

Hva det inneholder

Innholdet kommer fra en fast, gjennomgått commit av fremforges eget eksempel. Det inneholder manifester, låsefiler og noen få kodelinjer som kaller de sårbare funksjonene. Avhengighetenes egen kildekode er ikke med. Ingenting i det bygges, kjøres eller rulles ut: det finnes ingen workflower og ingen Dockerfile. Det er lisensiert under MIT, og README-filen navngir sårbarhetsvarslene det er ment å vise:

ØkosystemPakkeVersjonSårbarhetsvarselNåbarhet
npmlodash4.17.20CVE-2021-23337 (kommandoinjeksjon i template)nåbar: eksempelet kaller template
npmlodash4.17.20CVE-2020-28500 (ReDoS)ingen kallsti
npmminimist1.2.5CVE-2021-44906 (prototype pollution)ingen kallsti: oppført, aldri importert
Gogolang.org/x/textv0.3.5GO-2021-0113 / CVE-2021-38561 (language.ParseAcceptLanguage)nåbar: eksempelet kaller den
PyPIPyYAML5.3.1CVE-2020-14343 (kodekjøring via full_load)nåbar på importnivå

De låste versjonene har noen flere sårbarhetsvarsler enn disse. Hvert av dem har en rettet versjon, så Åpne PR med rettelse fungerer for alle. Har organisasjonen din slått på automatiske sikkerhetsrettelser, åpnes pull requests med rettelser på eksempelet av seg selv, slik de ville gjort på et hvilket som helst repository.

Bare i konsollen

Funn i eksempelrepositoryet vises i konsollen og API-et, som alle andre funn. De forlater aldri fremforge:

Eksempelet telles heller aldri som skannedekning: sjekklistepunktet ber fortsatt om et repository av ditt eget.

Når det slutter å være et eksempel

Eksempelet er fremforges innhold bare så lenge standardbranchen står der fremforge forlot den. Så snart noen pusher til eller merger inn i standardbranchen (å merge en av pull requestene med rettelser teller også), blir det et vanlig repository: fra da av sender funnene varsler, webhooker og SIEM-hendelser, og de telles i anonyme tellinger og som skannedekning, som for alle andre repositoryer. Dette registreres i revisjonsloggen som code-security.sample_repo.graduated. Push til andre brancher, for eksempel branchen til en pull request med en rettelse, endrer ingenting.

Fjern det

Slett repositoryet i Forgejo når du er ferdig. fremforge merker slettingen og glemmer eksempelet, så du kan opprette et nytt senere. Gir du det nytt navn, forblir det et eksempel.