52
Sicherheit in Web-Anwendungen Java Forum Stuttgart 2018 Bernhard Hirschmann Stuttgart, 2018 v1

Java Forum Stuttgart 2018 · 2012-02-04  · Sicherheit in Web-Anwendungen Java Forum Stuttgart 2018 Bernhard Hirschmann Stuttgart, 2018 v1

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Java Forum Stuttgart 2018 · 2012-02-04  · Sicherheit in Web-Anwendungen Java Forum Stuttgart 2018 Bernhard Hirschmann Stuttgart, 2018 v1

Sicherheit in Web-Anwendungen

Java Forum Stuttgart 2018

Bernhard Hirschmann

Stuttgart, 2018

v1

Page 2: Java Forum Stuttgart 2018 · 2012-02-04  · Sicherheit in Web-Anwendungen Java Forum Stuttgart 2018 Bernhard Hirschmann Stuttgart, 2018 v1

Opfer Kein Opfer

9 von 10 Unternehmen sind Opfer von Angriffen

Page 3: Java Forum Stuttgart 2018 · 2012-02-04  · Sicherheit in Web-Anwendungen Java Forum Stuttgart 2018 Bernhard Hirschmann Stuttgart, 2018 v1

Bösartiger Außenseiter Versehentlicher Verlust Bösartiger Insider Hacktivist State Sponsored Unbekannt

Täter der Einbrüche

Page 4: Java Forum Stuttgart 2018 · 2012-02-04  · Sicherheit in Web-Anwendungen Java Forum Stuttgart 2018 Bernhard Hirschmann Stuttgart, 2018 v1

Identitäts-Diebstahl Finanzzugang Kontodaten Existenzdaten Provokationen

Typen der Einbrüche

Page 5: Java Forum Stuttgart 2018 · 2012-02-04  · Sicherheit in Web-Anwendungen Java Forum Stuttgart 2018 Bernhard Hirschmann Stuttgart, 2018 v1

9.740.567.988

Page 6: Java Forum Stuttgart 2018 · 2012-02-04  · Sicherheit in Web-Anwendungen Java Forum Stuttgart 2018 Bernhard Hirschmann Stuttgart, 2018 v1

Data Breach Statistics

Stündlich

214.853 Datensätze

Täglich

5.156.468 Datensätze

Pro Minute

3.581 Datensätze

Pro Sekunde

60 Datensätze

Quelle: http://breachlevelindex.com/ (Jan. 2013 – Feb. 2018)

weltweit über 9.740.567.988 Datensätze verschwunden

Page 7: Java Forum Stuttgart 2018 · 2012-02-04  · Sicherheit in Web-Anwendungen Java Forum Stuttgart 2018 Bernhard Hirschmann Stuttgart, 2018 v1

Verlorene oder gestohlene Datensätze in Deutschland 2016

Organisation Datensätze Typ Täter Branche

Aerticket 1.500.000 Identitäts-Diebstahl Böswilliger Außenseiter Reise

BlaBlaCar 743.000 Finanzzugang Böswilliger Außenseiter Einzelhandel

Deutsche Telekom 120.000 Kontodaten Böswilliger Außenseiter Technologie

Postbank, Commerbank, Landesbank Berlin/

MasterCard 85.000 Finanzzugang Böswilliger Außenseiter Finanzen

Lukas Hospital Klinikum Arnsberg

unbekannt Existenzdaten Böswilliger Außenseiter Gesundheitswesen

ThyssenKrupp unbekannt Existenzdaten Böswilliger Außenseiter Industrie

Sanacorp unbekannt Provokation Versehentlicher Verlust Gesundheitswesen

BDSwiss Handelsplattform

2.500 Provokation Böswilliger Außenseiter Finanzen

Quelle: http://breachlevelindex.com

Page 8: Java Forum Stuttgart 2018 · 2012-02-04  · Sicherheit in Web-Anwendungen Java Forum Stuttgart 2018 Bernhard Hirschmann Stuttgart, 2018 v1

Gestohlene Datensätze

Quelle: https://www.heise.de/security/meldung/Hacker-kopieren-Nutzer-Daten-von-Mitfahrgelegenheit-de-und-Mitfahrzentrale-de-3507285.html

Mitfahrgelegenheit.de / Mitfahrzentrale.de

@

Hack des Cloud-Dienstes

Comuto

Daten AES verschlüsselt

Key mit abgelegt

In DB

638.000 IBAN-Nummern

101.000 E-Mail

15.000 Mobilnr.

