Testy bezpieczeństwa

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

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

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

TESTY EFEKTYWNOŚCI MECHANIZMÓW ANTYMALWARE

Działanie 1 – ocena jakości rozwiązań poprzez realizację scenariuszy wykorzystujących pliki nieznane wcześniej testowanemu rozwiązaniu

Prace te mają na celu ocenę jakości rozwiązań w zakresie identyfikacji i zablokowania ataku, jak również ograniczenia ich skutków i identyfikacji mechanizmów odzyskiwania sprawności działania atakowanego systemu.
Zakładamy wykorzystanie infrastruktury informatycznej do przesłania, zapisania oraz uruchomienia plików przygotowanych na potrzeby testów, nieznanych testowanemu rozwiązaniu, mających charakterystykę złośliwego oprogramowania a jednocześnie niebędących złośliwym oprogramowaniem, dalej zwanymi „plikami testowymi”.

W ramach Działania 1, zrealizowane zostaną scenariusze ataków, m.in.

  • pobierania i uruchamiania plików z serwerów znajdujących się w Internecie,
  • wykonywania dużej liczby operacji na plikach w krótkim czasie (w tym kryptograficznych),Przed wysłaniem wykonane zostaną między innymi następujące czynności mające na celu ukrycie plików testowych i realizowanych działań:
  • umieszczenie ich w innych plikach uznawanych za bezpieczne (np. dokumenty pakietu Office, pliki PDF, plik archiwum),
  • użycie zmienionych i/lub niestandardowych rozszerzeń,
  • zaszyfrowanie ich zawartości.

Wskazane scenariusze ataków oraz metody ukrycia plików testowych i realizowanych działań, są kluczowe dla pomyślnego zainfekowania infrastruktury informatycznej oprogramowaniem typu ransomware.
W celu przesłania plików testowych, zdefiniowane zostały poniższe przykłady scenariuszy ataków, które zostaną doprecyzowane i uzupełnione o wyniki przeglądu architektury mechanizmów antymalware:

  • próby załączenia pliku jako załącznik poczty e-mail,
  • próby wykorzystania komunikatorów sieciowych, używanych przez pracowników,
  • próby wykorzystania systemu kontroli wersji oprogramowania, używanego przez programistów,
  • próby zapisania pliku na zasobie sieciowym, który jest dostępny na atakowanym urządzeniu,
  • próby wykorzystania narzędzi dostępnych dla pracowników (np. stworzonej strony SharePoint w intranecie, lub mobilnych wersji aplikacji umożliwiających przesyłanie plików),
  • próby pobrania i zapisania plików z zewnętrznego serwera (np. WWW z wykorzystaniem protokołów HTTP i HTTPS, FTP, SFTP),
  • próby wykorzystania zewnętrznego nośnika danych.

Dla wszystkich realizowanych scenariuszy testów, odnotowane zostaną ich dokładne daty i czas rozpoczęcia i zakończenia.

Działanie 2 – ocena jakości rozwiązań poprzez realizację scenariuszy wykorzystujących pliki znane testowanemu rozwiązaniu

W ramach etapu 2, zdefiniowane zostaną cechy pliku testowego (np. wartości skrótu SHA-256, adresy IP serwerów z którymi się komunikuje), które następnie zostaną zdefiniowane w badanym rozwiązaniu antymalware jako znane złośliwe oprogramowanie (Indicator of compromise, IoC). Zdefiniowany w ten sposób plik testowy, pozbawiony zostanie innych charakterystyk złośliwego oprogramowania, niezdefiniowanych w tym etapie prac jako IoC.

W następnym kroku, powtórzone zostaną czynności mające na celu ukrycie plików testowych, ich rozszerzeń i realizowanych działań, oraz próby ich przesłania i uruchomienia.

Działania te mają na celu ocenę jakości rozwiązań w zakresie identyfikacji i zablokowania ataku, jak również ograniczenia ich skutków i identyfikacji mechanizmów odzyskiwania sprawności działania atakowanego systemu, przy użyciu plików znanych testowanemu rozwiązaniu, a jednocześnie niebędących złośliwym oprogramowaniem. Dla wszystkich realizowanych scenariuszy testów, odnotowane zostaną ich dokładne daty i czas rozpoczęcia i zakończenia.

