Test penetracji - Penetration test

Test penetracji , potocznie znany jako testu pióra lub etycznego hackingu , jest autoryzowanym symulowane cyberataku w systemie komputerowym, przeprowadzono w celu oceny bezpieczeństwa systemu; nie należy tego mylić z oceną podatności . Test jest przeprowadzany w celu zidentyfikowania słabych punktów (zwanych również podatnościami), w tym możliwości uzyskania dostępu do funkcji i danych systemu przez nieupoważnione osoby, a także mocnych stron, umożliwiając pełną ocenę ryzyka .

Proces zazwyczaj identyfikuje systemy docelowe i konkretny cel, a następnie przegląda dostępne informacje i podejmuje różne środki, aby ten cel osiągnąć. Celem testu penetracyjnego może być biała skrzynka (o której tło i informacje systemowe są przekazywane testerowi z wyprzedzeniem) lub czarna skrzynka (o której podane są tylko podstawowe informacje – jeśli takie istnieją – inne niż nazwa firmy). Test penetracyjny szarej skrzynki jest kombinacją tych dwóch (gdzie ograniczona wiedza na temat celu jest przekazywana audytorowi). Test penetracyjny może pomóc w zidentyfikowaniu podatności systemu na atak i oszacowaniu, na ile jest on podatny.

Problemy z bezpieczeństwem, które wykryje test penetracyjny, należy zgłaszać właścicielowi systemu. Raporty z testów penetracyjnych mogą również oceniać potencjalny wpływ na organizację i sugerować środki zaradcze w celu zmniejszenia ryzyka.

Brytyjskie Narodowe Centrum Bezpieczeństwa Cybernetycznego opisuje testy penetracyjne jako: „Metodę uzyskania pewności w zakresie bezpieczeństwa systemu informatycznego poprzez próbę złamania niektórych lub wszystkich zabezpieczeń tego systemu przy użyciu tych samych narzędzi i technik, które może wykonać przeciwnik”.

Cele testu penetracyjnego różnią się w zależności od rodzaju zatwierdzonej aktywności dla danego zaangażowania, przy czym głównym celem jest znalezienie luk, które mogą zostać wykorzystane przez nikczemnego aktora, oraz poinformowanie klienta o tych lukach wraz z zalecanymi strategiami łagodzenia.

Testy penetracyjne są elementem pełnego audytu bezpieczeństwa . Na przykład standard bezpieczeństwa danych dotyczących kart płatniczych wymaga regularnych testów penetracyjnych i po zmianach w systemie.

Istnieje kilka standardowych ram i metodologii przeprowadzania testów penetracyjnych. Obejmują one Open Source Security Testing Methodology Manual (OSSTMM), Penetration Testing Execution Standard (PTES), NIST Special Publication 800-115, Information System Security Assessment Framework (ISSAF) oraz OWASP Testing Guide.

Metodologia hipotezy wad to technika analizy systemów i przewidywania penetracji, w której lista hipotetycznych wad w systemie oprogramowania jest kompilowana poprzez analizę specyfikacji i dokumentacji systemu. Lista hipotetycznych wad jest następnie ustalana według priorytetów na podstawie oszacowanego prawdopodobieństwa, że ​​wada rzeczywiście istnieje, oraz łatwości jej wykorzystania w zakresie kontroli lub kompromisu. Lista priorytetów służy do kierowania rzeczywistym testowaniem systemu.

Historia

W połowie lat 60. rosnąca popularność systemów komputerowych z podziałem czasu , które udostępniały zasoby za pośrednictwem linii komunikacyjnych, stworzyła nowe obawy dotyczące bezpieczeństwa. Jak wyjaśniają uczeni Deborah Russell i GT Gangemi senior, „lata sześćdziesiąte były prawdziwym początkiem ery bezpieczeństwa komputerowego”.

Na przykład w czerwcu 1965 r. kilku czołowych amerykańskich ekspertów ds. bezpieczeństwa komputerowego zorganizowało jedną z pierwszych dużych konferencji na temat bezpieczeństwa systemów, której gospodarzem był kontrahent rządowy, System Development Corporation (SDC). Podczas konferencji ktoś zauważył, że jeden pracownik SDC był w stanie łatwo podważyć różne zabezpieczenia systemowe dodane do systemu komputerowego SDC AN/FSQ-32 z podziałem czasu. W nadziei, że dalsze badania nad bezpieczeństwem systemu okażą się przydatne, uczestnicy poprosili o „...przeprowadzenie badań w takich obszarach, jak łamanie zabezpieczeń w systemie współdzielonym w czasie”. Innymi słowy, uczestnicy konferencji zainicjowali jeden z pierwszych formalnych wniosków o wykorzystanie penetracji komputerowej jako narzędzia do badania bezpieczeństwa systemów.

