SlideShare une entreprise Scribd logo
1  sur  77
Télécharger pour lire hors ligne
carsten.cordes@hec.de
@badagent86
IT-Sicherheit und agile
Entwicklung – geht das? Sicher!
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
Wir schreiben das Jahr 20172018…
… und das Internet ist kein Neuland mehr.
Quelle: http://www.internetlivestats.com
Smart-Home
Smart-Cars
Internet-of-Things
Connected-Cars
Smart-Factory
Smart-Grid Industrie 4.0
Smart-Meters
Smart-Ecosystems
Die digitale Revolution hält Einzug…
DevOps
Frontend
Qualitätssicherung
Backend
Requirements
Architektur
BDD
TDD
Cucumber
Selenium
Jira
Confluence
Ansible
Docker
Microservices
Angular
Cloud
Spring
DDD
WildFly
Jenkins
TypeScript
REST
JSON
…und mit ihr steigt die Komplexität.
Was sind die Folgen?
TODO: Neue Folien einfügen!
Nicht vergessen!!!!
Es passieren
Fehler!
Ist Sicherheit überhaupt wichtig für uns?
"Lang ist der Weg durch Lehren, kurz und
wirksam durch Beispiele."
Seneca
Es war einmal…
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.
Wer spielt mit?
• Die Bundesrechtsanwaltskammer (BRAK)
• Mehrere renommierte Beratungs- und Entwicklungsunternehmen
• Ein renommiertes Security-Unternehmen
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!
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
• (…)
Die Lösung 
Ende-zu-Ende-Verschlüsselung
Sender Empfänger
Die Anforderungen
• Ende-zu-Ende Kommunikation 
• Andere Büromitarbeiter sollen (bei Abwesenheit o.Ä.) Zugriff aufs
Postfach haben x
• 2FA-Authentifizierung über SmartCards
• Webmailer
• HTTPS-Verschlüsselt
Ende-zu-Ende-Verschlüsselung?
Sender
Empfänger
Büromitarbeiter
Urlaubsvertretung
…
Zentraler
Nachrichtenserver
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
2FA Authentifizierung + Webmail
beA
2FA Authentifizierung + Webmail
beA
Problem: USB-Geräte (Kartenleser!) nicht ohne weiteres aus dem Browser zugreifbar
2FA Authentifizierung + Webmail
beA
„Lösung“:
Registrierung von
bealocalhost.de
(verweist auf 127.0.0.1  )
+ lokaler Webserver
(Zugang über bea-brak.de)
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
HTTPS? Lokaler Webserver?
Moment…
HTTPS (1. Versuch)
beA
SSH
Zertifikat
bealocalhost.de
HTTPS (2. Versuch)
beA bealocalhost.de
Root-CA
Zertifikat
Nutzer sollen sich
Root-CA im Browser
installieren
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 N
Das Ergebnis
27.12.2017
Zum Weiterhören
https://logbuch-netzpolitik.de/lnp242-make-§§§-fast
Podcast Logbuch Netzpolitik vom 5. Februar 2018
(ca. 2:14 Stunden)
Aber wie bekomme ich meine Anwendung
denn nun sicher?
„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
Security Developement Lifecycle (SDL)
Quelle: Microsoft
Leider Wasserfall 
Security Developement Lifecycle (SDL) - Agil
Quelle: Microsoft
One-Time practices
Every-sprint practices
Bucket practices
Aufstellen von Security Requirements
Security/Privacy
Risikobewertung
Analyse/Reduktion
der Angriffsfläche
Aufstellen Incident
Response Plan
Threat Modeling
Statische Softwareanalyse
Security Review
Verwedung anerkannter Tools
Aufstellen von Design
Requirements
Unsichere Funktionen vermeiden
Quality Bars/Bug Bars erstellen
Dynamische Softwareanalyse
Review und Überarbeitung der Angriffsfläche
Fuzz-Testing
SDL ist sehr schwergewichtig 
Alternative?
„Security-Aware-Development“ (SAD)
Sicherheitsaspekte werden über den ganzen
Entwicklungszyklus überprüft.
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
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
Projektstart
Identifikation
von Sicherheits-
aspekten
Aufnahme von
Security in die
DoD
Festlegung von
Coding-
Guidelines
Identifikation von
Sicherheitsaspekten:Threat-Modeling
1. Assets identifizieren
• Worauf hat es ein Angreifer
abgesehen?
2. Bedrohungen identifizieren
• klassisches Threatmodeling
• „Threatstorming“
3. Bedrohungen bewerten
• Eintrittswahrsch. * Schaden
• Risk Estimation Mapping
4. Maßnahmen finden
• Möglichst messbar
• Toolunterstützung prüfen
• Kosten / Nutzen prüfen
Bewertung von Risiken
Risk-Estimation-Mapping
Aufnahme von
Security in die
DoD
Wurden die Coding-
Guidelines eingehalten?
Erkennt die Codeanalyse
keine Probleme?
Wurde ein Code-Review
durchgeführt?
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?
<plugin>
<groupId>org.owasp</groupId>
<artifactId>dependency-check-maven</artifactId>
<version>3.0.2</version>
<executions>
<execution>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
In Jenkins als Plugin… …oder in Maven
Festlegung auf „sichere“ Frameworks
z.B. OWASP Dependency Check
https://www.owasp.org/index.php/OWASP_Dependency_Check
ProjektstartKontinuierlich
Durchführung
von
automatischen
Security-Tests
Überprüfung
durch statische
Analysen
Statische Softwareanalyse!
grep graudit
FindSecurityBugs Taint-Analyse
Beispiel: grep
Beispiel: grep
Beispiel: GRAUDIT
GREP on Steroids
Quelle: https://github.com/wireghoul/graudit
Beispiel: GRAUDIT
Beispiel: FindSecurityBugs
Ein Plugin für FindBugs
Quelle: http://find-sec-bugs.github.io/
Beispiel: FindSecurityBugs
Beispiel: FindSecurityBugs
Beispiel: FindSecurityBugs
Beispiel: TAINT Analyse
Quelle: https://github.com/wireghoul/graudit
Taint-Analyse
// Get the login credentials
String username = request.getParameter("user");
String password = request.getParameter("pass");
// SQL query vulnerable to SQL injection
String query = "select info from Users where user = '"+ username
+"' and password='" + password +"'";
// Execute the SQL statement
rs = stmt.executeQuery(query);
Source
Sink
Taint-Analyse
Taint-Analyse
// Get the login credentials
String username = request.getParameter("user");
String password = request.getParameter("pass");
username = remove_bad_chars(username);
password = remove_bad_chars(password);
// SQL query vulnerable to SQL injection
String query = "select info from Users where user = '"+ username
+"' and password='" + password +"'";
// Execute the SQL statement
rs = stmt.executeQuery(query);
Taint-Analyse
„Sanitization“
Taint-Analyse: GRAUDIT
Automatische Schwachstellenscans
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
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
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
OWASP ZAP
Quelle: https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project
OWASP ZAP (Scanner)
POST /wp-login.php HTTP/1.1
User-Agent: Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:48.0)
Gecko/20100101 Firefox/48.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
cookie: wordpress_test_cookie=WP+Cookie+check
Connection: close
Upgrade-Insecure-Requests: 1
Content-Type: application/x-www-form-urlencoded
Content-Length: 103
log=admin&pwd=admin&wp-submit=Log+In&redirect_to=wp-admin&testcookie=1
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)
BDD+ +
Testen von Sicherheitsszenarien
Cucumber
Python behave
Codeception
Kontinuierliche Durchführung der Tests z.B. im
Rahmen der CI-Umgebung
KontinuierlichRegelmäßig
Durchführung
von Pentests Review der
Sicherheits-
aspekte
Reviews durch
Sicherheitsbeauftragten
„Improving the Security of Your Site by
Breaking Into it”
(Dan Farmer & Wietse Venema, 1993)
Penetrationstests
Ablauf eines (WebApp-)Pentests
Information-
sammlung
Informationssammlung
Serverversion?
Versteckte Pfade/Verzeichnisse?
Interessante Code-Kommentare?
Request/Response-Aufbau?
Anwendungsfunktion?
Weitere Einstiegspunkte (API, …)?
Ziel: Grobes Verständnis - was tut die Anwendung, wie und womit?
Programmiersprache?
Und natürlich… Durchklicken!
Ablauf eines (WebApp-)Pentests
Information-
sammlung
Test der
Konfiguration
Test der
Authentifizierung
Test der
Autorisierung
Test des
Session-
Managements
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 Input-Validierung
Cross-Site-Scripting?
SQL-Injection?LDAP-Injection?
XML-Injection?
Code-Injection?
Command-Injection?
File-Inclusion?
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
täglich
Product
Backlog
Product
Backlog
Sprint
Backlog
Product
Backlog
Product
Backlog
Product
Backlog
Product
Backlog
Product
Backlog
Product
Backlog
Product
1 Woche – 1 Monat
Definition von
Sicherheits-
aspekten
Statische
Analyse
Automatische
Sicherheitstests
Pentest
Wie sieht jetzt ein ideales SAD aus?
Schwachstellen-
scans
Carsten Cordes
carsten.cordes@hec.de
@badagent86
Falls noch etwas unklar geblieben ist…
Jetzt ist die Chance für Fragen!

