Änderungen im PCI 3.0 Req. 11.3 Penetration Testing – Erläuterungen und Diskussion

Der PCI DSS 3.0 verlangt in Requirement 11.3 die Durchführung von Penetrationstests. Im älteren PCI-Standard 2.0 umfasste das bisher primär einen Penetrationstest auf Netzwerk- sowie auf Anwendungsebene, der sowohl von extern als auch von intern durchgeführt werden musste. Der Penetration Tester musste dabei natürlich qualifiziert und unabhängig sein.

Diese Punkte sind zwar inhaltlich auch im neuen PCI DSS 3.0 enthalten, jedoch wurden die Anforderungen und auch der Umfang der Penetrationstests erhöht. Nachfolgend möchte ich das neue Requirement 11.3 besprechen und auf die neuen Details eingehen.

11.3 Implement a methodology for penetration testing that includes the following:
– Is based on industry-accepted penetration testing approaches (for example, NIST SP800-115)

Durch den zwingenden Verweis auf eine allgemeine akzeptierte Best-Practice Vorgehensweise wie NIST SP800-115 sind damit alle Pentest-Monkeys raus, die einfach nur ein paar Tools wie Metasploit, Nessus & Co benutzen und das ganze dann in einen Report fassen. Andere aus meiner Sicht akzeptierte Vorgehensweisen sind der OWASP Testing Guide oder auch OSSTMM. Interessanterweise beinhaltet der NIST SP800-115 zwar auch Vorgehensweisen zum klassischen Penetration Testing, behandelt aber insgesamt das Thema „Information Security Testing and Assessment“. Ich hätte hier eigentlich einen Verweis auf ein reines Pentesting-Dokument erwartet. Damit deutet sich eine Erweiterung des eigentlichen Penetration Testing im Sinne des PCI DSS an, der z.B. zusätzlich auch technische Reviews beinhalten kann.

– Includes coverage for the entire CDE perimeter and critical systems
– Includes testing from both inside and outside the network
– Includes testing to validate any segmentation and scope-reduction controls

Die ersten beiden Punkte sind nicht neu. Der Pentest muss die gesamte PCI-Umgebung umfassen und von außen sowie von innen durchgeführt werden. Der dritte Punkt hat es dafür in sich: Die (oftmals vorhandene) Netzwerksegmentierung zwischen PCI-Scope und Nicht-PCI sowie die dafür eingesetzten Sicherheitsmaßnahmen müssen auf ihre Wirksamkeit hin geprüft werden. Mein erster Gedanke dabei war: Wie soll ein Penetration Tester das umsetzen? Eigentlich geht das nur über einen kompletten Review der Netzwerkpläne, Kommunikationsverbindungen und Firewall-Regeln, die für die PCI-Umgebung und die daran angeschlossenen Bereiche relevant sind. Das kann dann sicherlich durch einzelne klassische Techniken des Penetration Testing ergänzt werden, aber eigentlich fordert dieser Punkt mehr einen technischen Security-Audit. Diese Änderung geht dabei in die gleiche Richtig wie der vorher beschriebene Verweis auf den NIST SP 800-115. Der Penetrationstest wird mehr zu einem Security Assessment erweitert. Kernbestandteil bleibt zwar weiterhin der eigentliche Penetration Test, jedoch wird das der Umfang eines Penetrationstest im Sinne des PCI DSS durch die Änderung im neuen Standard 3.0 deutlich erweitert.

– Defines application-layer penetration tests to include, at a minimum, the vulnerabilities listed in Requirement 6.5
– Defines network-layer penetration tests to include components that support network functions as well as operating systems
– Includes review and consideration of threats and vulnerabilities experienced in the last 12 months
– Specifies retention of penetration testing results and remediation activitiesresults.

Die letzten Punkte konkretisieren noch etwas genauer, was eigentlich geprüft werden soll, und dass gefundene Schwachstellen natürlich angemessen behandelt werden wollen. Das ist inhaltlich identisch mit dem alten Standard, außer dass noch ein Augenmerk auf die Bedrohungen und Schwachstellen der letzten 12 Monate gelegt werden muss. Die Umsetzung erfordert in diesem Punkt eine sehr gut gepflegte Dokumentation eines Unternehmens, welchen Bedrohungen und Schwachstellen es ausgesetzt war. Der Penetration Tester muss dann diese Punkte speziell nochmals verifizieren.

