Reinventing Quality

ERROR: Content Element with uid "6680" and type "dce_dceuid16" has no rendering definition!

Security Testing in der Cloud -  Am Beispiel von Dynamic Analysis - Fuzzing

Digitalisierung und Vernetzung („smart“) birgt alte Risiken, die nur scheinbar neu entdeckt werden. Plötzlich stellen neue Angriffsvektoren verheerende Angriffe von Daten-Diebstählen bis hin zur Störung von Arbeits- und Geschäftsprozessen dar.
Die Ursachen sind fehlende oder falsch umgesetzte Sicherheitsmaßnahmen in den Software-Entwicklungsprozessen, wodurch Sicherheitslücken in den Endprodukten vorprogrammiert sind. Ziel muss sein: Sicherheitslücken, insbesondere bisher nicht-erkannte Sicherheitslücken (Zero-Day-Vulnerabilities) zu identifizieren. Dadurch (und das Patchen der identifizierten Sicherheitslücken) wird die Software angriffssicher (secure).

Eine der 5 wirkungsvollen Methoden des Security Testing (Security Requirements, Threat Modeling, Static Source Code Analysis, Penetration Testing und Dynamic Analysis - Fuzzing) ist Fuzzing. Ziel ist, Anomalien - Fehlverhalten - der Software zu erkennen. Dazu werden erfahrungsgemäß erfolgreiche Angriffsdaten an die Eingabeschnittstellen der zu testenden Zielanwendung übermittelt.
Je gezielter („intelligenter“) Eingabedaten generiert werden können, umso größer ist die Anzahl identifizierter potentieller Sicherheitslücken und umso geringer der Gesamtzeit-Aufwand bzw. umso größer die Anzahl der durchlaufenen Testfälle.
Neben dem parallelen Fuzzing (Einsatz desselben Fuzzers mit unterschiedlichen Eingabedaten-Räumen) lassen sich durch flexible und skalierbare Bereitstellung von Rechenkapazität (Cloud-Computing) mehrere Fuzzer (Multi-Fuzzing) simultan verwenden. Bei der Verwendung unterschiedlicher Fuzzer ist auch die Vielfalt der generierten Fuzzdaten größer, weil unterschiedliche Fuzzing-Methoden zur Generierung verwendet werden - das führt zu aussagekräftigeren Ergebnissen.

Beim Cloud-Fuzzing wird je nach Bedarf eine bestimmte Anzahl an virtuellen Maschinen in der Cloud erstellt. Im Anschluss werden Fuzzer sowie Prüfling auf diese Maschinen hochgeladen und der Fuzzing Prozess kann beginnen. Die Geschwindigkeit des Fuzzing Prozesses hängt stark von der Rechner Geschwindigkeit, dem eingesetzten Fuzzer sowie dem Testprogramm und den Eingabe Daten ab. Ein beliebter Fuzzer ist der American Fuzzy Lop (AFL), dieser zeichnet sich durch hohe Geschwindigkeit und Code Coverage, die durch Instrumentalisierung erreicht werden kann, ab. Auf einem modernen Office-PC schafft dieser bei einem durchschnittlichen C Programm circa 2000 Testfälle pro Sekunde. Mit Hilfe von Distributed Fuzzing konnten wir im Cloud Einsatz Raten von über 40.000 Testfällen pro Sekunde erreichen. Sicherheitslücken können so oft schon innerhalb weniger Minuten gefunden werden. Steigert man die Anzahl an Rechnern in der Cloud sowie deren Geschwindigkeit sind Raten von weit über 10 Millionen Tests pro Sekunde möglich. Während die Fuzzer noch laufen, können die gefunden Ergebnisse schon auf einen Firmen Rechner übertragen und auf False-Positives überprüft werden.

Ivan Miklecic, softScheck GmbH

IT-Sicherheitsberater bei der softScheck GmbH in Sankt Augustin. Projektleiter ISO 27000-Familie und speziell ISO 27034 Application Security. Erfolgreiche Identifizierung bisher nicht-erkannter Sicherheitslücken (Zero-Day Vulnerabilities) mit den folgenden 5 Verfahren: Security Requirements Analysis, Threat Modeling, Static Source Code Analysis, Penetration Testing, Dynamic Analysis - Fuzzing in kommerzieller Software, Sicherheitssoftware, Industriesteuerungen, Routern etc.

Prof. Dr. Hartmut Pohl, softScheck GmbH

Geschäftsführender Gesellschafter der IT-Sicherheitsberatung softScheck GmbH, Köln / Sankt Augustin mit dem Fokus:

  • Taktische und strategische Sicherheitsberatung u.a. basierend auf BSI-Grundschutz, ISO 27000-Familie, COBIT, NIST SP 800, ITIL etc.
  • Sichere Software – Secure Software: Security Consulting mit dem ISO 27034 basierten Entwicklungsprozess sicherer Software und dem Security Testing Process zur Identifizierung unerkannter Sicherheitslücken (Zero-Day-Vulnerabilities):
    • Security Requirements Analysis
    • Threat Modeling
    • Static Source Code Analysis
    • Dynamic Analysis (Fuzzing)
    • Penetration Testing

softScheck garantiert als Prüfungspartner des TÜV Saarland alle Prüfungsergebnisse mit einem proprietären Zertifikat oder auch einem TÜV-Zertifikat für Software, Firmware, Apps und Systems, Steuerungssysteme, Webseiten, Netze etc.