• Nie Znaleziono Wyników

Automatyczne skanery podatności aplikacji internetowych

N/A
N/A
Protected

Academic year: 2021

Share "Automatyczne skanery podatności aplikacji internetowych"

Copied!
22
0
0

Pełen tekst

(1)

Automatyczne skanery podatności aplikacji

internetowych

Paulina TURLEWICZ Instytut Teleinformatyki i Automatyki WAT

ul. Gen. S. Kaliskiego 2, 00-908 Warszawa paulina.turlewicz@gmail.com

STRESZCZENIE: W artykule przedstawiono narzędzia, zarówno komercyjne jak i darmowe, przydatne w utrzymywaniu wymaganego poziomu zabezpieczenia informacji – automatyczne skanery podatności aplikacji internetowych. W załączniku zamieszczono zmodyfikowaną listę Web Application Security Scanner Evaluation Criteria, opracowaną przez organizację Web Application Security Consortium (WASC).

SŁOWA KLUCZOWE: skanery podatności aplikacji internetowych, kryteria WASC, ACTA.

1. Wstęp

Wydarzenia, jakie miały miejsce w końcu stycznia bieżącego roku zwróciły uwagę opinii publicznej na problem bezpieczeństwa informacji, a przede wszystkim – na problem braku wystarczających zabezpieczeń, aby uchronić przed atakami aplikacje i strony internetowe najważniejszych instytucji rządowych w Polsce. W ramach protestów przeciwko podpisaniu (a po jego podpisaniu – również przeciwko ratyfikacji) międzynarodowego porozumienia ACTA zaatakowane zostały strony internetowe najważniejszych instytucji państwowych i wojskowych1, między innymi: sejmu, policji, premiera RP,

Ministerstwa Obrony Narodowej, Agencji Bezpieczeństwa Wewnętrznego,

1 Na podstawie wiadomości zamieszczonych pod adresami:

http://wyborcza.pl/1,75478,11014663,Weekendowy_zamach_na_strony_rzadowe.html http://www.rp.pl/artykul/796028,796283-Anonymous-poszedl-na-wojne-z-Polska.html, dostęp 21.02.2012

(2)

Biura Ochrony Rządu. Większość przeprowadzonych ataków miała charakter odmowy dostępu do usługi (DoS), jednak stwierdzono również włamania na strony internetowe (uzyskanie nieuprawnionego dostępu, podmiany zawartości stron) oraz groźby ujawnienia baz danych zawierających m. in. nazwy użytkownika i hasła skrzynek poczty elektronicznej pracowników administracji państwowej.

Ataków tych można było chociaż częściowo uniknąć, gdyby aplikacje internetowe i serwery, na których się one znajdowały oraz zawarte tam bazy danych i oprogramowanie zostały dobrze zabezpieczone, a korzystający z nich urzędnicy – przeszkoleni, zgodnie z uznanym praktykami dotyczącymi bezpieczeństwa informacji.

Jednym z typów narzędzi, które mogą być zastosowane do wykrywania podatności na ataki na zasób wymieniony w poprzednim akapicie, są automatyczne skanery podatności aplikacji internetowych, opisane w dalszej części tego artykułu.

2. Koncepcja działania automatycznych skanerów podatności aplikacji internetowych

Podatnością aplikacji internetowej nazywamy luki lub błędy występujące w tej aplikacji, które mogą być wykorzystane do spowodowania szkód w systemie informatycznym lub działalności użytkownika [1].

Podatności mogą zostać wykryte przez testera (lub wykryte

i wykorzystane przez atakującego) zarówno w sposób ręczny

jak i automatyczny. Istnieje wiele narzędzi skupiających się na pojedynczych podatnościach aplikacji lub ich grupach. Umożliwiają one działanie częściowo lub całkowicie automatyczne a także automatyczne wykorzystywanie wykrytych podatności zgodnie z wolą testera.

Najważniejszą cechą odróżniającą automatyczne skanery podatności aplikacji internetowych od innych narzędzi tego typu (tj. na przykład takich, które umożliwiają ręczne badanie i wykorzystywanie pojedynczych podatności aplikacji, serwerów proxy czy fuzzerów) jest możliwość przetestowania dużej liczby funkcji w relatywnie krótkim czasie. Oprócz tego, w przypadku aplikacji typowych (o działaniu opartym o formularze), narzędzia te dają możliwość zidentyfikowania wielu różnego rodzaju istotnych podatności [3] oraz automatyzują wiele działań takich jak crawling2, odkrywanie zawartości czy skanowanie pod kątem znanych podatności. Po przeprowadzeniu mapowania

2

Crawling: „automatyczne zebranie informacji o zasobach aplikacji webowej

poprzez wyszukiwanie adresów URL w kodzie HTML oraz zapisywanie plików na które wskazują” [2].

(3)

zawartości aplikacji (co pozwala na znalezienie wszystkich możliwych „wejść” do aplikacji i jej zawartości dostępnej tylko dla określonych grup użytkowników, formularzy, stron logowania itp.), skaner przeprowadza jej badania pod kątem znanych podatności, poddając ją zestawowi testów zdefiniowanych w jego konfiguracji. Ponieważ aplikacje internetowe komunikują się z przeglądarką internetową użytkownika za pomocą wywołań GET i POST protokołów HTTP i HTTPS, skaner przeprowadza testy dla każdego parametru w takim wywołaniu dla każdego zapytania przesyłanego między nim a aplikacją. Następnie analizowane są odpowiedzi aplikacji pod kątem sygnatur znanych podatności. Sygnatury te są publikowane przez