Na wiosennej konferencji Joint Computer Conference w 1967 roku wielu czołowych specjalistów komputerowych spotkało się ponownie, aby omówić kwestie bezpieczeństwa systemu. Podczas tej konferencji eksperci ds. bezpieczeństwa komputerowego Willis Ware , Harold Petersen i Rein Turn, wszyscy z RAND Corporation oraz Bernard Peters z Narodowej Agencji Bezpieczeństwa (NSA), wszyscy użyli wyrażenia „penetracja”, aby opisać atak na komputer system. W artykule Ware odniósł się do wojskowych zdalnie dostępnych systemów podziału czasu, ostrzegając, że „należy przewidywać celowe próby penetracji takich systemów komputerowych”. Jego koledzy, Petersen i Turn, podzielali te same obawy, zauważając, że systemy komunikacji online „…są podatne na zagrożenia prywatności”, w tym „celową penetrację”. Bernard Peters z NSA stwierdził to samo, twierdząc, że dane wejściowe i wyjściowe z komputera „...mogą dostarczyć dużej ilości informacji przenikliwemu programowi”. Podczas konferencji penetracja komputerów zostałaby formalnie zidentyfikowana jako główne zagrożenie dla systemów komputerowych online.

Zagrożenie, jakie stanowiła penetracja komputerów, zostało następnie przedstawione w dużym raporcie zorganizowanym przez Departament Obrony Stanów Zjednoczonych (DoD) pod koniec 1967 roku. Zasadniczo urzędnicy Departamentu Obrony zwrócili się do Willis Ware, aby poprowadził grupę zadaniową ekspertów z NSA, CIA , DoD, środowiska akademickiego i przemysłowego do formalnej oceny bezpieczeństwa systemów komputerowych z podziałem czasu. Opierając się na wielu artykułach przedstawionych podczas wiosennej konferencji Joint Computer Conference w 1967 r., grupa zadaniowa w dużej mierze potwierdziła zagrożenie dla bezpieczeństwa systemu, jakie stanowiła penetracja komputerów. Raport Ware'a był początkowo tajny, ale wielu czołowych ekspertów komputerowych w kraju szybko uznało je za ostateczny dokument na temat bezpieczeństwa komputerowego. Jeffrey R. Yost z Instytutu Charlesa Babbage'a niedawno opisał raport Ware'a jako „… zdecydowanie najważniejsze i najdokładniejsze badanie kwestii technicznych i operacyjnych dotyczących bezpiecznych systemów komputerowych w tamtych czasach”. W efekcie raport Ware potwierdził główne zagrożenie, jakie stwarza przenikanie komputerów do nowych systemów komputerowych z podziałem czasu online.

Aby lepiej zrozumieć słabości systemu, rząd federalny i jego kontrahenci wkrótce zaczęli organizować zespoły penetratorów, znane jako zespoły tygrysów , w celu wykorzystania penetracji komputera do testowania bezpieczeństwa systemu. Deborah Russell i GT Gangemi Sr. stwierdzili, że w latach 70. „...zespoły tygrysów po raz pierwszy pojawiły się na scenie komputerowej. wysiłek, aby odkryć, a ostatecznie załatać luki w zabezpieczeniach”.

Czołowy badacz historii bezpieczeństwa komputerowego, Donald MacKenzie, podobnie wskazuje, że „RAND przeprowadził pewne badania penetracyjne (eksperymenty z obchodzeniem kontroli bezpieczeństwa komputerowego) wczesnych systemów podziału czasu w imieniu rządu”. Jeffrey R. Yost z Charles Babbage Institute, we własnej pracy na temat historii bezpieczeństwa komputerowego, również przyznaje, że zarówno RAND Corporation, jak i SDC „zaangażowały się w jedne z pierwszych tak zwanych „badań penetracyjnych”, aby spróbować infiltrować systemy z podziałem czasu w celu przetestowania ich podatności”. W praktycznie wszystkich tych wczesnych badaniach zespoły tygrysów z powodzeniem włamały się do wszystkich docelowych systemów komputerowych, ponieważ systemy podziału czasu w tym kraju miały słabą ochronę.

