You are on page 1of 22

Bezpieczestwo sieci w Linuksie.

Wykrywanie atakw i obrona przed nimi


za pomoc iptables, psad i fwsnort
Autor: Michael Rash
Tumaczenie: Andrzej Stefaski
ISBN: 978-83-246-1539-1
Tytu oryginau: Linux Firewalls: Attack Detection
and Response with iptables, psad, and fwsnort
Format: 170x230, stron: 352
Przykady na ftp: 1038 kB
Bezpieczestwo sieci w Linuksie. Wykrywanie atakw i obrona przed nimi
za pomoc iptables, psad i fwsnort
Wykrywanie i zwalczanie atakw sieciowych dla zaawansowanych
Jak wykrywa ataki i broni sieci na rnych warstwach sieciowych?
Jak wykorzysta logi do automatycznego tworzenia regu iptables?
Jak zabezpieczy serwer przy uyciu metod pasywnej autoryzacji?
Kady administrator sieci wie, jak wana jest jej ochrona przed atakami z zewntrz. Wie rwnie, e jest
to nieustajca walka z coraz bardziej zaawansowanymi technikami.
Raz postawiony firewall nie jest w stanie zapewni sieci cakowitego bezpieczestwa w nieskoczono,
dlatego cige poszerzanie swojej wiedzy i umiejtne jej zastosowanie jest nieodczn czci pracy
administratorw. Jeli jeste odpowiedzialny za utrzymanie bezpieczestwa sieci, ksika ta jest dla
Ciebie. Stanowi rdo wiedzy z zakresu wykorzystania oprogramowania open source i systemu Linux
w walce o bezpieczestwo sieci.
Michael Rash, autor wielu publikacji i ksiek, jest ekspertem w dziedzinie ochrony sieci. W ksice
Bezpieczestwo sieci w Linuksie. Wykrywanie atakw i obrona przed nimi za pomoc iptables, psad
i fwsnort przedstawia sposb czenia metod zabezpiecze w systemie Linux przy uyciu iptables, Snort
oraz psad, fwsnort i fwknop, ktrych sam jest twrc. Na praktycznych przykadach udowadnia
skuteczno zastosowanych technologii, ktre s porwnywalne z komercyjnymi, i pokazuje sposoby
ich wykorzystywania. Doczone do ksiki skrypty umoliwiaj przetestowanie omawianych technologii
w praktyce.

Wydawnictwo Helion
ul. Kociuszki 1c
44-100 Gliwice
tel. 032 230 98 63
e-mail: helion@helion.pl

Konfiguracja iptables
Atak i obrona w warstwach modelu OSI
Instalacja i konfiguracja psad
Integracja psad z oprogramowaniem zewntrznym
Konfiguracja systemu wykrywania wama Snort
Przetwarzanie sygnatur Snort na reguy iptables
Automatyzacja przetwarzania sygnatur poprzez fwsnort
Analiza i raporty psad
Instalacja i konfiguracja fwknop
Wizualizacja logw iptables
Poznaj niekomercyjne metody skutecznej ochrony sieci!

Spis treci

PODZIKOWANIA ................................................................................... 13
PRZEDMOWA ........................................................................................... 15
WPROWADZENIE ..................................................................................... 19
Dlaczego wykrywa ataki przy pomocy iptables? ......................................................................20
Co z dedykowanymi sieciowymi systemami wykrywania wama? ...................................21
Gboka obrona .................................................................................................................22
Wymagania .............................................................................................................................22
Literatura ................................................................................................................................23
Strona internetowa ................................................................................................................24
Podsumowanie rozdziaw ....................................................................................................24
1
KONFIGUROWANIE IPTABLES ................................................................. 27
iptables ...................................................................................................................................27
Filtrowanie pakietw z iptables ..............................................................................................28
Tabele ................................................................................................................................29
acuchy ............................................................................................................................29
Dopasowania ......................................................................................................................30
Cele ....................................................................................................................................30
Instalacja iptables ....................................................................................................................31
Konfiguracja jdra ...................................................................................................................32
Najwaniejsze opcje kompilacji Netfilter ...........................................................................33
Koczenie konfiguracji jdra ..............................................................................................35
adowalne moduy jdra kontra opcje wkompilowane i bezpieczestwo ......................35
Bezpieczestwo i minimalna kompilacja ................................................................................36
Kompilacja i instalacja jdra ....................................................................................................37
Instalacja binariw iptables dziaajcych w przestrzeni uytkownika .....................................38
Domylna polityka bezpieczestwa iptables ..........................................................................39

Wymagania polityki bezpieczestwa ................................................................................. 39


Pocztek skryptu iptables.sh ............................................................................................. 41
acuch INPUT ................................................................................................................. 42
acuch OUTPUT ............................................................................................................. 44
acuch FORWARD .......................................................................................................... 45
Translacja adresw sieciowych (NAT) .............................................................................. 46
Uaktywnianie polityki bezpieczestwa .............................................................................. 47
Programy iptables-save i iptables-restore ......................................................................... 47
Testowanie polityki bezpieczestwa: TCP ........................................................................ 50
Testowanie polityki bezpieczestwa: UDP ....................................................................... 52
Testowanie polityki bezpieczestwa: ICMP ...................................................................... 53
Podsumowanie ...................................................................................................................... 54
2
ATAK I OBRONA W WARSTWIE SIECIOWEJ ............................................. 55
Logowanie nagwkw warstwy sieci w iptables .................................................................. 56
Logowanie nagwka IP ..................................................................................................... 56
Definicje atakw na warstw sieci ........................................................................................ 59
Naduycia w warstwie sieci ................................................................................................... 60
ICMP Ping z Nmap ............................................................................................................ 60
Faszowanie pakietw IP (IP spoofing) .............................................................................. 61
Fragmentacja pakietw IP ................................................................................................. 63
Niskie wartoci TTL .......................................................................................................... 63
Atak smerfw (the Smurf Attack) ..................................................................................... 65
Ataki DDoS ........................................................................................................................ 65
Ataki IGMP jdra Linuksa ................................................................................................... 66
Odpowiedzi w warstwie sieci ............................................................................................... 66
Filtrowanie w warstwie sieci ............................................................................................. 67
Odpowied wyzwalana w warstwie sieci .......................................................................... 67
czenie odpowiedzi w rnych warstwach ..................................................................... 68
3
OBRONA I ATAK W WARSTWIE TRANSPORTOWEJ ................................ 71
Logowanie nagwkw warstwy transportowej za pomoc iptables .................................... 72
Logowanie nagwka TCP ................................................................................................. 72
Logowanie nagwka UDP ................................................................................................ 74
Definicje atakw na warstw transportow .......................................................................... 75
Naduycia w warstwie transportowej ................................................................................... 75
Skanowanie portw ........................................................................................................... 76
Przemiatanie portw ......................................................................................................... 84
Ataki przewidujce sekwencj TCP .................................................................................. 85
SYN flood .......................................................................................................................... 85
Obrona w warstwie transportowej ....................................................................................... 86
Obrona protokou TCP ..................................................................................................... 86
Obrona protokou UDP .................................................................................................... 90
Reguy firewalla i listy kontrolne routera ........................................................................... 91
6

Spis treci

