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).






piątek, 22 lutego 2013

"99 Bottles of Beer"

Inaugurując swojego bloga, chciał bym wam przedstawić mniej więcej swoją sylwetkę oraz, o czym chcę tutaj pisać. Chciał bym, aby ten blog był swego rodzaju pamiętnikiem moich doświadczeń, głównie w sferze informatyki.

Moja prawdziwa i świadoma przygoda z komputerami, rozpoczęła się pod koniec roku 1998. Pamiętam jak by to było dzisiaj, pewnego jesiennego dnia dostałem kieszonkowe. Mając zaledwie 7 lat, zainteresowała mnie na wystawie w kiosku, gazeta zatytułowana "Komputer Świat". W tym komputerowym świecie trwam po dziś dzień.

Po całej masie "przetestowanych" klonów Pegazusa, roku pańskiego 2001, otrzymałem swój pierwszy sprzęt. Duron 600, Riva TNT2, 128 SDRAM, to było coś. Dzisiaj byle telefon, ma większą moc obliczeniową :) Jako dziecko miałem duże pole do popisu, pokazując jak potrafię psuć swój wymarzony sprzęt. Od pierwszych formatów, przez dźwiganie BIOSu płyty głównej na gorąco, aż po proste konwertery sygnałów do ratowania dysków oraz 500GB cennych dla mnie informacji, zawsze naprawiałem sam, lub z pomocą krótkich sesji z internetem. To tylko wierzchołek góry lodowej, jaki doświadczyłem doskonaląc swój skill.

It's plastick fantastic.


Gdzieś tam między rozdziałami, epizod ostrego zagrywania się w Wolfenstein:ET. Troszkę dłużej, bo przez około 3 lat, namiętnie podnosiłem swoje umiejętności w dziedzinie grafiki 3D. Niestety słaby sprzęt oraz odkrycie, braku takiego jakiegoś artystycznego zmysłu zaowocował tym, że porzuciłem tą gałąź informatyki.
Nadszedł czas pierwszych męskich wyborów, co ze sobą zrobić. Kryzys jaki przeżywałem, wskazywał mi drogę ku niebiosom. Tak chciałem zostać pilotem, zawsze marzyłem, aby wzbić się w górę.
Szkoła wybrana, miało to być jedyne w Polsce liceum lotnicze.

Upadek Ikara


Na szczęscie, zostałem na ziemi. Zrewidowałem jeszcze raz co chce w życiu robić. Technikum z profilem informatycznym, to było to. Przypomniało mi się, że jest jeszcze taka fajna część informatyki zwana programowaniem. Szkoła obrzydziła mi Pascala, do dzisiaj nie lubię tej składni i języka :D Dlatego moim konikiem został C++.

Dyplom technika i co dalej...?


Jako że od początku, pasjonował mnie hardware, zgłosiłem się do pracy w serwisie komputerowym. Nie było mi dane zostać tam na dłużej. Jeżeli masz większe umiejętności, niż całą załoga i pomimo tego traktują cię jak... bardzo źle cię traktują :D to uciekasz z takiego miejsca.
Hardware został gdzieś tam na drugim planie, teraz postawiłem wszystko na jedną kartę.

Programowanie... ale zaraz, pan nie ma magicznych literek przed nazwiskiem!


Dlatego zawodowo testuję aplikacje. Niby tak blisko, a tak daleko. Tym bardziej daleko, gdyż zajmuję się tylko testami funkcjonalności programów. Prywatnie oczywiście idę w kierunku programowania, a szczególnie gamedevu. Staram się też być obecnym na zajęciach ze zdobywania literek do nazwiska :)



"Back to the Future"


Mam nadzieję, że przyszłość będzie łaskawa dla mnie i wyrwę się w końcu ze szponów monotonii. Gamedevie przybywam...!

Za to wszystko pragnę podziękować moim rodzicom. To oni otwarli dla mnie wrota moich zainteresowań i zawsze wspierali mnie w dążeniu do swoich sukcesów, a także wspierali podczas upadków.

WTF?!


Możecie się spodziewać na moim blogu, krótkich opisów związanych z informatyką, a także różne przemyślenia związane z tą tematyką. Oprócz tego zapewne coś jeszcze się pojawi. Zapraszam was do odwiedzania, tego zakamarka internetu, mam nadzieje że okaże się tymi 2%...