Metode
Hvordan testingen faktisk kjøres
Alle leverandører i dette faget skriver at de bruker etiske hackere. Nesten ingen skriver hvem, med hvilke verktøy, under hvilke regler, og hvor grensen går. Denne siden gjør det.
Store deler av testingen kjøres av AI-agenter innenfor et regelverk og en programvare vi har bygget selv. Erik Nilsen setter omfanget, styrer agentene, avgjør hva som er et reelt funn og skriver rapporten.
Det står her fordi du kommer til å spørre uansett, og fordi svaret tåler å bli lest. Det står også hva agentene er dårlige til, for det er den delen som avgjør om resten er verdt å tro på.
Oppdatert · kildene kontrollert · skrevet av Erik Nilsen
Hva en agent er i denne sammenhengen
En agent er i denne sammenhengen ikke en chatbot som svarer på spørsmål. Det er en språkmodell som har fått verktøy, et regelverk og en oppgave, og som kan lese resultatet av det den nettopp gjorde og bestemme neste steg ut fra det. Den kjører en kommando, ser svaret, og velger hva den prøver videre.
Modellene er de beste som finnes, fra store leverandører. Vi har ikke bygget egne modeller, for det ville blitt dårligere. Det vi har bygget selv er verktøyene, regelverket og instruksjonene rundt dem, og det er der forskjellen ligger: en god modell med riktig verktøy er svært god til dette arbeidet.
Agentene får full testkapasitet innenfor avtalt omfang, og aldri utenfor. Ingenting kjøres før scope og skriftlig autorisasjon er signert.
Regelverket oppdateres etter hvert som nye sårbarheter blir kjent. En test som kjøres i dag arbeider etter et annet regelverk enn en test som ble kjørt i fjor.
Det agentene gjør bra
Dette er ikke magi, og det er ikke et verktøy som finner ting mennesker ikke kan finne. Det er fire helt konkrete egenskaper, og de er verdt å nevne ved navn.
- Bredde uten slitasje. Et menneske som har lest tre hundre HTTP-svar, leser det neste fortere. En agent gjør det ikke. Hvert subdomene, hvert endepunkt, hver parameter og hver rollekombinasjon behandles like grundig som den første.
- Kombinasjoner. Det som gjør en test verdt noe er sjelden ett funn, men to observasjoner som hver for seg er ufarlige. Å holde hundre slike i hodet samtidig og se hvilke to som hører sammen, er noe modeller er uvanlig gode til.
- Repetisjonen som faktisk blir gjort. Kartlegging, kontroll av oppsettet, gjennomgang mot OWASP Top 10 og kjente CVE-er, og etterprøving av det som er rettet. Dette er arbeidet som i praksis blir kuttet når timene er få og fristen er nær.
- Dokumentasjon underveis. Hver forespørsel og hvert svar blir liggende mens det skjer. En proof of concept i rapporten er hentet fra det som faktisk ble gjort, ikke skrevet ned fra hukommelsen dagen etter.
Det agentene gjør dårlig
Dette er delen andre leverandører ikke skriver, og den som avgjør om resten er verdt å tro på. En agent alene ville levert en rapport du ikke burde stole på. Her er hvorfor, med eksempler.
- Forretningslogikk. En agent vet ikke at en ordre ikke skal kunne kanselleres etter at den er sendt, for det er en regel om virksomheten deres og ikke om HTTP. Den ser at endepunktet svarer 200, og går videre.
- Alvorlighetsgrad. En eksponert .git-katalog blir kalt kritisk enten den inneholder produksjonsnøkler eller en tom README. Hva den faktisk er verdt, avgjøres av å se etter, og det er en menneskelig vurdering.
- Selvsikre feil. En modell kan beskrive et angrep som ikke virker, i overbevisende detalj, med kommandoer som ser riktige ut. Dette er den farligste feilmåten, nettopp fordi den er lettest å publisere uten å oppdage.
- Å vite når man skal stoppe. Følger man en tråd langt nok, ligger det interessante noen ganger utenfor scopet. Grensen er satt i rammeverket rundt agentene og kontrolleres av et menneske, ikke overlatt til en instruksjon agenten kan velge bort.
- Støy. Den samme underliggende feilen rapporteres gjerne fem ganger fra fem forskjellige veier. Fem funn i en rapport der det egentlig er ett, gjør rapporten verre og ikke bedre.
- Alt som krever en samtale. Om dere ville akseptert at noe ble tregt i ti minutter, er ikke et spørsmål en agent skal svare på.
Derfor blir ingenting et funn før det er reprodusert minst to ganger, med en proof of concept. Det som ikke lar seg reprodusere, står i rapporten som avvist, med begrunnelse.
Der mennesket avgjør
Erik Nilsen setter omfanget, styrer agentene, avgjør hva som er et reelt funn og skriver rapporten. Alvorlighetsgraden settes etter hva som faktisk kan skje hos dere, ikke etter hva et verktøy skriver ut.
Det gjelder særlig de ubehagelige avgjørelsene. Å stoppe fordi noe ser skjørt ut. Å spørre før noe gjøres i stedet for å beklage etterpå. Å skrive at et funn ble avvist, når det hadde tatt seg bedre ut i rapporten å la det stå.
Er noe uklart underveis, blir du spurt før det gjøres. Å grave videre betyr dypere tilgang, ikke mer data, og vi utvider aldri scopet på egen hånd.
Det er også et menneske som svarer for resultatet. Du snakker med den som gjorde jobben, og med den som skal svare på spørsmålene etterpå.
Hva som sendes hvor
Verktøyene og orkestreringen kjøres fra maskiner vi kontrollerer selv. Nettsidene, databasen og dokumentasjonen fra testene ligger hos Hetzner i Finland. E-posten bestillingsskjemaet utløser går gjennom EU-noden til Resend i Irland. Begge behandler data innenfor EØS.
Selve modellene er ikke våre. De kommer fra store leverandører og ligger i hovedsak utenfor EØS, fordi det er der de gode modellene finnes. Innhold fra testen kan derfor bli sendt dit som en del av arbeidet.
Vi har valgt leverandører som ikke trener modeller på det som sendes gjennom API-et deres. Det er en av grunnene til at akkurat de er valgt. I praksis betyr det at det som sendes inn brukes til å svare på forespørselen og ikke til å gjøre modellen bedre, slik at det ikke kan dukke opp igjen et annet sted senere.
Vi kan likevel ikke love at data aldri forlater EØS, og vi skriver det ikke. Det vi kan gjøre er å sende minst mulig: nok til å bevise funnet og bekrefte det en gang til, aldri et fullt uttrekk av en database, et arkiv eller en postkasse. Det som aldri ble hentet, kan heller ikke komme på avveie.
Rå dokumentasjon fra en test slettes 90 dager etter at rapporten er levert. Da har retestperioden løpt ut, og vi trenger den ikke lenger.
Hvem som får hva, hvilket grunnlag behandlingen har, og hvor lenge ting oppbevares, står i personvernerklæringen.
Hvorfor dette gir en pris som står på nett
Det som gjorde en test dyr var sjelden den vanskelige delen. Det var timene som gikk med til kartlegging, gjennomgang av oppsett, kryssjekk mot kjente sårbarheter og skriving av dokumentasjon underveis. Det er nettopp den delen som lar seg kjøre av agenter.
Når den delen tar timer i stedet for dager, blir arbeidsmengden forutsigbar nok til at prisen kan publiseres på forhånd. Den eksterne sikkerhetssjekken leveres på tre til fem virkedager. De større oppdragene tar lengre tid, og leveringstiden står på hver enkelt tjeneste.
Det er også grunnen til at det ikke koster mer når vi finner mer enn ventet. Så lenge det ligger innenfor det signerte scopet, betaler du prisen som ble avtalt. Å grave videre koster oss mindre enn det pleide, og da er det ingen grunn til å sende regningen videre.
Timene med menneskearbeid flyttes dit de er verdt mest: vurderingen av hva som er et reelt funn, hvor alvorlig det er hos akkurat dere, og hva som må endres for å lukke det.
Det vi ikke påstår
Vi påstår ikke at dette finner alt. Ingen metode gjør det. En rapport uten funn er en uttalelse om det som ble testet i den perioden, ikke en attest på at systemet er sikkert.
Vi påstår ikke at agenter er bedre enn dyktige mennesker med ubegrenset tid. Vi påstår at de gjør det repeterbare arbeidet raskere og mer fullstendig enn det i praksis blir gjort når timene er få, og at det er derfor prisen kan stå på nett.
Vi har ingen sertifisering, godkjenning eller akkreditering for sikkerhetstesting, og vi kjenner ikke til noen offentlig ordning i Norge som gir en. NSM har en kvalitetsordning for leverandører, men den gjelder hendelseshåndtering, altså håndtering av angrep som allerede har skjedd, og pentest-tjenester vurderes ikke i den ordningen. En leverandør som viser til den som bevis for testkvalitet, viser til noe annet enn det ser ut som.
Vi har heller ikke ansvarsforsikring. Det står utførlig på en egen side, sammen med hva vi gjør i stedet og når dere bør velge en større leverandør enn oss.
Uavklart
Det vi ikke vet sikkert
Dette er et fag i bevegelse. En side om metode som later som alt er avklart, ville vært feil på nøyaktig den måten resten av disse sidene er skrevet for å unngå.
- Modellene endrer seg under oss. En leverandør oppdaterer en modell, og oppførselen flytter seg. Vi kjører våre egne kontroller på nytt når det skjer, men vi kan ikke påstå at en test i mars og en test i oktober kjørte på identisk maskineri.
- Det finnes ingen etablert standard for hvordan AI-assistert testing skal dokumenteres eller etterprøves. Kommer det en, følger vi den. Inntil da er denne siden vår egen beskrivelse av eget arbeid, og ingen utenfra har vurdert den.
- Leverandørene av språkmodeller står i personvernerklæringen som kategori og ikke ved navn. Å navngi dem, med overføringsgrunnlaget for dem som ligger utenfor EØS, ville vært sterkere. Det står på listen over ting som skal rettes.
- Noen kravspesifikasjoner sier at testen skal utføres av en navngitt person. Det er oppfylt her. Skulle en tekst kreve at ingen del av arbeidet er automatisert, ville nesten ingen leverandør oppfylt den, siden verktøy har vært standard i faget i tjue år. Er kravteksten uklar, send den til oss, så sier vi om vi dekker den eller ikke.
Kilder
Hvor dette er hentet fra
Primærkilder, slik at dere kan kontrollere hvert punkt uten å spørre oss.
Videre
Les videre
Sammenligning
Automatisert eller manuelt
Spørsmålet er ikke hvilken som er best, men hvilke avgjørelser som hører hjemme hos en maskin og hvilke som må tas av et menneske. Slik gjøres det her, og når automatikken alene holder.
Ansvar
Ansvar og forsikring
Glippen har ikke ansvarsforsikring. Her står hva ansvarsbegrensningen sier, hva et forsikringsbevis dekker og ikke dekker, hva vi gjør i stedet, og når dere bør velge en større leverandør.
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.