Page 9: Java Forum Stuttgart 2018 · 2012-02-04  · Sicherheit in Web-Anwendungen Java Forum Stuttgart 2018 Bernhard Hirschmann Stuttgart, 2018 v1

Hoch-sicherheitsnetz

der Bundesregierung

Russische Hackergruppe

Snake

Angriff über Fachhochschule

des Bundes

Spionagesoftware Uroburos

Kommunikation über Outlook

@

Quelle: http://www.heise.de

Gestohlene Datensätze

Bundeshack - Auswärtiges Amt

Page 10: Java Forum Stuttgart 2018 · 2012-02-04  · Sicherheit in Web-Anwendungen Java Forum Stuttgart 2018 Bernhard Hirschmann Stuttgart, 2018 v1

Security Strategie entwickeln

Statistik:

Maßnahmen:

Erfahrung:

Umgang mit Hacker-Angriffen

•  Secure Coding der Anwendung

•  Robuste Authentifizierung

•  Durchdachte Autorisierung

•  Verschlüsselung der Daten

•  Sicherer Transport und Austausch

Bei nur 4% der Angriffe sind Daten verschlüsselt

Verschlüsselung

verbessert

Sicherheit enorm!

Sicherheitsverstöße und Einbrüche sind nicht vermeidbar

Page 11: Java Forum Stuttgart 2018 · 2012-02-04  · Sicherheit in Web-Anwendungen Java Forum Stuttgart 2018 Bernhard Hirschmann Stuttgart, 2018 v1

Quelle: https://www.rachaelandtom.info/photos/picture/1351-kurios119

Page 12: Java Forum Stuttgart 2018 · 2012-02-04  · Sicherheit in Web-Anwendungen Java Forum Stuttgart 2018 Bernhard Hirschmann Stuttgart, 2018 v1

Daten verschlüsseln Schlüssel sicher aufbewahren und

verwalten

Benutzerzugriffe verwalten

Stark Verschlüsseln bei

•  Übertagung

•  Austausch

•  Speicherung

Damit wird Angriff sinnlos oder zu aufwändig.

Prozess für Schlüsselverwaltung festlegen:

•  Limitieren

•  Regelmäßiges Aus-

wechseln

•  Vergabe

Schlüssel müssen geheim sein und bleiben.

Festlegen wer Zugriff auf Daten hat

•  Verifikations-Prozess

•  Zugriffs-Level

•  Starke Authentifizierung

•  Kommunikation mit Benutzergruppen

Secure Coding

Vermeiden gängiger Sicherheitslücken.

Best-Practices

anwenden.

Gestählte Crypto-Libs

verwenden.

Sicherheits-Maßnahmen

Page 13: Java Forum Stuttgart 2018 · 2012-02-04  · Sicherheit in Web-Anwendungen Java Forum Stuttgart 2018 Bernhard Hirschmann Stuttgart, 2018 v1
Page 14: Java Forum Stuttgart 2018 · 2012-02-04  · Sicherheit in Web-Anwendungen Java Forum Stuttgart 2018 Bernhard Hirschmann Stuttgart, 2018 v1

Warum Secure Coding?

Entwickler für Schwachstellen sensibilisieren

Welche Gefahren? Woher Hilfe? Wo nachschlagen?

Wissen Einfallstore Web-Anwendungen sind schützenswert. Wenn unsicher, dann Einfallstor. Sie verbinden eine Firma mit dem Web.

Bedrohungen Infrastruktur kann noch so sicher sein Wenn Anwendung gehackt wird, kommt man rein.

Risiken Wer Risiken nicht kennt, kann sie beim Coden nicht berücksichtigen.

Page 15: Java Forum Stuttgart 2018 · 2012-02-04  · Sicherheit in Web-Anwendungen Java Forum Stuttgart 2018 Bernhard Hirschmann Stuttgart, 2018 v1

DevOps Zyklus

Dev Ops Sec

agil! dynamisch! Wasserfall!

100 10 1

Page 16: Java Forum Stuttgart 2018 · 2012-02-04  · Sicherheit in Web-Anwendungen Java Forum Stuttgart 2018 Bernhard Hirschmann Stuttgart, 2018 v1

SecDevOps Zyklus

SecDev Ops

Continuous Security Testing

•  Statische und dynamische Analysen

•  frühzeitig und regelmäßig

Page 17: Java Forum Stuttgart 2018 · 2012-02-04  · Sicherheit in Web-Anwendungen Java Forum Stuttgart 2018 Bernhard Hirschmann Stuttgart, 2018 v1

