background image

1

Bezpieczeństwo systemów informatycznych

Krzysztof Ślot  © 2002

Zagrożenia

bezpieczeństwa i

systemy detekcji

włamań

DNS, routing, programy i

systemy operacyjne

Bezpieczeństwo systemów informatycznych

Krzysztof Ślot  © 2002

Zagadnienia

Wykorzystywanie luk systemów operacyjnych i ich programów
składowych

Exploit-y: programy testujące oprogramowanie systemowe pod kątem

wykorzystania jego potencjalnych słabości

Badanie programów pod kątem ich odporności na przepełnienie bufora
(buffer overflow exploits)
Wykorzystanie luk związanych z uruchamianiem programów o
uprawnieniach administratora

Ataki wymierzone w infrastrukturę sieci

DNS spoofing - fałszywe IP

Kierowanie ruchu do podstawionych bram (routing redirection)

Monitorowanie pracy i wykradanie danych z komputerów

Systemy detekcji wtargnięć (IDS - intrusion detection systems)

background image

2

Bezpieczeństwo systemów informatycznych

Krzysztof Ślot  © 2002

DNS

Opanowanie serwera DNS = możliwość wprowadzanie w błąd
użytkowników sieci co do tożsamości komunikujących się ze
sobą komputerów

Ataki przeciwko DNS

Rozproszona baza danych z informacjami wiążącymi adresy IP z 
nazwami komputerów

Serwer DNS - komputer z odpowiednim oprogramowaniem: zwykle 
działający w systemie UNIX i posiadający usługę systemową BIND
(Berkeley Internet Name Domain)
Usłudze przydzielony jest port 53 TCP

Prośba o 

pomoc 

NIE

Poszukiwanie 

odpowiedzi

w lokalnej 

bazie danych

Sukces?

Algorytm działania serwera DNS

Żądanie 

konwersji

Odpowiedź 

TAK

...

Odpowiedź 

Bezpieczeństwo systemów informatycznych

Krzysztof Ślot  © 2002

Mechanizm rozwikłania nieznanego adresu - serwery DNS 
‘wyższego’ poziomu - 

drzewo DNS

Ataki przeciwko DNS

Tworzenie lokalnej bazy danych DNS

Uaktualnianie każdorazowo, gdy zajdzie potrzeba (prośba o dane 
dotyczące nieznanego wcześniej hosta), na podstawie informacji 
pobranej z innego DNS

bond.mi6.uk.mil

kloss.abwehra.com

IP - ?

dns.mi6.def.mil

dns.root

Ktokolwiek w podsieci odwiedzał

 hosta - IP będzie w tablicy  i DNS

odpowie; jeśli nie: pyta dalej

dns.uk.mil

Jeżeli znany - odpowiedź, jeżeli 

nie - przekazanie prośby

dns. mil

background image

3

Bezpieczeństwo systemów informatycznych

Krzysztof Ślot  © 2002

Ataki na DNS

DNS Spoofing - preparowanie odpowiedzi w wymianie danych 
między DNS

Zapytanie o określenie adresu, jest opatrywane unikalnym ID - 
odpowiedź zawiera to samo ID i na tej podstawie jest ona zatwierdzana

Jeżeli generacja kolejnych ID w serwerze jest deterministyczna -
możliwe jest jego przewidzenie i uprzedzenie prawdziwej odpowiedzi
spreparowanym pakietem

Uwarunkowania ataku

Hacker

Cel: wprowadzenie

fałszywego adresu D 

do serwera DNS G

Serwer

DNS G

Nie ma w nim

dotychczas danych

o komputerze D

Serwer

DNS 2

D

DNS 2 zawiera 

informacje

o komputerze D

Bezpieczeństwo systemów informatycznych

Krzysztof Ślot  © 2002

Ataki na DNS

Scenariusz ataku

Wysyła do DNS G prośbę o swój własny adres - 

zyskuje aktualne ID pakietu

1

