WOJSKOWA AKADEMIA TECHNICZNA
Im. Jarosława Dąbrowskiego
LABORATORIUM PODSTAW BEZPIECZEŃSTWA INFORMACJI
SPRAWOZDANIE Z ĆWICZENIA LABORATORYJNEGO NR 2
Prowadzący: mgr inż. Bartosz Kryński
Grupa: I0E1S1
Sprawozdanie wykonali: Daniel Zaręba, Grzegorz Ziemski
Data wykonania ćwiczenia: 21.11.2012
Treść zadania:
Uruchomienie skanera podatności aplikacji Web, analiza zidentyfikowanych podatności aplikacji Superveda.
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.
Wykorzystane narzędzia – opis:1
BackTrack - Dystrybucja ta stanowi unikatowy zbiór kilkuset profesjonalnych, bardzo różnorodnych narzędzi do monitorowania i analizy ruchu sieciowego, zbierania informacji na temat sieci i znajdujących się w niej urządzeń, a także kontroli stanu zabezpieczeń sieci i ich łamania oraz przeprowadzania testów penetracyjnych. BackTrack zawiera wbudowane sterowniki do większości najpopularniejszych sieciowych kart bezprzewodowych, dzięki czemu można go uruchomić na praktycznie każdym notebooku i od razu przystąpić do pracy - bez instalacji na komputerze, bez pozostawiania jakichkolwiek śladów aktywności.
Audyt informatyczny jest to proces zbierania i oceniania dowodów w celu określenia czy system informatyczny i związane z nim zasoby właściwie chronią majątek, utrzymują integralność danych i dostarczają odpowiednich i rzetelnych informacji, osiągają efektywnie cele organizacji, oszczędnie wykorzystują zasoby i stosują mechanizmy kontroli wewnętrznej, tak aby dostarczyć rozsądnego zapewnienia, że osiągane są cele operacyjne i kontrolne, oraz że chroni się przed niepożądanymi zdarzeniami lub są one na czas wykrywane a ich skutki na czas korygowane.
Przebieg ćwiczenia:
Zadanie 1.
Wykonanie testów penetracyjnych.
SQL injection
Definicja
Atak SQL Injection wykorzystuje fakt że dane wpisane do formularza na stronie WWW (lub w inny sposób wysłane do serwera) nie są w żaden sposób walidowane pod kątem ich poprawności.
Super Veda podatność
Odnaleziono podatność w „showproducts.asp” na SQL injection.
Po przez zewnętrzny program Havij wykorzystując lukę otrzymaliśmy całkowity dostęp do bazy danych. Udało się podejrzeć hasło administratora, co pozwoliło na zalogowanie do panelu administratora.
Wnioski – zapobieganie
Dane wprowadzane do aplikacji powinny być walidowane czy są poprawne i zgodne z oczekiwanym zakresem danych.
Zapytania do bazy powinny być skonstruowane w odpowiedni sposób. Dane wejściowe powinny być odzielone w zapytaniu apostrafami i powinny być zabezpieczone przed możliwość zamknięcia tych apostrofów.
Można wprowadzić warstę pośredniczącą między bazą a resztą aplikacji, która będzie zapobiegała atakom, np.: ORM.
Hasła w bazie lub dane poufne powinny być zaszyfrowane.
Używanie wielu użytkowników o różnych uprawnieniach. Gdy dojedzie do znalezienia luki, atakujący nie będzie miał dostępu do wszystkich danych.
Cross-Site Scripting
Definicja
Cross-site scripting (XSS) – sposób ataku na serwis WWW polegający na osadzeniu w treści atakowanej strony kodu (zazwyczaj JavaScript), 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.
Super Veda podatność
SuperVeda jest podatna na XSS. Uruchomiliśmy przykładowy skrypt wyświetlający okienko „test”
Wnioski – zapobieganie
- walidacja wprowadzonych danych
- uniemożliwienie wprowadzenia skryptów i złośliwych kodów HTML
Np. w PHP można użyć funkcji htmlspecialchars, która skonwertuje wszystkie znaki specjalne do kodów HTML.
Zadanie 2.
Wszystkie połączenia przychodzące i wychodzące są zablokowane. Wyjątkami są zezwolenia z tabelki:
Nazwa komputera | Typ reguły | Adres nadawcy | Usługa |
---|---|---|---|
WEB | INPUT | *:80 | HTTP |
WEB | INPUT | Sieć prywatna:22 | SSH |
Baza danych | INPUT | WWW:3306 | Baza danych |
Baza danych | INPUT | Sieć prywatna:22 | SSH |
Poczta | INPUT | *:993 *:587 |
Poczta |
Poczta | INPUT | Sieć prywatna:22 | SSH |
DNS | INPUT | *:53 | DNS |
DNS | INPUT | Sieć prywatna:22 | SSH |
Sieć uprzywilejowana | OUTPUT | WWW:22 | SSH |
Sieć uprzywilejowana | OUTPUT | Baza danych:22 | SSH |
Sieć uprzywilejowana | OUTPUT | Poczta:22 | SSH |
Sieć uprzywilejowana | OUTPUT | DNS:22 | SSH |
Sieć uprzywilejowana | OUTPUT | WEB:80 | HTTP |
Sieć uprzywilejowana | OUTPUT | Poczta:993 Poczta:587 |
Poczta |
Sieć uprzywilejowana | OUTPUT | DNS:53 | DNS |
Sieć użytkowników | OUTPUT | *:80 | HTTP |
Sieć użytkowników | OUTPUT | *:993 *:587 |
Poczta |
Sieć użytkowników | OUTPUT | *:53 | DNS |
WEB- serwer http, działa na nim aplikacja pobierająca dane z bazy danych
Baza danych –serwer bazy danych, do którego ma dostęp tylko serwer http
Poczta – serwer pocztowy
Sieć prywatna – sieć do której mają dostęp osoby uprzywilejowane (administratorzy)
Sieć użytkowników – sieć do której mają dostęp pracownicy firmy
Wnioski
Poprzednie wnioski sugerują, że wszelkie informacje przychodzące z zewnątrz powinny być filtrowane i walidowane. W przydku aplikacji WEB Super Vega dane przychodzace od uzytkownika takie Cookies, Get, Post powiny być weryfikowane.
Zadanie 2 sugeruje, aby w przypadku dojścia do udanego ataku zabezpieczyć jak najwięcej innych urządzeń w sieci przed dostęp z zaifekowanego komputera.
Źródło: Wikipedia↩