Spośród wczesnych działań zespołu tygrysów, wysiłki RAND Corporation wykazały przydatność penetracji jako narzędzia do oceny bezpieczeństwa systemu. W tym czasie jeden z analityków RAND zauważył, że testy „…wykazały praktyczność penetracji systemu jako narzędzia do oceny skuteczności i adekwatności wdrożonych zabezpieczeń danych”. Ponadto wielu analityków RAND twierdziło, że wszystkie testy penetracyjne oferują szereg korzyści, które uzasadniają jego dalsze stosowanie. Jak zauważyli w jednym z artykułów, „penetrator wydaje się mieć diaboliczny stan umysłu w poszukiwaniu słabości i niekompletności systemu operacyjnego, co jest trudne do naśladowania”. Z tych i innych powodów wielu analityków RAND zaleciło dalsze badanie technik penetracyjnych pod kątem ich przydatności w ocenie bezpieczeństwa systemu.

Przypuszczalnie wiodącym ekspertem od penetracji komputerów w tych początkowych latach był James P. Anderson, który pracował z NSA, RAND i innymi agencjami rządowymi w celu zbadania bezpieczeństwa systemu. Na początku 1971 roku Siły Powietrzne Stanów Zjednoczonych zleciły prywatnej firmie Andersona zbadanie bezpieczeństwa systemu z podziałem czasu w Pentagonie. W swoim badaniu Anderson przedstawił kilka głównych czynników związanych z penetracją komputerów. Anderson opisał ogólną sekwencję ataków w krokach:

  1. Znajdź lukę, którą można wykorzystać.
  2. Zaplanuj atak wokół niego.
  3. Przetestuj atak.
  4. Chwytaj linię w użyciu.
  5. Przystąp do ataku.
  6. Wykorzystaj wpis do odzyskiwania informacji.

Z biegiem czasu opis ogólnych kroków penetracji komputerów przez Andersona pomógł wielu innym ekspertom ds. bezpieczeństwa, którzy polegali na tej technice, aby ocenić bezpieczeństwo systemu komputerowego z podziałem czasu.

W następnych latach penetracja komputerów jako narzędzie oceny bezpieczeństwa stała się bardziej wyrafinowana i wyrafinowana. Na początku lat 80. dziennikarz William Broad krótko podsumował trwające wysiłki zespołów tygrysów w celu oceny bezpieczeństwa systemu. Jak donosi Broad, sponsorowany przez Departament Obrony raport Willisa Ware'a „…pokazał, w jaki sposób szpiedzy mogą aktywnie penetrować komputery, kraść lub kopiować pliki elektroniczne i niszczyć urządzenia, które zwykle strzegą ściśle tajnych informacji. Badanie rozpoczęło się ponad dekadę cichej działalności elitarnych grup informatyków pracujących dla rządu, którzy próbowali włamać się do wrażliwych komputerów. Udało im się w każdej próbie.

Podczas gdy te różne badania mogły sugerować, że bezpieczeństwo komputerowe w Stanach Zjednoczonych pozostaje poważnym problemem, uczony Edward Hunt niedawno wypowiedział się szerzej na temat szeroko zakrojonych badań penetracji komputerów jako narzędzia bezpieczeństwa. Hunt sugeruje w niedawnym artykule na temat historii testów penetracyjnych, że establishment obronny ostatecznie „… stworzył wiele narzędzi wykorzystywanych we współczesnej cyberwojnie”, ponieważ dokładnie zdefiniował i zbadał wiele sposobów, w jakie osoby penetrujące komputery mogą włamywać się do atakowanych systemów. .

Narzędzia

Dostępna jest szeroka gama narzędzi oceny bezpieczeństwa, które pomagają w testach penetracyjnych, w tym bezpłatne, bezpłatne oprogramowanie i oprogramowanie komercyjne .

Wyspecjalizowane dystrybucje systemu operacyjnego

