Zwalczanie Laboratorium 4. Zbieranie podstawowych śladów działalności.. Ślady pozostawione na komputerze można podzielić na dwie kategorie: ulotne i nieulotne. Nieulotne to te, które pozostają na komputerze po jego wyłączeniu, czyli zapisane na nośnikach. Ulotne to te, które zmieniają się w trakcie pracy lub znikają po wyłączeniu komputera, a więc zawartość pamięci operacyjnej, pliku wymiany, informacje systemowe (np. o uruchomionych procesach i aktywnych połączeniach oraz niektóre informacje o systemie plików. Ślady ulotne powinny zostać zabezpieczone tak szybko jaki to jest możliwe i w taki sposób by sposób zabezpieczania nie powodował zmiany ich zawartości. Ślady nieulotne powinny być zabezpieczane w sposób off-line owy, bez ingerencji w ich zawartość czy też w związane z nimi dane systemowe. (np. w dane o czasie dostępu do zbiorów). W celu zabezpieczenia używa się narzędzi, które pozwalają na utworzenie kopii danych ulotnych lub nieulotnych (np. partycji dyskowych czy poszczególnych zbiorów) a analizę zabezpieczonego materiału przeprowadza się na kopiach, nigdy na oryginale. Część B. Zabezpieczenie śladów nieulotnych. Kopie nośników wykonuje się używając butowalnych narzędzi. Do sporządzania kopii dysków twardych można wykorzystać płytę Live CD z systemem Linux. Tego typu system operacyjny (zazwyczaj z dołączonym oprogramowaniem dodatkowym) zainstalowany na nośniku z własnym programem rozruchowym, umożliwiający uruchomienie go w pamięci RAM, bez potrzeby instalowania na dysku twardym komputera. Do kopiowania wykorzystuje się polecenie systemowe dd. dd if=źródło of=cel patrametry zamiast celu może zostać zdefiniowana aplikacja przejmująca dane pobierane ze źródla, np. stosowany w ćwiczeniu 4 program nc, wtedy komenda będzie miała postać dd if=źródło nc adres_ip nr_portu
Zadanie do wykonania. Należy dane, jakie będą podlegać analizie, zrzucić z dysku twardego komputera do zbioru na pendrive oraz poprzez siec do zbioru na komputerze współpracującym. 1. o Na DVD znajduje się dystrybucja systemu operacyjnego Linux typu Live CD o nazwie BackTrack w wersji 5. o Badany system należy uruchomić z tego dysku. Może to (ale nie w uczelnianym laboratorium) wymagać zmian ustawienia biosu komputera, tzn. zmiany sekwencji urządzeń, z których maszyna próbuje wykonać start systemu o Sprawdzić, jakie urządzenia i partycje widziane są przez system root@bt:~# fdisk l o Odpowiedź może mieć np. następujaca postać Disk /dev/sda: 10,7 GB, 10737418240 bytes 255 heads, 63 sectors/track, 1305 cylinders Units = cylinder of 16065 * 512 = 8225200 bytes Sector size (logi cal/physical): 512 bytes / 512 bytes Disk identifier 0x00000000 Device Boot Start End Blocks ID System Przykładowy system posiada 1 dysk fizyczny o nazwie sda. 2. Należy dokonać zrzutu wybranej partycji z listy uzyskanej w wyniku polecenia fdisk Obraz zostanie zrzucony na pendrive (własny, nie dostarczam) a następnie poprzez sieć z użyciem programu netcat na komputer współpracujący. Zrzucając obraz dysku należy pamiętać, by na nośniku docelowym znajdowała się wystarczająca ilość wolnego miejsca. Wielkość partycji wyspecyfikowana jest w kolumnie Blocks i liczona jest w kilobajtach (1 kilobajt = 1024 bajty). o Należy włożyć pendrive w gniazdo i wykonać komendę fdisk jak poprzednio. Wykonanie tej komendy da nam informację, pod jaką nazwą widziana jest partycja na pendrive. Prawdopodobnie będzie to /dev/sdb1 lub podobnie. o Aby system mógł skorzystać z systemu plików jaki istnieje na pendrive, musi zostać utworzone logiczne połączenie urządzenia pamięci zewnętrznej z systemem plików. Nazywa się to zamontowaniem i robi się z użyciem polecenia mount urządzenie punkt_montowania o Kreujemy kartotekę, do której będzie zamontowany system zbiorów na pendrive. Niech to będzie kartoteka /sdb1. W systemie istnieje już kartoteka
/mnt, kartotekę /sdb1 wykreujemy jako podkartotekę /mnt. root@bt:~#mkdir /mnt/sdb1 o montujemy pendrive root@bt:~# mount /dev/sdb1 /mnt/sdb1 o sprawdzamy, czy zamontowanie się udało root@bt:~# mount powinniśmy otrzymać w odpowiedzi listę zamontowanych urządzeń a w niej wiersz /dev/sdb1 on /mnt/sdb1 type vfat (rw) co oznacza, że system zbiorów w partycji sdb1 został zamontowany jako /mnt/sdb1, pamięć jest zorganizowana w systemie FAT, dozwolony jest odczyt jak i zapis (rw) o możemy teraz wylistować zawartość pendrive root@bt:~# ls /mnt/sdb1 o zrzucamy na pendrive partycję, której kopię zawartości chcemy utworzyć.. Niech to będzie przykładowo partycja /dev/sda1. Kopia będzie nosiła nazwę obraz.dd root@bt:~# dd if=/dev/sda of=/mnt/sdb1/obraz.dd Według wszelkiego prawdopodobieństwa na pendrive nie będzie tyle miejsca, by zmieścić obraz całej partycji, chyba, że jest ona niewielka. Zrzucimy zatem w ramach ćwiczenia jedynie początkowe 1GB z partycji, uzupełniając komendę o parametry bs wielkość bloku i count ilość bloków. root@bt:~# dd if=/dev/sda of=/mnt/sdb1/obraz.dd bs=1m count=1024 o sprawdzamy, czy zbiór został zapisany root@bt:~# ls /mnt/sdb1 o zanim wyjmiemy pendrive należy go odmontować! root@bt:~# umount /mnt/sdb1 3. Kolejna czynność to zrzut obrazu dysku na inny komputer poprzez sieć.
o Zidentyfikować adres IP, jaki posiada komputer, na który będą transmitowane dane o Sprawdzić, czy komputer, podlegający analizie posiada adres IP komendą root@bt:~# ifconfig jeżeli nie, ustawić go komendą root@bt:~# ifconfig eth0 192.168.1.102 netmask 255.255.255.0 broadcast 192.168.1.255 root@bt:~# ifconfig eth0 up adres ip jest przykładowy i w ćwiczeniu należy wybrać inny, np. taki, jaki miał komputer pod Windowsami, uniknie się problemów z ewentualnym duplikowaniem adresów na komputerach w laboratorium o Sprawdzić, czy możliwa jest komunikacja pomiędzy komputerami. root@bt:~# ping adres_ip_sasiedniego_komputera o Na komputerze, na który będzie wykonywany zrzut należy otworzyć okienko cmd, ustawić kartotekę, w której będziemy gromadzili dane i uruchomić program NC (poniżej program nc wywoływany jest z dysku x, podobnie jak to było w poprzednim ćwiczeniu, ale można program skopiować do jakiejś kartoteki i uruchomić go z niej) x:nc -l -p 1234 -w 3 >obraz.bin > oznacza, że każde dane otrzymane na wymieniony port będą zapisywane do zbioru obraz.bin kasując jego poprzednią zawartość o na komputerze podlegającym analizie uruchamiamy transfer za pomocą programu nc. root@bt:~# dd if=/dev/sda nc xxx.xxx.xxx.xxx 1234 o transfer może potrwać. Ponieważ to ćwiczenie, możemy przetransferować mniej niż cała zawartość partycji ustawiając parametry bs i count zgodnie z życzeniem, podobnie jak było to z zapisem na pendrive. o Po zakończeniu transmisji (będzie to zasygnalizowane na komputerze podlegającym analizie) należy przerwać działanie skryptu na komputerze gromadzącym dane (klawisz CTRL+C). Dopiero wtedy zakończy pracę program nc na komputerze podlegającym analizie..
4. Zgromadzony materiał powinien być zabezpieczony suma kontrolną by mieć pewność, że został poprawnie przetransmitowany, nie został zmieniony po jego zapisaniu i że jego zawartość odpowiada zawartości źródła. o W tym celu na komputerze podlegającym analizie wydajemy komendę root@bt:~# dd if=/dev/sda md5sum gdzie źródło powinno być dokładnie to samo jak wybrane poprzednio do transmisji programem nc. o Na komputerze użytym do zapisu obrazu użyć należy znanego z poprzedniego ćwiczenia programu md5summer lub dowolnego innego. Należy wybrać kartotekę, w której znajduje się zbiór, dla którego generować będziemy sumę kontrolną Następnie należy wybrać zbiór i użyć przycisku Add.
Zostanie wygenerowana suma MD5, którą należy zapisać do zbioru. Zgodność obu obliczonych sum MD5 oznacza, że transmisja przebiegła prawidłowo i dysponujemy wierną kopią przetransferowanego obszaru wybranej partycji. 5. Komendą kończącą pracę linuxa jest poweroff root@bt:~#poweroff Zapisany na pendrive zbiór należy zachować. Będzie potrzebny w kolejnych ćwiczeniach.