Contenu connexe

Similaire à IT-Sicherheit und agile Entwicklung – geht das? Sicher!

Azure Days 2019: Master the Move to Azure (Konrad Brunner)
Azure Days 2019: Master the Move to Azure (Konrad Brunner)Azure Days 2019: Master the Move to Azure (Konrad Brunner)
Azure Days 2019: Master the Move to Azure (Konrad Brunner)Trivadis
 
DevOpsCon 2016 - Continuous Security Testing - Stephan Kaps
DevOpsCon 2016 - Continuous Security Testing - Stephan KapsDevOpsCon 2016 - Continuous Security Testing - Stephan Kaps
DevOpsCon 2016 - Continuous Security Testing - Stephan KapsStephan Kaps
 
Internet of Things Architecture
Internet of Things ArchitectureInternet of Things Architecture
Internet of Things ArchitectureChristian Waha
 
DACHNUG50 Volt MX & AppScan_20230615.pdf
DACHNUG50 Volt MX & AppScan_20230615.pdfDACHNUG50 Volt MX & AppScan_20230615.pdf
DACHNUG50 Volt MX & AppScan_20230615.pdfDNUG e.V.
 
Holistische Sicherheit für Microservice Architekturen
Holistische Sicherheit für Microservice ArchitekturenHolistische Sicherheit für Microservice Architekturen
Holistische Sicherheit für Microservice ArchitekturenQAware GmbH
 
ScriptRunner - Eine Einführung
ScriptRunner - Eine EinführungScriptRunner - Eine Einführung
ScriptRunner - Eine EinführungHeiko Brenn
 
Steinzeit war gestern! Wege der Cloud-nativen Evolution.
Steinzeit war gestern! Wege der Cloud-nativen Evolution.Steinzeit war gestern! Wege der Cloud-nativen Evolution.
Steinzeit war gestern! Wege der Cloud-nativen Evolution.QAware GmbH
 
Auf gehts in die Cloud: „Das kann doch nicht so schwer sein!“
Auf gehts in die Cloud: „Das kann doch nicht so schwer sein!“Auf gehts in die Cloud: „Das kann doch nicht so schwer sein!“
Auf gehts in die Cloud: „Das kann doch nicht so schwer sein!“OPEN KNOWLEDGE GmbH
 
Top 10 Internet Trends 2006
Top 10 Internet Trends 2006Top 10 Internet Trends 2006
Top 10 Internet Trends 2006Jürg Stuker
 
Enterprise Cloud Native ist das neue Normal
Enterprise Cloud Native ist das neue NormalEnterprise Cloud Native ist das neue Normal
Enterprise Cloud Native ist das neue NormalQAware GmbH
 
Programmierung einer Blockchain zur Verwaltung von Zertifikaten
Programmierung einer Blockchain zur Verwaltung von ZertifikatenProgrammierung einer Blockchain zur Verwaltung von Zertifikaten
Programmierung einer Blockchain zur Verwaltung von ZertifikatenAndreas Wittke
 
