En penetrasjonstester gjør det samme som en inntrenger: leter etter en vei inn og bruker den. Lovene mot datakriminalitet i de fleste land spør ikke etter hensikter. De spør om det forelå tillatelse til tilgangen. Hele forskjellen mellom en tjeneste og et lovbrudd er et sett dokumenter, signert av riktig person før arbeidet starter.
Denne artikkelen beskriver disse dokumentene. Den er ikke juridisk rådgivning: Loven er forskjellig fra land til land, og advokatene dine avgjør hva som gjelder for deg.
Dokumentene
Avtale
Den kommersielle avtalen: hva som gjøres, innen når, for hvor mye, med hvilket ansvar og hvilken konfidensialitet. Avtalen alene er ikke tillatelsen. Den forplikter partene overfor hverandre; den sier ikke i seg selv hva som kan angripes.
Skriftlig tillatelse
Erklæringen der eieren av systemene tillater testen. Den bør angi:
- systemene, med adresse, domene eller en annen entydig identifikator;
- perioden da testing er tillatt;
- personene eller selskapet som har lov til å teste;
- den som signerer, og i hvilken egenskap vedkommende signerer.
Testerne har den med seg, bokstavelig eller i overført betydning, gjennom hele oppdraget. Når en hostingleverandør eller en politimyndighet spør hva som foregår, er det dette dokumentet som svarer.
Regler for gjennomføring
De tekniske grensene: hvilke teknikker som er tillatt og hvilke som er utelukket, tidspunktene for testing, forespørselsfrekvensen, hva som skjer når et system blir ustabilt, hvem som skal ringes om natten. NIST SP 800-115 behandler reglene for gjennomføring som en obligatorisk del av planleggingen, og PTES plasserer dem i fasen før oppdraget (pre-engagement) av samme grunn: Spørsmål som ikke er avklart før testen, blir avklart under en sikkerhetshendelse.
Beskrivelse av omfanget
Listen over hva som er innenfor, og hva som er utenfor. Unntakene er like viktige som det som er med: betalingsleverandøren bak kassen, den delte plattformen til hostingselskapet, single sign-on-tjenesten som tilhører morselskapet.
Konfidensialitet og personvern
En konfidensialitetsavtale (NDA), signert før tekniske detaljer utveksles. Der testerne kan komme over personopplysninger, en databehandleravtale. I EU følger dette av artikkel 28 i personvernforordningen (GDPR) når testeren behandler personopplysninger på vegne av kunden.
Hvem som kan signere
Tillatelsen er ikke mer verdt enn myndigheten til den som signerer den.
- Eieren av systemet, ikke brukeren. Et selskap kan ikke gi tillatelse til testing av et SaaS-produkt det abonnerer på.
- En person med rett til å forplikte selskapet. En utvikler som bestiller en test av produksjonssystemet til arbeidsgiveren uten at ledelsen vet om det, har ikke gitt tillatelse til noe.
- Alle eierne, når det er flere. Et system som ett selskap driver på infrastrukturen til et annet, kan kreve tillatelse fra begge.
En grundig leverandør verifiserer dette: slår opp i foretaksregisteret, kontrollerer eierskapet til domenene og bekrefter bestillingen gjennom en offisiell kanal hos selskapet. En leverandør som ikke spør, bør gjøre deg bekymret.
Tredjeparter
Tillatelsen din dekker det som er ditt. Rundt det finnes det vanligvis systemer som ikke er det.
Skyleverandører. De store leverandørene publiserer retningslinjer for testing av ressurser som kundene kjører på plattformene deres. I skrivende stund tillater AWS, Microsoft Azure og Google Cloud kundene å teste sine egne ressurser uten forhåndsgodkjenning, innenfor reglene hver av dem publiserer; AWS angir også hvilke tjenester som kan testes. Alle tre begrenser testing med tjenestenektangrep. Retningslinjene endres, så de kontrolleres før hvert oppdrag og hentes ikke fra hukommelsen etter det forrige.
Hosting og administrerte tjenester. Delt hosting, administrerte databaser og innholdsleveransenettverk (CDN) har egne vilkår. Noen krever varsel, noen forbyr testing helt.
Leverandører og partnere. En integrasjon med en partner utvider ikke tillatelsen din til partnerens side av integrasjonen. Uten skriftlig samtykke fra partneren stopper testingen ved din grense.
De vanlige hullene
- Testen har startet, den skriftlige tillatelsen er fortsatt «til signering».
- Omfanget oppgir et domene, og applikasjonen bak det flyttet til en annen adresse forrige måned.
- Tillatelsen er signert av noen som ikke hadde myndighet til å signere den.
- Produksjonsmiljøet er innenfor omfanget, og ingen har sagt fra til driftsteamet.
- Et datterselskap i et annet land testes med tillatelsen fra morselskapet.
Hvert av dem gjør en test med tillatelse til en test uten tillatelse for en del av arbeidet, og ingen av dem er synlige fra den tekniske siden.
Bug bounty er også en tillatelse
Et bug bounty-program er en tillatelse gitt offentlig: Retningslinjene for programmet sier hva som kan testes og hvordan, og den som følger dem, handler med tillatelse fra eieren. En safe harbour-klausul legger til eierens forpliktelse til ikke å rettsforfølge sikkerhetsforskere som holder seg innenfor retningslinjene. Den binder bare eieren. Den endrer ikke strafferetten og binder ikke tredjeparter, og derfor må retningslinjene følges nøyaktig, og derfor er et system uten program ikke et mål.
Kort oppsummert
Før den første pakken sendes, bør det foreligge en avtale, en skriftlig tillatelse signert av noen som har rett til å signere den, regler for gjennomføring, et omfang med unntakene og samtykke fra hver tredjepart hvis systemer berøres. Hvordan vi håndterer dette i detalj, står på siden «Gangen i et oppdrag».