WOJSKOWA AKADEMIA TECHNICZNA
PODSTAWY BEZPIECZEŃSTWA INFORMACJI
LABORATORIUM NR 2
Prowadzący:
mgr inż. Bartosz Kryński
Data:
21.11.2012
Grupa:
I0E1S1
Skład grupy:
Maciej Jurewicz
Maciej Śmietanko
Ewa Szumilas
Treść zadania.
1) Wykrycie podatności strony „SuperVeda” przy pomocy dostępnego oprogramowania.
2) Stworzenie projektu z zaproponowanymi strefami bezpieczeństwa przedsiębiorstwa, uwzględnione powinny zostać usługi Web, serwery dns, bazy danych, poczta elektroniczna, sieć użytkowników.
Przebieg ćwiczenia.
Wykrywanie podatności SuperVeda.
Przy wyszukiwaniu luk w zabezpieczeniach strony Superveda skorzystaliśmy ze skanera w3af. Jest to narzędzie oferowane przez system BackTrack 5.
Skaner wykrył wiele podatności. Wykryte zostały poważne luki typu Cross Site Scripting oraz SQL Injection.
Cross Site Scripting (XSS) – umożliwia atak na serwis WWW poprzez dodanie kodu (przeważnie JavaScript) do treści atakowanej strony. Po wyświetleniu go u innych użytkowników może doprowadzić do wykonania przez nich niepożądanych akcji. Dodany przez napastnika skrypt może obejść mechanizmy kontroli dostępu zaatakowanej strony.
SQL Injection - polega na przesłaniu do aplikacji fragmentu zapytania SQL które zostanie dołączone do zapytania zdefiniowanego na stronie przez programistę. Atak ten może nie tylko spowodować wyciągnięcie danych z bazy aplikacji webowej, ale także je modyfikować. W przypadku języków skryptowych takich jak php, python czy perl obniża to praktycznie do poziomu zerowego poziom zabezpieczeń, ponieważ atakujący ma dodatkowe możliwości ataku wykorzystując podatności danego języka programowania..
Wykonanie ataku typu SQL Injection.
Podczas logowania wpisaliśmy „‘ or 1=1 -- ” jako nazwę użytkownika oraz hasło.
Podany warunek jest zawsze spełniony, w wyniku czego nastąpiło zalogowanie na pierwsze zwrócone przez bazę danych konto użytkownika – Mickey’ego.
Używając podobnych danych do logowania, np.
‘ or ‘1’ = ‘1’ and firstname <> ‘Mickey
zostaliśmy zalogowani na konto Donalda.
Następnie wykorzystaliśmy odkrytą w „showproducts.asp” podatność do wyświetlenia listy produktów - ich dostępności i ceny.
Jest to możliwe poprzez instrukcję
„UNION SELECT * FROM users WHERE 1=1”,
gdzie w miejsce * wpisujemy odpowiednie dane.
Fragment wyświetlonej listy produktów:
Wykonanie ataku typu Cross Site Scripting.
Wpisanie na stronie SuperVeda w polu Search kodu „<script>alert(„1”)</script>” spowodowało wyświetlenie poniższego komunikatu:
O ile samo wyświetlenie komunikatu nie sprawia dużego zagrożenia, to po modyfikacji skryptu możliwe by było uzyskanie loginu i hasła ofiary. Skrypt umieszczony podczas zakładania konta wykonywał się podczas logowania.
Projekt sieci przedsiębiorstwa.
Rys. Schemat przedstawiający zaproponowany przez nas projekt sieci bezpieczeństwa.
Strefa źródłowa | Strefa docelowa | Port źródłowy | Port docelowy | Akcja |
---|---|---|---|---|
Internet | ANY | 995 | Zezwól | |
Internet | Web | ANY | 443 | Zezwól |
Internet | LAN | ANY | ANY | Zezwól |
Internet | BD | ANY | ANY | Blokuj |
Internet | 465 | ANY | Zezwól | |
Web | Internet | 443 | ANY | Zezwól |
LAN | Internet | ANY | ANY | Zezwól |
BD | Internet | ANY | ANY | Blokuj |
Web | 465 | 443 | Zezwól | |
LAN | 465 | ANY | Zezwól | |
BD | 465 | ANY | Blokuj | |
Web | 443 | 995 | Zezwól | |
LAN | ANY | 995 | Zezwól | |
BD | ANY | 995 | Blokuj | |
Web | LAN | 443 | ANY | Zezwól |
Web | BD | 443 | ANY | Zezwól |
LAN | Web | ANY | 443 | Zezwól |
BD | Web | ANY | 443 | Zezwól |
LAN | BD | ANY | ANY | Blokuj |
BD | LAN | ANY | ANY | Blokuj |
Tabela przedstawiająca jaki przesył między strefami będzie umożliwiony, a jaki zablokowany.
Wnioski.
Podczas wykonywania ćwiczenia laboratoryjnego zobaczyliśmy m.in. jak w dość prosty sposób można ominąć mechanizmy kontroli dostępu podczas logowania i uzyskaliśmy dostęp do kont innych użytkowników SuperVeda. Uświadomiło nam to, jak słabe zabezpieczenie może umożliwić dostęp osób niepowołanych do bazy danych. Grozi to nie tylko „wyciekiem” danych osobowych, ale także naraża na straty finansowe zarówno użytkowników systemu jak i sklep. Należy więc zadbać, aby stosowane zabezpieczenia uniemożliwiały dopisywanie złośliwych skryptów. Ważne jest także używanie programu antywirusowego chroniącego przed atakami oraz włączony firewall.
Podczas projektowania sieci przedsiębiorstwa należy pamiętać o odpowiednim zaprojektowaniu firewalla.