Działanie 3 – ocena jakości rozwiązań poprzez symulację ataków sieciowych

Zostanie wykonana symulująca znanych ataków sieciowych, m.in. poprzez:

  • identyfikację udostępnionych usług poprzez skanowanie portów TCP/UDP wraz z próbą uzyskania informacji o zainstalowanych wersjach oprogramowania wykorzystując techniki fingerprinting oraz banner grabbing,
  • skanowanie udostępnionych usług w celu identyfikacji znanych podatności z wykorzystaniem automatycznych narzędzi i technik manualnych.

Podczas naszych prac będziemy wykorzystywali wiodące komercyjne i niekomercyjne narzędzia do analizy bezpieczeństwa środowiska informatycznego.

Działania te mają na celu ocenę jakości rozwiązań w zakresie identyfikacji i zablokowania ataku, jak również ograniczenia ich skutków i identyfikacji mechanizmów odzyskiwania sprawności działania atakowanego systemu, przy użyciu metodyk symulujących działania cyberprzestępców i wykorzystywanych przy testach penetracyjnych, a jednocześnie niebędącego nieautoryzowanym atakiem na infrastrukturę informatyczną Banku. Dla wszystkich realizowanych scenariuszy testów, odnotowane zostaną ich dokładne daty i czas rozpoczęcia i zakończenia.

Działanie 4 – ocena jakości rozwiązań poprzez analizę interfejsów monitorowania i alarmowania testowanego rozwiązania

W ramach etapu 4, przeprowadzona zostanie analiza efektywności mechanizmów monitorowania i alarmowania o zidentyfikowanych zagrożeniach testowanego rozwiązania, poprzez skorelowanie daty i czasu zrealizowanych scenariuszy testowych z interfejsami wyświetlającymi listę zidentyfikowanych ataków badanego rozwiązania antymalware.
W następnym kroku, przeprowadzimy analizę zakresu zidentyfikowanych przez rozwiązanie antymalware ataków i podjętych działań alarmowych (np. wysłanie wiadomości e-mail do pracowników), oraz zidentyfikujemy potencjalne działania które nie zostały wykryte jako atak.
Działania te mają na celu ocenę jakości rozwiązań w zakresie identyfikacji ataku i skutecznego dostarczenia informacji o nim pracownikom.

Działanie 5 – ocena jakości rozwiązań poprzez identyfikację programowych i/lub sprzętowych mechanizmów ochrony, archiwizacji i odzyskiwania danych

W ramach etapu 5, zidentyfikujemy programowe i/lub sprzętowe mechanizmy ochrony, archiwizacji i odzyskiwania danych, mających na celu odzyskanie sprawności działania zaatakowanego systemu informatycznego. Następnie, przeprowadzimy kontrolowany test:

  • modyfikacji i/lub zniszczenia danych,
  • odzyskiwania ww. danych.

Działania te mają na celu ocenę jakości rozwiązań w zakresie odzyskiwania sprawności działania systemu w przypadku przeprowadzenia przez atakujących skutecznego ataku, w wyniku którego zostaną zmodyfikowane i/lub zniszczone dane. Ponadto, przeprowadzimy analizę konfiguracji zidentyfikowanych rozwiązań, zgodnie z zakresem zaprezentowanym na dalszych stronach oferty.
Testy efektywności mechanizmów antymalware będą realizowane na przykładowej stacji roboczej oraz serwerze z skonfigurowanym rozwiązaniem antymalware w pełnym zakresie ochrony (np. skrzynka poczty e-mail, lokalny system antywirusowy, ochrona firewall).
Prace będą realizowane z wykorzystaniem plików testowych, oraz wiodących komercyjnych i niekomercyjnych narzędzi do analizy bezpieczeństwa środowiska informatycznego. Przygotowane scenariusze testów zostaną z Państwem potwierdzone przed rozpoczęciem prac w tym obszarze, jak również dołożymy wszelkich starań, aby ograniczyć ryzyko nieprzewidzianych skutków naszych testów.
Biorąc jednak pod uwagę, że testowane będzie rozwiązanie antymalware, rekomendujemy zapewnienie wykonania kopii zapasowej testowanego rozwiązania i przekazanych do testów urządzeń przed rozpoczęciem prac.