SlideShare ist ein Scribd-Unternehmen logo
1 von 219
Downloaden Sie, um offline zu lesen
Integration von Security-Checks
in die CI-Pipeline
@_openknowledge #WISSENTEILEN
ÜBER MICH
• Software-Entwickler
• Speaker
• CI / CD Flüsterer
• Angular(-ität)
• Java EE
Christian Schulz
#WISSENTEILEN
ÜBER OPEN KNOWLEDGE
Branchenneutrale Softwareentwicklung und IT-Beratung
#WISSENTEILEN
Warum?
Bekannte Vorfälle
#WISSENTEILEN
Bekannte Vorfälle
• 2017
Equifax 143 Millionen
#WISSENTEILEN
Bekannte Vorfälle
• 2017
Equifax 143 Millionen
• 2016
Adult Friend Finder 422 Millionen
#WISSENTEILEN
Bekannte Vorfälle
• 2017
Equifax 143 Millionen
• 2016
Adult Friend Finder 422 Millionen
• 2015
Anthem 78 Millionen
#WISSENTEILEN
Bekannte Vorfälle
• 2017
Equifax 143 Millionen
• 2016
Adult Friend Finder 422 Millionen
• 2015
Anthem 78 Millionen
• 2014
eBay 145 Millionen
JP Morgan Chase 76 Millionen
#WISSENTEILEN
Bekannte Vorfälle
• 2017
Equifax 143 Millionen
• 2016
Adult Friend Finder 422 Millionen
• 2015
Anthem 78 Millionen
• 2014
eBay 145 Millionen
JP Morgan Chase 76 Millionen OOPSIE!
#WISSENTEILEN
Softwarelebenszyklus
#WISSENTEILEN
Softwarelebenszyklus
Product Design Development Testing Deployment Production
#WISSENTEILEN
Softwarelebenszyklus
Product Design Development Testing Deployment Production
#WISSENTEILEN
Softwarelebenszyklus
Product Design Development Testing Deployment Production
#WISSENTEILEN
Softwarelebenszyklus
Product Design Development Testing Deployment Production
#WISSENTEILEN
Softwarelebenszyklus
Product Design Development Testing Deployment Production
Product Design Development
#WISSENTEILEN
Software Entwicklung …
#WISSENTEILEN
… ist eine unendliche Geschichte
#WISSENTEILEN
Security?
#WISSENTEILEN
WORKED FINE IN DEV
NOW OPS PROBLEM
#WISSENTEILEN
Softwarelebenszyklus
Product Design Development Testing Deployment Production
#WISSENTEILEN
Softwarelebenszyklus
Product Design Development Testing Deployment Production
Penetration
Tests
#WISSENTEILEN
Softwarelebenszyklus
Product Design Development Testing Deployment Production
Penetration
Tests
Real-Time Application
Security Protection
oder
Web Application Firewall
#WISSENTEILEN
Doppelter Boden?
#WISSENTEILEN
Doppelter Boden
Web Application Firewall Anwendung
?
#WISSENTEILEN
Doppelter Boden
Web Application Firewall Anwendung
?
#WISSENTEILEN
Doppelter Boden
Web Application Firewall Anwendung
!
#WISSENTEILEN
Warum?
#WISSENTEILEN
Warum?
• ca 90% der Anwendungen sind verwundbar
#WISSENTEILEN
Warum?
• ca 90% der Anwendungen sind verwundbar
• Netzwerklösungen sind nicht dafür entworfen worden auf
Anwendungslevel zu schützen
#WISSENTEILEN
Warum?
• ca 90% der Anwendungen sind verwundbar
• Netzwerklösungen sind nicht dafür entworfen worden auf
Anwendungslevel zu schützen
• Moderne Webanwendungen erhöhen die Sicherheitsrisiken enorm
#WISSENTEILEN
Warum?
• ca 90% der Anwendungen sind verwundbar
• Netzwerklösungen sind nicht dafür entworfen worden auf
Anwendungslevel zu schützen
• Moderne Webanwendungen erhöhen die Sicherheitsrisiken enorm
• Angriffe passieren im Geheimen
#WISSENTEILEN
Der richtige Zeitpunkt
Während der Entwicklung Nach dem Release Nach dem Datenverlust
Kosten
#WISSENTEILEN
Der richtige Zeitpunkt
Während der Entwicklung Nach dem Release Nach dem Datenverlust
Kosten
Development
Efforts
#WISSENTEILEN
Der richtige Zeitpunkt
Während der Entwicklung Nach dem Release Nach dem Datenverlust
Kosten
Development
Efforts
#WISSENTEILEN
Der richtige Zeitpunkt
Während der Entwicklung Nach dem Release Nach dem Datenverlust
Kosten
Development
Efforts
Development
Efforts
#WISSENTEILEN
Der richtige Zeitpunkt
Während der Entwicklung Nach dem Release Nach dem Datenverlust
Kosten
Version rollback
Development
Efforts
Development
Efforts
#WISSENTEILEN
Der richtige Zeitpunkt
Während der Entwicklung Nach dem Release Nach dem Datenverlust
Kosten
Impact Analysis
Version rollback
Development
Efforts
Development
Efforts
#WISSENTEILEN
Der richtige Zeitpunkt
Während der Entwicklung Nach dem Release Nach dem Datenverlust
Kosten
Impact Analysis
Version rollback
Schedule delays
Development
Efforts
Development
Efforts
#WISSENTEILEN
Der richtige Zeitpunkt
Während der Entwicklung Nach dem Release Nach dem Datenverlust
Kosten
Re-Launch
Impact Analysis
Version rollback
Schedule delays
Development
Efforts
Development
Efforts
#WISSENTEILEN
Der richtige Zeitpunkt
Während der Entwicklung Nach dem Release Nach dem Datenverlust
Kosten
Re-Launch
Impact Analysis
Version rollback
Schedule delays
Development
Efforts
Development
Efforts
#WISSENTEILEN
Der richtige Zeitpunkt
Während der Entwicklung Nach dem Release Nach dem Datenverlust
Kosten
Re-Launch
Impact Analysis
Version rollback
Schedule delays
Development
Efforts
Re-Launch
Impact Analysis
Version rollback
Schedule delays
Development
Efforts
Development
Efforts
#WISSENTEILEN
Der richtige Zeitpunkt
Während der Entwicklung Nach dem Release Nach dem Datenverlust
Kosten
Re-Launch
Impact Analysis
Version rollback
Reputation
damage
Schedule delays
Development
Efforts
Re-Launch
Impact Analysis
Version rollback
Schedule delays
Development
Efforts
Development
Efforts
#WISSENTEILEN
Der richtige Zeitpunkt
Während der Entwicklung Nach dem Release Nach dem Datenverlust
Kosten
Re-Launch
Impact Analysis
Version rollback
Reputation
damage
Reimbursements
Schedule delays
Development
Efforts
Re-Launch
Impact Analysis
Version rollback
Schedule delays
Development
Efforts
Development
Efforts
#WISSENTEILEN
Der richtige Zeitpunkt
Während der Entwicklung Nach dem Release Nach dem Datenverlust
Kosten
Re-Launch
Impact Analysis
Version rollback
Reputation
damage
Reimbursements
monitoring services
Schedule delays
Development
Efforts
Re-Launch
Impact Analysis
Version rollback
Schedule delays
Development
Efforts
Development
Efforts
#WISSENTEILEN
Der richtige Zeitpunkt
Während der Entwicklung Nach dem Release Nach dem Datenverlust
Kosten
Re-Launch
Impact Analysis
Version rollback
Reputation
damage
Reimbursements
monitoring services
Schedule delays
Development
Efforts
Re-Launch
Impact Analysis
Version rollback
Schedule delays
Development
Efforts
Development
Efforts
Legal Costs
#WISSENTEILEN
Der richtige Zeitpunkt
Während der Entwicklung Nach dem Release Nach dem Datenverlust
Kosten
Re-Launch
Impact Analysis
Version rollback
Reputation
damage
Reimbursements
monitoring services
Schedule delays
Development
Efforts
Re-Launch
Impact Analysis
Version rollback
Schedule delays
Development
Efforts
Development
Efforts
Legal Costs
#WISSENTEILEN
Der richtige Zeitpunkt
Während der Entwicklung Nach dem Release Nach dem Datenverlust
Kosten
Re-Launch
Impact Analysis
Version rollback
Reputation
damage
Reimbursements
monitoring services
Schedule delays
Development
Efforts
Re-Launch
Impact Analysis
Version rollback
Schedule delays
Development
Efforts
Development
Efforts
Legal Costs
#WISSENTEILEN
Aber wie?!
OWASP & Co
OWASP & Co
#WISSENTEILEN
OWASP & Co
• Open Web Application Security Project (OWASP)
• Non-Profit-Organisation mit dem Ziel WWW Anwendungen sicherer zu machen
• OWASP Top10
#WISSENTEILEN
OWASP & Co
• Open Web Application Security Project (OWASP)
• Non-Profit-Organisation mit dem Ziel WWW Anwendungen sicherer zu machen
• OWASP Top10
• Web Application Security Consortium (WASC)
• Non-Profit-Organisation mit dem Ziel WWW Anwendungen sicherer zu machen
• Best Practices in der Implementierung und Abwehr
#WISSENTEILEN
OWASP & Co
• Open Web Application Security Project (OWASP)
• Non-Profit-Organisation mit dem Ziel WWW Anwendungen sicherer zu machen
• OWASP Top10
• Web Application Security Consortium (WASC)
• Non-Profit-Organisation mit dem Ziel WWW Anwendungen sicherer zu machen
• Best Practices in der Implementierung und Abwehr
• SysAdmin, Networking and Security (SANS) Institut
• Anbieter für Cybersicherheitsschulungen und –zertifizierungen
• SANS Top20
#WISSENTEILEN
OWASP & Co
• Open Web Application Security Project (OWASP)
• Non-Profit-Organisation mit dem Ziel WWW Anwendungen sicherer zu machen
• OWASP Top10
• Web Application Security Consortium (WASC)
• Non-Profit-Organisation mit dem Ziel WWW Anwendungen sicherer zu machen
• Best Practices in der Implementierung und Abwehr
• SysAdmin, Networking and Security (SANS) Institut
• Anbieter für Cybersicherheitsschulungen und –zertifizierungen
• SANS Top20
• MITRE Corporation
• Non-Profit-Organisation für die Verwaltung von Forschungsinstituten in den USA
• CWE (Common Weakness Enumeration)
• Common Attack Pattern Enumeration and Classification (CAPEC)
#WISSENTEILEN
Selbsttraining
WebGoat
• Entwickelt von OWASP
• Java Spring
• Unsichere Webanwendung mit
Sicherheitslücken
• Spielwiese zum Lernen
https://github.com/WebGoat/WebGoat
#WISSENTEILEN
WebGoat – Beispiel
#WISSENTEILEN
Damn Vulnerable Web Application (DVWA)
• Entwickelt von RandomStorm
• PHP
• Unsichere Webanwendung mit
Sicherheitslücken
• Spielwiese zum Lernen
https://github.com/ethicalhack3r/DVWA
#WISSENTEILEN
Juice Shop
• Entwickelt von OWASP
• JavaScript
• AngularJS
• NodeJS
• Unsichere Webanwendung mit
Sicherheitslücken
• Spielwiese zum Lernen
https://github.com/bkimminich/juice-shop
#WISSENTEILEN
Game of Hacks
• Checkmarx
• http://www.gameofhacks.com/
#WISSENTEILEN
Game of Hacks
• Checkmarx
• http://www.gameofhacks.com/
#WISSENTEILEN
Game of Hacks
• Checkmarx
• http://www.gameofhacks.com/
#WISSENTEILEN
Game of Hacks
• Checkmarx
• http://www.gameofhacks.com/
#WISSENTEILEN
Schwachstellenanalyse
#WISSENTEILEN
Softwarelebenszyklus
Product Design Development Testing Deployment Production
#WISSENTEILEN
Softwarelebenszyklus
Product Design Development Testing Deployment Production
Sicherheitsanforderungen
#WISSENTEILEN
Softwarelebenszyklus
Product Design Development Testing Deployment Production
Static Application Security Testing
Sicherheitsanforderungen
#WISSENTEILEN
Softwarelebenszyklus
Product Design Development Testing Deployment Production
Static Application Security Testing
Dynamic Application Security Testing
Sicherheitsanforderungen
#WISSENTEILEN
Softwarelebenszyklus
Product Design Development Testing Deployment Production
Static Application Security Testing
Dynamic Application Security Testing
Sicherheitsanforderungen
Penetration
Tests
#WISSENTEILEN
Softwarelebenszyklus
Product Design Development Testing Deployment Production
Static Application Security Testing
Dynamic Application Security Testing
Real-Time Application
Security Protection
oder
Web Application FirewallSicherheitsanforderungen
Penetration
Tests
#WISSENTEILEN
Softwarelebenszyklus
Product Design Development Testing Deployment Production
Static Application Security Testing
Dynamic Application Security Testing
Real-Time Application
Security Protection
oder
Web Application FirewallSicherheitsanforderungen
Penetration
Tests
#WISSENTEILEN
Anforderungen
#WISSENTEILEN
Anforderungen
• Integration
• IDE
• BuildTools
• CI Server
#WISSENTEILEN
Anforderungen
• Integration
• IDE
• BuildTools
• CI Server
• Automatisiert ausführbar
#WISSENTEILEN
Anforderungen
• Integration
• IDE
• BuildTools
• CI Server
• Automatisiert ausführbar
#WISSENTEILEN
Static Application Security Testing
Static Application Security Testing
Vorteile Nachteile
#WISSENTEILEN
Static Application Security Testing
Vorteile
Skalierbarkeit
Nachteile
#WISSENTEILEN
Static Application Security Testing
Vorteile
Skalierbarkeit
Präzise Fehlerbeschreibungen
Nachteile
#WISSENTEILEN
Static Application Security Testing
Vorteile
Skalierbarkeit
Präzise Fehlerbeschreibungen
Benötigt keine laufende Instanz
Nachteile
#WISSENTEILEN
Static Application Security Testing
Vorteile
Skalierbarkeit
Präzise Fehlerbeschreibungen
Benötigt keine laufende Instanz
Entdeckt SQL Injection, Buffer
Overflows, NPE und ähnliches
Nachteile
#WISSENTEILEN
Static Application Security Testing
Vorteile
Skalierbarkeit
Präzise Fehlerbeschreibungen
Benötigt keine laufende Instanz
Entdeckt SQL Injection, Buffer
Overflows, NPE und ähnliches
Keine Auswirkungen auf
(Test-)Umgebungen
Nachteile
#WISSENTEILEN
Static Application Security Testing
Vorteile
Skalierbarkeit
Präzise Fehlerbeschreibungen
Benötigt keine laufende Instanz
Entdeckt SQL Injection, Buffer
Overflows, NPE und ähnliches
Keine Auswirkungen auf
(Test-)Umgebungen
Nachteile
 False Positives
