Bezpieczeństwo w sieci
Testy
penetracyjne
Testy penetracyjne aplikacji / serwisów obejmują w szczególności:
- wstrzyknięcia kodu (ang. injections) - SQL/XML Injection, podatności umożliwiające nieautoryzowany dostęp do danych. Zaliczamy do nich błędy: SQL, OS shell, LDAP, XPath Injection. Błędy te powstają podczas przesyłania specjalnie spreparowanych danych do interpretera, jako części zapytania lub polecenia (prościej mówiąc: wartości traktowane są jak polecenia). Jeżeli dane te nie są w odpowiedni sposób filtrowane, osoba atakująca ma możliwość wywołania własnych poleceń/zapytań. Może to spowodować dostęp do poufnych informacji lub nieautoryzowanych działań w systemie.
- file include - nieautoryzowany dostęp (i odczyt) do plików systemowych,
- błędy typu Cross-Site Scripting (XSS) - umożliwiające wykonanie szeregu nieautoryzowanych akcji w aplikacji webowej, np.: podmiany zawartości strony po stronie klienta, wykonanie czynności jako inny użytkownik lub ataki typu phishing. Błędy tego typu powstają podczas próby wyświetlenia w przeglądarce internetowej danych pochodzących od użytkownika, bez ich wcześniejszej walidacji. Umożliwia to atakującemu, wykonanie skryptu na prawach ofiary. Efektem może być przechwycenie sesji zalogowanego użytkownika, podmiana zawartości serwisu lub przekierowanie użytkownika na stronę zawierającą inne szkodliwe skrypty lub oprogramowanie.
- ujawnienie informacji - najczęściej dotyczących systemu oraz stosowanych zabezpieczeń, co umożliwia przeprowadzenie dalszych ataków wymierzonych w aplikację lub infrastrukturę,
- podatności związane z zarządzaniem sesją - np. przechwycenie sesji i dostęp do serwisu jako inny użytkownik, itp.,
- testowanie mechanizmów uwierzytelniających,
- testowanie podatności SSL/TLS,
- testy eskalacyjne - dotyczące błędów w systemach uprawnień,
- nieaktualne oprogramowanie,
- błędy typu Cross Site Request Forgery (CSRF) – umożliwiające wykonanie szeregu nieautoryzowanych akcji w aplikacji web. Atakujący wabiąc ofiarę na swoją stronę, za pomocą umieszczanych na niej instrukcji, może wykonywać zapytania w serwisie do którego jest zalogowana ofiara. Atak ma na celu skłonić użytkownika zalogowanego do serwisu internetowego do uruchomienia odnośnika, który wykona w wybranym serwisie akcję, do której atakujący nie miałby dostępu (np. brak cookie).
- testowanie aplikacji pod kątem występowania błędów logicznych,
- niebezpieczne przekierowania,
- testowanie podatności HTTP Parameter Pollution.
Chcesz dowiedzieć się więcej? Skontaktuj się z nami
Podejście do testów aplikacji:
Nie polegamy wyłącznie na narzędziach automatycznych
Weryfikacja ręczna, specjalizowane, własne narzędzia
Dogłębne zrozumienie roli i działania testowanego system
Zrozumiały, dostosowany do klienta raport
Realistyczne i dostosowane rekomendacje
Bliska współpraca z Zespołem partnera
W ramach realizacji prac wykonane zostaną kontrolowane próby przełamania zabezpieczeń bez znajomości szczegółów budowy systemu (tzw. testy black-box) lub testy z dostępami otrzymanymi od Zlecającego (tzw. testy gray-box). Aplikacja zostanie przetestowana w oparciu o metodykę OWASP ASVS (Open Web Application Security Project), a w szczególności o klasyfikację OWASP Top 10, OWASP ASVS (Application Security Verification Standard zawierający najlepsze praktyki w zakresie testów bezpieczeństwa.
Zadaniem audytora w trakcie realizacji testów penetracyjnych serwisu będzie wykonywanie działań analogicznych, jakie wykonać może potencjalny intruz. Działania testowe wykonywane są w oparciu o specjalistyczne narzędzia i z wykorzystaniem technik hackerskich. Podczas testów wykorzystane zostaną zarówno ręczne, jak i automatyczne techniki testowania.
Obie wzajemnie się uzupełniają:
Narzędzia automatyczne – wykorzystanych zostanie kilka narzędzi do testów bezpieczeństwa m.in.:
Burp Proxy Professional – to zestaw wielu współpracujących narzędzi, wspierających wykonanie testów penetracyjnych aplikacji webowych. Z jednej strony posiada on wbudowane pewne automatyzmy usprawniające powtarzalne prace, z drugiej pozostawia dość dużą swobodę działania pentesterowi.
Całość składa się z następujących modułów:
- http proxy (umożliwiający przechwycenie komunikacji z przeglądarki internetowej czy innego oprogramowania komunikującego się z wykorzystaniem protokołu HTTP);
- repeater (umożliwiający ręczną modyfikację przechwyconych requestów HTTP lub tworzenie zupełnie nowych, dowolnych requestów HTTP);
- scanner (automatyczny skaner wykrywający podatności w aplikacjach webowych);
- intruder (http fuzzer, umożliwiający półautomatyczne testy penetracyjne);
- sequencer (analizujący losowość generowanych identyfikatorów sesji);
- decoder (umożliwiający konwersję między popularnymi kodowaniami - np. Base64, URL, HEX)
- spider ("klasyczny" spider http, umożliwiający w sposób zautomatyzowany zebranie informacji o zasobach wykorzystywanych przez badaną aplikację - podstrony / pliki styli / pliki javascript / itd)
- comparer (umożliwiający porównanie różnic pomiędzy zapytaniami lub odpowiedziami HTTP)
- SOAP UI,
- DirBuster - Narzędzie do testów aplikacji webowych, przeznaczone do wykrywania normalnie nieosiągalnych z poziomu nawigacji serwisu folderów i plików.
- Nmap - Narzędzie open source do eksploracji sieci i audytów bezpieczeństwa. Został zaprojektowany do szybkiego skanowania dużych sieci, ale również działa dobrze w stosunku do pojedynczych adresów. Nmap wykorzystuje niskopoziomowe pakiety IP - do wykrywania które adresy są dostępne w sieci, jakie udostępniają usługi (nazwa aplikacji i wersja), na jakich systemach operacyjnych pracują (wersja systemu), jakie typy systemów zaporowych (firewall) są wykorzystywane i dziesiątek innych cech.
- SQLmap - zautomatyzowany skaner podatności SQL Injection
- Metasploit - Narzędzie służące do testów penetracyjnych i łamania zabezpieczeń systemów teleinformatycznych
- Nessus Profeesional - Narzędzie, które zapewnia szybkie badanie zasobów, audytowanie konfiguracji, profilowanie celów, wykrywanie złośliwego oprogramowania, danych wrażliwych i wiele innych. Skanuje systemy operacyjne, urządzenia sieciowe, hipernadzorców, bazy danych, serwery webowe i wrażliwą infrastrukturę pod kątem podatności, zagrożeń i naruszeń zasad zgodności. Dzięki największej na świecie, ciągle uaktualnianej bibliotece podatności i testów konfiguracji oraz wsparciu przez zespół ekspertów ds. badania podatności, narzędzie to stanowi standard szybkości i precyzji w skanowaniu podatności
Chcesz dowiedzieć się więcej? Skontaktuj się z nami
Bezpieczeństwo aplikacji i serwerów webowych
Serwer webowy / serwer aplikacyjny – testy bezpieczeństwa blackbox Poszukiwanie podatności / problemów bezpieczeństwa :
- Analiza konfiguracji SSL (certyfikat, skonfigurowane algorytmy kryptograficzne)
- Analiza dostępności ewentualnego panelu zarządzania komponentem
- Próby użycia domyślnych / prostych par login/haseł do panelu zarządzania
- Analiza ujawnienia dokładnej wersji komponentu (nagłówki odpowiedzi / komunikaty błędów)
- Po udanym pozyskaniu wersji komponentu, próba zlokalizowania publicznie dostępnych podatności w tej wersji
- Analiza domyślnych aplikacji typu „example” lub „demo” (dostarczanych domyślnie z serwerem webowym / aplikacyjnym)
- Kilka siłowych prób wymuszania wyświetlenia błędów / wyjątków (np.: przesłanie nieprawidłowego adresu URL, wysłanie niepoprawnego requestu)
- Analiza domyślnej domeny skonfigurowanej na komponencie (np. poprzez odwołanie się do adresu IP)
- Analiza obsługi nietypowych metod HTTP (TRACE, DEBUG, PUT, DELETE)
Aplikacja webowa – testy bezpieczeństwa blackbox (web - http) Sposób realizacji:
- Testy ręczne i automatyczne
- Oparcie się na standardach:
- OWASP Top Ten / OWASP ASVS
- Ręczna weryfikacja każdej podatności
- Ręcznie przygotowany raport
- Wersja językowa raportu: PL lub EN
- Weryfikacja przez drugiego audytora
- Rekonesans aktywny i pasywny (w przypadku aplikacji dostępnych w Internecie)
- Próby lokalizacji aplikacji dostępnej pod innym adresem (np. aplikacja deweloperska w infrastrukturze dostawcy, publicznie dostępna aplikacja w wersji testowej)
- Próby lokalizacji ukrytych katalogów i plików
- Próby wywołania błędów / wyjątków w aplikacji
- Poszukiwanie innych domen dostępnych na tym samym adresie IP co domena bazowa
- Poszukiwanie wycieków danych (np. technika Google Hacking, analiza pliku robots.txt).
- Poszukiwanie podatności
- Podatności klasy injection (np. SQL injection, LDAP injection, XPATH injection, NoSQL injection).
- Podatność XXE (użycie zewnętrznych encji XML)
- Podatność XSS (Cross Site Scripting) – błędy typu reflected oraz stored.
- Analiza problemów z uwierzytelnianiem i autoryzacją (np. próby dostępu do zasobów bez uwierzytelnienia, próby dostępu do zasobów administracyjnych przez zwykłego użytkownika, próby przełamania ekranów logowania – w tym próby brute force danych dostępowych). Możliwości otrzymania nieautoryzowanego dostępu na poziomie systemu operacyjnego i uzyskanie w ten sposób dostępu do źródeł aplikacji, bazy danych, innych poufnych informacji.
- Próby realizacji aplikacyjnych ataków typu DoS (po wcześniejszym uzgodnieniu)
- Analiza błędów logicznych
- Próby wykrycia innych, znanych podatności, np.: Path Traversal, Open Redirection, Cross Site Request Forgery, Server Side Request Forgery, Server Side Template Injection.
- Detekcja ogólnie znanego oprogramowania (aplikacje, biblioteki, systemy wspomagające).
- Po wykryciu nieaktualnych wersji, próby lokalizacji znanych, istotnych podatności w kilku wybranych źródłach
API – testy bezpieczeństwa blackbox
Sposób realizacji:
Chcesz dowiedzieć się więcej? Skontaktuj się z nami
API – testy bezpieczeństwa blackbox
Poszukiwanie podatności:
- Analiza dostępnych metod HTTP
- Próby obejść restrykcji nałożonych na metody HTTP (np. wykorzystanie nagłówka X-HTTPMethod- Override)
- Weryfikacja akceptowanych formatów wejściowych (JSON/XML/YAML/inne)
- Próby wykrycia w przekazywanych parametrach podatności charakterystycznych dla rozwiązań webowych (w szczególności: Server Side Request Forgery, problemy z uwierzytelnianiem i autoryzacją, SQL injection, OS command execution)
- Próba wykrycia podatnych bibliotek I konkretnych, znanych publicznie podatności w tych bibliotekach (na przykład: Jackson Remote Code Execution, Apache Struts REST plugin Remote Code Execution, Node-jose Library JSON Web Tokens Re-sign Vulnerability)
- Analiza bezpieczeństwa JWT (JSON Web Token; jeśli mechanizm jest używany) – próby ominięcia weryfikacji podpisu tokena, analiza ewentualnych wycieków danych w tokenach, weryfikacja sprawdzenia kluczowych deklaracji (claims)
- Analiza wykorzystania kluczy API (jeśli są używane) – analiza ewentualnej struktury klucza, bezpieczeństwo tworzenia i przekazywania klucza
- Analiza nałożonego ograniczenia na ilość requestów do API (rate limit)
Urządzenie sieciowe – testy infrastruktóry
Sposób realizacji:
- Testy ręczne i automatyczne
- Próby ominięcia uwierzytelnienia do usług działających na urządzeniu
- Ręczna analiza false positives wskazanych przez skaner podatności
- Podstawowe testy ew. usług webowych (np. panelu zarządczego urządzenia)
Urządzenie sieciowe – testy infrastruktury
Poszukiwanie podatności / problemów bezpieczeństwa
- Skanowanie portów TCP / UDP (kilka typów – prostych oraz zaawansowanych) – wykorzystanie nmap.
- Tuning parametrów skanowania, w przypadku wykrycia agresywnego blokowania przez firewall.
- Wykorzystanie wybranych skryptów nmap NSE w celu realizacji enumeracji, wykrycia możliwych wycieków danych, czy wskazania podatności.
- Próba detekcji typu oraz wersji usług sieciowych działających w systemie.
- Po udanej detekcji wersji oprogramowania systemowego / usług – próba lokalizacji znanych podatności w danych wersjach oprogramowania.
- Skanowanie podatności z wykorzystaniem komercyjnej wersji oprogramowania Nessus Vulnerability Scanner (ponad 90.000 pluginów atakujących).
- Ataki typu brute force na uwierzytelnienie do popularnych usług działających na urządzeniu (np. ssh / telnet / snmp / ftp).
- W przypadku wykrycia serwerów aplikacyjnych/webowych – kilka podstawowych prób ataku: próby otrzymania dostępu na system operacyjny / ominięcie uwierzytelnienia / próba dostępu do poufnych zasobów.
- Test obejmuje skanowanie dowolnego urządzenia sieciowego (np.: serwer, router, firewall, punkt dostępowy sieci bezprzewodowej).
Stosowane podczas audytu metodologie
W trakcie prac audytowych, stosujemy w wybranym zakresie takie wytyczne jak:
- OWASP TOP 10 (Open Web Application Security Project TOP 10 vulnerabilities)
- W zakresie: bezpieczeństwa aplikacji webowych
- W zakresie bezpieczeństwa aplikacji mobilnych: Top 10 Mobile Risks - Final List 2014
- OWASP ASVS (Application Security Verification Standard Project)
- W zakresie: bezpieczeństwa aplikacji webowych (testy blackbox)
- W zakresie: ogólnego prowadzenia prac audytowych
- Wybrane rekomendacje CISCO systems – w zakresie projektowania bezpiecznej architektury sieci – w tym elementy CISCO SAFE