międzynarodowe organizacje zajmujące się bezpieczeństwem

teleinformatycznym w postaci „listy znanych podatności” (np. Common

Weakness Enumeration). Po przeprowadzeniu wszystkich testów skaner

generuje raport opisujący każdą z wykrytych podatności. Raport taki zazwyczaj zawiera konkretne przykłady zapytań i odpowiedzi aplikacji dla każdej wykrytej podatności, dzięki czemu można ręcznie sprawdzić i potwierdzić występowanie błędu.

3. Dyskusja pożądanych cech opisywanych narzędzi oraz sposób ich oceny

W pracy [4] szukano najlepszego spośród wybranych skanerów podatności aplikacji internetowych spełniających wymagania CAG v.2.3. w zakresie Critical Control 73. Cechami pożądanymi narzędzi były między innymi: wysoka wykrywalność podatności faktycznie występujących w aplikacji, wygoda korzystania z narzędzia oraz najlepsze możliwości w zakresie konfiguracji uwzględniające: uwierzytelnianie, zarządzanie sesją, sterowanie, konfigurację crawlingu, zakres testowania oraz raportowanie.

Cechy narzędzi, na jakie zwrócono szczególną uwagę przy opracowywaniu ocen i porównaniu, mogą się oczywiście różnić w zależności od celu, w jakim taką ocenę się tworzy. W przypadku pracy [4], gdzie opisane darmowe narzędzia, które mogłyby być wykorzystane przez polskie organizacje, skupiono się m. in. na: dostępności polskiej wersji językowej w interfejsie graficznym, łatwości obsługi narzędzia,

3

CAG – Consensus Audit Guidelines – dokument zawierający 20 przedsięwzięć pozwalających według jego autorów na szybkie zabezpieczenie systemu i sieci komputerowej organizacji przed cyberatakami; dokument, obecnie w wersji 3.1. dostępny jest na stronie instytutu SANS pod adresem: http://www.sans.org/critical-security-controls/ (dostęp 20.01.2012)

Critical Control 7 – punkt dokumentu CAG v.2.3. dotyczący bezpieczeństwa aplikacji, w tym aplikacji internetowych;

(4)

rozpowszechnianiu na licencji pozwalającej na darmowe wykorzystanie

komercyjne. Poza wymienionymi ograniczeniami, wynikającymi z rodzaju

podmiotu je stosującego, wiele z pozostałych analizowanych cech narzędzia miało charakter uniwersalny. W tym zakresie wykorzystano utworzoną przez organizację Web Application Security Consortium (WASC) listę Web Application Security Scanner Evaluation Criteria [5].

Lista Web Application Security Scanner Evaluation Criteria (WASSEC) została utworzona w 2009 roku i – jak można przeczytać w

materiałach OWASP4 – wypełnia ona lukę powstałą w wyniku braku

jednoznacznych wymagań co do działania automatycznych skanerów bezpieczeństwa aplikacji internetowych. Każde z wymagań jest opisane, wiele z nich uzupełniają przykłady ich zastosowań. Lista ta jest oczywiście jedynie propozycją, utworzoną głównie z myślą o twórcach narzędzi tego typu. Nie ma w niej zawartych propozycji ocen ani wag dla poszczególnych kryteriów. Pod względem oceny narzędzi oraz dyskusji ich pożądanych cech jest jednak o tyle istotna, że przedstawia wszystkie możliwe aspekty działania i konfiguracji takich narzędzi – od obsługiwanych protokołów transportowych, wsparcia dla proxy, przez różne typy i metody uwierzytelniania, zarządzania sesją, możliwości konfiguracji crawlingu i parsowania, konfiguracji i zakresu testowania, sterowania skanowaniem i narzędziem aż do szczegółowych wymagań dotyczących tworzenia raportów i wsparcia ze strony producenta.

Szablon listy cech narzędzi (zmodyfikowana lista WASC), opracowanej na potrzeby pracy [4], został dołączony jako Załącznik 1 niniejszego artykułu. W szablonie tym, do listy kryteriów oceny narzędzi przyporządkowane zostały wartości wyrażone w skali procentowej. W ten sposób sumując oceny (w przypadku występowania danej cechy w narzędziu) można było otrzymać wartość będącą oceną możliwości konfiguracji takiego narzędzia (wartości sumowały się do 100%). Następnie, po ustaleniu oceny wykrycia istniejących podatności, również sumującej się do 100% i obliczeniu średniej ważonej dla obu tych wartości z odpowiednio przyjętymi wagami (w opisywanej pracy były to 0,6 dla oceny konfiguracji oraz 0,4 dla oceny wykrycia istniejących podatności) można było obliczyć ocenę wypadkową dla takiego narzędzia. Ocena ta stanowi podstawę porównania z innymi narzędziami ocenionymi w ten sam sposób.

4

Materiały do prezentacji organizacji OWASP na temat WASSEC dostępne na stronie internetowej

https://www.owasp.org/index.php/Web_Application_Security_Scanner_Evaluation_Cr iteria (dostęp 01.03.2012).

(5)

4. Opis wybranych narzędzi

