Wyobraźcie sobie dysk USB, który potrafi rozpoznać, czy został podłączony do urządzenia, którego zadaniem jest wykonanie kopii zawartych na nim danych i w razie stwierdzenia takiej sytuacji kasuje swoją zawartość. Fantastyka? Okazuje się, że nie.
Travis Goodspeed, amerykański haker – majsterkowicz, jeden z laureatów Pwnie Awards 2012, od kilku miesięcy zajmuje się emulacją urządzeń USB. Swoją zabawę zaczął od stworzenia płytki Facedancer, która umożliwia zbudowanie w pełni funkcjonalnego wirtualnego urządzenia USB w Pythonie. Po przestudiowaniu zasad funkcjonowania protokołu USB Travis stworzył całą platformę, umożliwiającą dalsze testy – w tym na przykład fuzzing sterowników USB.
W październiku tego roku Travis przedstawił jedno z praktycznych zastosowań stworzonej przez siebie platformy – przechwytywanie aktualizacji oprogramowania. Część urządzeń posiadających port USB korzysta z protokołu USB Device Firmware Updates w celu aktualizacji wbudowanego oprogramowania. Przechwycenie kompletnej paczki oprogramowania w celu jego analizy nie jest prostą operacją, a Facedancer znacznie to zadanie ułatwia. Urządzenie umożliwia emulację urządzenia poprzez podanie odpowiedniego identyfikatora producenta oraz produktu a następnie podanie nieaktualnej wersji oprogramowania.
Kontynuując prace nad Facedancerem, Travis przyjrzał się komunikacji komputera z dyskiem USB w różnych sytuacjach. Swoje najnowsze odkrycia zaprezentował na zakończonej kilka dni temu konferencji Chaos Communication Congress. Szybko zauważył, że bardzo łatwo można zdefiniować szablony komunikacji, wskazujące, czy dysk został podłączony jako zwyczajny nośnik przez zwykłego użytkownika (zwyczajowo zaczyna od pytania o główny katalog, po czym analizuje podkatalogi), czy też trafił w ręce informatyka śledczego, który próbuje wykonać obraz całego dysku (zaczyna się od żądania danych z sektora 0, potem następują żądania danych z kolejnych grup sektorów, które nie respektują długości plików).
Jak utrudnić pracę śledczym
Jeśli już potrafimy rozpoznać, w jakim celu ktoś podłączył napęd, to możemy także odpowiednio zaprogramować reakcję urządzenia. Na przykład możemy wyłączyć prawidłowa reakcję na polecenie „undelete”, udając, że z dysku nie zostały usunięte żadne pliki. Możemy także znacznie utrudnić udowodnienie, że obraz dysku został prawidłowo utrwalony, programując urządzenie tak, by każda próba odczytu jednego z sektorów dawała inną, losową odpowiedź – dzięki temu suma kontrolna dysku nigdy nie będzie się zgadzać. Można także kazać urządzeniu usunąć wszystkie pliki, gdy odkryje podejrzaną działalność hosta. Możemy także łatwo zidentyfikować, czy napęd został podłączony do systemu Windows przez zwykłego użytkownika, ponieważ Windows na samym początku komunikacji z urządzeniem zapisuje na nim znacznik czasowy dostępu. Taki zapis nie będzie miał miejsca, jeśli nośnik zostanie podłączony w laboratorium informatyki śledczej, ponieważ każdy szanujący swoją pracę biegły podłączy napęd przez bloker zapisu, filtrujący komendy protokołu odpowiadające za zapisywanie danych na dysku.
Dysk, który odczytam tylko ja
Oprócz zabezpieczenia dysku przed jego analizą przy użyciu narzędzi informatyki śledczej, można także zabezpieczyć swój dysk przed odczytem przez nieuprawnionych użytkowników. Jeśli właściciel nośnika nie korzysta z systemu Windows, może na przykład zaprogramować urządzenie tak, by gdy zobaczy ono 9 kolejnych odczytów MBR (a takie właśnie 9 odczytów to znak działalności systemu Windows, z kolei system Mac OS X możemy rozpoznać dzięki użyciu komendy SETFEATURE), odmówiło dalszej współpracy lub pokazało zupełnie inną zawartość. W zależności od konfiguracji systemu głównego użytkownika możliwe jest stworzenie unikalnego wzorca przebiegu komunikacji, który zapewni dostęp do rzeczywistych danych zapisanych na nośniku.
Jak to zrobić?
Jak trudne możemy być zaimplementowanie opisanej powyżej funkcjonalności w gotowym, komercyjnym urządzeniu? Zależy to głównie od tego, czy urządzenie to umożliwia aktualizację swojego oprogramowania oraz czy zabezpiecza aktualizacje oprogramowania kryptograficznie. Istnieją na rynku urządzenia, w których modyfikacja wbudowanego oprogramowania jest relatywnie prosta.
Czy istnieje metoda ominięcia tego typu zabezpieczeń?
Bez wątpienia jest to możliwe, jednak może być bardzo czasochłonne. Po pierwsze, każdy nośnik USB musi być poddany analizie, która odpowie na pytanie, czy można go poddać zwyczajnemu procesowi informatyki śledczej. W razie wykrycia modyfikacji niezbędne będzie albo odkrycie błędu w oprogramowaniu, umożliwiającego wykonanie zrzutu zawartości pamięci urządzenia, albo wylutowanie układów pamięci i odczytanie ich w innym urządzeniu. Ta ostatnia opcja może być w przypadku niektórych urządzeń dość skomplikowana ze względu na rosnącą miniaturyzację oraz integrację urządzeń.
Jeśli chcecie dowiedzieć się więcej na temat projektu Travisa, polecamy zapis jego wystąpienia na konferencji 29C3.
Chcecie zbudować swojego własnego Facedancera? Travis udostępnił w sieci kompletny projekt wraz ze wszystkimi niezbędnymi wskazówkami. Powodzenia!
Komentarze
Adam – jestem pod nieustającym wrażeniem Twoich newsów. Czytałem dziś już o tym na h-online ale u Ciebie 100% lepiej przygotowany :)
Wszystko ok,w przypadku zaistnienia podejrzeń o korzystanie z takiego rozwiązania kości flash będą zrzucane bezpośrednio w czytnikach.
Bezpieczne jest wyłącznie szyfrowanie całości nośnika.
Jeśli ta kostka umie też szyfrować w locie to przelutowanie kości pamięci za dużo nie da. Ale to właśnie ten otwarty na modyfikacje układ jest tutaj pewną przeszkodą bo można by z niego wyciągnąć klucz i algorytm szyfrowania.
No cóż, dla mnie to kwestia ochrony prywatności a nie walki ze śledczymi:P
Naprawdę świetna sprawa z takim pendrivem. Na końcu jest informacja jak przygotować takie urządzenie, a czy jest możliwość zakupienia takiego pendriva fabrycznie przygotowanego przez jakiegoś producenta?
na pewno. A producent wstawil jakiegos backdoora dla FBI..czy innych takich..
A co się stanie jeśli informatyk śledczy korzysta ze spreparowanego systemu z rodziny linux, w taki sposób, że bez blokera podłacza dysk w trybie ro a nastepnie oczywiście bez montowania kopiuje urządzenie przez dd ? Procedura raczej nie zadziała :D