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

Zabawa w chowanego

Obracając się dalej w kręgu informacji niskopoziomowych, wspomnijmy jeszcze krótko o kilku sprawach związanych z bezpieczeństwem.

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

Zaimportowany obraz dysku - Sleuthkit/Autopsy.

Po pierwsze dostęp do dysków może być blokowany za pomocą hasła, które zapisywane jest w pamięci napędu. Jeżeli tak jest, sprawa nieco się komplikuje. Istnieją co prawda narzędzia do zdejmowania haseł (np. atapwd autorstwa Alexa Mina), ale ich skuteczność bywa różna. Są także firmy specjalizujące się w usuwaniu takich zabezpieczeń, ale to niestety kosztuje kilkaset złotych.

Po drugie dyski mogą zawierać obszar HPA (Host Protected Area). To takie miejsce na dysku, które nie jest widoczne z poziomu systemu operacyjnego. HPA może być wykorzystany jako magazyn danych niedostępny dla osoby postronnej. Jego wykrycie jest możliwe dzięki dwóm komendom ATA: IDENTIFY_DEVICE, która pokazuje obszar dysku dostępny dla użytkownika oraz READ_NATIVE_MAX_ADDRESS, która wskazuje całkowity rozmiar dysku. Jeżeli HPA istnieje, to wartości obydwu poleceń będą różne (IDENTIFY_DEVICE będzie mniejsza od READ_NATIVE_MAX_ADDRESS).

I wreszcie po trzecie, istnieje jeszcze DCO (Device Configuration Options). DCO pozwala na konfigurację i modyfikowanie funkcji oferowanych przez dysk twardy. W rękach potencjalnego sprawcy może także posłużyć do ukrycia danych. Wykrycie DCO jest możliwe porównując wyniki dwóch komend ATA: DEVICE_ CONFIGURATION_IDENTIFY oraz READ_NATIVE_MAX_ADDRESS. Jeśli więc badany napęd będzie chroniony hasłem i będzie zawierał obszary HPA i DCO, to mamy niezły "pasztet" i sporo pracy.

Przystępując do wykonywania kopii twardego dysku, musimy więc zdawać sobie sprawę z możliwości istnienia takich obszarów. Jak je wykryć w praktyce? Mało kto przecież wie jak przekazywać komendy ATA. Na szczęście są przeznaczone do tego zadania narzędzia. Jeżeli nie brakuje nam pieniędzy, możemy do tego celu wykorzystać sprzętowy write blocker (urządzenie do profesjonalnego kopiowania dysków). Urządzenia takie jak choćby ImageMasster serii 4000 potrafią rozpoznać obecność zarówno HPA, jak i DCO oraz skopiować te obszary. Jest to jednak dość droga zabawa. Jeżeli nie jesteśmy majętni, będziemy musieli skorzystać z pomocy oprogramowania. Podłączamy więc badany dysk do naszego komputera, uruchomionego z dystrybucji Live Linuxa, np. BackTrack, który zawiera spory wybór narzędzi detektywistycznych. Dysk podłączyliśmy bezpośrednio taśmą. Nie skorzystaliśmy z adapterów USB, ponieważ wtedy nie skorzystamy ze standardowych komend ATA. Sprawdzamy zwykłym fdiskiem listę dostępnych dysków:

# fdisk -l

Powiedzmy, że nowy dysk został rozpoznany jako /dev/hdc. Przyglądamy się więc komunikatom jądra za pomocą narzędzia dmesg. Wśród nich znajdziemy informacje o dyskach i często o wykryciu HPA:

# dmesg | more

Jeżeli nie znaleźliśmy tutaj niczego ciekawego, możemy dla pewności skorzystać z dostępnego w BackTrack pakietu Sleuth Kit, a konkretnie narzędzia diskstat:

# disk_stat /dev/hdc

Jeżeli HPA zostanie wykryte, otrzymamy komunikat podobny do tego poniżej:

Maximum Disk Sector: 235553235

Maximum User Sector: 12500

** HPA Detected (Sectors 12501 - 235553235) **