SecDevOps Zyklus

Wie bringt man Sec und Dev zusammen?

•  Secure Coding Richtlinien – aufstellen und etablieren

•  Integration in Build-Prozess (SDLC)

•  Automatisierung

•  Zusammenarbeit von Entwicklung, Betrieb und Sicherheitsbeauftragten

- SecDevOps

Page 18: Java Forum Stuttgart 2018 · 2012-02-04  · Sicherheit in Web-Anwendungen Java Forum Stuttgart 2018 Bernhard Hirschmann Stuttgart, 2018 v1

SecDevOps Einführen des neuen Prozesses

Secure Coding & Security Testing

Recherche & Analyse

Richtlinien aufstellen

Sensibilisierung & Schulung

Integration Build-Prozess

Evaluierung

Page 19: Java Forum Stuttgart 2018 · 2012-02-04  · Sicherheit in Web-Anwendungen Java Forum Stuttgart 2018 Bernhard Hirschmann Stuttgart, 2018 v1

Nr Beschreibung Risiko Verwundbarkeit/Schwachstelle

Angriffe Testbar durch

1 Verhindere das Injizieren von Schadcode A1 - OWASP Top-10 2017 WASC-20 CWE-20 CWE-89

WASC-19 CAPEC-66

FindSecBugs

2 Verwende keine hartcodierten Passwörter A2 - OWASP Top-10 2017 CWE-798 CWE-259 CWE-321

CAPEC-190 FindSecBugs

3 Verwende sicheres Session-Management A2 - OWASP Top-10 2017 CWE-613 CWE-614

WASC-47 CAPEC-21

web.xml Check

4 Verwende keine vorhersagbaren Zufallszahlen-Generatoren

A2 - OWASP Top-10 2017 CWE-6 CWE-330

CAPEC-21 CAPEC-112 WASC-11

FindSecBugs

5 Verhindere den unerlaubten Zugriff auf Dateien durch Pfad-Manipulationen

A5 - OWASP Top-10 2017 CWE-22 WASC-33 CAPEC-126

FindSecBugs

6 Vermeide die Anzeige von technischen Fehlermeldungen

A6 - OWASP Top-10 2017 CWE-209 WACS-14

CAPEC-54 web.xml Check

7 Verwende keine schwachen Krypto-Algorithmen A3 - OWASP Top-10 2017 CWE-326 CWE-327 CWE-261

CAPEC-55 CAPEC-112

FindSecBugs

8 Verwende sichere Deserialisierung A8 - OWASP Top-10 2017 CWE-502 CAPEC-586 web.xml Check

9 Verwende keine 3rd-Party Libraries mit bekannten Verwundbarkeiten

A9 - OWASP Top-10 2017 Diverse: Injection, Broken Access Control, XSS, etc.

Entsprechend den Verwundbarkeiten

OWASP Dependency Check Retire.js

10 Verwende Monitoring für sicherheitsrelevante Ereignisse

A10 - OWASP Top-10 2017 CWE-778

Monitoring

Page 20: Java Forum Stuttgart 2018 · 2012-02-04  · Sicherheit in Web-Anwendungen Java Forum Stuttgart 2018 Bernhard Hirschmann Stuttgart, 2018 v1

Secure-Coding Richtlinien umsetzen

Auswirkung

Vorbeugung

Ursache

Beispiel 1: Verhindere das Injizieren von Schadecode in SQL-Befehle

•  Keine Parameter ungeprüft in SQL-Anweisung einfügen

•  Verwendung von Prepared Statements •  Verwendung von Hibernate Criteria

Ausführung unberechtigter Abfragen oder

Manipulation von Daten

Ungeprüfte Übernahme von Usereingaben oder Parametern in SQL-Abfragen

Page 21: Java Forum Stuttgart 2018 · 2012-02-04  · Sicherheit in Web-Anwendungen Java Forum Stuttgart 2018 Bernhard Hirschmann Stuttgart, 2018 v1

Secure-Coding Richtlinien umsetzen

Auswirkung

Vorbeugung

Ursache

Beispiel 2: Verwende keine 3rd-Party Libraries mit bekannten Verwundbarkeiten

•  Regelmäßig alle Jars mit dem OSAWP Dependency Checker prüfen

•  JavaScript-Bibliotheken mit Retire.js prüfen

•  Updates und Fixes einspielen

Web-Anwendung ist je nach Schwachstelle angreifbar

