Rapport
Slik leser du en sikkerhetsrapport
En sikkerhetsrapport er skrevet for to lesere samtidig, og du er sannsynligvis den ene av dem. Utvikleren skal kunne gjenskape hvert funn. Du skal kunne bestemme hva som gjøres først, hva som kan vente, og hva som skal koste penger.
Problemet er at rapporten ser ut som om den allerede er sortert for deg. Den er sortert etter alvorlighetsgrad, og alvorlighetsgrad er ikke det samme som rekkefølge.
Denne siden er en lesehjelp, og den gjelder uansett hvem som skrev rapporten.
Oppdatert · kildene kontrollert · skrevet av Erik Nilsen
Les i denne rekkefølgen
Ikke begynn på funn nummer én. Begynn med å finne ut hva som faktisk ble undersøkt, ellers vurderer du en liste uten å vite hva den er en liste over.
- Sammendraget. Hva ble testet, hva ble funnet, hva mener den som testet at haster.
- Dekningen. Hva var i omfanget, hva var utenfor, hva ble ikke rukket, og hva ble blokkert underveis.
- Delen om hva som holdt. Hvilke kontroller stoppet faktisk noe.
- Funnene, fra toppen.
- Rekkefølgen for utbedring, hvis rapporten har en. Den er sjelden identisk med alvorlighetsrekkefølgen, og der den ikke er det, er begrunnelsen verdt å lese.
Hvorfor akkurat den rekkefølgen
Leser du funnene først, blir det høyeste tallet det du husker, og det høyeste tallet er ikke nødvendigvis det som betyr mest hos dere.
Leser du dekningen først, vet du med en gang om «ingen funn» i et område betyr at det ble undersøkt og var i orden, eller at det aldri ble nådd. De to ser helt like ut i en ren funnliste, og bare den ene er en god nyhet.
CVSS-tallet er ikke en prioriteringsliste
De fleste rapporter oppgir CVSS, en skala fra 0 til 10 som beskriver hvor alvorlig en sårbarhet er i seg selv. FIRST, som forvalter standarden, skriver selv at grunnskåren «should not be used alone to assess risk», og at den «represents only the intrinsic characteristics of a vulnerability and is independent of any factor associated with threat or the computing environment».
Med andre ord vet tallet ingenting om dere. Det vet ikke om systemet er nåbart fra internett, hva som ligger i det, om noen utnytter sårbarheten ute i verden i dag, eller hva det koster å fikse.
Standarden har egne deler for nettopp dette, Environmental og Threat, som justerer skåren etter miljø og trusselbilde. En rapport som bare oppgir grunnskåren har oppgitt et tall som gjelder alle, ikke dere, så det er verdt å spørre om de to andre er vurdert.
En 9.8 på et testsystem ingen kan nå kan godt havne under en 5.3 på innloggingssiden.
Det som faktisk avgjør rekkefølgen
Fem spørsmål som flytter et funn opp eller ned, uavhengig av hvilket tall som står ved siden av det.
- Er den nåbar fra internett uten innlogging, eller må du allerede være inne
- Hva ligger på den andre siden: kundedata, betaling, administratortilgang, eller et testmiljø med oppdiktede data
- Utnyttes den ute i verden nå, eller er den foreløpig teoretisk
- Hvor lang tid tar det å lukke den, og finnes det et strakstiltak som holder i mellomtiden
- Forsvinner flere funn hvis dere retter én ting
Fem spørsmål å stille om hvert høyt funn
Still dem til den som skrev rapporten. Det er en del av leveransen og ikke en klage, og svarene er det som gjør listen om til en plan.
- Hvem kan utnytte dette, og hva må de ha på forhånd. En hvilken som helst person på internett, en innlogget kunde, eller noen som allerede er inne på nettverket.
- Hva kommer de til når det er utnyttet. Hvilke data, hvilke kontoer, hvilke andre systemer.
- Har dere faktisk gjort det, eller er det utledet. Be om å få pekt på dokumentasjonen for akkurat dette funnet.
- Hva er det minste vi kan gjøre i dag, og hva er den riktige løsningen. De to er ofte forskjellige, og begge er nyttige.
- Hvordan ser vi at det er borte, og etterprøver dere det.
Hva svarene forteller deg
Den som ikke kan svare på spørsmål én og tre om sitt eget funn, har ikke bekreftet det. Det er helt greit at et funn er en mistanke, så lenge rapporten sier at det er en mistanke. Det er ikke greit at en mistanke er presentert som en observasjon.
Spørsmål fire er det som oftest sparer penger. Mange alvorlige funn har et strakstiltak som tar en time og fjerner det meste av risikoen, mens den riktige løsningen tar et kvartal. Da kan begge deler planlegges, i stedet for at alt venter på den store fiksen.
Spørsmål fem er det som skiller en rapport fra en jobb som er gjort. Uten etterprøving vet dere at noe var galt, ikke at det er rettet.
Håndfunn eller verktøykopi
Begge deler hører hjemme i en rapport. Automatiske verktøy finner ting mennesker overser, og en rapport uten dem er dårligere. Forskjellen er at et verktøyfunn er en påstand, mens et bekreftet funn er en observasjon, og de skal ikke leses likt.
Tegn på at et funn er kopiert rett fra et verktøy:
- Beskrivelsen kunne stått i hvilken som helst rapport til hvilken som helst kunde
- Dokumentasjonen viser verktøyets utdata, ikke noe fra deres system
- Tiltaksteksten er generell og nevner verken deres oppsett, kode eller konfigurasjon
- Det samme avsnittet går igjen på flere funn
- Alvorlighetsgraden er identisk med verktøyets, uten et ord om hva den betyr hos dere
- En liste med CVE-er for komponenter dere bruker, uten en vurdering av om dere faktisk bruker den sårbare delen
Et verktøyfunn er ikke verdiløst. Det skal bare ikke presenteres som bekreftet, og ikke koste som om det var det.
Tegn på at noen faktisk har vært der
Funnet navngir deres endepunkt, deres felt eller deres id. Dokumentasjonen inneholder forespørselen og svaret. Det står hvorfor nettopp deres oppsett gjør det mulig, og ikke bare hva sårbarhetsklassen heter. Tiltaket peker på noe konkret hos dere.
Og det mest talende: falske positive står oppført som avvist, med en begrunnelse. Noen har altså gått gjennom det verktøyene foreslo og tatt stilling til hvert punkt. En rapport som bare tar med det som ser ut som funn, har hoppet over den jobben.
Vil du ha noe å sammenligne med, ligger eksempelrapporten på denne siden. Der står funnene med forespørsel og svar, og vedlegget skiller mellom kjente CVE-er i det som er i bruk og de som er sjekket og avvist.
Delen om hva som holdt er den mest nyttige
Den delen leses sjelden, og den er den eneste som svarer på om sikkerhetsarbeidet dere allerede betaler for virker.
- Den forteller hvilke kontroller som faktisk stoppet noe, som er det eneste grunnlaget dere har for å bestemme hva som skal beholdes og hva som kan kuttes
- Den er det som kan videresendes til en kunde som spør, uten at dere samtidig sender en liste over egne svakheter
- Den skiller «ikke funnet» fra «ikke testet», som er to helt forskjellige ting
- Den gir neste års rapport noe å sammenlignes med
Mangler den delen, be om den
Et forsøk som ble stoppet er et resultat. Ble noe stanset, er det verdt å vite hvorfor og av hvilken kontroll, og kom testeren rundt kontrollen likevel, er det enda mer verdt å vite.
En rapport som bare lister det som gikk galt gir deg ingenting å måle mot senere, og ingenting å svare kunder med. Det er en rimelig ting å be om, også i ettertid.
Sjekk dekningen før du konkluderer
«Ingen funn» i et område som aldri ble nådd er ikke et resultat. Før du bestemmer noe, finn ut av dette:
- Hva sto i omfanget, og hva sto uttrykkelig utenfor
- Hvilken versjon og hvilket miljø ble testet, og var det det samme som ligger i produksjon
- Var testen innlogget, og i så fall med hvilken rolle
- Ble noe blokkert underveis av brannmur, ratebegrensning eller en testbruker som sluttet å virke
- Hva krevde noe fra dere som ikke kom på plass i tide
Hva du gjør med rapporten etterpå
En rapport som blir liggende som en PDF er penger brukt på å vite noe man ikke gjorde noe med. Det som skiller de som får verdi ut av en test fra de som ikke gjør det, er de neste to ukene.
- Gjør hvert funn om til en oppgave med en eier og en dato, i systemet dere allerede bruker. Ikke et regneark ved siden av.
- Sorter etter rekkefølge for utbedring, ikke etter alvorlighetsgrad. Noe er raskt og fjerner mye, noe er stort og kan vente.
- Bestem hva dere ikke skal gjøre noe med, og skriv ned hvorfor. En bevisst akseptert risiko er et svar. Et funn ingen tok stilling til er det ikke.
- Book etterprøvingen med en gang. Den lukker sløyfen, og de fleste leverandører har en frist for når den må tas ut.
- Sett en dato for neste test før denne er glemt. Kravet fra kundene deres kommer til å være «regelmessig», ikke «en gang».
Hvem får den, og hva som aldri forlater huset
Rapporten beskriver hvordan man kommer inn hos dere. Den skal ha samme tilgangsstyring som systemene den handler om, og den skal ikke ligge i en delt mappe alle når.
- Utviklerne som skal rette: hele rapporten, eller de delene som gjelder dem
- Den som eier systemene: hele rapporten
- Ledelsen og eventuelt styret: sammendraget
- Kunder som spør: sammendraget eller en attest, aldri hele rapporten
- Driftsleverandør eller underleverandør: de funnene som gjelder dem
Sladding er ikke rotasjon. Har en hemmelighet stått i en rapport, er den brukt opp.
En ting til, som ikke handler om tilgang
Dukker det opp et passord, en nøkkel, et token eller en tilgangsstreng i dokumentasjonen, skal den byttes ut. Ikke sladdes, ikke noteres som noe å se på senere.
Den er nå skrevet ned i et dokument som sendes rundt, lagres flere steder og sannsynligvis skrives ut minst én gang, uansett hvor forsiktige dere er. Rotasjon tar minutter. Alternativet er å håpe.
Uavklart
Det som ikke er avklart
Mye av det som ser ut som standard i en sikkerhetsrapport er konvensjon, ikke krav.
- CVSS finnes i flere versjoner i bruk samtidig. Versjon 4.0 er gjeldende, men mange rapporter oppgir fortsatt 3.1, og samme sårbarhet kan få forskjellig tall. Spør hvilken versjon som er brukt før du sammenligner to rapporter.
- Det finnes ingen norsk standard for hva en sikkerhetsrapport skal inneholde. Et kontraktskrav om «rapport» garanterer derfor verken en dekningsdel eller en del om hva som holdt.
- Hvor lenge en rapport er gyldig er ikke definert noe sted. Den beskriver et system på en dato, og systemet endrer seg.
- Alvorlighetsgrad settes med skjønn. To leverandører kan gradere det samme funnet ulikt og begge ha en holdbar begrunnelse. Det som skal kunne etterprøves er begrunnelsen, ikke tallet.
Kilder
Hvor dette er hentet fra
Primærkilder, slik at dere kan kontrollere hvert punkt uten å spørre oss.
Videre
Les videre
Krav fra kunder
Kundens sikkerhetsskjema
Kunden har sendt 40 spørsmål om sikkerhet, og fristen er to uker. Hva spørsmålene egentlig spør om, hva du kan svare ærlig når dere aldri har testet, og hva som aldri skal sendes ut.
Anbud
Pentest i anbud
«Gjennomført sikkerhetstest», «uavhengig tredjepart», «årlig test» og «ISO 27001» er fire ulike krav. Hva hvert av dem krever, og hva du gjør når fristen er kortere enn leveringstiden.
Se også
Andre steder på nettstedet
Videre
Der det er gratis å begynne
Den eksterne sjekken leser det som er synlig utenfra og gir dere funnene med en gang, uten innlogging og uten e-postadresse.