Teraz ten obszar trzeba jakoś skopiować. To, że nie jest on dostępny dla użytkownika, nie jest wielką przeszkodą. Dzięki innemu narzędziu disk_sreset (również wchodzi w skład pakietu Sleuth Kit) możemy tymczasowo usunąć HPA i uzyskać dostęp do całości obszaru dysku. Jest to działanie odrobinę ryzykowne - modyfikujemy dowód rzeczowy i naginamy zasadę niewykonywania operacji na oryginale. Naginamy tylko, nie łamiemy, ponieważ zmiany wprowadzane przez program disk_sreset są tymczasowe i HPA pojawi się znowu po restarcie systemu. Na wszelki wypadek skopiujmy najpierw wszystko to, co jest dostępne. Zrobimy to rzecz jasna za pomocą genialnego dd:

# dd if=/dev/hdc of=/mnt/kopie/hdc_z_hpa.img

Teraz możemy spokojnie "zdjąć" HPA:

# disk_sreset /dev/hdc

I skopiować obszar, który był przez ten mechanizm chroniony. Nie kopiujemy jednak ponownie wszystkiego, a tylko to, co zawierał HPA. W ten sposób będzie łatwiej zorientować się, co to było. Znowu skorzystamy z pomocy dd:

# dd if=/dev/hdc of=/mnt/kopie/hdc_tylko_hpa.img skip=[liczba rekordów, które pomijamy - wartość zwrócona po zakończeniu kopiowania obrazu hdc_z_hpa.img]

Niestety z DCO pakiet Sleuth Kit sobie nie poradzi. Tutaj bardziej przydany będzie porządny sprzętowy write blocker. Możemy ewentualnie skorzystać z narzędzia TAFT (The ATA Forensics Tool -http://www.vidstrom.net/stools/taft/). Jest to narzędzie DOS-owe, które musi być uruchamiane z bootowalnej dyskietki.

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

Szczegóły pobranego obrazu - Autopsy.

W ten sposób udało nam się wykryć wszelkie ukryte obszary na dysku i wykonać ich kopię. Nie było to łatwe, ale wykonalne. Teraz możemy wykonać sumę kontrolną obrazów i badanego dysku. Jeżeli prowadzimy oficjalne dochodzenie, napęd możemy odłączyć, opisać, skatalogować i schować w antystatycznym pudełeczku do sejfu. Gorzej jeżeli, jak to było w naszej historii z początku artykułu, działania prowadzimy incognito - wówczas sumy kontrolne dysku nie będą miały znaczenia - po ponownym włączeniu serwera wszystko i tak się zmieni.

Jak u doktora

Skupmy się teraz na poddaniu analizie świeżo pobranych obrazów dysków. Możemy ją prowadzić na dwóch poziomach - fizycznym i logicznym. Analiza fizyczna polega na przeglądaniu "surowych" danych sektor po sektorze bez związku z tym, czy innym systemem plików. Z kolei analiza logiczna sprowadza się do podglądania informacji w powiązaniu z tym, w jaki sposób widziane są przez dany system plików. Każde z tych podejść ma wady i zalety, dlatego powinny być stosowane łącznie.

Jak wiemy z doświadczenia, dysk z zasady składa się z woluminów i partycji. Obydwa te terminy są jednak często mylone. Warto wiedzieć jaka jest między nimi różnica, ponieważ sięgając do różnych opracowań kryminalistyki informatycznej, z pewnością nieraz się z nimi zetkniemy. Pojęciem woluminu określa się jednorodną, dostępną przestrzeń dyskową z pojedynczym systemem plików. Partycja z kolei to logicznie wydzielony obszar dysku składający się z pewnej liczby następujących po sobie sektorów. Zasadnicza różnica polega na tym, że w ramach woluminu może występować wiele partycji, które z kolei nie mogą istnieć bez woluminów. Wolumin nie musi wcale zawierać żadnych partycji, a mimo to być dostępny dla użytkownika. Na przykład dyskietka zawiera wolumin, ale nie znajdziemy na niej partycji.


TOP 200