#WISSENTEILEN
Static Application Security Testing
Vorteile
Skalierbarkeit
Präzise Fehlerbeschreibungen
Benötigt keine laufende Instanz
Entdeckt SQL Injection, Buffer
Overflows, NPE und ähnliches
Keine Auswirkungen auf
(Test-)Umgebungen
Nachteile
 False Positives
 Entdeckt nicht alle Fehler z.B. in der
Konfiguration oder bei der
Authentifizierung
#WISSENTEILEN
Static Application Security Testing
• Abhängigkeitsanalyse
• OWASP Dependency Check
• Source Code Analyse
• PMD
• Byte Code Analyse
• findbugs
• SpotBugs
• find-sec-bugs
#WISSENTEILEN
SAST – Verwundbare Bibliotheken
#WISSENTEILEN
SAST – Verwundbare Bibliotheken
CVE-2017-15708
Apache Commons Collection
#WISSENTEILEN
SAST – Verwundbare Bibliotheken
CVE-2017-15708
Apache Commons Collection
Remote Code Execution während der Object Deserialisierung
in Version 3.2.2 und 4.1 behoben
#WISSENTEILEN
SAST – Verwundbare Bibliotheken
CVE-2017-15708
Apache Commons Collection
Remote Code Execution während der Object Deserialisierung
in Version 3.2.2 und 4.1 behoben
CVE-2018-11771
Apache Commons Compress
#WISSENTEILEN
SAST – Verwundbare Bibliotheken
CVE-2017-15708
Apache Commons Collection
Remote Code Execution während der Object Deserialisierung
in Version 3.2.2 und 4.1 behoben
CVE-2018-11771
Apache Commons Compress
Denial of Service beim Archiv lesen durch einen unendlichen Stream
in Version 1.18 behoben
#WISSENTEILEN
OWASP Dependency Check
https://jeremylong.github.io/DependencyCheck/
#WISSENTEILEN
OWASP Dependency Check
• Analysiert Abhängigkeiten
https://jeremylong.github.io/DependencyCheck/
#WISSENTEILEN
OWASP Dependency Check
• Analysiert Abhängigkeiten
• Sucht nach bekannten CVE (Common
Vulnerabilities and Exposures)
https://jeremylong.github.io/DependencyCheck/
#WISSENTEILEN
OWASP Dependency Check
• Analysiert Abhängigkeiten
• Sucht nach bekannten CVE (Common
Vulnerabilities and Exposures)
• Build Tool Integration
• Jenkins Integration
• Auch für Repository Server verfügbar
• Nexus Repository (Nexus Firewall)
• Artifactory (JFrog Xray)
https://jeremylong.github.io/DependencyCheck/
#WISSENTEILEN
SAST
@GET
@Path("/images/{image}")
@Produces("images/*")
public Response getImage(@PathParam("image") String image) {
File file = new File("resources/images/", image);
if (!file.exists()) {
return Response.status(Response.Status.NOT_FOUND).build();
}
return Response.ok().entity(
new FileInputStream(file)
).build();
}
#WISSENTEILEN
SAST – Potential Path Traversal
@GET
@Path("/images/{image}")
@Produces("images/*")
public Response getImage(@PathParam("image") String image) {
File file = new File("resources/images/", image);
if (!file.exists()) {
return Response.status(Response.Status.NOT_FOUND).build();
}
return Response.ok().entity(
new FileInputStream(file)
).build();
}
#WISSENTEILEN
SAST – Potential Path Traversal
@GET
@Path("/images/{image}")
@Produces("images/*")
public Response getImage(@PathParam("image") String image) {
File file = new File("resources/images/",
FilenameUtils.getName(image)
);
if (!file.exists()) {
return Response.status(Response.Status.NOT_FOUND).build();
}
return Response.ok().entity(
new FileInputStream(file)
).build();
}
#WISSENTEILEN
PMD
https://pmd.github.io/
#WISSENTEILEN
PMD
• Sourcecode Analyse
https://pmd.github.io/
#WISSENTEILEN
PMD
• Sourcecode Analyse
• Keine dedizierten Sicherheitsregeln
https://pmd.github.io/
#WISSENTEILEN
PMD
• Sourcecode Analyse
• Keine dedizierten Sicherheitsregeln
• CLI
• Build Tool Integration
• IDE Integration
• Jenkins Integration
https://pmd.github.io/
#WISSENTEILEN
findbugs
http://findbugs.sourceforge.net/
#WISSENTEILEN
findbugs
• Bytecode Analyse
http://findbugs.sourceforge.net/
#WISSENTEILEN
findbugs
• Bytecode Analyse
• Bis Java 8
http://findbugs.sourceforge.net/
#WISSENTEILEN
findbugs
• Bytecode Analyse
• Bis Java 8
• CLI mit GUI
• Build Tool Integration
• IDE Integration
• Jenkins Integration
http://findbugs.sourceforge.net/
#WISSENTEILEN
SpotBugs
https://spotbugs.github.io/
#WISSENTEILEN
SpotBugs
• Bytecode Analyse
• findbugs Nachfolger
https://spotbugs.github.io/
#WISSENTEILEN
SpotBugs
• Bytecode Analyse
• findbugs Nachfolger
• Plugin System
https://spotbugs.github.io/
#WISSENTEILEN
SpotBugs
• Bytecode Analyse
• findbugs Nachfolger
• Plugin System
• CLI mit GUI
• Build Tool Integration
• IDE Integration
• Jenkins Integration
https://spotbugs.github.io/
#WISSENTEILEN
SpotBugs Beispiel
public boolean authenticate() {
boolean authenticated = true;
try {
authenticated = ldapService.isUserAuthenticated(...);
} catch (SomeException e) {
}
return authenticated;
}
#WISSENTEILEN
SpotBugs Beispiel
public boolean authenticate() {
boolean authenticated = true;
try {
authenticated = ldapService.isUserAuthenticated(...);
} catch (SomeException e) {
}
return authenticated;
}
#WISSENTEILEN
SpotBugs Beispiel – Fixed
public boolean authenticate() {
boolean authenticated = true;
try {
authenticated = ldapService.isUserAuthenticated(...);
} catch (SomeException e) {
logger.warn("User authentication failed", e);
authenticated = false;
}
return authenticated;
}
#WISSENTEILEN
find-sec-bugs
https://find-sec-bugs.github.io/
#WISSENTEILEN
find-sec-bugs
• Erweiterung für SpotBugs
https://find-sec-bugs.github.io/
#WISSENTEILEN
find-sec-bugs
• Erweiterung für SpotBugs
• Fokus auf Sicherheit
https://find-sec-bugs.github.io/
#WISSENTEILEN
find-sec-bugs Beispiel
public boolean authenticate(...) {
String user = request.getParameter("user");
String pass = request.getParameter("pass");
String query = "SELECT * FROM users WHERE user = '" +
user + "' AND pass = '" + pass + "'";
java.sql.Statement statement = connection.createStatement();
java.sql.ResultSet resultSet =
statement.executeQuery(query);
return resultSet.next();
}
#WISSENTEILEN
find-sec-bugs Beispiel
public boolean authenticate(...) {
String user = request.getParameter("user");
String pass = request.getParameter("pass");
String query = "SELECT * FROM users WHERE user = '" +
user + "' AND pass = '" + pass + "'";
java.sql.Statement statement = connection.createStatement();
java.sql.ResultSet resultSet =
statement.executeQuery(query);
return resultSet.next();
}
#WISSENTEILEN
find-sec-bugs Beispiel – Fixed
public boolean authenticate(...) {
String user = request.getParameter("user");
String pass = request.getParameter("pass");
String query =
"SELECT * FROM users WHERE user = ? AND pass = ?";
java.sql.Statement statement = connection.createStatement();
statement.setString(1, user);
statement.setString(2, pass);
java.sql.ResultSet resultSet =
statement.executeQuery(query);
return resultSet.next();
}
#WISSENTEILEN
find-sec-bugs Beispiel
#WISSENTEILEN
find-sec-bugs Beispiel
• Unsichere Hash Algorithmen z.B. MD5, SHA1
#WISSENTEILEN
find-sec-bugs Beispiel
• Unsichere Hash Algorithmen z.B. MD5, SHA1
• Hard kodierte Werte z.B. Passwörter, Secret Keys
#WISSENTEILEN
find-sec-bugs Beispiel
• Unsichere Hash Algorithmen z.B. MD5, SHA1
• Hard kodierte Werte z.B. Passwörter, Secret Keys
• Unsichere Cipher Benutzung, z.B. No Padding bei RSA
#WISSENTEILEN
SonarQube
https://www.sonarqube.org/
#WISSENTEILEN
SonarQube
• Tool Aggregator
https://www.sonarqube.org/
#WISSENTEILEN
SonarQube
• Tool Aggregator
• Eigene Regeln
https://www.sonarqube.org/
#WISSENTEILEN
SonarQube
• Tool Aggregator
• Eigene Regeln
• IDE Integration (sonarlint)
• Build Tool Integration (Sonar Scanner)
• Jenkins Integration
https://www.sonarqube.org/
#WISSENTEILEN
#WISSENTEILEN
sonarlint
https://www.sonarlint.org/
#WISSENTEILEN
sonarlint
• IDE / Editor Integration für SonarQube
• Eclipse
• Jetbrains Produkte
• Visual Studio
• VS Code
• Atom
https://www.sonarlint.org/
#WISSENTEILEN
sonarlint
• IDE / Editor Integration für SonarQube
• Eclipse
• Jetbrains Produkte
• Visual Studio
• VS Code
• Atom
• Kein Ersatz für PMD, findbugs und Co
https://www.sonarlint.org/
#WISSENTEILEN
sonarlint
• IDE / Editor Integration für SonarQube
• Eclipse
• Jetbrains Produkte
• Visual Studio
• VS Code
• Atom
• Kein Ersatz für PMD, findbugs und Co
• Regeln vergleichen!
https://www.sonarlint.org/
#WISSENTEILEN
Integration
Integration
IDE Build Tools SonarQube SQ + sonarlint
Sichtbarkeit
Entwickler
++ o + (Web) ++
CI Unterstützung -- + ++ -/-
Konfigurationspflege -- -- ++ ++
#WISSENTEILEN
Integration – IDE
#WISSENTEILEN
Integration – IDE
Sehr hohe Sichtbarkeit für den Entwickler
#WISSENTEILEN
Integration – IDE
Sehr hohe Sichtbarkeit für den Entwickler
 wird nur lokal beim Entwickler ausgeführt