Kilka dystrybucji systemów operacyjnych jest nastawionych na testy penetracyjne. Takie dystrybucje zazwyczaj zawierają wstępnie zapakowany i wstępnie skonfigurowany zestaw narzędzi. Tester penetracyjny nie musi wyszukiwać poszczególnych narzędzi, co może zwiększać ryzyko komplikacji — takie jak błędy kompilacji, problemy z zależnościami i błędy konfiguracji. Ponadto nabywanie dodatkowych narzędzi może nie być praktyczne w kontekście testera.

Godne uwagi przykłady systemów operacyjnych do testów penetracyjnych obejmują:

Wiele innych wyspecjalizowanych systemów operacyjnych ułatwia testy penetracyjne — każdy mniej lub bardziej poświęcony określonej dziedzinie testów penetracyjnych.

Wiele dystrybucji Linuksa zawiera znane luki w zabezpieczeniach systemu operacyjnego i aplikacji i może zostać wdrożone jako cele, przeciwko którym można ćwiczyć. Takie systemy pomagają nowym specjalistom ds. bezpieczeństwa wypróbować najnowsze narzędzia bezpieczeństwa w środowisku laboratoryjnym. Przykłady obejmują Damn Vulnerable Linux (DVL), OWASP Web Testing Environment (WTW) i Metasploitable.

Ramy oprogramowania

Fazy ​​testów penetracyjnych

Proces testów penetracyjnych można uprościć do następujących pięciu faz:

  1. Rekonesans: czynność zbierania ważnych informacji o systemie docelowym. Te informacje można wykorzystać do lepszego ataku na cel. Na przykład wyszukiwarki typu open source mogą służyć do znajdowania danych, które można wykorzystać w ataku socjotechnicznym .
  2. Skanowanie: Wykorzystuje narzędzia techniczne, aby poszerzyć wiedzę atakującego o systemie. Na przykład, Nmap może być użyty do skanowania otwartych portów.
  3. Uzyskiwanie dostępu: Wykorzystując dane zebrane w fazie rozpoznania i skanowania, atakujący może wykorzystać ładunek do wykorzystania docelowego systemu. Na przykład Metasploit może służyć do automatyzacji ataków na znane luki w zabezpieczeniach.
  4. Utrzymanie dostępu: Utrzymanie dostępu wymaga podjęcia kroków związanych z możliwością trwałego przebywania w środowisku docelowym w celu zebrania jak największej ilości danych.
  5. Zakrywanie śladów: Atakujący musi usunąć wszelkie ślady włamania się do systemu ofiary, wszelkiego rodzaju zebrane dane, rejestrować zdarzenia, aby zachować anonimowość.

Gdy atakujący wykorzysta jedną lukę, może uzyskać dostęp do innych maszyn, więc proces się powtarza, tj. szuka nowych luk i próbuje je wykorzystać. Ten proces nazywa się obracaniem.

Luki

Legalne operacje, które pozwalają testerowi wykonać nieprawidłową operację, obejmują nieuniknione polecenia SQL, niezmienione zaszyfrowane hasła w projektach z widocznymi źródłami, relacje międzyludzkie oraz stare funkcje mieszające lub kryptograficzne. Pojedyncza usterka może nie wystarczyć, aby umożliwić krytycznie poważny exploit. Prawie zawsze wymagane jest wykorzystanie wielu znanych wad i kształtowanie ładunku w sposób, który wydaje się poprawną operacją. Metasploit udostępnia bibliotekę ruby ​​do typowych zadań i utrzymuje bazę danych znanych exploitów.

Podczas pracy z ograniczeniami budżetowymi i czasowymi fuzzing jest powszechną techniką, która wykrywa luki w zabezpieczeniach. Ma na celu uzyskanie nieobsłużonego błędu poprzez losowe dane wejściowe. Tester używa losowych danych wejściowych, aby uzyskać dostęp do rzadziej używanych ścieżek kodu. Dobrze wydeptane ścieżki kodu są zwykle wolne od błędów. Błędy są przydatne, ponieważ albo ujawniają więcej informacji, takich jak awarie serwera HTTP z pełnymi informacjami na temat śledzenia wstecznego, albo są bezpośrednio użyteczne, na przykład przepełnienia bufora .