11.3.1 Perform external penetration testing at least annually and after any significant infrastructure or application upgrade or modification (such as an operating system upgrade, a sub-network added to the environment, or a web server added to the environment).
11.3.2 Perform internal penetration testing at least annually and after any significant infrastructure or application upgrade or modification (such as an operating system upgrade, a sub-network added to the environment, or a web server added to the environment).
11.3.4 If segmentation is used to isolate the CDE from other networks, perform penetration tests at least annually and after any changes to segmentation
controls/methods to verify that the segmentation methods are operational and effective, and isolate all out-of-scope systems from in-scope systems.

In der Häufigkeit der Pentests gab es keine inhaltliche Änderung: Jährlich oder nach signifikanten Änderungen. An der Frage, was eigentlich genau signifikante Änderungen sind, scheiden sich immer noch die Geister. Eigentlich ist der PCI-Standard da sehr deutlich, so ist z.B. ein neuer Webserver bereits eine signifikante Änderung. In der Praxis hängt das von der Bewertung des Auditors ab. Aus der reinen sicherheitsrelevanten Betrachtung wäre es natürlich optimal, nach jeder (signifikanten) Änderung einen Test durchführen zu lassen. In der Realität müsste man jedoch bei Tagessätzen von über 1.000€ für Pentester gleich das Security-Budget enorm aufwerten. Unternehmen müssen in der Praxis für die Auslegung des schönen Begriffs „signifikant“ viel Feingefühl verwenden. Ansonsten muss auch bei Änderungen der Segmentierung zwischen Scope vs. Non-Scope ein neuer Pentest durchgeführt werden.

Wie sonst auch oft im PCI DSS verstecken sich gerne in den Prüfprozeduren für die eigentlichen Anforderungen weitere Anforderungen. Im Bereich des Requirements 11.3 ist dieses auch so:

Verify that the test was performed by a qualified internal resource or qualified external third party, and if applicable, organizational independence of the tester exists (not required to be a QSA or ASV).

Diese versteckte Anforderung in den Testprozeduren zum 11.3er wurde inhaltlich zum PCI-Standard 3.0 nicht geändert. Der Pentester muss kein QSA oder ASV sein und es wird kein konkreter Nachweis einer bestimmten Qualifikation gefordert. Sofern die Qualifikation offensichtlich ist, also der Pentester z.B. mehrere Jahre Berufserfahrung als Penetration Tester oder einschlägiger Zertifikate wie z.B. den OSCP nachweisen kann, ist die Sache klar. Ansonsten liegt es im Ermessen des Auditors. Unabhängig muss er verständlicherweise auch sein, d.h. entweder ist er gleich von einem anderen Unternehmen oder er ist innerhalb des Unternehmens unabhängig von der eigentlichen IT.

Insgesamt denke ich, dass die Änderungen im PCI DSS 3.0 bezüglich des Requirements 11.3 richtig und gut sind. Die Durchführung nach einem international akzeptierten Vorgehensmodell ist zwar keine Garantie für einen guten Penetrationstest, aber zumindest eine Voraussetzung dafür. Die neue Prüfung der Effektivität der Scope-Trennung wird primär nur durch den Einsatz von Reviews möglich sein. Letztendlich führt hier der Penetration Tester eine technisch fundiertere Analyse durch, als es ein Auditor bei der Festlegung vom Scope durchführen kann.

Literatur & mehr fürs Pentesting

Eine kleine – unvollständige – Übersicht über die verfügbare Literatur, Kurse usw. für Pentesting:

Kurse

Der OSCP (Offensive Security Certified Professional) von Offensive Security ist absolut sein Geld wert. Krassere Lernkurve geht kaum. Neben dem sehr guten Lab wird noch eine PDF und Videos mitgeliefert. Mehr Exploit Development gibts beim OSCE von Offensive..

Bücher

Für Exploit Development recht gut:

  • Hacking: Die Kunst des Exploits
  • Aus dem Tagebuch eines Bughunters: Wie man Softwareschwachstellen aufspürt und behebt

Ein älteres Buch (2007) über grundsätzliches Penetration Testing:

  • Die Kunst des Penetration Testing – Handbuch für professionelle Hacker

Metasploit ist zwar nicht gleich Pentesting, aber die Bücher sind ganz ok:

  • Penetration Testing mit Metasploit: Eine praktische Einführung
  • Metasploit: Das Handbuch zum Penetration-Testing-Framework

Online

Für Webanwendungen einfach OWASP.org besuchen. Der Pentesting Guide ist recht gut:

  • https://www.owasp.org/index.php/OWASP_Testing_Project