W tym punkcie opisano sześć automatycznych skanerów podatności aplikacji internetowych: Burp Suite Pro, Core Impact Pro, Metasploit Pro, W3af, Skipfish oraz Websecurify. Pierwsze trzy z nich to pełne wersje najpopularniejszych narzędzi tego typu o płatnej licecji. W podpunktach 4.1 - 4.3 zawarty jest opis ich funkcji i zakresu działania. Trzy pozostałe narzędzia to narzędzia darmowe, o licencji pozwalającej na wykorzystanie komercyjne, w doborze których preferowano możliwość wyboru interfejsu graficznego oraz polskiej wersji językowej5. Proces doboru tych konkretnych narzędzi spośród innych spełniających te same funkcje został szczegółowo opisany w punkcie 4.1. pracy [4].

W przypadku narzędzi darmowych, podrozdziały im odpowiadające podzielono na część ogólnego opisu narzędzia oraz część zawierającą schemat oraz opis konfiguracji (przykładowe wpisy konfiguracyjne odpowiadające testom aplikacji badanej w pracy [4] zostały oznaczone pogrubioną kursywą). W przypadku narzędzi, w których możliwe było ręczne ustawienie parametrów testów, starano się dobrać je tak, aby przeprowadzonych zostało jak najwięcej

testów wyróżnionych w zaleceniach WASSEC w kategorii

Testowanie/Możliwości (punkt 6b Załącznika 1 niniejszego artykułu).

4.1. Burp Suite Pro

Narzędzie Burp Suite jest zintegrowaną platformą testową umożliwiającą ataki na aplikacje internetowe. Narzędzie pozwala na: przechwytywanie, powtarzanie, analizę oraz wstrzykiwanie żądań do aplikacji (atak typu XSS).

W darmowej wersji Burp Suite Free Edition dostępne są następujące elementy narzędzia6:

 Serwer proxy – przechwytuje żądania i odpowiedzi, umożliwia ich modyfikacje przed przesłaniem do serwera lub przeglądarki, a także zapisywanie, przeszukiwanie oraz przesyłanie do pozostałych elementów;  Intruder – tzw. fuzzer, umożliwia automatyczne, iteracyjne przesyłanie

zmodyfikowanych żądań do aplikacji webowej oraz analizę odpowiedzi (w wersji darmowej element ten jest udostępniany w ograniczonej czasowo wersji demonstracyjnej);

 Sequencer – umożliwia pobranie identyfikatorów sesji i analizę ich losowości;

 Comparer – umożliwia porównanie dwóch żądań lub odpowiedzi HTTP;

5

Elementy te zostały poddane testom i ocenie – wyniki znajdują się w [4].

(6)

 Decoder – umożliwia kodowanie, dekodowanie oraz tworzenie skrótów podanego tekstu;

 Repeater – umożliwia modyfikacje i powtarzanie zapisanych żądań;

 Spider – umożliwia automatyczne zebranie informacji o zasobach aplikacji webowej poprzez wyszukiwanie adresów URL w kodzie HTML oraz zapisywanie plików, na które te adresy wskazują.

Narzędzie napisane jest w Javie, jest więc niezależne od systemu operacyjnego na jakim jest uruchamiane. Komunikuje się z użytkownikiem poprzez interfejs graficzny i jest dostępne w angielskiej wersji językowej. Aby móc z niego skorzystać, niezbędne jest zainstalowanie środowiska JRE.

Ważną cechą Burp Suite jest obszerna i szczegółowa dokumentacja na stronie internetowej producenta.

Burp Suite Pro jest rozszerzoną, płatną wersją narzędzia Burp Suite Free Edition. Oprócz elementów dostępnych dla wersji darmowej zawiera ona dodatkowo:

 Pełną wersję elementu Intruder.

 Scanner – w pełni zautomatyzowany skaner do testowania podatności aplikacji internetowych, umożliwiający skanowanie aktywne, pasywne i zdefiniowane przez użytkownika.

 Save and Restore – element dający możliwość zapisywania i wznawiania od określonego momentu stanu poszczególnych narzędzi, co jest przydatne przy niektórych scenariuszach testów.

 Search – element dający możliwość wyszukiwania określonych fraz w kodzie źródłowym.

 Target Analyzer – element umożliwiający określenie ile dynamicznych i statycznych adresów URL posiada cel ataku i ile parametrów każdy z tych adresów może zawierać.

 Content Discovery – element, który umożliwia „odkrywanie” zawartości strony internetowej, której nie znaleziono poprzez bezpośrednie odwołania poprzez „zgadywanie” popularnych nazw i rozszerzeń plików.

 Task Scheduler – element ten umożliwia zautomatyzowane

rozpoczynanie i zatrzymywanie określonych działań aplikacji

w zdefiniowanym czasie.

 Wcześniejsze, częstsze aktualizacje programu (w porównaniu z wersją darmową).

(7)

4.2. Core Impact Pro

Narzędzie Core Impact Pro jest kolejnym przykładem płatnego, zautomatyzowanego skanera służącego do testów penetracyjnych systemów operacyjnych, aplikacji internetowych oraz stacji roboczych. Narzędzie składa się z wielu (spełniających różne funkcje) modułów napisanych w języku Python. Jak można przeczytać na stronie internetowej producenta7, narzędzie oferuje następujące funkcje:

 Możliwość przeprowadzania szybkich testów penetracyjnych przy użyciu kreatora.

 Możliwość wprowadzania ręcznych ustawień dla określonych podatności.  Obsługę harmonogramów, które automatycznie rozpoczynają zaplanowane