Wysyła do DNS G prośbę o adres D. Adresu nie ma w DNS G, więc będzie on
pytał kolejne serwery DNS, wysyłając do nich pakiety z 

ID+1

2

Szybko podsyła do DNS odpowiedź w imieniu DNS 2 z fałszywymi danymi 
komputera D

3

Ochrona

Stosowanie losowych zmian ID pakietów z zapytaniami o dane 
(standardowy element aktualnych wersji programu BIND)

background image

4

Bezpieczeństwo systemów informatycznych

Krzysztof Ślot  © 2002

Ataki na DNS

DNS Spoofing - ochrona c.d.

Fałszywe serwisy www - mechanizm oszustwa

DNSSEC - uwierzytelnianie wymiany danych między serwerami
DNS - uaktualnianie informacjami pochodzącymi wyłącznie z 
zaufanych źródeł

Tworzenie stron z pozornymi linkami (na stronie link prowadzi rzekomo
do pko.bp.pl, podczas gdy naprawdę wskazuje na 
url=hack.com/pko.bp.pl)

Wybranie linku to odwołanie do serwera hack.com - atakujący wie, 
jaka strona miała być wczytana - preparuje atrapę o wyglądzie 
odpowiadającym oczekiwaniom użytkownika i zbiera za jej pomocą
wymagane informacje

Bezpieczeństwo systemów informatycznych

Krzysztof Ślot  © 2002

Ataki na DNS

DNS Spoofing poprzez DHCP

DHCP - użytkownik jest obsługiwany przez dynamicznie przypisywany 
serwer DNS

Mechanizm ataku

1

Hacker wysyła 

w imieniu serwera DHCP 

do komputera z dynamicznie 

przydzielanym IP informację o rzekomej zmianie adresu serwera DNS.

2

Serwer DNS należy do hackera i zawiera nieprawdziwe dane

Żądania użytkownika są obsługiwane przez podstawiony DNS - zamiast
połączeń z amazon.com itp., użytkownik wczyta spreparowane 
odpowiednio strony atakującego

3

Ochrona - zablokowanie zewnętrznych żądań DHCP

background image

5

Bezpieczeństwo systemów informatycznych

Krzysztof Ślot  © 2002

Ataki związane z routingiem

Prosty protokół przesyłania pakietów (RIP - Routing Information)

A

A

B

B

C

C

Y

Y

D

D

E

E

F

F

G

G

Mam 1 

do Y

Mam 2 

do Y

Mam 3 

do Y

Mam 4 

do Y

Mam 2 

do Y

Zakłada, że wszystkie routery są godne zaufania, bo trasa jest budowana
na podstawie ‘oświadczeń’ routera o odległości do wybranego hosta

Routery używają tablic (forwarding table) z informacjami o najkrótszych
połączeniach do różnych hostów, pobieraną od sąsiadów i okresowo 
uaktualnianą (co ok. 30 s, między innymi po to by znać stan połączenia)

Pakiety są przesyłane najkrótszą drogą

Bezpieczeństwo systemów informatycznych

Krzysztof Ślot  © 2002

Ataki związane z routingiem

A

B

C

Y

D

E

F

G

Mam 1 

do Y

Mam 2 

do Y

Mam 3 

do Y

Mam 4 

do Y

Mam 2 

do Y

x

Mam 1 

do Y

Atak przeciwko RIP - podsunięcie fikcyjnych informacji o 
odległości do celu

Przekazanie fałszywych informacji o odległości do celu wymusi
przesyłanie pakietów do określonych sieci przez router atakującego

Metody ochrony

Stosowanie innych protokołów - OSPF (Open Shortest Path Protocol)
Uwierzytelnianie

background image

6

Bezpieczeństwo systemów informatycznych

Krzysztof Ślot  © 2002

Ataki w OS i jego usługi - exploity

Język C

Powstał (lata 70-te) dla uniezależnienia UNIX-a od konkretnego 
procesora (UNIX był napisany w języku assemblera)

main(){

...

F(5);

...

}

function F(int y)

{

int V;

V = y+100;

}

Mechanizm wywoływania funkcji w C

adres

kod

...

...

0x8054321

pushl $0x5

0x8054322

call $0x80543a0

0x8054328

...

...

0x80543a0

popl %eax

0x80543a1

addl $0x100,%eax

0x80543a4

...

Pamięć

Stos

czas

Argument: 

5

Adres powrotu

0x8054327

5

0x8054327

5

Zmienne lokalne

V

0x80543a0

:

0x8054322

:

call 0x80543a0

:

Bezpieczeństwo systemów informatycznych

Krzysztof Ślot  © 2002

Przepełnienie bufora

main(){

...

F1(”

buffer_overflow

”)

;

...

}

function F1(char* y){

char txt[

8

];

...

strcpy(txt,y);

...

}

Zmiana adresu powrotu z procedury przez nadpisanie danymi

:

RET_ADDR

0xBF000001

txt[0]

txt[7]

:

CALL

0x80543a0

b

u

f

:

w

Pamięć

:

b

o

:

CALL

0x80543a0

:

Pamięć

:

Do zmiennej ‘txt’

kopiowane jest 

więcej niż 8 znaków

Kod podstawiony

RET_ADDR

verflow

Nadpisanie adresu powrotu

Błąd programisty - skok niedozwolony przez OS i przerwanie programu

background image

7

Bezpieczeństwo systemów informatycznych

Krzysztof Ślot  © 2002

Przepełnienie bufora

Buffer overflow exploit - zamierzona wartość adresu powrotu

Ochrona

Idea postępowania - tak nadpisać adres powrotny, by wskazywał początek
procedury, którą chce się wykorzystać do przeprowadzenia ataku (może
to być dowolny z systemowych plików ‘dll’, dających dostęp do plików,
uprawnień, może to być uruchomienie serwera itp.)

Opracowywanie programów odpornych na atak (sprawdzanie danych
wprowadzanych przez użytkownika) - twórcy oprogramowania

Monitorowanie stanu komputera (np. obecność zrzutów ‘core’ w
katalogach użytkowników może świadczyć o działaniu exploit-a)

Stosowanie ogólnych zasad bezpieczeństwa - sprawdzone serwisy,
instalowanie ‘ugrade-ów’ i łat w systemach itp. 

Inne ataki metodą przepełnienia bufora

Skrypty CGI (Perl, PHP)
Dowolne usługi OS, ...

Bezpieczeństwo systemów informatycznych

Krzysztof Ślot  © 2002

Ataki wykorzystujące SUID

Bit SUID (GUID) - określanie uprawnień programu

SUID/SGID wyzerowany - uprawnienia użytkownika (grupy), który go 
uruchamia 

Uruchomienie program z ustawionym SUID - uzyskanie uprawnień 

instalującego (np. root-a)

Zerowanie flagi SUID jeżeli nie jest to konieczne
Instalowanie programów z kont o mniejszych uprawnieniach (jeżeli to 
możliwe, np. użycie konta root jedynie do kopiowania binariów, zaś
instalacja z poziomu zwykłego użytkownika)

SUID/SGID (user id / group id) ustawiony - program ma uprawnienia 
właściciela (tego, kto go zainstalował)

-r-

s

r-xr-x root bin 1000 some_prog DEC 13 02

Zmniejszanie zagrożenia atakiem

Potencjalne zagrożenie bezpieczeństwa

background image

8

Bezpieczeństwo systemów informatycznych

Krzysztof Ślot  © 2002

Wykorzystanie programu SUID do 

uruchomienia programu

podstawionego przez atakującego

 (root shell vulnerability)

Ataki wykorzystujące SUID

Uwarunkowania ataku

Program SUID wywołuje inne programy 

Wywołanie nie jest poprzedzone dokonaniem żadnych sprawdzeń 
(np. dotyczących lokalizacji uruchamianych plików)

