WOJSKOWA AKADEMIA TECHNICZNA
PODSTAWY BEZPIECZEŃSTWA INFORMACJI
LABORATORIUM NR 2
Prowadzący: mgr inż. Bartosz Kryński
Data: 21.11.2012
Wykonali: |
|
---|
PRZEBIEG ĆWICZENIA LABORATORYJNEGO
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:
Rys.1 Fragment raportu podatności strony SuperVeda
Strona ma bardzo wiele różnego rodzaju podatności pozwalających na łatwą manipulację treścią. SQL Injection umożliwia nam wysłanie własnego zapytania do bazy danych SQL strony. Akademickim przykładem, prezentowanym przez prowadzącego, 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 , dzięki czemu zostaniemy zalogowani do serwisu.
Cross-site scripting (XSS) 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.
Poniżej wynik prób wykorzystania podatności, dokładnie 2 z 6 wykrytych.
Cross Site Scripting (XSS) - wykonaliśmy JavaScript , który miał na celu wyświetlenie komunikatu „1” w oknie przeglądarki pochodzący z źle zabezpieczonej aplikacji Superveda.
Rys.2 Okienko uruchomione zdalnie.
Insecure Direct Object References - Aby mieć możliwość zakupu produktu po niższej cenie wystarczy w pasku adresu zmienić wartość zmiennej „sale” z „no” na „yes”. Jest to bardzo prosta metoda, a jednocześnie powoduje ona duże straty finansowe sklepowi.
Rys.3 Obniżona cena produktu
Zadanie 2. Stworzenie projektu z zaproponowanymi strefami bezpieczeństwa przedsiębiorstwa.
Legenda:
‘Świat’ –Sieć Internet
‘Płonąca ściana’ – Firewall
‘Cylinder’ – baza danych
‘Sieć komputerów’ – sieć lokalna
‘Przekreślony pistolet’ – strefa zdemilitaryzowana DMZ
DMZ = poczta oraz nasz Web.
Strefa Źródłowa | Strefa Docelowa | Port Źródłowy | Port Docelowy | Akcja |
---|---|---|---|---|
Internet | LAN | ANY | ANY | OK |
Internet | BD | ANY | ANY | Block |
Internet | Web | ANY | 443 | OK |
Internet | ANY | 995 | OK | |
Internet | 465 | ANY | OK | |
Web | Internet | 443 | ANY | OK |
BD | Internet | ANY | ANY | Block |
LAN | Internet | ANY | ANY | OK |
LAN | BD | ANY | ANY | Block |
LAN | Web | ANY | 443 | OK |
LAN | ANY | 995 | OK | |
LAN | 465 | ANY | OK | |
Web | LAN | 443 | ANY | OK |
BD | LAN | ANY | ANY | Block |
BD | Web | ANY | 443 | OK |
BD | Any | 995 | Block | |
BD | 465 | ANY | Block | |
Web | BD | 443 | ANY | OK |
Web | ANY | ANY | OK | |
Web | ANY | ANY | OK |
Tab.1 Tabela przedstawiająca przesył między strefami bezpieczeństwa.
Wnioski:
Nasuwa się myśl, iż wszystkie strony współpracujące z dowolną bazą danych powinny skupić się na wyeliminowaniu możliwości ataków typu SQL Injection. Ogólnym zaś problemem okazuje się XSS (Cross Site Scripting). Obie te luki mogą zostać skutecznie wyeliminowane poprzez zastosowanie parserów analizujących wprowadzane przez użytkownika dane zaś sam użytkownik powinien posiadać oprogramowanie antywirusowe działające aktywnie (ochrona przed większością ataków XSS czy też złośliwymi skryptami JS).