#WISSENTEILEN
Integration – IDE
Sehr hohe Sichtbarkeit für den Entwickler
 wird nur lokal beim Entwickler ausgeführt
 Keine Garantie der Ausführung
#WISSENTEILEN
Integration – IDE
Sehr hohe Sichtbarkeit für den Entwickler
 wird nur lokal beim Entwickler ausgeführt
 Keine Garantie der Ausführung
 CI muss extra konfiguriert werden
#WISSENTEILEN
Integration – IDE
Sehr hohe Sichtbarkeit für den Entwickler
 wird nur lokal beim Entwickler ausgeführt
 Keine Garantie der Ausführung
 CI muss extra konfiguriert werden
 Konfigurationsaufwand / -pflege
#WISSENTEILEN
Integration – Build Tools
#WISSENTEILEN
Integration – Build Tools
Kann immer ausgeführt werden
#WISSENTEILEN
Integration – Build Tools
Kann immer ausgeführt werden
„native“ CI Unterstützung
#WISSENTEILEN
Integration – Build Tools
Kann immer ausgeführt werden
„native“ CI Unterstützung
 Eingeschränkte Sichtbarkeit für den Entwickler
#WISSENTEILEN
Integration – Build Tools
Kann immer ausgeführt werden
„native“ CI Unterstützung
 Eingeschränkte Sichtbarkeit für den Entwickler
 Visualisierung in CI muss extra konfiguriert werden
