Małe skrypty duży problem

Skryptowe techniki włamań do serwerów WWW nie należą do zaawansowanych technologii hakerskich, ale łatwość ich użycia każe zwrócić uwagę na podstawowezasady zabezpieczeń kodu, co niestety wciąż nie jest regułą.

Skryptowe techniki włamań do serwerów WWW nie należą do zaawansowanych technologii hakerskich, ale łatwość ich użycia każe zwrócić uwagę na podstawowezasady zabezpieczeń kodu, co niestety wciąż nie jest regułą.

Informacje o włamaniach do mBanku, allegro.pl i wojewódzkiej Komendy Policji w Katowicach przyciągnęły uwagę dziennikarzy, opinii publicznej i dały do myślenia administratorom systemów IT. Jak się jednak okazało, problemy tych firm z bezpieczeństwem nie były niczym szczególnie oryginalnym lub wywołanym przez jakieś nowe szczególnie, zaawansowane techniki hakerskie, a brakiem dostatecznej dbałości administratorów o wyeliminowanie stosunkowo prostych i dobrze znanych luk w zabezpieczeniach powodujących podatność na ataki wykorzystujące tzw. technikę XSS, czyli Cross-Site Scripting. A warto przypomnieć, że na portalach takich potentatów, jak Yahoo!, Google, MSN, Icq, również wykrywano błędy umożliwiające ataki XSS.

XSS — technika dla każdego

Cross-Site Scripting (XSS) polega na umieszczeniu na stronie internetowej złośliwego kodu i za jego pomocą przejęcie kontroli nad niektórymi jej elementami lub zainfekowanie systemu użytkownika odwiedzającego tę stronę. Określenie XSS doczekało się wielu mutacji w nazewnictwie. Technika ta jest też określana jako CZS, CSX itp. W ogólności do XSS można zaliczyć wszystkie błędy w kodzie stron WWW, które umożliwiają wykonanie nieautoryzowanych akcji przez użytkowników Internetu odwiedzających daną stronę.

Należy podkreślić, że XSS jest najprostszą metodą hackingu, która nie zmusza do głębokiego analizowania programu i segmentów pamięci w poszukiwaniu miejsca, w którym można umieścić kilka szkodliwych bajtów. Nie wymaga ona zaawansowanej znajomości systemu operacyjnego, jego jądra, listy zainstalowanych aktualizacji, ani nawet martwienia się o logi, bo połączenia na poziomie http można łatwo zamaskować używając systemów proxy. Dlatego też taka metoda ataku, często nie jest klasyfikowana podczas audytów jako dziura, a jedynie jako prosty błąd.

XSS istnieje tak długo jak istnieją strony internetowe i można powiedzieć, że aktualne schematy zabezpieczeń opierają się przede wszystkim na przeciwdziałaniu błędom, które umożliwiają ataki przy wykorzystaniu techniki XSS.

Szukanie dziury w WWW

Do szukania dziur metodą XSS wystarczy dowolny system z przeglądarką internetową i użytkownik o podstawowej wiedzy z dziedziny informatyki. Sama technika jest bardzo prosta, w polach formularzy na stronie internetowej atakujący próbuje wpisać kod - najczęściej formułę skryptu. Atak może zakończyć się powodzeniem, jeśli kod strony WWW zawiera podstawowe błędy w ochronie wprowadzanych danych, takie jak brak apostrofów, które ochraniają dane lub odpowiednich filtrów.

XSS są to także ataki przy wykorzystaniu spreparowanych adresów stron - zmieniając w linku kilka cyfr, można w prosty sposób zmienić konto swojego klienta.

Błędy w kodzie stron WWW umożliwiające wykorzystanie XSS są najbardziej popularnymi wątkami na różnych forach hakerskich i listach dyskusyjnych takich jak Bugtraq, a częstotliwość pojawiania się komunikatów o kolejnych wykrytych błędach w kodzie aplikacji internetowych jest ogromna. Publikacje o dziurach dotyczą najczęściej rozwiązań php wersji open source, ponieważ przy użyciu odpowiednich narzędzi można w tym wypadku przeprowadzić analizę kodu źródłowego i względnie łatwo znaleźć błąd, który może być później wykorzystany. Informacje dotyczące błędów na stronach komercyjnych, np. Google lub Yahoo!, są uzyskiwane metodami prób i błędów przez usiłowania "włamania" się do Yahoo!, by wyświetlić jakiś nieprawidłowy komunikat lub spowodować prostą interakcję.

