Penetration Testing

Fuzzing entlarvt Schwachstellen in Standard- und Individual-Software

Seite: 3/4

Anbieter zum Thema

Fuzzing-Techniken

Mithilfe von Angriffs-Tools (Fuzzer) werden Eingabedaten generiert, die an die zu testende Anwendung gesendet werden. Maßgebliches Ziel ist es, unerwartete Fehler und Anomalien hervorzurufen. Die Testdaten werden dabei so gewählt, dass sie untypisch sind – entgegen funktionaler Tests wird also z.B. anstatt von „Max Mustermann“ eine Flut von überlange Zeichenkette an alle Eingabefelder geschickt wie z.B. eine Kette von „AAA…A“ oder auch Sonderzeichen.

Auftretende Anomalien wie z.B. Programmabstürze – also potenzielle Sicherheitslücken – lassen sich mit Monitoring-Tools erkennen. Für den Erfolg des Fuzzing ist die Qualität der generierten Eingabedaten entscheidend. Einfache (dumb) Fuzzer generieren zufällige Eingabedaten. Intelligente Anwendungen erfordern intelligentere Fuzzer, um integrierte Schutzmechanismen wie Checksummenprüfungen zu überwinden.

Eine Herausforderung besteht darin, alle möglichen Programmpfade zu durchlaufen. Dies kann mittels Code Coverage Tools überwacht werden und hängt von den erzeugten Eingaben ab. Auftretende Anomalien werden auf Reproduzierbarkeit geprüft – das Eingabedatum, das zur Anomalie geführt hat, wird nochmals an die Anwendung gesendet.

Bei erfolgreicher Reproduzierbarkeit kann man versuchen, die Anomalie durch ein Schadprogramm auszunutzen, um Daten abzugreifen, Rechte zu erweitern (Privilege Escalation) oder die Verfügbarkeit zu stören. Mögliche Ursachen für die Sicherheitslücke werden untersucht, die Kritikalität der Sicherheitslücke bewertet und Gegenmaßnahmen empfohlen.

Fuzzing ist nicht auf Eingabefelder in Anwendungen beschränkt. Es lassen sich auch immer beliebter werdende Angriffsziele wie Standard-Software testen. Weltweit existieren über 300 Fuzzer, die z.T. auf bestimmte Anwendungstypen spezialisiert sind (specialised Fuzzer):

Standardsoftware:

  • Client-Anwendungen: z.B. Webbrowser, E-Mail-Clients, Office, Bildbearbeitung
  • Enterprise-Anwendungen: z.B. ERP, CRM, Netzwerkprotokolle

Individualsoftware:

  • Webanwendungen
  • Datenbank-Anwendungen

Erfahrenere Fuzz-Tester können auf Baukästen für Fuzzer zurückgreifen; Fuzzing-Frameworks ermöglichen die Entwicklung eigener Fuzzer z.B. um proprietäre Netzwerkprotokolle zu testen, für die bislang keine specialised Fuzzer existieren.

Inhalt

  • Seite 1: Systematische Penetrationstests
  • Seite 2: Einsatz von Fuzzing
  • Seite 3: Fuzzing-Techniken
  • Seite 4: Chancen und Risiken

(ID:2050900)