Subwencja ogólna składa się z 3 części



Yüklə 2,44 Mb.
səhifə52/53
tarix07.09.2018
ölçüsü2,44 Mb.
#79700
1   ...   45   46   47   48   49   50   51   52   53

Ta metoda nosi nazwę przejmowania sesji (ang. session hijacking).

Aby mieć możliwość śledzenia przesyłanych pakietów, konieczne jest korzystanie ze sniffera, co oznacza, że haker musi mieć uprawnienia administratora na komputerze, z którego przeprowadza atak. Przejmowanie sesji jest więc połączeniem metod: węszenia i IP-spoofingu.

Aby doprowadzić do przerwania połączenia TCP należy je wcześniej rozsynchronizować. Wykorzystuje się do tego właściwość protokołu TCP polegającą na tym, że jeśli numery sekwencji pakietu nie pokrywają się z wartościami oczekiwanymi przez komputer, to zostaną one odrzucone.


Aby tego dokonać można wykorzystać jedną z trzech metod[22]:

?aktywne rozsynchronizowanie

?wczesne rozsynchronizowanie

?rozsynchronizowanie pustymi danymi


Aktywne rozsynchronizowanie
Metoda ta wiąże się z przerwaniem istniejącego już połączenia. Atakujący modyfikując ramki wymusza rozsynchronizowanie połączenia TCP, tak że komputery nie mogą wymieniać między sobą danych. Po rozsynchronizowaniu, numer sekwencji klienta nigdy nie jest równy poprzednio wysłanemu przez serwer potwierdzeniu oczekiwanego numeru sekwencji, dlatego serwer nie akceptuje danych i odrzuca pakiet. Następnie haker za pomocą swojego komputera przechwytuje oryginalne pakiety i tworzy ich zamienniki, które są akceptowane zarówno przez klienta, jak i serwer. Atakujący jest w stanie modyfikować dowolne dane ze strumienia, ponieważ wszystkie transmisje przechodzą przez jego komputer. W ten sposób może on do oryginalnego żądania klienta własne. Serwer po otrzymaniu pakietu odpowiada na polecenia wydane przez hakera, a także na te wydawane przez prawdziwego klienta. Przed przekazaniem odpowiedzi serwera do klienta, atakujący może usunąć odpowiedzi na swoje polecenia tak, aby użytkownik nie zauważył jego obecności.

klient haker serwer


Rys. 12. Modyfikowanie żądań klienta i usuwanie odpowiedzi serwera

Źródło: Opracowanie własne


Wczesne rozsynchronizowanie
Powoduje on przerwanie połączenia między klientem a serwerem we wczesnej, konfiguracyjnej fazie. Atakujący podglądając pakiety oczekuje na potwierdzenie zsynchronizowanego połączenia SYN/ACK wysyłane podczas drugiej fazy transmisji przez serwer do klienta. Gdy je zauważa wysyła do serwera pakiet wyzerowania RST, a następnie pakiet zsynchronizowanej odpowiedzi SYN, z parametrami identycznymi jak w pakiecie SYN/ACK serwera. Pakiet hakera ma jednak inny numer sekwencji. Po otrzymaniu pakietu RST serwer zamyka połączenie, a po otrzymaniu pakietu SYN, otwiera nowe połączenie przez ten sam port, ale z innym numerem sekwencji. Do prawdziwego klienta serwer wysyła z powrotem pakiet SYN/ACT, który zostaje przechwycony przez hakera. Wtedy atakujący wysyła do serwera swój pakiet ACT, dzięki czemu serwer przełącza się w tryb połączenia zsynchronizowanego.
Rozsynchronizowanie pustymi danymi
Atak ten polega na wysyłaniu dużej ilości pustych danych zarówno do klienta, jak i serwera. Dane przesyłane przez hakera nie są widoczne dla klienta. Puste dane powodują przełączenie obu komputerów, połączonych w sesji TCP, do stanu rozsynchronizowania, ponieważ niweczą one zdolność komputera do otrzywania połączenia TCP.

Ataki przechwycenia sesji można wykrywać różnymi metodami.