Schwachstellen in 3rd-Party Libraries sind beliebte Angriffspunkte in Web-Anwendungen

Page 22: Java Forum Stuttgart 2018 · 2012-02-04  · Sicherheit in Web-Anwendungen Java Forum Stuttgart 2018 Bernhard Hirschmann Stuttgart, 2018 v1

SecDevOps Tools (1)

Statische Codeanalyse

„The SpotBugs plugin for security audits of Java web applications“

IDE Integration:

Eclipse, IntelliJ, Android Studio, Sonar Qube

Command Line Interface, Ant, Maven

http://find-sec-bugs.github.io

FindSecBugs

Page 23: Java Forum Stuttgart 2018 · 2012-02-04  · Sicherheit in Web-Anwendungen Java Forum Stuttgart 2018 Bernhard Hirschmann Stuttgart, 2018 v1
Page 24: Java Forum Stuttgart 2018 · 2012-02-04  · Sicherheit in Web-Anwendungen Java Forum Stuttgart 2018 Bernhard Hirschmann Stuttgart, 2018 v1

SecDevOps Tools (2)

Findet bekannte, verwundbare Java Libraries

Suche basiert auf Vulnerability Database des NIST

Integration:

Command Line Interface, Ant, Maven, Gradle,

Jenkins, SonarQube

https://www.owasp.org/index.php/OWASP_Dependency_Check

OWASP Dependency Check

Page 25: Java Forum Stuttgart 2018 · 2012-02-04  · Sicherheit in Web-Anwendungen Java Forum Stuttgart 2018 Bernhard Hirschmann Stuttgart, 2018 v1

Schwachstellen-Datenbanken abfragen

Tool: OWASP Dependency Check

Nutzung von Komponenten mit bekannten Schwachstellen Prävention: Dependency Check

Prüft Komponenten anhand Quellcode / Libraries

Sucht in National

Vulnerability Database (NVD) nach Einträgen

Einträge enthalten Common Vulnerabilities and

Exposures (CVE)

Erstellt Report mit Findings und Referenzen zu CVE-Einträgen

Page 26: Java Forum Stuttgart 2018 · 2012-02-04  · Sicherheit in Web-Anwendungen Java Forum Stuttgart 2018 Bernhard Hirschmann Stuttgart, 2018 v1

Nutzung von Komponenten mit bekannten Schwachstellen Prävention: Dependency Check

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0

https://maven.apache.org/xsd/maven-4.0.0.xsd">

...

<reporting>

<plugins> <plugin>

<groupId>org.owasp</groupId> <artifactId>dependency-check-maven</artifactId> <version>3.0.2</version>

</plugin> </plugins> </reporting>

...</project>

Verwenden des OWASP-Plugins im Maven-Build

pom.xml

Report generieren mit: mvn site

Erstellt Report in: target/site/dependency-check-report.html

Page 27: Java Forum Stuttgart 2018 · 2012-02-04  · Sicherheit in Web-Anwendungen Java Forum Stuttgart 2018 Bernhard Hirschmann Stuttgart, 2018 v1

Nutzung von Komponenten mit bekannten Schwachstellen Prävention: Dependency Check

[INFO] Generating "dependency-check" report --- dependency-check-maven:3.0.2:check[INFO] Checking for updates[INFO] starting getUpdatesNeeded() ...

[INFO] Download Started for NVD CVE - Modified[INFO] Download Complete for NVD CVE - Modified (2513 ms)

[INFO] Processing Started for NVD CVE - Modified[INFO] Processing Complete for NVD CVE - Modified (1762 ms)[INFO] Begin database maintenance.

[INFO] End database maintenance.[INFO] Check for updates complete (8072 ms)

[INFO] Analysis Started[INFO] Finished Archive Analyzer (0 seconds)[INFO] Finished File Name Analyzer (0 seconds)

[INFO] Finished Jar Analyzer (1 seconds)[INFO] Finished Central Analyzer (7 seconds)[INFO] Finished Dependency Merging Analyzer (0 seconds)

[INFO] Finished Version Filter Analyzer (0 seconds)[INFO] Finished Hint Analyzer (0 seconds)

[INFO] Created CPE Index (1 seconds)[INFO] Finished CPE Analyzer (2 seconds)[INFO] Finished False Positive Analyzer (0 seconds)

[INFO] Finished Cpe Suppression Analyzer (0 seconds)[INFO] Finished NVD CVE Analyzer (0 seconds)

