• Nie Znaleziono Wyników

A TAKI NA SERWERY

W dokumencie Aplikacje internetowe (Stron 80-83)

Wybrane aspekty bezpieczeństwa aplikacji internetowych

6.2. A TAKI NA SERWERY

Bezpieczeństwo całej sieci w dużej mierze zależy od serwerów, czyli komputerów przeznaczonych do specjalnych zadań (m.in. świadczących różne usługi sieciowe), pracujących zwykle bez przerwy. Ataki na aplikacje internetowe polegają często na wykorzystywaniu luk w ich oprogramowaniu (wad wynikających z błędów programistycznych) do przejęcia kontroli nad zdalnym komputerem. Do tego służą specjalne kody zwane exploitami.

Wyróżnia się wiele typów luk w aplikacjach internetowych, między innymi są to:

pliki przykładów, ujawnienie kodu źródłowego, sprowadzenie do postaci kanonicznej, rozszerzenia serwera czy zatwierdzanie danych wejściowych (np. przepełnienia bufora) [MSK06]. Pełną ich listę zawiera projekt OWASP8 (ang. Open Web Application Security Project).

Producenci platform systemowych w celu reklamowania funkcjonalności swojego oprogramowania mają zwyczaj udostępniania przykładowych skryptów i fragmentów kodu źródłowego. Ujawniane próbki często zawierają wady, a uruchomione, umożliwiają podejmowanie różnego rodzaju nielegalnych działań, takich jak penetrowanie zawartości dowolnych plików serwera czy zdalne wykonywanie na nim poleceń. Z kolei atak wykorzystujący fakt ujawnienia kodu źródłowego polega na możliwości przeglądania źródła określonej aplikacji i łączeniu tej czynności z innymi technikami w celu otwierania ważnych chronionych plików.

Często adresy komputerów i zasobów sieciowych można zapisywać w różnych formach. Proces przekształcania ich do postaci standardowej (najprostszej) nosi nazwę sprowadzania do postaci kanonicznej. Jeśli aplikacje swoje decyzje dotyczące bezpieczeństwa opierają na nazwach zasobów, to istnieje możliwość wykorzystania

8 Projekt zespołu wypracowującego ogólnodostępne zestawy procedur i standardów

pozwalających programistom i projektantom na tworzenie bezpiecznych aplikacji webowych w różnych środowiskach.

tego z nieprzewidywalnym skutkiem. Ataki te, nazywane „atakami ze sprowadzaniem do postaci kanonicznej”, mogą przyjmować różne formy. Znane są działania wykorzystujące luki Unicode/Double Code9 (to właśnie je wykorzystywał robak Nimda). Można się przed nimi bronić stosując narzędzia (np. Microsoft URLScan) pozwalające odrzucać adresy URL zawierające znaki Unikodu czy szesnastkowe.

Z kolei rozszerzenia to niewielkie biblioteki kodu dołączane do zasadniczego oprogramowania HTTP, zwiększające jego funkcjonalność poprzez realizację dodatkowych zadań (np. dynamiczne wykonywanie skryptów czy indeksowanie).

Stanowią one źródło zagrożenia bezpieczeństwa na skutek swoich niedoskonałości, które atakujący może umiejętnie wykorzystać. Narzędzia pozwalające włamywać się tym sposobem do serwerów są dostępne w Internecie. W przypadku rozszerzeń najlepszym rozwiązaniem problemu jest po prostu ich wyłączenie.

Poważne zagrożenie dla systemów informatycznych stanowią, stosowane od połowy lat 90., ataki z przepełnieniem bufora pozwalające stosunkowo łatwo przejąć kontrolę nad zdalnym komputerem. Najłatwiejszymi do skutecznego zaatakowania systemu są przepełnienia stosowe polegające na umieszczeniu szkodliwego kodu w stosie wykonawczym procesora. Popularne są również przepełnienia bufora polegające na wprowadzeniu kodu do sterty10, czy tzw. przepełnienie zmiennych całkowito-liczbowych.