Compliance und Governance in der DevOps-Acht
Compliance und Governance in der DevOps-AchtCompliance und Governance in der DevOps-Acht
Compliance und Governance in der DevOps-AchtBATbern
 
Automatisierung von Security Test im Build-Prozess
Automatisierung von Security Test im Build-ProzessAutomatisierung von Security Test im Build-Prozess
Automatisierung von Security Test im Build-Prozessx-celerate
 
Plattformen für das Internet der Dinge, solutions.hamburg, 05.09.16
Plattformen für das Internet der Dinge, solutions.hamburg, 05.09.16Plattformen für das Internet der Dinge, solutions.hamburg, 05.09.16
Plattformen für das Internet der Dinge, solutions.hamburg, 05.09.16Boris Adryan
 
Cloud Native Migration: Wie IT-Landschaften ihren Weg auf eine Cloud-Native-P...
Cloud Native Migration: Wie IT-Landschaften ihren Weg auf eine Cloud-Native-P...Cloud Native Migration: Wie IT-Landschaften ihren Weg auf eine Cloud-Native-P...
Cloud Native Migration: Wie IT-Landschaften ihren Weg auf eine Cloud-Native-P...QAware GmbH
 
stackconf 2020 | SecDevOps in der Cloud by Florian Wiethoff
stackconf 2020 | SecDevOps in der Cloud by Florian Wiethoffstackconf 2020 | SecDevOps in der Cloud by Florian Wiethoff
stackconf 2020 | SecDevOps in der Cloud by Florian WiethoffNETWAYS
 
30. Treffen der .NET User Group Rhein-Neckar mit Constantin Klein - „Bekommen...
30. Treffen der .NET User Group Rhein-Neckar mit Constantin Klein - „Bekommen...30. Treffen der .NET User Group Rhein-Neckar mit Constantin Klein - „Bekommen...
30. Treffen der .NET User Group Rhein-Neckar mit Constantin Klein - „Bekommen....NET User Group Rhein-Neckar
 

Similaire à IT-Sicherheit und agile Entwicklung – geht das? Sicher! (20)

Internet of (Every)Thing
Internet of (Every)ThingInternet of (Every)Thing
Internet of (Every)Thing
 
DevSecOps .pptx
DevSecOps .pptxDevSecOps .pptx
DevSecOps .pptx
 
Azure Days 2019: Master the Move to Azure (Konrad Brunner)
Azure Days 2019: Master the Move to Azure (Konrad Brunner)Azure Days 2019: Master the Move to Azure (Konrad Brunner)
Azure Days 2019: Master the Move to Azure (Konrad Brunner)
 
DevOpsCon 2016 - Continuous Security Testing - Stephan Kaps
DevOpsCon 2016 - Continuous Security Testing - Stephan KapsDevOpsCon 2016 - Continuous Security Testing - Stephan Kaps
DevOpsCon 2016 - Continuous Security Testing - Stephan Kaps
 
Internet of Things Architecture
Internet of Things ArchitectureInternet of Things Architecture
Internet of Things Architecture
 