Łatwość użycia techniki XSS powoduje, że jest ona bardzo popularna i masowo wykorzystywana niekoniecznie przez profesjonalnych włamywaczy. Można oczekiwać, że w tym roku ataki wykorzystujące XSS będą należały do najbardziej rozpowszechnionych technologii hakerskich.

Policyjny szum medialny

Większość włamań XSS nie jest groźna, bo wynika z prostych błędów i daje włamywaczowi informacje tylko o ogólnodostępnych danych. Pokazuje to przykład serwera Komendy Wojewódzkiej Policji w Katowicach, który zawierał właśnie błędy XSS. Pozwalały one na dostęp do danych, ale tylko tych, które znajdowały się na lokalnej maszynie, czyli plików strony WWW i bazy danych zainstalowanej specjalnie na potrzeby tej strony internetowej.

Poufne informacje były jednak przechowywane w sieci wewnętrznej i serwer WWW nie miał do nich dostępu, ani nawet żadnego podłączenia. Dlatego też wytykanie, że był to poważny błąd i serwery tej Komendy Policji nie są odpowiednio zabezpieczone, to nieporozumienie. Administratorów tego systemu należy raczej pochwalić, że przestrzegali podstawowych zasad i serwer WWW nie zawierał żadnych poufnych danych ani podłączenia do sieci intranetowej, co wcale nie jest powszechną regułą.

Wszystkie informacje mówiące o włamaniu do serwera Komendy Wojewódzkiej Policji w Katowicach wynikają z braku wiedzy informatycznej i miały raczej na celu przyciągnięcie widza i jego zaciekawienie. Bo informacja "policja niezabezpieczona" brzmi atrakcyjniej niż obiektywne stwierdzenie "znaleziono kilka niegroźnych błędów na stronie Komendy...".

Należy zauważyć, że XSS nigdy nie był uznawany za metodę hakerską. Ludzi używających tej techniki uznaje się za osoby początkujące i "nieprofesjonane", ponieważ ta metoda ataku nie pozwala na uzyskanie pełnej kontroli nad systemem, czyli realnego włamania. Niektóre błędy pozwalają na dostęp do konsoli systemu i wykonywanie poleceń typu exec na maszynie. Ale nie jest to zbyt groźne, bo w dzisiejszych czasach standardem jest środowisko ograniczone (chroot), a także blokady na kontach http. Nawet jeżeli błąd XSS jest na tyle poważny, że pozwala na uruchamianie programu na serwerze, trzeba mieć zaawansowane umiejętności, by to wykorzystać.

XSS może być groźny

Istnieją jednak błędy XSS, które mogą spowodować istotne szkody. Przykładem może tu być portal aukcyjny allegro.pl. Jak się ostatnio okazało, ten największy polski portal zawierał błędy, które pozwalały na kontrolowanie konta użytkownika bez konieczności logowania. Oznacza to, że przez odpowiednie spreparowanie wysyłanych danych (POST) lub preparowanie adresu w przeglądarce można było wystawić aukcję z innego konta, wygrać aukcję lub zmienić dane adresowe. Choć w większości przypadków błędy XSS nie są szczególnie niebezpieczne, na tym konkretnym przykładzie widać, jak wielkie zamieszanie mogą czasami spowodować. Sprzedaż przedmiotów przez skradzione konta umożliwia oszukanie dużej liczby użytkowników.

Trzeba przyznać, że błędy na stronie allegro.pl zostały bardzo szybko poprawione, ale wydarzenie to pokazuje, że istnieją grupy stron, które powinny być szczególnie starannie zabezpieczane i testowane, by nie było możliwości manipulacji danymi.