[INFO] Finished Vulnerability Suppression Analyzer (0 seconds)[INFO] Finished Dependency Bundling Analyzer (0 seconds)[INFO] Analysis Complete (13 seconds)

Ausgabe der Maven-Console (1)

Page 28: Java Forum Stuttgart 2018 · 2012-02-04  · Sicherheit in Web-Anwendungen Java Forum Stuttgart 2018 Bernhard Hirschmann Stuttgart, 2018 v1

Nutzung von Komponenten mit bekannten Schwachstellen Prävention: Dependency Check

One or more dependencies were identified with known vulnerabilities in example-ngui:

jackson-databind-2.8.10.jar (cpe:/a:fasterxml:jackson-databind:2.8.10, cpe:/a:fasterxml:jackson:2.8.10,

com.fasterxml.jackson.core:jackson-databind:2.8.10) : CVE-2017-17485, CVE-2018-5968tomcat-embed-core-8.5.20.jar (cpe:/a:apache_software_foundation:tomcat:8.5.20, cpe:/a:apache:tomcat:8.5.20, cpe:/

a:apache_tomcat:apache_tomcat:8.5.20, org.apache.tomcat.embed:tomcat-embed-core:8.5.20) : CVE-2017-12617spring-boot-starter-data-redis-1.5.7.RELEASE.jar (org.springframework.boot:spring-boot-starter-data-redis:1.5.7.RELEASE, cpe:/a:redis-store:redis-store:1.5.7, cpe:/a:pivotal_software:spring_boot:1.5.7, cpe:/

a:pivotal_software:redis:1.5.7) : CVE-2013-7458, CVE-2015-8080, CVE-2015-4335ognl-3.0.8.jar (cpe:/a:ognl_project:ognl:3.0.8, ognl:ognl:3.0.8) : CVE-2016-3093

AppleJavaExtensions-1.4.jar (cpe:/a:apple:java:1.4, com.apple:AppleJavaExtensions:1.4) : CVE-2010-0538groovy-2.4.12.jar (org.codehaus.groovy:groovy:2.4.12, cpe:/a:apache:groovy:2.4.12) : CVE-2016-6497xercesImpl-2.9.1.jar (xerces:xercesImpl:2.9.1, cpe:/a:apache:xerces2_java:2.9.1) : CVE-2012-0881

struts-core-1.3.8.jar (org.apache.struts:struts-core:1.3.8, cpe:/a:apache:struts:1.3.8) : CVE-2016-1182, CVE-2016-1181, CVE-2014-0114, CVE-2015-0899struts-tiles-1.3.8.jar (cpe:/a:apache:struts:1.3.8, org.apache.struts:struts-tiles:1.3.8, cpe:/a:apache:tiles:1.3.8) :

CVE-2016-1182, CVE-2016-1181, CVE-2014-0114, CVE-2015-0899exmpl-commons-2.0.0.jar (cpe:/a:pivotal:spring_framework:2.0.0, com.exmpl.parent:exmpl-commons:2.0.0, cpe:/

a:pivotal_software:spring_boot:2.0.0.m4, cpe:/a:pivotal_software:spring_framework:2.0.0) : CVE-2016-9878, CVE-2017-8046

See the dependency-check report for more details.

Ausgabe der Maven-Console (2)

Page 29: Java Forum Stuttgart 2018 · 2012-02-04  · Sicherheit in Web-Anwendungen Java Forum Stuttgart 2018 Bernhard Hirschmann Stuttgart, 2018 v1

Nutzung von Komponenten mit bekannten Schwachstellen Prävention: Dependency Check

Page 30: Java Forum Stuttgart 2018 · 2012-02-04  · Sicherheit in Web-Anwendungen Java Forum Stuttgart 2018 Bernhard Hirschmann Stuttgart, 2018 v1

Nutzung von Komponenten mit bekannten Schwachstellen Prävention: Dependency Check

Page 31: Java Forum Stuttgart 2018 · 2012-02-04  · Sicherheit in Web-Anwendungen Java Forum Stuttgart 2018 Bernhard Hirschmann Stuttgart, 2018 v1

Anmerkungen:

Nutzung von Komponenten mit bekannten Schwachstellen Prävention: Dependency Check

Analyse für verwundbare Komponenten theoretisch einfach

Praxis: viele False Positives

Versions-Schema oder -Angaben oft nicht eindeutig

Schwachstellen-Datenbanken (wie CVE) enthalten nicht alles

Abhängigkeiten der verwundbaren Komponenten zu eingesetzten Komponenten müssen über Dependency-Tree aufgelöst werden

Page 32: Java Forum Stuttgart 2018 · 2012-02-04  · Sicherheit in Web-Anwendungen Java Forum Stuttgart 2018 Bernhard Hirschmann Stuttgart, 2018 v1

SecDevOps Tools (3)

Findet bekannte, verwundbare JavaScript Libs

Integration:

Command Line Interface,

Plugins für: Grunt, Chrome, Firefox, Burp, OWASP ZAP

https://retirejs.github.io/retire.js/

Retire.js

Page 33: Java Forum Stuttgart 2018 · 2012-02-04  · Sicherheit in Web-Anwendungen Java Forum Stuttgart 2018 Bernhard Hirschmann Stuttgart, 2018 v1

Tool: retire.js https://retirejs.github.io/retire.js

Nutzung von Komponenten mit bekannten Schwachstellen Prävention: retire.js

Quelle: https://retirejs.github.io/retire.js/

Scannt Webseiten nach verwundbaren JavaScript Komponenten

Findet bekannte, verwundbare JS-Komponenten

CLI, Plugins für: Grunt, Chrome, Firefox, Burp, OWASP ZAP

Page 34: Java Forum Stuttgart 2018 · 2012-02-04  · Sicherheit in Web-Anwendungen Java Forum Stuttgart 2018 Bernhard Hirschmann Stuttgart, 2018 v1

Nutzung von Komponenten mit bekannten Schwachstellen Prävention: retire.js

Quelle: https://addons.mozilla.org/de/firefox/addon/retire-js/

Page 35: Java Forum Stuttgart 2018 · 2012-02-04  · Sicherheit in Web-Anwendungen Java Forum Stuttgart 2018 Bernhard Hirschmann Stuttgart, 2018 v1
Page 36: Java Forum Stuttgart 2018 · 2012-02-04  · Sicherheit in Web-Anwendungen Java Forum Stuttgart 2018 Bernhard Hirschmann Stuttgart, 2018 v1

Viele Anwendungen haben schlechte oder gar keine Security-Logs.

Ohne Security Event Informationen können keine Angriffe erkannt werden.

Logging und Monitoring

Kompromittierte

User-Accounts finden

Auf Ereignisse reagieren

Missbrauch von Berechtigungen erkennen

Angriffe erkennen

Page 37: Java Forum Stuttgart 2018 · 2012-02-04  · Sicherheit in Web-Anwendungen Java Forum Stuttgart 2018 Bernhard Hirschmann Stuttgart, 2018 v1

Unzureichendes Logging und Monitoring Präventionen

•  Eine zentrale Funktion für alle Logging-Vorgänge verwenden

•  Sicherstellen, dass ein Mechanismus zur Durchführung der Log-Analyse vorhanden ist

•  Zugriff auf Protokolle beschränken auf autorisierte Personen

•  Keine sensiblen Informationen loggen, einschließlich unnötiger Systemdetails, Session-IDs oder

Passwörter

•  Angriff auf Monitoring verhindern: nur vertrauenswürdige Daten loggen

Anforderungen (1)

Logging und Monitoring

Page 38: Java Forum Stuttgart 2018 · 2012-02-04  · Sicherheit in Web-Anwendungen Java Forum Stuttgart 2018 Bernhard Hirschmann Stuttgart, 2018 v1

Unzureichendes Logging und Monitoring Präventions-Maßnahmen - Allgemein

•  Alle Events mit Benutzerkontext protokollieren, um verdächtige oder bösartige Konten zu

identifizieren

•  Ausreichend lange Aufbewahrung der Logs, um verzögerte, forensische Analyse zu ermöglichen

•  Protokolle in Format erstellen, das von zentralem Protokollmanagement genutzt werden kann

•  Kritische Transaktionen über Audit-Trail mit Integritätskontrollen tracken, um Manipulationen oder

Löschungen zu verhindern

Anforderungen (2)

Logging und Monitoring

Page 39: Java Forum Stuttgart 2018 · 2012-02-04  · Sicherheit in Web-Anwendungen Java Forum Stuttgart 2018 Bernhard Hirschmann Stuttgart, 2018 v1

Unzureichendes Logging und Monitoring Präventions-Maßnahmen - Allgemein

•  Wirksame Überwachung und Alarmierung, so dass verdächtige Aktivitäten erkannt werden und

rechtzeitig reagiert werden kann

•  Erstellen oder verabschieden eines Notfallreaktions- und Wiederherstellungsplans

•  z.B. NIST 800-61 rev 2 oder höher