Metoda ataku

Podstawienie pod procedurę (program, plik wsadowy) uruchamianą 
przez program SUID swojego pliku

Scenariusz ataku

Utworzenie pliku o nazwie identycznej z programem uruchamianym
przez program SUID i odpowiednio spreparowanym kodem
Umieszczenie podstawianego pliku w dowolnym katalogu użytkownika
Dodanie na początku pliku ‘path’ ścieżki do wybranego katalogu

Wykonanie programu SUID (czyli, wykonanie ataku)

Bezpieczeństwo systemów informatycznych

Krzysztof Ślot  © 2002

Uruchamianie podstawionych programów - przykład

Ataki wykorzystujące SUID

Obiekt ataku - program 

SubnetConfig

 systemu UNIX - korzystający

z programu ‘

cat’

.

path = /temp:$path;

Dodanie na początek ścieżki systemowej ścieżki do wybranego foldera

Utworzenie pliku o nazwie ‘cat’ z kodem ingerującym w system zgodnie 
z zamiarem atakującego (wstawienie polecenia kopiowania tekstu ‘++’
do pliku .rhosts)
Umieszczenie pliku w wybranym folderze (np. o nazwie ‘temp’)

Uruchomienie programu 

SubnetConfig

 , i pośrednio -  procedury 

cat

Wywołanie podstawionej procedury cat, modyfikującej plik .rhosts w 
sposób pozwalający na uzyskanie uprawnień administratora 
dowolnemu logującemu się użytkownikowi (program działa w imieniu 
administratora, ma więc prawo modyfikacji pliku .rhosts)

Efekt

background image

9

Bezpieczeństwo systemów informatycznych

Krzysztof Ślot  © 2002

Wykorzystanie programu SUID do 

nadpisania plików

 

(SUID file overwriting vulnerability)

Ataki wykorzystujące SUID

Uruchomienie programu SUID i zapewnienie, by tekst rejestrowany 
w logu zawierał informacje, które mają znaleźć się w atakowanym 
pliku (wprowadzany tekst jest jednocześnie wpisywany do logu i do
wybranego przez nas pliku)

Scenariusz

Utworzenie linku, łączącego plik logu programu SUID z plikiem, 
który chcemy nadpisać (obiektem ataku). 

program o uprawnieniach SUID tworzy plik, do którego wpisuje
dane (np. log). 

program SUID nie upewnia się czy istnieją jakiekolwiek dodatkowe 
uwarunkowania dla procedury zapisywania pliku (jak np. powiązanie
zapisywanego dziennika z innym plikiem)

Uwarunkowania ataku

Bezpieczeństwo systemów informatycznych

Krzysztof Ślot  © 2002

Nadpisywanie plików - przykład

Ataki wykorzystujące SUID

Jeżeli katalog domowy użytkownika jest otwarty do zapisu dla
wszystkich, napastnik może w nim umieścić swój .rhosts i w
ten sposób uzyskać możliwość logowania do konta

Atakowany plik - ‘.

rhosts’

 systemu UNIX, wykorzystywany program - 

PPS

(point to point serial protocol)

ln -s /.rhosts log

log

- alias do pliku dziennika programu PPS

Utworzenie linku

pps -o ‘++’

- wpisanie ‘++’ do .rhosts

Atak (uruchomienie programu)

mv log old_log

Zatarcie śladów

Po wykonaniu procedury, podmieniony plik .rhosts pozwala napastnikowi
na przejęcie kontroli nad komputerem

Efekt

background image

10

Bezpieczeństwo systemów informatycznych

Krzysztof Ślot  © 2002

Wydobywanie ‘wymazanych’ danych (usuwanie plików)

Wykradanie danych z komputerów

Wymaganie fizycznego dostępu do komputera lub instalacji 
odpowiedniego oprogramowania