testy.

 Obsługę makr.

 Obsługę modułów, które można dostosować do wymagań użytkownika oraz samodzielnie tworzyć i dołączać.

Razem z narzędziem dostarczona jest pełna dokumentacja i opis jego poszczególnych funkcji.

Program Core Impact Pro dostępny jest w języku angielskim i ma graficzny interfejs użytkownika. Na stronie producenta zamieszczona jest wersja demonstracyjna (do pobrania po wcześniejszej rejestracji) dostępna pod adresem

http://ws.coresecurity.com/impactprodemo.html.

4.3. Metasploit Pro

Metsploit Pro jest płatnym, rozszerzonym narzędziem powstałym na bazie darmowego projektu Metasploit dostępnym na licencji open source. Obecnie Metasploit Pro jest wykonany w języku Ruby.

W odróżnieniu od darmowej wersji, Metasploit Pro oferuje graficzny interfejs użytkownika oraz wiele narzędzi przydatnych do testowania bezpieczeństwa aplikacji internetowych. Dodatkowo, jak można przeczytać na stronie producenta8, w porównaniu z darmową wersją, wersja Pro zawiera między innymi takie funkcje jak:

 Możliwość przeprowadzania ataków socjotechnicznych.  Możliwość skanowania aplikacji internetowych.

 Badanie siły haseł.  Zbieranie dowodów.

 Tworzenie dzienników zdarzeń i raportów.

7

http://www.coresecurity.com/content/core-impact-overview

8

(8)

 Możliwość pracy zespołowej.  Unikanie IDS/IPS.

 VPN pivoting.

Podobnie jak pozostałe płatne programy ma on dokumentację dostępną na stronie internetowej producenta oraz system pomocy. Aplikacja jest dostępna w języku angielskim.

Warto nadmienić, że producent pozwala na korzystanie z 7-dniowej

