21.11.2012
Sprawozdanie
Podstawy Bezpieczeństwa Informacji
laboratorium nr 2
Arnold Haponik
Maciej Zasiewski
Grupa I0E1S1
Zadanie 1.
Nasze zadanie polegało na wykryciu podatności strony SuperVeda przy pomocy Wapiti. W tym celu, po uruchomieniu programu, należy użyć komendy:
python wapiti.py "adres strony" -r html
Wyniki skanowanie zapisywane są na dysku w formie pliku html. Oto rezultat skanowania strony SuperVeda
Jak widać strona ma bardzo wiele różnego rodzaju ułomności pozwalających na łatwą manipulację treścią. SQL Injection umożliwia nam wysłanie własnego zapytania do bazy SQL strony. Najprostszym przykładem jest w polu użytkownika oraz hasła wpisać " x' OR '1'='1 ". Dzięki temu nasz "użytkownik" i jego hasło zawsze zostanie odnalezione w bazie danych i zostaniemy zalogowani do serwisu.
Cross-site scripting to sposób ataku na serwis WWW polegający na osadzeniu w treści atakowanej strony kodu, który wyświetlony innym użytkownikom może doprowadzić do wykonania przez nich niepożądanych akcji. Skrypt umieszczony w zaatakowanej stronie może obejść niektóre mechanizmy kontroli dostępu do danych użytkownika.
Każdy program typu Wapiti posiada własne moduły wyszukujące błędy. Stąd też w celu porównania działa dwóch programów skorzystaliśmy z Vega. To oprogramowanie poza wyszukiwaniem błędu podaje instrukcję jego wykonania co zdecydowanie ułatwiło nam pracę.
Jak widać przy pierwszym skanowaniu VEGA wykryła dużo mniejszą liczbę błędów. Należy pamiętać, że płatne oprogramowanie nie w każdym przypadku będzie skuteczniejsze. Przy tego rodzaju testach należy skanować witrynę jak największą liczbą programów w celu wyeliminowania zagrożeń.
Kolejną częścią zadania było samodzielne wykonanie jednego z ataków na serwis SuperVeda. Wykorzystaliśmy lukę umożliwiającą wykonanie SQL Injection w celu zmniejszenia ceny towaru.
Jak widać zmieniliśmy wartość pola 'sale' na 'yes' co zmniejszyło cenę produktu o 30%. Jedyne co należało zrobić to dopisać &sale=yes w adresie strony.
Zadanie 2
Zadanie polegało na ustaleniu reguł Firewall serwisu o następującej strukturze.
Gdzie pod DMZ znajduje się poczta oraz nasz Web.
Strefa Źródłowa | Strefa Docelowa | Port Źródłowy | Port Docelowy | Akcja |
---|---|---|---|---|
Internet | LAN | ANY | ANY | Zezwalaj |
Internet | BD | ANY | ANY | Blokuj |
Internet | Web | ANY | 443 | Zezwalaj |
Internet | ANY | 995 | Zezwalaj | |
Internet | 465 | ANY | Zezwalaj | |
Web | Internet | 443 | ANY | Zezwalaj |
BD | Internet | ANY | ANY | Blokuj |
LAN | Internet | ANY | ANY | Zezwalaj |
LAN | BD | ANY | ANY | Blokuj |
LAN | Web | ANY | 443 | Zezwalaj |
LAN | ANY | 995 | Zezwalaj | |
LAN | 465 | ANY | Zezwalaj | |
Web | LAN | 443 | ANY | Zezwalaj |
BD | LAN | ANY | ANY | Blokuj |
BD | Web | ANY | 443 | Zezwalaj |
BD | Any | 995 | Blokuj | |
BD | 465 | ANY | Blokuj | |
Web | BD | 443 | ANY | Zezwalaj |
Web | ANY | ANY | Zezwalaj | |
Web | ANY | ANY | Zezwalaj |
Jak widać prawie wszystkie połączenia z Bazą Danych są blokowane. Jedynie Web przy użyciu jednego portu może kontaktować się z BD. Pamiętajmy że największą luką wszelkiego rodzaju systemów jest użytkownik. Pracownik używający LAN może przynieść zainfekowanego pendrive'a lub odczytać pocztę z exploitem. Gdyby ten sam zainfekowany komputer miał dostęp do naszej BD intruz miałby możliwość dostania się do tego obszaru.
Ustalenie wszystkich możliwych połączeń i akcji jest pracochłonne ale w ten sposób nie zostawimy żadnej luki ewentualnym intruzom.