Häufig können wir in Gesprächen mit Neukunden feststellen, dass der Markt der Penetration Testing Dienstleistungen undurchsichtig erscheint und es schwer ist, sich für einen Dienstleister zu entscheiden. Dabei wird oftmals Fokus auf den Preis eines Pentests gesetzt und andere Entscheidungskriterien entfallen.
Mit diesem Artikel wollen wir Ihnen eine grundlegende Orientierungshilfe geben, um Penetration Testing Dienstleister qualitativ bewerten zu können und Ihre Entscheidungsfindung zu vereinfachen.
Grundqualifikation der Penetrationstester
Eine Problematik die sich im Bereich Pentesting ergibt ist das Thema Erfahrung. Das Angreifen von Computersystemen erfordert Kreativität, Flexibilität und ein Verständnis von einer Breite an Technologien und Plattformen. Während mehrjährige Erfahrung als Entwickler oder Security Officer den Einstieg erleichtern können, ersetzen diese trotzdem keine praktischen Kenntnisse in der Funktionsweise von Sicherheitsmechanismen und wie diese angegriffen werden können.
Aus diesem Grund empfehlen wir einen Fokus darauf zu legen, wie viele Jahre ein Penetration Tester bereits Tests durchführt und welche praktisch orientierten Qualifikationen dieser besitzt. Im Folgenden haben wir einige häufig zu findende Qualifikationen aufgeführt und welche Kenntnisse hiermit effektiv attestiert werden.
- Offensive Security Certified Professional (OSCP): Mehrere Computersysteme müssen in einer 24 stündigen praktischen Prüfung vollständig kompromittiert werden. Anschließend muss innerhalb von weiteren 24 Stunden ein ausführlicher Pentest Abschlussbericht erstellt werden. Nur wenn beide Teile qualitativ ausreichend fertiggestellt werden, wird der Titel des “Offensive Security Certified Professional” vergeben.
(https://help.offensive-security.com/hc/en-us/articles/360040165632-OSCP-Exam-Guide) - Certified Red Team Professional (CRTP): Um zertifiziert zu werden, müssen die Teilnehmer praktische und realistische Aufgaben in einer vollständig gepatchten Windows-Infrastruktur mit mehreren Windows-Domänen und -Forests lösen. Die Zertifizierung fordert die Teilnehmer heraus, Active Directory zu kompromittieren, indem sie Features und Funktionalitäten missbrauchen, ohne sich auf patchbare Exploits zu verlassen. Die Teilnehmer haben 24 Stunden Zeit für die praktische Zertifizierungsprüfung. Anschließend folgen weitere 24h für die Erstellung eines Penetrationsberichts.
(https://www.alteredsecurity.com/adlab) - Burp Suite Certified Practitioner (BSCP): Die Zertifizierung zum Burp Suite Certified Practitioner demonstriert ein tiefes Wissen über Web-Sicherheitsschwachstellen, die richtige Denkweise, um sie auszunutzen, und natürlich die Burp Suite-Fähigkeiten, die für die Durchführung dieser Maßnahmen erforderlich sind. Im Rahmen der Prüfung müssen innerhalb von vier Stunden zwei Webanwendungen untersucht und sämtliche darin vorhandenen Schwachstellen identifiziert und ausgenutzt werden.
(https://portswigger.net/web-security/certification/) - Certified Professional Penetration Tester (eCPPTv2): Es handelt sich um eine 100% praktische Zertifizierung in welcher die Prüfungskandidaten bis zu 7 Tage Zeit haben, um die Übungen zu absolvieren, und weitere 7 Tage für Ihre schriftliche Ausarbeitung. Um diese Prüfung zu bestehen, müssen die Teilnehmer die Beherrschung einer Vielzahl von Bereichen wie Network Pentesting, Web Application Pentesting und Systemsicherheit nachweisen.
(https://elearnsecurity.com/product/ecpptv2-certification/) - HTB Certified Penetration Testing Specialist (HTB CPTS): Der Kandidat muss Blackbox-Web-, externe und interne Penetrationstests gegen ein reales Active Directory-Netzwerk durchführen. Zu Beginn des Prüfungsprozesses wird ein Letter of Engagement zur Verfügung gestellt, in dem alle Details, Anforderungen, Ziele und der Umfang des Auftrags klar dargelegt sind.
(https://academy.hackthebox.com/preview/certifications/htb-certified-penetration-testing-specialist)
Wie aus den Beschreibungen ersichtlich wird, weist einzig der OSCP von den hier aufgeführten Zertifizierungen tatsächliche praktische Kenntnisse in der Kompromittierung von Computersystemen nach. Wir empfehlen Ihnen Tester zu beauftragen, die eine praktische Qualifizierung ähnlich zu OSCP besitzen. Um die erfolgreiche Qualifizierung und Gültigkeit einsehen zu können, empfehlen wir den Dienstleister nach einem Nachweis zu fragen (z.B. digitaler Link zu Credly, Credential.net oder ein Scan-Abzug des erworbenen Zertifikats eines Testers).
Spezialisierung der Penetrationstester
Wie zuvor beschrieben bietet die OSCP Zertifizierung einen guten Anhaltspunkt, um essentielle Kompetenzen eines Penetrationstesters verifizieren zu können. Mit der OSCP Zertifizierung sind Kenntnisse für die Enumerierung und das Testen von einzelnen Hosts und Diensten nachgewiesen.
Da moderne Anwendungen jedoch in ihrer Komplexität extrem gewachsen sind, empfehlen wir den Dienstleister zu fragen, welche Spezialisierungen die einzelnen Tester besitzen und diese Spezialisierungen nachweisen zu lassen (z.B. Zertifizierungen, Kundenreferenzen, CVE-Einträge). Besonders bei komplexen Prüfobjekten sollte der Tester mit den Technologien vertraut sein und sich im entsprechenden Bereich spezialisiert haben. Das gilt insbesondere für Bereiche wie Webanwendungen, API-Schnittstellen, Active Directory, Mobilanwendungstests, SAP Tests und viele mehr.
Angebot und Scoping
Wenn Sie ein Angebot anfragen, so sollte das Angebot auf die zu testende Applikation oder Infrastruktur abgestimmt sein. Hierzu sollte der Dienstleister in Erfahrung bringen, welchen Umfang das Testobjekt besitzt und auf dieser Grundlage eine Einschätzung treffen, wie viele Tage getestet werden müssen.
Sollte der Dienstleister keine Details über Ihr Prüfobjekt erfragen und Ihnen “blind” ein Angebot zusenden, so kann es entweder vorkommen, dass zu wenige Tage einkalkuliert wurden, was dazu führt, dass die Applikation weniger tief getestet werden kann oder sogar bestimmte Komponenten ausgelassen werden. Alternativ kann es ebenso passieren, dass zu viele Tage für das Testobjekt veranschlagt werden und Sie diese einfach bezahlen müssen, obwohl der Test schon im Vorfeld hätte abgeschlossen werden können.
Tipp: Sollten Sie sich an mehrere Dienstleister gleichzeitig wenden (z.B. in einer Ausschreibung), so sollten Sie das Testobjekt so genau wie möglich beschreiben (verwendete Technologien, typische Applikationsfunktionen und Abläufe, Anzahl der Hosts). Diese Angaben erleichtern das Erstellen eines passenden Angebotes und reduzieren die Wahrscheinlichkeit, dass der Testumfang oder die Testmethodik falsch gewählt wird.
Abschlussbericht
Nach der Durchführung eines Penetrationstests ist der Abschlussbericht das zentrale Dokument, was die Ergebnisse des Pentests festhält. Achten Sie daher besonders auf die Qualität des Abschlussberichtes und lassen Sie sich einen Beispielbericht im Vorfeld der Beauftragung zukommen.
Jede Feststellung sollte eine klare Beschreibung mit Screenshots beinhalten, die den Weg zur Identifikation und Ausnutzung der Schwachstelle darstellt, damit Sie oder Ihre Entwickler die Problematik verstehen und gegebenenfalls nachstellen können. Ebenfalls sollte jede Feststellung eine Erläuterung enthalten, welches Risiko der Schwachstelle zugeordnet wurde und worauf diese Zuordnung basiert (z.B. anhand Risikobewertungsmethoden wie CVSS oder OWASP).
Der Bericht sollte alle Rahmenparameter des Tests eindeutig aufführen und typische W-Fragen erläutern, wie zum Beispiel:
– Wann wurde getestet (Zeitraum)?
– Was wurde getestet (Prüfumfang)?
– Was wurde ggf. nicht getestet (Scope)?
– Wie wurde getestet (Methodik)?
– Wer hat den Test durchgeführt (Ansprechpartner)?
– Welche Risikobewertungsmethode kam zum Einsatz?
– Welche Tools, Skripte und Programme kamen zum Einsatz?
Fragen Sie den Dienstleister nach einem Beispielbericht und vergleichen Sie die Berichte miteinander, um das ideale Berichtformat für Sie zu wählen. Achten Sie ebenfalls auf eine Management Summary, welche die Testergebnisse in einer nicht technischen Sprache auf Managementebene zusammenfasst. Dies ist besonders wichtig, da die Details von Feststellungen oftmals sehr technisch bzw. komplex sind und nur von technischem Personal nachvollzogen werden können.
Schwachstellenscan versus Penetrationstest
Oftmals vermischen sich die Begriffe Schwachstellenscan und Penetrationstest. Ein Schwachstellenscan ist ein automatisiertes Verfahren, mit dem ein Programm eigenständig oder auf der Basis bestimmter Scanparameter das Testobjekt auf Schwachstellen testet. Hierbei erfolgt kein manuelles Testen durch einen Menschen.
Seien Sie vorsichtig, wenn anstelle eines Penetrationstests ein Schwachstellenscan beworben wird. Viele Schwachstellen sind kontextabhängig und lassen sich nur durch manuelles Testen identifizieren. Zudem können Schwachstellenscanner False-Positive-Ergebnisse liefern, die also keine tatsächlichen Schwachstellen darstellen.
Um effizient zu testen, können ein oder mehrere automatisierte Scans Teil eines Penetrationstests sein. Sie sollten jedoch sicherstellen, dass der Dienstleister einen Fokus auf manuelle Verifikation der Ergebnisse und manuelles Testen des Prüfobjekts legt. Die automatisch generierten Testergebnisse sollten nicht direkt in den Bericht einfließen, lediglich nach einer manuellen Verifizierung. Jede Feststellung sollte eine genaue Darstellung beinhalten, wie die Schwachstelle verifiziert wurde.
Technische und Legale Grundlagen
Bevor ein Penetrationstest legal durchgeführt werden kann, muss die Erlaubnis des Hosters zwingendermaßen eingeholt werden. Sollten Sie Ihre Anwendung oder Infrastruktur nicht selbst hosten, so müssen Sie unbedingt den Hoster nach einer Erlaubnis zum Testen fragen. Ausgenommen hiervon sind einige Cloud-Hoster, die Penetrationstests explizit erlauben (z.B. Microsoft Azure, Amazon AWS, Google Cloud). Stellen Sie sicher, dass alle Freigaben vor Testbeginn erteilt wurden. Der Penetrationstest Dienstleister sollte diese Problematik von sich aus aufbringen und unbedingt mit Ihnen vor Testbeginn abklären.
Damit eindeutig zugeordnet werden kann, welche Angriffe von Ihrem Dienstleister durchgeführt werden und welche Angriffe eine reale Bedrohung darstellen, sollte der Dienstleister die Tests von einer festen IP-Adresse durchführen. Fragen Sie hierzu Ihren Dienstleister, ob eine solche statische IP-Adresse besteht und bringen Sie diese im Vorfeld der Tests in Erfahrung. Sie können während des Tests ebenso Ihre Logdateien nach der IP-Adresse durchsuchen und Einblicke bekommen, welches Anfragevolumen der Test generiert hat. Seien Sie vorsichtig bei der Wahl des Dienstleisters, sollte dieser keine eindeutige IP-Adresse für seine Tests nutzen. Lassen Sie sich darüber hinaus immer die Kontaktdaten der Person geben, welche die technischen Tests durchführt. So haben Sie die Möglichkeit bei Problemen oder technischen Fragen unmittelbar einen technischen Ansprechpartner zu kontaktieren und umgehend Rückmeldung zu erhalten. Weiterhin können Sie so ausschließen, dass ein Subdienstleister für die Durchführung der Tests intransparent oder ggf. inoffiziell beauftragt wurde.
Spezifisches Vorgehen
Tests von Webanwendungen
Ein Penetrationstest einer Webanwendung sollte sich an der öffentlichen Standard-Testmethodologie “OWASP” orientieren. Das OWASP Konsortium stellt Vorgehensweisen für das Testen von allen aktuellen Schwachstellenkategorien zur Verfügung. Diese sollte unbedingt getestet werden.
Sollten Sie eine Anwendung testen wollen, die eine Nutzeranmeldung und geschützte Nutzerbereiche zur Verfügung stellt, so empfehlen wir die Durchführung eines “grey-box” Tests. Hierbei werden dem Dienstleister Testkonten bereitgestellt, wodurch interne Bereiche hinter einer Anmeldung effizienter und granularer getestet werden können. Achten Sie darauf, ob der Dienstleister diese Testmethodik vorschlägt oder fragen Sie ggf. aktiv nach der Testmethodik.
Falls eine API-Schnittstelle getestet werden soll, so sollte der Dienstleister eine Schnittstellendokumentation oder eine Sammlung an beispielhafter API-Anfragen anfragen (z.B. Swagger.json, Postman Collections). Ohne eine API-Dokumentation ist das Testen von APIs nicht zielführend, da Endpunkte und Parameternamen erraten werden müssen. Dies kann zur Folge haben, dass wichtige Endpunkte übersehen und Schwachstellen nicht entdeckt werden.
Tests von IT-Infrastrukturen
Ein Infrastrukturtest bei dem mehrere Hostsysteme auf ihre verfügbaren Dienste getestet werden, besteht in der Regel aus mehreren automatisierten Scans am Anfang eines Tests kombiniert mit manuellen Testeinheiten und einer anschließenden Verifikation der Scanergebnisse.
Active Directory Sicherheitsanalyse
Active Directory Umgebungen sind sehr dynamisch und erfordern Spezialwissen, das über eine Grundqualifikation wie OSCP hinausgeht. Vergewissern Sie sich, dass der Tester Ihrer AD Umgebung Fortbildungen und Zertifizierungen im Bereich Windows und Active Directory Sicherheit besitzt. Dazu können zum Beispiel die praktischen Zertifizierung Certified Red Team Professional (CRTP) oder Certified Red Team Expert (CRTE) gehören. Jedoch auch viele andere Weiterbildungen im Bereich Azure AD und Windows Umgebungen.