#WISSENTEILEN
Integration – Build Tools
Kann immer ausgeführt werden
„native“ CI Unterstützung
 Eingeschränkte Sichtbarkeit für den Entwickler
 Visualisierung in CI muss extra konfiguriert werden
 Konfigurationsaufwand / -pflege
#WISSENTEILEN
Integration – SonarQube
#WISSENTEILEN
Integration – SonarQube
Hohe Sichtbarkeit für alle Entwickler
#WISSENTEILEN
Integration – SonarQube
Hohe Sichtbarkeit für alle Entwickler
Zentrale Konfigurationspflege
#WISSENTEILEN
Integration – SonarQube
Hohe Sichtbarkeit für alle Entwickler
Zentrale Konfigurationspflege
Zentrale Fehlerpflege
#WISSENTEILEN
Integration – SonarQube
Hohe Sichtbarkeit für alle Entwickler
Zentrale Konfigurationspflege
Zentrale Fehlerpflege
o Analyse erfolgt verzögert oder Build muss warten
#WISSENTEILEN
Integration – SonarQube
Hohe Sichtbarkeit für alle Entwickler
Zentrale Konfigurationspflege
Zentrale Fehlerpflege
o Analyse erfolgt verzögert oder Build muss warten
o IDE Integration durch eigenes Plugin
#WISSENTEILEN
Integration – SonarQube
Hohe Sichtbarkeit für alle Entwickler
Zentrale Konfigurationspflege
Zentrale Fehlerpflege
o Analyse erfolgt verzögert oder Build muss warten
o IDE Integration durch eigenes Plugin
 Einmaliger Installationsaufwand
