Popularne posty

środa, 27 lutego 2013

CSI: backup and recovery.

Jak to mawiał mój nauczyciel z technikum, "wpierw backup, potem praca". W tym stwierdzeniu jest bardzo dużo prawdy :D a ja w ten weekend znowu dostałem możliwość przekonania się o tym.

Przez zbyt szybkie wykonanie komendy rm usunąłem sobie całą bazę haseł i kluczy zbieraną przez ostatni rok. Jestem zwolennikiem bardzo mocnych haseł, zazwyczaj stosuje wygenerowane losowe klucze. Dlatego też spisuje je w bardzo fajnym, aczkolwiek mającym jeden minus programie Keepassx. Owym minusem jest brak standardowego ustawienia backupu bazy kluczy.

Oczywiście moją winą jest to, iż nie objąłem owego pliku ostatnim backupem danych, jednakże uważam że taka mała funkcjonalność pozwoliła by niektórym użytkownikom zaoszczędzić wiele nerwów. Jednak dzięki takiemu przypadkowi odkryłem bardzo fajne programy do odzyskiwania danych.

___________________________________________________________________
Opisana procedura została przeprowadzona i sprawdzona na systemie
Ubuntu 12.04 LTS
Pamiętaj że niektóre polecenia wymagają praw roota. 

Jeżeli pracujesz z uprawnieniami roota
zastanów się 2 razy nad tym co chcesz wykonać.
___________________________________________________________________


Autopsy and TSK


Zacznijmy od tego drugiego. TSK to akronim od 'The Sleuth Kit', jest to aplikacja na licencji opensource. Dzięki niej możemy przeglądać partycje, a także utworzone kopie 1:1 dysków pod kątem np. usuniętych plików. Standardowa wersja dostępna jest w repo Ubuntu.
Znowu w całej beczce miodu znajduje się łyżka dziegciu, a mianowicie brak obsługi systemu plików ext4. Po krótkim przeczesaniu internetu, znalazłem na githubie wersje poprawioną z dodaną obsługą owego FS.


TSK z wsparciem ext4 -> https://github.com/kfairbanks/sleuthkit

Krótki opis instalacji:
  1. Wymagane zależności:
    1. Kompilator C/C++ oraz Javy
    2. Make
    3. Autotools
  2. Instalacja:
    1. W pierwszym kroku ściągamy zawartość gita na swoją maszynę, możemy posłużyć się poleceniem

      git clone git://github.com/kfairbanks/sleuthkit.git 
    2. Następnie wydajemy polecenie

      ./bootstrap

      w celu wygenerowania skryptu konfiguracji, które opisuje środowisko kompilacji programu.
    3. Kolejno wydajemy polecenie
      ./configure

      i jeżeli nie otrzymaliśmy żadnych błędów to następnie

      make oraz make install
Powinniśmy mieć zainstalowany i dostępny w systemie sleuthkit, możemy sprawdzić to przez wpisanie komendy w terminalu

fls -V

Autopsy jest to GUI dla sleuthkit, możemy je doinstalować bezproblemowo już przez komende apt-get,  program sam się zintegruje z TSK.

apt-get install autopsy <- dzięki tej komendzie zdobędziemy wygodne GUI dla TSK

Graficzny interfejs odpalamy w terminalu poprzez wywołanie autopsy. Dla skorzystania z interfejsu odpalamy ulubioną przeglądarkę i wklepujemy http://localhost:9999/autopsy
Zostaniemy przeprowadzeni przez dodawanie nowej sprawy odzyskiwania danych.

Od tyłu...


Tak naprawdę pierwszą czynnością przy utracie jakichkolwiek danych powinno być wyłączenie komputera. Zminimalizowanie zapisu kolejnych danych na dysku zwiększa prawdopodobieństwo odzyskania skasowanych danych. W skrajnym przypadku, jeżeli były by to moje dane zaryzykował bym odcięcie zasilania od komputera. Wielu w tym miejscu stwierdzi, że to błąd. No tak możemy coś uszkodzić, ale uchronimy się przed zapisywaniem danych przez system podczas jego wyłączania. Odpowiedz sobie na pytanie, czy nie zdarzyło Ci się wyłączyć komputer przytrzymując power? A no własnie.