Für Metasploit gibts noch:

  • http://www.offensive-security.com/metasploit-unleashed/Requirements

 

Hausarbeit in Recht: Sicherheitsstandards zur sicheren Zahlung

Beim Sortieren alter Unterlagen vom Master-Studium Security Management bin ich über eine Hausarbeit aus der Vorlesung Recht gestolpert – vielleicht interessiert sich jemand dafür:

Download PDF: Sicherheitsstandards zur sicheren Zahlung – Übersicht über die internationalen, europäischen und nationalen Standards zur Sicherung von elektronischen Zahlungen sowie die Bewertung der Regelungen nach Verbindlichkeit und Freiwilligkeit

Google, Du hast gewonnen: Ich nutze ab sofort Google Drive für meine Daten

Der Security-Spezialist in mir weigerte sich jahrelang Cloud-Dienste in größerem Umfang zu nutzen. Gibt man schließlich private Daten in die Cloud, gibt man die absolute Kontrolle darüber ab. Meine Meinung darüber hat sich nicht wesentlich geändert, ich habe nur kapituliert.

Gegen die Geheimdienste bin ich ohnehin weitgehend machtlos und Krypto ist einfach für gewöhnliche private Daten viel zu aufwendig. Gegen 08/15-Hacker-Attacken wird sich Google sicherlich zu verteidigen wissen. Zumindest erscheint mir das Security-Konzept von Google auf den ersten Blick vorbildlich zu sein. Ich vertraue der Datenkrake Google unter Security-Aspekten wesentlich mehr als den Datenkraken Facebook oder Dropbox. Microsoft erwähne ich besser gar nicht erst.

Mittlerweile hat man nicht mehr nur einen PC oder Laptop, sondern einen ganzen Wildwuchs an Endgeräten: PCs, Laptops, Smartphones und Tablets. Ein paar Hundert Gigabytes an MP3s, Bildern, Vorlesungsunterlagen, uvm. kann man nur noch auf großen Datenträgern auslagern. Wenn man früher noch eine verschlüsselte externe Festplatte mitnahm, ist es heute nur noch umständlich: Wie schließe ich ein Tablet an eine verschlüsselte externe Festplatte an? Gar nicht.

Google kennt viele meiner Mails, mein komplettes Suchverhalten, synchronisiert von meinem Android-Device keine Ahnung was alles auf seine Server. Habe ich eigentlich noch wirklich eine Kontrolle, wer welche Daten von mir hat? Welche App auf meinem Smartphone welche privaten Daten von mir ins Ausland schickt? Nicht wirklich. Ich habe nur noch eine Pseudo-Kontrolle.

Ich könnte mir eine eigene Private Cloud aufbauen. Es gibt freie Software dazu, das ist nicht das Problem. Fehlt noch der Server, der schön regelmäßig Geld verschlingt. Dazu ist mir meine eigene private Zeit zu kostbar geworden, um Stunden oder gar Tage in irgendwelche Setups zu investieren, die dann nur mehr oder wenig gut funktionieren. Das ist keine Alternative mehr, der Aufwand ist zu hoch.

Ich habe mir jetzt testweise 100GB in Drive geholt, und werde vermutlich auf 1TB upgraden. Ich werde sicher keine wirklich privaten Dateien in die Cloud schieben. Für den Rest ist es einfach zu praktisch von allen Clients problemlos unterwegs auf Dateien in Drive zugreifen zu können. Ich kann nicht mehr kontrollieren, wer im Zweifel darauf zugreifen kann. Ich bin mir darüber bewusst, dass Google E-Mails scannt und ein amerikanisches Unternehmen ist.

Wenn ich aber die Risiken gegenüber den Vorteilen abwäge, ist die Entscheidung klar. Google du hast gewonnen, ich kapituliere: Technischer Fortschritt und maximale Privatsphäre lässt sich nicht vereinbaren. Man muss den persönlichen Kompromiss finden…

Der Zertifikats-Kürzel-Irrsinn hinter dem Nachnamen

Aus Marketing-Gründen bin ich z.B. bei LinkedIn selbst nicht besser, trotzdem nervt es so etwas in Fachzeitschriften zu lesen (fiktives Beispiel):

