Nieoczekiwane ataki wejściowe

Jak można przesłać nieoczekiwane dane wejściowe do serwera? Odpowiedź leży w architekturze Internetu i paradoksalnej naturze systemu klienckiego, który uzyskuje dostęp do serwera. Typowy klient sieciowy to klient tylko z nazwy. Często jest to potężna maszyna, będąca samodzielnym serwerem i bardzo trudna do kontrolowania przez jakikolwiek inny serwer, ze względu na nieodłączną naturę ogromnej sieci, jaką jest Internet. Wszystkie węzły Internetu są uważane za hosty. I oczywiście wiele z tych hostów znajduje się poza fizyczną kontrolą organizacji hostujących te maszyny, które działają jak serwery. Ten fakt ma poważne konsekwencje dla bezpieczeństwa. O ile serwer nie może zainstalować ściśle sterowanego kodu aplikacji na kliencie i ograniczać wprowadzanie danych przez użytkownika do tego kodu, serwer musi polegać na kodowaniu najczęściej używanym do implementacji interakcji klient-serwer WWW, Hypertext Markup Language (HTML) i Hypertext Transfer Protocol Daemon (HTTPD). Oba są złożone i stosunkowo niedojrzałe. Na przykład nie identyfikują automatycznie źródła danych wejściowych. Rozważ formularz HTML na stronie internetowej, zaprojektowany tak, aby był prezentowany odwiedzającemu witrynę, który wypełnia pola, a następnie klika przycisk, aby przesłać formularz. Po stronie klienta nie ma nic, co mogłoby kontrolować dane wejściowe użytkownika. Zamiast wpisywać imię w polu Imię, użytkownik może wprowadzić długi ciąg losowych znaków. O ile aplikacja przetwarzająca to pole danych nie dokona szeroko zakrojonej weryfikacji danych wejściowych, skutki takich działań mogą być nieprzewidywalne, tym bardziej, że użytkownik zawiera znaki sterujące. Podobnie, jeśli sam serwer WWW nie jest zaprojektowany do sprawdzania poprawności żądań stron, użytkownik może powodować problemy, przesyłając fałszywy Universal Resource Locator (URL). Problem jest jeszcze poważniejszy. O ile aplikacja serwera sieci Web nie jest napisana specjalnie w celu pokonania następujących nadużyć, można jej użyć do spowodowania różnego rodzaju problemów, które potencjalnie mogą doprowadzić do udanej penetracji. Załóżmy, że zamiast po prostu wypełnić formularz, użytkownik tworzy lokalną kopię strony zawierającej formularz, a następnie zmienia kod źródłowy formularza, zapisuje plik i przesyła go do witryny internetowej zamiast oryginalnej strony. Nie narusza to podstawowych protokołów sieci, ale wyraźnie zapewnia znaczny potencjał penetracji. Wiele stron internetowych jest nadal podatnych na tego typu ataki.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *