Was ist Fuzz Testing?

Fuzz Testing wird als die Art von Test angesehen, bei der entweder automatisierte oder halbautomatisierte Testtechniken erforderlich sind, um Codierungsfehler sowie Sicherheitslücken in der Software oder den Betriebssystemen durch Eingabe der Zufallsdaten zu ermitteln zum System. Diese Zufallsdaten heißen FUZZ. Schließlich wird das System auf verschiedene Ausnahmebedingungen überprüft, z. B. Systemabstürze oder sogar Fehler im integrierten Code und vieles mehr. Dies wurde ursprünglich von jemandem namens Barton Miller von der University of Wisconsin entwickelt. Fuzzing wird auch als die Art der Sicherheitsprüfung angesehen.

Warum brauchen wir Fuzz-Tests?

  • Bei Fuzz-Tests können häufig die schwerwiegendsten Sicherheitsmängel im System festgestellt werden.
  • Es liefert viel effektivere Ergebnisse, wenn wir es zusammen mit Black Box Testing, Beta Testing oder verschiedenen Debugging-Methoden verwenden.
  • Es wird auch benötigt, um die Schwachstelle der Software zu überprüfen. Es ist auch eine wirklich kostengünstige Testtechnik.
  • Es wird als eine Black-Box-Testtechnik angesehen. Es ist auch eines der am häufigsten verwendeten Hacker-Methoden, die die Sicherheitslücke des Systems finden.

Wie wird ein Fuzzy-Test durchgeführt?

Die Schritte für das Fuzzy-Testen umfassen die grundlegenden Testschritte:

Schritt 1 : Erkennung des Zielsystems.

Schritt 2 : Erkennung der Eingaben.

Schritt 3 : Fuzzed Data Generation.

Schritt 4 : Testausführung mit Fuzzy-Daten.

Schritt 5 : Überwachung des Systemverhaltens.

Schritt 6 : Protokollierung von Mängeln.

Beispiele für Fuzzers

Es gibt viele Fuzzers wie folgt:

  • Mutationsbasierte Fuzzers: Diese Fuzzers ändern die vorhandenen Datenproben, um neue Testdaten zu erstellen. Dies ist genauso einfach wie die direkte Methode, sie beginnt mit einem vernünftigen Protokoll und mischt jedes einzelne Byte oder sogar als Datei.
  • Generationsbasierte Fuzzers: Sie definieren Daten, die je nach Modelleingabe neu sind. Abhängig von der Spezifikation wird die Eingabeerzeugung von Grund auf neu gestartet.
  • Protokollbasierter Fuzzer: Es handelt sich um den erfolgreichsten Fuzzer, der recht genaue Kenntnisse über das zu testende Protokollformat besitzt. Dieses Verständnis ist abhängig von der Spezifikation. Es beinhaltet das Schreiben einer Reihe von Spezifikationen innerhalb des Werkzeugs und danach das Verwenden der modellbasierten Technik. Es wird auch als Syntax- oder Grammatiktest oder Robustheitstest bezeichnet.

Dieses protokollbasierte Fuzzing unterliegt zwei Einschränkungen:

  1. Wir können erst mit dem Testen fortfahren, wenn die Spezifikation ausgereift ist.
  2. Es gibt viele Protokolle, die eine Erweiterung der veröffentlichten Protokolle darstellen. Wenn die Fuzz-Tests auf diesen veröffentlichten Spezifikationen basieren, wird die Testabdeckung für diese neuen Protokolle eingeschränkt.

Es gibt die einfachste Form der Fuzzing-Prüfung, bei der die zufällige Eingabe in die Software in Form von Protokollpaketen oder sogar in Form eines Ereignisses gesendet wird. Diese besondere Art der Weitergabe von Zufallseingaben wird als sehr leistungsfähig angesehen, um Fehler in verschiedenen Anwendungen und Diensten zu lokalisieren. Es gibt auch andere Techniken, die verfügbar sind und die auch recht einfach zu implementieren sind.

