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 frafremforge. 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:
| Økosystem | Pakke | Versjon | Sårbarhetsvarsel | Nåbarhet |
|---|---|---|---|---|
| npm | lodash | 4.17.20 | CVE-2021-23337 (kommandoinjeksjon i template) | nåbar: eksempelet kaller template |
| npm | lodash | 4.17.20 | CVE-2020-28500 (ReDoS) | ingen kallsti |
| npm | minimist | 1.2.5 | CVE-2021-44906 (prototype pollution) | ingen kallsti: oppført, aldri importert |
| Go | golang.org/x/text | v0.3.5 | GO-2021-0113 / CVE-2021-38561 (language.ParseAcceptLanguage) | nåbar: eksempelet kaller den |
| PyPI | PyYAML | 5.3.1 | CVE-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:
- ingen e-post med sikkerhetsvarsel, verken umiddelbart eller i den daglige oppsummeringen, og ingenting om dem i den ukentlige sikkerhetsoppsummeringen;
- ingen varselwebhook og ingen SIEM-hendelse, heller ikke revisjonshendelsene som utledes fra funn (innlesing av skanninger, treff, SLA-brudd);
- telles aldri i anonyme tellinger, og en organisasjon der eksempelet er det eneste repositoryet, bidrar ikke med noe til dem;
- telles aldri i fremforges egne målinger av sikkerhetsfunksjonene.
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.