4
ATAK I OBRONA W WARSTWIE APLIKACJI ............................................ 93
Dopasowanie cigw znakw w warstwie aplikacji przy uyciu iptables ..............................94
Obserwowanie rozszerzenia porwnujcego cigi znakw w dziaaniu ...........................94
Dopasowywanie znakw niedrukowalnych w warstwie aplikacji ......................................96
Definicje atakw w warstwie aplikacji ...................................................................................97
Naduycia w warstwie aplikacji ..............................................................................................98
Sygnatury Snort ..................................................................................................................98
Wykorzystanie przepenienia bufora ..................................................................................99
Ataki typu SQL injection ..................................................................................................101
Czynnik ludzki ..................................................................................................................102
Szyfrowanie i kodowanie danych w aplikacji ........................................................................105
Obrona w warstwie aplikacji ................................................................................................106
5
WPROWADZENIE DO PSAD ................................................................... 107
Historia .................................................................................................................................107
Po co analizowa logi firewalla? ............................................................................................108
Moliwoci psad ...................................................................................................................109
Instalacja psad .......................................................................................................................109
Administracja psad ...............................................................................................................111
Uruchamianie i zatrzymywanie psad ................................................................................112
Unikalno procesu usugi ................................................................................................112
Konfiguracja polityki bezpieczestwa iptables .................................................................112
Konfiguracja syslog ...........................................................................................................113
Klient usugi whois ............................................................................................................116
Konfiguracja psad .................................................................................................................117
/etc/psad/psad.conf ...........................................................................................................117
/etc/psad/auto_dl ..............................................................................................................123
/etc/psad/signatures ..........................................................................................................124
/etc/psad/snort_rule_dl ....................................................................................................124
/etc/psad/ip_options .........................................................................................................125
/etc/psad/pf.os ..................................................................................................................125
Podsumowanie .....................................................................................................................126
6
DZIAANIE PSAD: WYKRYWANIE PODEJRZANYCH DANYCH ............. 127
Wykrywanie skanowania portw przy pomocy psad ..........................................................128
Skanowanie TCP connect() ..............................................................................................129
Skanowanie TCP SYN ......................................................................................................132
Skanowanie TCP FIN, XMAS i NULL ..............................................................................134
Skanowanie UDP .............................................................................................................135
Ostrzeganie i raportowanie przy pomocy psad ...................................................................137
Ostrzeenia psad wysyane przez email ...........................................................................137
Raporty generowane przez psad do sysloga ....................................................................140
Podsumowanie .....................................................................................................................141
Spis treci

7
ZAAWANSOWANE ZAGADNIENIA PSAD: OD PORWNYWANIA
SYGNATUR DO WYKRYWANIA SYSTEMW OPERACYJNYCH .............. 143
Wykrywanie ataku z wykorzystaniem regu Snort ........................................................... 144
Wykrywanie skanera portw ipEye ................................................................................. 145
Wykrywanie ataku LAND ............................................................................................... 146
Wykrywanie ruchu na 0 porcie TCP ............................................................................... 147
Wykrywanie pakietw z zerow wartoci TTL ............................................................. 147
Wykrywanie ataku Naptha DoS ...................................................................................... 148
Wykrywanie prb rutowania rda ................................................................................ 148
Wykrywanie spamu komunikatora Windows Messenger ................................................ 149
Uaktualnienia sygnatur psad ................................................................................................ 150
Wykrywanie systemw operacyjnych ................................................................................. 151
Aktywne wykrywanie systemw operacyjnych za pomoc Nmap ................................. 151
Pasywne wykrywanie systemu operacyjnego z p0f ......................................................... 152
Raportowanie DShield ......................................................................................................... 154
Format raportw DShield ............................................................................................... 155
Przykadowy raport DShield ........................................................................................... 155
Przegldanie danych o statusie psad .................................................................................... 156
Analizowanie archiwalnych logw ....................................................................................... 159
Tryb informacyjny/ledzenia ................................................................................................ 160
Podsumowanie .................................................................................................................... 161
8
AUTOMATYCZNA OBRONA ZA POMOC PSAD .................................. 163
Zapobieganie wamaniom a aktywna obrona ...................................................................... 163
Minusy aktywnej obrony ..................................................................................................... 165
Rodzaje atakw ............................................................................................................... 165
Faszywe alarmy .............................................................................................................. 166
Reagowanie za pomoc psad na atak .................................................................................. 166
Opcje ............................................................................................................................... 167
Zmienne konfiguracyjne .................................................................................................. 168
Przykady automatycznej obrony ........................................................................................ 170
Konfiguracja automatycznej obrony ................................................................................ 170
Reakcja na skanowanie typu SYN .................................................................................... 171
Reakcja na skanowanie UDP ........................................................................................... 173
Sprawdzanie wersji oprogramowania za pomoc Nmap ................................................ 174
Reakcja na skanowanie typu FIN ..................................................................................... 174
Zoliwe faszowanie skanowania .................................................................................... 175
Integrowanie automatycznych odpowiedzi psad z innymi narzdziami .............................. 176
Interfejs wiersza polece ................................................................................................. 176
Integracja ze Swatch ........................................................................................................ 178
Integracja z wasnymi skryptami ...................................................................................... 179
Podsumowanie .................................................................................................................... 181

Spis treci

9
TUMACZENIE REGU SNORT NA REGUY IPTABLES .......................... 183
Dlaczego warto uywa fwsnort? ........................................................................................184
Dogbna obrona .............................................................................................................185
Wykrywanie wama zorientowane na cel i defragmentacja warstwy sieci .....................185
Mae wymagania ...............................................................................................................186
Bezporednie odpowiedzi ................................................................................................186
Przykady przetumaczonych sygnatur .................................................................................187
Sygnatura Nmap command attempt ................................................................................187
Sygnatura Bancos Trojan z Bleeding Snort .......................................................................188
Sygnatura prby poczenia PGPNet ...............................................................................189
Interpretacja regu Snort przez fwsnort ...............................................................................190
Tumaczenie nagwka reguy Snort ................................................................................190
Tumaczenie opcji regu Snort: logowanie pakietw w iptables ......................................192
Opcje Snort i filtrowanie pakietw w iptables .................................................................195
Niewspierane opcje regu Snort .......................................................................................207
Podsumowanie .....................................................................................................................209
10
URUCHOMIENIE FWSNORT ................................................................... 211
Instalacja fwsnort ..................................................................................................................211
Uruchomienie fwsnort .........................................................................................................214
Plik konfiguracyjny fwsnort ..............................................................................................215
Budowa skryptu fwsnort.sh .............................................................................................217
Parametry fwsnort ...........................................................................................................221
Obserwowanie fwsnort w dziaaniu ....................................................................................222
Wykrywanie Trin00 ..........................................................................................................223
Wykrywanie ruchu sieciowego zwizanego
z wykonywaniem kodw powoki systemu Linux ........................................................224
Wykrywanie i obrona przed trojanem Dumador .............................................................225
Wykrywanie i reagowanie na atak faszujcy pami podrczn DNS ............................227
Tworzenie biaych i czarnych list .........................................................................................230
Podsumowanie .....................................................................................................................231
11
POCZENIE PSAD I FWSNORT ............................................................ 233
czenie wykrywania fwsnort i dziaa psad ........................................................................234
Atak na Setup.php z WEB-PHP ........................................................................................234
Aktywna obrona ...................................................................................................................238
psad kontra fwsnort .........................................................................................................238
Ograniczanie dziaa psad wobec atakw wykrytych przez fwsnort ...............................239
czenie dziaa fwsnort i psad ........................................................................................240
Cele DROP i REJECT .......................................................................................................242