Jeżeli już unieruchomiłeś dysk, powinieneś utworzyć jego kopie 1:1. Oczywiście dysk powinien zostać zamontowany tylko w trybie odczytu. Na rynku są dostępne specjalne sprzętowe rozwiązania w tym kierunku, spinamy wszystko w całość i możemy tylko czytać. Nie każdy ma dostęp do takich rozwiązań, śmiem twierdzić że większość amatorów. Dlatego powinniśmy wyłączyć automatyczne montowanie dysków w systemie, gdzie chcemy odzyskiwać dane i montować ręcznie tylko z prawem odczytu danych.

mount -t <typ_systemu_plików> -r <ścieżka_do_urządzenia> <ścieżka_do_której_montujemy> <-komenda montująca tylko w trybie odczytu

'dd' reporter


Do uzyskania obrazu danych możemy użyć systemowego programu dd. Utworzy nam we wskazanym miejscu dokładną kopie. Poleceniem

dd if=<ścieżka_montowania> of=<miejsce_zapisu>

wykonamy pełną kopie wskazanego przez nas folderu. Pamiętaj o tym, aby zapewnić dd tyle miejsca do zapisu ile wynosi całkowita pojemność partycji.

Hulanki i swawola! 

Mając utworzony obraz, możemy prowadzić na nim eksperymenty wykorzystując do tego sleuthkit. Warto utworzyć zapasową kopie obrazu, oszczędzi to nam czas w przypadku 'zepsucia' kopii danych.

Jeżeli dotarłeś do tego momentu, możesz skorzystać z Autopsy do odszukania interesujących Cię danych. Przy odrobinie znajomości angielskiego (google translate czyni cuda :D) poradzisz sobie bez problemu.

Jako zwolennik największej zalety systemów linuxowych, czyli terminala wykorzystam do tego odpowiednią komendę. Należy pamiętać, że terminal nie wybacza, jeden błąd może drogo kosztować :D

Przejdźmy do meritum, wykonujemy polecenie

fls -i raw -Fdr <ścieżka_do_obrazu>
W tym momencie komputer zacznie przeszukiwać obraz w poszukiwaniu wszystkich usuniętych plików, oraz wyrzuci nam dane potrzebne do odnalezienia i uratowania danych.

Możemy ułatwić sobie sprawę dodając na koniec komendy

| grep <poszukiwana_fraza> 
Dzięki czemu zostaną wyświetlone tylko pliki, które nas interesują, np. dopisując *.jpg dostaniemy wszystkie pliki w formacie jpg.

SSD, Trim i spójka


W tym momencie zakończyłem swoje odzyskiwanie pliku opisanego na początku. Niestety na liście wyrzuconej przez fls brakowało tego jedynego wpisu na jaki czekałem. Moje przypuszczenia padają na funkcje trim wykorzystywaną w przypadku dysków SSD. Kolokwialnie mówiąc, funkcja ta widząc że usuwasz dane usuwa je też fizycznie, w celu przyśpieszenia dysku.
Co ciekawe, fls odnalazł pliki które zostały usunięte parę dni wcześniej.

iCat - Apple tworzy pupila?


Jeżeli odszukasz na liście swój plik, spisz jego numer inoda. Następną czynnością będzie użycie narzędzia icat. Poprzez komendę

icat -i raw -r -s <ścieżka_do_obrazu> <numer_inoda> \
następnie w celu zapisu danych przekierowywujemy wyjście, na zapis do danego pliku znakiem >
> <ścieżka_zapisu_pliku/nazwa_pliku.rozszerzenie>
I oto we wskazanym miejscu, powinniśmy mieć nasz odzyskany plik.

A morał tej bajki jest krótki i wszystkim znany,  to co zarchiwizujemy to i mamy.

Kończąc ten mini poradnik, nie życzę nikomu testowania tej procedury odzyskiwania. O wiele lepszym  rozwiązaniem jest wykonywanie regularnego backup. W warunkach domowych polecam wykonywać go przynajmniej, raz na miesiąc lub przy okazji wytworzenia jakiś danych, których nie chcemy utracić.
To gdzie zapiszemy dane, NAS, dysk w kieszeni, czy chmura zależy tylko od nas. Najlepiej zabezpieczyć się na kilka sposobów. Pamiętajmy, że tej metody odzyskiwania, możemy stosować też na innych nośnikach danych, np. takich jak pamięci flash(SD, CF, MMC).






Brak komentarzy:

Prześlij komentarz