Napastnikiem podejmującym atak na siec komputerowa mogą kierować różne przesłanki: osobiste urazy, słabość zabezpieczeń sieci lub widoki na atrakcyjna zdobycz. Bezpieczeństwo komputerowe to problem złożony, który można rozpatrywać z wielu stron.
Napastnikiem podejmującym atak na siec komputerowa mogą kierować różne przesłanki:
osobiste urazy, słabość zabezpieczeń sieci lub widoki na atrakcyjna zdobycz. Bezpieczeństwo
komputerowe to problem złożony, który można rozpatrywać z wielu stron. Ochrona
informacji (przechowywanej lub przetwarzanej w systemie) przed jej ujawnieniem jest
pierwszoplanowa np. w administracji państwowej, natomiast ochrona informacji przed jej
utrata ma priorytet w bankach.
Logicznie rzecz biorąc niemożliwe jest jednoczesne
rozwiązanie obu tych problemów:
ochrona przed utrata mobilizuje do tworzenia
kopii zapasowych, a każda wykonana kopia
zwiększa liczbę obiektów, które trzeba chronić
przed ujawnieniem. Dlatego musimy ocenić, co
w naszym systemie może zainteresować potencjalnego
włamywacza oraz jakich metod włamań
może on użyć i na tej podstawie opracować skuteczna
taktykę ochrony, cały czas pamiętając o celu
nadrzędnym: system musi działać. W prasie czy
literaturze fachowej rzadko można spotkać opisy
z punktu widzenia napastnika. Dziś zatem spróbujmy
popatrzeć na system okiem włamywacza.
Co w naszych zasobach jest warte włamania?
Zabezpieczając zasoby, czy to na firmowym serwerze
czy domowym pececie, przed ciekawością
postronnych, często zastanawiamy się, czy jest
w nich coś takiego, co mogłoby zainteresować
potencjalnego włamywacza. Nie zawsze muszą
być to konkretne dane. Bywa, ze włamanie może
mieć podłoże czysto ambicjonalne. Cele ataków
możemy podzielić następująco:
Atak na serwer WWW. Może stanowić pole
do popisu dla tych, którzy pragną rozgłosu.
Tacy ludzie włamują się głównie w celu pokazania
się, chociaż przy okazji czynią pewne
zniszczenia; do takich działań należy zaliczyć
ataki na strony WWW polegające na podmienianiu
ich zawartości. Im bardziej znana firma, tym większy splendor spada na dokonującego
włamania. Jeśli jest to jeszcze firma
lub organizacja wzbudzająca wśród użytkowników
sieci \”mieszane uczucia\”, jak np. serwery
Telekomunikacji Polskiej, NASK-u (słynny
atak Gumisiów) czy ZUS-u, to włamywacz
jest traktowany jak skrzyżowanie Robin Hooda
z Janosikiem.
Atak na serwer pocztowy. Jest to dość popularny
sposób na włamanie ze względu na słabości
protokołów pocztowych SMTP i POP.
Dotyczy to zarówno Sendmaila, jak i Qmaila
czy Postfixa. Atrakcyjność takiego ataku polega
na tym, ze program MTA domyślnie działa
z konta roota. Podstawowym sposobem wykorzystania
serwera pocztowego jest uzyskanie
danych o użytkowniku, dzięki którym można
będzie sprobować innego typu ataku, np.
łamania hasła na podstawie zdobytych danych
osobowych, podszywania się pod administratora
w mailu z personalnie skierowana prośba
o podanie hasła \”w celu weryfikacji\” lub rozwinięcia
nazwy użytkownika na adres e-mail,
co jest szczególnie atrakcyjne dla spamerów.
Blokada systemu. Ataki tego typu, zwane
atakami DoS, maja zablokować usługi świadczone
przez system. Sparaliżowanie i uniemożliwienie
funkcjonowania wybranych usług
może stanowić cel sam w sobie, jeśli
atak ma za zadanie blokadę systemu. Często
jednak takie działanie stanowi część ataku
kombinowanego, mającego np. przekierować
pakiety pod pożądany adres dzięki zmianie
rutingu lub oszukaniu DNS, co może być pierwszym
krokiem w ataku man-in-the-middle
(patrz nizej).
Włamania komercyjne. Kolejnym celem włamania
może być kradzież informacji, które
można sprzedać: np. bazy danych adresowych
(zwykle klientów). W praktyce te informacje
sa sprzedawane przez pracowników firmy
– ich kradzież to zatem tzw. atak wewnętrzny,
tym trudniejszy do wyłapania za pomocą
oprogramowania. Bywa, ze włamanie dokonywane
jest na zlecenie konkurencji, a wykradzione
informacje księgowe i finansowe pozwalają
np. wnioskować o kondycji firmy, jej
planach, inwestycjach itd. Mamy wtedy do
czynienia ze szpiegostwem gospodarczym. Interesującymi
danymi są także informacje
o wysokości zarobków, często służące do rozgrywek
personalnych.
Cyberterroryzm. W przypadku serwerów dużych
organizacji handlowych, banków lub
agencji rządowych cennymi informacjami są
dane pozwalające określić planowane miejsca
pobytu VIP-ów lub trasy cennych ładunków.
Mogą być one wykorzystane np. do zamachów
terrorystycznych lub napadów.
Oprócz wykradania danych o dużej wartości
materialnej lub informacyjnej zdarzają sie włamania
przeprowadzane z czystej ciekawości, mające
stosunkowo mała szkodliwość społeczna.
Ma to miejsce zwłaszcza w sieciach osiedlowych
lub sieciach firmowych.
Kto atakuje systemy?
Zapytawszy przeciętnego użytkownika komputera,
kto stanowi największe zagrożenie dla danych,
uzyskamy zwykle dwie odpowiedzi: hakerzy
i wirusy, przy czym w przypadku tych pierwszych
zapytany zwykle miałby problem ze ścisłym
zdefiniowaniem, kogo przez to rozumie.
Informatycy hakerem nazwaliby osobę doskonale
znająca pewne oprogramowanie (system
operacyjny, aplikacje, usługę sieciowa), która dużo
czasu poświecą poszukiwaniu w tym oprogramowaniu
dziur i błędów. Dlatego, biorąc pod
uwagę miejsce tych ludzi w cyklu życia oprogramowania,
powinno sie ich nazywać \”gammatesterami\”.
Po testach alfa (u producenta) i beta
(u wybranych użytkowników przed wprowadzeniem
na rynek) jest to trzeci okres przeszukiwania
oprogramowania pod tym katem.
Interesujące są motywacje: pracownicy realizujący
testy alfa są dobrze opłacani, testy beta
również rzadko są realizowane za darmo, za to
gammatesterzy pracują najczęściej wyłącznie dla
rozgłosu. Producenci oprogramowania żywią do
nich uczucia ambiwalentne: z jednej strony działalność
hakerów pozwala ulepszyć produkt, a zatem
działają oni zgodnie z deklarowana polityka
firmy, z drugiej zaś ich niepowstrzymane dążenie
do rozgłosu pozostaje w konflikcie z wysiłkami
marketingowymi producenta, który stara sie
swój produkt przedstawiać jako bezpieczny
i sprawdzony. Poważni producenci korzystają
jednak z dorobku hakerów i możliwie szybko wypuszczają
aktualizacje (patche, łaty) swoich produktów
usuwające wykryte niedoskonałości.
Niestety, nie wszystkim hakerom wystarcza tak
zdobyty rozgłos i swoje odkrycia prezentują
w postaci tzw. exploitów w internetowych serwisach
o tematyce bezpieczeństwa. Exploit to algorytm
(precyzyjny przepis, zazwyczaj w postaci
skryptu lub programu w C), który pozwala użytkownikowi
o niewielkich kwalifikacjach na wykorzystanie
błędu w oprogramowaniu. Z takich
publikacji korzystają tzw. script kiddies. Lamerzy
z exploitami to niezbyt groźna, ale bardzo dokuczliwa
plaga nękająca administratorów.
Co sprawia, że nasze zasoby mogą stać sie łatwym kąskiem?
Bywa, ze zasoby niemal nie chronione przez wiele
lat przetrwają w sieci niezauważone, a zdarza sie,
ze teoretycznie porządnie chroniony system pada
ofiara hakera. Dlaczego tak sie dzieje? Najczęściej
spotykane przyczyny takiego stanu rzeczy to:
- ignorowanie i niedocenianie zagrożeń wynikających z podłączenia sieci do internetu,
- brak spójnej i jasnej polityki bezpieczeństwa we wszystkich aspektach działania systemu,
- niewłaściwie zaprojektowany i zrealizowany dostęp do internetu,
- błędy w konfiguracji systemu i urządzeń sieciowych,
- dziury w oprogramowaniu,
- niedostateczna kontrola systemu przez jego administratorów,
- niewłaściwie dobrany/skonfigurowany system operacyjny.
Rozwijając powyższe punkty powinniśmy pamiętać,
ze odpowiedz na postawione wcześniej
pytanie składa sie z wielu czynników. Jednym
z nich jest parafraza starego przysłowia: najciemniej
jest pod latarnia. W przełożeniu do świata internetu teza ta brzmi: nie da sie zaatakowac
systemu, o którym się nie wie. Trzymanie w tajemnicy
istnienia serwera, jego adresu IP, informacji
o systemie informacyjnym jaki go obsługuje,
zwykle jest znacznie skuteczniejsze niż najlepszy
firewall.
Oczywiście, nie może to być jedyny sposób
ochrony systemu, ponieważ nawet najlepiej zakonspirowany
komputer może zostać całkiem
przypadkiem wykryty za pomocą coraz powszechniej
spotykanego skanowania całych
klas adresowych w poszukiwaniu słabo zabezpieczonych
hostów. Dlatego jeśli praca z danymi
zgromadzonymi na serwerze nie wymaga
korzystania z sieci, to taka maszyna nie powinna
byc w ogóle do niej podłączona. Jeśli natomiast
musimy umieścić serwer z ważnymi danymi
w publicznej sieci, to istnieje wiele mechanizmów
buforowania połączeń miedzy nim
a światem zewnętrznym (proxy, tunelowanie,
stosowanie połączeń VPN, przekierowywanie
portów), które skutecznie przysłonią go przed
oczami ciekawskich.
Najgorszym z możliwych jest pewny siebie administrator
wszem i wobec głoszący, ze \”jego\”
serwer jest nie do złamania itd. Jak mawiają
(w żartach oczywiście) specjaliści od bezpieczeństwa
sieciowego: włamać sie da nawet na kaloryfer,
pod warunkiem, ze jest obwiązany skrętka.
Jest to oczywiście przesada, ale zawsze znajdzie
się ktoś z większa wiedza i umiejętnościami, kto
takiego krzykacza utemperuje. Mniejsza z tym,
jeśli ucierpi tylko zraniona duma admina, ale co
jeśli w uszkodzonym w ramach nauczki systemie
zgina dane użytkowników?
Można mnożyć przykłady firm, które zakupiły
niezwykle kosztowne rozwiązania bez istotnej
potrzeby lub w których występują rażące dysproporcje
w mechanizmach ochrony, przywodzące
na myśl montowanie skomplikowanych zamków
w drzwiach, które można wyważyć wraz z futryna
mocniejszym kopnięciem. Na nic zdadzą sie
kosztowne systemy filtrów, jeśli administrator
zostawi sobie np. furtkę w postaci modemu, żeby
móc się dostać do sieci będąc w domu.
Tak samo nie można mówić o bezpieczeństwie w sieci
chronionej z zewnątrz przez potężny firewall,
w której uwierzytelnianie haseł odbywa sie na
poziomie sieci Microsoft Network.
Bezpieczeństwo albo wygoda
Niestety bezpieczeństwo pozostaje zwykle
w konflikcie z wygoda użytkowania. Sprytny
napastnik wyszukuje najsłabsze punkty w systemie
i na nich koncentruje swoja uwagę. Dlatego
ważne jest, aby zwracać uwagę na wszystkie
aspekty bezpieczeństwa i utrzymywać zabezpieczenia
poszczególnych elementów na
podobnym poziomie.
Administratorzy muszą
unikać w swej pracy wygodnej rutyny. Centralizacja
zarządzania siecią ułatwia znacznie życie,
ale stwarza nowe pole do popisu dla napastników.
Drobny błąd konfiguracji, ujawnienie hasła
lub jedno ryzykowne zdalne logowanie
z niepewnej stacji może dać napastnikowi dostęp
do wszystkich zasobów sieci. Możemy być
pewni, ze napastnik wykorzysta wszelkie możliwe
luki zarówno programowe, jak w systemie
bezpieczeństwa. Bagatelizowanie problemu na
zasadzie \”może nikt nie zauważy\” to proszenie
sie o kłopoty.
Administrator przez swoje działania (polegające
zwykle na nieustannym upominaniu użytkowników
i zabieraniu im ich ulubionych \”zabawek\”)
na pewno nie wygra konkursu na najpopularniejszego
pracownika w firmie. Jednak to właśnie
dzięki takiej jego postawie dane pozostaną
bezpieczne.
Pamiętajmy, ze każdy system czy pod siec podłączona
do innej sieci jest narażona na ryzyko
ataku. Zwykle to ryzyko można mocno zredukować
poprzez zastosowanie nawet najprostszych
technik zabezpieczeń. Należy jednak pamiętać,
ze dowolny system ochrony jest tylko systemem
redukującym ryzyko, a nie go eliminującym, jak
chcieliby to postrzegać spece od reklamy oraz
użytkownicy.
Najczęściej spotykane sposoby ataku
\”Jeśli nie możesz uzyskać jakiejś informacji, oznacza
to tylko tyle, ze podszedłes do niej od
niewłaściwej strony\” – to stwierdzenie ze znakomitej
książki Rafała A. Ziemkiewicza \”Pieprzony
los kataryniarza\” w zasadzie oddaje sedno problemu
poszukiwania dostępu do danych. Napastnik
ma szeroki wybór sposobów i narzędzi do
dokonania ataku na nasz system. Poniżej przyjrzymy
sie najpopularniejszym z nich:
Sniffing (dosł. węszenie – podsłuch transmisji
danych). Używając programów typu analizator
pakietów można \”podsłuchać\” transmisje
TCP, taka jak np. sesje telnetu czy FTP, gdzie
wszystkie wymieniane dane to \”gołe\” pakiety,
i dzięki temu przechwycić hasło wymagane
przy logowaniu sie; po przechwyceniu hasła
można wejść na konto użytkownika i sprobować
wykorzystać np. exploita, dzięki któremu
spodziewamy sie dostać prawa administratora.
Warto zauważyć, ze programy tego typu
korzystają z \”promiscous mode\”, a wiec aby
uruchomić taki program, należy JUŻ mieć
gdzieś prawa administratora systemu (najlepiej
w domenie, w której znajduje sie obiekt
ataku).
Takie programy to LanWatch, IPtrace,
snoop, sniffit, LinuxSniffer, IPinvestigator,
strobe. Ta forma ataku jest zazwyczaj częścią
bardziej złożonego ataku (połączonego z technikami
hijacking, spoofing), ale częścią mająca
kluczowe znaczenie dla intruza, ponieważ
pozwala ona na szczegółowe zbadanie obiektu
ataku i wykrycie słabych stron systemu.
Spoofing (podszywanie sie pod legalna, czyli
zarejestrowana maszynę) ma na celu ominiecie
zabezpieczeń związanych z dostępem do usług
tylko dla wybranych adresów. Dotyczy to
zwykle usług lokalnych, teoretycznie niedostępnych
z internetu. Programy reprezentujące
ten typ ataków to np. fakerwall, dsniff, etterncap.
Można również podmienić port źródłowy
w celu ominięcia filtru IP, wykorzystując porty
usług służące do wymiany informacji kontrolnej
miedzy klientem a serwerem. Przykładem może
być port 20 TCP usługi FTP, który musi byc tolerowany
przez firewall, jeśli w sieci wewnętrznej
znajduje sie serwer FTP lub jeśli polityka
bezpieczeństwa dopuszcza korzystanie z usługi
FTP przez zdalnych klientów.
Cracking oznacza procedurę łamania haseł
metoda słownikowa lub tez próbkowanie
programu autoryzującego słowami z odpowiednio
przygotowanych słowników. Można
tez próbkować w ten sposób sam program
autoryzujacy (np. w POP3), lecz jest to łatwe
do wykrycia ze względu na ruch generowany
w sieci i obciążenie maszyny autoryzującej.
Plik passwd lub shadow można również uzyskać
wykorzystując błędy oprogramowania
systemowego.
Source routing (atak wyboru trasy) to wykorzystywanie
mało używanej opcji zawartej
w stosie TCP/IP, która pozwala określić dokładna
trasę, jaka ma przebyć pakiet przesyłany
w internecie. Pozwala to atakującemu tak
zmodyfikować pakiet, żeby wyglądał na pochodzący
od zupełnie innego, zaufanego
komputera. Source routing daje szerokie możliwości
podszywania sie pod DNS oraz
przechwytywania sesji użytkowników. Ochrona
przed atakiem tego typu polega na zablokowaniu
na firewallu przesyłania pakietów
z trasa ustawiona przez nadawce.
Man-in-the-middle (człowiek w środku) polega
na tym, ze atakujący \”umieszcza\” sie pomiędzy
komputerem klienckim a serwerem.
W momencie gdy klient otwiera połączenie
z serwerem, maszyna hakera przechwytuje je
(np. za pomocą ataku podszywania sie pod
DNS lub DHCP). Zarówno klient, jak i serwer
uważają, ze komunikują się z właściwą strona,
jednak tak naprawdę haker jest w stanie
dowolnie modyfikować przesyłane pakiety.
Za pomocą tego ataku może uzyskać większy
dostęp do sieci lokalnej lub atakowanego
komputera.
Charakter ataku zależy od rodzaju
połączenia. Może byc to np. przechwycenie
hasła przesyłanego za pomocą protokołu
telnet. W sieciach rozległych, takich jak internet,
trudno jest bronić sie przed atakiem
\”człowiek w środku\”. Na szczęście skuteczne
przeprowadzenie tego typu ataku jest trudne
i wymaga specyficznych warunków. Skuteczna
obrona jest stosowanie szyfrowanych połączeń
SSH i SSL.
Hijacking (porwanie), czyli przechwytywanie
zdalnej sesji legalnego użytkownika systemu
to metoda przejęcia sesji użytkownika oparta
o mechanizm połączeniowy protokołu TCP (3-
way handshaking), na czym opiera sie m.in.
telnet. Polega na wygenerowaniu odpowiedniego
numeru sekwencyjnego i posłaniu go
w pakiecie SYN do atakowanego komputera.
Forma ataku, która trudno wykryć. Administrator
może rozpoznać te formę ataku po wykryciu
stanu DESYNCH połączenia oraz zwiększonej
ilości pakietów TCP ACK w segmencie,
zwiększa sie także współczynnik utraty pakietów.
Aby uchronić sie przed tym rodzajem
ataku, należy zrezygnować z usługi telnet na
rzecz np. SSH lub S/Key, a także zaimplementować
Kerberos.
Denial of Service (DoS) stanowi ogólna nazwę
grupy ataków (wymienionych w ramce
obok), które maja na celu blokadę usług
świadczonych przez system. Przez wysyłanie
niewłaściwie sformowanych pakietów lub floodowanie (zalewanie, ang. flood – powódź)
danego portu systemu można spowodować
zawieszenie danej usługi lub całego
systemu.
Popularne winnuke, teardrop, jolt
i ssping wykorzystują błędy w implementacji
obsługi gniazd (np. zbyt długie pakiety
ICMP). Trudno jest wykryć sprawce, gdyż system
albo nie loguje zdarzenia, albo tez istnieje
możliwość podania błędnego adresu nadawcy
pakietom wysyłanym podczas ataku.
Ratunkiem przed tego typu atakami sa jedynie
patche (czyli łatki) na oprogramowanie
oraz zaopatrzenie sie w odpowiednie narzędzia
logujące zdarzenia.
Exploity sa to małe programiki głównie
w C i PERLu, które wykorzystują dziury w oprogramowaniu
systemowym (np. SUID). Wykorzystują
przepełnienie buforów i skoki podprogramów
w losowe miejsce w pamięci,
normalnie zabronione dla użytkownika (GCC
trampolines), dzięki czemu można uzyskać
prawa administratora systemu. Ta forma ataku
może sie powieść, jednak intruz musi najpierw
zdobyć konto na danej maszynie. Obrona
przed tego typu atakiem jest śledzenie
na bieżąco list dyskusyjnych poświęconych
dziurom w oprogramowaniu sieciowym oraz
regularne sprawdzanie logów.
Pewna ochrona
może być tez zabranie grupie użytkowników
praw dostępu do kompilatorów systemowych
C/C++ lub utworzenie grup użytkowników
z precyzyjnie ustalonymi prawami
dostępu do zasobów systemowych w zależności
do charakteru ich działalności w tym
systemie. Podgrupa programów typu exploit
sa tak zwane remote exploits, czyli programy
zdalnie wykorzystujące dziury w oprogramowaniu
systemowym, a wiec intruz nie musi
mieć konta na maszynie do której chce się włamać. Przykładem może być program przepełniający
zdalnie bufor demona, obsługujący
protokół pocztowy IMAP, nasłuchujący
zgłoszeń na porcie 111.
Backdoory i trojany umożliwiają spektakularne
włamania polegające na uzyskaniu
w ciągu kilkudziesięciu sekund dostępu do
ścisłe strzeżonych informacji. Skuteczne włamanie
to często efekt nie pojedynczego ataku,
a szeregu drobnych, pozornie niepowiązanych
ze sobą zdarzeń rozłożonych w czasie. Należą
do nich np. odebranie dziwnej poczty z atrakcyjnie
wyglądającym załącznikiem, który po
uruchomieniu pozornie nic nie robi, dziwne
zachowanie komputera, próby wysłania przez
niego danych przez internet, mimo ze użytkownik
nic nie chciał wysyłać itp.
Sa to programy, które poza zwykłym przeznaczeniem
wykonują pewne funkcje znane tylko
osobie, która takiego trojana czy backdoora
stworzyła. Mogą być naprawdę niebezpieczne.
Trojany mogą łączyć sie ze swoim twórca
zawsze gdy jesteśmy w sieci i udostępniać mu
pliki z zainfekowanego komputera. Natomiast
backdoor nie wysyła aktywnie informacji, tylko
czeka az ktoś spróbuje połączyć sie do portu,
który otworzył.
Programy typu firewall mogą powstrzymać
trojany od komunikowania sie, ale ze względu
na luki w zabezpieczeniach, zwłaszcza portów
powyżej 1000, nie można być pewnym
tej ochrony. Jedyny skuteczny sposób to nieinstalowanie
oprogramowania, o którym niewiele
wiemy lub otrzymaliśmy je z niepewnego
źródła. Programy typu shareware czy freeware
powinno sie ściągać ze sprawdzonych
serwisów gwarantujących oryginalność plików.
Dobrym zwyczajem jest również skanowanie
ściąganych plików programami antywirusowymi,
a także specjalnymi narzędziami
wykrywającymi trojany.