Bezpieczne? Naprawdę?
Zapewnienie bezpieczeństwa systemów IT musi być realizowane jako proces ciągły, obejmujący w szczególności okresowe kontrolowanie efektywności systemów zabezpieczających. Nawet najlepsze rozwiązania organizacyjne i techniczne w miarę upływu czasu mogą okazać się niewystarczające. Regularnie wykrywane i ujawniane podatności w najbardziej kluczowych elementach infrastruktury (tj. Heartbleed, Shellshock i wiele innych) potrafią skompromitować nawet te rozwiązania, które zwyczajowo uznawane były za niemal absolutnie bezpieczne i traktowane jako fundament, na którym oparta jest koncepcja zachowania poufności danych bądź kontroli uprawnień użytkowników. „Fabrycznie dziurawe” są rozwiązania SSL, IPsec, SSH, systemy operacyjne i przeglądarki internetowe w setkach milionów instalacji na świecie.
O skali problemu najlepiej świadczy fakt, że w samej tylko bazie CVE (Common Vulnerabilities and Exposures), zawierającej ujawnione podatności przede wszystkim w produktach największych światowych dostawców rozwiązań IT, każdego dnia przybywa średnio kilkanaście nowych zagrożeń, a całkowita ich liczba przekroczyła już 76 tys. Znaczna część z nich jest bardzo łatwa do wykorzystania dzięki możliwym do znalezienia w Internecie instrukcjom lub nawet gotowym aplikacjom. W ten sposób w kilka minut „hakerem” może zostać zupełnie przypadkowa osoba, a jego celem – każdy system z dostępem do Internetu.
Postępująca złożoność architektury systemów IT dodatkowo komplikuje ich poprawne wdrożenie, integrację i późniejszą eksploatację. W ten sposób błędy samego oprogramowania są dodatkowo potęgowane przez błędy konfiguracyjne.
Przyjacielski atak na zamówienie
Obrona przed zagrożeniami tego typu to wyścig z czasem. Jednak dla wielu organizacji samo śledzenie i właściwe reagowanie na zidentyfikowane i upublicznione podatności stanowi duże wyzwanie. Wymaga to bowiem systematycznego, istotnego zaangażowania czasowego ze strony personelu IT oraz szerokiej, eksperckiej wiedzy, pozwalającej przeanalizować problem i wdrożyć odpowiednie środki zaradcze.
W tej sytuacji wsparciem są testy penetracyjne przeprowadzane przez doświadczonych konsultantów bezpieczeństwa IT, przy wykorzystaniu dedykowanych aplikacji skanujących. W odróżnieniu od klasycznych przeglądów, audytów czy teoretycznej oceny bezpieczeństwa, pentesty mają na celu wykrycie luk, które mogą występować w środowisku IT nawet pomimo wdrożenia systemów zabezpieczeń i ich konfiguracji zgodnej z dobrymi praktykami.
Test penetracyjny może ujawnić m.in.:
- podatności w stosowanym oprogramowaniu systemów lub urządzeń sieciowych,
- niepoprawne (np. odbiegające od konfiguracji) działanie elementów infrastruktury,
- możliwość uzyskania nieautoryzowanego dostępu poprzez eskalację uprawnień,
- sposoby ominięcia zabezpieczeń,
- niezaktualizowane systemy operacyjne, bazy danych i aplikacje,
- błędy w aplikacjach webowych (m.in. XSS, CSRF/XSRF, SQL injection),
- możliwość nieautoryzowanego podłączenia do sieci WiFi,
- zbyt słabe algorytmy kryptograficzne,
- uzyskanie dostępu do kont użytkowników poprzez ataki brute-force (w tym stosowanie domyślnych haseł),
- poziom odporności systemów na ataki DoS,
- inne luki (zależne od specyfiki testowanego środowiska).
W celu uzyskania najwyższej możliwej wiarygodności testu penetracyjnego należy założyć, że podczas jego przeprowadzania może nastąpić niedostępność testowanych systemów.
Scenariusz pentestów
Podstawą do przeprowadzenia testów jest zgromadzenie informacji na temat weryfikowanego środowiska. Dużą bazę wiedzy stanowią publicznie dostępne dane (firmowy serwis WWW, serwer pocztowy, baza adresów IP w RIPE NCC, wpisy w DNS itp.), które pozwalają sprofilować atak poprzez wstępne rozpoznanie stosowanych w organizacji technologii (informacje o przetargach na dostawy sprzętu i oprogramowania, sygnatury serwerów udostępnionych w Internecie i in.), czy pozyskanie nazwisk pracowników (potencjalne loginy do systemów). Zdobyte w ten sposób dane pozwalają na przeprowadzenie testów typu „black box”, w których pentesterzy nie otrzymują z badanej organizacji żadnych dodatkowych informacji o jej systemach IT. Ten typ testów najlepiej odzwierciedla możliwość przeprowadzenia rzeczywistego ataku.
Dla potrzeb symulacji stosuje się także dwa inne typy testów – „gray box” oraz „white box”, w których pentesterzy otrzymują przed przystąpieniem do weryfikacji odpowiednio niektóre bądź wszystkie informacje dotyczące testowanego obiektu (np. topologię sieci, dane dotyczące wersji systemów, konfigurację firewalla itp.). Dzięki tym informacjom możliwe jest przeprowadzenie dokładniej przygotowanego ataku – potencjalnie bardziej destrukcyjnego lub ujawniającego więcej luk.
Zebrane lub otrzymane informacje, po przeprowadzeniu analizy, są wykorzystywane do wstępnego przeskanowania sieci oraz późniejszych szczegółowych ataków na poszczególne elementy środowiska IT. Zależnie od uzgodnionego zakresu, testy prowadzone są z Internetu i/lub z sieci lokalnej (symulując zagrożenia wewnętrzne, np. rozprzestrzenienie się malware’u bądź przełamanie zabezpieczeń sieci bezprzewodowej).
Zależnie od wielkości środowiska oraz jego złożoności, testy penetracyjne trwają zwykle od kilku do kilkudziesięciu dni. Stosownie do preferencji organizacji, testy mogą być jednocześnie okazją do sprawdzenia procedur detekcji włamań i analizy powłamaniowej (ustalenie przez dział IT „zniszczeń” dokonanych przez pentesterów i porównanie z raportem).
Raport stanowiący podsumowanie testów penetracyjnych opisuje podjęte działania i uzyskane efekty (zdobyte informacje, uzyskane dostępy itp.). W przypadku wykrycia luk w bezpieczeństwie podawany jest sposób ich usunięcia, wraz z klasyfikacją ryzyka wykorzystania podatności i jej szkodliwości. Dodatkowo, po wyeliminowaniu zagrożeń, przeprowadzane są powtórne testy.
Pentesty w BCC
BCC (aktualnie All for One Poland) realizuje usługi związanie z dziedziną szeroko pojętego bezpieczeństwa IT, w tym testy penetracyjne. Nasz zespół certyfikowanych konsultantów ds. zabezpieczeń jest w stanie przyjąć rolę grupy hakerów (pentesterów) i sprawdzić zabezpieczenia firmy, przeprowadzając pentesty według zakresu i scenariusza uzgodnionego z klientem. Wykonujemy również audyty konfiguracji pod kątem ustawień bezpieczeństwa, hardeningu, dobrych praktyk i innych wytycznych oraz metodologii.
Pracujemy według własnej metodologii przeprowadzania testów penetracyjnych oraz audytów konfiguracji bezpieczeństwa, opartej na:
- doświadczeniach BCC i kilkudziesięciu projektach z zakresu bezpieczeństwa IT,
- technikach przygotowanych przez renomowane organizacje zajmujące się bezpieczeństwem systemów IT (m.in. OSSTMM, EC-Council, OWASP,COBIT).