70
PRAKTYKA
HAKIN9 4/2009
Z ARTYKUŁU
DOWIESZ SIĘ
o technikach anti-forensics,
o narzędziach anti-forensics.
CO POWINIENEŚ
WIEDZIEĆ
znać podstawy pracy w
systemach Windows i Linux,
znać budowę systemów plików.
W
warunkach naszego kraju niezbyt
dynamicznie rozwija się informatyka
śledcza jednak metody pozwalające na
utrudnianie prowadzenia takiego śledztwa są znane
także naszym rodakom.Przeciwdziałanie wykrywaniu
nielegalnych działań wykonywanych przy użyciu
systemów komputerowych jest tak stare, jak same
systemy komputerowe i – co bardziej niepokojące
– związane z nim techniki rozwijają się cały czas.
W bardzo wielu przypadkach podczas śledztw
elektronicznych okazuje się, że część dowodów jest
niezdatna do użytku lub wręcz nie daje się podczas
analizowania materiału dowodowego wyizolować
konkretnych elementów mogących definitywnie
stanowić niepodważalny dowód konkretnego
działania naruszającego prawo. Informatyka śledcza,
a więc także specjaliści zajmujący się analizą
materiału dowodowego, zmuszeni są niejako do
pogłębiania swojej wiedzy nie tylko na temat technik
odnajdywania dowodów, ale także sposobów, na
jakie dowody są ukrywane czy niszczone. Pragnąc
wykonać rzetelnie działania analityczne podczas
prowadzenia śledztwa informatycznego, warto
wiedzieć, jakimi metodami posługują się ludzie z
przeciwnej strony barykady.
Techniki działań anti-forensics
Dawniej skuteczną metodą na usunięcie śladów
po dokonaniu na przykład włamania na serwer
było usunięcie z logów systemowych informacji
mogących ten fakt ujawnić, dziś tego typu środek
jest mało skuteczny.
GRZEGORZ BŁOŃSKI
Można wyodrębnić dwa podstawowe rodzaje
działań mających na celu utrudnienie prowadzenia
śledztwa elektronicznego – zakłócanie danych oraz
zakłócanie narzędzi. Ponieważ dane elektroniczne są
podatne na modyfikację, jednocześnie są narażone
na wiele działań związanych z manipulacjami.
Jednym z działań wykorzystywanych w zakłócaniu
danych jest szyfrowanie. Zaszyfrowany plik, katalog,
partycja czy nawet cały dysk są zaporą nie do
przebycia dla śledczego analizującego materiał
dowodowy. Innymi działaniami używanymi do
zakłócania jest ukrywanie danych w przeróżnych
obszarach czy to pamięci masowych, czy nawet
pamięci operacyjnej. Przykładem może być
ukrywanie danych w obszarach systemu plików NTFS
zwanych ADS (ang. Alternate Data Stream). Kolejnym
przykładem techniki ukrywania danych może być
zapisywanie informacji w uszkodzonych sektorach
czy niezapisanym obszarze sektorów na dysku (tzw.
slack space) . Innymi interesującymi miejscami, w
których chowane są dane w celu ukrycia ich przed
śledztwem elektronicznym, są ukryte partycje, takie
jak na przykład HPA (ang. Host Protected Area)
– obszar dysku używany przez producentów do
przechowywania danych serwisowych.
W celu ukrywania danych powstały nawet
specjalne systemy plików, pozwalające na łatwiejsze
wykonywanie operacji ukrywania:
• Data Mule FS – potrafi ukrywać dane w
obszarach zarezerwowanych dla przechowywania
informacji o i-węzłach (ang. i-node),
Stopień trudności
Zakłócanie
śledztwa
elektronicznego
Anti-forensics – działania mające na celu utrudnienie zdobycia
dowodów elektronicznych, wpływanie na ilość oraz jakość
tych dowodów, skompromitowanie osoby prowadzącej analizę
dowodów cyfrowych. Tak w dużym uogólnieniu może brzmieć
definicja tego tajemniczego zwrotu.
71
ANTI-FORENSICS
HAKIN9
4/2009
• Waffen FS – dzięki temu systemowi plików
możemy wykorzystać plik journalingu
systemu plików EXT3 do ukrycia danych,
• Rune FS – bardzo ciekawy system plików,
który potrafi zapisywać dane w obszarach
dysku udających uszkodzone sektory.
Osobom interesującym się steganografią
zapewne znany jest także system plików
StegFS, dzięki któremu także możemy
ukrywać dane. Nie można pominąć
takich technik, jak wykorzystywanie
niezaalokowanego miejsca na dysku
twardym czy steganografia, polegająca na
ukrywaniu informacji w plikach graficznych.
Zakłócanie narzędzi to druga z
wymienionych technik utrudniania
przeprowadzania śledztwa elektronicznego.
W działaniach zakłócających dane celem
było spowodowanie, aby informacja stała
się nieczytelna, ukryta czy wręcz usunięta z
pamięci. W przypadku zakłócania narzędzi
dążymy do wprowadzenia w błąd osoby
poszukującej śladów elektronicznych.
Jedną z wykorzystywanych metod
jest zmiana znacznika czasowego pliku
(ang. timestamp) w systemach Windows
wykorzystujących NTFS jako system plików.
Narzędzia używane przez śledczych
pozwalają na odczytanie takich informacji
o pliku, jak czas jego utworzenia, ostatniej
modyfikacji oraz ostatniego otwarcia pliku.
Przykładem narzędzia pozwalającego na
zmianę tych informacji jest timestomp.exe.
Plik ze zmienionymi informacjami o czasie
jego utworzenia może w prosty sposób
spowodować pominięcie go podczas
analizowania materiału dowodowego,
ponieważ zmodyfikowana data utworzenia
pliku nie pasuje do okresu, w jakim mogło
zostać popełnione przestępstwo. Taka
sytuacja może doprowadzić do znacznego
utrudnienia pracy śledczego.
Kolejna technika pozwalająca
zakłócać dane zbierane w trakcie śledztwa
informatycznego to wykorzystanie funkcji
systemu plików NTFS nazwanej ADS
– Alternate Data Streams. Te alternatywne
strumienie danych pozwalają na ukrycie
dowolnych danych w pliku czy katalogu.
Mimo tego, iż większość narzędzi forensics
jest w stanie bez problemu wykrywać
strumienie ADS, jest to metoda pozwalająca
na wydłużenie czasu potrzebnego na
analizę danych, co w znacznym stopniu
utrudnia śledztwo.
Warto wspomnieć także o metodzie
pozwalającej na zmianę zawartości pliku przy
jednoczesnym zachowaniu wygenerowanego
dla tego pliku hasha MD5, manipulacji
rozszerzeniami plików, a także tak zwanym
magic number, który także może być
zmieniany.
Programy
Osoby wykorzystujące narzędzia anti-
forensics zwykle mają coś do ukrycia, lecz
niekoniecznie muszą być cyberprzestępcami.
W celu ukrywania danych wykorzystywane
są różnego rodzaju programy do szyfrowania
całych dysków, partycji, katalogów i plików.
Ukrywanie danych to jednak tylko jeden
aspekt działań anti-forensics. Innym dość
ważnym zagadnieniem jest kasowanie
danych przed ich przechwyceniem. Na tym
polu istnieje dość dużo mniej lub bardziej
znanych narzędzi. Przykładem może być
Evidence Eliminator – komercyjne narzędzie
pozwalające między innymi na niszczenie
pliku wymiany systemu Windows, plików
tymczasowych, logów systemowych, ADS,
historii przeglądarek i całej masy innych
informacji, których brak znacznie utrudni
poszukiwanie dowodów. Programów o
podobnym działaniu jest więcej. Wśród
komercyjnych narzędzi należy wymienić
takie jak: Steganos Security Suite, Tracks
Eraser Pro, Diskzapper, BCWipe, przy
których pomocy usuniemy zawartość
poszczególnych plików i katalogów,
całych partycji lub dysków metodami
niepozwalającymi na późniejsze odtworzenie
usuniętych danych. Wśród narzędzi na licencji
GPL podobnym działaniem charakteryzują się
między innymi Srm, Wipe, Fwipe, Overwrite czy
Grind. W skład pakietu Metasploit wchodzą
trzy narzędzia będące bardzo często
wykorzystywane do działań antiforensic:
• timestamp wspomniany wcześniej
• slacker – pozwala na zagospodarowanie
przestrzeni slack space do
przechowywania danych
• transmogrify – pozwala na zmianę
sygnatury pliku.
Ciekawostką jest narzędzie DBAN (Darik's
Boot And Nuke), dyskietka zawierająca
oprogramowanie wykrywające dyski w
komputerze i kasująca całą ich zawartość.
Wymienione narzędzia nie wyczerpują
listy wszystkich które są dostępne w sieci. Z
dnia na dzień powstaje wiele nowych narzędzi
które czasami przez przypadek stają się
narzędziami antiforensics.
Jak to się robi?
Aby choć trochę przybliżyć Czytelnikom
jedną z metod anti-forensics, spróbuję
opisać ukrywanie danych w przestrzeniach
slack space. Na początek może kilka
słów o tej przestrzeni – jak i dlaczego ona
powstaje? Jak ogólnie wiadomo, klaster/blok
(ang. cluster/block) to najmniejsza ilość
miejsca przeznaczona na przechowanie
pojedynczego pliku. W systemach Windows
rozmiar klastra jest zależny od wielkości
dysku twardego, bez względu na to, czy
Rysunek 1.
Zrzut ekranu – wynik wykonania polecenia bmap
Rysunek 2.
Wprowadzone wartości numerów telefonów do ukrycia
Rysunek 3.
Odczyt zawartości slack space
72
PRAKTYKA
HAKIN9 4/2009
ANTI-FORENSICS
73
HAKIN9
4/2009
systemem plików jest któraś z odmian FAT,
czy NTFS. W systemach Linux standardowa
wielkość klastra to cztery kilobajty (można ją
oczywiście zmienić).
Jak powstaje slackspace pozwoli
zrozumieć Rysunek 5, na którym widać
proces powstawania przestrzeni slackspace.
Plik A zajmuje dwa sektory, załóżmy, że nasz
system plików posiada klastry/sektory o
wielkości 4 kilobajtów. Z rysunku wynika, że
nasz plik posiada rozmiar 8 kilobajtów gdyż
wypełnia dwa sektory. Po skasowaniu pliku
A zostaje zwolnione miejsce. Plik B , który
zostaje zapisany w miejsce skasowanego jest
mniejszy , więc zajmuje cały sektor 1 i część
sektora 2. Powstała wolna część sektora 2 to
właśnie slack space. Obszary takie powodują
postępujący proces fragmentacji systemu
plików. Jakie są skutki dużej fragmentacji
systemu plików wiedzą wszyscy, którzy
korzystali z narzędzi do defragmentacji.
Duża ilość tak powstałego miejsca ,
niewykorzystanego do przechowywania
plików daje dużo możliwości działań
antiforensic mających na celu ukrycie jakiejś
ilości danych. Skoro już wiemy skąd się bierze
niezaalokowana przestrzeń slackspace ,
znamy przyczyny jej powstawania możemy
zająć się próbą wykorzystania jej do
zapisania naszych tajnych danych.
Przed przystąpieniem do ukrywania
danych w przestrzeniach slack space
musimy wyposażyć nasz system w
program pozwalający na dokonywanie
takiego rodzaju działań. Dostępne są dwa
narzędzia, przedstawię tutaj przykład, w który
wykorzystuję program bmap, pozwalający
na manipulowanie zawartością slack
space w pojedynczym pliku. Załóżmy, że
korzystamy z systemu Linux wyposażonego
dysk z partycjami systemu plików ext3, w
którym wielkość klastra to właśnie 4kB. W
katalogu /test znajduje się plik o nazwie
crontab. Wyświetlamy zawartość pliku, aby
sprawdzić, co w nim jest i czy coś się zmieni
na późniejszym etapie naszych działań.
Używamy do tego celu polecenia
cat
:
#cat /test/crontab
Zawartość pliku widoczna jest na zrzucie
ekranu. Sprawdzamy rozmiar naszego
pliku i obecność przestrzeni slack space
poleceniem:
#bmap -mode slack /test/crontab
Na Rysunku 1 widać, że program zwrócił
nam informacje o rozmiarze pliku, rozmiarze
slack space oraz rozmiarze bloku/klastra, a
także o numerze klastra, w którym zapisany
jest nasz plik. Do dyspozycji mamy 3761
bajtów, w których możemy zapisać cokolwiek
– i na pewno nie będzie to widoczne dla
przeciętnego użytkownika komputera (z
pewnością utrudni także odnalezienie tych
danych osobie ich szukającej). Załóżmy,
że mamy kilka numerów telefonów, których
nie chcemy z pewnych względów nikomu
ujawniać. Wykonujemy polecenie:
#bmap -mode putslack /test/crontab
Program wyświetla to, co wcześniej i czeka
na wprowadzenie dodatkowych danych.
Wpisujemy więc kilka numerów oraz imion
(Rysunek 2). Zatwierdzamy wprowadzone
dane wciśnięciem klawisza [ENTER]. Dla
pewności powtarzamy polecenie:
#cat /test/crontab
i potwierdzamy, iż zawartość pliku nie uległa
zmianie (czego właśnie oczekiwaliśmy). W tym
momencie, wykonując polecenie:
#bmap -mode slack /test/crontab
sprawdzamy zawartość naszej przestrzeni
slack space w klastrze zajmowanym przez
nasz plik. Wynik widoczny na ekranie (Rysunek
3) ukazuje naszym oczom wpisane przed
chwilą numery oraz imiona, które mają
pozostać ukryte. Rozmiar pliku oraz rozmiar
obszaru slack space także nie uległy zmianie.
W takiej sytuacji jedynie osoby znające
tego typu narzędzia oraz umiejące się
nimi posługiwać są w stanie odczytać tak
��������
��������
������
������
�����������������������������������������
��������
��������
������
������
������������������������������������������
�����������������������������
��������
��������
������
������
��������
����������
������
����������������������������������������������������
Rysunek 5.
Proces powstawania Slackspace
Rysunek 4.
Uruchomiony DBAN
��������
��������
������
������
�����������������������������������������
��������
��������
������
������
������������������������������������������
�����������������������������
��������
��������
������
������
��������
����������
������
����������������������������������������������������
��������
��������
������
������
�����������������������������������������
��������
��������
������
������
������������������������������������������
�����������������������������
��������
��������
������
������
��������
����������
������
����������������������������������������������������
72
PRAKTYKA
HAKIN9 4/2009
ANTI-FORENSICS
73
HAKIN9
4/2009
ukryte dane. Osiągnęliśmy więc zamierzony
przez nas cel. Należy jednak pamiętać, że
tak – nazwijmy to – ukryte dane są mimo
wszystko dostępne przy użyciu odpowiednich
technik odczytu.
Chciałbym w tym miejscu dodać, że
opisana metoda jest okupiona pewnego
rodzaju ograniczeniem. Ilość danych
możliwych do ukrycia w obszarze slack space
jest różnicą wielkości klastra/bloku (czyli 4096
bajtów) i rozmiaru zapisanego w danym
klastrze pliku (lub jego ostatniego kawałka).
Upraszczając, jeśli plik crontab miałby 2048
bajtów, to ilość miejsca do wykorzystania
ograniczyłaby się do 2048 bajtów.
A co w przypadku, gdy chcielibyśmy
ukryć większą ilość danych, na przykład
100 megabajtów? W takiej sytuacji możemy
skorzystać z programu slacker.
Narzędzie to umożliwia wykorzystanie
przestrzeni slack space w całej strukturze
katalogu – a więc przy założeniu, że w
katalogu zapisanych jest bardzo wiele plików
o rozmiarze mniejszym niż rozmiar klastra,
możemy mieć do dyspozycji bardzo duże
obszary slack space. Niestety, wykorzystanie
obszarów slack space jest możliwe tylko przy
założeniu, iż zawartość plików tworzących te
przestrzenie nie będzie się zmieniała. Każda
modyfikacja zawartości pliku (na przykład
jego powiększanie się przez dopisywanie
danych) powoduje zwiększenie się obszaru
zajmowanego w klastrze, co jednocześnie
redukuje rozmiar slack space i tym samym
może spowodować uszkodzenie ukrytych
tam danych (po prostu je nadpisując).
Mimo tych wad, ukrywanie danych w slack
space jest skuteczne i potrafi spowodować
wydłużenie czasu analizy danych, a więc jest
w stanie zakłócić prowadzenie śledztwa.
Inna z metod antiforensic , dość często
wykorzystywana przez wielu domowych
użytkowników komputerów to usuwanie
danych w taki sposób aby nie dało się ich
odzyskać. Programów pozwalających na
wykonanie takiej operacji jest dość sporo ,
do najbardziej znanych należą wymienione
wcześniej , ale można do nich dodać
chociażby sławne narzędzia M.H.D.D.
czy Victoria które w zasadzie są bardziej
narzędziami do diagnostyki dysków
twardych ale posiadają także wbudowane
polecenia pozwalające na kasowanie
zawartości dysku.
Chciałbym jednak przedstawić tutaj
także wcześniej wspomniany program
DBAN – Darik’s Boot And Nuke. Program
działający z dyskietki lub płyty CD.
Ze strony autora można pobrać zarówno
obraz płyty CD jak i instalatora, który tworzy
dyskietkę bootowalną. Po uruchomieniu
komputera z płyty CD na ekranie zobaczymy
ekran podobny do tego na Rysunku 4.
Do wyboru mamy kilka opcji
• F2 pomoc
• F3 krotka lista poleceń
• F4 rozwiązywanie problemów
• ENTER start aplikacji w trybie
interaktywnym
• autonuke – start aplikacje w trybie
automatycznym.
Po wybraniu trybu interaktywnego widzimy
ekran pozwalający na wybranie pewnych
ustawień pracy programu kasującego dane.
Możemy wybrać jeden z dwóch generatorów
liczb pseudolosowych Mersenne Twister
oraz ISAAC. Kolejny parametr na który mamy
wpływ jest metoda kasowania danych.
Tutaj do wyboru jest kilka opcji z różnymi
poziomami bezpieczeństwa iróżną ilością
przebiegów kasowania.
• quick erase – ta metoda zapisuje na
dysk zera , wykonuje to podczas jednego
przebiegu , metoda nieprzydatna do
działań antiforensics , dane są możliwe
do odzyskania.
• RCMP TSSIT OPS-II – Royal Canadian
Mounted Police Technical Security
Standard for Information Technology ,
standard wykorzystywany w kanadyjskiej
policji , dość skuteczny w kasowaniu
danych
• DoD Short – skrócona wersja DoD 5220 ,
amerykańskiego standardu o skuteczności
kasowania zbliżonej do RCMP
• DoD 5220.22-M – pełna wersja
amerykańskiego standardu,
• Gutman Wipe – metoda opracowana
przez Gutmana jest uznawana za bardzo
bezpieczną metodę kasowania danych ,
okupiona jest 35 przebiegami procesu ,
co jest czasochłonne.
• PRNG Stream – metoda wykorzystująca
generator liczb pseudolosowych do
zapisywania strumieniami , uznawana za
bardzo bezpieczną przy wykorzystaniu co
najmniej ośmiu przebiegów .
• Verify – weryfikacja pracy programu to
kolejny parametr na który mamy wpływ.
Możemy ją całkowicie wyłączyć , włączyć
weryfikację ostatniego przebiegu lub
weryfikować każdy z przebiegów.
Ostatnim parametrem ważnym podczas
kasowania danych jest wybór ilości
przebiegów pracy programu. Ich ilość
jest zależna od wcześniej wybranych
innych parametrów. Po wybraniu dysku
na którym mamy zamiar przeprowadzić
operację kasowania wciskamy klawisz
F10 aby rozpocząć proces. Po czasie
ściśle uzależnionym od rozmiaru
dysku oraz ustawionych parametrów
programu naszym oczom ukaże się ekran
zakończenia pracy programu.
Podsumowanie
Rozwiązania technologiczne wykorzystywane
w informatyce śledczej są ciągle
udoskonalane, a narzędzia analizy stają się
coraz wygodniejsze w użyciu. Nie zwalnia
to jednak osoby prowadzącej śledztwo
elektroniczne z dokładnego analizowania
materiału dowodowego, gdyż – jak widać
– metody ukrywania danych (czy też
niszczenia ich, tak aby nie mogły stać się
dowodami na niezgodne z prawem działania)
także stają się coraz bardziej efektywne.
Wzrost liczby przestępstw popełnionych z
wykorzystaniem systemów informatycznych
jest już zauważalny dość mocno nawet
w realiach naszego kraju. Musimy mieć
nadzieję, że informatyka śledcza i specjaliści
computer forensics będą w stanie sprostać
zadaniom odnajdywania śladów – nawet tych
dobrze ukrytych z wykorzystaniem technik
anti-forensics.
W Sieci
• http://www.evidence-eliminator.com/
product.d2w,
• http://www.dban.org,
• http://users.ox.ac.uk/~kebl2949/grind,
• http://www.kyuzz.org/antirez/
overwrite.html,
• http://srm.sourceforge.net,
• http://www.forensicfocus.com.
Grzegorz Błoński
Autor, Grzegorz Błoński, z wykształcenia jest informatykiem,
certyfikowanym specjalistą IBM. Pracuje w dużej firmie
o zasięgu światowym. Zajmuje się administracją
oraz bezpieczeństwem sieciowym. Należy do
międzynarodowych organizacji ISOC oraz ISACA,
zajmujących się szeroko pojętym bezpieczeństwem IT.
Jest członkiem Digital Forensics Association.
Kontakt z autorem: mancymonek@mancymonek.pl