Ein Penetrationstester tut, was ein Eindringling tut: Er sucht einen Weg hinein und nutzt ihn. Die Gesetze gegen Computerkriminalität fragen in den meisten Ländern nicht nach Absichten. Gefragt wird, ob der Zugriff genehmigt war. Der ganze Unterschied zwischen einer Leistung und einer Straftat ist eine Reihe von Dokumenten, unterzeichnet von der richtigen Person, bevor die Arbeit beginnt.
Dieser Artikel beschreibt diese Dokumente. Er ist keine Rechtsberatung: Das Recht unterscheidet sich von Land zu Land, und Ihre Juristen entscheiden, was für Sie gilt.
Die Dokumente
Vertrag
Die geschäftliche Vereinbarung: was getan wird, bis wann, zu welchem Preis, mit welcher Haftung und Vertraulichkeit. Der Vertrag allein ist nicht die Genehmigung. Er verpflichtet die Parteien einander gegenüber; er legt nicht von sich aus fest, was angegriffen werden darf.
Genehmigungsschreiben
Die Erklärung, mit der der Inhaber der Systeme den Test genehmigt. Das Schreiben sollte Folgendes nennen:
- die Systeme, mit Adresse, Domain oder einer anderen eindeutigen Kennung;
- den Zeitraum, in dem getestet werden darf;
- die Personen oder das Unternehmen, die testen dürfen;
- die Person, die unterzeichnet, und die Funktion, in der sie unterzeichnet.
Die Tester tragen es während des gesamten Projekts bei sich, im wörtlichen oder im übertragenen Sinn. Wenn ein Hosting-Anbieter oder eine Strafverfolgungsbehörde fragt, was hier vor sich geht, ist dies das Dokument, das antwortet.
Testregeln
Die technischen Grenzen: welche Techniken erlaubt und welche ausgeschlossen sind, die Testzeiten, die Anfrageraten, was passiert, wenn ein System instabil wird, wen man nachts anruft. NIST SP 800-115 behandelt die Testregeln als notwendigen Teil der Planung, und PTES ordnet sie aus demselben Grund der Phase vor Projektbeginn zu: Fragen, die vor dem Test nicht geklärt sind, werden während eines Sicherheitsvorfalls geklärt.
Festlegung des Prüfumfangs
Die Liste dessen, was dazugehört und was nicht. Ausschlüsse sind so wichtig wie Einschlüsse: der Zahlungsanbieter hinter dem Checkout, die gemeinsam genutzte Plattform des Hosting-Unternehmens, der Single-Sign-on-Dienst, der der Muttergesellschaft gehört.
Vertraulichkeit und Datenschutz
Eine Vertraulichkeitsvereinbarung (NDA), unterzeichnet, bevor technische Details ausgetauscht werden. Wo personenbezogene Daten vorkommen können, ein Auftragsverarbeitungsvertrag. In der Europäischen Union folgt das aus Artikel 28 DSGVO, wenn der Tester personenbezogene Daten im Auftrag des Kunden verarbeitet.
Wer unterzeichnen darf
Die Genehmigung ist so viel wert wie die Befugnis der Person, die sie unterzeichnet.
- Der Inhaber des Systems, nicht sein Nutzer. Ein Unternehmen kann keinen Test eines SaaS-Produkts genehmigen, das es abonniert hat.
- Eine Person, die das Unternehmen rechtlich binden darf. Ein Entwickler, der ohne Wissen des Managements einen Test des Produktivsystems seines Arbeitgebers in Auftrag gibt, hat nichts genehmigt.
- Jeder Inhaber, wenn es mehrere gibt. Ein System, das ein Unternehmen auf der Infrastruktur eines anderen betreibt, braucht möglicherweise die Genehmigung beider.
Ein sorgfältiger Anbieter prüft das: Er sieht im Handelsregister nach, prüft, wem die Domains gehören, und bestätigt den Auftrag über einen offiziellen Kanal des Unternehmens. Ein Anbieter, der nicht fragt, sollte Sie beunruhigen.
Dritte
Ihre Genehmigung deckt ab, was Ihnen gehört. Drumherum gibt es meist Systeme, die Ihnen nicht gehören.
Cloud-Anbieter. Die großen Anbieter veröffentlichen Richtlinien für Tests von Ressourcen, die Kunden auf ihren Plattformen betreiben. Beim Verfassen dieses Artikels erlauben AWS, Microsoft Azure und Google Cloud ihren Kunden, eigene Ressourcen ohne vorherige Freigabe zu testen, im Rahmen der Regeln, die jeder von ihnen veröffentlicht; AWS führt außerdem die Dienste auf, die getestet werden dürfen. Denial-of-Service-Tests schränken alle drei ein. Die Richtlinien ändern sich, deshalb werden sie vor jedem Projekt neu geprüft, statt sich auf die Erinnerung an das letzte zu verlassen.
Hosting und Managed Services. Shared Hosting, verwaltete Datenbanken und Content Delivery Networks haben eigene Bedingungen. Manche verlangen eine Vorabmeldung, manche verbieten Tests ganz.
Dienstleister und Partner. Eine Integration mit einem Partner erstreckt Ihre Genehmigung nicht auf die Seite des Partners. Ohne schriftliche Zustimmung des Partners endet der Test an Ihrer Grenze.
Die üblichen Lücken
- Der Test hat begonnen, das Schreiben ist noch „in der Unterzeichnung“.
- Der Prüfumfang nennt eine Domain, und die Anwendung dahinter ist letzten Monat unter eine andere Adresse umgezogen.
- Das Schreiben ist von jemandem unterzeichnet, der dazu nicht befugt war.
- Die Produktion ist im Prüfumfang, und niemand hat das Betriebsteam informiert.
- Eine Tochtergesellschaft in einem anderen Land wird mit der Genehmigung der Muttergesellschaft getestet.
Jede dieser Lücken macht aus einem genehmigten Test für einen Teil der Arbeit einen nicht genehmigten, und keine davon ist von der technischen Seite aus sichtbar.
Auch Bug Bounty ist eine Genehmigung
Ein Bug-Bounty-Programm ist eine öffentlich erteilte Genehmigung: Die Regeln des Programms sagen, was getestet werden darf und wie, und wer sie befolgt, handelt mit Genehmigung des Inhabers. Eine Safe-Harbor-Klausel fügt die Zusage des Inhabers hinzu, nicht gegen Sicherheitsforscher vorzugehen, die sich an die Regeln halten. Diese Klausel bindet nur den Inhaber. Am Strafrecht ändert sie nichts, und Dritte bindet sie nicht; deshalb müssen die Regeln genau befolgt werden, und deshalb ist ein System ohne Programm kein Ziel.
Kurz gesagt
Bevor das erste Paket gesendet wird, sollten vorliegen: ein Vertrag, ein Genehmigungsschreiben, unterzeichnet von jemandem, der dazu befugt ist, Testregeln, ein Prüfumfang mit seinen Ausschlüssen und die Zustimmung jedes Dritten, dessen Systeme berührt werden. Wie wir das im Einzelnen handhaben, steht auf der Seite „Projektablauf“.