Wie wird man eigentlich Penetration Tester? (Update 2022)
Einführung
Ich wurde nun schon mehrmals gefragt, wie man eigentlich Penetration Tester wird und welche Vorgehensweise ich dazu empfehlen kann. Es gibt weder eine darauf spezialisierte Ausbildung noch ein darauf spezialisierter Studiengang. Ich möchte die Beantwortung der Frage von hinten aufziehen und zuerst die Frage beantworten, was ein guter Penetration Tester denn überhaupt können und wissen muss. Nun, da wären mindestens Kenntnisse und Fähigkeiten in:
- IT-Systemadministration (Betriebssysteme, Netzwerke usw.)
- Anwendungsentwicklung (diverse Programmiersprachen wie C, Java, PHP, Python)
- Theoretische Angriffstechniken: Buffer Overflow, Code Execution, Injections, uvm.
- Bedienung von Tools wie Nessus, Nikto, nmap, owasp-zap (damit meine ich nicht auf Skriptkiddie-Niveau)
- Entwicklung eigener Tools oder die Weiterentwicklung vorhandener
- Strukturierter Vorgehensweisen für Penetration Testing (OSSTMM, OWASP Penetration Testing Guide)
- Report-Erstellung (Strukturierte Berichte, Schreiben von Erläuterungen und Dokumentation)
Okay, die Auflistung ist umfangreich, ich möchte aber nichts streichen. Ich halte alle Punkte für relevant und notwendig. Es geht schließlich nicht um die Frage wie man Hacker wird, sondern wie man professioneller Karriere als Penetration Tester beginnt. Dazu gehört dann doch deutlich mehr als nur hacken zu können.
Die Grundlagen (Punkte 1 und 2)
Ich empfehle als Grundlage entweder eine Ausbildung zum Fachinformatiker (Fachrichtung Systemintegration oder Anwendungsentwicklung) oder bei formaler Eignung (ab Fach-Abi) ein Informatik-Studiengang an einer Fachhochschule. Eine Universität würde ich für das Berufsziel Penetration Tester nicht wählen, das ginge aufgrund der Mathe- und Theorielastigkeit am Ziel vorbei. Ich würde ein Informatik-Studium an einer FH wählen, entweder reine Informatik oder zumindest etwas Vergleichbares in technischer Richtung. Medieninformatik und Wirtschaftsinformatik bieten keine idealen Vorrausetzungen für Penetration Tester, sind aber immer noch besser als gar nichts.
An der Anwendungsentwicklung kommt man in der Ausbildung und im Studium nicht vorbei und grundlegende IT-Systemadministration sollte hoffentlich auch dabei sein. Ansonsten muss man privat ein wenig nachhelfen – einfach alte Hardware nehmen und mit Linux & Windows experimentieren. Die Virtualisierungen Xen, kvm & Co erlauben auch den Aufbau eines ganzen Netzwerks auf einer physikalischen Maschine und sind kostenfrei. Hier kann man sich austoben und die Grundlagen vertiefen, wenn man ansonsten keinen Zugang zu praktischen Erfahrung bekommt. Ansonsten sollte man sicherlich noch eine vernünftige Script-Sprache lernen; ich empfehle Python (oder Perl oder Ruby oder bash, aber nicht PHP & Co).
Die Angriffstechniken (Punkte 3 bis 5)
Die theoretischen und praktischen Angriffstechniken ohne „Anleitung“ zielgerichtet zu lernen erfordert eine gewisse Selbstdisziplin. Es gibt im Netz dafür gute Online-Kurse wie z.B. den OSCP (Offensive Security Certified Professional) von Offensive Security. Der CEH (Certified Ethical Hacker) ist nur theoretisch und vermittelt keine Praxis. Das Wissen vom CEH kann man sich auch aus Büchern und dem Web anlesen, falls einem der OSCP zu „praktisch“ orientiert ist. Das zur Verfügung gestellte Hacking-Lab ist beim OSCP ist definitiv sein Geld wert und ich kann es nur weiterempfehlen.
Ansonsten gibt es im Web auch noch sehr viele frei-verfügbare & verwundbare Server-Images, an denen man kostenlos üben kann. Bücher gibt es auch einige, mit unterschiedlichem Niveau. Wer hier noch in der Ausbildung oder Studium etwas dazu lernt, dürfte ziemlich viel Glück gehabt haben. Oder er studiert direkt einen Bachelor in IT-Security und hat tatsächlich einen guten Prof für die Vorlesung erwischt. Das dürfte aber die Ausnahme sein. Ich würde ohnehin nicht bereits im Bachelor eine Spezialisierung wählen, dafür gibt es Master-Studiengänge.
Die Entwicklung eigener Tools wird mit steigender Erfahrung notwendig sein und ist mehr ein natürlicher Anpassungsprozess an eventuell nicht ausreichende oder nicht vorhandene Tools. Wer bereits Erfahrung im Programmieren oder in der Software-Entwicklung besitzt hat es hier deutlich leichter, auch wenn Penetration Testing nicht Anwendungsentwicklung bedeutet.
Die Professionalisierung vom Hacking (Punkte 6 und 7)
Professionelle Penetrationstests weisen immer eine strukturierte Vorgehensweise auf. Wer einfach „drauflos hackt“ wird vielleicht etwa finden, sicherlich nicht alles und vor allem wird der Test nicht reproduzierbar sein. Damit sinkt die Aussagekraft eines Penetrationstests enorm – eine ordentliche Vorgehensweise ist im professionellen Umfeld dringend erforderlich. Diverse Ansätze sind frei verfügbar (z.B. OSSTMM). Daran sollte man sich zumindest erst einmal orientieren, bis man in der Lage ist eventuell notwendige Anpassungen vorzunehmen.
Nach einem Penetrationstest muss noch der Bericht dazu erstellt werden. Dieser muss klar verständlich, vollständig und am Zielpublikum ausgerichtet sein (was nie einheitlich sein wird). Wichtig ist es dabei auch, schreiben zu können: Schriftlich Sachverhalte darlegen oder aufzeigen können. Konkrete Formulierungen wählen. Sichere Rechtschreibung und Grammatik.
Fazit
Die Anforderungen an Pentester sind sehr hoch. Der Weg dorthin erfordert ein hohes Maß an Interesse, intrinsische Motivation und Eigeninitiative. Niemand wird einem den Weg dorthin im Detail vorgeben und ich glaube auch nicht, dass man das regelrecht planen kann. Wer gerne Sicherheitslücken entdeckt und Spaß dabei hat, der soll den Weg dorthin einschlagen.
Mittlerweile sind die Kurs-Materialien der binsec academy GmbH zum „Pentest Training“ öffentlich und kostenlos verfügbar: https://binsec.wiki/de/security/howto/pentest-training/
Der initiale Artikel stammt aus 2014 und wurde 2022 aktuallisiert: