Fuzzing ist ein wichtiger Schritt für eine sichere Entwicklung

Viele Unternehmen sind sich der Vorteile der Verwendung von Fuzzing bei der Entwicklung ihrer Softwareprodukte noch nicht voll bewusst. Die Produktsicherheit sollte jedoch mit der Entwicklung einhergehen. Denn das zu korrigieren, was bereits getan wurde, ist arbeitsintensiv und viel teurer als sofort Gutes zu tun.



Und dies trotz der Tatsache, dass Konzepte wie Security Development Life Cycle (SDLC) und relativ neu wie DevSecOps oder SecDevOps in der Entwicklungswelt schon lange auftauchen, aber nicht jeder diese Techniken verwendet. Sie haben eine Essenz: Ansätze zur Verbesserung der Sicherheit in den ersten Entwicklungsphasen umzusetzen, und es ist besser, mit der Schulung der Mitarbeiter zu beginnen. Und natürlich ist es wichtig, die Sicherheit des Produkts vor Angriffen während seines gesamten Lebenszyklus zu berücksichtigen. Für Details - willkommen bei Katze.


Einer der wichtigsten Schritte für eine sichere Entwicklung ist das Fuzzing. Fuzzing ist eine Softwaretesttechnik, deren Kern die automatisierte Erkennung von Implementierungsfehlern ist, indem wissentlich falsche Daten gesendet und die Reaktion des Programms auf diese analysiert werden.


Gerade als er einen Artikel auf Twitter schrieb, flackerten Notizen über die Verwendung von Fuzzing von Dmitry Vyukov.




Er macht nur darauf aufmerksam, dass Sie mit Fuzzing eine große Anzahl von Fehlern im Code erkennen können, die sonst auch nach einiger Zeit nicht verschwinden würden.


Normalerweise vervollständigen Fuzzing den Entwicklungsprozess, aber Fuzzing kann auch Funktionen des entwickelten Produkts trennen.


Vorteile des Fuzzing gegenüber anderen Testmethoden:


  • Sie können Fuzzer starten und bis zum Ende des Tests vergessen und mit den Ergebnissen arbeiten.
  • Durch automatisierte Tests können Fehler identifiziert werden, die durch manuelle Tests aufgrund der größeren Abdeckung des Codes nicht gefunden werden konnten.
  • ermöglicht es Ihnen, eine allgemeine Vorstellung von der Sicherheit des getesteten Codes zu sammeln.

Einer der sensationellen Fälle, in denen Fuzzing seine gute Tat vollbracht hat, ist die Entdeckung von fünfzig CVEs in Adobe Reader in 50 Tagen. Die Forscher konnten so viele Schwachstellen ohne Zugriff auf den Quellcode finden, und es ist schwer vorstellbar, wie viele von ihnen entdeckt worden wären, wenn sie die Quelle hätten.


Wenn Sie in Open Source nach Informationen zur Verwendung von Fuzzing bei Entwicklern suchen, ist Microsoft der erste. Dieses Unternehmen ist einer der Pioniere des Fuzzing im SDLC. Sie verfügen über Security Risk Detection , einen Dienst, mit dem Benutzer Binärdateien zum Fuzzing herunterladen können. Welche Daten der Eingabe zugeführt werden, entscheidet der Benutzer. Das Ergebnis des Fuzzers sind die gefundenen Fehler und die Daten, die sie generiert haben.


Google verwendet auch Fuzzing und es gibt so viele gemeinfreie Tools . Das interessanteste von ihnen ist OSS-Fuzz . Das Wesentliche ist, dass jeder mit seinem Fuzzer eine Pull-Anfrage stellen kann. Normalerweise sind dies Fuzzers, die einmal von Entwicklern für ihre kleinen Projekte erstellt wurden. Zusätzlich zu diesen Fuzzern verwendet Google ClusterFuzz , um Fehler in Chrome zu erkennen. Über mehrere Jahre hinweg wurden mehr als 16.000 Sicherheitslücken im Browser und mehr als 11.000 in 160 Open Source-Projekten entdeckt.


Einige Unternehmen, die Software entwickeln, bieten jedem nächtliche Baugruppen zum Fuzzing an. Mozilla und VLC auch . Jeder kann die Assembly herunterladen und versuchen, nach Fehlern und Schwachstellen darin zu suchen.


Natürlich schweigen viele Entwickler proprietärer Software darüber, wie sie die Sicherheit ihrer Produkte erhöhen. Die Tatsache, dass viele von ihnen die Sicherheit ihrer Produkte nicht angemessen berücksichtigen, zeigt sich in der Anzahl der erkannten Sicherheitslücken. Aus diesem Grund haben wir uns entschlossen, eine Stichprobenumfrage unter Entwicklern durchzuführen, um deren Einstellung zum Fuzzing herauszufinden.


Wir haben folgende Fragen gestellt:


Verwenden Sie Fuzzing in Ihrem Produktentwicklungsprozess?


Ein Drittel der Befragten beantwortete diese Frage positiv.



Wenn nicht, warum dann? Oder was hindert Sie Ihrer Meinung nach normalerweise daran, die Fuzzing-Phase in den Produktentwicklungsprozess einzubeziehen?


Mögliche Antworten:


  1. Nichts zu fusseln
  2. Produktsicherheit hat keine Priorität
  3. Keine geeigneten Werkzeuge
  4. Keine relevanten Spezialisten
  5. Mangel an geeigneter Infrastruktur
  6. Andere

Die Befragten könnten mehrere Gründe dafür wählen, die Verwendung von Fuzzing im Entwicklungsprozess zu verweigern.


Das Diagramm zeigt den Prozentsatz der Relevanz der Gründe für die Ablehnung von Fuzzing im Entwicklungsprozess.



Der häufigste Grund für die NICHT- Verwendung von Fuzzing war der Mangel an qualifizierten Mitarbeitern in diesem Bereich. Es ist jedoch nicht immer erforderlich, eigene Experten für Informationssicherheit zu haben. Sie können externe Experten gewinnen, die die entwickelten Produkte prüfen.


Einige der Befragten, die die Antwortoption "Andere" gewählt haben, gaben interessante detaillierte Antworten. Hier sind einige Gründe, warum Sie das Fuzzing ablehnen:


  • Die Abteilung für Informationssicherheit schätzte die Initiative eines der Entwickler, ihren Fuzzer zu schreiben, nicht.
  • Fehlen von FSTEC-Techniken zur Suche nach Sicherheitslücken.

Unter den Antworten befanden sich Klarstellungen zur Verwendung von AFL-Fuzzern und Libfuzzer , was eine gute Nachricht ist .


Als Sicherheitsexperten raten wir Ihnen, die sichere Entwicklung, einschließlich der Verwendung von Fuzzing, nicht zu vernachlässigen, um die Sicherheit Ihrer Produkte zu erhöhen.

Source: https://habr.com/ru/post/de450734/


All Articles