?Wykrywanie stanu rozsynchronizowanego: Numery sekwencji na obu końcach połączenia można odczytać za pomocą specjalnego programu lub urządzenia zliczającego pakiety TCP i wyświetlającego ich zawartość. Po analizie numerów sekwencji można określić, czy połączenie jest w stanie rozsynchronizowanym. Jednak pakiety po obu końcach połączenia można czytać tylko w sytuacji, gdy numery sekwencji nie są zmieniane przez hakera podczas przesyłania danych.

?Wykrywanie nawałnicy potwierdzeń: Obliczenia dotyczące ruchu w lokalnym odcinku sieci połączenia TCP podają, że przed atakiem średnia liczba pakietów bez danych stanowi około połowy wszystkich pakietów. Natomiast podczas ataku hakerskiego liczba pakietów potwierdzeń może wzrosnąć nawet do 300%.

?Obliczanie stanu pakietów: Polega na obliczaniu procentu pakietów i porównania go ze stanem normalnym

Skuteczną metodą zapobiegającą przechwyceniu po rozsynchronizowaniu jest szyfrowanie transmisji na poziomie aplikacji, bądź też zastosowanie kryptograficznej implementacji protokołu TCP. Szyfrowanie strumienia bardzo skutecznie ogranicza zdolność hakera do manipulowania danymi w czasie rzeczywistym.

2.3.3 Konie trojańskie
Koń trojański jest programem często stosowanym przez hakerów pozwalającym na pokonanie zabezpieczeń systemu omijając procedury autoryzacji. Należy zaznaczyć nie jest wirusem komputerowym, ale ze względu na swoje działanie często bywa z nimi utożsamiany. Konie trojańskie mogą być zaszyte w praktycznie każdym programie, a zatem ich wykrycie jest bardzo trudne. Hakerzy często modyfikują istniejące programy i tworzą własne wersje w celu podmiany oryginału. Rezydując w plikach binarnych i pracując w tle nie ujawniają swojej obecności.

Zasada działania konia trojańskiego jest dosyć prosta. Uruchomiony zainfekowany program, wykonuje normalną pracę, bezpośrednio wynikającą z przeznaczenia programu (np. gra, demo. program użytkowy), lecz dodatkowo, w tle, wykonuje niezauważalne dla użytkownika operacje (najczęściej po prostu niszczy - kasuje lub zamazuje - dane na dysku twardym). Konie trojańskie najczęściej przenoszą się w plikach udających nowe, popularne programy kompresujące (np. ZIP, ARJ, RAR) lub też udają programy narzędziowe do obsługi dysków.

Większość koni trojańskich jest tak tworzona, aby uruchamiać się przy starcie systemu[23].
Klasyfikacja koni trojańskich
Jest wiele odmian koni trojańskich. Ich podziału można dokonać w oparciu o sposobów ich działania[24].

?Przejmowanie kontroli nad komputerem. Jest to chyba najpopularniejszy cel tworzenia koni trojańskich. Atakujący chce zdobyć pełną kontrolę nad maszyną ofiary (pełny dostęp do plików, prywatne rozmowy, etc.). Często stara się dojść do tego za pomocą niektórych technik opisanych poniżej.

?Przesyłanie haseł. W czasie swojej aktywności koń trojański stara się zdobyć jak najwięcej haseł, którymi posługuje się ofiara (m.in. z ICQ, IRC, FTP, HTTP, /etc/shadow w systemie UNIX), a następnie przesyła je na wcześniej utworzone konto pocztowe (często na darmowych serwerach, aby utrudnić identyfikację).

?Przechwytywanie wciśniętych klawiszy. Koń trojański zapisuje klawisze wciskane przez ofiarę, a następnie kolejno przekazuje je atakującemu.

Haker dysponując takimi zapisami może dokonać analizy w poszukiwaniu haseł lub innych cennych informacji, pomocnych przy dalszym działaniu.

?Działania destrukcyjne. Konie trojańskie mogą automatycznie wykasowywać różne kluczowe pliki w systemie, formatować partycje oraz prowadzić inną działalność, która ma na celu uszkodzenia systemu operacyjnego maszyny ofiary. Uaktywnienie konia trojańskiego może być natychmiastowe (bomba logiczna) lub zainicjowane przez atakującego (np. przez podanie odpowiedniego kodu aktywującego poprzez konkretny port).

