ATAK Ataki na serwery DNS

Transkrypt

ATAK Ataki na serwery DNS
ATAK
PAWEŁ BASZKOWSKI
Ataki na
serwery DNS
Stopień trudności
Rozróżniamy ataki na serwery DNS różnego rodzaju.
Wszystkie mają na celu dokonanie jak największych
utrudnień w ruchu sieciowym np. poprzez zablokowanie czy
przeciążenie go.
P
Z ARTYKUŁU
DOWIESZ SIĘ
o protokole DNS,
o typach ataków na serwery
DNS,
o tym jak ograniczyć
niebezpieczeństwo ataku.
CO POWINIENEŚ
WIEDZIEĆ
znać technologie sieciowe,
na czym polega rozwiązywanie
adresów sieciowych.
20 HAKIN9 5/2010
oniżej prezentuję kilka typów ataków na
serwery DNS. Dodatkowe opisy pojęć w
sekcji Terminy.
Zatruwanie DNS (ang. cache poisoning) to
technika phishingu polegająca na wysłaniu do
serwera DNS fałszywego rekordu kojarzącego
nazwę domeny z adresem IP. Serwer DNS
zapamiętuje go na pewien czas (do kilku
godzin) i zwraca klientom zapamiętany adres
IP, czego skutkiem jest przeniesienie na
fałszywą stronę.
Cache poisoning może być zastosowany
do uzyskania danych dotyczących np.
logowania do serwisu aukcyjnego czy banku.
Poprzez przekierowanie na identycznie
wyglądającą stronę po wpisaniu nazwy
użytkownika i hasła nic się nie dzieje, tak to
odbieramy. W rzeczywistości dane te zostają
zapisane na komputerze sprawcy, który może
ich użyć na prawdziwej stronie i dokonać
transakcji (np. przelew internetowy) w naszym
imieniu.
DNS spoofing – jest to atak na
serwer DNS, który posiada bazę danych
przechowującą numery IP dla poszczególnych
adresów mnemonicznych. Atak DNS spoofing
polega na ingerencji w tablicę DNS i
modyfikacji poszczególnych wpisów tak, aby
klient zamiast do komputera docelowego
kierowany był do komputera atakującego.
Głównie wyróżnia się trzy ataki związane z
fałszowaniem DNS:
•
•
•
Atakujący włamuje się do serwera DNS,
podmieniając odwzorowanie nazw URL
na adresy IP. Zapytanie o dany adres URL
zostaje odesłane do maszyny, która będzie
kontrolowana przez atakującego.
Atakujący może fałszować odpowiedź z
serwera DNS przez kontrolę pomiędzy
klientem, a serwerem nazw. Umożliwia to
bezpołączeniowy charakter protokołu UDP.
Numery sekwencyjne są zwiększane o
jeden, co pozwala bardzo łatwo przewidzieć
ich kolejność. Jeżeli atakujący potrafi
odczytać wymianę pakietów z serwerem
DNS, może przewidzieć numerowanie
sekwencji.
DNS cache może zostać zatruty, jak
opisane wyżej, poprzez przesłanie fałszywej
strefy z dużą wartością pola TTL. Atak jest
wykonywalny przy założeniu, że zdalny
serwer nazw jest kontrolowany przez
atakującego.
DNS Amplification to odmiana ataku DDoS,
polegająca na wysłaniu zapytań do serwerów
DNS ze sfałszowanym adresem zwrotnym
(spoofing). Najczęściej wykorzystuje się do tego
sieć przejętych przez agresora komputerów
(np. duży botnet). Serwery DNS, w odpowiedzi
na dziesiątki lub nawet setki tysięcy zapytań
kierowanych z komputerów agresora, wysyłają
odpowiedzi na jeden komputer, cel ataku
włamywacza, zapychając jego łącze, pamięć i
ATAKI NA SERWERY DNS
moc obliczeniową do granic możliwości.
Atakowany ma małe możliwości obrony
przed takim atakiem, gdyż odfiltrowanie
odpowiedzi od DNS na odpowiedzi
na zadane i na niezadane pytanie jest
praktycznie niemożliwe.
W maju 2006 w ten właśnie sposób
zostało zaatakowane i doprowadzone do
upadku przedsiębiorstwo Blue Security,
które walczyło ze spamem.
DRDoS (ang. Distributed Reflection
Denial of Service) – jedna z nowszych
odmian ataku odmowy dostępu DoS.
Powstała w wyniku połączenia metody
zalewania żądaniami synchronizacji
pakietów SYN (SYN flood) i metod
wykorzystywanych przy rozproszonych
atakach odmowy dostępu DDoS.
Polega na generowaniu specjalnych
pakietów SYN, których adres źródłowy
jest fałszywy – jest nim adres ofiary.
Następnie duża liczba takich pakietów
jest wysyłana do sieci. Komputery, do
których one docierają, odpowiadają
pakietami SYN/ACK kierowanymi
na adres pochodzący z fałszywego
nagłówka. W wyniku czego ofiara jest
zalewana olbrzymią ilością pakietów z
wielu hostów.
W porównaniu do tradycyjnego
ataku typu DDoS utrudnia to wykrycie
rzeczywistego źródła ataku.
SYN flood to jeden z popularnych
ataków w sieciach komputerowych.
Jego celem jest głównie zablokowanie
usług danego serwera (DoS). Do
przeprowadzenia ataku wykorzystywany
jest protokół TCP.
Luka w protokole DNS
Luka wykryta przez specjalistę ds.
bezpieczeństwa sieciowego Dana
Kaminsky'ego, umożliwia przejęcie
kontroli nad serwerami nazw. Problem
dotyczy protokołu DNS, na atak podatne
są wszystkie serwery niezależnie od
platformy. Atakujący dzięki wykorzystaniu
luki może przejąć kontrolę i przekierować
ruch w inne miejsce.
Okazało się, że wysłanie do serwera
DNS serii odpowiednio przygotowanych
zapytań może spowodować
automatyczne przekierowanie ofiary z
bezpiecznej witryny na niebezpieczną.
Co ważne, cała operacja będzie dla
atakowanego internauty zupełnie
niezauważalna. Taka technika
przestępcza nazywana jest zatruwaniem
DNS (DNS poisoning) – do tej pory
przestępcy korzystali jednak z niej raczej
dzięki różnym lukom w aplikacjach
instalowanych na komputerze. Tym razem
problem jest znacznie poważniejszy,
ponieważ luka dotyczy oprogramowania
odpowiedzialnego za funkcjonowanie
sieci WWW.
Atakujący mogą bez użycia phishingu
przekierować ofiary na oszukańcze
witryny. Przy lepszym przygotowaniu
nie tylko strony, ale znaczna część
ruchu może zostać przekierowana, co
spowoduje uzyskanie dostępu do wielu
poufnych danych.
Luka wykryta przez Kaminsky'ego
dotyczy sposobu jak serwery uzyskują
informacji od siebie nawzajem. Gdy
serwer DNS nie posiada informacji,
próbuje ją uzyskać od innego serwera.
Luka pozwala wysłać tak spreparowane
dane, że serwer DNS uznaje je za
prawidłowe.
Metodologia
dokonanych ataków
Ataki bazują na 2 głównych kwestiach.
Po pierwsze mimo wykrycia
luki w systemie informatycznym
administratorzy i tak nie aktualizują
systemów. Jak informuje NASK, który
dokonał takiego sprawdzianu analizy
ponad 150 mln zapytań DNS do
serwerów domeny .pl okazało się, że
blisko 70% resolverów (znajdujących się
w polskich klasach adresowych) jest nadal
podatna na atak typu cache poisoning.
Po drugie, ataki bazujące na tym
fakcie wykorzystują znane mechanizmy
ataku. I tak atak SYN flood polega
na wysyłaniu dużej ilości pakietów
z ustawioną w nagłówku flagą
synchronizacji (SYN) i najczęściej ze
sfałszowanym adresem IP nadawcy (IP
spoofing). Pakiety TCP z ustawioną flagą
SYN służą do informowania zdalnego
komputera o chęci nawiązania z nim
połączenia. Podczas takiego ataku
serwer, który otrzymał pakiet z flagą SYN
na port, który jest otwarty, odpowiada
na każdy pakiet zgodnie z zasadami
protokołu TCP wysyłając pakiet z
ustawionymi flagami synchronizacji (SYN)
i potwierdzenia (ACK) do komputera, który
w tym wypadku nie istnieje, istnieje, ale
nie zamierzał nawiązywać połączenia z
atakowanym hostem lub jest to komputer
atakowanego, który specjalnie nie
odpowiada. Powoduje to przesyłanie
dużych ilość danych i obciąża łącze
sieciowe.
Oprócz odpowiedzi na pakiety SYN
atakowany komputer zapisuje w tablicy
stanów połączeń informację, że nastąpiła
próba połączenia i wysłano potwierdzenie
(pakiet z flagami SYN i ACK). Tablice te
są przechowywane w pamięci RAM, a
ich wielkość jest ograniczona. Jeżeli taki
atak będzie powtarzany a liczba takich
pakietów będzie bardzo duża, w pewnym
momencie nastąpi przepełnienie tablicy
połączeń atakowanej maszyny co
spowoduje, że ów komputer nie będzie
akceptował następnych przychodzących
połączeń. Serwer wówczas będzie cały
czas w stanie oczekiwania na pakiety
ACK, które nigdy nie nadejdą.
Listing 1. Określenie pola TTL
domena.com: type A, class inet, addr 212.77.100.102
Name: domena.com
Type: Host address
Class: inet
Time to live: 15 minutes
Data length: 4
Addr: 212.77.100.102
domena.net: type A, class inet, addr 192.168.1.5
Name: domena.net
Type: Host address
Class: inet
Time to live: 1 day, 15 hours, 38 minutes, 29 seconds
Data length: 4
Addr: 192.168.1.5
5/2010 HAKIN9
21
ATAK
Ciągły atak SYN flooding
powoduje zaprzestanie odpowiadania
na nowe zapytania. Jak również
spowalnia obsługiwanie otwartych
połączeń poprzez znaczny wzrost
zapotrzebowania na zasoby komputera
(przede wszystkim pamięć). W skrajnym
przypadku może spowodować
zawieszenie systemu.
Atak z wykorzystaniem DNS
spoofing polegać będzie na podszyciu
się pod stronę np. banku, co w efekcie
doprowadzi do uzyskania dostępu do
konta ofiary. Może być dokonany też na
stronę WWW dużej korporacji, czego
efektem będzie przejęcie klientów.
Dla serwera FTP podszycie
spowoduje przejęcie danych wysłanych
na serwer przez ofiarę lub podstawienie
własnych w przypadku, gdy pobierane są
jakieś pliki.
Ciekawy sposób to podszywanie
się pod systemy automatycznego
sprawdzania najnowszej wersji
oprogramowania. Gdy intruz podszyje
się pod serwer, z którego korzysta
ofiara może spowodować instalowanie
oprogramowania podstawionego i
obejście zabezpieczeń opartych na
dostępie z wybranych komputerów,
puli adresowej lub poprzez inne
obostrzenia.
Przykład ataku
na serwer DNS
Przykładowy atak przy użyciu DNS
spoofing. Spróbujemy dokonać
ingerencji w tablicę DNS i modyfikację
poszczególnych wpisów tak, aby klient
zamiast do komputera docelowego
skierowany był do komputera
atakującego.
Każdy serwer DNS posiada swoją
własną pamięć podręczną, gdzie
przechowuje informacje na temat
ostatnio przeprowadzonych mapowań.
Czas przechowywania informacji określa
pole TTL danego komunikatu DNS.
Oznacza to, że jeśli intruzowi udałoby
się przesłać serwerowi spreparowaną
przez siebie informację to zostałaby
ona zapamiętana i użyta przy każdym
następnym zapytaniu. Wiadomo też, że
każdy serwer DNS nasłuchuje na porcie
53 i jest gotowy przyjąć jakiekolwiek
zapytanie pochodzące od dowolnego
komputera w Internecie. Intruz może więc
wykorzystać te dwie cechy serwerów
DNS na potrzeby ataku, gdyż dzięki
nim sam może zadać serwerowi DNS
dowolne zapytanie i w odpowiedzi,
którą na nie wyśle w polu TTL wpisać
maksymalną wartość. Po tym zabiegu
każdy, kto zada serwerowi DNS takie
samo pytanie, otrzyma odpowiedź
Tabela 1. Przykładowy scenariusz ataku
Etapy
Opis
Czas od rozpoczęcia
1
Odpytywany jest serwer o domenę domena.com.
Informacje zostają zapamiętane w pamięci
podręcznej.
ok. 5 sekund
2
Rozpoczęcie ataku DoS przeciw serwerowi
autoryzacji. To spowoduje zapchanie go, nie będzie
w stanie odpowiadać na żadne zapytanie.
10 – 15 sekund
3
Intruz zadaje serwerowi zapytanie o IP komputera
domena.com
15 minut
4
Zaczyna się wysyłanie serwerowi podstawionych
odpowiedzi z adresem źródłowym komputera
autoryzacji z ustawioną maksymalną wartością
TTL, która zawiera informację o komputerze
domena.com jako hack.int.pl. Jest to łącznie 65535
pakietów, każdy z identyfikatorem odpowiedzi.
15 minut i 5 sekund
5
Zakończenie wysyłania podstawionych pakietów.
Teraz serwer ma w swojej pamięci podręcznej
podstawione dane dotyczące komputera
domena.com
15 minut i 25 sekund
6
Nieświadomy użytkownik wydaje polecenie telnet
domena.com i zostaje połączony z hack.int.pl
30 minut
22 HAKIN9 5/2010
pochodzącą z pamięci podręcznej, czyli
z informacji podstawionych przez intruza.
W ten sposób intruz nie musi znać
dokładnego czasu, w którym atakowany
serwer DNS będzie zadawał pytanie.
A co z identyfikatorem odpowiedzi?
Jeśli używane jest oprogramowanie
BIND, identyfikator odpowiedzi jest
liczbą losową i określenie jej jest
praktycznie niemożliwe. Musiałby wysyłać
pakiety wraz ze wszystkimi możliwymi
wartościami.
Jeśli serwer DNS będzie działał na
platformie Windows (NT lub nowszej
Server 2003 i wzwyż) to okazuje się
że generowane są identyfikatory pytań
(przewidywalne, bo każde kolejne
zapytanie ma identyfikator większy o
jeden w porównaniu do poprzedniego).
Przewidzenie więc prawidłowego
identyfikatora nie będzie skomplikowane.
Potrzebny jeszcze adres źródłowy.
Wydając odpowiednie polecenie
dowiemy się ile serwerów nazw obsługuje
daną domenę. To, z którego skorzystać
atakowanym serwerem DNS, można
określić przez pole TTL. Na Listingu 1
prezentowany jest tego przykład.
Pole TTL (Time to live:) zawiera
informację na temat przechowywania
danych w pamięci podręcznej. Oznacza
to, że po 15 minutach informacja
dotycząca serwera domena.com
zostanie usunięta z pamięci podręcznej.
Dla porównania informacja o domena.net
będzie przechowywana znacznie dłużej,
bo ponad 1 dzień.
Przykładowy scenariusz ataku czy
przetestowania próby ataku na serwer
DNS wykonamy przy użyciu komputera
intruza (hack.int.pl). Celem będzie
spowodowanie, by po wydaniu polecenia
telnet domena.com komputer użytkownika
połączył się z komputerem intruza.
Szczegółowy scenariusz postępowania
znajduje się w Tabeli 1.
Taki atak ma duże szanse na
powodzenie.
Kilkanaście sekund między
rozpoczęciem a zakończeniem wysyłania
podstawionych pakietów (punkty 4 i 5)
to czas wystarczający na przesłanie do
atakowanego serwera 65535 pakietów.
Stwierdzone jest, że długość każdego z
tych pakietów wynosi około 100 bajtów.
ATAKI NA SERWERY DNS
W opisywanym scenariuszu zakładamy
intruza w tej samej podsieci i łączem 10
Mbps. Wystarczyłoby nam kilka sekund,
ale dla pewności wykonujemy to w
kilkanaście. Ze względu na wydajność
urządzeń aktywnych i gotowość do
przyjęcia ilości pakietów.
Te kilka sekund wyliczamy ze wzoru:
(iP*dP)*8/1024*1024/S=T
T – czas potrzebny na wysłanie
pakietów (sek),
IP – ilość danych (pakietów) do
wysłania,
DP – długość każdego pakietu,
S – prędkość łacza (Mbps),
(65535*100)*8/1024*1024/10 = 5 sek.
Jak się obronić
przed atakami?
Jednym ze sposobów na zapobieganie
atakom (np. typu SYN flood) jest
Terminy
BIND (Berkeley Internet Name Domain, poprzednio: Berkeley Internet Name Daemon) jest popularnym serwerem (demonem) DNS. Został stworzony
przez Paula Vixie w roku 1988 podczas jego pracy w DEC. BIND jest jednym z najpopularniejszych serwerów DNS wykorzystywanym w systemach
Linux i Unix. BIND stanowi niezmiernie ważny składnik, zapewniający poprawne działanie systemu nazw w Internecie. Wielu użytkowników globalnej
sieci bezwiednie korzysta z serwera BIND, kiedy ich przeglądarka WWW odpytuje o adres IP komputer udostępniający żądaną stronę.
Nowa wersja BIND 9 została napisana od zera, aby rozwiązać część problemów z architekturą poprzednich wydań tego programu, gdzie
każda była kontynuacją poprzedniej i ulepszając ją zawierała również jej słabości. W wersji 9 zapewniono obsługę rozszerzeń bezpieczeństwa
(DNS Security Extensions), dodano obsługę rekordów TSIG (uwierzytelnianie kryptograficzne), powiadomień DNS, nsupdate (ułatwiona aktualizacja
rekordów DNS), IPv6, czyszczenie rekordów rndc (rndc flush), widoków, pracy wieloprocesorowej oraz poprawiono poziom przenośności kodu
między różnymi platformami.
BIND był rozwijany od wczesnych lat 80-tych XX wieku w ramach projektów DARPA. W połowie dekady prace nad serwerem przejęła
korporacja DEC. Jednym z jej pracowników biorących udział w projektowaniu BIND-a był Paul Vixie, który kontynuował swoją pracę po opuszczeniu
tej firmy. Potem stał się jednym z założycieli ISC (Internet Software Consortium), organizacji zarządzającej standardami Internetu, która przejęła
prace nad dalszym rozwojem BIND-a.
BIND 9 powstał podczas realizacji kilku komercyjnych oraz wojskowych projektów. Firmy wykorzystujące Unix chciały zapewnić, by BIND był
ciągle konkurencyjny (bezpieczniejszy) względem serwerów DNS oferowanych przez Microsoft. Rozwój protokołu DNSSEC był wspierany przez
wojsko USA, które chciało zwiększyć bezpieczeństwo systemu nazw.
DNS (Domain Name Service) to hierarchiczny system nazw domenowych dla urządzeń zainstalowanych w Internecie. Pozwala na rozwiązywanie
nazw konkretnych hostów na ich adresy IP. Podstawowa zasada DNS to fakt nie posiadania jednego centralnego serwera, a przynajmniej kilku,
przechowujących nazwy domen i ich adresów IP. Jest to zabezpieczenie przed awarią jednego, tak by drugi z serwerów mógł przejąć jego rolę jako
zapasowy serwer DNS. Kilkanaście głównych serwerów (root) nie utrzymuje pełnej listy adresów, które możemy znaleźć w Internecie, a listę innych
serwerów DNS, które znają drogę do danego adresu.
DoS (Denial of Service) to atak na system komputerowy lub usługę sieciową w celu uniemożliwienia działania poprzez zajęcie wszystkich wolnych
zasobów.
DDOS (Distributed Denial of Service) – atak na system komputerowy lub usługę sieciową w celu uniemożliwienia działania poprzez zajęcie wszystkich
wolnych zasobów, przeprowadzany równocześnie z wielu komputerów (np. Zombie).
DNSBL jest to oparta na DNS, usługa wykorzystywana do publikowania czarnych list adresów IP nadawców spamu. Jest wykorzystywana w wielu
programach antyspamowych.
Phishing – w branży komputerowej, oszukańcze pozyskanie poufnej informacji osobistej, jak hasła czy szczegóły karty kredytowej, przez udawanie
osoby godnej zaufania, której te informacje są pilnie potrzebne. Jest to rodzaj ataku opartego na inżynierii społecznej. Termin został ukuty w połowie
lat 90. przez crackerów próbujących wykraść konta w serwisie AOL (America On Line). Atakujący udawał członka zespołu AOL i wysłał wiadomość do
potencjalnej ofiary. Wiadomość zawierała prośbę o ujawnienie hasła, np. dla zweryfikowania konta lub potwierdzenia informacji w rachunku. Gdy ofiara
podawała hasło, napastnik uzyskiwał dostęp do konta i wykorzystywał je w przestępczym celu, np. do wysyłania spamu. Termin phishing jest niekiedy
tłumaczony jako password harvesting fishing (łowienie haseł). Inni utrzymują, że termin pochodzi od nazwiska Briana Phisha, który miał być pierwszą
osobą stosującą techniki psychologiczne do wykradania numerów kart kredytowych, jeszcze w latach 80. Jeszcze inni uważają, że Brian Phish był
jedynie fikcyjną postacią, za pomocą której spamerzy wzajemnie się rozpoznawali. Dzisiaj przestępcy sieciowi wykorzystują techniki phishingu w celach
zarobkowych. Popularnym celem są banki czy aukcje internetowe. Phisher wysyła zazwyczaj spam do wielkiej liczby potencjalnych ofiar, kierując je
na stronę w Sieci, która udaje rzeczywisty bank internetowy, a w rzeczywistości przechwytuje wpisywane tam przez ofiary ataku informacje. Typowym
sposobem jest informacja o rzekomym zdezaktywowaniu konta i konieczności ponownego reaktywowania, z podaniem wszelkich poufnych informacji.
Strona przechwytująca informacje – adres do niej był podawany jako klikalny odsyłacz w poczcie phishera – jest łudząco podobna do prawdziwej,
a zamieszanie było często potęgowane przez błąd w przeglądarkach, który pozwalał zamaskować także rzeczywisty adres fałszywej strony. Innym
sposobem było tworzenie fałszywych stron pod adresami bardzo przypominającymi oryginalny, a więc łatwymi do przeoczenia dla niedoświadczonych
osób – np. www.alegro.pl, zamiast www.allegro.pl.
Spoofing polega na podszywaniu się pod inny autoryzowany komputer. Cel pozostaje ten sam, oszukanie systemów zabezpieczających. Tradycyjnie,
podszywanie oznaczało działanie atakującego, polegające na przeprowadzeniu procesu autoryzacji z jednego komputera do drugiego poprzez
sfałszowanie pakietów z zaufanego hosta. Ostatnio podszywaniem określa się dowolną metodę łamania zabezpieczeń autoryzacyjnych opartych na
adresie lub nazwie hosta. Rodzajami spoofingu jest: ARP spoofing, DNS spoofing, IP spoofing, Route spoofing, Non-blind i Blind spoofing.
5/2010 HAKIN9
23
ATAK
wdrożenie do systemu firewalli, które
limitują ilość pakietów SYN przesyłanych
do danego serwera lub implementują
mechanizm SYN cookies.
Kolejny ze sposobów to
sprawdzenie, czy serwer DNS, z którego
korzystamy, jest podatny na atak,
można użyć w tym celu narzędzia DNS
Checker. Na uwagę zasługuje także
zróżnicowany test, który sprawdza
przypadkowość portów źródłowych i
identyfikatorów transakcji, stworzony
przez DNS-OARC.
Przed DNS spoofing ochronić może
wyłączenie obsługi pamięci podręcznej
przez serwery DNS. W ten sposób intruz
nie będzie mógł wprowadzić do pamięci
nieprawdziwych danych. Nie wyeliminuje
w pełni, ale zmusi do przewidzenia, kiedy
ofiara zleci serwerowi DNS zmapowanie
danego adresu IP czy nazwy komputera.
Wprowadzi to do scenariusza ataku
dodatkowe przeszkody i zwiększy
prawdopodobieństwo nieudanego ataku.
Rozwiązanie nie jest idealne, ostatnio
używane dane nie będą w pamięci
podręcznej, więc zwiększony będzie
nieco ruch sieciowy. Mimo to, jest to
skuteczna metoda zwiększenia poziomu
bezpieczeństwa protokołu.
Czynnikiem powodującym tak
duże zagrożenia przy korzystaniu
z DNS jest fakt wykorzystywania
przez niego bezpołączeniowego
protokołu UDP. Najrozsądniejszym
wyjściem z sytuacji wydaje się więc
zastosowanie w jego miejsce protokołu
TCP. Oprogramowanie BIND używa w
pewnych warunkach TCP – dzieje się
tak np. wtedy, gdy komunikat DNS ma
długość większą niż 512 bajtów. Gdyby
przerobić oprogramowanie BIND w taki
sposób, aby cały czas korzystało ono z
TCP, problem podrabiania odpowiedzi
DNS zostałby rozwiązany.
Obecnie trwają prace związane
z wdrożeniem w Internecie protokołu
DNSSEC. Jest on zaprojektowanym
praktycznie od początku
odpowiednikiem DNS, jednak w trakcie
jego projektowania główny nacisk
położono na bezpieczeństwo. Podczas
mapowania adresów wykorzystuje
on infrastrukturę klucza publicznego
serwerów oraz odpowiednie certyfikaty
24 HAKIN9 5/2010
potwierdzające autentyczność
odpowiedzi. Jest to oczywiście bardzo
bezpieczne rozwiązanie, posiadające
jednak pewną istotną wadę – nie jest
kompatybilne ze starszą wersją DNS.
Wymaga, aby wszystkie serwery DNS
w Internecie korzystały z DNSSEC, co
oczywiście znacznie utrudni szybkie
jego upowszechnienie. Bardzo ważnym
krokiem, poczynionym przez twórców
BIND-a, było zaimplementowanie
obsługi DNSSEC w najnowszej wersji
ich oprogramowania. Oznacza to, że
poszczególne serwery DNS mogą
pracować jednocześnie ze starszą i
nowszą wersją protokołu. Na pewno
przyspieszy to upowszechnienie
się DNSSEC, jednak stopień
skomplikowania konfiguracji potrzebnej
do prawidłowego działania nowego
protokołu nie wróży mu w najbliższej
przyszłości lawinowego przypływu
nowych użytkowników.
Wielorakość usług świadczonych w
Internecie uniemożliwia sporządzenie
szczegółowego wykazu wszystkich
sytuacji, w których bierne korzystanie z
protokołu DNS jest niebezpieczne. Są
też niestety usługi, które do swojego
działania wymagają DNS-u, nie
może więc próbować obejść tego i
wpisywać np. bezpośrednio adresu IP.
W takim przypadku nie ma oczywiście
możliwości rezygnacji z tego protokołu.
Jednym z najważniejszych przykładów
jest tu usługa poczty internetowej, która
swoje działanie opiera w dużym stopniu
na DNS.
Jeśli mówimy o DdoS, to nie ma
takiego łącza, którego nie da się
zapchać ruchem – ataki powyżej 20
GB/s czy 20 mln pakietów na sekundę
już się zdarzają. W świecie połączeń
internetowych o przepływnościach 2, 10,
34, 100, 155, 622 czy nawet 1000 MB/s
taka wartość robi wrażenie.
Dostawcy usług oraz dostawcy
sprzętu tworzą filtry ruchowe.
Wydzielają adresację IP urządzeń
przenoszących ruch. Pozwala to na
łatwe odfiltrowanie na brzegu własnej
sieci ruchu kierowanego do urządzeń
sieciowych, a tzw. tranzytowego do lub
z hostów wewnątrz sieci. Realizuje się
to, wydzielając interfejsy osobno do
ruchu zewnętrznego i wewnętrznego.
Kolejny krok to MPLS do ukrycia własnej
sieci przed zewnętrznymi atakami z
Internetu i przenoszenie ruchu w sposób
niepozwalający na odkrycie wewnętrznej
struktury połączeń. Wdrażane są też
konkretne mechanizmy, jak zalecenia
związane z ograniczaniem ruchu do
serwerów głównych systemu DNS i
nakłanianiu albo przekierowywaniu
zapytań do serwerów własnych.
By stwierdzić i zatrzymać atak
DdoS, warto obserwować ruch sieciowy
na interfejsach urządzeń. Obciążenia
procesorów sprawdzimy za pomocą
protokołu SNMP.
Przydatne są wszelkie urządzenia IPS
(Intruder Prevention System) znanych firm
specjalizujących się w zabezpieczaniu
ruchu sieciowego. Są tam wdrożone
algorytmy i dzięki temu urządzenia te są
w stanie wykryć anomalie.
Dodatkowo wszelkie zmiany
używanych standardowych portów na
inne są również skuteczne. Dla przykładu
DNS jednej z popularnych przeglądarek
nie używa standardowego numeru portu
odpowiedzi 53 (UDP), lecz dla każdego
zapytania losuje inny numer portu
(używając 15 bitów, które pozwalają na
wykorzystanie około 32 000 losowych
numerów portów). System radzi sobie też
z usuwaniem zduplikowanych zapytań,
nie pozwalając na więcej niż jedno
żądanie dla tej samej nazwy, typu oraz
docelowego IP.
Podsumowanie
Zawsze należy systemy informatyczne
łatać i aktualizować by były
zabezpieczone oraz kierować się także
zdrowym rozsądkiem, szczególnie
w przypadku wszelkich operacji
dokonywanych w Internecie. Pamiętajmy,
że w Internecie nie jesteśmy anonimowi,
wszelkie działania elektroniczne są
rejestrowane.
Paweł Baszkowski
Właściciel i założyciel IT Studio, inżynier informatyk z
wieloletnim doświadczeniem w branży IT. Zarzadzał i
zarządza sieciami i telekomunikacją (m.in. w logistyce,
bankach, automatyce przemysłowej). Kierowal
i uczestniczył w wielu wdrożeniach i projektach
informatycznych. Jest absolwentem MBA, uwielbia
pracę techniczną. Kontakt z autorem: [email protected], (www.it-studio.pl ).

Podobne dokumenty