Dr. Frank Simon ist in der Zurich Gruppe Deutschland für die IT-Security verantwortlich. Das Aufgabenfeld reicht dabei von der sicheren Softwareentwicklung, über prozessorale, technische und organisatorische Sicherheitsvorgaben bis hin zu gesamtheitlichen Bedrohungsanalysen. Dabei bringt er 30 Jahre Erfahrung im Bereich der holistischen Qualitätssicherung verschiedener Qualitätseigenschaften ein und berücksichtigt hier insgesamt besonders technische Aspekte wie Architekturen und Bad Smells. Darüber hinaus ist er Mitglied des German Testing Boards (GTB), in dem er die Leitung des Business Development und der Security AG inne hat.
Dr.-Ing. Jürgen Großmann ist Teamleiter im Geschäftsbereich System Quality Center (SQC) am Fraunhofer-Institut FOKUS. Er ist verantwortlich für die Durchführung von Forschungsprojekten zur Validierung und Verifikation von vernetzten und eingebetteten Softwaresystemen im Spannungsfeld zwischen Wissenschaft und Industrie. Seine Schwerpunkte sind modellbasierte Softwareentwicklung, modellbasiertes Testen sowie Testautomatisierung. Ergänzend dazu arbeitet er als Experte für IT-Sicherheit im Bereich kritischer Anwendungen der Automobilindustrie und im Finanzsektor.
Dipl.-Math. Christian Alexander Graf ist freiberuflich tätiger Berater und Trainer. Seit mehr als 17 Jahren beschäftigt er sich beruflich mit Themen rund um Datenanalyse, Planungssysteme, Kennzahlen, Qualitätssicherung, Prozessanalyse und -optimierung, Softwaretest und Validierung. An der Dualen Hochschule Baden-Württemberg in Mannheim unterrichtet er in den Fächern Mathematik, Operations Research und Informatik und im Studiengang technische Informatik das Fach IT-Security. Er ist aktives Mitglied in der American Statistical Association und im Verein Deutscher Ingenieure.
Prof. Dr. Jürgen Mottok (ZD.B-Forschungsprofessor) lehrt Informatik an der OTH Regensburg und ist wiss. Leiter des Laboratory for Safe and Secure Systems (LaS3). Seine Lehr- und Forschungsgebiete sind Software Engineering, Real-Time Systems, Functional Safety und IT-Security. Er ist Träger des Preises für herausragende Lehre, der vom Bayerischen Staatsministerium für Wissenschaft, Forschung und Kunst vergeben wird.
Prof. Mottok ist in Programmkomitees zahlreicher wiss. Konferenzen vertreten, Vorstandsmitglied des Bayerischen IT-Sicherheitscluster e.V. und Vorstand des Lehren von Software Engineering e.V.
Dipl.-Inform. Martin A. Schneider ist wissenschaftlicher Mitarbeiter (Senior) am Fraunhofer-Institut FOKUS. Er beschäftigt sich mit analytischen Methoden zur Qualitätssicherung von nichtfunktionalen Qualitätseigenschaften und fortgeschrittenen Testmethoden und -techniken, insbesondere modellbasierte Testtechniken zur Prüfung von IT-Sicherheitsaspekten, basierend auf verschiedenen Fuzzing-Techniken, IT-Sicherheitstestmustern und -metriken im Rahmen unterschiedlicher industrieller Domänen mit speziellem Fokus auf komplexe vernetzte Systeme, cyber-physische Systeme und dienstorientierte Architekturen.
Aus- und Weiterbildung zum
ISTQB® Advanced Level Specialist –
Certified Security Tester
Frank Simon · Frank.simon@zurich.com
Jürgen Grossmann · juergen.grossmann@fokus.fraunhofer.de
Christian Alexander Graf · cg@qasta.de
Jürgen Mottok · juergen.mottok@oth-regensburg.de
Martin A. Schneider · martin.schneider@fokus.fraunhofer.de
Lektorat: Christa Preisendanz
Copy-Editing: Ursula Zimpfer, Herrenberg
Satz: Birgit Bäuerlein
Herstellung: Stefanie Weidner
Umschlaggestaltung: Helmut Kraus, www.exclam.de
Fachliche Beratung und Herausgabe von dpunkt.büchern zum Thema »ISTQB® Certified Tester«: Prof. Dr. Andreas Spillner · Andreas.Spillner@hs-bremen.de
Bibliografische Information der Deutschen Nationalbibliothek
Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.d-nb.de abrufbar.
ISBN:
Print978-3-86490-618-3
PDF978-3-96088-617-4
ePub978-3-96088-618-1
mobi978-3-96088-619-8
1. Auflage 2019
Copyright © 2019 dpunkt.verlag GmbH
Wieblinger Weg 17
69123 Heidelberg
Hinweis:
Dieses Buch wurde auf PEFC-zertifiziertem Papier aus nachhaltiger Waldwirtschaft gedruckt. Der Umwelt zuliebe verzichten wir zusätzlich auf die Einschweißfolie.
Schreiben Sie uns:
Falls Sie Anregungen, Wünsche und Kommentare haben, lassen Sie es uns wissen: hallo@dpunkt.de.
Die vorliegende Publikation ist urheberrechtlich geschützt. Alle Rechte vorbehalten. Die Verwendung der Texte und Abbildungen, auch auszugsweise, ist ohne die schriftliche Zustimmung des Verlags urheberrechtswidrig und daher strafbar. Dies gilt insbesondere für die Vervielfältigung, Übersetzung oder die Verwendung in elektronischen Systemen.
Es wird darauf hingewiesen, dass die im Buch verwendeten Soft- und Hardware-Bezeichnungen sowie Markennamen und Produktbezeichnungen der jeweiligen Firmen im Allgemeinen warenzeichen-, marken- oder patentrechtlichem Schutz unterliegen.
Alle Angaben und Programme in diesem Buch wurden mit größter Sorgfalt kontrolliert. Weder Autor noch Verlag noch Herausgeber können jedoch für Schäden haftbar gemacht werden, die in Zusammenhang mit der Verwendung dieses Buches stehen.
5 4 3 2 1 0
|
Zu diesem Buch – sowie zu vielen weiteren dpunkt.büchern – können Sie auch das entsprechende E-Book im PDF-Format herunterladen. Werden Sie dazu einfach Mitglied bei dpunkt.plus+: www.dpunkt.plus |
»Mit dem Wissen wächst der Zweifel.«
Johann Wolfgang von Goethe, Maximen und Reflexionen
Bereits im Herbst 2015 waren mit dem Start des Beta-Reviews des ISTQB® Security-Tester-Lehrplans die Weichen gestellt: »ISTQB goes Security.« Im Sommer 2016 wurde dann der Syllabus in der finalen Version veröffentlicht. Im German Testing Board (GTB), dem deutschen Repräsentanten des ISTQB®, war bereits nach der Bekanntgabe der Kursankündigung schnell klar, dass dies ein höchst logischer Schritt zur bedarfsgerechten Erweiterung des gesamten Schulungsportfolios war. Als dann der finale Syllabus mit 86 Seiten erschien, kamen die ersten Zweifel: Was für eine umfangreiche Themensammlung! Wie aufwendig wird eine Lokalisierung für den deutschen Markt sein?
Und doch: Das German Testing Board hat sehr bald eine eigene Security-Arbeitsgruppe gegründet, um initial erst einmal die entsprechenden Experten zusammenzubringen. Sie sollten den Inhalt verstehen, in einen deutschen Lehrplan überführen, für spätere Zertifizierungen die entsprechenden Fragen erstellen und ggf. sogar ein begleitendes Buch verfassen. Als dann die ersten Einladungen verschickt waren, kamen die nächsten Zweifel: Jeder Security-Experte ertrinkt seit Jahren in Arbeit, kann hervorragende Tagessätze abrufen und hat darüber hinaus noch fortwährend die Aufgabe, sein Wissen kontinuierlich irgendwie aktuell zu halten. Und dann kommt noch die Einladung, sich innerhalb eines »Testing-Vereins« ehrenamtlich zu engagieren? An Abenden und Wochenenden? Für Ruhm und Ehre?
Und doch: Es hat sich eine schlagkräftige Gruppe gefunden, die sich der Übersetzung angenommen hat. Schnell wurde klar, dass das mehr als eine einfache Übersetzung ist und die Lokalisierung im Vordergrund steht: Schon über die Frage, wie denn »Security-Tester« übersetzt werden kann, lässt sich trefflich streiten. Ebenso wie über die Vielzahl nationaler/europäischer Normen und Vorgaben, die gerade für den Sicherheitstester in Deutschland relevant werden würden. Erneut kamen Zweifel auf, ob das »Cross-Site-Scripting« tatsächlich mit »webseitenübergreifenden Skripten« übersetzt werden sollte? Ob das »Salting« tatsächlich mit »Salzen« übersetzt werden kann? Ob »Social Engineering« tatsächlich dasselbe ist wie »soziale Manipulation«?
Und doch: Im Oktober 2018 konnte nach einem umfangreichen Beta-Review mit vielen späteren Trainingsanbietern der finale, übersetzte und lokalisierte Syllabus zum »Sicherheitstester« veröffentlicht werden. Er lässt sich seitdem kostenlos über die Internetseite des German Testing Board herunterladen. Doch mit 104 Seiten Umfang wuchsen wiederum die Zweifel daran, ob dieser Kurs, dessen Thema allgegenwärtig in der Presse präsent ist, mit seinem enorm breiten Themenspektrum von den Interessenten akzeptiert wird? Einem Spektrum, das von Risikomanagement über Testprozesse und Sicherheitsprozesse bis hin zu spezifischen Sicherheitstesttechniken, entsprechenden Werkzeugen und regulatorischen Vorgaben reicht?
Und doch: Bereits Mitte 2018 fanden sich fünf Security-Begeisterte, die genau diese Herausforderung annahmen: Das extrem umfangreiche Sicherheitstester-Material so weit in einem entsprechenden Buch aufzubereiten, dass sowohl der Prüfungsinteressierte sich hiernach vorbereiten kann als auch der nur Themeninteressierte in diesem Werk ein gutes Kompendium rund um dieses Thema findet. Viele Beispiele sollten es sein, mit einer hohen Praxisrelevanz. Je konkreter die ersten Seiten wurden, desto mehr Zweifel kamen abermals auf: Wie viel Wissen kann beim Leser vorausgesetzt werden? Ist der ISTQB®-Testprozess bereits bekannt? Darf angenommen werden, dass der Leser C oder Java beherrscht? Dass dem Interessierten die Institution BSI und das IT-Grundschutz-Kompendium wenigstens grob bekannt sind? Wie viele tausend Seiten würde das Buch benötigen?
Und doch: Nach unzähligen Telefonkonferenzen, Wochenendmeetings, E-Mail-Schlachten und Sharepoint-Versionsabenteuern ist es im Januar 2019 so weit: Über 400 Seiten geballtes Wissen rund um das Sicherheitstesten stehen bereit, angereichert mit unzähligen Beispielen, fachlichen Exkursen, Referenzen und Erläuterungen. Komplexen Themengebieten wird man nicht dadurch gerecht, dass man sie kleinredet, sondern ihnen angemessen begegnet. Erneut kamen Zweifel, ist der Leser nach der Lektüre nun ausgewiesener Sicherheitstester? Kann er die heute immer schnelllebigeren IT-Systeme wirkungsvoll absichern? Wohlwissend, dass die Hacker vermutlich schon einen Schritt weiter sind?
Und doch: Mit dem Wissen in diesem Buch wird hoffentlich auch Ihr Zweifel wachsen: 100%ige Sicherheit? Vollständiges Beseitigen aller Schwachstellen? Keine Risiken mehr? Zweifel! Aber die werden nicht dadurch ausgeräumt, dass man etwas nicht weiß, sondern dadurch, dass man lernt und fortwährend besser wird.
Viel Spaß beim Sicherheitstesten wünschen die fünf Autoren!
Ein Buch zu schreiben bedeutet für nicht hauptberuflich tätige Autoren wie uns, einen großen Teil der Freizeit zu opfern.
An allererster Stelle möchten wir uns daher bei unseren Partnern und Familien für ihr Verständnis und ihre wundervolle Unterstützung und Ausdauer bedanken. Ohne diese wäre dieses Buch nicht möglich gewesen, denn unsere Freizeit ist eigentlich die Zeit mit ihnen.
Unser Dank gilt ebenfalls dem German Testing Board (GTB), das durch die Gründung der AG Security auch die Autorengruppe selbst zusammengebracht und bei ihrer Arbeit unterstützt hat. Unser Dank gilt ganz besonders den weiteren Mitgliedern der AG Security und den Reviewern des deutschen Sicherheitstester-Lehrplans.
Beim dpunkt.verlag bedanken wir uns herzlich für die umfangreiche Unterstützung in allen organisatorischen und technischen Fragen rund um das Buch und insbesondere, dass der Verlag uns die Gelegenheit gab, dieses Buch überhaupt zu schreiben.
An Professor Dr. Andreas Spillner sei an dieser Stelle ein herzliches Dankeschön gerichtet und ein großes Lob für seine hilfreichen Anmerkungen und Verbesserungsvorschläge bei der Entstehung des Buches.
Frank Simon, Jürgen Großmann, Christian Alexander Graf,
Jürgen Mottok, Martin A. Schneider
P.S.: |
Zu guter Letzt bedanken sich Christian Alexander Graf, Jürgen Mottok, Martin Schneider und Jürgen Großmann ausdrücklich bei Frank Simon für die hervorragende Projektleitung, die vielen Reviews und die professionelle Organisation und Moderation von Telkos und Autorentreffen. Ohne dich, Frank, wäre dieses Buch wahrscheinlich auch 2020 noch nicht fertig. |
Einleitung
1Grundlagen des Testens der Sicherheit
2Zweck, Ziele und Strategien von Sicherheitstests
3Sicherheitstestprozesse
4Sicherheitstesten im Softwarelebenszyklus
5Testen von Sicherheitsmechanismen
6Menschliche Faktoren beim Test der IT-Sicherheit
7Auswertung von Sicherheitstests und Abschlussberichte
8Sicherheitstestwerkzeuge
9Standards und Branchentrends
Anhang
AAbkürzungen
BLiteraturverzeichnis
Index
Einleitung
1Grundlagen des Testens der Sicherheit
1.1Sicherheitsrisiken
1.1.1Die Rolle der Risikobewertung beim Testen der Sicherheit
1.1.1.1ISO 31000
1.1.1.2Das Risiko im Detail
1.1.1.3Grenzen der Risikobewertung
1.1.2Ermittlung der Assets
1.1.2.1Wert eines Assets
1.1.2.2Der Ort eines Assets
1.1.2.3Der Zugriff auf ein Asset
1.1.2.4Der Schutz von einem Asset
1.1.3Analyse von Verfahren der Risikobewertung
1.2Informationssicherheitsrichtlinien und -verfahren
1.2.1Verstehen von Informationssicherheitsrichtlinien und -verfahren
1.2.2Analyse von Sicherheitsrichtlinien und -verfahren
1.3Sicherheitsaudits und ihre Rolle beim Testen der Sicherheit
1.3.1Zweck und Beispiele eines Sicherheitsaudits
1.3.2Risikomodelle für den praktischen Umgang mit Sicherheitsrisiken
1.3.3Mensch, Prozess und Technik
1.4Was Sie in diesem Kapitel gelernt haben
2Zweck, Ziele und Strategien von Sicherheitstests
2.1Einleitung
2.1.1Unbefugtes Kopieren von Anwendungen oder Dateien
2.1.2Fehler in der Zugangskontrolle
2.1.3Cross-Site Scripting (XSS)
2.1.4Pufferüberläufe
2.1.5Dienstblockade (Denial of Service)
2.1.6Man-in-the-Middle-Angriffe und Brechen von Verschlüsselungen
2.1.7Logische Bombe
2.1.8Code Injection (CI)
2.2Der Zweck von Sicherheitstests
2.3Der Unternehmenskontext
2.4Ziele von Sicherheitstests
2.4.1Informationsschutz und Sicherheitstests
2.4.2Ermittlung von Sicherheitstestzielen
2.4.2.1Betrachtung am Beispiel eines mittelständischen Unternehmens
2.5Der Umfang von Sicherheitstests und die Überdeckung von Sicherheitstestzielen
2.5.1Typische Phasen eines Sicherheitstests
2.5.2Umfang von Sicherheitstests
2.6Vorgehensweisen im Sicherheitstest
2.6.1Bestandteile der Vorgehensweise im Sicherheitstest
2.6.2Ursachen mangelhafter Sicherheitstests
2.6.2.1Mangelndes Engagement der Führungsebene und fehlende Bereitstellung von Ressourcen
2.6.2.2Mangelhafte Implementierung der Sicherheitstestvorgehensweise, fehlende Kompetenzen oder Werkzeuge
2.6.2.3Fehlende Unterstützung seitens des Unternehmens oder der Stakeholder
2.6.2.4Fehlendes Verständnis für Sicherheitsrisiken
2.6.2.5Testvorgehensweise, Teststrategie und übergeordnete Richtlinien passen nicht zusammen
2.6.2.6Fehlendes Verständnis für den Zweck des Systems und fehlende technische Informationen
2.6.3Der Sicherheitstest als Business Case aus Sicht der Stakeholder
2.6.3.1Sicherheitstest als Business Case
2.6.3.2Stakeholder
2.7Optimierung der Sicherheitstestpraktiken
2.7.1Überdeckungsgrade für Sicherheitsrisiken
2.7.2Überdeckungsgrade von Sicherheitsrichtlinien und Strategien für den Test
2.7.3Überdeckungsgrade von Sicherheitsanforderungen für den Test
2.7.4KPIs für die Wirksamkeit von Sicherheitstests
2.8Was Sie in diesem Kapitel gelernt haben
3Sicherheitstestprozesse
3.1Einleitung
3.1.1Der Sicherheitstestprozess basierend auf dem Testprozess nach ISTQB®
3.1.2Ausrichtung des Sicherheitstestprozesses an einem bestimmten Entwicklungslebenszyklusmodell
3.2Planung von Sicherheitstests
3.2.1Ziele der Sicherheitstestplanung
3.2.2Das Sicherheitstestkonzept
3.3Entwurf von Sicherheitstests
3.3.1Entwurf von Sicherheitstests für Anwendungen
3.3.1.1Sicherheitsmechanismen, -risiken und Schwachstellen
3.3.1.2Dokumentation von Sicherheitstests
3.3.2Entwurf von Sicherheitstests gestützt auf Richtlinien und Verfahren
3.4Ausführung von Sicherheitstests
3.4.1Schlüsselelemente und Merkmale einer effektiven Sicherheitstestumgebung
3.4.2Bedeutung von Planung und Genehmigungen für Sicherheitstests
3.5Bewertung von Sicherheitstests
3.6Wartung von Sicherheitstests
3.7Was Sie in diesem Kapitel gelernt haben
4Sicherheitstesten im Softwarelebenszyklus
4.1Die Rolle der Sicherheit im Softwarelebenszyklus
4.1.1Der Softwarelebenszyklus und Lebenszyklusmodelle
4.1.2Sicherheit in den Phasen des Softwarelebenszyklus
4.1.3Die Ermittlung von Sicherheitsanforderungen
4.1.4Der Entwurf sicherer Software
4.1.5Die Implementierung sicherer Software
4.1.6Die Integration und Verifikation sicherer Software
4.1.7Die Transition sicherer Software
4.1.8Die Aufrechterhaltung der Sicherheit während des Betriebs
4.1.9Sicherheitstesten im Softwarelebenszyklus
4.2Die Rolle des Sicherheitstestens in der Anforderungsermittlung
4.3Die Rolle des Sicherheitstestens beim Entwurf
4.4Die Rolle des Sicherheitstestens während der Implementierung
4.4.1Der statische Test von Softwarekomponenten
4.4.2Der dynamische Test von Softwarekomponenten
4.4.2.1Whitebox- und Glassbox-Sicherheitstests
4.4.2.2Anforderungsbasierte und risikobasierte Sicherheitstests
4.4.2.3Abdeckungsmaße zur Bewertung von Sicherheitstests
4.5Die Rolle des Sicherheitstestens während der Integration & Verifikation
4.5.1Sicherheitstests während der Komponentenintegration
4.5.2Sicherheitstesten während des Systemtests
4.6Die Rolle des Sicherheitstestens in der Transitionsphase
4.6.1Sicherheitstesten im Abnahmetest
4.6.2Definition und Pflege sicherheitsbezogener Abnahmekriterien
4.6.3Zusätzliche Umfänge betrieblicher Abnahmetests
4.7Die Rolle des Sicherheitstestens während Betrieb & Wartung
4.7.1Sicherheitstesten als Regressions- und Fehlernachtest
4.7.2Penetrationstest
4.8Was Sie in diesem Kapitel gelernt haben
5Testen von Sicherheitsmechanismen
5.1Systemhärtung
5.1.1Das Konzept der Systemhärtung
5.1.2Testen der Wirksamkeit der Mechanismen der Systemhärtung
5.2Authentifizierung und Autorisierung
5.2.1Authentizität und Authentisierung
5.2.2Der Zusammenhang zwischen Authentifizierung und Autorisierung
5.2.3Testen der Wirksamkeit von Authentifizierungs- und Autorisierungsmechanismen
5.3Verschlüsselung
5.3.1Das Konzept der Verschlüsselung
5.3.1.1Kryptografische Grundprinzipien
5.3.1.2Symmetrische Verschlüsselungen
5.3.1.3Asymmetrische Verschlüsselungen
5.3.1.4Hashverfahren
5.3.1.5Transport Layer Security (TLS)
5.3.2Testen der Wirksamkeit gängiger Verschlüsselungsmechanismen
5.3.2.1Tests auf Designschwächen der Verschlüsselung
5.3.2.2Tests auf Schwachstellen in der Implementierung
5.3.2.3Prüfung auf Schwachstellen in der Konfiguration von Verschlüsselungssystemen
5.4Firewalls und Netzwerkzonen
5.4.1Konzepte von Firewalls
5.4.1.1Paketfilterung
5.4.1.2Proxy-Firewall (Vermittler)
5.4.1.3Applikationsfilter
5.4.1.4Dual-Homed Bastion
5.4.2Testen der Wirksamkeit von Firewalls
5.4.2.1Testen der Konfiguration einer Firewall
5.4.2.2Portscans
5.4.2.3Fehlerhafte Netzwerkpakete und Netzwerk-Fuzzing
5.4.2.4Fragmentierungsangriffe
5.4.2.5IT-Grundschutz einer Firewall
5.5Angriffserkennung
5.5.1Verstehen des Konzepts von Werkzeugen zur Angriffserkennung
5.5.2Testen der Wirksamkeit von Werkzeugen der Angriffserkennung
5.5.3Verfahren für die Anomalieerkennung zur Identifikation von Angriffen
5.6Schadprogrammscans
5.6.1Konzepte der Schadprogrammscanner
5.6.2Testen der Wirksamkeit von Schadprogrammscannern
5.7Datenmaskierung
5.7.1Konzept der Datenmaskierung
5.7.1.1Techniken der Datenmaskierung
5.7.1.2Diskussion ausgewählter Techniken der Datenmaskierung
5.7.2Testen der Wirksamkeit von Datenmaskierungsverfahren sowie maskierter Daten
5.8Schulungen
5.8.1Bedeutung von Sicherheitsschulungen
5.8.2Testen der Wirksamkeit von Sicherheitsschulungen
5.8.2.1Der Schulungsprozess
5.8.2.2Szenarien während der Schulung
5.8.2.3Wirksamkeit von Übungen und Prüfungen im Sicherheitstesten
5.9Was Sie in diesem Kapitel gelernt haben
6Menschliche Faktoren beim Test der IT-Sicherheit
6.1Motivation
6.2Kommunikationsmodelle für Social Engineers
6.2.1Kanalmodell nach Berlo
6.2.2Kommunikationsquadrat nach Friedemann Schulz von Thun
6.2.3Feedback nach den logischen Ebenen nach Dilts
6.2.4Wertemodell nach Graves/Falter/Mottok
6.3Verstehen der Angreifer
6.3.1Der Einfluss des menschlichen Verhaltens auf Sicherheitsrisiken
6.3.2Verstehen der Mentalität von Angreifern
6.3.3Allgemeine Motive und Quellen für Angriffe auf Computersysteme
6.3.4Angriffsszenarien und -motive
6.3.4.1Erfassung und Authentifizierung
6.3.4.2Reaktion bei Sicherheitsstörfällen
6.3.4.3Analyse und Beweissicherung
6.4Social Engineering
6.5Sicherheitsbewusstsein
6.5.1Die Bedeutung des Sicherheitsbewusstseins
6.5.2Schärfung des Sicherheitsbewusstseins
6.6Zwei Fallbeispiele
6.7Reverse Social Engineering
6.8Social Engineering Pentests
6.9Was Sie in diesem Kapitel gelernt haben
7Auswertung von Sicherheitstests und Abschlussberichte
7.1Auswertung von Sicherheitstests
7.2Berichterstattung für Sicherheitstests
7.2.1Abschlussbericht für Sicherheitstests
7.2.2Sicherheitstestzwischenberichte
7.3Wirksamkeit von Sicherheitstestberichten
7.4Vertraulichkeit von Sicherheitstestergebnissen
7.5Was Sie in diesem Kapitel gelernt haben
8Sicherheitstestwerkzeuge
8.1Typen und Funktionen von Sicherheitstestwerkzeugen
8.1.1Werkzeuge für dynamische Sicherheitstests
8.1.2Statische und dynamische Sicherheitstestwerkzeuge
8.2Werkzeugauswahl
8.2.1Analysieren und Dokumentieren von Sicherheitstesterfordernissen
8.2.2Open-Source-Werkzeuge und kommerzielle Produkte
8.3Was Sie in diesem Kapitel gelernt haben
9Standards und Branchentrends
9.1Sicherheitsteststandards und Sicherheitsnormen
9.1.1Die Vor- und Nachteile der Verwendung von Standards und Normen
9.1.2Anwendungsszenarien von Standards und Normen
9.1.2.1BSI-Gesetz
9.1.2.2DSGVO
9.1.2.3BAIT/VAIT
9.1.3Auswahl von Sicherheitsstandards und -normen
9.2Anwenden von Sicherheitsstandards
9.3Branchen- und andere Trends
9.4Was Sie in diesem Kapitel gelernt haben
Anhang
AAbkürzungen
BLiteraturverzeichnis
Index
»The only truly secure system is one that is powered off, cast in a block of concrete and sealed in a lead-lined room with armed guards – and even then I have my doubts.«
Gene Spafford
»Und um genau in solchen Zweifelsfällen maximale Transparenz zu bekommen, bedarf es der Sicherheitstests.«
Die Autoren
Was ist heute der mit Abstand wichtigste Aspekt einer IT-Strategie? Eine verbesserte User Experience? Eine bessere funktionale Qualität? Die Nutzung von Cloud? Die Einführung neuer Vorgehensweisen wie »Agile« oder »DevOps«?
Es ist die IT-Sicherheit!
Der World-Quality-Report 2018/2019 [CapGemini et al. 18] hebt deutlich hervor, dass die IT-Sicherheit heute das entscheidende Qualitätsmerkmal schlechthin ist und über eine entsprechende IT-Strategie gefördert werden muss. Gute Gründe dafür sind:
Unabhängig von den konkreten Gründen zeigt sich jeweils schnell, dass die Sicherheit kein reines Technikthema ist: Sicher kennt jeder die Hacker-Sessions auf Konferenzen und Ausstellungen, in denen meist junge Hacker eindrucksvoll demonstrieren, wie technische Schwachstellen in IT-Systemen leichtgewichtig und live ausgehebelt werden können. Aber ebenso sollte heute klar sein, dass die beste Technik kaum hilft, wenn sie nicht in die entsprechenden Prozesse eingewoben ist, die von Organisationen mit geschulten Menschen genutzt wird. Sicherheit ist ein extrem vielschichtiges Qualitätsmerkmal, dessen Gesamtstatus durch das schwächste Glied der Kette definiert ist, das häufig wiederum beim Menschen selbst liegt. Das auch heute immer noch weltweit meistgenutzte Passwort als Zeichenfolge »123456« belegt dies eindrucksvoll (vgl. z.B. [HPI 18]).
Eine bisher wenig im Rampenlicht stehende Teildisziplin ist hier das Sicherheitstesten, also das systematische Prüfen, inwieweit die Sicherheit eines Systems angemessen ist und durch entsprechende Konzepte nachhaltig garantiert werden kann. Oder andersherum das Aufzeigen, wo eben die schwächsten Glieder in einer gesamten Organisation liegen und wie diese abgesichert werden können.
Dieses Buch ist genau diesem Thema gewidmet. Als inhaltlicher Leitfaden dient hierbei der Syllabus »Sicherheitstester« des German Testing Board (GTB), der seinerseits die Lokalisierung des Syllabus »Security Tester« des International Software Testing Qualifications Board (ISTQB®) darstellt. Dass eine Lokalisierung mehr als eine reine Übersetzung ist, zeigt bereits die Schwierigkeit des Begriffs Security: Während im englischsprachigen Raum eine klare Abtrennung zur Safety, also dem Schutz der physischen Unversehrtheit, existiert, subsumiert der deutsche Begriff Sicherheit umgangssprachlich meist beide Facetten. In diesem Buch möchten die Autoren trotzdem den Begriff des Sicherheitstesters alias Security Tester etablieren, auch um sich nicht zu weit vom De-facto-ISTQB®-Standard zu entfernen.
Der Vorteil dieser inhaltlichen Nähe ist dann auch die Möglichkeit, sich mit diesem Buch aktiv auf die entsprechenden Prüfungen zum »ISTQB® Certified Tester – Advanced Level Specialist – Security Tester« vorzubereiten. Der Nachteil ist, dass es kaum Möglichkeiten gibt, bestimmte Aspekte wegzulassen, neue Aspekte hinzuzufügen oder ggf. in einem ganz anderen Kontext zu erläutern: Die Struktur des Buches ist eng am Syllabus angelegt, die durch klar definierte Rollen der Autoren beleuchtet und letztlich angereichert wurde:
Trotz dieser vielschichtigen Expertise und gerade wegen des speziellen Themas kann dieses Buch nur einen Impuls geben, sich mit dem Thema Sicherheitstesten intensiv zu beschäftigen. Es wäre fahrlässig zu behaupten, nach der Lektüre ausgewiesener Sicherheitstester zu sein. Nicht ohne Grund verlangen die GTB/ISTQB®-Statuten für den Sicherheitstester, dass als Vorbedingung einer entsprechenden Prüfung mindestens zwei Jahre Praxiserfahrung im Bereich des Testens vorgewiesen werden müssen. Und selbst dann sorgt die extrem hohe Dynamik im Bereich der Sicherheit dafür, dass einmal erlerntes Wissen jederzeit obsolet werden kann, ggf. modifiziert werden muss oder durch vollständig neue Aspekte erweitert werden sollte. Dieses Buch will und kann hier nur einen initialen Anstoß für eine hochspannende Reise in viele einzelne tiefe Bereiche des Sicherheitstestens geben.
Konkret nähert sich dieses Buch dem Thema Sicherheitstesten über neun Kapitel:
Nach dem Lesen und Durcharbeiten dieser Kapitel sollte es möglich sein, sowohl eine Prüfung zum Certified Sicherheitstester erfolgreich abzulegen als auch nur einen guten Überblick über den Themenbereich Sicherheitstester insgesamt zu bekommen. Das umfangreiche Quellenverzeichnis sowie der Index erlauben zudem auch das punktuelle Einarbeiten und Nachschlagen, wenn es um den aktuellen Stand der Technik im Bereich des Sicherheitstestens für bestimmte Themenblöcke geht.
»Man kann und darf wohl sein eigenes Leben für eine Sache riskieren, aber nie das Leben eines anderen.«
Sir Karl Raimund Popper
Eine maximale Sicherheit ist in den heutigen IT-Systemen wirtschaftlich sinnvoll nicht möglich und technisch höchst anspruchsvoll. Für das Abwägen, wie viel Sicherheit dennoch nötig ist und wie viel Restrisiko akzeptabel ist, spielt die Risikobewertung der wesentlichen Business-Assets eine fundamentale Rolle: In diese fließen unterschiedliche, möglichst alle Risiken abdeckende Parameter im Vorfeld von Sicherheitstests ein. Sie bestimmt nach Festlegen von Sicherheitsstufen pro Asset die Planung von Sicherheitsmaßnahmen und Sicherheitstests. Hierunter fallen auch proaktive Maßnahmen in Form von Sicherheitsrichtlinien, die klare Handlungsanweisungen vorgeben, um inhärent sichere Systeme zu erstellen. Die Wirksamkeit solcher Richtlinien muss allerdings alleine aufgrund stetig ändernder Sicherheitsgefährdungen regelmäßig mittels Sicherheitsaudits geprüft und bei Bedarf durch aktuelle Sicherheitstests nachgeschärft werden. Das gesamte prozessorale und technische Zusammenspiel aus Richtlinien, Sicherheitstests sowie dem Berücksichtigen zukünftiger möglicher Gefährdungen bei fortwährender Wirksamkeitsoptimierung wird durch Sicherheitsaudits analysiert und systematisch verbessert.
Schon das klassische funktionale Testen basiert auf einer Vielzahl von projekt- und unternehmensspezifischen Elementen: So sind z.B. Anforderungen, Anwendungsfälle und mögliche Risiken hinter identifizierten Abweichungen von einem Soll individuell zu berücksichtigen: Eine angepasste Testplanung wird ihren Fokus meist auf solche Anwendungsfälle legen, deren Ausfall massiven Schaden (z.B. wirtschaftlicher Schaden durch entgangenen Umsatz) hervorrufen kann, oder auf solche, die besonders häufig genutzt werden (und bei denen eine Abweichung eher effektiv wird). Die Testtiefe wird dann jeweils entsprechend diesem Fokus festgelegt.
Sicherheitstests verfolgen einen ähnlich risikobasierten Ansatz, fokussieren aber pro Anwendungsfall deren Sicherheitsaspekte und mögliche Gefährdungen: Diese müssen nicht nur technisch sein, sondern berücksichtigen auch
Die Ziele von Sicherheitstests richten sich nach bestehenden Sicherheitsrisiken, also Risiken, die durch eine ungenügende Sicherheit auftreten können. Kann keinerlei direkter oder indirekter Schaden hervorgerufen werden, so sind Sicherheitstests aus wirtschaftlichen Gründen nicht angezeigt.
Sicherheitstests folgen einer Risikoanalyse, nicht umgekehrt.
Existierende Risiken sind also eine notwendige Vorbedingung für Sicherheitstests. Diese Risiken werden üblicherweise im Rahmen einer Sicherheitsrisikobewertung ermittelt. Allgemeine Risikomanagementtechniken werden bereits aus dem normalen, meist funktionalen Kontext heraus in [GTB CTFL 18] und [GTB CTAL TM 12] beschrieben: Denn auch dort gilt, dass ein Testen einer Funktionalität, deren Fehlverhalten oder vollständiges Ausfallen keinen Schaden anrichtet, wirtschaftlich nicht angezeigt ist.
International weit verbreitet sind die Risikomanagementtechniken der Standards ISO 31000 [ISO 31000] und ISO 27005 [ISO 27005] sowie der Richtlinie NIST 800-30 [NIST SP 800-30 02]. Während die ISO 31000 den allgemeinen Ablauf des Risikomanagements beschreibt, und damit auch außerhalb der IT angewendet wird, fokussiert die ISO 27005 speziell Informationssicherheitsrisiken. NIST 800-30 hat insbesondere für den nordamerikanischen Markt eine große Bedeutung.
Die ISO 31000 (vgl. [ISO 31000]) bietet eine übersichtliche und gut verständliche Risikomanagementtechnik, die wie in Abbildung 1–1 dargestellt werden kann.
Die ISO 31000 beschreibt einen eingängigen, universell einsetzbaren Risikomanagementprozess.
Sie ist dabei hinreichend generisch, um auch in tagtäglichen Situationen risikobasiert vorzugehen. Dies soll anhand eines Szenarios verdeutlicht werden.
Beispiel: Risikomanagement
Beispiel: Risikomanagement
Das folgende Beispiel ist bewusst dem Nicht-IT-Bereich entnommen und soll den universellen Charakter des Risikomanagements aufzeigen. Im konkreten Beispiel geht es um die Abschätzung, ob man abends ein Bier trinken sollte, wenn man anschließend noch mit dem Auto selbst nach Hause fahren muss.
Eine allgemeingültige Sicht auf eine solche Risikoanalyse ist in Abschnitt 1.1.3 weiter unten beschrieben. Das konkrete Beispiel wird im Folgenden entlang des beschriebenen Risikomanagementprozesses betrachtet:
Auch wenn die schädliche Wirkung der Zutat Bier außer Frage steht, gibt es weitere Parameter aus einem konkreten Kontext, die für die Folgeabschätzung relevant sind: Handelt es sich beim potenziellen Trinker um eine Schwangere, muss anschließend noch Auto gefahren werden, gibt es gruppendynamische Effekte und Einflüsse usw.
In diesem Abschnitt werden für den konkreten Kontext (vgl. vorheriger Schritt) die einzelnen Risiken identifiziert. Die Abhängigkeit zum Kontext ist hier wichtig: Erzeugt eine Schwangere z.B. Risiken für sich und das ungeborene Kind, so gefährdet ein Mann ggf. nur sich (aber Achtung: Straßenverkehr).
In diesem Schritt werden die einzelnen Risiken detailliert analysiert: Wie groß ist der mögliche Schaden, welche Art ist der Schaden (monetär, gesundheitlich, reputationsbezogen usw.), wie wahrscheinlich ist er usw. Im konkreten Fall könnten medizinische Studien herangezogen werden, Verkehrsstatistiken oder auch soziologische Studien für den Fall, dass ein Nicht-Trinken zur Gruppenisolation führt.
In diesem Schritt findet ein Abgleich der Ergebnisse der Risikoanalyse mit dem eigenen Risikoappetit statt: So können zwei Menschen in einem sehr ähnlichen Kontext trotz sehr ähnlicher Risikoanalysen immer noch völlig unterschiedliche Bewertungen erzeugen; äußern kann sich das im nächsten Schritt der Risikobehandlung als ein unbekümmertes Trinken oder ein entsetztes Ablehnen des Getränkeangebotes.
Dieser Schritt bedeutet die eingeleitete Aktivität auf Basis der Bewertung. Die ISO sieht hier vier verschiedene Arten vor:
Auch wenn dieser Prozess wenig komplex ist und damit evtl. eine einfache Anwendbarkeit suggeriert, so soll bereits hier nicht unerwähnt bleiben, dass eine Risikoanalyse eine höchst anspruchsvolle Aufgabe ist. Häufig werden hier bekannte Risiken vergessen, oder es dominieren eigene Gewohnheiten (»ich trinke immer ein Bier vor dem Nach-Hause-Fahren«) und eigene Risikobereiche (»nachts fahre ich sehr ungern«), oder die Risiken basieren auf unreflektierten Expertenmeinungen. Es benötigt meist sehr viel Erfahrung, wirklich vollständige und objektive Risikoanalysen durchzuführen.
Ohne Risiken bedarf es keiner Risikoanalyse.
Der Sicherheitstest, bei dem geprüft wird, wie sicher ein IT-System ist, lässt sich entlang dieses Standards im Bereich der Risikoidentifikation und der Risikoanalyse verorten. Der Sicherheitstest hilft also, existierende Risiken weiter zu analysieren, und zeigt ggf. weitere auf.
Um eine detaillierte Risikoanalyse durchführen zu können, muss der Begriff Risiko weiter präzisiert werden:
Definition: Risiko
Ein Risiko ist ein Faktor, der zu negativen Konsequenzen in der Zukunft führen könnte, gewöhnlich ausgedrückt durch das Schadensausmaß und die Eintrittswahrscheinlichkeit. [GTB Glossar 18]
Beide Faktoren werden in der Praxis häufig quantifiziert (s. hierzu u.a. weiter unten Abschnitt 1.3.2) und für die Risikokalkulation multipliziert. So kann ein Risiko, das mit einer 1 %igen Wahrscheinlichkeit einen Schaden von 1.000 Euro bedeuten kann, als identisch zu einem anderen Risiko angesehen werden, bei dem mit einer 10%igen Wahrscheinlichkeit ein Schaden von 100 Euro erzeugt werden kann. Das kalkulierte Risiko ist in beiden Fällen 10 Euro.
Beide Faktoren sind in der Praxis häufig nicht leicht und nachvollziehbar analysierbar:
Häufig fehlen entsprechende Analysen, sie sind zueinander nicht konsistent oder lassen sich nur bedingt auf einen konkreten Kontext anwenden.