?Ataki typu DoS (Denial of Service). Idea polega na wygenerowaniu takiego ruchu na atakowanym łączu, aby doprowadzić do jego zapchania i sparaliżowania. Potrzebna jest do tego odpowiednia liczba zainfekowanych komputerów (w zależności od odporności atakowanego systemu). Bardziej szczegółowo tej technice ataku napisałem w rozdziale poświęconym odmowie obsługi. Jednym z głośniejszych ataków typu DoS był przeprowadzony w 2001 roku atak na serwery firmy Microsoft, co doprowadziło do zablokowania wielu routerów[25]. Inną odmianą DoS przeprowadzonych z pomocą koni trojańskich może być tzw. mail-bomb, w której atakowany jest konkretny adres e-mail, przez wysyłanie dużej ilości listów, co powoduje zapchanie i zablokowanie skrzynki pocztowej. Liczba komputerów, z których przychodzą te wiadomości powoduje, że jest niemal niemożliwym przefiltrować je wszystkie.

?Działanie Proxy/Wingate. Ta odmiana koni trojańskich jest bardzo oryginalna i ciekawa. Komputer ofiary jest przekształcany w serwer proxy, z którego poprzez sieć może korzystać każdy lub tylko atakujący. Zapewnia to pełną anonimowość intruzowi. Może on wykonywać inne ataki, a ewentualny ślad będzie prowadził do komputera ofiary.

?Działalność Anti-Software. Podstawowym działaniem tego typu koni trojańskich jest wyłączenie programów zabezpieczających komputer (np. firewall), co pozwoli hakerowi przeprowadzić atak na komputer ofiary[26].
Źródła zagrożeń
Podstawową przyczyną zainfekowania komputera jest używanie niesprawdzonych programów, ściąganie z nieautoryzowanych stron „najnowszych wersji" oprogramowania, nierozważne otwieranie listowych załączników. W systemach Unix konie trojańskie mogą być tworzone wyjątkowo łatwo, ponieważ kod źródłowy tego systemu jest ogólnie dostępny i jego zmian może dokonać niemal każdy. Tak zmodyfikowany kod haker może umieścić na stronie WWW (np. w postaci łatki systemu) i czekać aż ofiara go ściągnie i zainstaluje na swoim, komputerze. Wybór strony WWW, na której umieszcza się tak zmienione programy też może być nieprzypadkowy. Przykładem może być nie tak dawne zdarzenie, w którym dokonano zmian kodów źródłowych tcpdump i libpcap[27].

Są jednak sytuacje, w których właśnie udostępnienie kodu źródłowego pozwoliło zlikwidować niebezpieczeństwo. Niechlubnym przykładem takiej sytuacji może być firma Borland ze swoim serwerem InterBase. W roku 1992 na serwerze tej firmy zostało umieszczone „tylne wejście". Pozwalało ono lokalnie i zdalnie modyfikować bazę danych, instalować dowolne oprogramowanie, a także przejąć kontrolę nad maszyną. W lipcu 2000 roku Borland zdecydował się na opublikowanie swoich kodów źródłowych i już grudniu tego samego roku „słabość" serwera InterBase została odkryta. W styczniu 2001 roku centrum bezpieczeństwa internetowego CERT wydało oficjalną wiadomość o tym fakcie[28]. Dziurę oczywiście załatano, ale przez około 6 lat istniała i jest bardzo prawdopodobne, że była często wykorzystywana.


Metody wykrywania i usuwania
Jest wiele dziur w systemach, o których użytkownik nie ma świadomości. Zatem trzeba być na bieżąco z informacjami na temat bezpieczeństwa. Użytkownik powinien być uczulony na nienormalne działanie komputera (np. notorycznie wyświetlane komunikaty o błędnie wprowadzonym haśle). Pomocne mogą być przy tym programy monitorujące ruch sieciowy potrafiące stwierdzić, czy nie ma połączeń z nieznanymi adresami, lub nieuzasadniona aktywność na pewnym porcie. Można też posłużyć się programami typu Anti-Trojan, które potrafią wykryć i usunąć „nieproszonych gości” z systemu, ale trzeba pamiętać, że nie dają one stu procentowego bezpieczeństwa. Większość z nich funkcjonuje na zasadzie rozpoznawana charakterystycznego, wcześniej zaimplementowanego kodu. Niestety wiele nowych koni trojańskich przybywa z dnia na dzień i wiele z nich nie zostało jeszcze zbadanych.
W przypadku, gdy użytkownik znalazł i usunął konia trojańskiego powinien przede wszystkim pozmieniać wszelkiego rodzaju hasła dostępu, gdyż nie ma pewności czy nie zostały one przesłane na komputer hakera.
2.3.4 Ataki typu DoS
W ostatnich czasach coraz częściej mamy do czynienia z tego typu atakiem. Atak DoS (ang. Denial of Service)[29] umożliwia osobie całkowite zablokowanie dostępu do świadczonych usług. Popularność zyskał sobie tym, iż jest łatwy do przeprowadzenia i niestety bardzo ciężko się przed nim chronić. Większość systemów operacyjnych (Windows NT i Unix), routerów, oraz komponentów sieciowych, pracujących z pakietami, w jakimś stopniu są podatne na ataki DoS[30]. Jeśli haker nie jest w stanie uzyskać dostępu do komputera, może doprowadzić do zablokowania go, używając właśnie tej metody. Oznacza to, że nawet często uaktualniany i dobrze zabezpieczony system może nie być w stanie się obronić. W pewnych przypadkach ataki typu DOS mogą być także częścią innego ataku, mającego na celu uzyskanie dostępu do systemu. Można wymienić dwa główne rodzaje ataków odmowy obsługi[31].
W pierwszym przypadku dochodzi do zablokowania systemu lub sieci w taki stopniu, że aby odzyskać funkcjonalność potrzebna jest interwencja człowieka. Przykładowo jeśli atakujący prześle ofierze pakiety, które nie są oczekiwane, może to doprowadzić do zawieszenia lub przeładowania systemu. Jest to bardzo atrakcyjna metoda zważywszy, że aby unieruchomić komputer potrzeba tylko paru pakietów. Unieruchomienie systemu przy ataku odmowy obsługi bazuje na wykorzystaniu niedoskonałości protokołu TCP/IP.

W drugim przypadku system zasypywany jest taką ilością informacji, że nie jest w stanie na nie wszystkie odpowiedzieć. Jeśli przykładowo możliwe jest obsłużenie przez system 10 pakietów na minutę, to wysłanie przez hakera w ty czasie 20, podczas gdy inni użytkownicy starają się połączyć, doprowadzi do przeciążenia łącza i zablokuje usługę. Jeśli atakujący po pewnym czasie przestanie zalewać system pakietami, maszyna może dalej kontynuować normalną pracę. W przeciwieństwie do pierwszej metody, sposób ten polega na całkowitym obciążeniu sieci do tego stopnia, że niemożliwy jest dalszy transfer danych. W takiej sytuacji nie ma potrzeby interwencji człowieka.


Aby haker był w stanie wygenerować tego typu obciążenie sieci, może posłużyć się techniką zwaną DDoS (Distributed Denial of Service).Jest to zmodyfikowana wersja ataku DoS. Polega na wysłaniu do serwera internetowego w krótkim czasie dużej liczby żądań z wielu różnych adresów - jest to w istocie atak DoS przeprowadzany z setek lub nawet tysięcy komputerów. Z tego powodu DDoS niesie ze sobą nieporównywalnie większe zagrożenie niż zwykły DoS. Typowy DDoS rozpoczyna się wysłaniem przez inicjującego sygnału ataku dla węzłów głównych - kilku komputerów koordynujących pracę wszystkich pozostałych maszyn-węzłów. Sieć węzłów jednocześnie rozpoczyna wysyłać do serwera-ofiary ogromną liczbę żądań, zazwyczaj pobrania strony WWW o skomplikowanej strukturze (wymagającej dodatkowych, złożonych obliczeń po stronie serwera). Taka lawina zapytań powoduje problemy z dostępem do serwera innych użytkowników; przekroczenie możliwości serwera sprawia, iż nie jest on już w stanie poprawnie działać. Słynna seria ataków DDoS miała miejsce w lutym 2000, kiedy to pod naporem masowych zapytań przestało działać kilka znanych serwisów, w tym CNN i Yahoo. W wielu krajach DDoS uznany został za poważne przestępstwo komputerowe[32].

