OSCP

25 09, 2015

Aussagekraft und Grenzen von Penetrationstests

von |25. September 2015|Pentest|0 Kommentare|

Vor kurzem wurde mir in einem Beratungsgespräch die Frage gestellt, ob man nach einem Penetrationstest eine Garantie bekommt, dass eine geprüfte Anwendung absolut sicher ist. Die Frage ist natürlich aus der Sicht eines Kunden verständlich. Wer je nach Aufwand vielleicht mehrere Tausend Euro für eine Sicherheitsanalyse ausgibt, erwartet zumindest unterschwellig, dass alle möglichen Schwachstellen identifiziert wurden und eine geprüfte Anwendung 100% sicher ist. Die unbequeme Wahrheit ist leider, dass das nicht der Fall sein kann.

Grundsätzlich gilt, dass nahezu alle durchgeführten Penetrationstests ein Kompromiss aus Testaufwand und Aussagekraft sind. Bei professionellen Pentest-Dienstleistern beinhaltet ein Test mindestens,

  • die Prüfung nach einer standardisierten Vorgehensweise, die sich an den Best Practices orientiert
  • die Verwendung eines Tool-Sets, um automatisiert auf typische Schwachstellen prüfen zu können
  • zusätzlich umfangreiche manuelle Prüfungen
  • den Einsatz von zertifizierten Penetrationstestern (eher OSCP & OSCE weniger CISSP / CEH & Co)
  • die Durchführung einer Qualitätssicherung
  • die Abgabe eines detaillierten Berichts

Sind die genannten Kriterien bei einem Test erfüllt, werden mit ziemlicher Sicherheit:

  • alle einfach zu entdeckenden Schwachstellen (low hanging fruits) gefunden
  • mindestens allen Angreifern auf dem Niveau Script Kiddy keine Chance mehr gelassen
  • mindestens alle unspezifischen automatisierten Angriffe die Grundlage entzogen
  • den Aufwand für einen Angreifer auf mindestens den Aufwand erhöht, den der Penetrationstester investiert hat
  • eine absolut aussagekräftige Richtung gezeigt, ob ein Zielsystem bzw. eine Zielanwendung grundsätzlich auf professionellem Security-Niveau aufgesetzt bzw. entwickelt wurde

Das ehrliche Zugeständnis, dass unter Umständen ein Angreifer mit einem deutlich höheren Aufwand dennoch eine Schwachstelle finden könnte, ist leider nicht verkaufsfördernd.

Ein höheres Prüfungsniveau, wie z.B. die Entwicklung oder gar den Aufkauf von Zero Day Exploits ist in den allermeisten Fällen leider nicht realistisch. Die Durchführung eines APTs (advanced persistent threat) auf NSA & Co Niveau ist sehr, sehr aufwendig und würde die Kosten eines Penetrationstests in extreme Höhe treiben. Für einen Kunden wäre das ein enorm schlechtes Preis-/Leistungsverhältnis und die finanziellen Ressourcen ließen sich mit Sicherheit sinnvoller in die eigene Sicherheit investieren.

Aber nehmen wir einmal ein, als Pentest-Dienstleister würde man eine 100%-Sicherheitsgarantie geben: Was würde passieren, wenn ein System dennoch kompromittiert werden würde? Wie soll nachgewiesen werden, dass der Penetrationstester etwas übersehen hat? Wie soll nachgewiesen werden, dass der Kunde das System seitdem nicht verändert hat? Wie soll nachgewiesen werden, dass der Kunde eventuell nicht ein Sicherheitsupdate übersehen hat? Wie wird mit dem Problem von Sicherheitslücken in eingesetzten Frameworks oder Bibliotheken umgegangen? Ein einziger Penetrationstest mit einer 100%-Sicherheitsgarantie und man hat als Dienstleister für alle Ewigkeiten unkalkulierbare Rechtsrisiken. Selbst wenn man das Risiko grob abschätzt und im Durchschnitt auf alle Kunden umlegt, würde es die Kosten eines Penetrationstests unverhältnismäßig in die Höhe treiben. Kein Kunde würde das bezahlen wollen.  Eine 100%-Sicherheitsgarantie ist leider unrealistisch.

Nichtsdestotrotz werden in den meisten Penetrationstests Sicherheitslücken oder -schwachstellen identifiziert, die das Sicherheitsniveau transparenter machen und Potential zur Verbesserung aufzeigen. In der Praxis sind Pentestberichte mit exakt 0 Findings sehr selten und deuten auf ein extrem hohes Sicherheitsniveau hin. Letztendlich ist für den Kunden wichtig, die genannten Grenzen, aber auch die aufgezeigten Vorteile eines Penetrationsteste zu kennen um die für ihn richtige Entscheidung treffen zu können: Pentest ja oder nein?

1 08, 2014

Wie wird man eigentlich Penetration Tester?