W styczniu 2008 roku poinformowano o nowych lukach umożliwiających przeprowadzenie ataku z przepełnieniem bufora. Firma Core Security odkryła poważny błąd w zabezpieczeniach serwera DHCP wykorzystywanego w systemie OpenBSD (w. 4.0, 4.1 i 4.2) umożliwiający atakującemu na unieruchomienie dowolnej usługi. Natomiast w popularnym odtwarzaczu multimedialnym WinAmp w wersji 5.35 Full wykryto błąd przekroczenia zakresu liczby całkowitej w module przetwarzania danych, prowadzący do przepełnienia bufora w wyniku uruchomienia odpowiednio spreparowanego pliku Free Lossless Audio Codec. Poprawka została już

9 Do przeprowadzenia ataku wykorzystuje się niepoprawne translacje znaków do postaci znormalizowanej.

10 Sterta wykorzystywana jest do dynamicznego alokowania pamięci w czasie wykonywania programu. Jeśli atakujący zmieni ustawienia uprawnień na „Access Allowed”, uzyskuje nieuprawniony dostęp do systemu lub usługi.

przygotowana (w. 5.5), a użytkownicy wcześniejszych wersji mogą dla bezpieczeństwa usunąć bibliotekę libFlac.

Serwery zawsze stanowiły atrakcyjny cel ataków, zatem niezwykle trudne zadanie skutecznej ich ochrony staje szczególnie przed administratorami serwerów o strategicznym znaczeniu. Znane są przykłady ataków na serwery Urzędów Miejskich, Biuletynu Informacji Publicznej czy Instytutu Energii Atomowej w Świerku (gdzie atakujący mogli mieć dostęp do takich informacji jak np. „specyfikacja urządzeń”). W maju 2007 media donosiły o skoordynowanych atakach na estońskie serwery rządowe, blokowano strony internetowe gazet, usiłowano ograniczyć dostępność, między innymi, estońskich systemów bankowych. Natomiast w grudniu 2007 roku świat obiegła wiadomość o skutecznym zaatakowaniu dwóch placówek armii amerykańskiej: Oak Ridge National Laboratory w Tennessee i Los Alamos National Laboratory w Nowym Meksyku. W tym przypadku hakerzy uzyskali dostęp do baz danych znajdujących się w tajnych laboratoriach wojskowych, gdzie prowadzone badania oznaczone są klauzulą „ściśle tajne”. Pierwsza z placówek dominuje w technologicznych ekspertyzach dotyczących bezpieczeństwa krajowego i badaniach wojskowych, zaś druga specjalizuje się w badaniach nad bronią nuklearną. Podane przykłady skutecznych włamań wskazują na skalę i wagę problemu.

Obecnie administratorzy systemów posiadają większą świadomość realnych zagrożeń i wiedzę z zakresu bezpieczeństwa, a tym samym umiejętniej konfigurują systemy i aplikacje oraz oprogramowanie ochronne, dbając też o ich aktualizację. Do zmniejszenia podatności serwerów internetowych na ataki przyczyniły się też specjalizowane narzędzia umożliwiające analizę stanu bezpieczeństwa oraz zintegrowane funkcje zatwierdzania danych wejściowych (jak np. URLScan firmy Microsoft). Skanery bezpieczeństwa sprawdzają systemy komputerowe (w tym serwery) pod kątem luk wykorzystywanych do włamań, wykrywają miejsca umożliwiające przeprowadzenie ataku i podają sposoby ochrony systemu. Wśród skanerów bezpieczeństwa wyróżnia się skanery hostów i skanery sieci. Pierwsze z nich wspomagają administratorów w definiowaniu polityki bezpieczeństwa, umożliwiają między innymi tworzenie raportów, w których wykazywane są odstępstwa od przyjętej polityki oraz wskazują sposób rozwiązania zaistniałego problemu. Z kolei

skanery sieci testują sieć na obecność każdej ze znanych luk i wykonują pozorowane ataki próbując złamać istniejące zabezpieczenia. Do wykrywania znanych luk w serwerach internetowych można wykorzystać takie skanery jak na przykład Nikto czy Whisker.

Metodą na zapobieganie wykorzystywaniu luk jest instalacja dostarczanych przez producentów tzw. łatek, jednak zawsze istnieje możliwość ponownego

„odbezpieczenia” systemu.

W dokumencie Aplikacje internetowe (Stron 80-83)