A miał być taki piękny dzień...

Co należy wykonać, żeby właściwie zabezpieczyć "twardziela"? Co da się wyciągnąć z tak wdzięcznego źródła danych, jakim jest twardy dysk? Jak wygląda badanie na poziomie fizycznym, a jak na logicznym? Przedstawiamy podstawy powłamaniowej analizy systemów plików. Jest ona jednym z najtrudniejszych zagadnień w dziedzinie Computer Forensics.

Co należy wykonać, żeby właściwie zabezpieczyć "twardziela"? Co da się wyciągnąć z tak wdzięcznego źródła danych, jakim jest ? Jak wygląda badanie na poziomie fizycznym, a jak na logicznym? Przedstawiamy podstawy powłamaniowej analizy systemów plików. Jest ona jednym z najtrudniejszych zagadnień w dziedzinie Computer Forensics.

Lipcowy poranek zapowiadał się wyjątkowo uroczo. Budzik zadzwonił wcześnie, ale z uwagi na piękną pogodę i 25 stopni za oknem i tak nie było sensu dłużej leżeć w łóżku. Tym bardziej, że był piątek i wizja rozpoczynającego się za kilkanaście godzin weekendu sprawiała, że chciało się szybko rozprawić z czekającymi w pracy zadaniami i przyspieszyć nadejście godziny 17.00. Tak więc w tym szampańskim humorze Andrzej w sprinterskim tempie poddał się porannej toalecie, złapał drożdżówkę i z kubkiem parującej kawy pobiegł do samochodu. W biurze był po 15 minutach, siadł przy biurku, sprawdził pocztę i... wtedy w drzwiach stanął szef.

No to koniec przyjemnego dnia - pomyślał Andrzej. Pojawienie się przełożonego w piątek rano nigdy nie wróżyło niczego dobrego. Okazało się, że sprawa jak zwykle jest poważna i jak zwykle niecierpiąca zwłoki. Tym razem chodziło o podejrzenie malwersacji w dziale finansowym. Szef wybrał piątek nieprzypadkowo. Akurat wtedy odbywało się szkolenie, w którym uczestniczyli wszyscy pracownicy tego działu. Dzięki temu można było niepostrzeżenie dostać się do serwera finansowego i pobrać materiał, który potem w bardziej zacisznym miejscu będzie poddany analizie. Andrzej trochę zrezygnowany i bez nadziei na krótki i bezstresowy dzień zabrał swój neseser, w którym znajdowały się wszystkie potrzebne "instrumenty" i poszedł do serwerowni. Tam od razu zabrał się do roboty. Dawno nie zabezpieczał twardych dysków, więc musiał przypomnieć sobie wszystkie zasady.

Pierwsze kroki

Tak właśnie może wyglądać piątek w życiu każdej osoby zajmującej się bezpieczeństwem. Nie należy jednak załamywać rąk, bo chociaż czeka nas sporo pracy, to jednak przeprowadzenie analizy jest jak najbardziej możliwe. Ponieważ jest to temat obszerny i wielowątkowy postarajmy się przede wszystkim poznać podstawy. Łatwiej będzie wówczas poszerzyć wiedzę i dopasować ją do konkretnych potrzeb. Rzućmy zatem okiem na to co powinniśmy wiedzieć i co da się wyciągnąć z tak wdzięcznego źródła danych, jakim jest twardy dysk.