atakujący


system system system system system

w Niemczech we Francji w Finlandii w Bułgarii w Norwegii

ofiara


Rys. 13. Atak przeprowadzony metodą DDos.

Źródło: Opracowanie własne


Przeprowadzenie ataku odmowy obsługi jest bardzo proste, a jego efekt jest niesamowicie destrukcyjny. Sprawa jest o tyle poważniejsza, że wszelkie narzędzia (tzw. exploity) potrzebne do jego przeprowadzenia są łatwo dostępne w Internecie. Do najpopularniejszych exploitów możemy zaliczyć: SYN Flood, Ping of Death oraz Smurf.
SYN Flood
Zasada działa SYN Flood polega wykorzystaniu właściwości trójfazowego uzgadniania połączenia TCP i jest skuteczna w przypadku większości dostępnych systemów operacyjnych. Biorąc pod uwagę ciągle powiększającą się strukturę Internetu, większość przesyłanych pakietów zanim dotrą do miejsca przeznaczenia, przechodzą w drodze przez wiele maszyn. Skutkiem tego, wiele pakietów dociera z dużym opóźnieniem albo ulegała zagubieniu. Aby nawiązać połączenie, serwer musi poczekać na potwierdzający pakiet ACK od klienta. Jeśli go nie otrzyma, ponownie wyśle własny pakiet ACK i zanim odrzuci żądanie połączenia, powtórzy operacje kilkukrotnie (z reguły 5-6 razy). Za każdym razem, gdy serwer ponawia wysłanie pakietu ACK, czas jego oczekiwania zwiększa się dwukrotnie. Tak więc, przy założeniu, że serwer ponawia oczekiwanie 6 razy i zaczyna od opóźnienia 3 sekund, to zanim odrzuci żądanie klienta minie 198 sekund.[33] Korzystając z tych właściwości, haker przy użyciu techniki spoofingu, wysyła pakiety synchronizacji SYN do serwera, z fałszywym adresem zwrotnym, należącym do maszyny, która jest w tym czasie wyłączona lub odłączona od sieci. Serwer odpowie pakietem ACK i będzie czekała na odpowiedź od klienta, która nigdy nie nadejdzie. W rezultacie gniazdko serwera zostanie zablokowany na pewien okres czasu.

Na poniższym rysunku przedstawiłem, jak może wyglądać tego typu atak. Haker (podrobiony.pl) korzystając z podrobionego adresu źródłowego wysyła trzykrotnie pakiet synchronizacji, a zatem serwer (192.168.20.23) za każdym razem nie uzyskuje odpowiedzi na pakiet ACK i nie może zostać ukończone trójfazowe uzgadnianie.

Rys. 14. Atak SYN Flood przeprowadzony przeciwko usłudze Telnetu.

Źródło: Opracowanie własne

Efekt działania tego typu ataku, jest zależny od jego stopnia nasilenia słabości systemu. Początkowo tego typu ataki były uznawane za niemożliwe do wyśledzenia, ponieważ haker korzystał z podrobionego adresy zwrotnego. Dodatkowym utrudnieniem mogły być kolejne zmiany numeru IP atakującego.

Skuteczną obroną jest zmiana adresu IP zaatakowanego komputera. Zaraz potem należy przeprowadzić rekonfigurację serwerów DNS. W efekcie atakujące pakiety będą docierały na zły adres. Metoda ta jest jednak nieskuteczna, jeśli atakujący ustawił jako cel ataku nazwę komputera.


