IT Security Lecture

Semester 1 - Informations- und Netzwerksicherheit

  1. Motivation (Vulnerabilities, Exploits, Angreifer)
  2. Sicherheitsziele (Confidentiality, Integrity, Availability)
  3. Malware (Viren, Würmer, Trojaner, Botnets, Ransomware, Cryptojackers)
  4. Netzwerksicherheit (VPN, Wireless Security, Firewalls/IDS/IPS/WAF)
  5. Sicherheitsmanagement und -rorganisation
  6. Threat Modeling
  7. Penetration Testing

Semester 2 - Anwendungssicherheit und Systementwicklungslebenszyklus

  1. Open Web Application Security Project (OWASP)
  2. Cross-Site Scripting (XSS)
  3. Injection
  4. Authentifizierungsfehler
  5. Authorisierungsfehler
  6. Sensible Daten
  7. Unsichere Abhängigkeiten und Konfigurationen
  8. XXE & Deserialisierung
  9. Sicherer Entwicklungslebenszyklus

1. Motivation

Security: Frei von Gefahren und Bedrohungen

Vulnerability : Fehler oder Schwäche eines Sicherheitskonzepts, die zu einer Sicherheitslücke oder Ausnutzen des Fehlers führen kann

Exploit: Programme oder Daten, die zur Ausnutzung eines Bugs oder einer Schwachstelle von elektronischen Geräten genutzt werden können

Zero-Day: Herstellerunbekannte Schwachstelle, die ausgenutzt wird bevor der Hersteller die Schwachstelle kennt. (Auch: Zero-Day Attack)

ATP (Advanced Persistent Threat): Unbemerktes Daten abfangen eines Systems über längere Zeit (meist durch Staat)

Angreifertypen

Angreifertypen.png

Gefährliche Kombinationen


2. Sicherheitsziele

Informationssicherheit: Schutz vor unbedigten Zugriff / Änderung / Störung von Informationen oder Informationssystemen

Kontrolle: Schutz vor der Kontrolle von sensiblen Daten durch unauthorisierte Personen. [Unterstützt durch: Verschlüsselung, Authentifizierung]

Authentizität: Versicherung, dass eine Nachricht tatsächlich von der angegebenen Quelle stammt. [Unterstützt durch: Identifikation, digitale Zertifikate]

Verantwortlichkeit: Nachvollziehbarkeit und Verantwortlichkeiten unter Berücksichtigung der rechtlichen und vertraglichen Pflichten. [Unterstützt durch: Integrität, Authentizität, Design, Politik]

Versicherung: Regelmäßige Kontrolle der oben genannten Sicherheitsziele zur Sicherstellung von technischen- und betrieblichen Sicherungsmaßnahmen. [Unterstützt durch: Auditing, Measuring, Monitoring, kontinuierliche Verbesserung]

Das CIA³-Modell

Maßnahmen zur Einhaltung der Sicherheitsziele

Sicherheitsziel Technische Maßnahmen Organisatorische Maßnahmen
Confidentiality Zugangskontrolle, RSA, Diffie-Hellman, PGP, HTTPS Berechtigungen, Datensparsamkeit
Integrity SHA256, PGP Versionskontrollprozess
Availability Redundanter Server, Firewall, Load Balancer 24/7 Support, SLAs
Accountability keine shared Accounts, Logging RACI-Matrix
Assurance Alte Accounts deaktivieren, SIEM (Security Incident and Event Monitoring) Rechteprüfung, Notfallübung, Sensibilisierungstraining

3. Malware

Kategorien

Anti-Virus Software (AV)

Anti-Virus Software (auch: Anti-Malware Software) ist eine Software zum Verhindern, Erkennen und Entfernen von Malware.

Die Software verwendet für die Erkennung von Malware folgende Identifikationsmethoden:

Nachteile von Anti-Viren Software:

Top 5 Sicherheitsstrategien von Sicherheitsexperten

  1. Software Updates installieren
  2. Verwendung einzigartiger Passwörter
  3. 2-Faktor-Authentifizierung verwenden
  4. Starke Passwörter benutzen
  5. Passwort Manager verwenden

4. Netzwerksicherheit

OSI-Model

Siehe Technische Grundlagen der Informatik

VPN (Virtual Private Network)

Verwendung von VPN:

Wireless Security

Beispiele für angreifbare Wireless Technologien:

Vorschläge für Wireless Security

  1. Außer Haus: Wifi ausschalten
  2. Alte Netzwerke löschen
  3. Verwenden uninteressanter WiFi SSID-Namen
  4. “Wired to WiFi broadcasts” abschalten
  5. Ausschließliche Verwendung von 5GHz
  6. Verwendung von kabelgebundenen Kameras
  7. Bluetooth-Geräte zu Hause verbinden
  8. (NFC)-Karten sicher verstauen
  9. Arbeits- und Identifikationskarten versteckt halten