#WISSENTEILEN
Integration – SonarQube
Hohe Sichtbarkeit für alle Entwickler
Zentrale Konfigurationspflege
Zentrale Fehlerpflege
o Analyse erfolgt verzögert oder Build muss warten
o IDE Integration durch eigenes Plugin
 Einmaliger Installationsaufwand
 Eigener Build Schritt in der CI / Build Tools
#WISSENTEILEN
Integration – SonarQube + sonarlint
#WISSENTEILEN
Integration – SonarQube + sonarlint
Sehr hohe Sichtbarkeit für den Entwickler
#WISSENTEILEN
Integration – SonarQube + sonarlint
Sehr hohe Sichtbarkeit für den Entwickler
Zentrale Konfigurationspflege
#WISSENTEILEN
Integration – SonarQube + sonarlint
Sehr hohe Sichtbarkeit für den Entwickler
Zentrale Konfigurationspflege
Offline fähig
#WISSENTEILEN
Integration – SonarQube + sonarlint
Sehr hohe Sichtbarkeit für den Entwickler
Zentrale Konfigurationspflege
Offline fähig
o Einmaliger minimaler Konfigurationsaufwand
#WISSENTEILEN
sonarlint im Einsatz
#WISSENTEILEN
sonarlint im Einsatz
#WISSENTEILEN
sonarlint im Einsatz
#WISSENTEILEN
Softwarelebenszyklus
Product Design Development Testing Deployment Production
Static Application Security Testing
#WISSENTEILEN
War da nicht noch was?
Authentifizierung?
Dynamic Application Security Testing
Dynamic Application Security Testing
Vorteile Nachteile
#WISSENTEILEN
Dynamic Application Security Testing
Vorteile
Entdeckt Fehler die nur zur Laufzeit
passieren können z.B.
Fehlkonfigurationen
Nachteile
#WISSENTEILEN
Dynamic Application Security Testing
Vorteile
Entdeckt Fehler die nur zur Laufzeit
passieren können z.B.
Fehlkonfigurationen
Analyse auf Client- und Serverseite
Nachteile
#WISSENTEILEN
Dynamic Application Security Testing
Vorteile
Entdeckt Fehler die nur zur Laufzeit
passieren können z.B.
Fehlkonfigurationen
Analyse auf Client- und Serverseite
Nachteile
 Benötigt laufende Instanz
