Testy bezpieczeństwa Web Services / Web API

W zakresie przeprowadzania testów bezpieczeństwa Web Services/API zostaną wykonane następujące zadania:

Etap 1 – Gromadzenie informacji

  • Identyfikacja typu i wersji oprogramowania i bibliotek
    • Przegląd bazy podatności
      w celu weryfikacji i identyfikacji podatności do wersji zastosowanego oprogramowania
    • Przegląd przesłanych zapytań i odpowiedzi serwera w celu identyfikacji potencjalnych podatności
    • Uzyskanie informacji z wykorzystaniem technik google hacking
    • Identyfikacja typu usług Web services (SOAP / RESTFul) i metod kodowania przesyłanych danych
    • Identyfikacja plików definicji Web Services np. WSDL, WADL, Swagger, itp.
    • Identyfikacja wykorzystywanych metod Web Services oraz ich parametrów

Etap 2 – Testy bezpieczeństwa usługi Web Service/API

W zależności od typu usług, testy mogą obejmować wykonanie poniższych testów:

  • Analiza logiki obsługi metod Web Services i kolejności wykonywania działań (w przypadku WS typu „stateful”)
    • Testowanie efektywności walidacji wprowadzanych danych i kodowania danych wyjściowych (m.in. ataki „SQL Injection”, „LDAP Injection”, „XML Injection”, „XPATH Injection”, próby „directory traversal”, próby wywołania poleceń systemowych, 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, ochrona i czas trwania sesji i identyfikatorów 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 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 metod WS i obiektów, próby listowania zawartości katalogów, weryfikację czy odpowiedzi serwera nie zawierają nadmiarowych danych)
    • Weryfikacja mechanizmów przetwarzania i przechowywania danych (w przypadku wykorzystania przeglądarki internetowej m.in. analiza działania mechanizmów pamięci podręcznej przeglądarki oraz serwerów pośredniczących, weryfikacja mechanizmów ochrony lokalnie zapisywanych danych, analiza metod przekazywania danych pomiędzy aplikacją i serwerem)
    • Analiza poprawności 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 WS)
    • 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. zastosowanie metod HTTP, analiza obecności nagłówków regulujących pracę mechanizmów powiązanych z bezpieczeństwem np. zapobieganie automatycznemu wykrywaniu treści, a w przypadku aplikacji przeglądarki internetowej dodatkowo 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
    • Przykładowe ataki przeprowadzane w trakcie prac: "Oversized XML Attack", "Reference Redirect", "XML Complexity Attack", "SOAP Parameter Tampering", "Web Serrvice Addressing Spoofing", "XML Encryption DOS", "XML External Entity", "XML Entity Expansion", "XML Entity Reference Attack", "XML Flooding", "XML Signature DOS", "Web Service Men in the Middle", "Schema Poisoning", "XML Rewriting", "XML Signature Exclusion", "WSDL Disclosure", "Chosen-Ciphertext Attacks", "Replay Attack”.
    • Metodyka testów bezpieczeństwa usług Web Services opiera się na rekomendacjach organizacji OWASP oraz na innych opracowaniach w tym zakresie, w szczególności:
      • OWASP Testing Guide v4
      • OWASP Web Service Security Testing Cheat Sheet
      • OWASP REST Assessment Cheat Sheet
      • OWASP ASVS
      • SIFT Web Services Security Testing Framework