wersji demonstracyjnej (dostępnej do pobrania pod adresem

http://metasploit.com/download/).

4.4. W3af

4.4.1. Opis narzędzia

Narzędzie w3af jest kompletnym środowiskiem służącym

do przeprowadzania audytów bezpieczeństwa (w tym testowania) aplikacji internetowych. Jego działanie oparte jest o zestawy sygnatur, które pozwalają na przeprowadzanie różnych testów i wykrycie podatności badanej aplikacji. Do scenariusza testu można wybrać jeden z predefiniowanych profili audytu, między innymi OWASP Top 10, fast scan lub bruteforce.

4.4.2. Zalecany sposób konfiguracji

Na rys. 1 jest przedstawiony algorytm zalecanej konfiguracji narzędzia w3af9. Pogrubioną kursywą podane są przykładowe wpisy konfiguracyjne.

Najważniejszym elementem konfiguracji tego narzędzia jest wybór pluginów odpowiadających za przeprowadzane testy (próby ataków). Aby spełnić warunki opisane we wstępie rozdziału 4 zastosowano następującą konfigurację pluginów:

1. Wybranie stanu Active przy kategorii Audit (powoduje automatyczne wybranie wszystkich rodzajów testów z tej kategorii);

2. Wybranie stanu Active przy pluginach kategorii Grep: collectCookies, collectCards, fileUploads, findComments, formAutoComplete;

3. Wybranie stanu Active przy pluginach kategorii Output: console, gtkOutput, htmlFile (z wartością fileName: hack-it-yourself-auction.html).

9

(9)

Rys. 1. Zalecana konfiguracja narzędzia w3af START

Uruchomienie graficznego interfejsu programu w3af z menu: Applications -> Backtrack -> Vunerability Assesment -> Web Application

Assesment -> Web Vunerability Scanners -> w3af gui

Utworzenie nowego profilu skanowania poprzez wybranie w menu Profiles -> New oraz wpisanie danych:

Name: my_profile Desciption: opis

Wpisanie w pole Target adresu aplikacji, która będzie poddana testom:

http://192.168.16.17/

Wpisanie konfiguracji połączeń dla testu w menu Configuration -> HTTP Config

zakładka General: timeout 60

zakładka Basic HTTP Configuration: basicAuthUser: przyklad, basicAuthPass: przyklad1234, basicAuthDomain: 192.168.16.17

Wybranie pluginów odpowiadających za przeprowadzane próby ataków

Kliknięcie przycisku Start w celu rozpoczęcia badania

Obserwacja przebiegu testu w oknie Log

KONIEC

Zapoznanie się z raportem wynikowym TAK

Czy koniec testu?

(10)

4.5. Skipfish 4.5.1. Opis narzędzia

Skipfish jest narzędziem opracowanym przez polskiego programistę i wydanym przez Google. Jest to narzędzie w pełni zautomatyzowane, które

pozwala na skanowanie aplikacji internetowych pod względem

bezpieczeństwa. Do jego najczęściej wymienianych zalet zalicza się łatwość obsługi i szybkość. Narzędzie jest napisane w języku C.

Działanie narzędzia polega na tworzeniu interaktywnej mapy badanej strony internetowej poprzez podążanie za adresami URL lub przeprowadzanie ataków słownikowych.

Narzędzie dostępne jest w języku angielskim. Na stronie projektu10 zamieszczona jest jego dokumentacja oraz kod źródłowy.

4.5.2. Zalecany sposób konfiguracji

Na podstawie [4] algorytm korzystania z tego narzędzia i jego zalecanej konfiguracji jest przedstawiony na rys. 2.

Aby uruchomić test, standardowo wystarczy podać nazwę lub adres hosta oraz ścieżkę docelową, do której są zapisywane dane wyjściowe. Dodatkowo, należy utworzyć odpowiedni plik biblioteki, którego zawartość decyduje o przebiegu testu.

W podfolderze dictionaries foldera narzędzia

(…/skipfish/dictionaries) w pliku README-FIRST znajduje się

szczegółowy opis jego działania w zależności od dołączonych do niego plików słowników i przypisaniu im odpowiednich atrybutów. Działanie narzędzia (w zależności od użytego słownika) różni się złożonością zapytań i dokładnością, co ma wpływ na czas skanowania i ilość przetwarzanych danych wejściowych oraz wyjściowych.

Do przeprowadzenia badania zgodnego z przedstawioną

konfiguracją należy wybrać ścieżkę oznaczoną jako 3 z 4 standardowych – z użyciem pliku complete.wl. Plik należy skopiować i zmienić jego nazwę, ponieważ standardowo jest nadpisywany odkrytymi danymi (informacjami o zawartości aplikacji lub strony internetowej) w celu ich dalszego przetwarzania.

10

(11)

Rys. 2. Zalecana konfiguracja narzędzia Skipfish START

Utworzenie folderu, w którym będą zapisane dane skanowania i raport wynikowy, komendą:

mkdir /root/Desktop/skipfish-report

Uruchomienie konsoli programu skipsifsh z menu Applications -> Backtrack -> Vunerability Assesment -> Web Application Assesment -> Web

Vunerability Scanners -> skipfish

Obserwacja przebiegu testu w oknie konsoli

Czy koniec testu? TAK

Zapoznanie się z raportem wynikowym

KONIEC

Uruchomienie skanera z atrybutami zgodnymi z pożądanym działaniem aplikacji opisanym w dokumentacji:

./skipfish –W dictionary.wl –Y –A przyklad:przyklad1234 –d 5 –o /root/Desktop/skipfish-report http://192.168.16.17

Skopiowanie słownika wybranego na podstawie opisu w dokumentacji: cp dictionaries/complete.wl dictionary.wl

(12)

Rys. 3. Zalecana konfiguracja narzędzia Websecurify

Atrybuty użyte w badanej konfiguracji:

./skipfish –W dictionary.wl –Y –A przyklad:przyklad1234 –d 5 –o /root/Desktop/skipfish-raport http://192.168.16.17

-W wybór pliku słownika,

START

Wpisanie adresu aplikacji internetowej, która będzie poddana testom:

http://192.168.16.17

Przeczytanie i zaakceptowanie ostrzeżenia o niebezpieczeństwie dla aplikacji związanym z przeprowadzaniem skanowania, poprzez zaznaczenie

pola: I understand the risk.

Kliknięcie na ikonę aplikacji WebSecurify znajdującą się z lewej strony paska adresu przeglądarki Google Chrome

Dwukrotne kliknięcie na pasek postępu skanowania w celu otwarcia zakładki do bieżącej obserwacji wyników

Obserwacja przebiegu testu w otwartej zakładce

Czy koniec testu? TAK

Zapoznanie się z raportem wynikowym

NIE

(13)

-Y wyłączenie fuzzingu rozszerzeń plików w siłowej metodzie odkrywania ścieżek,

-A dane autoryzacji,

-d maksymalna głębokość crawlingu,

-o ścieżka zapisywania danych wyjściowych.

4.6. Websecurify 4.6.1. Opis narzędzia

Websecurify jest wieloplatformowym narzędziem służącym

do zautomatyzowanego testowania bezpieczeństwa aplikacji internetowych. Charakteryzuje się przede wszystkim prostotą obsługi, intuicyjnym interfejsem użytkownika i szybkością działania. Jest dostępne dla większości systemów operacyjnych (Windows, Mac OS, Linux) włączając w to urządzenia mobilne (iPhone, Android). Posiada rozbudowane wsparcie i jest rozszerzalne za pośrednictwem wielu języków programowania, w tym – JavaScript, Python, C, C++, Java.

Narzędzie jest dostępne pod adresem http://www.websecurify.com/. 4.6.2. Zalecany sposób konfiguracji

Na rys. 3 został przedstawiony algorytm korzystania z narzędzia Websecurify w formie dodatku do przeglądarki internetowej Google Chrome. Algorytm został opracowany na podstawie [4].

5. Podsumowanie

Przeprowadzone na potrzeby [4] testy trzech darmowych narzędzi opisanych w podpunktach 4.4, 4.5 i 4.6 dały wyniki, które przedstawia tab. 1 (najwyższa wartość oznacza wynik najlepszy).

Tab. 1. Przedstawienie wyników badania

Narzędzie W3af Skipfish WebSecurify

Ocena możliwości konfiguracji

i przeprowadzania testów 52,6 45,75 29,45

Ocena wykrycia istniejących podatności

aplikacji 80 90 100

(14)

Omówione w poprzednich punktach automatyczne skanery podatności aplikacji internetowych stanowią jedynie niewielką część zbioru narzędzi, które mogą wspomagać ochronę informacji. Aby przeciwdziałać wykorzystaniu błędów w aplikacjach internetowych, można starać się je usunąć podczas wytwarzania oprogramowania, w szczególności na etapie testowania. W tym celu można wykorzystać narzędza testujące kod źródłowy aplikacji, pozwalające na wykrywanie błędów programistycznych. Można także wykorzystać fuzzery do badania reakcji aplikacji na nieprzewidziane przez programistów, losowe dane wejściowe. Aby nie dopuścić do wykorzystania podatności, których nie udało się usunąć, można skorzystać z narzędzi umożliwiających blokowanie ataków (na przykład firewalli warstwy aplikacyjnej lub systemów IDS/IPS).

Wspomniany w punkcie 3 Consensus Audit Guidelines (CAG) to darmowy i ogólnie dostępny zestaw zaleceń wspomagających ochronę informacji. Uzupełnieniem zaleceń są propozycje narzędzi wspomagających ochronę informacji – w zakresie zbioru zaleceń numer 7 CAG v.2.1 - taki zestaw zaprezentowano w niniejszym artykule Przedstawiona propozycja może być wykorzystana przez organizacje, które nie mają możliwości zakupu drogich narzędzi do zapewnienia takiej ochrony. W [4] zamieszczono także przetłumaczony na język polski rozdział 7 tego dokumentu oraz ankietę audytową, która wspomaga zarządzanie bezpieczeństwem aplikacji.

Literatura:

1. LIDERMAN K., Podręcznik administratora bezpieczeństwa teleinformatycznego, Mikom, Warszawa 2003.

2. MICHALSKI S., Narzędzie do automatyzacji niskopoziomowych testów bezpieczeństwa aplikacji webowych, Praca magisterska, WAT, Warszawa 2011.

3. STUTTARD D., PINTO M., The Web Application Hacker’s Handbook. Discovering

and Exploiting Security Flaws, Wiley Publishing Inc., 2008.

4. TURLEWICZ P., Plan badań i badania zgodności wybranego środowiska z

wytycznymi CAG w zakresie Critical Control 7, Praca dyplomowa, WAT, Warszawa

2012.

5. Web Application Security Scanner Evaluation Criteria,

http://projects.webappsec.org/w/page/13246986/Web%20Application%20Security% 20Scanner%20Evaluation%20Criteria, (dostęp 01.02.2012).

(15)

Automated web application vulnerability scanners

ABSTRACT: The paper describes tools, both commercial and free, useful in maintaining the required level of information security protection - automated web application vulnerability scanners. The appendix contains the modified Web Application Security Scanner Evaluation Criteria list, the project of Web Application Security Consortium (WASC).

KEY WORDS: web application, vulnerability scanner, WASC criteria, ACTA.

(16)

Załącznik 1. Lista kryteriów oceny narzędzi testowych.

Lista kryteriów oceny narzędzi testowych

I. Kryteria wstępne: [w sumie 30%].

1. Dostępność pełnej dokumentacji narzędzia 8%;

2. Licencja umożliwiająca wykorzystanie komercyjne 8%; 3. Ocena obsługi narzędzia:

a) Brak problemów z instalacją i pierwszym uruchomieniem narzędzia 4%; b) Obecność polskiej wersji językowej 4%;

c) Ogólna, subiektywna ocena pracy z narzędziem 6%.

II. Kryteria oceny możliwości narzędzia: [w sumie 70%].

1. Wspierane protokoły [razem 5%]; a) Protokoły transportowe:

• HTTP 1.1/1.0 1%; • SSL/TLS 0,5%;

• HTTP Keep-Alive 0,5%; • HTTP Compression 0,25%;

• HTTP User Agent Configuration 0,25%. b) Wsparcie dla Proxy:

• HTTP 1.1/1.0 proxy 1%; • Socks 4/Socks 5 proxy 1%; • Wsparcie plików PAC 0,5%. 2. Uwierzytelnianie [razem 5%];

Wsparcie dla szablonów uwierzytelniania: a) Basic 1%; b) Digest 0,5%; c) HTTP Negotiate (NTLM i Kerberos) 0,5%; d) HTML Form-Based: • Automated 0,5%; • Scripted 0,5%; • Non-Automated 0,5%. e) Single Sign-On 0,5%; f) Client SSL Certificates 0,5%;

g) Własne implementacje w ramach extensible HTTP authentication framework 0,5%.

(17)

3. Zarządzanie sesją [razem 5%]. a) Możliwości:

• Umiejętność rozpoznania rozpoczęcia nowej sesji 0,75%; • Odświeżanie tokenów 0,75%;

• Wykrywanie faktu wygaśnięcia sesji 0,75%;

• Umiejętność rozpoczęcia sesji od nowa i pobrania nowego tokenu 0,75%.

b) Wsparcie tokenów:

• Ciasteczka HTTP 0,25%; • Parametry HTTP 0,25%; • Ścieżka URL http 0,25%. c) Konfiguracja wykrycia tokena sesji:

• Automatyczne wykrycie tokena sesji i odświeżenie wartości 0,25%; • Ręczna konfiguracja tokena sesji 0,25%.

