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.