Cryptographic Failures

Kryptografische Fehler treten auf, wenn kryptografische Algorithmen falsch angewendet oder gar nicht verwendet werden, um sensible Daten zu schützen. Dies kann zur unbeabsichtigten Offenlegung von vertraulichen Informationen führen, was insbesondere bei Webanwendungen gravierende Folgen haben kann.

Beispiele für Kryptografische Fehler:

  • Daten im Transit: Die Verschlüsselung der Kommunikation zwischen Client (z. B. Browser) und Server schützt Daten vor Lauschangriffen. Unverschlüsselte Verbindungen könnten von Angreifern abgefangen werden, um E-Mails oder andere vertrauliche Informationen zu stehlen.

  • Daten im Ruhezustand: Daten, die auf Servern gespeichert sind, sollten ebenfalls verschlüsselt sein. Andernfalls könnten Administratoren oder Hacker auf diese Daten zugreifen und sie einsehen.

Auswirkungen kryptografischer Fehler

Kryptografische Fehler können dazu führen, dass:

  • Kundendaten (z. B. Namen, Geburtsdaten, finanzielle Informationen) offengelegt werden.

  • Technische Informationen wie Benutzerkonten und Passwörter ungeschützt bleiben.


Häufige Angriffsarten

  • Man-in-the-Middle-Angriff (MITM): Hierbei schleust sich der Angreifer in die Kommunikation zwischen zwei Parteien ein. Schwache Verschlüsselung kann dazu führen, dass der Angreifer die gesendeten Daten leicht entschlüsseln kann.

  • Webserver-Vulnerabilitäten: Sensible Daten können direkt auf dem Webserver gespeichert sein und ohne entsprechende Sicherheitsmaßnahmen für Angreifer zugänglich sein.


Beispiel: Flat-File-Datenbanken

Eine einfache Webanwendung könnte eine Flat-File-Datenbank, wie SQLite, verwenden. Solche Datenbanken sind als Dateien auf dem Server gespeichert und können heruntergeladen werden, falls sie falsch positioniert sind (z. B. im Root-Verzeichnis der Website). Dies führt zu einer Sensiblen Datenoffenlegung.

Datenbankserver wäre besser: Werden häufig auf dedizierten Servern mit Diensten wie MySQL oder MariaDB betrieben.

Umgang mit SQLite-Datenbanken

  1. Identifikation einer SQLite-Datenbank:

    $ file example.db
    SQLite 3.x database
  2. Zugriff auf die Datenbank:

    $ sqlite3 example.db
  3. Tabellen anzeigen:

    sqlite> .tables
    customers
  4. Tabellenstruktur anzeigen:

    sqlite> PRAGMA table_info(customers);
  5. Daten abfragen:

    sqlite> SELECT * FROM customers;

Last updated