2009 01 Analiza powłamaniowa


OBRONA
KONRAD ZUWAAA
Analiza
powłamaniowa
Stopień trudności
Wielokrotnie po wykryciu niepożądanej aktywności na
komputerze naszym celem jest wykrycie śladów aktywności
nieautoryzowanego użytkownika i zdobycie wiedzy o tym, co tak
naprawdę stało się na naszym komputerze. I właśnie temu celowi
służy analiza powłamaniowa.
naliza powłamaniowa ma wiele Trudno jest na początku określić, czym
wspólnego z analizą detektywistyczną. konkretnie powinniśmy się zająć. Oczywiście,
AMusimy ustalić czas, miejsca, można powiedzieć, że chcemy dowiedzieć się,
powiązać ze sobą wiele faktów. Często w kto, kiedy i w jaki sposób wtargnął do naszego
celu uzyskania informacji musimy zapuścić systemu operacyjnego i czego w nim dokonał.
się w najdziwniejsze miejsca systemu, nie Jednak, aby odpowiedzieć na te pytania,
oszczędzając przy tym jego najgłębszych musimy zgromadzić wiele różnorodnych
zakamarków. Niejednokrotnie uzyskane danych, najczęściej po drodze nie znajdując
informacje będą szczątkowe, niedokładne, konkretnych i wyraznych dowodów. Będziemy
będziemy musieli się sporo napocić w celu co najwyżej dysponowali strzępkami informacji,
ich powiązania i odnalezienia wzajemnych które musimy w jakiś sposób ze sobą połączyć
zależności. Ale na tym właśnie polega i wyciągnąć z nich wnioski.
analiza powłamaniowa  na korzystaniu z Jakie informacje są przechowywane w
tych informacji, które uda nam się zdobyć w naszym systemie? W większości przypadków
skompromitowanym systemie. są to śmieci  pliki, które praktycznie nigdy nie
Aby jednak zabrać się za analizę, należy są używane. Na serwerach UNIX-owych tylko
najpierw przygotować się teoretyczne do niewielka część zbiorów jest systematycznie
Z ARTYKUAU
podejmowanego zagadnienia. Nie zawadzi też wykorzystywana (otwierana, odczytywana).
DOWIESZ SI
przygotować do tego celu system operacyjny w Większość z nich nie jest potrzebna przez długi
czym jest analiza
odpowiedni, wymagany do podobnych czynności, czas, np. pliki konfiguracyjne są odczytywane
powłamaniowa,
sposób. tylko w momencie uruchomienia programu, a
jak się ją wykonuje,
Zakładam, że użytkownik korzysta z systemu potem po prostu leżą one na dysku, czekając
jak działa system plików,
bazującego na jakimś Uniksie (FreeBSD, na ponowny reboot maszyny bądz restart
jak wygląda analiza
OpenBSD, Linux, etc.), niemniej jednak część programu, co sprawi, iż ich zawartość zostanie
podejrzanego programu.
zawartych w artykule treści jest uniwersalna odczytana. A jak wiemy, niektóre serwery nie są
CO POWINIENEŚ
i może być odniesiona również do systemu restartowane latami.
WIEDZIEĆ
Windows. Co z tego wynika? Nowoczesne komputery
znać podstawy administracji
Podstawową prawdą analizy są w stanie w kilka sekund zapełnić nawet
systemu UNIX-owego,
powłamaniowej jest nieszukanie niczego największe dyski twarde. Jednak procesy
znać podstawy języka C,
szczególnego. Każdy, kto szuka czegoś systemowe odnoszą się ciągle do tych samych
mieć ogólną wiedzę o
konkretnego w systemie, nie znajdzie tak danych, korzystając z plików. Gdy więc system
systemach komputerowych
i zasadzie ich działania. naprawdę nic. Na co bowiem zwracać uwagę? ciągle odczytuje i zapisuje w tych samych
56 HAKIN9 1/2009
ANALIZA POWAAMANIOWA
plikach, tak naprawdę zaciera po analizy, jest iluzja, jaką wytwarza wokół potwierdzenie informacji o jego
sobie ślady. Zarówno po sobie, jak i po nas system operacyjny. Cały system logowaniu. Jeżeli ponadto jakiś system
potencjalnym intruzie  zacierane są plików jest tak naprawdę iluzją. Pliki są IDS, bądz inny sniffer działający w danej
znaczniki czasowe, ślady jakiejkolwiek bowiem ciągiem zer i jedynek, informacją sieci, potwierdzi, że miało miejsce takie
niepożądanej modyfikacji plików. Dlatego elektromagnetyczną zapisaną na dysku połączenie z hosta o adresie IP x.x.x.x
też w analizie powłamaniowej tak twardym. Foldery i pliki  to wszystko  wtedy możemy być prawie pewni, że
bardzo cenione są informacje niezwykłe, jest iluzją stworzoną przez system informacja jest prawdziwa. Jednak ciągle
odbiegające od zwyczajnych operacji operacyjny, swoistym udogodnieniem, nie mamy stuprocentowej pewności, jako
dostępu do danych plików czy też które powoduje, że tak łatwo używa nam że sprawny atakujący mógł być w stanie
otwarcia zbiorów, które na ogół nie są się komputera. Należy o tym pamiętać spreparować wszystkie wymienione
używane. w trakcie odzyskiwania utraconych zródła. Mimo wszystko, im więcej zródeł
Kolejną niezwykle istotną kwestią plików czy też analizy fragmentów potwierdza istnienie informacji, w tym
jest tak zwana kolejność zmienności zbiorów odnalezionych gdzieś na dysku wyższym stopniu możemy jej zaufać.
informacji (ang. Order Of Volatility).  możemy tego dokonać z całkowitym Możemy wyróżnić dwie metody
Jak wiadomo, część informacji ulega pominięciem systemu plików, co sprawi, zdobywania informacji  w książce
szybszemu zatarciu i  w konsekwencji że ilość uzyskanych informacji będzie Forensic Discovery autorstwa Dana
 zatraceniu. Najszybciej informacje znacznie większa. Farmera i Wierse'a Venema zyskały
