Unit-Tests, Integrationstests und Co. machen es möglich, zu überprüfen, ob entwickelte Software den funktionalen Anforderungen entspricht. Durch die zunehmende Vernetzung von Softwaresystemen und die Auslagerung von Anwendungen in die Cloud und das Internet werden aber auch Security-Anforderungen immer relevanter. Traditionelle Qualitätssicherungsmethoden laufen hier oft ins Leere. Wenn überhaupt, wird meist nur am Ende stichprobenartig getestet, ob eine Software sicher ist. Fallen Sicherheitsmängel erst so spät auf, sind sie in der Regel aber nur schwierig zu beheben, und schlimmstenfalls müssen sogar ganze Anwendungsteile neu entwickelt werden. Deshalb ist es sinnvoll, IT-Sicherheit möglichst früh im Entwicklungsprozess zu berücksichtigen, um teure Schwachstellen zu vermeiden. Aber wie können Sicherheitsrisiken frühzeitig ermittelt und bei der agilen Entwicklung berücksichtigt werden? Eine Lösung ist ein Security-Aware-Development, bei dem IT-Sicherheitsanforderungen fest in den agilen Entwicklungsprozess integriert werden.
2. Wer bin ich?
M.Sc. Carsten Cordes
carsten.cordes@hec.de
• (früher mal) Duales Studium in der Bank
• Danach Informatikstudium in Oldenburg
• Gewinner der Cyber-Security-Challenge
Deutschland
• Penetrationstester
• Speaker auf it-sa, CeBIT, JAX und basta
• Leidenschaftlicher Softwareentwickler &
Hacker
3. Wir schreiben das Jahr 20172018…
… und das Internet ist kein Neuland mehr.
Quelle: http://www.internetlivestats.com
12. Die Idee
• Anwälte sollen sicher elektronisch kommunizieren
• Verpflichtend ab 01.01.2018
• Soll bereits vorhandene Kommunikationswege mit Justiz mitnutzen
– Elektronischen Gerichts- und Verwaltungspostfachs (EGVP)
• Zuständig für die Entwicklung und die Einführung ist die BRAK
(Bundesrechtsanwaltskammer)
– Dachorganisation der Rechtsanwälte, kein Softwareentwickler
– Selbst entwickeln?
– Hilfe holen.
13. Wer spielt mit?
• Die Bundesrechtsanwaltskammer (BRAK)
• Mehrere renommierte Beratungs- und Entwicklungsunternehmen
• Ein renommiertes Security-Unternehmen
14. Wer spielt mit?
• Die Bundesrechtsanwaltskammer (BRAK)
• Mehrere renommierte Beratungs- und Entwicklungsunternehmen
• Ein renommiertes Security-Unternehmen
EGAL!
Hätte so in vielen Unternehmen
passieren können!
15. Die Anforderungen
• Ende-zu-Ende Kommunikation
• Andere Büromitarbeiter sollen (bei Abwesenheit o.Ä.) Zugriff aufs
Postfach haben
• 2FA-Authentifizierung über SmartCards
• Webmailer
• HTTPS-Verschlüsselt
• (…)
32. „Sicherheit ist kein wundersamer Feenstaub, den
Sie auf Ihr Produkt streuen können, nachdem es
programmiert wurde.”
(Paul Vixie, CEO Farsight Security) …
Also: ab wann sollte man an Sicherheit denken?
Direkt bei Projektbeginn
37. Ziele und Inhalte von SAD
• SAD ist ein Framework zur Entwicklung sicherer Software
• SAD ist an den Microsoft SDL angelehnt
• Sicherheitsaspekte werden über den ganzen Entwicklungszyklus
überprüft.
• Individuelle Ausgestaltung ist projektspezifisch
• Sicherheitsaspekte müssen regelmäßig überprüft und angepasst
werden
37
38. Wichtige Aspekte im SAD
Identifikation
von Sicherheits-
aspekten
Aufnahme von
Security in die
DoD
Durchführung
von
automatischen
Security-Tests
Durchführung
von Pentests
Review der
Sicherheits-
aspekteFestlegung von
Coding-
Guidelines
Projektstart Kontinuierlich Regelmäßig
Überprüfung
durch statische
Analysen
Reviews durch
Sicherheitsbeauftragten
42. Aufnahme von
Security in die
DoD
Wurden die Coding-
Guidelines eingehalten?
Erkennt die Codeanalyse
keine Probleme?
Wurde ein Code-Review
durchgeführt?
43. Festlegung
auf „sichere“
Frameworks
Wird das Framework noch
aktiv weiterentwickelt?
Wie schnell wird auf
Schwachstellen reagiert?
Wer kontrolliert den Code
des Frameworks?
Wie verbreitet ist das
Framework?
60. Inhaltliche Schwachstellen
• Tests müssen Anwendungsspezifisch entwickelt werden
• Unit-Tests
• Testautomatisierung
– UI-Automation Frameworks für Rich-Client-Anwendungen
– Selenium für Webbasierte Anwendungen
• Manuelle Tests
Idealerweise im Rahmen der Qualitätssicherung
60
61. Sicherheitsszenarien in BDD
Scenario: Users with incorrect passwords should not be able to login
Given I am on the login page
And I enter incorrent credentials
Then I am redirected to the startpage
Scenario: Users with correct passwords should be able to login
Given I am on the login page
And I enter correct credentials
Then I am logged in
• Inhaltlicher Test der Anwendungslogik über Testfälle /
Testautomatisierung:
Bsp.: Login
62. Technische Schwachstellen
• Lassen sich nur schwer mit „normalen“ Tests abbilden
• Vor allem für Webanwendungen interessant
• Schwachstellenscanner
– Mit Vorsicht verwenden, kann Betrieb der Anwendung stören
• Intercepting Proxies (BurpSuite, OWASP ZAP)
– HTTP(S)-Datenverkehr wird aufgezeichnet und kann gezielt oder
automatisch auf Schwachstellen untersucht werden
• Komplexe Protokolle: Untersuchung mit Wireshark, ggf. Custom-Tools
62
65. Umsetzung mit ZAP-API
And the SQL-Injection policy is enabled
And the attack strength is set to High
And the alert threshold is set to Low
ZAP-API (rest)
66. BDD+ +
Testen von Sicherheitsszenarien
Cucumber
Python behave
Codeception
Kontinuierliche Durchführung der Tests z.B. im
Rahmen der CI-Umgebung
75. Ablauf eines (WebApp-)Pentests
Information-
sammlung
Test der
Konfiguration
Test der
Authentifizierung
Test der
Autorisierung
Test des
Session-
Managements
Test der Input-
validierung
Test der
Kryptographie
Test der
Geschäftslogik