#WISSENTEILEN
Dynamic Application Security Testing
Vorteile
Entdeckt Fehler die nur zur Laufzeit
passieren können z.B.
Fehlkonfigurationen
Analyse auf Client- und Serverseite
Nachteile
 Benötigt laufende Instanz
 Kann Teile der Anwendungen
verpassen
#WISSENTEILEN
Dynamic Application Security Testing
Vorteile
Entdeckt Fehler die nur zur Laufzeit
passieren können z.B.
Fehlkonfigurationen
Analyse auf Client- und Serverseite
Nachteile
 Benötigt laufende Instanz
 Kann Teile der Anwendungen
verpassen
 Manuelles „Zeigen“
#WISSENTEILEN
Dynamic Application Security Testing
Vorteile
Entdeckt Fehler die nur zur Laufzeit
passieren können z.B.
Fehlkonfigurationen
Analyse auf Client- und Serverseite
Nachteile
 Benötigt laufende Instanz
 Kann Teile der Anwendungen
verpassen
 Manuelles „Zeigen“
 Keine präzise Fehlerbeschreibungen
#WISSENTEILEN
OWASP Zed Attack Proxy (ZAP)
https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project
#WISSENTEILEN
OWASP Zed Attack Proxy (ZAP)
• Security Scanner
• DAST und Penetration Tests
https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project
#WISSENTEILEN
OWASP Zed Attack Proxy (ZAP)
• Security Scanner
• DAST und Penetration Tests
• Kann automatisiert eingesetzt werden
https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project
#WISSENTEILEN
OWASP Zed Attack Proxy (ZAP)
• Security Scanner
• DAST und Penetration Tests
• Kann automatisiert eingesetzt werden
• Viele Addons
https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project
#WISSENTEILEN
OWASP Zed Attack Proxy (ZAP)
• Security Scanner
• DAST und Penetration Tests
• Kann automatisiert eingesetzt werden
• Viele Addons
• Jenkins Plugin
• SonarQube Plugin
https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project
#WISSENTEILEN
ZAP Demo
#WISSENTEILEN
ZAP Demo
#WISSENTEILEN
ZAP Demo
#WISSENTEILEN
ZAP Demo
#WISSENTEILEN
ZAP Demo
#WISSENTEILEN
ZAP Demo
#WISSENTEILEN
ZAP Demo
#WISSENTEILEN
ZAP Demo
#WISSENTEILEN
ZAP Demo
#WISSENTEILEN
ZAP Demo
#WISSENTEILEN
ZAP Demo
#WISSENTEILEN
ZAP Demo
#WISSENTEILEN
ZAP Demo
#WISSENTEILEN
ZAP Demo
#WISSENTEILEN
ZAP Demo
#WISSENTEILEN
ZAP Demo
#WISSENTEILEN
ZAP in CI?
#WISSENTEILEN
ZAP in CI?
• Manuell die URL eingeben?
#WISSENTEILEN
ZAP in CI?
• Manuell die URL eingeben?
• Spider soll die ganze Anwendung crawlen?
#WISSENTEILEN
ZAP in CI?
• Manuell die URL eingeben?
• Spider soll die ganze Anwendung crawlen?
• Attacke starten?
#WISSENTEILEN
ZAP in CI?
• Manuell die URL eingeben?
• Spider soll die ganze Anwendung crawlen?
• Attacke starten?
#WISSENTEILEN
UI Tests
Product Design Development Testing Deployment Production
#WISSENTEILEN
UI Tests
Product Design Development Testing Deployment Production
Warum nicht wieder verwenden?
#WISSENTEILEN
ZAP in CI
#WISSENTEILEN
ZAP in CI
UI Test
Framework
ZAP
(Proxy Mode)
Deployed
Application
#WISSENTEILEN
ZAP in CI
UI Test
Framework
ZAP
(Proxy Mode)
Deployed
Application
#WISSENTEILEN
ZAP in CI
UI Test
Framework
ZAP
(Proxy Mode)
Deployed
Application
#WISSENTEILEN
ZAP in CI
UI Test
Framework
ZAP
(Proxy Mode)
Deployed
Application
Session
#WISSENTEILEN
ZAP in CI
UI Test
Framework
ZAP
(Proxy Mode)
Deployed
Application
ZAP
(Attack Mode)
Deployed
Application
Session
#WISSENTEILEN
ZAP in CI
UI Test
Framework
ZAP
(Proxy Mode)
Deployed
Application
ZAP
(Attack Mode)
Deployed
Application
Session
#WISSENTEILEN
ZAP in CI
UI Test
Framework
ZAP
(Proxy Mode)
Deployed
Application
ZAP
(Attack Mode)
Deployed
Application
Session
#WISSENTEILEN
Softwarelebenszyklus
Product Design Development Testing Deployment Production
Static Application Security Testing
Dynamic Application Security Testing
#WISSENTEILEN
Fazit
#WISSENTEILEN
Fazit
• Entwickler sind (meistens) keine Sicherheitsexperten
#WISSENTEILEN
Fazit
• Entwickler sind (meistens) keine Sicherheitsexperten
• Jeder muss sich mit dem Thema Sicherheit beschäftigen
#WISSENTEILEN
Fazit
• Entwickler sind (meistens) keine Sicherheitsexperten
• Jeder muss sich mit dem Thema Sicherheit beschäftigen
• Es muss Teil des Entwicklungsprozess sein
#WISSENTEILEN
Fazit
• Entwickler sind (meistens) keine Sicherheitsexperten
• Jeder muss sich mit dem Thema Sicherheit beschäftigen
• Es muss Teil des Entwicklungsprozess sein
• Entwicklerbewusstsein
#WISSENTEILEN
Fazit
• Entwickler sind (meistens) keine Sicherheitsexperten
• Jeder muss sich mit dem Thema Sicherheit beschäftigen
• Es muss Teil des Entwicklungsprozess sein
• Entwicklerbewusstsein
• CI Prozess
#WISSENTEILEN
Fazit
• Entwickler sind (meistens) keine Sicherheitsexperten
• Jeder muss sich mit dem Thema Sicherheit beschäftigen
• Es muss Teil des Entwicklungsprozess sein
• Entwicklerbewusstsein
• CI Prozess
• Niemand mag (Security-) Bugs
#WISSENTEILEN
FRAGEN
#WISSENTEILEN
KONTAKT
Christian Schulz,
Enterprise Developer
christian.schulz@openknowledge.de
+49 (0)441 4082 – 146
OFFENKUNDIGGUT
#WISSENTEILEN
BILDNACHWEISE
• Folie 7, http://candycrush.wikia.com/wiki/Level_1350?file=Level_1350_Reality.png
• Folie 32: https://wiki.jenkins.io/display/JENKINS/OWASP+Dependency-Check+Plugin
• Folie 36: https://www.javatips.net/blog/pmd-in-eclipse-tutorial
• Folie 37: http://findbugs.sourceforge.net/manual/example-details.png
• Folie 42: https://find-sec-bugs.github.io/images/screens/eclipse.png
• Folie 47: https://www.sonarqube.org/index/detect-bugs-2@2x.png
• Folie 49: https://www.sonarlint.org/static/screenshot-feature-1-07de0778bcba0a0fce549fedb082e187-
9918a.png
• Icons in this presentation designed by “Freepik”, “Nice and Serious” and “Elegant Themes” from
www.flaticon.com
#WISSENTEILEN