Anforderungen (3)

Logging und Monitoring

Page 40: Java Forum Stuttgart 2018 · 2012-02-04  · Sicherheit in Web-Anwendungen Java Forum Stuttgart 2018 Bernhard Hirschmann Stuttgart, 2018 v1

Unzureichendes Logging und Monitoring Prävention 2: Fehlende Anleitung, was und wie man protokolliert

AppSensor

•  Security Protection System auf Anwendungs-Level

•  Wichtige Ergänzung zu bestehendem IDS/IPS auf Host- oder Netzwerk-Level

•  Dynamische Abwehr: verhindert oder reduziert die Auswirkungen eines Angriffs

•  Konzentriert Security-Relevantes zentral an einem Ort - was sonst im Rauschen des Logs untergeht

Tool: OWASP AppSensor

Logging und Monitoring

www.appsensor.org

Page 41: Java Forum Stuttgart 2018 · 2012-02-04  · Sicherheit in Web-Anwendungen Java Forum Stuttgart 2018 Bernhard Hirschmann Stuttgart, 2018 v1

Unzureichendes Logging und Monitoring Prävention 2: Fehlende Anleitung, was und wie man protokolliert

•  Anwendung kann im Code direkt Events übergeben, wenn z.B. Logins wiederholt scheitern

•  Erkennt die Angriffe, nicht die Schwachstellen

•  Ermöglicht Anwendungen sich anzupassen und in Echtzeit zu reagieren

Tool: OWASP AppSensor

Logging und Monitoring

www.appsensor.org

Page 42: Java Forum Stuttgart 2018 · 2012-02-04  · Sicherheit in Web-Anwendungen Java Forum Stuttgart 2018 Bernhard Hirschmann Stuttgart, 2018 v1

Unzureichendes Logging und Monitoring Prävention 2: Fehlende Anleitung, was und wie man protokolliert

Policy-Konfiguration:

An Erkennungspunkten: Events an AppSensor senden

Individuell über AppSensor API, durch AOP oder über externe Tools

Tool: OWASP AppSensor

Logging und Monitoring

www.appsensor.org

3 Insufficient Authorization events in 5 minutes for an individual userrepresents an attack. I want to respond by blocking the user account.

if ( isUserAuthorized( account ) ) { // present/view account} else {

//new code for appsensor appSensor.addEvent( logged_in_user, “INSUFFICIENT_AUTHORIZATION” )

}

Page 43: Java Forum Stuttgart 2018 · 2012-02-04  · Sicherheit in Web-Anwendungen Java Forum Stuttgart 2018 Bernhard Hirschmann Stuttgart, 2018 v1

Unzureichendes Logging und Monitoring Prävention 2: Fehlende Anleitung, was und wie man protokolliert

Dashboard

•  Events

•  Indikatoren

•  Detections

•  Responses

•  Trends

AppSensor

Logging und Monitoring

www.appsensor.org

Page 44: Java Forum Stuttgart 2018 · 2012-02-04  · Sicherheit in Web-Anwendungen Java Forum Stuttgart 2018 Bernhard Hirschmann Stuttgart, 2018 v1

•  Sicherheit in Web-Anwendungen sehr wichtig

- Fast alle Unternehmen bereits Opfer von Angriffen

- Einfallstor für Angriffe an der Firewall vorbei

•  Entwickler mit SecureCoding Kenntnissen ausstatten

•  Sicherheitsmaßnahmen in allen Schichten integrieren

- Zwiebeltaktik

•  SecDevOps bringt Sicherheit in den Prozess

- Tools helfen bei Tests

•  Security-Monitoring

- schafft Transparenz zu Angriffen

Zusammenfassung

Page 45: Java Forum Stuttgart 2018 · 2012-02-04  · Sicherheit in Web-Anwendungen Java Forum Stuttgart 2018 Bernhard Hirschmann Stuttgart, 2018 v1

• OWASP Top 10

• MITRE Top 25

- Schwachstellen (CWE)

- Angriffe (CAPEC)

• Web Application Security Consortium (WASC)

Informationen

Page 46: Java Forum Stuttgart 2018 · 2012-02-04  · Sicherheit in Web-Anwendungen Java Forum Stuttgart 2018 Bernhard Hirschmann Stuttgart, 2018 v1

www.EXXETA.com

WIR VERBINDEN WELTEN

www.EXXETA.com www.EXXETA.com

Page 47: Java Forum Stuttgart 2018 · 2012-02-04  · Sicherheit in Web-Anwendungen Java Forum Stuttgart 2018 Bernhard Hirschmann Stuttgart, 2018 v1