Der IT-Sicherheitsexperte Patrick Sauer, MSc, Diplom(FH), CISSP, CISM, OSCP, TISP, CPSSE, DSB-TÜV hat gestern mit seinem Kollegen Max Mustermann, PhD, MSc, CISSP, CISA, CISM und Frau Maxi Musterfrau, CISA, ISMS Auditor/Lead Auditor nach ISO/IEC 27001 nichts bahnbrechendes geschaffen, allerdings mussten die Titel und Zertifikate dringend einmal wieder leicht dezent in den Vordergrund gebraucht werden.

Akademische Abschlüsse wie B.Sc., M.Sc. oder Ph.D. hinter dem Nachnamen – okay. Aber muss man wirklich Zertifikate dahinten setzen? Und dann auch noch mehrere? Ganz ehrlich: Das liest sich in Fließtexten besonders – äh – suboptimal! Eins wäre ja noch ok, man könnte es auch hinter dem Nachnamen in Klammern setzen, aber diese aktuelle Unsitte Security-Zertifikate wie akademische Abschlüsse hinter dem Namen zu führen, ist in manchen Situationen nur noch peinlich.

Aufgrund meines CISM von der ISACA steht bei Post von dieser Organisation in der Anschrift direkt „Patrick Sauer, CISM“. Manchmal frage ich mich, was mein Postbote wohl denken muss. Ich sollte beim Briefkasten vielleicht einfach meine gesammelten Zertifikate aufzählen. Hat zwar kaum jemand auch nur eine Idee, was das sein soll, aber irgendwie muss man sich hochkompetent hervorzeigen.

Nur eine Meinung vom IT-Sicherheitsexperten Patrick Sauer, MSc, Diplom(FH), CISSP, CISM, OSCP, CPSSE, DSB-TÜV zur Unsitte Zertifikate hinter den Nachnamen zu setzen…..

Penetration Testing von IPv6-Netzwerken

Ein gewöhnliches IPv4-Netzwerk besteht nicht aus sonderlich vielen IP-Adressen. Ein /24er Block besteht aus 256 Adresse. Selbst bei einem wesentlich größerem /22 existieren nur 1.024 Adressen. Auch wenn nicht alle nutzbar sind (Network, Broadcast) bleiben wir einmal bei diesen Zahlen.

Relativ am Anfang eines Penetrationstests einer IT-Infrastruktur bzw. einem Netzwerk steht die Identifizierung der Live-Hosts, also der IP-Adressen, die tatsächlich einem Host zugewiesen sind. Das kann durch einen kurzen Ping-Sweep passieren oder man ignoriert ICMP und scannt den maximalen Port-Range über TCP und UDP. Vergleicht man beide Fälle anhand eines /22er-Blocks ergibt das bei einem Ping-Sweep 1.024 zu verschickende Anfragen und bei einem Scan über den gesamten Port-Bereich inkl. TCP und UDP bereits 1.024*65.535*2 = 134.215.680 – über 130 Millionen Anfragen, um absolut zuverlässig alle aktiven Hosts in einem /22 erkennen zu können.

Definitiv ist der Scan über alle Ports relativ zeitintensiv, aber noch realisierbar. Gehen wir einmal davon aus, dass ein Host jede Anfrage mit CLOSED o.ä. beantwortet und der Scanner nicht in einen Timeout läuft. Bei einer angenommenen Netzwerk-Latenz von 1ms (Gigabit-Ethernet) dauert der Scan – sofern nicht parallelisiert – ca. 37 Stunden. Wird der Scan um den Faktor 10 parallelisiert, ist er in 3,7 Stunden fertig. Selbst der komplette Scan eines etwas größeren IPv4-Netzes ist kein gigantisches Problem.

Und dann kam IPv6.

Nachdem der Adressraum bei IPv6 128bit beträgt, im Gegensatz zu 32bit bei IPv4, sind die Netze wesentlich größer. Gehen wir einmal von einem kleineren /56 IPv6-Netz aus. Das sind gerade einmal 9.223.372.036.854.775.808 Adressen. Also knapp 10^19 Adressen. Selbst wenn man nun auf einen vollständigen Scan verzichtet und nur einen Ping-Sweep zur Erkennung der Live-Hosts nutzt, sind das immernoch 10^19 Anfragen, die verschickt werden müssen. Nehmen wir an, wir verschicken (unrealistischer Weise) 100.000 Anfragen gleichzeitig, die alle in 1ms beantwortet werden. Wie lange dauert dann nur ein simpler Ping-Sweep über ein /56-Netz? 10^11 Sekunden bzw. 27.777.777 Stunden bzw. 1.157.407 Tage bzw. 3.170 Jahre. Ein Scan über ein komplettes „kleines“ IPv6-Netz – unmöglich!