Windows - usunięcie pliku to jedynie usunięcie wpisu z tablicy 
alokacji plików. Same dane pozostają na dysku do momentu ich 
późniejszego nadpisania. W warunkach silnej defragmentacji dysku 
dane te mogą być dostępne przez długi czas.
Ochrona - używanie programów do wymazywania danych (zastępują
wymazywane dane losowymi wartościami)

Swap file

Dane z RAM są czasowo składowane na dysku w tymczasowym pliku
(swap file), zawierającym mnóstwo cennych informacji (hasła, klucze, 
treść dokumentów itp.)
Instalacja programu odczytującego dane z pliku tymczasowego
(i analizującego dane, np. w poszukiwaniu słów password itp.) daje
dostęp do tajnych informacji

Bezpieczeństwo systemów informatycznych

Krzysztof Ślot  © 2002

Inne metody podsłuchu

Wykradanie danych z komputerów

Pliki historii

Podsłuch klawiatury i portów lokalnych (keyboard snooping / 
sniffing) - programowy lub sprzętowy

Idea programów detekcji - prośba o wpisanie zadanego tekstu i 
sprawdzenie, czy został zarejestrowany w pliku

Przeglądanie automatycznie tworzonych plików historii daje informacje
o aktywności użytkownika

Uwaga na kawiarenki internetowe !

Zrzuty pamięci obrazu (‘zdjęcia’ ekranu)

Zdalne odczytywanie zawartości monitora

Metoda ochrony - zapewnienie spełnienia odpowiednich norm 
(TEMPEST - Transient ElectroMagnetic PulsE Standard)

Monitor emituje fale elektromagnetyczne, które mogą być podsłuchane
i odczytane, zdradzając wyświetlane treści

background image

11

Bezpieczeństwo systemów informatycznych

Krzysztof Ślot  © 2002

Systemy detekcji włamań

Systemy detekcji włamań (intrusion detection)

Założenie - istnieją ślady możliwe do znalezienia przez analizę ruchu, 
zużycie CPU, częstość operacji I/O, analizę pakietów,  rodzaje aktywności
w odniesieniu do systemu (usuwanie plików) itp.

Detekcja bazująca na regułach

Detekcja bazująca na statystyce

Zapory nie chronią przed potencjalnymi włamaniami dokonywanymi
nie strzeżonymi przez nie kanałami (modem, dostęp bezprzewodowy,
ataki dokonywane od wewnątrz sieci)

Detekcja anomalii

Detekcja nadużyć

Statystyczne niezgodności w aktywności użytkownika
w stosunku do utworzonego wcześniej profilu

Bezpieczeństwo systemów informatycznych

Krzysztof Ślot  © 2002

Systemy detekcji włamań

Profil komputera - średnie obciążenie CPU, średnia liczba korzystających
z niego użytkowników, najczęściej wykorzystywane usługi itp. 

Profil użytkownika - 

Działanie - monitorowanie sesji i alarmowanie w sytuacjach wyraźnych,
dużych odstępstw od istniejącego profilu odniesienia

Detekcja nadużyć - porównywanie aktywności z charakterystykami znanych
ataków, zgromadzonymi w bazie danych systemu. Baza musi być na
bieżąco aktualizowana.

Ponieważ zasady mogą nie być jednoznaczne, detekcja aktywności
uznawanej za atak może wymagać zaawansowanych metod analizy.

Pakiety IDS

Internet Security Systems (dodatek do zapór programowych CheckPoint)
- monitorowanie TCP, UDP, ICMP

background image

12

Bezpieczeństwo systemów informatycznych

Krzysztof Ślot  © 2002

Systemy detekcji włamań

Network Associates - CyberCop - rozproszony system z centralnym 
serwerem analizy danych

Pożądane cechy systemu

Monitorowanie w czasie rzeczywistym

Celowe zasypywanie dziennika lawiną informacji

Preludium wielu ataków

Aby wyczyścić dziennik

Rozmiary dziennika mogą sięgać setek MB

Nietypowe godziny aktywności