Weitere ähnliche Inhalte

Ähnlich wie INTEGRATION VON SECURITY-CHECKS IN DIE CI-PIPELINE

AG Softwaretechnik
AG SoftwaretechnikAG Softwaretechnik
AG Softwaretechnik
Roland M
 
Suche und Navigation in Online-Shops. Mit Apache Solr und Elasticsearch
Suche und Navigation in Online-Shops. Mit Apache Solr und ElasticsearchSuche und Navigation in Online-Shops. Mit Apache Solr und Elasticsearch
Suche und Navigation in Online-Shops. Mit Apache Solr und Elasticsearch
SHI Search | Analytics | Big Data
 

Ähnlich wie INTEGRATION VON SECURITY-CHECKS IN DIE CI-PIPELINE (20)

Quo vadis DevOps
Quo vadis DevOpsQuo vadis DevOps
Quo vadis DevOps
 
Responsive Web Design - Ein Überblick
Responsive Web Design - Ein ÜberblickResponsive Web Design - Ein Überblick
Responsive Web Design - Ein Überblick
 
Integration von Security-Checks in die CI-Pipeline
Integration von Security-Checks in die CI-PipelineIntegration von Security-Checks in die CI-Pipeline
Integration von Security-Checks in die CI-Pipeline
 
Modern Lightweight Enterprise Architectures mit Java
Modern Lightweight Enterprise Architectures mit JavaModern Lightweight Enterprise Architectures mit Java
Modern Lightweight Enterprise Architectures mit Java
 
Swarovski Wie mobile-optimierte Websites Umsatz und das neue Google Rating st...
Swarovski Wie mobile-optimierte Websites Umsatz und das neue Google Rating st...Swarovski Wie mobile-optimierte Websites Umsatz und das neue Google Rating st...
Swarovski Wie mobile-optimierte Websites Umsatz und das neue Google Rating st...
 
AG Softwaretechnik
AG SoftwaretechnikAG Softwaretechnik
AG Softwaretechnik
 
Das passende Backend für meine Apps
Das passende Backend für meine AppsDas passende Backend für meine Apps
Das passende Backend für meine Apps
 
Microservices Architecture: Architektur und Patterns
Microservices Architecture: Architektur und PatternsMicroservices Architecture: Architektur und Patterns
Microservices Architecture: Architektur und Patterns
 
Shopware Community Day 2015 Shopware 5 technische Roadmap
Shopware Community Day 2015 Shopware 5 technische RoadmapShopware Community Day 2015 Shopware 5 technische Roadmap
Shopware Community Day 2015 Shopware 5 technische Roadmap
 
Enterprise Java on Steroids
Enterprise Java on SteroidsEnterprise Java on Steroids
Enterprise Java on Steroids
 
Suche und Navigation in Online-Shops. Mit Apache Solr und Elasticsearch
Suche und Navigation in Online-Shops. Mit Apache Solr und ElasticsearchSuche und Navigation in Online-Shops. Mit Apache Solr und Elasticsearch
Suche und Navigation in Online-Shops. Mit Apache Solr und Elasticsearch
 
Kaps - Continuous Deployment Roadmap
Kaps - Continuous Deployment RoadmapKaps - Continuous Deployment Roadmap
Kaps - Continuous Deployment Roadmap
 
Endress + Hauser: Echtzeit Performance Monitoring erfolgreich umgesetzt
Endress + Hauser: Echtzeit Performance Monitoring erfolgreich umgesetzt Endress + Hauser: Echtzeit Performance Monitoring erfolgreich umgesetzt
Endress + Hauser: Echtzeit Performance Monitoring erfolgreich umgesetzt
 
OOP 2012 - Udo Pracht - DevOps Einführung und Überblick
OOP 2012 - Udo Pracht - DevOps Einführung und ÜberblickOOP 2012 - Udo Pracht - DevOps Einführung und Überblick
OOP 2012 - Udo Pracht - DevOps Einführung und Überblick
 