von |1. August 2014|Pentest|3 Kommentare|

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:

  1. IT-Systemadministration (Betriebssysteme, Netzwerke usw.)
  2. Anwendungsentwicklung (diverse Programmiersprachen wie C, Java, PHP, Python)
  3. Theoretische Angriffstechniken: Buffer Overflow, Code Execution, Injections, uvm.
  4. Bedienung von Tools wie Nessus, Nikto, nmap, owasp-zap (damit meine ich nicht auf Skriptkiddie-Niveau)
  5. Entwicklung eigener Tools oder die Weiterentwicklung vorhandener
  6. Strukturierter Vorgehensweisen für Penetration Testing (OSSTMM, OWASP Penetration Testing Guide)
  7. 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.

29 04, 2014

I TRIED HARDER: OSCP-Zertifikat

von |29. April 2014|Zertifizierung|0 Kommentare|

Knapp zwei Monate dauerte es, bis mein Zertifikat zum OSCP (Offensive Security Certified Professional) aus Isreal ankam.

patrick-sauer-oscp

8 03, 2014

Die Verbreitung von Sicherheitszertifizierungen wie CISSP, CISM, CISA, CEH, OSCP & Co

von |8. März 2014|Zertifizierung|9 Kommentare|

Mich hatte die Verbreitung der unterschiedlichen Sicherheitszertifizierungen interessiert. Ich habe dazu eine kleine Statistik mit der erweiterten Suche in Xing aufgestellt. Als Suchbegriff habe ich die Abkürzung vom Zertifikat (z.B. CISSP) und das Schlagwort „Security“ verwendet. Bei OSCP/OSCE hingegen das Schlagwort „Offensive“.

Die Suche in Xing war nicht auf Deutschland begrenzt, die absoluten Zahlen sind sicherlich ungenau und nicht jeder zertifizierte Security-Spezialist ist in Xing angemeldet und hat auch seine Zertifikate eingetragen.

Ich denke aber, dass die relativen Verhältnisse der Verbreitung der Sicherheitszertifizierungen zueinander einigermaßen gut wiedergegeben werden. Das Ergebnis:

2.135 Certified Information Systems Security Professional (CISSP)
1.484 Certified Information Systems Auditor (CISA)
890 Certified Information Security Manager (CISM)
477 Certified Ethical Hacker (CEH)
255 TeleTrusT Information Security Professional (T.I.S.P.)
74 Offensive Security Certified Professional (OSCP)
35 Certified Secure Software Lifecycle Professional (CSSLP)
28 ISSECO Certified Professional for Secure Software Engineering (CPSSE)
23 Offensive Security Certified Expert (OSCE)

Der CISSP vom Isc² ist die verbreitetste Zertifizierung, danach folgen die Certs von ISACA. Der deutsche TISP ist weit abgeschlagen im Vergleich zum CISSP. Zertifikate im Bereich sicherer Softwareentwicklung sind wenig verbreitet (CSSLP / CPSSE). Es gibt wesentlich mehr „Certified Ethical Hacker“ als OSCP/OSCE.

Ansonsten sind 488 CISSP auch CISA, 354 auch CISM, 204 auch CISM und CISA. Auch gibt es nur etwa 8 in Xing, die OSCP und CEH sind. 153 CISSP sind auch CEH, aber nur 12 CISSP auch OSCP.

Beim inhaltlich sehr krassen Unterschied zwischen OSCP und CISM sind es nur noch 6 mit dieser Kombination. OSCP und CISA sind 7. OSCE + CISM sind nur noch 2 und OSCE + CISA nur noch 1. Es scheint nur sehr wenige zu geben, die Security Management oder Audit mit Penetration Testing / Hacking verbinden.

5 03, 2014

Offensive Security Certified Professional (OSCP)

von |5. März 2014|Zertifizierung|0 Kommentare|

Eben kam die E-Mail:

„Dear Patrick,

We are happy to inform you that you have successfully completed the Penetration Testing with Kali Linux certification challenge and have obtained your Offensive Security Certified Professional (OSCP) certification….“

Der OSCP war bisher die einzige Zertifizierung (neben CISSP, CISM, CPSSE, DSB-TÜV) mit eindeutigem Spaß-Faktor. Dafür deutlich anstrengender, härter und wesentlich zeitaufwendiger als die anderen. Ich kann den OSCP von Offensive Security nur weiterempfehlen!

4 03, 2014

Erfahrungen zum OSCP: Teil 9 Die Prüfung – Exam Network

von |4. März 2014|Pentest|2 Kommentare|

Hart, härter, OSCP-Prüfung. Ich habe gestern bzw. heute die Prüfung zum OSCP (Offensive Security Certified Professional) hinter mich gebracht. In einem 24-Stunden-Zeitfenster musste ich in mehrere Server (Windows/Linux) eindringen und privilegierte Rechte erlangen. Eine Prüfung zum CISSP oder CISM mit ein paar Stunden ist dagegen eher ein Spaziergang. Der OSCP ist definitiv schwieriger und härter. Bei den anderen Prüfungen kann man sich durch effizientes Lernen darauf vorbereiten, beim OSCP zählt Erfahrung, Wissen und Können.

