Wspominałem już o technologii U3 i jej potencjalnym wykorzystaniu do Złych Celów. Tym razem postaram się zebrać te informacje w jednym miejscu.
O co chodzi w U3 i dlaczego U3 jest ZŁE!
W Windows istnieje mechanizm Autorun/Autoplay, który pozwala między innymi na na:
- automatyczne uruchomienie programu po włożeniu nośnika,
- modyfikację menu kontekstowego oraz akcji domyślnej,
- inne rzeczy, które tutaj nie są istotne,
Mechanizm ten został pomyślany jako metoda ułatwienia życia użytkownikowi. W końcu to takie fajne, gdy wkładając płytę z muzyką automatycznie otwiera się program do jej odtwarzania, po podłączeniu aparatu program do importu zdjęć, a instalacja programu rozpoczyna się automatycznie po włożeniu nośnika. Trzeba pamiętać jednak, że automatyczne uruchomienie programu z nośnika może mieć miejsce wyłącznie wtedy, gdy nośnikiem tym jest płyta CD. Popularną metodą wyłączenia tego mechanizmu jest ustawienie parametru NoDriveTypeAutoRun .
Jest to jednak dopiero połowa sukcesu, ponieważ plik autorun.inf nadal jest parsowany przez system i może posłużyć do zmiany domyślnej akcji podjętej po kliknięciu przez użytkownika na dysk. Powoduje to w praktyce uruchomienie dowolnego kodu, choć jest to zdecydowanie user assisted, bo wymaga akcji użytkownika. Typowy scenariusz użycia nośnika pendrive jest jednak taki, że po włożeniu pendrive do komputera użytkownik klika w My Computer na pojawiającą się ikonę dysku. Powoduje to wykonanie domyślnej akcji zdefiniowanej w pliku autorun.inf. Scenariusz ten jest wykorzystywany już od jakiegoś czasu przez złośliwe oprogramowanie, na przykład coś takiego WORM_VB.BDN. Przy okazji warto zaznaczyć, że niebezpieczeństwo związane z plikami autorun.inf nie ogranicza się do nośników wymiennych. Wystarczy sprawdzić przy pomocy Process Monitor jak często Explorer szuka pliku autorun.inf. Może on być równie dobrze umieszczony na dysku fizycznym, dysku sieciowym czy nawet w zaszyfrowanym kontenerze TrueCrypt.
Ułatwiamy dalej - U3Okazało się, że brak możliwości automatycznego uruchomienia programu z pendrive jest problemem (dla części użytkowników). Dlatego też pojawiła się wspominana technologia U3, która wcale nie jest bardzo odkrywcza. Po prostu pendrive z technologią U3 przedstawia się systemowi jako dwa urządzenia:
- dysk CD,
- normalny pendrive,
Dla przykładu nabyty przeze mnie pendrive w systemie widoczny jest jako:
- ##?&USBSTOR;CdRom&Ven_SanDisk&Prod_Cruzer&Rev_7.01#1739900ECC03170E&1#{53f5630d-b6bf-11d0-94f2-00a0c91efb8b},
- ##?&USBSTOR;Disk&Ven_SanDisk&Prod_Cruzer&Rev_7.01#1739900ECC03170E&0#{53f56307-b6bf-11d0-94f2-00a0c91efb8b},
Jak widać więc całe U3 nie jest niczym szczególnie technicznie wysublimowanym. Oczywiście dochodzi do tego cała platforma U3, która już kompletnie mnie nie interesuje. Interesuje mnie to, że system (w standardowej konfiguracji) posłusznie uruchomi program określony w części CD, który to program może zrobić już w zasadzie to, co chce.
Osadzanie własnego oprogramowaniaStandardowo instalacja "platformy U3" odbywa się przy pomocy U3 LaunchPad Installer , który działa w ten sposób, że najpierw pobiera z sieci nowy plik ISO z aktualną wersją oprogramowania, a następnie osadza go na pendrive. Istniała kiedyś modyfikowana wersja narzędzia LPInstaller.exe, obecnie można skorzystać choćby z narzędzia Universal U3 LaunchPad Hacker. Wystarczy przygotować obraz ISO z wybranymi narzędziami i odpowiednim plikiem autorun.inf (proponuję zapoznać się z AutoRun and AutoPlay na MSDN).
W rezultacie włożony do komputera pendrive może uruchomić dowolny program (narzędzie), a następnie wykonać dowolne operacje (w kontekście zalogowanego użytkownika oczywiście). Tym narzędziem może być na przykład USB Switchblade. I dlatego U3 oraz AutoRun/AutoPlay są ZŁE!