Test penetracyjny (inaczej pentest), to nic innego jak kontrolowany atak na system informatyczny klienta. Jest on przeprowadzany w taki sposób aby nie wyrządzić szkód, daje natomiast wiedzę na temat podatności sieci na włamania.
Najczęściej wyróżnia się trzy rodzaje testów penetracyjnych: black box, white box i grey box. Kryterium wyróżnienia stanowi poziom wiedzy testerów o systemie informatycznym klienta. W przypadku testów penetracyjnych typu black box, testerzy mają taką wiedzę o systemie jak ewentualny włamywacz. Najczęściej jest to tylko adres strony internetowej klienta. Pierwszą fazą takiego testu musi więc być zbieranie informacji. Następnie pentester musi bazować na błędach w zabezpieczeniach, które sam znalazł. Podatność systemu na włamania jest najczęściej określana przez automatyczne oprogramowanie, wyniki są następnie analizowane przez doświadczonego specjalistę do spraw zabezpieczeń.
W testach typu white box tester ma dostęp do pełnej informacji o systemie klienta (czyli do schematów, kodu źródłowego, danych dotyczących konfiguracji poszczególnych urządzeń, adresów IP czy informacji o używanych systemach operacyjnych). W tym przypadku praca testera w dużym stopniu polega na analizie kodu źródłowego. Ataki typu white box są więc nie tylko sposobem na wykrycie ewentualnych metod ataku z zewnątrz. Mogą też służyć do analizy niebezpieczeństwa ataku z wewnątrz organizacji. Dają też możliwość znalezienia błędów popełnionych podczas projektowania systemu.
Trzecim typem są testy typu grey box, gdzie tester z reguły otrzymuje częściowe informacje na temat systemu. Taki test w założeniu ma modelować atak dokonany przez hakera, który zdobył określone informacje pochodzące z wewnątrz przedsiębiorstwa. Brak dostępu do kodu źródłowego przez testera pozwala na zachowanie jasnego rozróżnienia pomiędzy testerem a deweloperem systemu. Różnica ta może ulec zatarciu w przypadku testów typu white box.
Testy penetracyjne powinny służyć sprawdzaniu poszczególnych elementów systemu. Są to przede wszystkim: funkcjonowanie sieci, w tym konfiguracja firewalla, baz MYSQL/SQL, serwerów poczty SMTP czy ustawień FTP, aplikacje sieciowe, oprogramowanie używane po stronie klienta w tym przeglądarki internetowe, odtwarzacze multimediów i pakiety biurowe czy struktura sieci bezprzewodowej. Istotnym elementem testów penetracyjnych są również testy socjotechniczne. Mają one na celu ocenę personelu obsługującego system informatyczny. Odbywają się poprzez próby nakłonienia pracowników do udostępnienia testerowi istotnych informacji umożliwiających na przeprowadzenie ataku. Może to być na przykład otwarcie załącznika poczty elektronicznej otrzymanej od nieznanego nadawcy lub udostępnienie hasła do systemu.
W każdym przypadku testy penetracyjne powinny zakończyć się opracowaniem raportu, który wskazuje, w jaki sposób system informatyczny klienta jest podatny na ewentualne ataki. Raport powinien zawierać również sugerowane sposoby zwiększenia bezpieczeństwa systemu.