Backup

Page 48: Java Forum Stuttgart 2018 · 2012-02-04  · Sicherheit in Web-Anwendungen Java Forum Stuttgart 2018 Bernhard Hirschmann Stuttgart, 2018 v1

OWASP – Open Web Application Security Project Wer und was ist das?

www.owasp.org Creative Commons

AttributionShareAlike 3.0 Lizenz

Top-10 Liste der häufigsten Sicherheitsrisiken

Community bietet wertvolle Informationen und

Tools für Security

Page 49: Java Forum Stuttgart 2018 · 2012-02-04  · Sicherheit in Web-Anwendungen Java Forum Stuttgart 2018 Bernhard Hirschmann Stuttgart, 2018 v1

OWASP – Open Web Application Security Project

Migration

•  OWASP Secure Coding Practices

Ø  Quick Reference Guid e

•  OWASP Codes of Conduct

•  OWASP Cheat Sheets Series

•  OWASP Testing Project

•  OWASP Web Top 10

•  OWASP Vulnerable Web

Applications Directory

•  ...

•  OWASP Dependency Check

•  OWASP SonarQube Project

•  OWASP ZAP

•  OWASP AppSensor

•  OWASP CSRFGuard

•  OWASP Java Encoder Project

•  OWASP Java HTML Sanitizer

•  OWASP Security Logging Project

•  OWASP Enterprise Security API

(ESAPI)

•  ...

General Documents Security Tools Secure Coding Libraries

•  Creative Commons Attribution ShareAlike 3.0 Lizenz

•  www.owasp.org

Einsatz bewährter IT-Security Maßnahmen

Page 50: Java Forum Stuttgart 2018 · 2012-02-04  · Sicherheit in Web-Anwendungen Java Forum Stuttgart 2018 Bernhard Hirschmann Stuttgart, 2018 v1

OWASP Top 10 2017

A3:2017 – Sensitive Data Exposure

A2:2017 – Broken Authentication

A5:2017 - Broken Access Control

A4:2017 - XML External Entities (XXE)

SQL, NoSQL, OS und LDAP Injection

Fehler in Authentifizierung und Session-Management

Verlust der Vertraulichkeit sensibler Daten

Missbrauch von verwundbaren XML-Prozessoren

Fehlerhafte Autorisierung auf Anwendungsebene

A1:2017 - Injection

Page 51: Java Forum Stuttgart 2018 · 2012-02-04  · Sicherheit in Web-Anwendungen Java Forum Stuttgart 2018 Bernhard Hirschmann Stuttgart, 2018 v1

OWASP Top 10 2017

Sicherheitsrelevante Fehlkonfiguration

Manipulation von Datenflüssen auf Webseiten

Unsichere Deserialisierung von persistierten Daten

Verwendung von veralteten, verwundbaren Komponenten

Fehlende Transparenz durch ungenügende Informationen

A6:2017 – Security Misconfiguration

A7:2017 – Cross-Site Scripting (XSS)

A8:2017 – Insecure Deserialization

A9:2017 – Using Components with Known Vulnerabilities

A10:2017 – Insufficient Logging & Monitoring

Page 52: Java Forum Stuttgart 2018 · 2012-02-04  · Sicherheit in Web-Anwendungen Java Forum Stuttgart 2018 Bernhard Hirschmann Stuttgart, 2018 v1

OWASP Top 10 – Vergleich der Versionen 2013 und 2017

A1: Injection

A2: Fehler in Authentifizierung und Session Management

A3: Cross-Site-Scripting

A4: Unsichere direkte Objektreferenzen

A5: Sicherheitsrelevante Fehlkonfiguration

A6: Verlust der Vertraulichkeit sensibler Daten

A7: Fehlerhafte Autorisierung auf Anwendungsebene

A8: Cross-Site-Request-Forgery

A9: Verwendung von Komponenten mit bekannten

A10: Ungeprüfte Um- und Weiterleitungen

A1: Injection

A2: Fehler in Authentifizierung und Session Management

A3: Verlust der Vertraulichkeit sensibler Daten

A4: XML Externe Entitäten

A5: Fehlerhafte Autorisierung

A6: Sicherheitsrelevante Fehlkonfiguration

A7: Cross-Site-Scripting

A8: Unsichere Deserialisierung

A9: Verwendung von Komponenten mit bekannten

A10: Unzureichendes Logging und Monitoring

Quelle: OWASP