Warum SEO (auch) Deine Aufgabe ist - WebTechCon 2016
Warum SEO (auch) Deine Aufgabe ist - WebTechCon 2016Warum SEO (auch) Deine Aufgabe ist - WebTechCon 2016
Warum SEO (auch) Deine Aufgabe ist - WebTechCon 2016
 
Bareos: Open Source Backup leicht gemacht (Webinar vom 10.06.2014)
Bareos: Open Source Backup leicht gemacht (Webinar vom 10.06.2014)Bareos: Open Source Backup leicht gemacht (Webinar vom 10.06.2014)
Bareos: Open Source Backup leicht gemacht (Webinar vom 10.06.2014)
 
The new job of qa was ein quality engineer zukünftig können muss
The new job of qa   was ein quality engineer zukünftig können mussThe new job of qa   was ein quality engineer zukünftig können muss
The new job of qa was ein quality engineer zukünftig können muss
 
Quo vadis-devops-nuernberg
Quo vadis-devops-nuernbergQuo vadis-devops-nuernberg
Quo vadis-devops-nuernberg
 
Cloud at massive scale and incredible speed, Ekkard Schnedermann berichtet vo...
Cloud at massive scale and incredible speed, Ekkard Schnedermann berichtet vo...Cloud at massive scale and incredible speed, Ekkard Schnedermann berichtet vo...
Cloud at massive scale and incredible speed, Ekkard Schnedermann berichtet vo...
 
ConSol Unternehmenspräsentation 2019
ConSol Unternehmenspräsentation 2019ConSol Unternehmenspräsentation 2019
ConSol Unternehmenspräsentation 2019
 

Mehr von OPEN KNOWLEDGE GmbH

Mehr von OPEN KNOWLEDGE GmbH (20)

Warum der Computer "Nein" sagt - Mehr Nachvollziehbarkeit dank Explainable AI
Warum der Computer "Nein" sagt - Mehr Nachvollziehbarkeit dank Explainable AIWarum der Computer "Nein" sagt - Mehr Nachvollziehbarkeit dank Explainable AI
Warum der Computer "Nein" sagt - Mehr Nachvollziehbarkeit dank Explainable AI
 
Machine Learning? Ja gerne! Aber was und wie? Eine Kurzanleitung für den erfo...
Machine Learning? Ja gerne! Aber was und wie? Eine Kurzanleitung für den erfo...Machine Learning? Ja gerne! Aber was und wie? Eine Kurzanleitung für den erfo...
Machine Learning? Ja gerne! Aber was und wie? Eine Kurzanleitung für den erfo...
 
From Zero to still Zero: Die schönsten Fehler auf dem Weg in die Cloud
From Zero to still Zero: Die schönsten Fehler auf dem Weg in die CloudFrom Zero to still Zero: Die schönsten Fehler auf dem Weg in die Cloud
From Zero to still Zero: Die schönsten Fehler auf dem Weg in die Cloud
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
FEHLENDE DATEN? (K)EIN PROBLEM!: Die Kunst der Data Imputation
FEHLENDE DATEN? (K)EIN PROBLEM!: Die Kunst der Data ImputationFEHLENDE DATEN? (K)EIN PROBLEM!: Die Kunst der Data Imputation
FEHLENDE DATEN? (K)EIN PROBLEM!: Die Kunst der Data Imputation
 
Nie wieder Log-Files!
Nie wieder Log-Files!Nie wieder Log-Files!
Nie wieder Log-Files!
 
Cloud-native and Enterprise Java? Hold my beer!
Cloud-native and Enterprise Java? Hold my beer!Cloud-native and Enterprise Java? Hold my beer!
Cloud-native and Enterprise Java? Hold my beer!
 
From Zero to still Zero: The most beautiful mistakes going into the cloud.
From Zero to still Zero: The most beautiful mistakes going into the cloud. From Zero to still Zero: The most beautiful mistakes going into the cloud.
From Zero to still Zero: The most beautiful mistakes going into the cloud.
 
API Expand Contract
API Expand ContractAPI Expand Contract
API Expand Contract
 
Ready for the Future: Jakarta EE in Zeiten von Cloud Native & Co
Ready for the Future: Jakarta EE in Zeiten von Cloud Native & CoReady for the Future: Jakarta EE in Zeiten von Cloud Native & Co
Ready for the Future: Jakarta EE in Zeiten von Cloud Native & Co
 
Shared Data in verteilten Architekturen
Shared Data in verteilten ArchitekturenShared Data in verteilten Architekturen
Shared Data in verteilten Architekturen
 
Machine Learning mit TensorFlow.js
Machine Learning mit TensorFlow.jsMachine Learning mit TensorFlow.js
Machine Learning mit TensorFlow.js
 
KI und Architektur
KI und ArchitekturKI und Architektur
KI und Architektur
 
It's not Rocket Science: Neuronale Netze
It's not Rocket Science: Neuronale NetzeIt's not Rocket Science: Neuronale Netze
It's not Rocket Science: Neuronale Netze
 
Shared Data in verteilten Systemen
Shared Data in verteilten SystemenShared Data in verteilten Systemen
Shared Data in verteilten Systemen
 
Business-Mehrwert durch KI
Business-Mehrwert durch KIBusiness-Mehrwert durch KI
Business-Mehrwert durch KI
 
Mehr Sicherheit durch Automatisierung
Mehr Sicherheit durch AutomatisierungMehr Sicherheit durch Automatisierung
Mehr Sicherheit durch Automatisierung
 
API-Design, Microarchitecture und Testing
API-Design, Microarchitecture und TestingAPI-Design, Microarchitecture und Testing
API-Design, Microarchitecture und Testing
 
Supersonic Java für die Cloud: Quarkus
Supersonic Java für die Cloud: QuarkusSupersonic Java für die Cloud: Quarkus
Supersonic Java für die Cloud: Quarkus
 
Das ist doch alles nur Frontend - Wer braucht da schon Architektur?
Das ist doch alles nur Frontend - Wer braucht da schon Architektur?Das ist doch alles nur Frontend - Wer braucht da schon Architektur?
Das ist doch alles nur Frontend - Wer braucht da schon Architektur?
 

INTEGRATION VON SECURITY-CHECKS IN DIE CI-PIPELINE