Die Angst eines jeden Penetration Testers Marc Ruef | 09.08.2010 In meinem privaten Umfeld gibt es so manchen, der sich nicht einfach im Umgang mit seiner Familie tut. Da wird gestritten, bei jeder Gelegenheit. Sei dies nun mit Mutter, Vater, Geschwister, entfernten oder angeheirateten Verwandten. Meine Beobachtungen in dieser Hinsicht ist - und dies lässt sich grundsätzlich auf die meisten Streitereien in unserer Hochkultur übertragen -, dass der Groll in erster Linie dann entsteht, wenn sich jemand nicht ernst genommen und seine Bedürfnisse mit Füssen getreten fühlt. Auch wenn es vielen nicht bewusst ist, so ist doch mitunter durch Anerkennung genährter Stolz eine wichtige Komponente eines jeden Charakters. Ein solcher Stolz findet sich natürlich und manchmal ganz besonders im Wesen eines Penetration Tester wieder. Als Prüfinstanz wird er von vielen als letzte Kompetenz wahrgenommen, die über Gedeih und Verderb eines Projekts zu entscheiden hat - Ein No-Go kann das Aus für ein Produkt bedeuten. Penetration Tester, leisten sie denn konsequent gute Arbeit, geniessen einerseits diese ihnen zugetragene Anerkennung. Gleichzeitig kann sie sich aber auch schnell in eine Bürde wandeln. Ich kann mich noch sehr gut an meine Anfänge in diesem Bereich erinnern. Jede Prüfung war ein Abenteuer. Jede Rückantwort, die ich von einem Server provozieren konnte, liess noch mehr Adrenalin in meinem Körper ausschütten. Es war pure Freude, sich erstmals mit Grossrechnern in umfangreichen Netzwerken und geschützten Server-Räumen auseinanderzusetzen. Und jedes Finding, jede gefundene Schwachstelle, sollte das eigene Ego stärken. Doch irgendwann kam der Moment, bei dem man vor einem Prüfobjekt steht, in dem man einfach keine Schwachstellen finden kann. Ein Server, der in derartig umfassender Weise gehärtet ist, dass man selbst mit dem Umsetzen eines zuverlässigen Portscan Probleme hat. Oder ein Netzwerkgerät, das man einem Blackbox-Test unterziehen soll, das schlichtweg keine erweiterte Funktionalität und damit auch keine Angriffsfläche offenbart. Sowas ist schlimm. Bei mir war es ein Windows NT 4, das mich fast zur Verzweiflung getrieben hat. Wir schrieben das Jahr 2001 und mittlerweile hatte sich langsam dessen Nachfolger Windows 2000 etabliert. Als konsequenter Linux-User (zwischen 1998 und 2002 habe ich privat ausschliesslich offene Betriebssysteme benutzt) liess ich es mir bei Beratungsprojekten nicht nehmen darauf hinzuweisen, dass ich selbst niemals freiwillig einen NT-Server ins Internet stellen würde: Zu gross sei die Angriffsfläche, zu schwierig die Möglichkeit, ein wirklich sicheres System erreichen zu können. Und in den meisten Fällen hatte ich Recht. Doch da war es nun: In meiner Konsole versuchte ich wie wild ein NT4 im Internet anzugreifen und es tat keinen Mucks. Ich habe alle Arten von Portscans probiert, konnte jedoch noch nicht einmal die typischen Ports eines solchen Systems - halt die klassischen NetBIOS-Dienste - ausmachen. Mir wurde gesagt, dass das System direkt im Internet steht und ohne Zuhilfenahme von 3rd Party Software abgesichert wurde. Ich konnte es nicht glauben. Dieses System verhielt sich wie ein gehärtetes Debian - Doch es war ein NT4 ... Ich konnte es einfach nicht glauben! Verzweifelt habe ich versucht am System zu rütteln - Im übertragenen Sinn. Doch ich scheiterte. Jeder meiner Zugriffe scheiterte. Ich konnte keine Dienste ausmachen. Keine Angriffsfläche. Was sollte ich bloss tun? Was sollte ich dem Kunden erzählen? Wie sollte ich rechtfertigen, dass ich eine für seine Unsicherheiten bekannte Plattform nicht mal ansatzweise tangieren konnte? Ich hatte das Gefühl, als stünde mein Ruf auf dem Spiel. Ein Ruf, den ich mir über die Jahre mühsam versucht habe aufzubauen ... In den kommenden Nächten tat ich kein Auge zu. Mein drohendes Scheitern liess mir keine Ruh'. Doch irgendwann realisierte ich, dass ich ja eigentlich gar nichts falsches tat. Ich verstand, dass meine Prüfung einem wissenschaftlichen Prozess gleicht. Zwar versuche ich durch meine Tests die vermutete Unsicherheit zu "verifizieren". Eine wissenschaftliche Untersuchung kann eine Vermutung jedoch auch "falsifizieren". Die Validierung, dass eine Annahme falsch ist, ist fast so wertvoll, wie das Gegenteil - Sofern man denn der triadischen Prinzip von These-Antithese-Synthese (Dialektik) folgt. Ich schien gerettet, wenigstens ein bisschen. Im Rahmen des Reportings machte ich mich also daran, das Projekt umfangreich zu dokumentieren. Es ging zum ersten Mal aber nicht primär darum, die Resultate bzw. Sicherheitslücken schön aufzubereiten. Stattdessen fokussierte ich mich darauf aufzuzeigen, welche Angriffsversuche ich unternommen hatte und wieso sie gescheitert sind (die abgeschotteten Ports kamen übrigens durch Tweaking von IPsec-Regeln zustande). Das ist so, wie wenn ein Arzt seinem Patienten mittels Ausschlussdiagnose erklärt, warum er gesund ist und die erwartete Krankheit eben nicht haben kann. Während ich die angestrebten Angriffsversuche dokumentierte, wurde mir bewusst, dass nicht ich als Penetration Tester versagt hatte. Viel mehr hatten die Tests als solche versagt, Schwachstellen zu identifizieren. Da ich jedoch sämtliche bekannten Tests im Zeitrahmen des Projekts angewandt und quergeprüft hatte, konnte ich jedoch eine umfassende und qualifizierte Aussage treffen. Und darum geht es bei einer Sicherheitsprüfung. Das Finden von Sicherheitslücken ist damit nur eine Form davon, dieses Ziel zu erreichen. Das Verstehen, warum man eine Schwachstelle nicht vorfindet, ist ein mindestens so wichtiges Werkzeug eines guten Penetration Testers.