www.hakin9.org
32
Hakin9 Nr 5/2004
A
ta
k
www.hakin9.org
Hakin9 Nr 5/2004
Z
adaniem honeypotów jest wabienie po-
tencjalnych intruzów poprzez udostęp-
nianie pewnej ograniczonej funkcjonal-
ności. Istnieją dwa główne typy takich przynęt:
• honeypoty o niskiej interaktywności – pro-
ste demony, udające działanie zestawu po-
pularnych usług (np. FTP czy HTTP),
• honeypoty o wysokiej interaktywności
– prawdziwe lub zagnieżdżone (w postaci
maszyny wirtualnej) systemy operacyjne.
Metody rozpoznawania pułapek są pochod-
ną oferowanych usług – inaczej bada się wia-
rygodność maszyny, której zasoby są dostęp-
ne jedynie przez serwer WWW, inaczej zaś te,
na których uzyskaliśmy dostęp do konta shello-
wego. Im więcej intruz będzie wiedzieć o me-
todach kamufl owania honeypotów, tym lepiej
poradzi sobie ze zdemaskowaniem przynęty.
Przyjrzyjmy się zatem najsłabszym stronom
popularnych pułapek.
Przynęty o małej
interaktywności
Honeypoty o małej interaktywności to takie,
których zadaniem jest symulowanie pracy kon-
Wybrane metody
rozpoznawania honeypotów
Paweł Przybyłek
Przygotowanie wiarygodnej
pułapki na intruzów jest
zajęciem żmudnym
i pracochłonnym – tym bardziej,
im większą interaktywnością ma
się ona wykazywać. Lenistwo
administratorów to często
powód udanych ataków.
kretnych usług. Umożliwiają one dostęp do wy-
branych aplikacji za pośrednictwem znanych
protokołów: FTP, HTTP, SMTP i POP3. Przy-
kładem takiej pułapki jest system DTK (The De-
ception Toolkit) oraz Tiny Honeypot. Oba sys-
temy pozwalają symulować działanie serwe-
rów podstawowych usług – są jednak bardzo
proste, a ich rozpoznanie jest niewielkim pro-
blemem.
Trzeba pamiętać, że domyślna konfi guracja
większości tego typu pułapek ma za zadanie
przedstawić jak największy wachlarz możliwo-
ści. Oczywiście niekoniecznie idzie to w parze
z wiarygodnością przynęty. Inaczej jest w przy-
padku prawdziwych usług, gdzie standardowe
ustawienia zazwyczaj oferują niewielką funk-
cjonalność, ale są najbezpieczniejsze – przykła-
dem niech będzie serwer SMTP umożliwiający
wysyłanie e-maili jedynie z lokalnej maszyny.
Z artykułu nauczysz się...
• jak zidentyfi kować najpopularniejsze honeypoty.
Powinieneś wiedzieć...
• jak działa podsystem plików /proc.
www.hakin9.org
Hakin9 Nr 5/2004
A
ta
k
www.hakin9.org
33
Hakin9 Nr 5/2004
Rozpoznawanie honeypotów
Leniwy administrator łatwo mo-
że więc zostać zdemaskowany.
Weźmy Tiny Honeypot, gdzie przy
domyślnej konfi guracji serwer FTP
przedstawia się jako losowy spo-
śród: wu-ftpd, pftpd, Ncftpd lub
Ncftpd
Ncftpd
Microsoft FTP Service. Kilkukrot-
ne testowanie portu 21, czyli usługi
FTP, zapewne zdemaskuje pułapkę
(patrz Listing 1).
Większe możliwości daje pa-
kiet Deception Toolkit (DTK), któ-
ry udostępnia intruzowi (np. przez
celowo nieprawidłowo skonfiguro-
wany serwer FTP) fałszywy plik
/etc/passwd czy
/etc/passwd
/etc/passwd
/etc/ftpusers. Jed-
nak kiedy taki plik dostanie się
w ręce agresora, może on w pro-
sty sposób sprawdzić niezgod-
ność pomiędzy zawartością pliku
/etc/passwd a rzeczywistą sytu-
/etc/passwd
/etc/passwd
acją (patrz Listing 2).
Jeśli intruz dostał się na fałszywy
serwer przez konto FTP użytkowni-
ka anonimowego, wpis anonymous
w pliku /etc/ftpusers upewni go, że
/etc/ftpusers
/etc/ftpusers
znajduje się w maszynie-pułapce
(w tym pliku umieszczane są nazwy
użytkowników niemających dostępu
do usługi FTP). Administrator mu-
si zatem dołożyć więcej starań, by
stworzyć plik wyglądający na praw-
dziwy. W przeciwnym wypadku roz-
poznanie zagrożenia zajmie intruzo-
wi kilka sekund.
Honeypoty o dużej
interaktywności
O wiele bardziej złożone są przynę-
ty o dużej interaktywności. Bardzo
często są to prawdziwe lub zagnież-
dżone systemy operacyjne. Zwykle
oferują szeroki zestaw usług oraz,
co za tym idzie, dają intruzowi więk-
sze pole do popisu. Ich identyfi -
kacja jest trudniejsza niż w przy-
padku wspomnianych DTK i Tiny
Honeypot.
Generyczne metody rozpozna-
wania honeypotów to takie, które
pokazują, że serwer nie należy do
tych najbardziej zapracowanych.
Po uzyskaniu dostępu do shella na
badanej maszynie najważniejsze
jest monitorowanie zestawu ofero-
wanych przez nią usług. Urucho-
miony na atakowanej maszynie de-
mon telnet – podczas gdy dostęp do
telnet
telnet
innych serwerów w tej samej sieci
jest szyfrowany (np. SSH) – od razu
powinien wzbudzić podejrzenia ata-
kującego. Warto także sprawdzić li-
stę działających na serwerze pro-
cesów, obciążenie CPU, użycie pa-
mięci oraz śledzić zmiany tych pa-
rametrów w czasie. Oczywista jest
konieczność analizy logów, któ-
ra w sprzyjających okolicznościach
szybko udowodni, że atakowanemu
hostowi daleko do ciągle zajętego
serwera produkcyjnego.
Polecenie
ps -e -opcpu
wyświe-
tla informację o obciążeniu gene-
rowanym przez wszystkie procesy
pracujące w systemie (w procen-
tach). Użycie CPU można spraw-
dzić, sumując te wartości (patrz
Listing 3).
Identyfi kację honeypota moż-
na także oprzeć o charakterystycz-
ne zachowanie emulowanych przez
niego usług. Dla serwera pocztowe-
go, na którym intruz ma zamiar po-
ćwiczyć najnowsze eksploity zna-
lezione w sieci, będzie to analiza
spoolera, w szczególności dat mo-
dyfi kacji i dostępu do plików z pocztą
użytkowników. Słowem – specyfi cz-
ne dla tej usługi działania.
Załóżmy, że agresor uzyskał do-
stęp do serwera pocztowego. Szcze-
gólnie powinien go zainteresować
katalog /var/spool/mail, wykorzysty-
/var/spool/mail
/var/spool/mail
wany do składowania poczty przez
wiele programów MTA (Mail Trans-
port Agent). Przesłanką do stwier-
dzenia, że znajduje się w honeypo-
cie będzie dla niego podejrzana za-
wartość katalogu. Na przykład ze
zdumieniem stwierdzi, że jest on pu-
sty. Nawet jeśli administrator pułap-
ki spreparował pliki poczty, będą one
zapewne mocno nieświeże. Intruz
może się o tym przekonać wykonu-
jąc polecenie:
$ ls -alt /var/spool/mail/
Posortuje ono pliki według dat mo-
dyfi kacji.
UML – szczególny
przypadek pułapki
Jednym z najbardziej znanych inte-
raktywnych honeypotów jest User
Listing 1.
Wykrycie obecności Tiny Honeypot za pomocą FTP
Przy pierwszej próbie:
$ telnet localhost 21
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 localhost.localdomain.localdomain FTP server (Version wu-2.6.1(2)) ready.
Przy następnej:
$ telnet localhost 21
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 localhost.localdomain.localdomain NcFTPd Server ready.
Listing 2.
Fałszywy plik /etc/
ftpusers zdobyty przez intruza
# /etc/ftpusers:
# list of users
# disallowed ftp access.
# See ftpusers(5).
root
ftp
anonymous
Listing 3.
Prosty skrypt
monitorujący obciążenie
procesora
#!/bin/sh
while
[ 1=1 ]
do
ps -e -opcpu \
| awk '{P+=
$1
} END {print P}'
sleep 1m
done