Graue Kiste
Was ist eine Greybox?
Graue Box bezieht sich auf das Testen von Software, bei der nur begrenzte Kenntnisse über ihre interne Funktionsweise vorhanden sind. Gray-Box-Tests sind eine ethische Hacking-Technik, bei der der Hacker begrenzte Informationen verwenden muss, um die Stärken und Schwächen des Sicherheitsnetzwerks eines Ziels zu identifizieren.
Die zentralen Thesen
- Gray-Box-Tests sind eine Technik zum Aufdecken von Softwarefehlern oder Exploits, bei der nur begrenzte Kenntnisse über die zugrunde liegende Software im Voraus bekannt sind.
- Diese Form des „ethischen Hackens“ ermöglicht es Softwareentwicklern, Korrekturen und Patches zu erstellen, um böswillige Angreifer daran zu hindern, diese Exploits auszunutzen.
- Gray-Box-Tests sind im Wesentlichen eine Mischung aus White-Box- (Vollwissen) und Black-Box-Methoden (kein Wissen).
Graue Kästchen verstehen
Gray-Box-Tests sind eine Mischung aus White-Box-Tests, bei denen der Tester die interne Logik und Struktur des Softwarecodes untersucht, und Black-Box Tests, bei denen der Tester nichts über den Code der Software weiß. Um Grey-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 ist eine Art von High-Level-Tests, die bei Systemtests und Akzeptanztests verwendet wird. Softwareingenieure benötigen ein Software Requirements Specification (SRS)-Dokument, um Black-Box-Tests durchzuführen. Dieses Testen nimmt eine Endbenutzerperspektive ein, bei der der Black-Box-Tester nicht weiß, wie die Ausgaben aus den Eingaben generiert werden.
White-Box-Tests erfordern fundierte Kenntnisse der Techniken und Plattformen, die zum Erstellen von Software verwendet werden, einschließlich der entsprechenden Programmiersprache. Es ist eine Art von Low-Level-Tests, die beim Unit-Test und beim Indication-Test verwendet wird. Softwareingenieure müssen die Programmiersprache verstehen, die zum Erstellen der Anwendung verwendet wird, damit sie den Quellcode verstehen können. Der Hauptzweck von White-Box-Tests besteht darin, die Sicherheit zu erhöhen, zu untersuchen, wie Eingaben und Ausgaben durch die Anwendung fließen, und das Design und die 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.
So funktioniert Gray-Box-Tests
Gray-Box-Tests umfassen wichtige Komponenten von Black- und White-Box-Tests, um ein besseres Ergebnis zu erzielen, als beides allein erreichen könnte. Sowohl Endbenutzer als auch Entwickler führen Gray-Box-Tests mit begrenzten (teilweisen) 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, aber nicht so umfassend oder zeitaufwendig wie White-Box-Tests. Gray-Box-Tester benötigen detaillierte Konstruktionsunterlagen.
Gray-Box-Tests umfassen das Identifizieren von Eingaben, Ausgaben, Hauptpfaden und Unterfunktionen. Anschließend werden Eingaben und Ausgaben für Unterfunktionen entwickelt, Testfälle für Unterfunktionen ausgeführt und diese Ergebnisse überprüft.
Beispiel für eine graue Box
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, den Link zum Laufen zu bringen, und überprüft dann die Benutzeroberfläche erneut, um zu sehen, ob der Link funktioniert. Ein Gray-Box-Tester könnte 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 die richtigen Ausgaben für diese Eingaben liefert. Der Gray-Box-Tester hat Zugriff auf den HTML-Code des Rechners und kann diesen ändern, wenn Fehler festgestellt werden.
Gray-Box-Tests betrachten sowohl die Benutzeroberfläche oder Präsentationsschicht der Anwendung als auch ihre interne Funktionsweise oder ihren Code. Es wird hauptsächlich für Integrationstests und Penetrationstests verwendet, ist jedoch nicht für Algorithmustests 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 erkennen am ehesten 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 auf das Innenleben der Software zu sehen, und „Schwarz“ bezieht sich auf die Unfähigkeit, das Innenleben der Software zu sehen. Gray-Box-Tests werden manchmal als transluzente Tests bezeichnet, während White-Box-Tests manchmal als Clear-Tests und Black-Box-Tests auch als undurchsichtige Tests bezeichnet werden.