Szare pudełko
Co to jest szare pudełko?
Szare pole odnosi się do testowania oprogramowania, w przypadku którego istnieje ograniczona wiedza na temat jego wewnętrznego działania. Testowanie szarej skrzynki to etyczna technika hakerska, w której haker musi wykorzystać ograniczone informacje, aby zidentyfikować mocne i słabe strony sieci bezpieczeństwa celu.
Zrozumienie szarych pudełek
Szara skrzynka jest hybrydą testowania białej skrzynki, w której tester bada wewnętrzną logikę i strukturę kodu oprogramowania, oraz testowania czarnej skrzynki,. gdzie tester nie wie nic o kodzie oprogramowania. Aby zrozumieć testowanie szarej skrzynki, musimy najpierw zrozumieć testowanie czarnej skrzynki i testowanie białej skrzynki.
Testowanie czarnej skrzynki i białej skrzynki
Testy czarnoskrzynkowe nie skupiają się na niczym więcej niż na danych wejściowych użytkownika i na tym, jakie dane wyjściowe generuje oprogramowanie na podstawie tych danych wejściowych. Testowanie czarnoskrzynkowe nie wymaga znajomości języka programowania ani innych szczegółów technicznych. Jest to rodzaj testowania wysokiego poziomu stosowany w testach systemowych i testach akceptacyjnych. Inżynierowie oprogramowania wymagają dokumentu specyfikacji wymagań oprogramowania (SRS) w celu przeprowadzenia testów czarnej skrzynki. Testowanie to 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łej skrzynki wymaga dogłębnej znajomości technik i platform używanych do tworzenia oprogramowania, w tym odpowiedniego języka programowania. Jest to rodzaj testowania niskopoziomowego stosowanego w testach jednostkowych i testach wskaźnikowych. Inżynierowie oprogramowania muszą rozumieć język programowania używany do tworzenia aplikacji, aby mogli zrozumieć jej kod źródłowy. Głównym celem testowania białej skrzynki jest wzmocnienie bezpieczeństwa, zbadanie przepływu danych wejściowych i wyjściowych przez aplikację oraz poprawa projektu i użyteczności. Gdy tester białoskrzynkowy 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
Testowanie szarej skrzynki obejmuje ważne elementy zarówno testów czarno-, jak i białoskrzynkowych, aby uzyskać lepsze wyniki niż te, które można by uzyskać samodzielnie. Zarówno użytkownicy końcowi, jak i programiści przeprowadzają testy szarej skrzynki z ograniczoną (częściową) wiedzą na temat kodu źródłowego aplikacji. Testowanie szarej skrzynki może być ręczne lub zautomatyzowane. Jest bardziej kompleksowy i bardziej czasochłonny niż testowanie czarnoskrzynkowe, ale nie tak kompleksowe i czasochłonne jak testowanie białoskrzynkowe. Testerzy szarej skrzynki wymagają szczegółowych dokumentów projektowych.
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 pola
Tester szarej skrzynki może sprawdzić i naprawić linki na stronie internetowej. Jeśli łącze nie działa, tester zmienia kod HTML, aby spróbować, aby łącze działało, a następnie ponownie sprawdza interfejs użytkownika, aby sprawdzić, czy łącze działa. Tester szarej skrzynki może również przetestować kalkulator online. Tester powinien zdefiniować dane wejściowe — formuły matematyczne, takie jak 1+1, 2*2, 5-4 i 15/3 — a następnie sprawdzić, czy kalkulator zapewnia prawidłowe dane wyjściowe, biorąc pod uwagę te dane wejściowe. Tester szarej skrzynki ma dostęp do kodu HTML kalkulatora i może go zmienić w przypadku wykrycia błędów.
Testowanie szarej skrzynki analizuje 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 związane z kontekstem.
„Szary” odnosi się do częściowej zdolności testera do zobaczenia wewnętrznych funkcji aplikacji. „Biały” odnosi się do możliwości zobaczenia przez interfejs oprogramowania jego wewnętrznych funkcji, a „czarny” odnosi się do niemożności zobaczenia wewnętrznego działania oprogramowania. Testowanie szarej skrzynki jest czasami nazywane testowaniem półprzezroczystym, podczas gdy testowanie białoskrzynkowe jest czasami nazywane testowaniem jasnym, a testowanie czarnej skrzynki może być również nazywane testowaniem nieprzezroczystym.
Przegląd najważniejszych wydarzeń
Testowanie szarej skrzynki jest zasadniczo mieszanką metodologii białej (pełna wiedza) i czarnej skrzynki (brak wiedzy).
Testowanie szarej skrzynki to technika wykrywania błędów oprogramowania lub znajdowania exploitów, w przypadku której pewna ograniczona wiedza na temat oprogramowania bazowego jest znana z góry.
Ta forma „etycznego hakowania” umożliwia twórcom oprogramowania tworzenie poprawek i łat, aby uniemożliwić złośliwym napastnikom wykorzystanie tych exploitów.