Spis treci

Uniemoliwianie uaktualnie Metasploit ............................................................................. 245


Uaktualnienia Metasploit ................................................................................................. 245
Tworzenie sygnatury ....................................................................................................... 248
Zatrzymywanie uaktualnie Metasploit za pomoc fwsnort i psad ...................................... 249
Podsumowanie .................................................................................................................... 253
12
PORT KNOCKING A AUTORYZACJA POJEDYNCZYM PAKIETEM ........ 255
Redukcja moliwoci ataku .................................................................................................. 256
Problem atakw 0-Day ....................................................................................................... 256
Odkrywanie atakw typu 0-Day ..................................................................................... 257
Wpyw na systemy wykrywania wama wykorzystujce sygnatury .................................... 258
Dogbna obrona ............................................................................................................. 259
Wywoania portw (port knocking) .................................................................................... 259
Uniemoliwienie wyszukiwania celw za pomoc Nmap ............................................... 261
Jawne sekwencje wywoa portw ................................................................................. 261
Zaszyfrowane sekwencje wywoa portw .................................................................... 263
Ograniczenia architektury techniki wywoa portw ..................................................... 266
Autoryzacja pojedynczym pakietem .................................................................................... 269
Przekraczanie ogranicze wywoa portw ................................................................... 270
Ograniczenia architektoniczne SPA ................................................................................. 271
Zabezpieczanie przez utajnianie? ......................................................................................... 272
Podsumowanie .................................................................................................................... 274
13
WPROWADZENIE FWKNOP ................................................................... 275
Instalacja fwknop ................................................................................................................. 276
Konfiguracja fwknop ............................................................................................................ 278
/etc/fwknop/fwknop.conf ................................................................................................ 278
/etc/fwknop/access.conf .................................................................................................. 282
Przykadowy plik /etc/fwknop/access.conf ...................................................................... 285
Format pakietu SPA fwknop ................................................................................................ 286
Uruchomienie fwknop ......................................................................................................... 289
SPA i szyfrowanie symetryczne ....................................................................................... 289
SPA i szyfrowanie asymetryczne ..................................................................................... 292
Wykrywanie i powstrzymywanie ataku odtwarzajcego pakiety .................................... 296
Faszowanie adresu rdowego pakietu SPA ................................................................. 298
Integracja OpenSSH z fwknop ......................................................................................... 299
SPA przez Tor ................................................................................................................. 300
Podsumowanie .................................................................................................................... 302

10

Spis treci

14
WIZUALIZACJA LOGW IPTABLES ........................................................ 303
Dostrzec nietypowe .............................................................................................................304
Gnuplot ................................................................................................................................306
Rysowanie wykresw w Gnuplot .....................................................................................307
czenie psad i Gnuplot ...................................................................................................308
AfterGlow ............................................................................................................................309
Wizualizacje atakw iptables ................................................................................................310
Skanowania portw .........................................................................................................310
Przemiatanie portw .......................................................................................................314
Robak Slammer ................................................................................................................318
Robak Nachi .....................................................................................................................319
Poczenia wychodzce z zaatakowanych systemw ......................................................321
Podsumowanie .....................................................................................................................323
A
FASZOWANIE ATAKU ......................................................................... 325
B
SKRYPT FWSNORT ................................................................................. 331
SKOROWIDZ ......................................................................................... 337

Spis treci

11

4
Atak i obrona
w warstwie aplikacji
WARSTWA APLIKACJI SIDMA WARSTWA MODELU OSI TO
DLA NIEJ STWORZONE S NISZE WARSTWY. GWATOWNY
WZROST INTERNETU JEST MOLIWY DZIKI NISZYM WARSTWOM,
ALE to aplikacje s gwn si napdow. Istniej tysice
aplikacji korzystajcych z Internetu, zaprojektowanych w celu
uproszczenia zoonych zada i rozwizania problemw rnych
grup ludzi od zwykych konsumentw przez agencje rzdowe do wielkich
midzynarodowych korporacji. Najwaniejszym zagadnieniem we wszystkich tych
aplikacjach jest bezpieczestwo i jak dotd, jeli sdzi na podstawie czstotliwoci ogaszania saboci w miejscach takich jak Bugtraq, nie jest z tym najlepiej.
Jeli chodzi o wamania do systemu, najwicej dzieje si w warstwie aplikacji.
Najbardziej wartociowe cele jak interfejsy do bankw internetowych i wraliwych
danych medycznych dziaaj (lub s dostpne) w warstwie aplikacji i wrd zagroe wida trend dokonywania wama dla zyskw finansowych. Prywatno
uytkownikw jest w tej sytuacji naruszana przy okazji. Gdyby wymagania bezpieczestwa byy traktowane z wikszym priorytetem we wszystkich fazach ycia
aplikacji przy projektowaniu, tworzeniu, wdraaniu i utrzymywaniu bylibymy w lepszej sytuacji.

Dopasowanie cigw znakw w warstwie


aplikacji przy uyciu iptables
Jedn z najwaniejszych funkcjonalnoci kadego IDS jest moliwo wyszukiwania podejrzanych fragmentw zoliwego kodu w danych warstwy aplikacji.
Jednak z powodu mniej restrykcyjnych wymaga co do struktury protokow
warstwy aplikacji ni w przypadku warstwy sieci czy warstwy transportowej
systemy wykrywania wama musz by bardziej elastyczne przy przeszukiwaniu
danych warstwy aplikacji.
Na przykad jeli IDS przyjmuje, e pewna sekwencja bajtw jest nieszkodliwa
(i moe by zignorowana), zmiany w protokole warstwy aplikacji mog sprawi,
e to zaoenie bdzie faszywe, i spowodowa przeoczenie przez IDS atakw
przeprowadzanych w nieoczekiwany sposb. Saboci poszczeglnych implementacji protokow warstwy aplikacji mog by wykorzystane za pomoc manipulacji
w omijanych przez IDS sekcjach protokou.
W tej sytuacji potrzebny jest elastyczny mechanizm nadzorowania danych
warstwy aplikacji. Moliwo porwnywania cigw znakw ze wszystkimi danymi
warstwy aplikacji w caym ruchu sieciowym jest pierwszym krokiem w dobrym
kierunku i jest dostarczana przez specjalne rozszerzenie iptables (string match
extension).
UWAGA

Z tego powodu podkreliem konieczno wczenia wsparcia porwnywania