Ping of Death
Specyfikacje RFC 791 dotyczące protokołów internetowych, dopuszczają maksymalny rozmiar pakietów do 65536 oktetów (bajtów), z czego 20 oktetów należy do nagłówka IP[34]. Żądanie ICMP ECHO zawarte w pakiecie IP składa się z 8 oktetów informacji nagłówka ICMP[35] i znajduje się zaraz po kilku oktetach danych w popularnym żądaniu ping. A zatem na pole danych pozostaje 65508 oktetów (65536-20-8=65508). Korzystając jednak z fragmentacji pakietów jest możliwe stworzenie ponad wymiarowego pakietu ECHO zawierającego więcej niż 65508 oktetów. Fragmentacja występuje wtedy, gdy poprzez Internet przesyłany jest pakiet dużych rozmiarów. Wtedy router dzieli taki pakiet na wiele małych kawałków, aby możliwe było jego dalsze przesłanie. Komputer docelowy otrzymuje te fragmenty i nie zacznie przetwarzania pakietu dopóki nie złoży go w jedną całość. Jeśli wewnętrzne 16 bitowe zmienne ulegną przepełnienia (ang. buffer overflow), może doprowadzić to do restartowania lub zawiedzenia komputera. Jest to błąd który występuje w takich systemach jak Windows 95, Windows 3.11, MacOS, Windows NT 3.5.1.

Rozwiązaniem problemu może być przeprowadzenie aktualizacji systemu i zainstalowanie odpowiedniego patcha. Skuteczne jest również ustawienie blokady „pingów” na Firewallu. Ping of Death staje się już raczej „archaiczną” metodą ataku i większość nowszych systemów jest na niego odporna[36].


Smurf
Atak typu Smurf polega na wysyłaniu dużej ilości pakietów ICMP echo (ping) na adresy rozgłoszeniowy (ang. Broadcast Address) z podrobionym adresem źródłowym. W sieci rozgłoszeniowej mogą być potencjalnie setki komputerów i każdy z nich odpowie na pakiet ICMP. Wygeneruje to bardzo duży przepływ danych na podrobiony adres IP i może dojść do przeciążenia sieci. Przy tego typu ataku narażone jest zarówno urządzenie rozgłoszeniowe jak i komputer istniejący pod podrobionym adresem[37].

Aby lepiej zobrazować mechanizm ataku, posłużę się następującym przykładem. Jeśli haker posiada łącze typu ADSL 512kb/s (Neostrada) a jego celem jest sieć przełączalna posiadająca 100 komputerów. W momencie, gdy prześle na adres rozgłoszeniowy strumień 512kb/s pakietów ping z podrobionym adresem źródłowym, zostanie on rozesłany do wszystkich 100 komputerów i w rezultacie zostanie stworzonych dodatkowe 100 pakietów odpowiedzi. Wygeneruje to transfer rzędu 51,2 Mb/s na adres ofiary i spowoduje zablokowanie komputera.

Metodą ochrony przed tego typu atakiem może być wprowadzenie filtrowania wszystkich pakietów wchodzących i wychodzących na routerach jak i zablokowanie adresów rozgłoszeniowych[38].
2.3.5 Przepełnienia bufora
Błędy przepełnienia bufora (ang. buffer overflow) to największy z istniejących podzbiór wszystkich luk w zabezpieczeniach wykryty kiedykolwiek w systemach, umożliwiający uruchomienie na atakowanym komputerze własnego kodu[39]. Początkowo technika ta stosowana była w systemach rodziny UNIX, lecz z biegiem czasu znalazła też swoje miejsce w środowisku systemowym Windows NT[40]. Przepełnienie bufora pozwala wykorzystać uprawnienia atakowanego programu. Celem są funkcje stosowane w nieodpowiedni sposób przez programistów w fazie tworzenia programów w języku C /C++ takie jak strcpy(), strcat(), gets(), nie sprawdzające długości wprowadzanych danych. Przepełnienie bufora polega na dostarczeniu dłuższego łańcucha znaków, niż jest oczekiwany. Można tak zmodyfikować bufor, że adres powrotny funkcji wskaże procedurę, która na przykład uruchomi powłokę z uprawnieniami administratora.