Datencenter Sicherheit


5. Sicherheitsmanagement und Organisation

Jobtitel und -beschreibungen

Security Awareness

Schritte von Security Awareness

  1. Aktuellen Zustand ermitteln
  2. Security Awareness Programm ermitteln
  3. Bereitstellung des Programms für Mitarbeiter
  4. Messung der Fortschritte und ggf. Überarbeitung des Programms

6. Threat Modeling

Gründe für die Bedrohungsmodellierung

Angriffsbäume

Attack Tree

Trust Boundaries (Vertrauensgrenzen)


7. Penetration Testing

Versuch einer Bewertung der Sicherheit von IT-Infrastruktur durch kontrolliertes Angreifen, Identifizieren und Ausnutzen von Sicherheitslücken

Phasen von Pen-Tests

1. Interaktionen vor dem Pen-Test
- Absprache des Umfangs und Vertragsregelungen
- Rahmenbedingungen
- Notfallkontakt Informationen
2. Informationen sammeln
3. Threat Modeling
4. Schwachstellenanalyse
- automatisierte Anwendungsscans
- Netzwerkscans
- Traffic / Metadaten Analyse
5. Exploitation / Ausnutzung
- Vermeiden von Gegenmaßnahmen
- Unerkannt bleiben
- Durchführung angepasster Exploits
6. Nachnutzung der Schwachstelle
- Infrastruktur-Analyse
- Plünderung z.B. von Informationen
- Installation einer Backdoor
- Aufräumen der Spuren
7. Berichterstattung
- Zusammenfassung (allgemeiner Bericht)
- Technischer Bericht (technische Details, Angriffspfad und Korrekturvorschläge)

Bug Bounty Programme

Einzelpersonen erhalten für das Melden von Fehlern (Bugs) eine Belohnung.

Web Security Policies Security.txt

Ein Dokument, welches den Prozess zum Aufdecken / Melden von Sicherheitslücken beschreibt.

Inhalt:


8. OWASP

Open Web Application Security Project

Grundwerte

OWASP Top 10

1 Injection 6 Security Misconfiguration
2 Broken Authentication 7 Cross-Site-Scripting (XSS)
3 Sensitive Data Exposure 8 Insecure Deserialization
4 XML External Entities 9 Using Components with Known Vulnerabilities
5 Broken Access Control 10 Insufficient Logging & Monitoring

9. Cross-Site-Scripting (XSS)

Auswirkungen

Risikobewertung

Ausnutzbarkeit Häufigkeit Erkennbarkeit Einfluss
Einfach weit verbreitet Einfach mittelschwer

Formen von XSS

Prävention

Eingabevalidierung

Black List:

White List:

Umgehen Client-seitiger Validierung


10. Injection

Eine Anwendung dazu bringen ungewollte Befehle einzubinden und durch den Interpreter anschließend ausführen zu lassen.

Risikobewertung

Ausnutzbarkeit Häufigkeit Erkennbarkeit Einfluss
Einfach verbreitet Einfach Schwer

Typische Auswirkungen

Beispiele

Blind SQL Injection

Ausprobieren, um Schwachstellen durch Reaktionen des Systems zu erkennen

Beispiele

Prävention


11. Authentifizierungsfehler

Risikobewertung

Ausnutzbarkeit Häufigkeit Erkennbarkeit Einfluss
Einfach verbreitet Mittelmäßig Schwer

Prävention

Sicherer Passwort-Wiederherstellungsprozess

  1. Sammeln von Identitätsdaten oder Sicherheitsfragen
  2. Verifizieren der Sicherheitsfragen
  3. Konto sofort sperren
  4. Token über einen anderen Kanal senden
  5. Nutzer das Passwort ändern lassen
  6. Protokollieren

Zwei-Faktor-Authentifizierung

Passwort Manager

Passwort Manager verwalten beliebig viele Nutzerdaten und bieten den Zugriff über ein Master-Passwort. Hierdurch können einzigartige und komplexe Passwörter generiert werden.
Beispiele


12. Authorisierungsfehler

Übliche Angriffszenarien

Risikobewertung

Ausnutzbarkeit Häufigkeit Erkennbarkeit Einfluss
Mittelmäßig verbreitet Mittelmäßig Schwer

Prävention


13. Sensible Daten

Preisgabe sensitiver Daten

Risikobewertung

Ausnutzbarkeit Häufigkeit Erkennbarkeit Einfluss
Mittelmäßig weit verbreitet Mittelmäßig Schwer

Prävention


14. Unsichere Abhängigkeiten und Konfigurationen

Unsichere Abhängigkeiten

Häufige Fehler bei Anhängigkeiten

Risikobewertung

Ausnutzbarkeit Häufigkeit Erkennbarkeit Einfluss
Mittelmäßig weit verbreitet Mittelmäßig mild

Prävention

Unsichere Konfigurationen

Häufige Fehler:

Potentielle Auswirkungen

Risikobewertung

Ausnutzbarkeit Häufigkeit Erkennbarkeit Einfluss
Einfach weit verbreitet Einfach mild

Web Shells

Web Shells sind Skripte, die auf einem Webserver hochgeladen werden können und für eine Remotevewaltung zum Server sorgen. Sie können in jeder Sprache geschrieben werden, die der Zielserver unterstützt.

Prävention

15. XXE und Deserialisierung

XXE - (XML External Entities)

XML Entities sind “Variablen” in XML, die später referenziert werden können. Bsp:

<!ENTITY foo "FOO">
<!-- Definition einer externen Entity -->
<!ENTITY foo "https://raw.githubusercontent.com/bkimminich/juice-shop/gh-pages/entities.dtd">
<!-- Anwenden -->
<foobar>&foo; &bar;</foobar>

Viele ältere oder schlecht konfigurierte XML-Prozessoren werten (externe) Entities aus und Angreifer können potentiell folgende Angriffe durchführen:

Risikobewertung

Ausnutzbarkeit Häufigkeit Erkennbarkeit Einfluss
Mittelmäßig verbreitet Einfach Schwerwiegend

Prävention

Deserialisierung

Serialisierung wandelt ein Objekt in einen Bytestream um, welcher ausreichend Informationen zur Herstellung einer Ausgangszustands besitzt.

Deserialisierung wandelt einen Bytestream wieder in ein Objekt um. Beispiel in Java:

InputStream is = request.getInputStream();
ObjectInputStream ois = new ObjectInputStream(is);
AcmeObject acme = (AcmeObject)ois.readObject();
// Das Casten auf AcmeObject geschieht nach dem Deserialisierungsprozess

Unsichere Deserialisierung sorgt häufig für eine Remote-Code Execution und kann folgende Attacken ausführen:

Risikobewertung

Ausnutzbarkeit Häufigkeit Erkennbarkeit Einfluss
Schwierig verbreitet Mittelmäßig Schwerwiegend

Prävention

16. Sicherer Entwicklungslebenszyklus

Sicherheitsanforderungen

Ableiten von Sicherheitsanforderungen

Sicherheits-Designprinzipien

  1. Angriffsflächen minimieren

    • Unnötige Features vermeiden
  2. sichere Standardeinstellungen

    • Sicherheit als Standard - Benutzer entscheiden Reduzierung ihrer Sicherheit
  3. Prinzip des geringsten Privelegs

    • Keine “root”-User verwenden
    • möglichst minimale Rechte für den User
  4. Prinzip der Tiefenverteidigung

    • Mehrere Sicherheitsschichten bieten
  5. Fail securely

    • Wenn etwas schief geht, dann sollte “die Tür zugemacht werden”
  6. Keinen Diensten vertrauen

    • Nicht blind (externen) Systemen, mit denen man interagiert vertrauen
  7. Aufgabentrennung

    • Aufgaben trennen zur Betrugsvermeidung
    • Bsp: Admin darf nicht gleichzeitig User sein
  8. "Security by Obscurity" vermeiden

    • Verstecken von Funktionen bietet keinen Schutz gegen Angreifer
  9. Sicherheit einfach halten

    • Einfaches Security Design
  10. Korrekte Behebung von Sicherheitsproblemen

    • Keine Symptome, sondern Ursachen beheben

Sichere Entwicklungsrichtlinien

Security Testing

Bsp. SonarQube, SpotBugs (früher FindBugs)

Statische Code-Analyse

Stärken:

Schwächen:

Dynamische Sicherheitstesting Tools

Bsp: ZAP (Zed Attack Proxy)

Dynamisches Testing auf Sicherheit wird bei laufenden Anwendungen durchgeführt und können automatisiert oder teilweise manuell Tests durchführen.

Logging und Monitoring

Angreifer können unentdeckt agieren, wenn sinnlos oder gar nicht geloggt wird oder nicht auf die Logs geschaut wird.

Wichtige Aspekte sind:

Risikobewertung

Ausnutzbarkeit Häufigkeit Erkennbarkeit Einfluss
Mittelmäßig weit verbreitet Schwierig Mittelmäßig

Prävention

Web Application Firewall (WAF)

Risiken

WAF Modes


Sammlung nützlicher Links

OWASP Projects

Projekt Beispiele
Tool Zed Attack Proxy, Dependency Check, DefectDojo, Juice Shop
Code ModSecurity Core Rule Set, Java HTML Sanitizer, Security Logging Project, AppSensor
Documentation OWASP Top 10, Application Security Verification Standard (ASVS), OWASP 24/7 Podcast, Cornucopia