Zanim przejdziemy do samej analizy, przypomnijmy szybko kroki, jakie należy wykonać, żeby właściwie zabezpieczyć "twardziela". W przypadku analizy statycznej, inaczej zwanej analizą martwego systemu, nie musimy się spieszyć tak, jak ma to miejsce w wypadku działającego systemu. Jedyną rzeczą, jaką warto zrobić przed odłączeniem zasilania od komputera, jest sprawdzenie, czy czas systemowy zgadza się z czasem rzeczywistym. Będzie to miało znaczenie podczas przeglądania danych. Na szczęście w wyposażeniu mamy płytę CD z garścią przydatnych programów, m.in. now.exe (http://www.microsoft.com/windows2000/techinfo/reskit/tools/existing/now-o.asp), dzięki któremu sprawdzimy ten właśnie parametr bez wykorzystywania narzędzi systemu operacyjnego. Samo uruchomienie programu nie wystarcza - później trzeba będzie udowodnić, że czasy faktycznie się zgadzały. My jako stuprocentowi profesjonaliści przewidzieliśmy taką ewentualność. Dlatego też aby niczego nie zapisywać na dysku, który za chwilę zostanie sklonowany i poddany analizie, uruchamiamy na naszym pececie, nasłuchujący na porcie 9999 program netcat (http://www.vulnwatch.org/netcat/). Do niego też przesyłamy wynik działania now.exe :

D:\narzedzia\netcat -l -p 9999 > czas [nasz pecet]

CDROM:\>now.exe | nc.exe 10.39.132.3 -w 2 [badany komputer]

Następnie pamiętając o kardynalnej zasadzie Computer Forensics, wykonujemy sumę kontrolną dopiero co stworzonego pliku, a jej wartość dodatkowo zapisujemy w zwykłym, papierowym notatniku. W ten sposób zabezpieczamy integralność danych. Nawet jeżeli ktoś później zmieni plik "czas" i wygeneruje nową sumę kontrolną, to mało prawdopodobne jest, aby spodziewał się papierowej kopii otrzymanej wartości. Co prawda - dla większego bezpieczeństwa - można by było sumę kontrolną podpisać cyfrowo i oznakować czasem, ale w tym przypadku staromodny sposób będzie równie dobry.

Solidne podstawy

Teraz już bez dalszej zwłoki możemy odłączyć serwer od źródła zasilania i zajrzeć w czeluści obudowy. Szukamy rzecz jasna twardego dysku. Powiedzmy, że znaleźliśmy jeden, który dodatkowo pracuje w starej, dobrze znanej technologii ATA. Kolejnym krokiem jest wykonanie kopii tego dysku do celów dalszej analizy. Tutaj na chwilę przerwiemy i wyjaśnimy kilka spraw, zanim będziemy mogli wykonać ten krok.

Mając do czynienia z dyskami, musimy poznać podstawowe zasady, jakimi rządzą się "twardziele", z którymi będziemy pracować. W naszym przypadku - jak wspomnieliśmy - jest to dysk z interfejsem ATA (AT Attachment). Sam dysk zbudowany jest przeważnie z kilku talerzy, głowic oraz elektroniki, która tym wszystkim steruje. Dysk podczas niskopoziomowego formatowania dzielony jest na obszary. Są to ścieżki, które z kolei podzielone są na sektory będące najmniejszymi jednostkami przechowującymi dane. Każdy sektor otrzymuje własny adres. Adres taki nadawany jest za każdym razem, kiedy korzysta z niego system plików, plik lub partycja. Dla celów śledczych powinniśmy mieć świadomość istnienia dwóch metod adresacji sektorów.

Pierwsza (której nie stosuje się w nowych dyskach) to CHS (Cylinder, Head, Sector). Trzeba o niej odrobinę wiedzieć, ponieważ w dalszym ciągu można spotkać napędy, których sektory właśnie tą metodą są zaadresowane. Aby móc sprawnie poruszać się po dysku, musieliśmy mieć komplet namiarów, tj. talerz dysku, jego stronę i głowicę, ścieżkę oraz adres sektora. CHS wyszedł z użycia ze względu na swoje ograniczenia - obliczenia związane z namierzaniem lokalizacji sektorów zajmowały dużo czasu, w związku z czym był dość wolny. No i potrafił "obsłużyć" jedynie dyski o pojemności maksymalnie 504 MB, a potem dzięki rozszerzeniom BIOS-u do 8,1 GB. Śledczy musi to wiedzieć, ponieważ współczesne BIOS-y mogą nie być w stanie poprawnie rozpoznać tak zaadresowanego dysku. Może więc zajść potrzeba sięgnięcia do sprzętu starszej generacji, który będzie wyposażony w odpowiedni rodzaj BIOS-u.

Z powodu powyższych ograniczeń wprowadzono LBA (Logical Block Addressing). Tutaj adres sektora nie jest związany z jego fizyczną lokalizacją i nie ma potrzeby podawania skomplikowanych namiarów. Dysk jednak jest tylko elementem układanki. Aby można było odczytywać i zapisywać dane, konieczny jest kontroler, który znajduje się bądź na płycie głównej, bądź występuje jako osobna karta. To kontroler przesyła dyskowi komendy i zapisuje w jego rejestrach. W technologii ATA kontroler dysponuje pewną liczbą kanałów transmisyjnych, którymi wysyłane są te komendy. W każdym kanale z kolei mogą pracować dwa dyski - tzw. master oraz slave. Na razie mówimy o danych niskopoziomowych.

Czas teraz umożliwić dostęp do dysku oprogramowania np. systemowi operacyjnemu. I tutaj znowu mamy dwie możliwości. Oprogramowanie może "rozmawiać" z dyskiem, bezpośrednio przekazując polecenia kontrolerowi, bądź skorzystać z pomocy BIOS-u. Częstsze jest to drugie podejście, ponieważ zdejmuje z barków oprogramowania ciężar posiadania szczegółowych informacji o sprzęcie. Podczas startu systemu to właśnie BIOS pośredniczy pomiędzy aplikacjami a dyskiem twardym, rozpoznaje napędy, przeszukuje ich pierwszy sektor w poszukiwaniu "kodów startowych", udostępnia później odpowiednie usługi systemowi.


TOP 200