Softwerkskammer Lübeck
Vortrag zu Cyber Security und dem OWASP Juice Shop
bei checkdomain
--
Die Zeiten, als noch ohne tiefgreifendes Motiv Viren entwickelt wurden, sind lange vorbei. Cybercrime ist heutzutage ein lukratives Geschäft für die Organisierte Kriminalität. Das belegen immer wieder erfolgreiche Angriffe auf Applikationen großer Unternehmen wie Sony, Yahoo, Twitter, Facebook und Co. Cybercrime verursacht jährlich einen Schaden von ca. 350 Mrd. € für die globale Wirtschaft, was 0,5% des Weltbruttosozialprodukts entspricht. Zum Vergleich: Der jährliche Schaden, der durch Drogenhandel entsteht, wird auf 600 Mrd. € geschätzt. Über 250.000 neue Malware-Varianten werden täglich gefunden. Durch die immer weitreichendere digitale Transformation müssen sich immer mehr Branchen mit Cybersecurity befassen.
Interessant ist, dass laut Verizon 71% aller erfolgreichen Cyber-Attacken in Unternehmen mit weniger als 100 Mitarbeitern erfolgen. Hier ist die Innovationskraft besonders groß und gleichzeitig ist Security meist nicht fest in Unternehmensprozesse verankert. 40% aller erfolgreichen Angriffe erfolgen über Webapplikationen.
2. 3 Praxisteil (60 min)
Wir hacken den OWASP Juice Shop
2
Cyber Security im Unternehmen (30 min)
Einblick in die Sicherungsmaßnahmen bei Dräger
Basics (30 min)
Cyber Security, Cyber Crime, Zahlen & Fakten, OWASP Top 10
1
4. Cyber
Security
Cyber
Crime
Cybercrime, or computer related
crime, is crime that involves a
computer and a network. The
computer may have been used in
the commission of a crime, or it
may be the target.
Moore, R. (2005)
Cyber crime: Investigating High-Technology Computer
Crime
Cybersecurity [..] is the protection
of computer systems from the
theft or damage to the hardware,
software or the information on
them, as well as from disruption
or misdirection of the services
they provide.
Gasser, Morrie (1988)
Building a Secure Computer System
5. Cyber Crime
Schaden für die globale Wirtschaft / jährlich
350 Mrd. €
250.000
Ø 9 Mio. €
Neue Malwarevarianten gefunden / täglich
Kosten für US Konzerne / jährlich
71 % Aller erfolgreichen Cyberattacken in
Unternehmen mit weniger als 100 Mitarbeitern
Verizon(2016),Verizon’s2016DataBreachInvestigationsReport
McAffee(2014),EstimatetheGlobalCostofCybercrime2014
8. 71% 29%VS
< 100 Mitarbeiter
Web-based Attacks
Malware
Phishing
Social engineering
Konzerne
Denial of Service
Malicious Insiders
Malicious Code
Stolen Devices
Verizon (2016), Verizon’s 2016 Data Breach Investigations Report
9. Einbrüche nach Vektor
Alle anderen
POS Intrusions
Angriffe auf Webapps
40%39%
21%
Verizon (2016), Verizon’s 2016 Data Breach Investigations Report
10. Programmierfehler, ausstehende
Updates
Implementierung
Spezifikation von Funktionsweisen,
Schnittstellen, Datenformaten,
Übertragungsprotokollen
Design
Ungeeignete Konfiguration
Konfiguration
Bewusste/unbewusste Sicherheitsvorfälle durch
Mitarbeiter
Mensch
Sicherheitslücken
BSI (2012), Cyber-Bedrohungen – ein Einstieg, 2012
11. Non-Profit-Organisation
Ziel ist Sicherheit von Diensten und
Anwendungen im WWW verbessern
owasp.org
Erstveröffentlichung 2003
Liste der 10 aktuell bedeutendsten
Sicherheitslücken in Webapplikationen
Exemplarische Angriffs- &
Verteidigungsstrategien
Top 10Organisation
OWASP
Weitere Projekte
Developers Guide, Cheat Sheet Series, Testing
Guide, Code Review Guide
12. A2 – Fehler in Authentifizierung und
Session-Management
A1 – Injections
A3 – Cross-Site Scripting (XSS)
A4 – Unsichere direkte
Objektreferenzen
A5 – Sicherheitsrelevante
Fehlkonfiguration
A6 – Verlust der Vertraulichkeit
sensibler Daten
A7 – Fehlerhafte Authorisierung auf
Anwendungsebene
A8 – Cross-Site Request Forgery (CSRF)
A9 – Nutzung von Komponenten mit
bekannten Schwachstellen
A10 – Ungeprüfte Um- und Weiterleitungen
OWASP Top 10
13. James Hobson (2014), http://hackaday.com/2014/04/04/sql-injection-fools-speed-traps-and-clears-your-record/
14. Injections
Verarbeitung von Client-Daten:
http://example.com/app/accountView?id=[0-9]+
String query = "SELECT * FROM accounts WHERE id='" +
request.getParameter("id") + "'";
Angriffsszenarien
- Prepared Statements
- Stored Procedures
- Escapen von User-Input
- Whitelist Input-Validation
- DB Privilegien minimieren
Schutz
Missbräuchlicher Abfrage:
http://example.com/app/accountView?id=' or ‚1'='1
SELECT * FROM accounts WHERE id='' OR '1'='1';
15. Auth- & Session-Management
Session-ID in URL
http://example.com/flight/37?jsessionid=123
Mögliche Übernahme des Logins / Session-Fixation
Angriffsszenarien
- Zentrales Authentifizierung und Session-Management
- Verschlüsselte Übertragung
- Session-ID unvorhersehbar
- Keine Session-ID in URL
- Session-Fixation verhindern
- Session Timeout, Invalidierung bei Logout
- Schutz vor BruteForce etc.
Schutz
Anwendungs-Timeout falsch konfiguriert
Nutzung eines öffentlichen PCs
19. Unsichere Objektreferenzen
Direkte Objektreferenz:
Über den API-Endpunkt werden Account-Infos für den
aktuellen Anwender via Javascript abfragt:
http://api.example.com/accountInfo?id=myId
Die Implementierung prüft keine Zugriffsrechte:
String query = "SELECT * FROM accounts WHERE id = ?“;
PreparedStatement pstmt =
connection.prepareStatement(query , … );
pstmt.setString(1, request.getparameter("id"));
ResultSet results = pstmt.executeQuery( );
Angriffsszenarien
- Indirekte Objektreferenzen
- Zugriffsberechtigungen bei Objektreferenzen prüfen
Schutz
Ein Angreifer kann so fremde Accounts einsehen:
http://api.example.com/accountInfo?id=notMyId
21. Fehlkonfiguration
Standard-Benutzerkonto:
Benutzerkonto mit Standardkonto installiert, Der Angreifer
entdeckt dies und erhält so Zugriff auf das System.
Directory Listing/Zugriff:
Angreifer ruft gesamten öffentliche Dateien ab, findet Relikte
der Entwicklung, bzw. nicht ausreichend geschützte Dateien.
Stacktraces öffentlich:
Angreifer erhält sensible Informationen über die
Implementierung, etc.
Angriffsszenarien
- Robuste Anwendungsarchitektur, Trennung und
Absicherung einzelner Komponenten.
- Periodische Tests und Audits
- Identische Konfiguration aller Umgebungen
- Prozess zum schnellen Ausrollen von Softwareupdates auf
allen Umgebungen.
- Verschiedene Zugangsdaten pro Umgebung
-
Schutz
22. Kay Röpke (2016), https://twitter.com/kroepke
Vertraulichkeit sensibler Daten
23. Vertraulichkeit sensibler Daten
Schwache Krypto-Verfahren:
Angreifer gelangt an gehashte Benutzerdaten und kann die
mit md5 gehashten Kennwörter über Rainbow-Tables
entschlüsseln]
Keine verschlüsselte Übertragung:
Angreifer liest im offenen WLAN mit, übernimmt Sitzung über
mitgelesenes Cookie
Verschlüsselung ohne Public/Private-Key:
Anwendung speichert und entschlüsselt Kreditkartendaten
über Secret. Angreifer gelangt an über Webapplikation an
Secret und verschlüsselte Daten.
Angriffsszenarien
- Keine unnötiges Speichern vertraulicher Daten.
- Verwendung starker Algorithmen und Verschlüsselung
- Hashen von Kennwörtern mit speziellen Algorithmen
(bcrypt, PBKDF2, scrypt)
- Deaktivieren von Autovervollständigung, Caching bei
vertraulichen Daten.
- Klärung abzusichernder Bedrohung (intern/extern). Mit
geeigneter Verschlüsselung übertragen/speichern/absichern
(Public/Private-Key)
Schutz
24. A2 – Fehler in Authentifizierung und
Session-Management
A1 – Injections
A3 – Cross-Site Scripting (XSS)
A4 – Unsichere direkte
Objektreferenzen
A5 – Sicherheitsrelevante
Fehlkonfiguration
A6 – Verlust der Vertraulichkeit
sensibler Daten
A7 – Fehlerhafte Authorisierung auf
Anwendungsebene
A8 – Cross-Site Request Forgery (CSRF)
A9 – Nutzung von Komponenten mit
bekannten Schwachstellen
A10 – Ungeprüfte Um- und Weiterleitungen
OWASP Top 10
26. 3 Praxisteil (60 min)
Wir hacken den OWASP Juice Shop
2
Cyber Security im Unternehmen (30 min)
Einblick in die Sicherungsmaßnahmen bei Dräger
Basics (30 min)
Cyber Security, Cyber Crime, Zahlen & Fakten, OWASP Top 10
1
27. 3 Praxisteil (60 min)
Wir hacken den OWASP Juice Shop
2
Cyber Security im Unternehmen (30 min)
Einblick in die Sicherungsmaßnahmen bei Dräger
Basics (30 min)
Cyber Security, Cyber Crime, Zahlen & Fakten, OWASP Top 10
1
28. Wir hacken in Zweiergruppen
2er-Gruppen
01
Wir haben 16 Shop Instanzen für
euch aufgesetzt. Shop-URLs werden
gleich ausgeteilt.
Bereits installiert
03
Beginnen mit den Sicherheitslüclen
1-3
10 Minuten Slots
05
Ein Web-affiner schnappt sich jeweils
einen Web-Unerfahrenen
Erfahren/Unerfahren
02
Kommt ihr nicht weiter oder findet
keinen Anfang? Einfach fragen!
Fragen erwünscht!
04
Stellt vor, wie ihr vorgegangen seid.
Vorgehen präsentieren
06
29. Martin Abraham
Web: https://www.checkdomain.de/
Email: m.abraham@checkdomain.de
Twitter: https://twitter.com/mabrahamde
Xing: https://www.xing.com/martin-abraham
Github: https://github.com/mabrahamde
Slideshare: https://www.slideshare.net/MartinAbraham9
30. Wired (2017), How Hackers Hijacked a Bank’s Entire Online
Operation - https://www.wired.com/2017/04/hackers-
hijacked-banks-entire-online-operation/
Verizon (2016), Verizon’s 2016 Data Breach Investigations
Report - http://www.verizonenterprise.com/verizon-insights-
lab/dbir/2016/
McAffee (2014), Estimate the Global Cost of Cybercrime 2014
- https://www.mcafee.com/us/resources/reports/rp-
economic-impact-cybercrime2.pdf
McAfee (2016), 2016 Cost of Cyber Crime Study & the Risk of
Business Innovation - http://www.ponemon.org/library/2016-
cost-of-cyber-crime-study-the-risk-of-business-innovation
VeraCode (2015), OWASP Top 10 Vulnerabilities - https://
www.veracode.com/directory/owasp-top-10
Quellen
BSI (2012), Cyber-Bedrohungen – ein Einstieg - https://
www.allianz-fuer-cybersicherheit.de/ACS/DE/_/downloads/
BSI-CS_037.pdf?__blob=publicationFile&v=2
Hackaday (2014), SQL Injections fools speed traps and clears
your records - http://hackaday.com/2014/04/04/sql-injection-
fools-speed-traps-and-clears-your-record/
Sucuri (2014), Serious Cross Site Scripting Vulnerability in
TweetDeck - https://blog.sucuri.net/2014/06/serious-cross-
site-scripting-vulnerability-in-tweetdeck-twitter.html
EuroVPS (2015), Your site’s top 10 security vulnerabilities: Part
2 -https://www.eurovps.com/blog/security-vulnerabilities-
part-2