cigw znakw w Koczenie konfiguracji jdra na stronie 35. Porwnywanie
cigw znakw bdzie rwnie intensywnie wykorzystywane w rozdziaach 9.,
10. i 11. przy omawianiu fwsnort.
Rozszerzenie umoliwiajce porwnywanie znakw w iptables wykorzystuje
szybki algorytm przeszukiwania cigw znakw Boyera-Moorea (http://www.cs.
utexas.edu/users/moore/best-ideas/string-searching). Algorytm ten jest czsto
wykorzystywany w systemach wykrywania wama, rwnie w najlepszym otwartym
IDS Snort (http://www.snort.org) ze wzgldu na swoj zdolno szybkiego
porwnywania cigw znakw z przepywajcymi danymi.

UWAGA

Porwnywanie cigw znakw pojawio si w iptables od czasw jdra 2.4, ale


zmiana architektury wpywajca na sposb przechowywania struktury danych
opisujcej pakiet w pamici jdra (struktury sk_buff zyskay moliwo zapisywania w pamici niecigej) uniemoliwia dziaanie tego rozszerzenia w jdrach
od 2.6.0 do 2.6.13.5. Rozszerzenie porwnujce cigi znakw zostao przepisane
dla jdra 2.6.14 i od tego momentu zostao wczone do jdra.

Obserwowanie rozszerzenia
porwnujcego cigi znakw w dziaaniu
By przetestowa rozszerzenie porwnujce znaki w iptables, stworzymy prost
regu sprawdzajc, czy dziaa ono tak, jak powinno. Ponisza regua wykorzystuje cel LOG iptables do wygenerowania informacji w logach, gdy cig znakw
94

Rozdzia 4

tester zostanie wysany do serwera Netcat nasuchujcego na porcie 5001 TCP.


(Niezbdna jest te regua ACCEPT, by domylna polityka bezpieczestwa z rozdziau 1. umoliwia ustanowienie poczenia TCP z zewntrznego rda).
[iptablesfw]# iptables -I INPUT 1 -p tcp --dport 5001 -m string --string
"tester" --algo bm -m state --state
ESTABLISHED -j LOG --log-prefix "tester"
[iptablesfw]# iptables -I INPUT 2 -p tcp --dport 5001 -j ACCEPT

Warto zauway w parametr iptables --algo bm. Rozszerzenie porwnujce cigi znakw jest zbudowane przy wykorzystaniu mechanizmw przeszukiwania tekstw z jdra Linux (znajdujcych si w katalogu linux/lib w rdach
jdra). Wspiera ono wiele rnych algorytmw, cznie z algorytmem przeszukiwania cigw znakw Boyera-Moorea (std powysze bm) i algorytmem KnuthaMorrisa-Pratta (kmp)1.
Argumenty linii polece --m state --state ESTABLISHED w ograniczaj
zakres operacji porwnywania znakw do pakietw bdcych czci ustalonego poczenia TCP, co oznacza, e nie jest moliwe skonienie iptables do porwnania cigu znakw z danymi zawartymi w pakiecie ze sfaszowanym adresem
rdowym musi by ustanowione dwukierunkowe poczenie.
Do ustawienia serwera TCP nasuchujcego na porcie 5001 uyjemy Netcat,
a nastpnie w systemie ext_scanner, wykorzystujc ten sam program, wylemy
cig znakw tester do serwera:
[iptablesfw]$ nc -l -p 5001
[ext_scanner]$ echo "tester" | nc 71.157.X.X 5001

Nastpnie sprawdzimy, e w logach systemowych znajduje si zapis wygenerowany przez regu LOG iptables:
[iptablesfw]# tail /var/log/messages | grep tester
Jul 11 04:19:14 iptablesfw kernel: tester IN=eth0 OUT=
MAC=00:13:d3:38:b6:e4:00:30:48:80:4e:37:08:00 SRC=144.202.X.X
DST=71.157.X.X
LEN=59 TOS=0x00 PREC=0x00 TTL=64 ID=41843 DF PROTO=TCP SPT=55363 DPT=5001
WINDOW=92 RES=0x00 ACK PSH URGP=0

Warto powyej zauway pogrubiony prefiks tester. W pozostaej czci zapisanego komunikatu mona znale potwierdzenie, e opisywany pakiet zosta wysany z systemu ext_scanner do serwera Netcat nasuchujcego na porcie 5001.
1

Algorytm wyszukiwania cigw znakw Boyera-Moorea w wikszoci zastosowa jest bardziej wydajny
ni algorytm Knutha-Morrisa-Pratta. Zoono algorytmu BM to O (n/m), podczas gdy zoono
KMP to O (n), gdzie n oznacza dugo przeszukiwanego tekstu, a m to dugo szukanego cigu
znakw. Pod adresem http://people.netfilter.org/pablo/textsearch znajduj si wykresy wydajnoci.

Atak i obrona w warstwie aplikacji

95

UWAGA

Ten sam rezultat mona osign, uywajc programu telnet (uruchomionego w trybie liniowym) w roli klienta zamiast programu Netcat, tak by cay cig znakw
tester by zawarty w jednym pakiecie. Dziaa to cakiem dobrze, ale telnet ma
powane ograniczenia: nie moe kontaktowa si z serwerami UDP i trudno jest
za jego pomoc wygenerowa dowolny znak niedrukowalny.

Dopasowywanie znakw niedrukowalnych w warstwie aplikacji


Dziaajc jako klient, Netcat moe komunikowa si z serwerami UDP tak atwo
jak z tymi wykorzystujcymi gniazda TCP. Po poczeniu z Perlem Netcat moe
wysya do sieci dowolne bajty, rwnie takie, ktre nie s by reprezentowane
jako drukowalne znaki ASCII. Jest to wane, poniewa wiele eksploitw wykorzystuje takie bajty; aby zasymulowa dziaanie takiego eksploita, musimy mie
moliwo wysyania takich samych bajtw z naszego klienta.
Na przykad zamy, e konieczne jest wysanie cigu 10 znakw reprezentujcych japoskiego jena do serwera UDP nasuchujcego na porcie 5002 i e iptables musi wyapa takie znaki. Zgodnie z zestawem znakw ISO 8859-9 (wicej
informacji po wpisaniu man iso_8859-9 w linii polece systemu Linux) znak jena
jest reprezentowany przez liczb szesnastkow A5. Ponisze polecenia umoliwiaj wykonanie dowiadczenia.
Najpierw uruchamiamy iptables podajc jako parametr --hex-string oraz
bajty zapisane szesnastkowo zawarte pomidzy dwoma znakami | jak poniej:
[iptablesfw]# iptables -I INPUT 1 -p udp --dport 5002 -m string --hexstring "|a5a5a5a5a5a5a5a5a5a5|" --algo bm -j LOG --log-prefix "YEN "

Nastpnie uruchamiamy serwer UDP nasuchujcy na porcie 50022. W kocu


wykorzystujemy Perla do wygenerowania serii 10 szesnastkowych bajtw A5 i przekierowujemy to wyjcie do programu Netcat, ktry wysya je przez sie do serwera UDP:
[iptablesfw]$ nc -u -l -p 5002
[ext_scanner]$ perl -e 'print "\xa5"x10' | nc -u 71.157.X.X 5002

Uruchamianie serwera UDP w tym miejscu nie jest konieczne, poniewa dane s wysyane przez
UDP bez wczeniejszego ustanawiania poczenia i iptables zobaczy pakiet UDP zawierajcy znaki
jena niezalenie od tego, czy w przestrzeni uytkownika nasuchuje serwer. Warto te zauway, e
nie jest konieczne dodawanie reguy ACCEPT do polityki bezpieczestwa, eby wygenerowany zosta
komunikat w logach (cho w takiej sytuacji dane nie dotr do serwera z powodu domylnej polityki
DROP acucha INPUT). Aby zobaczy, jak Netcat wywietla dane po stronie serwera, naley doda
regu ACCEPT dla portu 5002 UDP.

96

Rozdzia 4

To wystarczy, by iptables dopasowa odpowiednie dane, co mona zobaczy


w logach (pogrubiony prefiks YEN):
[iptablesfw]# tail /var/log/messages | grep YEN
Jul 11 04:15:14 iptablesfw kernel: YEN IN=eth0 OUT=
MAC=00:13:d3:38:b6:e4:00:30:48:80:4e:37:08:00 SRC=144.202.X.X
DST=71.157.X.X
LEN=38 TOS=0x00 PREC=0x00 TTL=64 ID=37798 DF PROTO=UDP SPT=47731
DPT=5002 LEN=18

Definicje atakw w warstwie aplikacji


Atak w warstwie aplikacji mona zdefiniowa jako czynno wykonywan w celu
wykorzystania aplikacji, uytkownika lub danych aplikacji do celw innych ni
przewidziane przez waciciela lub administratora aplikacji. Zazwyczaj ataki
warstwy aplikacji nie opieraj si na wykorzystywaniu technik niszych warstw,
ale techniki te (takie jak faszowanie pakietw IP IP spoofing oraz sklejanie sesji TCP TCP session splicing) s czasem wykorzystywane do zmiany
sposobu, w jaki ataki warstwy aplikacji s dostarczane do celu.
Moliwo przeprowadzania atakw warstwy aplikacji jest czsto wynikiem
napitych terminw przy tworzeniu programw. Programici, pracujc pod presj,
nie maj wystarczajco duo czasu na lokalizacj i usuwanie bdw, co skutkuje
sabociami bezpieczestwa.
Dodatkowo wielu programistw nie rozwaa nastpstw uywania poszczeglnych konstrukcji jzykowych, ktre mog narazi aplikacj na atak w niezbyt
oczywisty sposb. W kocu wiele aplikacji ma zoon konfiguracj i bezpieczestwo moe zosta zmniejszone przez niedowiadczonych uytkownikw uruchamiajcych aplikacje z wczonymi ryzykownymi opcjami.
Ataki warstwy aplikacji dziel si na trzy kategorie:
Wykorzystujce bdy programu. Tworzenie aplikacji jest zoonym przedsiwziciem i bdy programistyczne si zdarzaj. W niektrych przypadkach bdy te mog spowodowa powstanie powanych saboci naraonych
na atak z sieci. Dobrym przykadem jest tutaj moliwo przepenienia bufora
powstaa z powodu wykorzystania niebezpiecznej funkcji bibliotecznej C,
saboci aplikacji web polegajcej na przekazywaniu niekontrolowanych zapyta do bazy danych (co moe skutkowa atakami typu SQL injection) i saboci
witryn umieszczajcych niefiltrowan zawarto od uytkownikw (co moe
skutkowa atakami typu XSS Cross-Site Scripting).
Wykorzystanie zaufania uytkownikw. Niektre ataki wykorzystuj zaufanie uytkownikw zamiast wykorzystywania bdw w oprogramowaniu. Takie ataki wygldaj na zupenie poprawne dziaania w zakresie interakcji z sam
aplikacj, ale celem jest wykorzystanie zaufania ludzi uywajcych aplikacji.

Atak i obrona w warstwie aplikacji

97

Phishing jest tutaj dobrym przykadem; celem nie jest aplikacja web ani
serwer pocztowy, tylko osoba czytajca sfaszowan stron internetow lub
list elektroniczny.
Wyczerpanie zasobw. Podobnie jak w przypadku atakw DoS w warstwie
transportowej lub sieci, aplikacja moe ucierpie z powodu nadmiaru danych
wejciowych. Tego typu ataki powoduj, e aplikacja przestaje by uyteczna
dla wszystkich.

Naduycia w warstwie aplikacji


Cigle rosnca zoono aplikacji sieciowych powoduje, e wykorzystywanie
saboci warstwy aplikacji staje si coraz atwiejsze. W rozdziale 2. i 3. widzielimy
kilka sposobw na kreatywne wykorzystanie warstwy sieciowej, ale tamte techniki
s prozaiczne w porwnaniu z niektrymi technikami wykorzystywanymi przeciwko aplikacjom.
Podczas gdy implementacje wikszoci protokow warstwy sieciowej i transportowej s zgodne z wytycznymi RFC, nie ma standardu opisujcego, jak poszczeglne aplikacje CGI powinny obsugiwa dane wprowadzane przez uytkownika z wykorzystaniem serwera WWW lub za pomoc aplikacji napisanych
w jzykach programowania (jak C), ktre nie maj automatycznego sprawdzania
zakresw lub zarzdzania pamici. Czasem zupenie nowa technika atakowania
jest odkrywana i udostpniana spoecznoci dobrym przykadem jest pomys
mechanizmu HTTP Cross-Site Cooking, ktry polega na wykorzystaniu ciastek www
(web cookies) innej domeny (dokadniejszy opis na stronie http://en.wikipedia.org/
wiki/Cross-site_cooking).
W kolejnych sekcjach opisanych jest kilka typowych atakw na warstw
aplikacji. Niektre ataki mog by wykryte przy wykorzystaniu dopasowa znakw iptables i odpowiednia regua iptables jest doczona do kadego przykadu. (Ale nie jest to pena lista technik wykorzystywania aplikacji).

Sygnatury Snort
Jedn z lepszych metod zrozumienia atakw warstwy aplikacji jest przejrzenie
zestawu sygnatur programu Snort3. Cho najnowsze sygnatury Snort nie s rozpowszechniane z kodem rdowym Snort, projekt Bleeding Snort tworzy sygnatury
najnowszych atakw w formacie programu Snort (http://www.bleedingsnort.com).

W spoecznoci skupionej wok programu Snort nazywa si sygnaturami pojedyncze reguy, ale
w spoecznoci skupionej wok systemw wykrywania wama sygnatur nazywa si mechanizm
opisywania caych atakw. W tej ksice te dwa terminy s uywane wymiennie nic nie ogranicza
sygnatury do pojedynczego wzorca i dlatego poprawne jest nazywanie sygnaturami skomplikowanych
opisw atakw.

98

Rozdzia 4

UWAGA

Sygnatury Snort zostan dokadniej omwione w rozdziale 9. Tutaj wprowadzone


zostan moliwoci nadzoru warstwy aplikacji dostarczane przez Snort. Poczenie regu iptables z sygnaturami Snort jest kluczem do wykorzystania moliwoci
wykrywania wama iptables.
Rozwamy nastpujc sygnatur Snort:
alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS (msg:"WEBATTACKS /etc/shadow access"; content:"/etc/shadow";
flow:to_server,established; nocase;
classtype:w eb-application-activity; sid:1372; rev:5;)

Ta sygnatura wykrywa przesyanie cigu znakw /etc/shadow (pogrubiony


powyej) od klienta do serwera WWW. Serwer (i dowolny skrypt CGI, jaki uruchamia) najczciej dziaa jako uytkownik niemajcy wystarczajcych uprawnie
do odczytania pliku /etc/shadow, ale napastnik nie musi o tym wiedzie, zanim
nie sprbuje dosta si do pliku. Snort szuka prb odczytania pliku.
Aby iptables wygenerowa do logw komunikat, gdy cig znakw /etc/shadow
pojawi si w danych ustalonej sesji TCP z portem 80, naley ustawi nastpujc
regu:
[iptablesfw]# iptables -I FORWARD 1 -p tcp --dport 80 -m state --state
ESTABLISHED
-m string --string "/etc/shadow"
--algo bm -j LOG --log-prefix "ETC_SHADOW "

Wykorzystanie przepenienia bufora


Przepenienie bufora (buffer overflow) to atak wykorzystujcy bd programistyczny w kodzie aplikacji polegajcy na tym, e rozmiar bufora jest niewystarczajcy do zmieszczenia skopiowanych danych; termin przepenienie jest uywany, poniewa w takiej sytuacji nadpisywane s kolejne komrki pamici za
miejscem przeznaczonym na bufor. W przypadku przepenienia bufora umieszczonego na stosie (stack) udane naduycie powoduje nadpisanie adresu powrotu
funkcji (rwnie umieszczonego na stosie) w taki sposb, e wskazuje on na kod
dostarczony przez napastnika. To umoliwia atakujcemu kontrolowanie dalszego
dziaania procesu. Inna klasa atakw przepenienia bufora dotyczy obszarw pamici dynamicznie alokowanych ze sterty (heap).
Saboci zwizane z przepenianiem bufora wystpuj zazwyczaj w aplikacjach C lub C++ z powodu niewaciwego uycia pewnych funkcji bibliotecznych nieimplementujcych automatycznego sprawdzania zakresw. Przykadami takich funkcji s strcpy(), strcat(), sprintf(), gets() i scanf() oraz ze
zarzdzanie pamici zaalokowan ze sterty za pomoc takich funkcji jak malloc()
i calloc().

Atak i obrona w warstwie aplikacji

99

UWAGA

Znakomity opis pisania atakw przepenienia bufora znajduje si w znanym dokumencie Smashing the Stack for Fun and Profit Alepha One (http://insecure.org/
stf/smashstack.html). Hacking. Sztuka penetracji Jona Ericksona (Helion, 2004)
jest rwnie doskonaym rdem technicznych informacji o tworzeniu eksploitw
przepeniajcych bufor.
Przy atakach sieciowych nie ma uniwersalnego sposobu wykrywania prb
przepenienia bufora. Z drugiej strony w przypadku aplikacji przesyajcej dane
przez zaszyfrowany kana atak wypeniajcy bufor 50 powtrzeniami niezakodowanej litery A powinien by bardzo podejrzany. (Zaszyfrowane protokoy zazwyczaj nie przesyaj wielu powtrze tego samego znaku).
Jeli istnieje taki sposb ataku i jest udostpniony publicznie, warto doda
regu iptables wyszukujc tego typu zachowanie. Ponisza regua moe zosta
uyta w przypadku komunikacji SSL. Warto zauway wielokrotnie powtrzon
liter A:
[iptablesfw]# iptables -I FORWARD 1 -p tcp --dport 443 -m state --state
ESTABLISHED -m string --string
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" -j LOG
--log-prefix "SSL OVERFLOW "

Poniewa atwo zmieni liter A wypeniajc bufor na dowolny inny znak,


powysz regu atwo obej przez prost modyfikacj zoliwego kodu. Kod
eksploita jest czasem uywany przez zautomatyzowane robaki bez adnych modyfikacji, dlatego powysza strategia moe by efektywna w niektrych przypadkach.
Zestaw sygnatur Snort zawiera wiele sygnatur atakw przepenienia bufora,
ale wykrywaj one atak bez koniecznoci wykrywania specyficznych bajtw wypeniajcych. Czasem sam rozmiar danych dostarczonych jako argument pewnego polecenia aplikacji wskazuje na atak przepenienia bufora. Na przykad
ponisza sygnatura przepenienia przy poleceniu chown serwera FTP. Wyszukuje
ona co najmniej 100 bajtw danych po poleceniu chown w sesji FTP.
alert tcp $EXTERNAL_NET any -> $HOME_NET 21 (msg:"FTP SITE CHOWN
overflow attempt";
flow:to_server,established; content:"SITE"; nocase; content:"CHOWN";
distance:0; nocase;
isdataat:100,relative; pcre:"/^SITE\s+CHOWN\s[^\n]{100}/smi";
reference:bugtraq,2120; reference:cve,2001-0065;
classtype:attempted-admin; sid:1562; rev:11;)

Cho iptables nie obsuguje wyrae regularnych (w takim wypadku pogrubiony wyej warunek pcre mgby by zapisany w regule iptables bez zmian),
moemy stworzy dobre przyblienie tej reguy Snort dla iptables. Na przykad
ponisza regua iptables wyszukuje cigi znakw site i chown oraz wykorzystuje

100

Rozdzia 4

dopasowanie length do wyszukania pakietu z co najmniej 140 bajtami. (Dodane


jest 20 bajtw na nagwek IP i 20 bajtw na nagwek TCP, poniewa dopasowanie length wykonywane jest z danymi nagwka warstwy sieci).
[iptablesfw]# iptables -I FORWARD 1 -p tcp --dport 21 -m state --state
ESTABLISHED -m string --string "site" --algo bm -m string --string
"chown" --algo bm -m length --length 140 -j LOG --log-prefix
"CHOWN OVERFLOW "

Ataki typu SQL injection


Ataki typu SQL injection wykorzystuj tak sytuacj w aplikacji, gdy dane wprowadzane przez uytkownika nie s sprawdzane ani poprawnie filtrowane przed
wczeniem do zapytania SQL. Sprytny napastnik moe wykorzysta moliwo
zagniedania SQL do stworzenia nowego zapytania i potencjalnego zmodyfikowania lub odczytania danych z bazy. Typowymi celami tego typu atakw s
aplikacje CGI, ktre s wykonywane przez serwer WWW i stanowi interfejs
do bazy danych.
Zamy na przykad, e aplikacja CGI sprawdza nazw uytkownika i haso
w bazie, wykorzystujc nazw uytkownika i haso wprowadzone za pomoc
przegldarki WWW przez skrypt CGI. Jeli nazwa uytkownika i haso nie s
odpowiednio filtrowane, zapytanie wykorzystywane do przeprowadzenia weryfikacji moe by podatne na wprowadzenie kodu SQL. Taki atak moe zmieni zapytanie tak, e nie tylko dokona ono porwnania, ale rwnie zmodyfikuje
dane dodatkowym zapytaniem. Napastnik moe wykorzysta ten sposb do
ustawienia hasa dowolnemu uytkownikowi, by moe nawet administratorowi.
Trudno wykrywa typowe ataki SQL injection, ale kilka regu Snort dziaa
cakiem dobrze na wybrane typy atakw. Na przykad ponisza sygnatura Bleeding Snort wykrywa, e atakujcy prbuje obci cz zapytania SQL przez
wprowadzanie pojedynczego znaku ' w cznie z dwoma znakami - w
(z bajtami NULL po kadym znaku). Dwa znaki - powoduj, e dalsza cz zapytania SQL jest uznawana za komentarz, co mona wykorzysta do usunicia
ogranicze, ktre mog by umieszczone dalej w zapytaniu jako dodatkowe poczenia za pomoc innych pl.
alert tcp $EXTERNAL_NET any -> $SQL_SERVERS 1433 (msg: "BLEEDING-EDGE
EXPLOIT MS-SQL SQL Injection closing string plus line comment"; flow:
to_server,established; content:"'|00|"; content:"-|00|-|00|";
reference:url,www.nextgenss.com/papers/more_advanced_sql_injection.pdf;
reference:url,www.securitymap.net/sdm/docs/windows/mssql-checklist.html;
classtype: attempted-user; sid: 2000488; rev:5; )

T regu Snort mona stosunkowo atwo przetumaczy na regu iptables


cznie ze znakami NULL dziki opcji --hex-string.

Atak i obrona w warstwie aplikacji

101

[iptablesfw]# iptables -I FORWARD 1 -p tcp --dport 1433 -m state


--state ESTABLISHED -m string --hex-string "'|00|" --algo bm -m string
--hex-string "-|00|-|00|" --algo bm -j LOG --log-prefix "SQL
INJECTION COMMENT "

Jedyn wad sygnatury Snort i jej odpowiednika dla iptables jest to, e nie
jest uwzgldniana kolejno zawartych cigw znakw. Jeli pakiet bdcy czci
ustanowionego poczenia TCP zawiera te cigi w odwrotnej kolejnoci (ze znakami NULL zapisanymi w notacji szesnastkowej Snort), na przykad -|00|-|00|
foo bar '|00| zamiast '|00| foo bar -|00|-|00|, to zarwno sygnatura Snort, jak
i regua iptables zostanie dopasowana. W przypadku niektrych sygnatur moe
to spowodowa wzrost iloci faszywych alarmw, jeli jest moliwe, by poprawne byy dane zawierajce fragmenty zoliwego kodu w zmienionej kolejnoci.
UWAGA

Wicej informacji o atakach typu SQL injection mona znale w dokumencie


http://www.nextgenss.com/papers/more_advanced_sql_injection.pdf.

Czynnik ludzki
Jednymi z najbardziej problematycznych atakw w dzisiejszym Internecie s te
skierowane bezporednio przeciwko ludziom uywajcym aplikacji. Tego typu
ataki obchodz najlepsze algorytmy szyfrowania i schematy uwierzytelniania
dziki wykorzystaniu ludzkiej naiwnoci. Na przykad jeli napastnik skoni
osob do uycia lub pobrania i uycia zoliwej aplikacji albo podania lub uycia
podrobionego klucza szyfrujcego czy hasa, moe przej nawet najbardziej zaawansowane mechanizmy bezpieczestwa. Czasem wykorzystanie ludzi moe
by atwiejsze ni znalezienie dziury w zabezpieczonym systemie, aplikacji lub
schemacie szyfrowania.
Phishing
Phishingiem nazywa si atak, w ktrym uytkownik zostaje skoniony do podania w nieodpowiednim miejscu danych autoryzacyjnych zasobu sieciowego takiego jak na przykad konto bankowe. Zazwyczaj atak taki przeprowadzany jest
przez wysanie do uytkownikw oficjalnie wygldajcego listu elektronicznego
z daniem zalogowania si do konta internetowego i wykonania pewnych pilnych czynnoci zwizanych z bezpieczestwem jak zmiana hasa. (Gdyby nie
przykre efekty udanego ataku, mona byoby to uzna za wietny dowcip). Zamieszczony odnonik wyglda na poprawny, ale jest nieznacznie zmieniony, tak
by kierowa uytkownika na stron kontrolowan przez napastnika, ale bardzo
podobn do prawdziwej. Gdy tylko zaatakowani uytkownicy odwiedz stron
i wpisz swoje dane, s one przechwytywane przez napastnika.
Poniej zamieszczony jest przykadowy list, ktry otrzymaem ze sfaszowanego
adresu support@citibank.com z tematem Citibank Online Security Message:

102

Rozdzia 4

When signing on to Citibank Online, you or somebody else have made


several login attempts and reached your daily attempt limit. As an
additional security measure your access to Online Banking has been
limited. This Web security measure does not affect your access to
phone banking or ATM banking. Please verify your information
<a href="http:// 196.41.X.X/sys/" onMouseMove="window.status=
'https://www.citibank.com/us/cards/index.jsp';return true;"
onMouseout="window.status=''">here</a>, before trying to sign on again.
You will be able to attempt signing on to Citibank Online within
twenty-four hours after you verify your information. (You do not have
to change your Password at this time.)

Nieszkodliwe sformuowania sprawiaj wraenie serdecznego i pomocnego


nastawienia (several login attempts i You do not have to change your password), a odnonik internetowy jest chytrze zmodyfikowany. Zawiera on
wbudowany fragment kodu JavaScript powodujcego, e przegldarka po jego
wskazaniu wywietla poprawny odnonik do strony Citibanku w pasku statusu,
mimo e link naprawd wskazuje adres http://196.41.X.X/sys na serwerze kontrolowanym przez napastnika4. Serwer ten wywietla stron wygldajc identycznie jak poprawna strona na prawdziwym serwerze Citibanku.
Na szczcie iptables moe wykry ten konkretny list przegldany w sesji
WWW za pomoc nastpujcej reguy:
[iptablesfw]# iptables -I FORWARD 1 -p tcp --dport 25 -m state --state
ESTABLISHED -m string --string "http://196.41.X.X/sys/" --algo bm -m
string --hex-string "window.status=|27|https://www.citibank.com" -j
LOG --log-prefix "CITIBANK PHISH "

W i regua wykonuje dopasowanie dwch cigw znakw "http://196.


41.X.X/sys/" i "window.status='https://www.citibank.com" do danych przesyanych w poczeniach TCP z portem SMTP. Pierwszy cig znakw w sygnaturze dopasowuje konkretny faszywy serwer i dlatego ta regua nie chroni
przed innymi podobnymi atakami na konta Citibanku. Drugi cig znakw jest
rwnie istotny, poniewa szuka adresu strony WWW Citibanku podanego jako
argument waciwoci window.status JavaScript. Podczas gdy prawdziwa strona
Citibanku moe rwnie zawiera tego typu konstrukcje, kombinacja tych dwch
cigw znakw w jednym licie elektronicznym jest bardzo podejrzana i ryzyko
wywoania faszywego alarmu przez Snort lub iptables jest niewielkie (niezalenie
od kolejnoci wystpienia wzorcw).

Nie wszystkie przegldarki dziaaj w ten sam sposb; widziaem Microsoft IE wywietlajcy poprawny
adres internetowy w pasku statusu, podczas gdy Firefox wywietla sfaszowany odnonik
(prawdopodobnie wynikao to z tego, e wersja Firefoxa, ktrej uywaem, nie interpretowaa
kodu JavaScript wbudowanego w ten sposb w znaczniki.

Atak i obrona w warstwie aplikacji

103

Naley maksymalizowa efektywno sygnatur nowych atakw przez zachowanie balansu pomidzy zwikszaniem czuoci detekcji i redukowaniem
czstotliwoci faszywych alarmw. Jednym z najlepszych sposobw jest wyszukiwanie wzorcw, ktre nie powinny pojawi si przy poprawnej komunikacji
w sieci. Jeli pojawi si nowy atak na nowy cel, dobrymi kandydatami na wzorce
do zawarcia w sygnaturze s adres IP zoliwego serwera (cho moe by zawsze zmieniony przez napastnika) i dowolny fragment tekstu lub kodu (jak cig
znakw window.status w przykadzie z Citibankiem).
Backdoory i logowanie klawiszy
Backdoorem nazywa si program, ktry zawiera funkcjonalno udostpnion
napastnikowi bez wiedzy uprawnionego uytkownika. Na przykad trojan Sdbot5
umoliwia dostp do systemu, czc si z kanaem IRC, gdzie napastnik czeka,
eby wyda polecenie. Backdoor jest napisany w ten sposb, e atakujcy musi
wprowadzi odpowiednie haso, zanim jakiekolwiek polecenie zostanie wykonane. To wprowadza pewien rodzaj autoryzacji przy komunikacji z backdoorem
i zapewnia, e tylko napastnik, ktry wama si do systemu, moe go kontrolowa.
Celem backdoora jest niezauwaalne umoliwienie napastnikowi wykonywania dowolnej czynnoci na zdalnym komputerze od zapisywania wcinitych
klawiszy w celu poznania hase do zdalnego kontrolowania caego systemu.
Niektre backdoory uruchamiaj nawet swoje wasne sniffery sieciowe skonfigurowane do wyszukiwania informacji o nazwach uytkownikw i hasach z protokow, ktre przesyaj takie dane czystym tekstem jak telnet lub FTP (cho
przejcie takich informacji z innych systemw jest mao prawdopodobne w sieciach opartych na przecznikach, chyba e backdoor jest zainstalowany na
urzdzeniu pracujcym jako gateway lub firewall). FsSniffer jest przykadem takiego
backdoora. Jest on wykrywany za pomoc poniszej reguy Snort:
alert tcp $HOME_NET any -> $EXTERNAL_NET any (msg:"BACKDOOR FsSniffer
connection attempt"; flow: to_server,established; content:
"RemoteNC Control Password|3A|"; reference:nessus,11854;
classtype:trojan-activity; sid:2271; rev:2;)

W regua Snort kontroluje pakiety bdce czci ustanowionego poczenia TCP i skierowane do serwera, a w regua szuka w danych warstwy aplikacji cigu znakw, ktry jednoznacznie identyfikuje prb autoryzacji w FsSniffer6.
Po przeniesieniu do iptables regua ta ma posta przedstawion poniej.
(Dopasowanie stanu ESTABLISHED w zapewnia, e pakiet jest czci ustano5

Wicej informacji na stronie http://www.symantec.com/security_response/writeup.jsp?docid=


2002-051312-3628-99&tabid=2.

W zasadzie kto mgby wysa cig znakw RemoteNC Control Password: do dowolnego serwera TCP
niekoniecznie w celu autoryzacji w backdoorze FsSniffer, ale mimo wszystko takie dziaanie jest
podejrzane.

104

Rozdzia 4

wionego poczenia TCP, a argument --hex-string w powoduje, e kod szesnastkowy \x3A zawarty w oryginalnej regule jest poprawnie przeniesiony).
[iptablesfw]# iptables -I FORWARD 1 -p tcp -m state --state
ESTABLISHED -m string --hex-string "RemoteNC Control Password|3A|"
--algo bm -j LOG --log-ip-options --log-tcp-options --log-prefix
"FSSNIFFER BACKDOOR "

Szyfrowanie i kodowanie danych w aplikacji


Dwa czynniki utrudniaj wykrywania atakw warstwy aplikacji: szyfrowanie
i schematy kodowania w aplikacji. Szyfrowanie jest szczeglnie problematyczne,
poniewa jest zaprojektowane tak, by deszyfracja bya praktycznie niemoliwa
bez odpowiedniego klucza, do ktrego zazwyczaj systemy IDS, IPS i firewalle
nie maj dostpu7.
Jednak niektre eksploity warstwy aplikacji nie musz by szyfrowane, by
zadziaay. Istniej na przykad sygnatury Snort (z koniecznoci operujce czystym tekstem) dla pewnych atakw na serwery SSH. W przypadku takich sygnatur Snort kontroluje ilo danych bez wykorzystywania kluczy szyfrujcych
SSH. Istnienie tych sygnatur uwiadamia nam, e samo szyfrowanie nie jest panaceum i napastnik moe w pewnych sytuacjach wykorzysta saboci w aplikacjach niezalenie od wymaganego poziomu szyfrowania. To znaczy, e saboci
mog istnie w funkcjach, ktre s dostpne w sposb nieszyfrowany.
Techniki kodowania rwnie mog utrudnia prac IDS. Na przykad wiele
przegldarek internetowych wspiera kodowanie gzip w celu zredukowania rozmiaru danych przesyanych przez sie, gdy zazwyczaj kompresja lub dekompresja danych za pomoc szybkiego procesora trwa krcej ni przesanie nieskompresowanych danych przez woln sie. Jeli atak jest poczony z pewn
iloci przypadkowych danych i skompresowany przez gzip, IDS musi rozpakowa dane, eby wykry atak. Przypadkowe dane zapewniaj, e skompresowany atak wyglda za kadym razem inaczej; bez tej przypadkowo generowanej
czci IDS mgby po prostu szuka cigu znakw po kompresji. Przy duym
ruchu sieciowym dekompresja kadej sesji web w czasie rzeczywistym jest
praktycznie niemoliwa, poniewa wiele sesji przesya due skompresowane
pliki bez zoliwego kodu.
UWAGA

Nie wszystkie sposoby kodowania warstwy aplikacji s trudne do zdekodowania


dla IDS. Na przykad dane zapisane w URL s dekodowane w czasie rzeczywistym przez preprocesor HTTP Snort i s dostpne przy wykorzystaniu sowa
kluczowego uricontent w sygnaturach Snort. Jest to moliwe, jako e kodowanie

Niektre IDS umoliwiaj przechowywanie klucza SSL i sprawdzania po odszyfrowaniu danych


przesyanych do serwera WWW w postaci zaszyfrowanej.

Atak i obrona w warstwie aplikacji

105

URL opiera si na prostej operacji podstawienia kodw szesnastkowych i znakw


procenta. Na przykad A staje si %41; przy odkodowaniu dokonuje si odwrotnej
zamiany. Takie kodowanie nie jest trudne obliczeniowo.

Obrona w warstwie aplikacji


Z technicznego punktu widzenia obrona w warstwie aplikacji powinna wykorzystywa jedynie konstrukcje z warstwy aplikacji. Gdy na przykad uytkownik
aplikacji jej naduywa, jego konto powinno zosta wyczone. Jeli napastnik
dokonuje ataku typu SQL injection przez aplikacj CGI wykonywan na serwerze, zapytanie powinno zosta odrzucone, a do klienta odesany odpowiedni kod
bdu HTTP. Taka reakcja nie wymaga manipulacji informacjami z nagwka
pakietu, ktre istniej poniej warstwy aplikacji.
Jednak obrona tylko w warstwie aplikacji jest niepraktyczna w firewallach
i sieciowych systemach zapobiegania wamaniom, poniewa nie s one blisko
zwizane z samymi aplikacjami8. Dlatego jeli bardzo zoliwy atak jest odkryty
z pewnego adresu IP w sesji TCP (wymagajcej komunikacji dwukierunkowej),
bardziej korzystne jest zablokowanie komunikacji z adresem IP napastnika. Jest
to obrona w warstwie sieci na atak w warstwie aplikacji.
W tej ksice podkrelamy bardziej sposoby reagowania w warstwie sieci i warstwie transportowej na ataki w warstwie aplikacji ni reakcje samych aplikacji.
Jest to realne dziki moliwoci tworzenia i zarzdzania reguami blokujcymi
iptables (zarzdzanymi przez projekt psad) wobec adresu IP napastnika oraz
przez uycie celu REJECT do zakoczenia poczenia TCP przez fwsnort. Rozdziay
10. i 11. opisuj szczegowo tego typu reakcje.

Istniej mechanizmy bezpieczestwa cile zwizane z aplikacjami (takie jak modu ModSecurity
dla serwera Apache), ale firewalle i systemy wykrywania wama nie maj informacji o dziaaniu
tych mechanizmw.

106

Rozdzia 4

You might also like