Wyobraź sobie, że strona internetowa ma 100 pól do wprowadzania tekstu. Kilka z nich jest podatnych na wstrzykiwanie SQL w niektórych ciągach. Miejmy nadzieję, że przesyłanie losowych ciągów do tych pól na jakiś czas trafi w zbugowaną ścieżkę kodu. Błąd jest wyświetlany jako uszkodzona połowa strony HTML wyrenderowana z powodu błędu SQL. W takim przypadku tylko pola tekstowe są traktowane jako strumienie wejściowe. Jednak systemy oprogramowania mają wiele możliwych strumieni wejściowych, takich jak pliki cookie i dane sesji, przesyłany strumień plików, kanały RPC lub pamięć. W każdym z tych strumieni wejściowych mogą wystąpić błędy. Celem testu jest najpierw uzyskanie nieobsłużonego błędu, a następnie zrozumienie usterki na podstawie nieudanego przypadku testowego. Testerzy piszą zautomatyzowane narzędzie do testowania ich zrozumienia usterki, dopóki nie będzie poprawne. Po tym stanie się oczywiste, jak spakować ładunek, aby system docelowy uruchomił jego wykonanie. Jeśli to nie jest wykonalne, można mieć nadzieję, że kolejny błąd fuzzera przyniesie więcej owoców. Użycie fuzzera oszczędza czas, ponieważ nie sprawdza odpowiednich ścieżek kodu, gdy exploity są mało prawdopodobne.

Ładunek

Nielegalna operacja lub ładunek w terminologii Metasploit może obejmować funkcje rejestrowania naciśnięć klawiszy, robienia zrzutów ekranu, instalowania oprogramowania reklamowego , kradzieży danych uwierzytelniających, tworzenia backdoorów za pomocą szelkodu lub modyfikowania danych. Niektóre firmy utrzymują duże bazy danych znanych exploitów i dostarczają produkty, które automatycznie testują systemy docelowe pod kątem luk w zabezpieczeniach:

Standardowe rządowe usługi testów penetracyjnych

General Administration Services (GSA) jest standaryzowany na „test” penetracja usługę jako usługę wsparcia wstępnie weryfikowane, aby szybko rozwiązywać potencjalne luki i przeciwników przystanek przed ich wpływu amerykańskiego federalnego, rządów stanowych i lokalnych. Usługi te są powszechnie określane jako wysoce adaptacyjne usługi cyberbezpieczeństwa (HACS) i są wymienione w witrynie internetowej US GSA Advantage.

Wysiłek ten pozwolił zidentyfikować kluczowych dostawców usług, którzy zostali poddani przeglądowi technicznemu i zweryfikowani pod kątem świadczenia tych zaawansowanych usług penetracyjnych. Ta usługa GSA ma na celu usprawnienie szybkiego zamawiania i wdrażania tych usług, ograniczenie powielania kontraktów rządowych Stanów Zjednoczonych oraz bardziej terminową i wydajną ochronę i obsługę infrastruktury USA.

132-45A Testy penetracyjne to testy bezpieczeństwa, w których osoby oceniające usługi naśladują ataki w świecie rzeczywistym w celu zidentyfikowania metod obchodzenia funkcji zabezpieczeń aplikacji, systemu lub sieci. Usługi testów penetracyjnych HACS zazwyczaj strategicznie testują skuteczność prewencyjnych i detektywistycznych środków bezpieczeństwa stosowanych w organizacji w celu ochrony zasobów i danych. W ramach tej usługi certyfikowani hakerzy etyczni zazwyczaj przeprowadzają symulowany atak na system, systemy, aplikacje lub inny cel w środowisku, szukając słabych punktów bezpieczeństwa. Po przetestowaniu zazwyczaj dokumentują luki w zabezpieczeniach i określają, które zabezpieczenia są skuteczne, a które można pokonać lub wykorzystać.

W Wielkiej Brytanii usługi testów penetracyjnych są standaryzowane przez profesjonalne organy współpracujące z Narodowym Centrum Cyberbezpieczeństwa.

Wyniki testów penetracyjnych różnią się w zależności od stosowanych standardów i metodologii. Istnieje pięć standardów testów penetracyjnych: Open Source Security Testing Methodology Manual (OSSTMM), Open Web Application Security Project (OWASP), National Institute of Standards and Technology (NIST00), Information System Security Assessment Framework (ISSAF) oraz Penetration Testing Methodology and Normy (PTES).

Zobacz też

Ogólne odniesienia

  • Długi, Johnny (2011). Google Hacking dla testerów penetracyjnych , Elsevier
  • Ostateczny przewodnik po testach penetracyjnych

Bibliografia