DACHNUG50 Volt MX & AppScan_20230615.pdf
DACHNUG50 Volt MX & AppScan_20230615.pdfDACHNUG50 Volt MX & AppScan_20230615.pdf
DACHNUG50 Volt MX & AppScan_20230615.pdf
 
Holistische Sicherheit für Microservice Architekturen
Holistische Sicherheit für Microservice ArchitekturenHolistische Sicherheit für Microservice Architekturen
Holistische Sicherheit für Microservice Architekturen
 
ScriptRunner - Eine Einführung
ScriptRunner - Eine EinführungScriptRunner - Eine Einführung
ScriptRunner - Eine Einführung
 
Steinzeit war gestern! Wege der Cloud-nativen Evolution.
Steinzeit war gestern! Wege der Cloud-nativen Evolution.Steinzeit war gestern! Wege der Cloud-nativen Evolution.
Steinzeit war gestern! Wege der Cloud-nativen Evolution.
 
Auf gehts in die Cloud: „Das kann doch nicht so schwer sein!“
Auf gehts in die Cloud: „Das kann doch nicht so schwer sein!“Auf gehts in die Cloud: „Das kann doch nicht so schwer sein!“
Auf gehts in die Cloud: „Das kann doch nicht so schwer sein!“
 
Top 10 Internet Trends 2006
Top 10 Internet Trends 2006Top 10 Internet Trends 2006
Top 10 Internet Trends 2006
 
Enterprise Cloud Native ist das neue Normal
Enterprise Cloud Native ist das neue NormalEnterprise Cloud Native ist das neue Normal
Enterprise Cloud Native ist das neue Normal
 
Programmierung einer Blockchain zur Verwaltung von Zertifikaten
Programmierung einer Blockchain zur Verwaltung von ZertifikatenProgrammierung einer Blockchain zur Verwaltung von Zertifikaten
Programmierung einer Blockchain zur Verwaltung von Zertifikaten
 
Compliance und Governance in der DevOps-Acht
Compliance und Governance in der DevOps-AchtCompliance und Governance in der DevOps-Acht
Compliance und Governance in der DevOps-Acht
 
Lean Collaboration
Lean CollaborationLean Collaboration
Lean Collaboration
 
Automatisierung von Security Test im Build-Prozess
Automatisierung von Security Test im Build-ProzessAutomatisierung von Security Test im Build-Prozess
Automatisierung von Security Test im Build-Prozess
 
Plattformen für das Internet der Dinge, solutions.hamburg, 05.09.16
Plattformen für das Internet der Dinge, solutions.hamburg, 05.09.16Plattformen für das Internet der Dinge, solutions.hamburg, 05.09.16
Plattformen für das Internet der Dinge, solutions.hamburg, 05.09.16
 
Cloud Native Migration: Wie IT-Landschaften ihren Weg auf eine Cloud-Native-P...
Cloud Native Migration: Wie IT-Landschaften ihren Weg auf eine Cloud-Native-P...Cloud Native Migration: Wie IT-Landschaften ihren Weg auf eine Cloud-Native-P...
Cloud Native Migration: Wie IT-Landschaften ihren Weg auf eine Cloud-Native-P...
 
stackconf 2020 | SecDevOps in der Cloud by Florian Wiethoff
stackconf 2020 | SecDevOps in der Cloud by Florian Wiethoffstackconf 2020 | SecDevOps in der Cloud by Florian Wiethoff
stackconf 2020 | SecDevOps in der Cloud by Florian Wiethoff
 
30. Treffen der .NET User Group Rhein-Neckar mit Constantin Klein - „Bekommen...
30. Treffen der .NET User Group Rhein-Neckar mit Constantin Klein - „Bekommen...30. Treffen der .NET User Group Rhein-Neckar mit Constantin Klein - „Bekommen...
30. Treffen der .NET User Group Rhein-Neckar mit Constantin Klein - „Bekommen...
 

IT-Sicherheit und agile Entwicklung – geht das? Sicher!