Das Thema Security gewinnt in der Anwendungsentwicklung immer mehr an Bedeutung. Durch die Sensibilisierung durch die Medien und die Einführung der GDPR ist Web Application Security zu den Managern, Kunden und Projektverantwortlichen vorgedrungen. Mit diesem Vortrag begleiten Sie mich auf meiner Reise von den manuellen statischen Security Tests bis zur vollautomatisierten Einbindung in eine CDI Pipeline von agilen Projekten. Die Erlebnisse und Diskussionen bei der Toolauswahl, die Hürden bei der Einbindung in den CI Server, die Probleme und Widerstände bei der täglichen Verwendung der Werkzeuge sowie spaßige Vertriebsgespräche sollen einen Einblick und Vorgeschmack auf die Einführung von Security Tests im Entwicklungsprozess geben.
2. Warum Security Tests?
• Breaches 2018
• Facebook 50 Mio accounts
• Underarmor 150 Mio MyFitnessPal app users
• MyHeritage 92 Mio accounts
• Ticketfly 27 Mio accounts
• Knuddels 1,8 Mio accounts
• Flightradar24 230,000 customer
• British Airways 380,000 booking transactions
• Ticketmaster UK 40,000 UK customer
Seit 2016 wurden >800 eCommerce Plattformen durch Magecart kompromittiert
Automatisierung von Security Tests im Build Prozess
Folie 2 LB
3. Schaden durch Security Breaches
• Geschätzter Schaden 2018 (Studie von IBM Security und Ponemon)
• durchschnittlicher Schaden $ 3.5 Mio je Breach
• Die durchschnittlichen Kosten eines Breach für Firmen, die automatisierte Sicherheitstests
vollständig in ihr Unternehmen eingeführt haben, beträgt $ 2.88 mio
• Ohne automatisierte Sicherheitstests beträgt der durchschnittliche Schaden $ 4.4 mio
• Automatisierte Sicherheitstests sparen $ 1.55 mio
• Ist das auf mein Unternehmen anwendbar?
• sicherlich nicht in der Höhe
• wohl aber in der Tendenz
Automatisierung von Security Tests im Build Prozess
Folie 3 LB
4. Zielsetzung
• Vulnerabilities so früh wie möglich erkennen
• So oft wie möglich nach Vulnerabilities suchen
• Einfaches Aufdecken von Vulnerabilities
• Schnelles Beheben der Vulnerabilities ermöglichen
• Bewusstsein für Sicherheit schaffen
• Entwickler
• Operations
• Management
• Vertrauen haben, dass die Anwendung so sicher wie möglich ist
Automatisierung von Security Tests im Build Prozess
Folie 4 LB
5. Kategorien von Sicherheitstests
• Static Application Security Testing (SAST)
• Auffinden von Fehlern und Vulnerabilities im Source Code
• Scannen des Source Codes, keine Ausführung des Byte Codes
• Einhaltung von Coding Styles und Best Practices
• White-Box Testing
• Dynamic Application Security Testing (DAST)
• Auffinden von Fehlern und Vulnerabilities in einer laufenden Anwendung
• Crawling und Fuzzing
• Black-Box Testing
Automatisierung von Security Tests im Build Prozess
Folie 5 LB
6. Kategorien von Sicherheitstests
• Software Composition Analysis (SCA) oder Origin Analysis
• Ca. 80% des Quellcodes einer Anwendung besteht aus Open Source Libraries
• Analysen von Open Source Library auf Vulnerabilities und Licenses
• Interactive Application Security Testing (IAST)
• Agent in der Runtime Engine, der das Applikationsverhalten zur Laufzeit analysiert
• Verwendet DAST als Angriffe
• Wiederverwendung von automatisierten funktionalen Tests
• Runtime Application Self-Protection (RASP)
• Hybrid Application Security Testing (HAST)
Automatisierung von Security Tests im Build Prozess
Folie 6 LB
7. Security Tests für Docker Images
• Application Layer
• Operating System Layer
• Software Libraries
• Reporting on Non-Packaged File
Automatisierung von Security Tests im Build Prozess
Folie 7 LB
8. Fragerunde
Wer setzt Static Application Security Testing ein?
• 2013 haben diese Frage < 35% aller US Entwickler mit Ja beantwortet
Wer setzt Dynamic Application Security Testing ein?
Wer setzt Software Composition Analysis ein?
• Ca. 80% einer Java Anwendung besteht aus Open Source Komponenten
Wer hat Software Security/Secure Coding Guidelines?
• Für < 55% der Entwickler in Deutschland hat Security keine hohe Bedeutung
Automatisierung von Security Tests im Build Prozess
Folie 8 LB
9. Application Security „die Wunderwaffe“?
“Application security is not a simple binary choice, whereby you either have security or
you don’t.
Application security is more of a sliding scale where providing additional security
layers helps reduce the risk of an incident, hopefully to an acceptable level of risk for
the organization.
Thus, application-security testing reduces risk in applications, but cannot completely
eliminate it. ”
THOMAS SCANLON
Automatisierung von Security Tests im Build Prozess
Folie 9 LB
11. Security Tests in der Build Pipeline
Automatisierung von Security Tests im Build Prozess
Folie 11 LB
12. Security Tests in der Build Pipeline
• Einfache CI Pipeline
• CI Pipeline with Security Tests
Automatisierung von Security Tests im Build Prozess
Folie 12 LB
13. Automatisierung von Security Tests im Build Prozess
Security Tests in der Build Pipeline
• and now a little more advanced
14. Security Tests in der Build Pipeline
• Und nun für die Paranoiden unter uns ….
Automatisierung von Security Tests im Build Prozess
Folie 14 LB
15. SAST Findings – WebGoat/WebWolf
Automatisierung von Security Tests im Build Prozess
Folie 15 LB
16. SAST Findings SQL Injection Details – WebGoat/WebWolf
Automatisierung von Security Tests im Build Prozess
Folie 16 LB
17. Software Composition Analysis
• Identify Risk in Open Source Components
• License
Im Durchschnitt besteht eine JAVA Anwendung aus 80% Open Source Library Code
Diese Sources und deren Vulnerabilities sind den Angreifern bekannt!
Automatisierung von Security Tests im Build Prozess
Folie 17 LB
80%
20%
Lines of Code
Open Source Original Code
20. Einführung von Security Tests in der Realität
• Legacy Code/Anwendungen
• Sicherheitsbewusstsein und Verantwortung
• Wir wurden doch noch nie angegriffen!
• Bei uns gibt es nichts zu holen!
• Wir sind kein Angriffsziel!
• Skill und Mindset
• Weg vom das haben wir aber immer so gemacht
• Wie kann ich die Vulnerability fixen?
• Nicht immer gleich den Build Breaker verwenden
• Nicht noch ein Tool
• Releasetermine und -zyklen
Automatisierung von Security Tests im Build Prozess
Folie 20 LB
21. Automatisierung ist nicht genug
• Verbindlichkeit und Verantwortung
• Prozesse etablieren
• Entwickler-/DevOps Team sensibilisieren
• Secure Coding Guidelines
• Secure Coding/Security Know How aufbauen
• Zeit und Budget bereitstellen
• Scans nach dem Checkin/Nightly Build sind vielleicht schon zu spät
• Patchprozesse und -zyklen
• Software Security Lifecycle berücksichtigen
Automatisierung von Security Tests im Build Prozess
Folie 21 LB
22. Software Security Lifecycle
• Software altert
• Libraries altern
• Angreifer entwickeln neue Vulnerabilities
• Kontinuierliche Security Tests von Anwendungen
• „eigene“ Build Pipelines für released Anwendungen
Automatisierung von Security Tests im Build Prozess
Folie 22 LB
23. Stilblüten
• Lizenzkosten
• Kontaktaufnahme
• Email Adresse < 36 Zeichen, keine Telefonnummer oder brauchbare Kontaktdaten
• Lasst uns feilschen
• CI Integration/Automatisierung
• Wir sind eine JAVA Entwicklungsabteilung …
• Installation
• Mavenplugins
Automatisierung von Security Tests im Build Prozess
Folie 23 LB
25. Links
• Web Security Standard TSS-WEB
• DevOps Handbuch von Gene Kim, Jez Humbl u.a.
• Ponemon + IBM Studie
• Data Breaches 2018 Verizon
• Top Threats by Industry
Automatisierung von Security Tests im Build Prozess
Folie 25 LB