Es gibt zwar verschiedene statische Häufungen, wie Netzwerk-Administratoren IPv6-Adressen vergeben, aber selbst die Berücksichtigung beliebter Bestandteile von IPv6-Adressen wie „:dead:“, „:b00b:“, „:cafe:“ oder „:babe:“ schränkt die Auswahl nicht zuverlässig genug für einen Penetrationstest ein.

Ein anderer Ansatz ist das Sniffen des gesamten IPv6-Verkehrs über Mirror/Monitoring-Ports an zentralen Core-Switche über eine gewisse Dauer. Das setzt natürlich nicht nur die grundsätzliche technische Möglichkeit voraus, sondern auch die Kooperation des Unternehmens. Sofern man einmal betriebliche oder datenschutzrechtliche Bedenken außen vor lässt – Datenschutzbeauftragte (Abgreifen von personenbezogenen Daten) und Betriebsräte (Achtung mögliche Leistungskontrolle) werden das in der Praxis sicherlich zu verhindern wissen. Technisch grundsätzlich möglich, ob wirklich umsetzbar sei einmal dahingestellt.

Bleibt eigentlich nur noch eine Liste mit IPv6-Adressen von den Administratoren des Zielnetzwerks zu erfragen. Idealerweise wird der Bestand von Hosts und verwendeten IP-Adressen in irgendeiner Datenbank oder Datei gepflegt. In wie weit solch eine Liste vollständig ist, kann man naturgemäß von außen nicht wirklich beurteilen. Es bleibt nur noch übrig, diese Liste mit möglichen weiteren IP-Adressen zu ergänzen, die man z.B. durch DNS Enumeration o.ä. gewinnen kann.

Egal wie, absolut vollständige Penetrationstests von IPv6-Netzwerken sind fast unmöglich zu garantieren. Ein Penetrationstests von IPv6-Netzwerken kann vollständig sein, muss er aber nicht. Das schlimmste daran ist, dass man nicht wissen wird, ob ein Test nun alle Hosts betrachtet hat oder nicht.

First Car-Hacking: Tesla S

Endlich, es hat auch lange gedauert. Stimmen die Bericht auf SPON und in der FAZ, ist es chinesischen Studenten gelungen über eine Schwachstelle in einer Handy-App zur Fernsteuerung des Autos einen Tesla S während der Fahrt zu hacken: Lampen einschalten, Schiebedach öffnen & mehr.

Warum muss man eigentlich alles aus dem Internet fernsteuern können? Und muss ich wirklich mein Auto per App steuern können? Ist das wirklich die Welt, in der wir leben wollen: Haustür per App öffnen/verschließen, per App den Ofen anschalten, das Auto öffnen/schließen, die Waschmaschine starten?

Sicher, es ist bequem. Und was passiert, wenn einem das Smartphone gestohlen wird? Per Passwort-Reset über das auf dem Handy eingerichtete Mailkonto können schon die meisten Online-Accounts gekapert werden. Zukünftig wird dann noch das Auto übernommen oder gleich das Haus als Party missbraucht, wenn man im Urlaub ist.

Dabei können Hacker zukünftig über die Fernsteuerung von Autos noch viel mehr Schäden anrichten: Anonyme Morde & terroristische Attacken per Car-Hacking? An den Meistbietenden zu verkaufen. Ich hoffe zwar, dass die Autoindustrie aus diesen akademischen Hacks am Telsa S schnell genug lernt und in allen Bereichen der Fahrzeugentwicklung IT-Sicherheit einen sehr hohen Stellenwert bekommt, aber ich glaube nicht daran.

Und dabei gibt es noch ganz andere Herausforderungen: Sicherheitsupdates beim Auto! Wie lange werden Autos zukünftig mit Updates versorgt? Wie schnell werden sie ausgeteilt? Was passiert bei Software-Bugs durch das Update? Patch-Day am 1. Mittwoch des Monats bei Tesla? Gruselige Vorstellung.

Es wird sicherlich noch eine Zeit dauern, bis Autos nicht nur ständig online und per App steuerbar sind, sondern diese Features auch in den Massenmarkt kommen. Hoffentlich lernt die Autoindustrie aus den Fehlern anderer, bevor sie sie selbst begeht. Am besten werfen sie einfach mal einen Blick auf das Update-Chaos bei Android und gebrandeten Versionen der Mobilfunkprovider. Man darf gespannt sein..