Większość nowoczesnych systemów komputerowych używa stosu, aby przekazać argumenty procedurom i aby zachować lokalne zmienne. Stos jest obszarem pamięci zorganizowanym w ten sposób, że ostatni położony tam element jest z niego pobierany w pierwszej kolejności (kolejka LIFO – ang. Last In First Out). Kiedy program wywołuje funkcję tworzona jest nowa ramka stosu. Ta ramka stosu składa się z argumentów przekazanych do funkcji jak również dynamicznej ilości przestrzeni dla lokalnych zmiennych. Wskaźnik stosu jest rejestrem, który przechowuje aktualną lokacje szczytu stosu. Ponieważ wartość ta stale się zmienia jak tylko nowe wartości odkładane są na szczyt stosu, wiele implementacji również dostarcza wskaźnik stosu, który znajduje się blisko początku ramki stosu. Dlatego też lokalne zmienne mogą znacznie łatwiej być adresowane odpowiednio do tej wartości. Adres zwrotny dla wywołań funkcji jest również zapamiętywany na stosie i jest to przyczyną nadużyć przepełnienia bufora, ponieważ przepełnienie lokalnej wartości w funkcji może nadpisać adres zwrotny tej funkcji, potencjalnie zezwalając hakerowi na wykonanie dowolnego kodu i przejęcia kontroli nad komputerem[41].

Mechanizmy ataków buffer overflow są złożone i trudne do zrozumienia. Wymagane są określone wiadomości z zakresu języków C/C++, asemblera oraz budowy i zarządzania pamięcią komputera. Wiedza taka jest potrzebna także po to, by świadomie chronić siebie i własny system (niezależnie od tego, czy jest to pojedynczy komputer, własny program, czy też sieć komputerowa).

Ochrona przed tymi atakami nie należy do rzeczy prostych, ponieważ źródłem niebezpieczeństwa jest niepoprawny sposób programowania twórców aplikacji. A zatem jeśli nie mamy do dyspozycji kodu źródłowego, na którym można przeprowadzić modyfikacje i ponownie skompilować, niezbędne jest zabezpieczenie od zewnątrz podatnych na atak programów działających na komputerze.

Można tego dokonać na wiele sposobów[42] :

?Zamknięcie portu lub usługi : W przypadku, gdy narażona na atak aplikacja jest elementem systemu i jest instalowana wraz z nim, jeśli jest to możliwe powinna zostać usunięta a porty i usługi z których korzysta muszą być zablokowane .

?Uaktualnienie: W większości przypadków, gdy zostaje wykryty błąd w oprogramowaniu mogący zostać wykorzystany do ataku przepełnienia bufora, producent udostępnia patche lub uaktualnienia rozwiązujące problem.

?Filtrowanie z użyciem Firewalla: Większość firm koncentruje się na ochronie sieci wewnętrznych, przed hakerami przeprowadzającymi atak przepełnienia bufora z pozycji Internetu. W takiej sytuacji skuteczną metodą ochrony może być blokowanie usługi niebezpiecznego programu poprzez ścianę ogniową.

?Zmniejszenie przywilejów podatnych na atak programów: Poprzez uruchamianie oprogramowania z najmniejszymi wymaganymi przywilejami

Rozdział III Rodzaje zabezpieczeń systemów komputerowych.


3.1. Podstawowe zagadnienia bezpieczeństwa
Problematyka systemów komputerowych stała się w ostatnich czasach bardzo popularna. Jedną z przyczyn takiego stanu rzeczy jest rzeczywisty przyrost zagrożenia ze strony komputerowych włamywaczy inną- zjawiska związane z globalizacją gospodarki, jeszcze inną- rozwój technologii informatycznych i Internetu, co powoduje że coraz więcej wcześniej odizolowanych sieci lokalnych posiada teraz połączenie ze światem, co naraża je na ataki hakerów. Istnienie zabezpieczeń i to zabezpieczeń stosunkowo silnych jest więc koniecznością bez względu na wartość przetwarzanej w systemie informacji. Niestety wielu przypadkach konieczność ta bywa uświadamiana dopiero po zaistnieniu naruszenia bezpieczeństwa.

W dokumencie "Trasted Computer Standards Evaluation Criteria", znanym także jako "Orange Book", Departament Obrony USA zdefiniował siedem poziomów bezpieczeństwa komputerowego systemu operacyjnego. Różne poziomy określają różne sposoby zabezpieczania sprzętu, oprogramowania i danych. Klasyfikacja ma charakter "zawierania", co oznacza, że wyższe poziomy mają wszystkie cechy poziomów niższych[43].


Yüklə 2,44 Mb.

Dostları ilə paylaş:
1   ...   45   46   47   48   49   50   51   52   53




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©muhaz.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin