WOJSKOWA AKADEMIA TECHNICZNA
W WARSZAWIE
PODSTAWY BEZPIECZEŃSTWA
INFORMACJI
LABORATORIUM NR. 2
TEMAT:
Analiza podatności serwisów internetowych
Prowadzący: mgr inż. Bartosz Kryński
Studenci:
Robert Nawrot
Maciej Gudanowicz
Grupa:
I9M1S1
1. Treść zadania.
Przeanalizować strukturę i system logowania serwisu internetowego przy użyciu
programu Burp Suite. Za pomocą programu Wapiti znaleźć i przeanalizować
podatności serwisu.
2. Analiza struktury serwisu internetowego przy użyciu programu
Burp Suite.
Burp Suite jest zaawansowanym narzędziem testowania witryn internetowych.
Narzędzie to w dużej mierze opiera się o serwer proxy. Po ustawieniu w przeglądarce
internetowej serwera proxy na serwer tworzony przez aplikację, wszystkie żądania
przesyłane są do programu, co umożliwia analizę struktury odwiedzanej witryny a
także zmianę ich treści przed dalszym przesłaniem lub też zupełne porzucenie żądania.
Funkcjonalność ta została wykorzystana w ćwiczeniu, oprócz niej program posiada
narzędzia do przeprowadzania ataków, sekwencyjnego wysyłania żądań czy też
wysyłania utworzonych własnoręcznie żądań.
Na poniższym zrzucie ekranu widoczna jest analiza struktury aplikacji internetowej.
Program sam rejestruje i grupuje dane które pozyskuje z przesłanych przez niego
żądań. W miarę jak użytkownik przechodzi przez różne opcje aplikacji internetowej w
przeglądarce, struktura ta staję się coraz dokładniejsza.
Analiza struktury serwisu pozwala na wyszukanie potencjalnie słabych punktów tej
aplikacji. Wraz z możliwością modyfikacji oraz przesyłania własnych żądań pozwala
na wyszukanie luk w zabezpieczeniach i ich przełamanie.
Poniższy zrzut ekranu pokazuje okno programu Burp Suite w którym prezentowana
jest treść przesyłanego przez niego żądania oraz formularz aplikacji internetowej który
to żądanie wygenerował.
Z analizy zawartości przesyłanego żądania wynika, że wszystkie informacje
przesyłane są tekstem jawnym, również te zawierające hasło użytkownika tworzącego
konto w systemie. Stanowi to potencjalne zagrożenie, gdyż po przechwyceniu żądania,
dostępne są wszystkie dane niezbędne do logowania.
W trakcie analizy funkcjonalności logowania do systemu występował błąd przy
rejestracji użytkownika związany ze sterownikiem bazy danych, który został również
jawnie wyświetlony na stronie aplikacji.
3. Automatyczna analiza podatności serwisu internetowego przy
użyciu programu Wapiti.
Wapiti jest programem napisanym w języku python. Działanie programu polega na
wyszukaniu luk zabezpieczeń które umożliwiają przesłanie niepoprawnych z punktu
widzenia programu danych mogących spowodować błąd w działaniu aplikacji
internetowej. Oprócz wskazania podatności w aplikacji, wyświetlane są również
porady jak można je wykluczyć.
W celu uruchomienia programu wydaliśmy polecenie python wapiti.py
http://10.3.236.109 w katalogu głównym aplikacji. W wyniku działania aplikacji został
wygenerowany raport zawierający informacje na temat znalezionych podatności.
W analizowanym serwisie znaleziono dużą ilość podatności, co jest widoczne na
powyższym zrzucie ekranu. Z analizy tych podatności wynika, że zarówno
funkcjonowanie serwisu jak i bezpieczeństwo jego użytkowników były by zagrożone.
Podatność SQL Injection pozwala na wstrzyknięcie zapytania użytkownika do
zapytania generowanego przez aplikację do bazy danych. Wynika ona z
bezpośredniego wykorzystania, nieprzefiltrowanych danych wprowadzonych przez
użytkownika w wykonywanych zapytaniach.
Kolejną znalezioną luką w zabezpieczeniach jest Cross Site Scripting. Umożliwia on
wstrzyknięcie kodu przez użytkownika do stron oglądanych przez innych
użytkowników. Podatność ta wynika z braku filtrowania danych wejściowych, w celu
jej wykorzystania wprowadzany jest skrypt w danych wejściowych użytkownika,
które są wykorzystywane i dołączane przy generowaniu kolejnej odwiedzanej przez
niego strony.
Inną jeszcze znalezioną podatnością jest Commands Execution pozwalająca na
wykonanie poleceń użytkownika w systemie na którym działa aplikacja internetowa.
Błąd ten jest wynikiem bezpośredniego wykorzystania wprowadzonych przez
użytkownika danych w odwołaniach systemowych. Błędy tego typu zostały znalezione
w aplikacji w miejscach odwołań do bazy danych i są prawdopodobnie związane z
błędem sterownika bazy danych znalezionym w trakcie analizy aplikacji przy pomocy
programu Burp Suite.
4. Wnioski
Ćwiczenie pokazało jak za pomocą odpowiednich narzędzi w kilka chwil można
przeprowadzić dość dokładną analizę bezpieczeństwa aplikacji internetowej jak i jej
wewnętrznej struktury. Mając te informacje można łatwo określić ataki na jakie taka
aplikacja jest narażona. Używane przez nas narzędzie dawało również rady jak można
ustrzec się przed tego rodzaju atakami. My jako przyszli twórcy takich aplikacji
powinniśmy mieć to szczególnie na uwadze i przed oddaniem danej aplikacji do
użytku poświęcić czas na przeprowadzenie dokładnej analizy pod kątem jej
bezpieczeństwa.