24 juni 2021 15:02

Grijze doos

Wat is een grijze doos?

Grijze doos verwijst naar het testen van software waarbij er een beperkte kennis is van de interne werking ervan. Gray box-testen is een ethische hacktechniek waarbij de hacker beperkte informatie moet gebruiken om de sterke en zwakke punten van het beveiligingsnetwerk van een doelwit te identificeren.

Belangrijkste leerpunten

  • Gray box testing is een techniek om softwarefouten of exploits te ontdekken, waarbij vooraf enige beperkte kennis over de onderliggende software bekend is.
  • Met deze vorm van “ethisch hacken” kunnen softwareontwikkelaars fixes en patches maken om te voorkomen dat kwaadwillende aanvallers deze exploits gebruiken.
  • Gray box testing is in wezen een mix van white box (volledige kennis) en black box (geen kennis) methodologieën.

Inzicht in grijze dozen

Gray box is de hybride van white box-testen, waarbij de tester de interne logica en structuur van de softwarecode onderzoekt, en black-box testen, waarbij de tester niets weet over de softwarecode. Om het testen van de grijze doos te begrijpen, moeten we eerst de tests van de zwarte doos en het testen van de witte doos begrijpen.

Black Box en White Box testen 

Black box testing kijkt naar niets meer dan input van de gebruiker en welke output de software produceert op basis van die input. Black box testing vereist geen kennis van programmeertaal of andere technische details. Het is een type testen op hoog niveau dat wordt gebruikt bij systeemtests en acceptatietests. Software-ingenieurs hebben een document met softwarevereisten specificatie (SRS) nodig om black box-tests uit te voeren. Bij deze tests wordt uitgegaan van het perspectief van de eindgebruiker, waarbij de black-box-tester niet weet hoe de outputs worden gegenereerd door de inputs.

White box testen vereist een grondige kennis van de technieken en platforms die worden gebruikt om software te bouwen, inclusief de relevante programmeertaal. Het is een soort low-level testen die wordt gebruikt bij het testen van eenheden en het testen van indicaties. Software-ingenieurs moeten de programmeertaal begrijpen die is gebruikt om de applicatie te maken, zodat ze de broncode kunnen begrijpen. Het primaire doel van White Box-tests is om de beveiliging te versterken, te onderzoeken hoe inputs en outputs door de applicatie stromen en het ontwerp en de bruikbaarheid te verbeteren. Wanneer een white box-tester niet de verwachte uitvoer van een bepaalde invoer krijgt, wordt het resultaat beschouwd als een bug die moet worden verholpen.

Hoe Gray Box Testing werkt

Gray-box-testen omvatten belangrijke componenten van zowel black- als white-box-testen om een ​​beter resultaat te krijgen dan elk afzonderlijk zou kunnen krijgen. Zowel eindgebruikers als ontwikkelaars voeren grey box testen uit met beperkte (gedeeltelijke) kennis van de broncode van een applicatie. Gray box-testen kunnen handmatig of geautomatiseerd zijn. Het is uitgebreider en tijdrovender dan black-box-testen, maar niet zo uitgebreid of tijdrovend als white-box-testen. Grey-box-testers hebben gedetailleerde ontwerpdocumenten nodig.

Gray box-testen omvatten het identificeren van inputs, outputs, hoofdpaden en subfuncties. Vervolgens gaat het verder met het ontwikkelen van inputs en outputs voor subfuncties, het uitvoeren van testcases voor subfuncties en het verifiëren van die resultaten.

Gray Box-voorbeeld

Een grijze-doos-tester kan de links op een website controleren en repareren. Als een link niet werkt, verandert de tester de HTML-code om te proberen de link te laten werken, en controleert vervolgens de gebruikersinterface om te zien of de link werkt. Een grijze doos tester kan ook een online rekenmachine testen. De tester zou invoer definiëren – wiskundige formules zoals 1 + 1, 2 * 2, 5-4 en 15/3 – en vervolgens controleren of de rekenmachine de juiste uitvoer geeft op basis van die invoer. De grijze-doos-tester heeft toegang tot de HTML-code van de rekenmachine en kan deze wijzigen als er fouten worden ontdekt.

Gray box testing kijkt naar zowel de gebruikersinterface of presentatielaag van de applicatie als de interne werking of code. Het wordt voornamelijk gebruikt bij integratietests en penetratietests, maar het is niet geschikt voor het testen van algoritmen. Gray box-testen worden over het algemeen gebruikt om de gebruikersinterface, beveiliging of online functionaliteit van een toepassing te testen door middel van technieken zoals matrixtesten, regressietesten, orthogonale array-testen en patroontesten. Gray-box-testers zullen waarschijnlijk contextspecifieke problemen identificeren.

“Grijs” verwijst naar het gedeeltelijke vermogen van de tester om de interne werking van de applicatie te zien. “Wit” verwijst naar het vermogen om door de interface van de software naar zijn innerlijke werking te kijken, en “zwart” naar het onvermogen om de interne werking van de software te zien. Gray-box-testen wordt soms doorschijnend testen genoemd, terwijl white-box-testen soms clear-testen worden genoemd en black-box-testen ook ondoorzichtige testen worden genoemd.