Durch Fuzz-Tests erkannte Fehlertypen

  • Speicherverluste und Assertionsfehler: Diese Methode wird häufig in umfangreichen Anwendungen verwendet, in denen Fehler die Sicherheit des Speichers beeinträchtigen, der als schwerwiegende Sicherheitslücke eingestuft wird.
  • Ungültige Eingabe: Es werden Fuzzler benötigt, um die ungültige Eingabe zu generieren, die zum Testen der Fehlerbehandlungsroutinen beim Fuzz-Testen erforderlich ist. Dies ist auch für Software erforderlich, die die Eingabe nicht steuert. Fuzzing wird als ein Weg zur Automatisierung des Negativtests angesehen.
  • Die Korrektheit von Bugs: Fuzzing ist erforderlich, um einige Arten von "Korrektheits" -Bugs zu erkennen, z. B. eine beschädigte Datenbank oder die schlechten Suchergebnisse und vieles mehr.

Fuzz-Test-Tools

Die Tools, die für die Web-Sicherheit sehr nützlich sind, können auch weitgehend für Fuzz-Tests oder Fuzzy-Tests verwendet werden. Zum Beispiel Peach Fuzzer, Burp Suite, etc.

1. Pfirsich Fuzzer

Dieses Tool bietet eine wesentlich robustere und sicherere Abdeckung als der Scanner. Wenn wir über andere Testtools sprechen, können diese jedoch nur nach bekannten Bedrohungen suchen. Mit Peach Fuzzer können Benutzer bekannte und unbekannte Bedrohungen entdecken.

2. Spike Proxy

Spike gilt als professionelles Tool, das in verschiedenen Webanwendungen auf Anwendungsebene nach Schwachstellen sucht. SPIKE Proxy berücksichtigt nur die Grundlagen wie SQL Injection oder Cross-Site-Scripting. Es ist jedoch eine vollständig offene Infrastruktur von Python. SPIKE Proxy ist sowohl für Linux als auch für Windows verfügbar.

Vorteile

  • Fehler, die bei Fuzz-Tests entdeckt wurden, werden häufig als schwerwiegend eingestuft. Meistens wird sie von Hackern verwendet, die aus Abstürzen, Speicherverlusten oder einer nicht behandelten Ausnahme und vielem mehr bestehen.
  • Wenn die Tester einen Fehler oder einen Fehler aufgrund der begrenzten Zeit und der begrenzten Ressourcen nicht finden, können diese Fehler beim Fuzz-Testen entdeckt werden.

Nachteile

  • Alleine Fuzz-Tests allein können nicht das Gesamtszenario aller Sicherheitsbedrohungen darstellen.
  • Außerdem wird das Testen von Fuzz als nicht sehr effektiv angesehen, wenn es um Sicherheitslücken geht, die keine Programmabstürze wie Viren, Würmer usw. verursachen.
  • Es kann nur einfache Bedrohungen erkennen.
  • Um eine effektive Leistung zu erbringen, ist viel Zeit erforderlich.

Fazit

Wir können daher den Schluss ziehen, dass in der Softwareentwicklung diese Tests, dh Fuzz-Tests, das Vorhandensein von Fehlern in jeder Anwendung nachweisen. Diese Tests gewährleisten in keiner Anwendung eine vollständige Fehlererkennung. Wenn wir jedoch diese Fuzz-Technik verwenden, ist die Robustheit der Anwendung ebenso gewährleistet wie die Sicherheit, da Fuzz-Tests bei der Aufdeckung vieler häufig auftretender Schwachstellen sehr hilfreich sind.

Empfohlene Artikel

Dies ist eine Anleitung zum Fuzz Testing. Hier diskutieren wir, was Fuzz-Tests sind. Testwerkzeuge, Vor- und Nachteile. Sie können auch unsere anderen Artikelvorschläge durchgehen, um mehr zu erfahren -

  1. Benchmark-Test
  2. Arten von Software-Tests
  3. Was ist Usability-Testen?
  4. Statische Prüfung