Do tej grupy można oczywiście zaliczyć internetowe strony banków, na których użytkownik udostępnia swoje dane, np. o karcie kredytowej i kodach autoryzujących transakcje, które nie powinny trafić do osób niepowołanych. Z reguły wszystkie operacje finansowe są zabezpieczane dodatkowymi mechanizmami, np. token, sms lub dodatkowy kod i dlatego trudne do złamania. Ale w przypadku danych o karcie kredytowej informacje są dostępne na podstawowym poziomie zabezpieczeń i wyświetlane na stronie od razu po zalogowaniu.

Podatnym na błąd XSS okazał się ostatnio mBank. Nie był to typowy błąd XSS, ponieważ wymagał od zalogowanego użytkownika uruchomienia odpowiednio spreparowanego adresu (atak typu man-in-the-middle), który udostępniał atakującemu dane konta. Przedstawiciele mBanku zapewniają użytkowników, że błąd został już poprawiony, a jednocześnie podkreślają, że nie umożliwiał on ataku bez wykonania dopuszczającej go akcji przez użytkownika. mBank jest też przekonany o słuszności swojej polityki bezpieczeństwa, jakby zapominając, że połączenie phishingu (techniki podmiany stron) z błędem XSS może spowodować poważne problemy. Spreparowany adres nie musi być wysłany pocztą e-mail. Może być dostępny w oknie pop-up przeglądarki jako aktualizacja lub inna strona internetowa.

Więcej dbałościto mniej problemów

Praktyka pokazuje, że bardzo wiele stron WWW zawiera błędy XSS, które są błędem programistycznym i powinny być wykrywane na poziomie developingu przez ponowną analizę kodu. Jeżeli taka analiza nie została wykonana, programista oddaje do użytku produkt, który nie został w pełni sprawdzony.

Internet rozwija się bardzo szybko i dlatego nie należy zapominać o podstawowych zasadach bezpieczeństwa lub ignorować je. Obecnie istnieją też standardy i regulacje dotyczące bezpieczeństwa, takie jak ISO27001: 2005, ISO17799: 2005, które określają, jak należy się zabezpieczać przed skutkami włamań nawet jeżeli do nich dojdzie. Warto je znać i stosować.

Podstawową zasadą bezpieczeństwa jest wydzielenie niezależnej maszyny lub ograniczonego środowiska dla serwera stron WWW. Straszne w skutkach może być uruchomienie takiego serwera na głównym firewallu lub routerze firmy. W tym wypadku przy wykorzystaniu XSS atakujący, jeśli ma dużą wiedzę na temat zabezpieczeń, może bezpośrednio zaatakować serwer, uzyskać podsłuch sieci, a nawet przejąć nad nią pełną kontrolę.

Zawsze warto więc sprawdzić, czy serwer, na którym znajduje się strona internetowa, ma dostęp do poufnych danych, a jeżeli ma, to czy transmisja i dostęp są odpowiednio zabezpieczone przez standardy SSL, znaczniki sesji itp. Dość często zdarza się, że specjalne "strefy klientów", w których mają oni dostęp do zamówień, cen lub innych danych, zawierają liczne błędy XSS. Taki błąd może spowodować wiele zamieszania, jeżeli przez złe wpisanie adresu w przeglądarce klient uzyska dostęp do konta innej osoby.

Dlatego warto zwrócić uwagę na ofertę firm zajmujących się audytem nie tylko sieci i systemów, ale także oprogramowania. Profesjonalny audyt pozwala na znalezienie błędów w kodzie strony.

Coraz łatwiejsze ataki

Ten rok będzie rokiem błędów XSS, bo coraz większa liczba młodych hakerów widzi możliwość łatwego przeprowadzenia ataku na strony WWW bez potrzeby posiadania wielkiej wiedzy informatycznej z dziedziny zabezpieczeń. Niewątpliwie producenci oprogramowania antywirusowego wprowadzą do oferty aplikacje chroniące przed przynajmniej niektórymi atakami XSS. Jednak już dziś warto

zadbać o podstawowe zasady bezpieczeństwa i sprawdzić działające serwery internetowe, czy nie zawierają prostych błędów XSS, by zapomniany apostrof w kodzie nie spowodował poważnych problemów.

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200