d) Polityka odświeżania tokenów sesji: • Ustalona wartość tokena sesji 0,25%;

• Wartość tokena dostarczona przez proces logowania 0,25%; • Dynamiczna wartość tokena 0,25%.

4. Crawling [razem 5%]. a) Konfiguracja

• Możliwość zdefiniowania początkowej ścieżki URL 0,5%;

• Możliwość zdefiniowania dodatkowych hostów (lub adresów IP) 0,25%.

• Możliwość zdefiniowania wyjątków dla:

 określonych hostów (lub adresów IP) 0,25%;

 określonych adresów URL lub wzorców URL (wyrażenia regularne) 0,25%;

 określonych rozszerzeń plików 0,25%;  określonych parametrów 0,25%.

• Możliwość ograniczenia zbędnych zapytań 0,25%; • Wspieranie współbieżnych sesji 0,25%;

• Możliwość określenia opóźnienia zapytań 0,5%; • Możliwość zdefiniowania głębokości pełzania 0,5%; • Możliwość „uczenia” crawlerów 0,25%.

b) Funkcjonalności:

(18)

• Wsparcie zautomatyzowanego wysyłania formularzy 0,25%;

• Wykrywanie stron błędów i niestandardowych odpowiedzi 404 0,25%. • Wsparcie przekierowań

 Podążanie za przekierowaniami HTTP/Meta Refresh/JavaScript 0,25%;

• Identyfikacja i akceptowanie ciasteczek 0,25%; • Wsparcie dla aplikacji AJAX 0,25%.

5. Parsowanie [razem 5%].

a) Rodzaje treści internetowych: • HTML 0,3%;

• Obiekty ActiveX /Flash/Aplety Javy 0,3%; • JavaScript 0,1%;

• XML 0,1%; • Zwykły tekst 0,1%; • Arkusze CSS 0,1%.

b) Wsparcie dla kodowania znaków: • ISO 8859-1 0,25%; • UTF-7 0,25%; • UTF-8 0,25%; • UTF-16 0,25%. c) Tolerancja parsera 1%; d) Dostosowanie parsera 1%;

e) Ekstrakcja zawartości dynamicznej 1%. 6. Testowanie [razem 35%].

a) Konfiguracja:

• Możliwość podania nazw hostów lub adresów IP 1,75%; • Obsługa wzorców URL 1%;

• Możliwość podania rozszerzeń plików wyłączonych z testowania 1%; • Możliwość określenia parametrów wejściowych 1%;

• Możliwość zdefiniowania wartości ciasteczek, dla których strona nie będzie testowana 1%;

• Możliwość wykluczenia z testowania stron o określonych nagłówkach http 1%.

b) Możliwości:

(19)

 Metoda siłowa:

o Brak blokowania konta 0,5%;

o Inne wiadomości przy błędzie logowania dla poprawnych

i niepoprawnych nazw użytkowników 0,5%.  Niedostateczne uwierzytelnianie 1%;

 Niedoskonały mechanizm odzyskiwania haseł 1%;  Brak protokołu SSL na stronach logowania 1%;  Niewyłączenie autouzupełniania dla pól haseł 1%. • Autoryzacja:

 Poświadczenia / Przewidywanie sesji: o Sekwencyjne tokeny sesji 0,5%; o Nielosowe tokeny sesji 0,5%.  Niedostateczna autoryzacja:

o Możliwość siłowego przeglądania adresów URL

przeznaczonych dla zalogowanych użytkowników bez logowania 0,2%;

o Możliwość siłowego przeglądania adresów URL

przeznaczonych dla użytkowników o wysokich

przywilejach przez użytkowników o niższych

przywilejach 0,2%;

o HTTP Verb Tampering 0,2%.

 Niedostateczne wygaśnięcie sesji 1%.  Błędy sesji:

o Błąd podczas generowania nowego ID sesji

po zalogowaniu 0,5%;

o Liberalne zarządzanie sesją 0,5%.  Podatności sesji:

o Token sesji przekazywany w adresie URL 0,2%;

o Ciasteczko sesji z nieustawionym atrybutem Secure 0,2%; o Ciasteczko sesji z nieustawionym atrybutem HTTPOnly

0,2%;

o Ciasteczko sesji o niewystarczająco losowej wartości 0,2%;

o Strona nie wymuszająca połączenia SSL 0,2%;

o Strona korzystająca z połączenia SSL ale odwołująca się do niebezpiecznych obiektów 0,2%;

(20)

• Ataki od strony klienta:

 Podszywanie (spoofing) zawartości 0,5%;  Cross-Site Scripting 1%;

 Cross-Frame Scripting 0,5%;  HTML Injection 0,5%;

 Cross-Site Request Forgery 0,5%.  Ataki związane z Flash’em:

o Cross-Site Flashing 0,5%;

o Cross-Site Scripting poprzez Flash’a 0,5%;

o Pishing/Przekierowanie URL poprzez Flash’a 0,25%;

o Otwarta polityka Cross-Domain 0,25%.

• Wykonywanie poleceń:

 Format String Attack 0,5%;  LDAP Injection 0,5%;

 OS Command Injection 0,5%;

 SQL Injection/Blind SQL Injection 1%;  SSI Injection 0,5%;

 XPath Injection 0,5%;

 HTTP Header Injection / Response Splitting 0,5%;  Załączanie odległych plików 0,5%;

 Załączanie lokalnych plików 0,5%;

 Potencjalnie złośliwe wgrywanie plików 0,5%. • Ujawnienie informacji:

 Indeksowanie katalogu 0,5%;  Wycieki informacji:

o Informacje wrażliwe w komentarzach kodu 0,3%;

o Szczegółowe wiadomości błędów aplikacji 0,3%;

o Nazwy plików kopii zapasowych (home.old, home.bak

itp.) 0,3%;

o Ujawnienie kodu źródłowego załączonych plików 0,3%.

 Path Traversal 0,5%;

 Przewidywalna lokalizacja zasobów 0,5%;  Włączone niebezpieczne metody HTTP 0,5%;  Włączone WebDAV 0,5%;

 Domyślne nazwy plików serwera internetowego 0,5%;

 Strony testowe i diagnostyczne (test.asp, phpinfo.htm itp.) 0,5%;  Włączone rozszerzenia Front Page 0,4%;

(21)

 Ujawnienie wewnętrznego adresu IP 0,4%. c) Dostosowanie:

• Umożliwienie modyfikowania istniejących testów 1%; • Możliwość tworzenia nowych, dostosowanych testów 1%. d) Możliwość zdefiniowania polityki testowania 1%.

7. Sterowanie [razem 5%].

a) Możliwości sterowania skanowaniem:

• Możliwość ustawienia planowania skanowania, w tym:  Czasu startu skanowania 0,5%;

 Maksymalnej długości czasu skanowania 0,5%. • Możliwość wstrzymywania i wznawiania skanowania 0,5%;

• Możliwość przeglądania statusu skanowania w czasie rzeczywistym 0,5%;

• Możliwość zdefiniowania szablonów konfiguracji 0,25%; • Możliwość uruchomienia wielu skanowań jednocześnie 0,25%; • Wsparcie dla pracy przy wielu użytkownikach jednocześnie 0,25%; • Wsparcie dla odległego/rozproszonego skanowania 0,25%.

b) Dostarczone interfejsy użytkownika:

• Aplikacja kliencka z interfejsem graficznym 0,5%; • Interfejs z linią komend 0,3%;

• Interfejs internetowy 0,2%. c) Rozszerzalność i interoperacyjność:

• Dostępność API skanera 0,5%;

• Integracja z popularnymi systemami śledzenia błędów 0,5%. 8. Raportowanie [razem 5%].

a) Typy raportów:

• Podsumowanie wykonywania 0,5%; • Raport szczegółów technicznych:

 Pełne dane zapytań i odpowiedzi 0,25%;

 Lista wszystkich hostów i adresów URL zawartych w skanowaniu 0,25%.

• Raport różnicowy (delta) 0,1%; • Raport zgodności ze standardami:

 OWASP Top 10 0,1%;

 WASC Threat Classification 0,1%;  SANS Top 20 0,1%;

(22)

 NIST 800-53 0,2%.

• Porady dla każdego unikalnego typu podatności zawierające:  Opis podatności 0,1%;

 Numer ID CVE lub CWE 0,1%;  Stopień zagrożenia 0,5%;

 Porady na temat naprawienia podatności 0,25%;

 Przykład kodu pomagającego naprawić podatność 0,25%. • Dostosowanie raportów:

 Możliwość dodania własnych notatek na temat podatności 0,2%;

 Możliwość oznaczenia podatności jako „false positive” 0,2%;  Możliwość ustawienia poziomu ryzyka podatności 0,1%. • Możliwość identyfikowania i raportowania podatności w zależności

od pochodzenia ich zawartości 0,5%;

• Możliwość zawarcia własnych zmian w raportach (jak logo organizacji w stopce i nagłówku raportu) 0,2%.

b) Format raportu:

Generowanie raportów w formatach czytelnych dla ludzi jak i komputera, w tym:

• PDF 0,25%; • HTML 0,25%; • XML 0,25%.

c) Wsparcie sprzedawcy (możliwość automatycznego raportowania błędów np. typu „false positive”) 0,25%.

Cytaty

Powiązane dokumenty

1.1.3 Dodawanie do programu pliku typu properties do przechowania komunikatów w języku angielskim (Bundle_en), w projekcie typu Web Application..

Przykład 1 cd – Dodawanie do programu pliku typu properties do przechowywania gotowych komunikatów w języku angielskim –. wprowadzenie

U01 Absolwent posiada umiejętność opisu wyników obserwacji i eksperymentów, analizy jakościowej i ilościowej obserwowanych zjawisk, formułowania wniosków wynikających z

(rodzaj i zakres oraz miejsce

„Wytworzenie systemu oceny i rozwoju kompetencji menedżerskich kadry kierowniczej Policji” zawierał model zarządzania kompetencjami z wykorzystaniem aplikacji

Stanie się to dlatego, że istnieje wiele systemów, których przerabianie na nową technologię tylko dlatego, że jest nowocześniejsza nie jest ekonomicznie uzasadnione..

Celem studiów jest zapoznanie Cię z najważniejszymi technologiami, narzędziami oraz zasadami tworzenia aplikacji internetowych, intranetowych i mobilnych, a także przygotowanie

Tworzenie stron internetowych z wykorzystaniem HTML i CSS (22 godz.) Tworzenie struktury witryn internetowych w oparciu o język HTML.. Najważniejsze