4 maja 2021 20:02

Szare pudełko

Co to jest szare pudełko?

Szara ramka odnosi się do testowania oprogramowania, w przypadku którego istnieje ograniczona wiedza na temat jego wewnętrznego działania. Testowanie szarej skrzynki to technika etycznego hakowania, w której haker musi wykorzystać ograniczone informacje do zidentyfikowania mocnych i słabych stron sieci bezpieczeństwa celu.

Kluczowe wnioski

  • Testowanie szarej skrzynki to technika wykrywania błędów w oprogramowaniu lub znajdowania exploitów, w przypadku których z góry znana jest ograniczona wiedza na temat oprogramowania bazowego.
  • Ta forma „etycznego hakowania” umożliwia twórcom oprogramowania tworzenie poprawek i poprawek, aby uniemożliwić złośliwym napastnikom wykorzystanie tych exploitów.
  • Testowanie szarych skrzynek jest zasadniczo połączeniem metodologii białej skrzynki (pełna wiedza) i czarnej skrzynki (brak wiedzy).

Zrozumieć szare pudełka

Szara skrzynka jest hybrydą testowania białoskrzynkowego, w którym tester bada wewnętrzną logikę i strukturę kodu oprogramowania oraz testowania czarnoskrzynkowego, gdzie tester nie wie nic o kodzie oprogramowania. Aby zrozumieć testy szarej skrzynki, musimy najpierw zrozumieć testy czarnoskrzynkowe i testy białoskrzynkowe.

Testowanie czarnoskrzynkowe i białoskrzynkowe

Testowanie czarnoskrzynkowe opiera się jedynie na danych wejściowych użytkownika i wynikach generowanych przez oprogramowanie przy tych danych wejściowych. Testowanie czarnoskrzynkowe nie wymaga znajomości języka programowania ani innych szczegółów technicznych. Jest to rodzaj testów wysokopoziomowych stosowanych w testowaniu systemów i testach akceptacyjnych. Inżynierowie oprogramowania wymagają dokumentu specyfikacji wymagań oprogramowania (SRS), aby przeprowadzić testy czarnoskrzynkowe. To testowanie przyjmuje perspektywę użytkownika końcowego, gdzie tester czarnej skrzynki nie wie, w jaki sposób dane wyjściowe są generowane z danych wejściowych.

Testowanie białoskrzynkowe wymaga dogłębnej znajomości technik i platform używanych do tworzenia oprogramowania, w tym odpowiedniego języka programowania. Jest to rodzaj testów niskopoziomowych stosowanych w testach jednostkowych i testach wskazań. Inżynierowie oprogramowania muszą rozumieć język programowania używany do tworzenia aplikacji, aby mogli zrozumieć jej kod źródłowy. Podstawowym celem testów białoskrzynkowych jest wzmocnienie bezpieczeństwa, zbadanie przepływu danych wejściowych i wyjściowych przez aplikację oraz ulepszenie projektu i użyteczności. Gdy tester typu white box nie otrzymuje oczekiwanego wyniku z danego wejścia, wynik jest uważany za błąd, który należy naprawić.

Jak działa testowanie szarej skrzynki

Testy szarej skrzynki obejmują ważne elementy zarówno testów czarno-białych, jak i białych, aby uzyskać lepsze wyniki niż te, które można by uzyskać samodzielnie. Zarówno użytkownicy końcowi, jak i programiści wykonują testy szarej skrzynki z ograniczoną (częściową) wiedzą o kodzie źródłowym aplikacji. Testowanie szarej skrzynki może być ręczne lub zautomatyzowane. Jest bardziej wszechstronny i bardziej czasochłonny niż testowanie czarnoskrzynkowe, ale nie jest tak wszechstronny i czasochłonny jak testowanie białoskrzynkowe. Testery z szarą skrzynką wymagają szczegółowej dokumentacji projektowej.

Testowanie szarej skrzynki obejmuje identyfikację wejść, wyjść, głównych ścieżek i podfunkcji. Następnie przechodzi do opracowywania danych wejściowych i wyjściowych dla podfunkcji, wykonywania przypadków testowych dla podfunkcji i weryfikowania tych wyników.

Przykład szarego pudełka

Tester z szarą skrzynką może sprawdzić i naprawić linki w witrynie internetowej. Jeśli łącze nie działa, tester zmienia kod HTML, aby spróbować sprawić, by łącze działało, a następnie ponownie sprawdza interfejs użytkownika, aby sprawdzić, czy łącze działa. Tester z szarą skrzynką może również przetestować kalkulator online. Tester definiowałby dane wejściowe – wzory matematyczne, takie jak 1 + 1, 2 * 2, 5-4 i 15/3 – a następnie sprawdzał, czy kalkulator zapewnia prawidłowe dane wyjściowe, biorąc pod uwagę te dane wejściowe. Tester z szarą skrzynką ma dostęp do kodu HTML kalkulatora i może go zmienić, jeśli zostaną wykryte jakiekolwiek błędy.

Testy z szarą skrzynką obejmują zarówno interfejs użytkownika aplikacji lub warstwę prezentacji, jak i jej wewnętrzne działanie lub kod. Jest używany głównie w testach integracyjnych i testach penetracyjnych, ale nie nadaje się do testowania algorytmów. Testowanie szarej skrzynki jest zwykle używane do testowania interfejsu użytkownika aplikacji, bezpieczeństwa lub funkcjonalności online za pomocą technik, takich jak testowanie macierzy, testowanie regresji, testowanie tablic ortogonalnych i testowanie wzorców. Testerzy szarej skrzynki najczęściej identyfikują problemy specyficzne dla kontekstu.

„Szary” odnosi się do częściowej zdolności testera do zobaczenia wewnętrznego działania aplikacji. „Biały” odnosi się do zdolności wglądu przez interfejs oprogramowania do jego wewnętrznych funkcji, a „czarny” odnosi się do niemożności zobaczenia wewnętrznego działania oprogramowania. Testy szarych skrzynek są czasami nazywane testami półprzezroczystymi, podczas gdy testy białoskrzynkowe są czasami nazywane testami jasnymi, a testowanie czarnoskrzynkowe można również nazywać testami nieprzezroczystymi.