zostaną utracone z nośników Trzeba też zwrócić uwagę na one nazwę cyfrowej archeologii i
elektrycznych (takich jak rejestry poziom zaufania, jaki możemy mieć cyfrowej geologii. Są to oczywiście
procesora, jego pamięć cache, pamięci do danej informacji. O ile pojedyncza analogie do tych dyscyplin naukowych
RAM) czy odbiorników sieciowych, takich informacja może wydawać się mało i ich użycia w realnym, niewirtualnym
jak karty sieciowe  które przecież prawdopodobną, o tyle jej powtórzenie świecie. Archeologia, jak sama nazwa
zawierają własne bufory czy kości się w wielu różnych miejscach może ją mówi, polega na badaniu tego, co jest
pamięci. Te informacje zwykle są dla znacznie uwiarygodnić. Wezmy przykład: dziełem człowieka. Odnosząc to do
nas niedostępne, ponieważ czas ich znalezliśmy wpis o zalogowaniu się komputerów, dochodzimy do wniosku, że
życia oscyluje w granicach mikro- czy użytkownika w pliku z logami serwera musimy zbadać aktywność użytkownika
też nanosekund. W dalszej kolejności telnet. Jest to jedna informacja, nie na konkretnej maszynie. Powinniśmy
mamy działające procesy, których musi być ona wiarygodna. Jeśli jednak zatem przeanalizować używane przez
czas życia waha się od kilku sekund przejrzymy plik z historią poleceń niego pliki, uruchamiane procesy
do kilku godzin (wiadomo jednak, że tego użytkownika w jego powłoce i  wszystko to, co zostało zainicjowane
informacje, na których one operują, zobaczymy, że wpisywał odpowiednie z konta systemowego skojarzonego
ulegają ciągłej wymianie  toteż szybko komendy  uzyskamy dodatkowe z identyfikatorem podejrzanego.
tracą one na aktualności). Dyski twarde,
w zależności od typu informacji, mogą je
Listing 1. Funkcja lstat() i powiązana z nią struktura
przechowywać od kilku sekund do kilku
#include
miesięcy czy nawet lat. Wszystko jest
kwestią wykorzystywanej informacji 
int lstat(const char* path, struct stat* buf);
pliki tymczasowe tworzone przez niektóre
struct stat {
programy mogą istnieć zaledwie parę
dev_t st_dev; /* ID urządzenia zawierającego plik */
sekund, podczas gdy lwia część danych
ino_t st_ino; /* numer inode */
zalega na dyskach w niezmienionej
node_t st_mode; /* ochrona */
postaci przez wiele miesięcy. Nośniki
nlink_t st_nlink; /* ilość twardych dowiązań */
uid_t st_uid; /* ID właściciela pliku */
zewnętrzne, takie jak dyskietki, pamięci
gid_t st_gid; /* ID grupy właściciela pliku */
masowe czy płyty CD/DVD/BlueRay, są
dev_t st_rdev; /* ID urządzenia (jeśli plik specjalny */
w stanie pamiętać zapisane na nich
off_t st_size; /* całkowity rozmiar, w bajtach */
dane przez wiele lat. blksize_t st_blksize; /* rozmiar bloku systemu plików */
blkcnt_t st_blocks; /* ilość zaalokowanych bloków*/
Co z tego wynika? Otóż w pierwszej
time_t st_atime; /* czas ostatniego dostępu (access) */
kolejności powinno się zabezpieczyć
time_t st_mtime; /* czas ostatniej modyfikacji (modification) */
dane ulotne, które możemy utracić w
time_t st_ctime; /* czas ostatniej zmiany (time) */
krótkim czasie. Postępując w ten sposób, };
powinniśmy zabezpieczać informacje i ich
Listing 2. Budowanie obrazu partycji i kopiowanie go przez sieć
nośniki w odpowiedniej kolejności 
począwszy od tych ulotnych, po te, którym
#!/bin/bash
dd if=/dev/hda1 bs=100k of=obraz.hda
nic nie zagraża.
nc -l -p 2345 > obraz.hda
Kolejną rzeczą, z której musimy sobie
zdać sprawę podchodząc do takiej
1/2009 HAKIN9 57
OBRONA
Geologia zaś jest procesem badania Instalacja obu zestawów Pokazuje on prototyp funkcji lstat(), której
aktywności systemu operacyjnego narzędziowych jest raczej intuicyjna i zadaniem jest pobranie informacji o pliku
jako środowiska nadrzędnego nad każdy średnio doświadczony użytkownik i zapisanie ich do specjalnej struktury,
użytkownikiem, które jest przez niego w systemu UNIX-owego będzie w stanie ją która odpowiada parametrom zbioru,
pewien sposób kształtowane. Mówiąc wykonać. Przystąpmy więc do analizy. jakie przechowywane są w systemie
prościej, analizujemy wszystko to, plików.
czego użytkownik nie uruchomił, a co Czas to pieniądz Struktura stat zawiera zmienne
działa w systemie  dostęp do plików  zdobywanie informacji odpowiadające parametrom pliku. Nas
konfiguracyjnych, operacje na dyskach, o czasie interesują trzy ostatnie pozycje  są to
informacje zgromadzone w systemie W większości przypadków cała analiza właśnie znaczniki MAC. Z pomocą tej
plików, które nie są dziełem użytkownika. nie dąży do tego, aby zobaczyć, co się struktury można napisać program, który
Wiemy już, jak zabrać się za stało. To jest raczej oczywiste  jeśli ktoś będzie przeszukiwał system plików w
analizę, musimy jeszcze odpowiednio miał dostęp do naszego komputera, celu odnalezienia jakichś podejrzanych
przygotować do niej system operacyjny. mógł zrobić praktycznie wszystko, na co modyfikacji.
Oczywiste jest, że potrzebujemy miał ochotę. Nie mamy na to większego Możemy np. za jego pomocą
odpowiedniej ilości miejsca na wpływu. Ważniejsza jest informacja, sprawdzić pliki systemowe czy
dyskach twardych, aby przekopiować, kiedy coś miało miejsce. Pozwoli nam konfiguracyjne, które ostatnio były
a następnie zamontować obrazy to zorientować się, jakie informacje modyfikowane. Jak powiedzieliśmy
systemu plików skompromitowanego mogły przeciec z naszego komputera wcześniej, pliki te są zwykle bardzo
systemu. Niezbędne będą również czy przez jaki okres nasza maszyna rzadko otwierane. Jeśli zauważymy
pewne narzędzia, które umożliwią nam była narażona na ingerencję z zewnątrz. jakieś podejrzane zmiany czasu,
wykonywanie operacji na systemie Sprawdzając czas, prędzej czy pózniej modyfikacje plików systemowych lub
plików skompromitowanej maszyny dojdziemy też do tego, co tak naprawdę konfiguracyjnych czy nawet pojawienie
 czy to poprzez zamontowanie jego było przyczyną kompromitacji systemu się nowych programów, których w