Ich denke ich habe die Prüfung erfolgreich hinter mich gebracht: Alle Server übernommen, den Bericht geschrieben und abgegeben. In den nächsten 2-3 Tagen sollte dann das offizielle Ergebnis da sein.

Wer in den Bereich Penetration Testing einsteigen möchte oder ein starkes Interesse an Hacking hat, dem kann ich den Kurs nur empfehlen. Man sollte aber viel Zeit mitbringen. Das zur Verfügung gestellte Labor ist sehr groß und umfangreich. Da gehen schnell viele Abende und Sonntage dahin. Die für den CISSP & Co offiziell anrechenbaren 40 CPE (40 Stunden Fortbildung) sind eher ein Witz – ein Vielfaches an Aufwand ist wesentlich realistischer. Dafür darf man dann – zurecht – stolz auf die erlangte Auszeichnung OSCP sein.

24 02, 2014

Erfahrungen zum OSCP: Teil 8 Report fürs Lab

von |24. Februar 2014|Pentest|0 Kommentare|

Nachdem die meisten Systeme eingenommen sind, wollte ich mit dem Penetration Test Report vom Labor beginnen. Ich hatte bisher meine Dokumentation stichpunkthaft mit Keepnote verfasst. Ich muss zugegeben, ich hätte entweder die Dokumentation parallel zum Hacken im Labor gleich erstellen oder zumindest die Inhalte in Keepnote besser aufbereiten sollen. So muss ich mir wahrscheinlich die meisten Systeme nochmal kurz ansehen. Das war leider keine optimale Vorgehensweise. Ich kann im Nachhinein nur empfehlen, gleich vom Beginn ab mehr Aufwand in den notwendigen Bericht zu stecken.

20 02, 2014

Erfahrungen zum OSCP: Teil 7 Neustart 2014 nach längerer Pause

von |20. Februar 2014|Pentest|0 Kommentare|

Nicht nur mein letzter Blog-Eintrag zum OSCP-Kurs ist aus November 2013, ich hatte in letzter Zeit auch nichts mehr dafür gemacht. Zudem lief mein Lab-Zugang im Dezember aus. Jetzt geht’s wieder los: 30-Tage-Verlängerung vom Lab geordert. Ziel: OSCP im März!

16 11, 2013

Erfahrungen zum OSCP: Teil 6 Manchmal kann es so simpel sein

von |16. November 2013|Pentest|0 Kommentare|

Manchmal kann es so simpel sein. Ich hatte auf einem Linux-Host eine nicht-privilegierte Reverse-Shell per netcat erlangt. Neben root existierte noch ein weiterer User. Nachdem ich mehrere Stunden erfolglos Zeit in die Privilege Escalation über Exploits investiert hatte, war ich kurz vorm Aufgeben für diesen Tag.

Aus purer Verzweiflung wagte ich ein „su username“ und gab einfach als Passwort den Benutzernamen ein. Nicht nur hatte das Erfolg, der Benutzer hatte auch uneingeschränkte sudo-Rechte auf diesem Host. In weniger als einer Minute war ich root.

Wenn man selbst sehr sensibilisiert mit dem Umgang von Passwörtern ist und weiß, wie man sichere Passwörter benutzt und auch einen Passwortsafe verwendet, verschränkt es manchmal ungemein den eigenen Blickwinkel. Irgendwann kommt man nicht mehr intuitiv auf die Idee, dass trivialste Passwort zu versuchen. Manchmal ist es wirklich so simpel.

27 10, 2013

Erfahrungen zum OSCP: Teil 5 Es zieht sich.

von |27. Oktober 2013|Pentest|0 Kommentare|

Mein aktueller Stand:

  • 5x privilegierte Rechte
  • 6x unprivilegierte Rechte
  • Freischaltung DEV- und IT-Netz

Es zieht sich etwas. Das Labor ist enorm groß. Manchmal hat man eine gute Idee und ein wenig Glück, sodass eine Maschine schnell gerootet ist. Dafür rennt man bei anderen Maschinen Angriffsvektoren hinterher, die nicht zu funktionieren scheinen.

Es fühlt sich ein klein wenig an, als würde ich wieder eine wissenschaftliche Abschlussarbeit schreiben. Der OSCP ist sicherlich interessanter, keine Frage. Parallelen gibt es dennoch. Ohne Ausdauer und Ehrgeiz ist auch der OSCP nicht zu schaffen. Insbesondere wenn man noch recht am Anfang ist und mehr als die Hälfte noch vor sich hat.

Ich schätze, dass ich bis zum Ende mehr Zeit investieren werde, als für die Vorbereitungen auf CISSP, CISM, TISP usw. zusammen. Der OSCP bringt 40 CPE für CISSP und CISM –  das ist ein lachhafter Wert. Wer den OSCP in 40 Stunden inklusive Prüfung und Dokumentation erfolgreich hinter sich bringt, hat meine Bewunderung verdient. Ich halte das für nahezu unmöglich.