15 Juni 2021 20:00

Graue Box

Was ist eine graue Box?

Gray Box bezieht sich auf das Testen von Software, bei der nur begrenzte Kenntnisse über die internen Abläufe vorliegen. Gray-Box-Tests sind eine ethische Hacking-Technik, bei der der Hacker nur begrenzte Informationen verwenden muss, um die Stärken und Schwächen des Sicherheitsnetzwerks eines Ziels zu ermitteln.

Die zentralen Thesen

  • Gray-Box-Tests sind eine Technik zum Erkennen von Softwarefehlern oder zum Auffinden von Exploits, bei denen nur begrenzte Kenntnisse über die zugrunde liegende Software im Voraus bekannt sind.
  • Diese Form des „ethischen Hackings“ ermöglicht es Softwareentwicklern, Fixes und Patches zu erstellen, um zu verhindern, dass böswillige Angreifer diese Exploits nutzen.
  • Gray-Box-Tests sind im Wesentlichen eine Mischung aus White-Box-Methoden (Vollwissen) und Black-Box-Methoden (Nichtwissen).

Graue Kästchen verstehen

Gray Box ist die Mischung aus White Box-Tests, bei denen der Tester die interne Logik und Struktur des Software-Codes untersucht, und Black Box Tests, bei denen der Tester nichts über den Code der Software weiß. Um Gray-Box-Tests zu verstehen, müssen wir zuerst Black-Box-Tests und White-Box-Tests verstehen.

Black Box- und White Box-Tests

Beim Black-Box-Test werden nur die Eingaben des Benutzers und die von der Software bei diesen Eingaben erzeugten Ausgaben betrachtet. Black-Box-Tests erfordern keine Kenntnisse der Programmiersprache oder anderer technischer Details. Es handelt sich um eine Art von Tests auf hoher Ebene, die bei Systemtests und Abnahmetests verwendet werden. Softwareentwickler benötigen ein SRS-Dokument (Software Requirement Specification), um Black-Box-Tests durchführen zu können. Dieser Test nimmt eine Endbenutzerperspektive ein, bei der der Black-Box-Tester nicht weiß, wie die Ausgaben aus den Eingaben generiert werden.

White-Box-Tests erfordern gründliche Kenntnisse der Techniken und Plattformen, die zum Erstellen von Software verwendet werden, einschließlich der entsprechenden Programmiersprache. Es handelt sich um eine Art von Low-Level-Tests, die bei Unit-Tests und Indikationstests verwendet werden. Softwareentwickler müssen die zum Erstellen der Anwendung verwendete Programmiersprache verstehen, damit sie den Quellcode verstehen können. Die Hauptziele von White-Box-Tests bestehen darin, die Sicherheit zu erhöhen, zu untersuchen, wie Ein- und Ausgänge durch die Anwendung fließen, und Design und Benutzerfreundlichkeit zu verbessern. Wenn ein White-Box-Tester nicht die erwartete Ausgabe von einer bestimmten Eingabe erhält, wird das Ergebnis als Fehler angesehen, der behoben werden muss.

Wie Gray Box Testing funktioniert

Gray-Box-Tests umfassen wichtige Komponenten sowohl der Black- als auch der White-Box-Tests, um ein besseres Ergebnis zu erzielen, als beide allein erzielen könnten. Sowohl Endbenutzer als auch Entwickler führen Gray-Box-Tests mit begrenzten (Teil-) Kenntnissen des Quellcodes einer Anwendung durch. Gray-Box-Tests können manuell oder automatisiert erfolgen. Es ist umfassender und zeitaufwändiger als Black-Box-Tests, jedoch nicht so umfassend oder zeitaufwändig wie White-Box-Tests. Gray-Box-Tester benötigen detaillierte Konstruktionsdokumente.

Beim Gray-Box-Testen werden Eingänge, Ausgänge, Hauptpfade und Unterfunktionen identifiziert. Anschließend werden Ein- und Ausgänge für Unterfunktionen entwickelt, Testfälle für Unterfunktionen ausgeführt und diese Ergebnisse überprüft.

Gray Box Beispiel

Ein Gray-Box-Tester überprüft und repariert möglicherweise die Links auf einer Website. Wenn ein Link nicht funktioniert, ändert der Tester den HTML-Code, um zu versuchen, dass der Link funktioniert, und überprüft dann die Benutzeroberfläche erneut, um festzustellen, ob der Link funktioniert. Ein Gray-Box-Tester kann auch einen Online-Rechner testen. Der Tester würde Eingaben definieren – mathematische Formeln wie 1 + 1, 2 * 2, 5-4 und 15/3 – und dann prüfen, ob der Rechner bei diesen Eingaben die richtigen Ausgaben liefert. Der Gray-Box-Tester hat Zugriff auf den HTML-Code des Rechners und kann diesen ändern, wenn Fehler festgestellt werden.

Beim Testen der grauen Box werden sowohl die Benutzeroberfläche oder die Präsentationsebene der Anwendung als auch die internen Funktionen oder der Code untersucht. Es wird hauptsächlich für Integrationstests und Penetrationstests verwendet, ist jedoch nicht für Algorithmus Tests geeignet. Gray-Box-Tests werden im Allgemeinen verwendet, um die Benutzeroberfläche, Sicherheit oder Online-Funktionalität einer Anwendung mithilfe von Techniken wie Matrixtests, Regressionstests, orthogonalen Array-Tests und Mustertests zu testen. Gray-Box-Tester identifizieren am wahrscheinlichsten kontextspezifische Probleme.

„Grau“ bezieht sich auf die teilweise Fähigkeit des Testers, die internen Abläufe der Anwendung zu sehen. „Weiß“ bezieht sich auf die Fähigkeit, durch die Schnittstelle der Software zu ihrem Innenleben zu sehen, und „Schwarz“ bezieht sich auf die Unfähigkeit, das interne Funktionieren der Software zu sehen. Gray-Box-Tests werden manchmal als durchscheinende Tests bezeichnet, während White-Box-Tests manchmal als klare Tests und Black-Box-Tests auch als undurchsichtige Tests bezeichnet werden können.