Testy bezpieczeństwa aplikacji webowych

Testy penetracyjne aplikacji Web obejmą następujący zakres działań:

Etap 1 – Gromadzenie informacji

  • Uzyskanie dodatkowych informacji z wykorzystaniem technik google hacking
    • Identyfikacja wersji wykorzystywanego oprogramowania
    • Przegląd bazy podatności w celu weryfikacji istnienia podatności dla zidentyfikowanych wersji oprogramowania/bibliotek
    • Przegląd funkcji oraz zabezpieczeń aplikacji, w tym m.in.: weryfikacja poziomu zabezpieczeń kryptograficznych sesji klientów aplikacji (TLS), analiza metod uwierzytelniania użytkowników, identyfikacja metod walidacji danych wejściowych
    • Przegląd aplikacji w celu: identyfikacji architektury i logiki aplikacji (tzw. „spidering”), wstępnej weryfikacji walidacji danych wejściowych, analizy metod zarządzania sesjami użytkowników

Etap 2 – Testy bezpieczeństwa

  • Analiza logiki aplikacji (analiza utraty integralności poufności i dostępności przetwarzanych danych, rozliczalności działań użytkowników)
    • Testowanie efektywności walidacji wprowadzanych danych i kodowania danych wyjściowych (m.in. próby ataków „Cross Site Scripting”, „SQL Injection”, „LDAP Injection”, „XML Injection”, „XPATH Injection”, próby „directory traversal”, próby wywołania poleceń systemowych, próby przepełnienia bufora pamięci)
    • Analiza mechanizmów zarządzania sesjami użytkowników (m.in. identyfikacja schematu zarządzania sesją, weryfikacja sposobu przekazywania identyfikatorów sesji, manipulacja identyfikatorami sesji, analiza metod ochrony identyfikatorów sesji, weryfikacja konfiguracji czasu trwania sesji, ataki przejęcia sesji, weryfikacja dodatkowych mechanizmów ochronnych broniących przed atakami takimi jak „Cross-site Request Forgery”)
    • Weryfikacja mechanizmów uwierzytelniających (m.in. stosowanie domyślnych, łatwych do odgadnięcia haseł, próby siłowego/słownikowego łamania haseł, próby obejścia schematu uwierzytelniania, analiza bezpieczeństwa funkcji przypomnienia/resetu haseł, weryfikacja efektywności funkcji wylogowania z aplikacji)
    • Analiza mechanizmów kontroli dostępu (m.in. identyfikacja modelu kontroli dostępu, analiza skuteczności kontroli dostępu poprzez próby pionowej i poziomej eskalacji uprawnień tj. bezpośredni dostęp do obiektów, funkcji i adresów URL, próby listowania zawartości katalogów, weryfikację czy odpowiedzi serwera nie zawierają nadmiarowych danych)
    • Weryfikacja mechanizmów przetwarzania i przechowywania danych (m.in. analiza działania mechanizmów pamięci podręcznej przeglądarki, weryfikacja mechanizmów ochrony lokalnie zapisywanych danych, analiza metod przekazywania danych pomiędzy aplikacją i serwerem oraz dodatkowymi komponentami aplikacji np. aplet Java, wtyczki COM)
    • Analiza rozwiązań kryptograficznych (m.in. weryfikacja poprawności implementacji rozwiązań kryptograficznych)
    • Ataki typu odmowa usługi (m.in. analiza możliwości blokowania kont innych użytkowników, próby przepełnienia bufora pamięci, próby przekroczenia limitów zasobów dostępnych dla użytkowników serwisu)
    • Analiza mechanizmów obsługi błędów (m.in. weryfikacja czy komunikaty błędów nie ujawniają nadmiarowych informacji, weryfikacja czy wystąpienie błędu nie pozwala na eskalację uprawnień, próby manipulacji komunikatami błędów)
    • Weryfikacja konfiguracji protokołu HTTP (m.in. analiza stosowanych metod HTTP, analiza obecności nagłówków regulujących pracę mechanizmów powiązanych z bezpieczeństwem np. zapobieganie atakom Clickjacking, analiza implementacji HSTS, CSP, CORS)
    • Analiza implementacji protokołów SSL/TLS (ocena stosowanych zestawów szyfrów, analiza konfiguracji parametrów połączeń SSL/TLS, weryfikacja stosowanych certyfikatów, identyfikacja dodatkowych mechanizmów zabezpieczeń takich jak HTTP Strict Transport Security)
    • Metodyka testów bezpieczeństwa aplikacji internetowych opiera się na rekomendacjach organizacji OWASP oraz na innych opracowaniach w tym zakresie, w szczególności:
      • OWASP Testing Guide v4
      • OWASP Web Security Testing Cheat Sheet
      • OWASP ASVS

Usługi powiązane