obrazu na innym komputerze, czy też i co zostało bądz mogło zostać na systemie nie powinno być  mamy
na maszynie, która jest przedmiotem nim zrobione. Warto przypomnieć, że ślad. O znacznikach MAC powiemy
naszych badań. Musimy pamiętać o niniejszy artykuł nie będzie tłumaczył, więcej w sekcji artykułu poświęconej
zasadzie ulotności informacji  najpierw w jaki sposób wykryć, że system został UNIX-owym systemom plików. Tam
powinniśmy pozbierać informacje z skompromitowany  to temat na dokładniej omówimy, czym tak naprawdę
pamięci komputera, procesów, czyli tego oddzielną publikację. Artykuł opisuje to, jest system plików i jak go wykorzystać
wszystkiego, czego nie jesteśmy w stanie co należy zrobić, dysponując już wiedzą do naszych celów  do odnalezienia
fizycznie skopiować na inny komputer. o naruszeniu integralności naszego niezbędnych śladów.
Zestawem potrzebnych narzędzi jest systemu operacyjnego.
The Coroner's Toolkit lub też projekt, który System logujący ruch
miał go zastąpić  The Sleuth Kit. TCT Znaczniki MAC sieciowy  kopalnia informacji
jest projektem stworzonym przez autorów MAC (ang. Modified, Accessed, Wiele większych serwerów
wymienionej wcześniej książki, która Changed  czyli modyfikowany, używany, korporacyjnych, czy nawet systemów w
dostępna jest za darmo w Internecie. zmieniany) to atrybuty systemu plików, małych firmach, których infrastruktura
Więcej na ten temat można znalezć w określające czas różnych operacji sieciowa nie jest szczególnie
ramce W Sieci. dostępu do pliku. Spójrzmy na Listing 1. rozbudowana, posiada specjalne
systemy logujące ruch sieciowy.
Programy te, których przykładem jest
Listing 3. Odczytywanie informacji z dziennika systemu plików
argus, pozwalają zapisywać wszystkie
zdarzenia, które miały miejsce w sieci.
# tune2fs -l /dev/hda1 | grep -i journal
Oczywiście napotykamy w tym miejscu
filesystem features: has_journal filetype needs_recovery sparse_super
Journal UUID:
na pewien problem.
Journal inode: 8
Otóż średniej wielkości serwer WWW
Journal device: 0x0000
potrafi w ciągu doby wygenerować
# icat /dev/hda1 8 > ~/fsJournal
dziesiątki (jeśli nie setki) gigabajtów
W Sieci
" http://www.porcupine.org/forensics/forensic-discovery  doskonała publikacja dotycząca analizy powłamaniowej,
" http://www.porcupine.org/forensics/tct.html  The Coroner's Toolkit,
" http://pl.wikipedia.org/wiki/Ext3  system plików ext3.
58 HAKIN9 1/2009
ANALIZA POWAAMANIOWA
ruchu sieciowego. Analizowanie W produkcie Microsoftu mamy dyski Najwyższym poziomem w hierarchii
wszystkich danych zebranych przez twarde oznaczone literami alfabetu *niksa jest katalog /. Jest to nadrzędne
takie oprogramowanie mogłoby łacińskiego. Aby dostać się do danej miejsce dla wszystkich innych plików
powodować spore kłopoty  komu partycji dysku, należy wybrać najpierw i katalogów w systemie  nie możemy
chciałoby się to czytać? Jednak, literę odpowiadającą danemu dyskowi wejść do katalogu wyżej (odpowiada
dzięki pomocy programów logujących, fizycznemu bądz logicznemu (czyli na to katalogowi X: w systemie Windows,
można np. wyszczególnić tylko przykład partycji). gdzie X oznacza literę dysku twardego).
połączenia na wybrany port czy też z W Linuksie, FreeBSD czy innym Każdy system UNIX-owy zawiera pewien
określonego hosta. Możliwe jest również podobnym systemie nie odczuwamy standardowy zestaw podkatalogów
wygenerowanie logów na podstawie w żaden sposób faktu, że właśnie w katalogu głównym  są to m.in.
daty zdarzenia sieciowego  jest to uzyskaliśmy dostęp do innego dysku /mnt/, /bin/, /usr/, etc. Odpowiadają
kwestia dobrania odpowiedniego twardego, bądz też do innej jego partycji. one Windowsowemu katalogowi C:
oprogramowania i specyfikacji filtrów Nie odnosimy się bowiem do żadnego \WINDOWS, C:\PROGRAM FILES. Uważny
wyszukiwania. symbolu pozwalającego nam wybrać Czytelnik od razu dostrzeże różnicę
Załóżmy, że za pomocą analizy dany dysk. w konwencji rozdzielania katalogów
znaczników MAC znalezliśmy w systemie
nowy program  nazwijmy go telnetd.
Program podszywa się pod serwer
telnetu, nasłuchując oczywiście na
/
bin
default rc. d sound
sysconfig xll
innym porcie w celu zamaskowania
swego istnienia. Dzięki obecności
boot
oprogramowania analizującego ruch
sieciowy możliwe jest wychwycenie,
dev
że pewien program nasłuchuje na
określonym porcie. Wtedy mamy już 2
etc
rick anna emmy bob
informacje  nowy program w systemie
i w dodatku oczekujący połączeń z
home
Internetu. Przypadek? Chyba nie...
Z powyższego przykładu widać,
lib xllR6
że warto mieć zainstalowane
oprogramowanie, którego zadaniem
cdrom floppy
lost + found bin
jest nadzór ruchu sieciowego. W
szczególnych sytuacjach, takich jak
misc games
opisana, jego istnienie może być dla
nas nieocenioną pomocą. Warto więc
mnt include
zawczasu zaopatrzyć się w tego typu
narzędzie.
net lib
Budowa systemu
opt
gdm local
plików UNIX-a
System plików w UNIX-ach znacząco
proc man
lib
różni się od tego spotykanego w
systemach operacyjnych Microsoftu.
root sbin
lock
Podstawową różnicą jest podejście do
plików i katalogów  na pewno często
sbin doc
run share
początkujący użytkownik jakiegoś UNIX-a
słyszy, że w UNIX-ie wszystko jest plikiem.
tmp log src
Jest to po części prawda, ponieważ w
systemie tym większość urządzeń (jeśli
usr
spool
nie wszystkie) ma swoją reprezentację
w postaci specjalnego pliku. Możliwy
var tmp
jest dzięki temu bezpośredni dostęp do
tego urządzenia, co przyda nam się w
pózniejszej części analizy.
Hierarchia systemu plików jest
również inna aniżeli w systemie Windows. Rysunek 1. Struktura plików systemu Linux
1/2009 HAKIN9 59
OBRONA
 w systemie Windows używa się do miękkich dowiązań do danego pliku zapis pochłania przecież dwa razy
tego znaku \, natomiast w systemach  tak, że nie jest możliwe jego odczytanie więcej miejsca niż jest to wymagane dla
Linux czy FreeBSD jest to znak / (chociaż z poziomu systemu plików. Dodatkowo standardowej operacji zapisu.
w nowszych systemach Windows znak / dany blok dysku, w którym znajdował Najpopularniejszym trybem jest
również działa). się ten plik, zostaje przez system jednak ten, który nie księguje całego
System plików *niksa rozróżnia operacyjny zaznaczony do nadpisania pliku, tylko jego metadane (dane, jakie
wielkość liter, więc pliki XYZ i xyz to  przy nadarzającej się okazji system ma o pliku system plików, zilustrowane za
dwa całkiem różne obiekty. Dodatkowo operacyjny zapisze w danym miejscu pomocą struktury stat przedstawionej na
musimy pamiętać, że nie występuje inne dane, niszcząc to, co było tam Listingu 1).
tutaj pojęcie rozszerzenia pliku  jest wcześniej przechowywane. Możliwość
ono zupełnie opcjonalne i służy jedynie taka jest zależna od aktywności danego Przeszukiwanie systemu plików
naszej wygodzie, abyśmy z łatwością komputera  jeśli często są na nim Pierwszą rzeczą, jaką należy zrobić, jest
mogli się zorientować, z czym mamy do wykonywane operacje odczytu/zapisu, zbudowanie obrazu systemu plików.
czynienia. wtedy prawdopodobieństwo takiego Służy do tego komenda dd. Jej działanie
Zostało nam jeszcze do omówienia usunięcia, aby odzyskanie pliku było jest zaprezentowane na Listingu 2.
kilka niezwykle istotnych pojęć, które bardzo trudne, znacząco wzrasta. Za pomocą polecenia dd budujemy
zaraz wykorzystamy w praktyce. Wiadomość ta jest niezwykle obraz dysku twardego, nazywamy go np.
Pierwszym z nich jest tak zwane przydatna w analizie powłamaniowej obraz.hda.
dowiązanie do pliku, zwane inaczej  możemy spróbować odczytać Następnie możemy albo
węzłem (ang. inode). Jest to liczba zawartość dysku twardego z pominięciem przekopiować ręcznie dany obraz na
określająca dany plik, wskazująca na systemu plików, licząc, że odczytamy inna maszynę, albo wykorzystać do tego
dany obiekt, umożliwiająca dostęp jakieś wartościowe informacje. Co więcej, celu sieć  jak pokazano na Listingu.
do niego. Mamy także dwa rodzaje możemy pokusić się o odzyskanie Jednakże należy wziąć pod uwagę,
dowiązań (linków): są to dowiązania wartościowych plików, które mógł że sieć może nie być bezpieczna,
miękkie i twarde. Twarde dowiązanie usunąć włamywacz. Faktem jest jednak, wtedy część informacji może zostać
wskazuje bezpośrednio na dane iż jest to proces niezwykle praco- i przechwycona przez niepożądane
zapisane na dysku twardym, odnosi czasochłonny, często kończący się osoby. W takiej sytuacji należy
się po prostu do danego obszaru, jaki niepowodzeniem. Gdy chcemy odzyskać rozważyć zastosowanie szyfrowania
zajmuje plik na urządzeniu. Określa na wartościowe dane, lepiej powierzyć to transferowanego pliku.
przykład blok pamięci dysku twardego, w zadanie wykwalifikowanym specjalistom, Następnym krokiem będzie
którym rezyduje dany plik, jego fizyczny którzy pracują w firmach na co dzień zamontowanie systemu plików ofiary
adres. zajmujących się podobnymi pracami. na naszym komputerze. Dokonujemy
Dowiązanie miękkie jest zaś Ostatnią istotną z naszego punktu tego za pomocą polecenia mount
strukturą, która wskazuje na nazwę pliku widzenia cechą systemu plików tak, jakbyśmy montowali inne dowolne
w systemie, nie zaś bezpośrednio na nowoczesnego systemu operacyjnego, urządzenie dyskowe. Za pomocą
dane, do których plik ten się odwołuje. takiego jak Linux, FreeBSD, Microsoft przełącznika -t ustalamy, jaki system
Jest to inaczej popularny skrót do Windows, jest tzw. journaling, czyli  plików zawiera obraz. Dodajemy również
pliku. Przypuśćmy, że utworzyliśmy tłumacząc na język polski  księgowanie. opcje ro, noexec, nodev (aby zapobiec
plik /MojPlik. Mamy więc tylko jedno Jak sama wskazuje, jest to pewien przypadkowemu nadpisaniu obrazu
dowiązanie twarde wskazujące na dane, sposób zapisywania informacji o tym, czy uruchomieniu programów). Teraz
które przechowuje ten plik. Używając co miało miejsce w systemie plików możemy działać.
polecenia ln -s, jesteśmy w stanie  operacje zapisu pliku, jego odczytu  Na początek sprawdzimy znaczniki
utworzyć wiele dowiązań symbolicznych, słowem, swoisty dziennik tego, co system MAC zamontowanego systemu plików.
które będą de facto skrótami do tego plików wykonał w określonym czasie. Jest Służy do tego polecenie mctime pakietu
pliku, odnosząc się do jego nazwy w tak w większości przypadków, bowiem narzędzi TCT, który zainstalowaliśmy
systemie plików. Jednak tylko jedno możliwe jest także takie skonfigurowanie uprzednio na systemie używanym do
dowiązanie twarde będzie wskazywało księgowania, aby  zależnie od przeprowadzenia analizy. Polecenie to
na dane zawarte w tymże pliku. naszych potrzeb  zapisywało cały plik pokaże nam, które pliki były używane  a
Do czego jest nam to potrzebne? podwójnie, dzięki czemu możliwe będzie przecież, jak powiedzieliśmy na samym
Otóż jest to niezbędne do zrozumienia odtworzenie na przykład niepoprawnie początku, każde użycie pliku zwykle
koncepcji usuwania pliku przez system zapisanych danych. niewykorzystywanego powinno wzbudzić
operacyjny. Jak pewnie każdy słyszał, Wszystko jest kwestią pewnego naszą ciekawość. Załóżmy, że odkryliśmy
możliwe jest odzyskanie danych z kompromisu pomiędzy wydajnością plik, który ma nazwę telnetd, jak miało to
usuniętego pliku. Otóż kasowanie pliku (czyli operacją odczytu/zapisu) a miejsce w przykładzie zamieszczonym
przez system operacyjny jest niczym bezpieczeństwem  no i oczywiście powyżej. Na początku powinniśmy się
innym jak usunięciem twardych i ilością miejsca na dysku, podwójny upewnić, czy aby na pewno nie jest to
60 HAKIN9 1/2009
ANALIZA POWAAMANIOWA
prawdziwy serwer telnetu. Najprostszą znakowe zawarte w programie, możliwy, ale tylko poprzez bezpośrednie
metodą jest wygenerowanie sumy sprawdzić, z jakimi bibliotekami jest odwołanie się do jego i-węzła na
md5 dla takiego pliku i jej porównanie on dynamicznie połączony. Końcowym dysku twardym, z pominięciem struktur
z dostępnymi sumami md5 dla plików  i najtrudniejszym  etapem jest systemu plików. Musimy więc znalezć
poszczególnych dystrybucji systemów, dezasemblacja kodu programu w  za pomocą programu tune2fs dla
które możemy znalezć w Internecie. celu dokładnego prześledzenia jego systemu ext3  odpowiedni numer
Polecenie wygląda następująco: działania. Jest to jednak zadanie inode odpowiadający dziennikowi
md5sum telnetd. Sumę porównujemy żmudne i czasochłonne, do tego systemu plików, a następnie  używając
z odpowiednią wielkością pochodzącą z wymaga niemałych umiejętności programu icat (inode cat) z pakietu TCK
bazy danych odpowiadającej określonej programistycznych  doskonała  przekopiować zawartość owego węzła
dystrybucji systemu. Jeśli sumy md5 są znajomość asemblera jest tutaj do pliku na dysku twardym. Możemy
inne, znaczy to, że mamy do czynienia absolutnie niezbędna. wtedy przeszukiwać dziennik w celu
z dwoma różnymi programami. Możliwy Analiza dynamiczna obejmuje znalezienia czegoś interesującego.
jest też scenariusz, w którym plik telnetd wszystkie działania, jakie możemy Pewnym smaczkiem jest również
będzie w rzeczywistości innym plikiem przeprowadzić podczas działania bezpośrednie przeszukiwanie pamięci
z danego systemu, np. /bin/login, co badanego programu. Obejmuje to takie na systemach UNIX-owych. Oczywiście,
umożliwi intruzowi zdalne zalogowanie działania jak debugowanie programu w jest ono przydatne tylko wtedy, gdy
się do systemu. Należy więc sprawdzić, czasie rzeczywistym czy jego śledzenie stosunkowo szybko wykryliśmy włamanie.
czy przypadkiem któraś z innych sum za pomocą systemowej funkcji strace. Wtedy możemy sprawdzić, co aktualnie
md5 nie pasuje do analizowanego Wiąże się to jednak z oczywistym znajduje się w pamięci i ewentualnie
pliku. Ważnym jest też czas utworzenia ryzykiem, jakim jest zniszczenie systemu, przefiltrować wyniki w poszukiwaniu
tego pliku  informuje nas on o na którym pracujemy. dowodów. Służy do tego specjalny
prawdopodobnej dacie kompromitacji W tym celu stworzono specjalne plik-urządzenie w katalogu /dev  jest
systemu. systemy wirtualne do takiej właśnie to /dev/mem, czyli pamięć. Za pomocą
Kolejnym krokiem będzie analiza analizy. Starają się one emulować kombinacji komend cat /dev/mem |
logów z interfejsów sieciowych. określony system z daną platformą grep cosInteresujacego możemy
Często pozwoli nam to ustalić, które sprzętową w celu maksymalnego przeszukać pamięć pod kątem
hosty łączyły się w określonym dniu z oszukania podejrzanego programu. zawartości danych szczególnie dla nas
komputerem na danym porcie, np. na Można przechwytywać wywołania w tym momencie ważnych. Listing 3.
tym, na którym nasłuchiwał program funkcji systemowych, przerwań pokazuje, jak odczytać dziennik systemu
telnetd. Mając adres IP takiego hosta, sprzętowych, dostęp do interfejsów plików  jest to realizowane w sposób
możemy sprawdzić, czy aby nie sieciowych. Słowem  wszystko to, dość nietypowy, stąd umiejscowienie
występuje on jeszcze gdzieś w logach. czego może taki program potrzebować, opisywanej operacji akurat w tym dziale.
Zwykle jest on obecny pod wcześniejszą gdy jest uruchomiony w rzeczywistym
datą, co pozwala nam zobaczyć, jaki środowisku. Podsumowanie
program był przyczyną kompromitacji Poznanie działania podejrzanego Analiza powłamaniowa jest
analizowanego systemu. Mówiąc programu jest dość istotnym elementem nieodzownym narzędziem w sytuacji,
prościej  która aplikacja była na tyle analizy powłamaniowej  pozwala ono w której padliśmy ofiarą cyberataku.
dziurawa, że atakujący mógł dokonać jej przekonać się, do czego mógł być Pozwala ustalić, kiedy to zdarzenie miało
zdalnej exploitacji. wykorzystany skompromitowany system. miejsce i co mogło zostać wykonane
Gdy wiemy już, co było przyczyną Po wykonaniu takiej analizy powinniśmy w skompromitowanym systemie  w
kompromitacji systemu i kiedy miała ona już dysponować informacją o tym, kiedy jakim celu użył go atakujący. Wiedza ta
miejsce, możemy przystąpić do bardziej wszystko się zaczęło  możemy nawet jest konieczna w sytuacji, gdy chcemy
szczegółowej analizy znalezionego dowiedzieć się, kiedy ostatni raz intruz zabezpieczyć się przed powtórnym
programu. Nie jest to tematem niniejszej logował się do skompromitowanego złamaniem naszego systemu.
publikacji, toteż ograniczymy się jedynie systemu. To wystarczy, aby sporządzić Pozostaje mieć nadzieję, że systemy
do krótkiego przeglądu dostępnych odpowiedni raport z takiej analizy. administrowane przez Czytelnika nie
możliwości. będą musiały zostać poddane analizie
Analizę podejrzanego programu Szukanie informacji powłamaniowej.
możemy podzielić na statyczną w nietypowych miejscach
i dynamiczną. Ostatnią rzeczą, którą poruszymy w
Statyczna analiza obejmuje tej publikacji, będzie pewnego rodzaju
Konrad Zuwała
Autor zajmuje się bezpieczeństwem aplikacji
wszystko, co możemy zrobić bez ciekawostka  wyszukiwanie informacji
internetowych oraz szeroko rozumianą ochroną
uruchamiania podejrzanego programu. w miejscach całkowicie nietypowych. systemów komputerowych. W wolnych chwilach
programuje (głównie C/C++, PHP) oraz zarządza
Możemy za pomocą polecenia Na początek wezmy dziennik
portalem internetowym.
strings wypisać wszystkie łańcuchy systemu plików. Dostęp do niego jest Kontakt z autorem: kzuwala@poczta.onet.pl
1/2009 HAKIN9 61


Wyszukiwarka

Podobne podstrony:
Warunki techniczne zmiana 2009 01 01 Dz U 2008 201 1238
2009 01 Firewall w Linuksie [Poczatkujacy]
Sprzęt specjalistyczny w służbie PP 2009 01 03
egzamin 2009 01 (X 91) arkusz
2009 01 Vim – konkurent prawie doskonały! [Poczatkujacy]
2009 06 Analiza obrazu z wykorzystaniem ImageJ [Grafika]
01 analiza kinematyczna zadanie
2003 02 Sieciowa analiza powłamaniowa krok po kroku
2006 01 Analiza bezpieczeństwa komunikatora internetowego z wykorzystaniem platformy Linux [Bezpiecz
01 analiza kineamryczna zadanie
311[15] O2 01 Analizowanie układów elektrycznych i elektronicznych
01 analiza kinematyczna zadanie
2009 01 The Naked Wiki id 20616 Nieznany
SIMR ALG1 EGZ 2009 01 30a rozw
01 analiza kinematyczna zadanie

więcej podobnych podstron