Chyba ciężko dzisiaj byłoby znaleźć urządzenie, które nie można byłoby podpiąć po USB do komputera. Zapewne każdy podzieli też nasza opinię, że USB niewątpliwe zmonopolizował i wyparł wszystkie inne porty komunikacyjne komputerów oraz wprowadził standard, dzięki któremu można podłączyć wszystkie peryferia komputerowe np. dysk, kamerę, telefon, pendrive, cdrom, klawiaturę, mysz itp.

Ponieważ jest to jeden z najpopularniejszych sposobów fizycznego dostępu do komputera, USB znalazł także swoje zastosowanie w świecie cyberprzestępczości. Cyberprzestępcy mogą za pomocą urządzeń USB infekować i przejmować komputery, a nawet je uszkadzać fizycznie – pisaliśmy o tym dokładnie na Kapitanie Hack’u w artykułach: Złośliwy kabel USB (USBNInja) oraz USBKiller.

Jako osoby zajmujące się bezpieczeństwem w firmie lub jako prywatny użytkownik z pewnością chcielibyśmy wiedzieć, jakie urządzenia USB zostały podłączone do komputerów użytkowników lub naszego komputera podczas naszej nieobecności. Informacje te mogą być bardzo przydatne również dla śledczego lub w ogólnych przypadkach, w których chcemy wiedzieć, jakie urządzenia USB były używane w firmie lub na naszym komputerze.


Jak sprawdzamy co było podpinane?

Może nie dla każdego jest to oczywiste, ale system operacyjny Windows może pomóc nam w zidentyfikowaniu takich urządzeń oraz monitorowaniu ich podpięcie/odłączenia. Wystarczy użyć odpowiednich narzędzi, skonfigurować odpowiednie opcje, potem zebrać dane, przeanalizować je i monitoring USB mamy na wyciągnięcie ręki!
W przypadku sprawdzania użycia USB mamy tutaj tak naprawdę dwa sposoby:

  • Sprawdzenie historycznie, jakie urządzenia były podpinane w rejestrze systemowym Windows
  • Skonfigurowanie odpowiedniego dziennika zdarzeń Windows, w którym system będzie zapisywał aktywność podpinanych urządzeń

Poniżej opisaliśmy szczegółowo obie możliwości.


1. Pozyskanie informacji o USB z rejestru systemowego

Wszyscy wiemy co to jest rejestr systemowy Windows. Rejestr jest swoista lokalną bazą danych w systemie Windows, która przechowuje ustawienia systemu operacyjnego, urządzeń, programów i ustawień preferencji użytkownika.

Uwaga! Złośliwe oprogramowanie też może przechowywać w rejestrze swoją konfigurację.

Za każdym razem, kiedy wkładamy dysk USB do komputera, tworzony jest klucz rejestru o nazwie „USBSTOR”. Przechowuje on informacje o urządzeniu USB, takie jaki potrzebuje system, czyli interfejs urządzenia, GUID, identyfikator sprzętu, klasa urządzenia itp. Więcej informacji na temat atrybutów znajdziesz tutaj.

Po wpisaniu w linii komend polecenia regedit i przejściu do gałęzi „HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USBSTOR” znajdziesz klucz rejestru o nazwie „USBSTOR”.

Rysunek.1 Lista wpisów i kluczy w rejestrze systemowych dla podpiętych do komputera urządzeń po USB

Bardziej przyjazną możliwością pobrania listy urządzeń USB z rejestru wraz z ich szczegółami jest polecenie PowerShell:

„Get-ItemProperty -Path HKLM:SYSTEMCurrentControlSetEnumUSBSTOR** | Select FriendlyName”

W odpowiedzi wykonanej prawidłowo komendy otrzymamy historię wszystkich urządzeń USB, które były używane na komputerze.


2. Monitorowanie USB w dzienniku zdarzeń

Drugi ze sposobów jaki opiszemy jest to monitorowanie aktywności USB w logach systemu Windows. W tym przypadku dostaniemy trochę więcej informacji niż to było zaprezentowane w rejestrze, ponieważ dowiemy się o:

  • Jaki dysk USB został podłączony do systemu
  • Kiedy został podłączony po raz pierwszy
  • Kiedy został odłączony
  • Jak długo dysk był podłączony do systemu

Takie informacje niewątpliwie wzbogacą nam wiedzę pozyskaną z rejestru systemowego oraz mogą się przydać do rozwiązywania problemów lub przeprowadzenia cyfrowego dochodzenia kryminalistycznego.

Logowanie aktywności na temat podpinanych urządzeń USB nie jest domyślnie włączone w systemie operacyjnym Windows i funkcjonalność ta dostępna dopiero od Windows 7.

Aby je włączyć, w tym celu musimy:

  • zalogować się do komputera na użytkownika z lokalnymi uprawnieniami administracyjnymi,
  • uruchomić konsolę do zarządzania logami (w menu uruchom wpisać eventvwr),
  • przejść do logu „>Application and Services Logs > Microsoft > Windows > DriverFrameworks-UserMode > Operational
  • oraz aktywować prawym przyciskiem myszy opcję „Enabled logging
Rysunek 3. Włączenie opcji zaawansowanego logowania operacji podpinania i odpinania USB

Jeśli lubisz linię komend lub chciałbyś aktywować ten log na wielu komputerach w firmie możemy użyć polecenia wevutil:

wevtutil sl “Microsoft-Windows-DriverFrameworks-UserMode/Operational” /e:true

Zobaczmy zatem jak wygląda takie monitorowanie.


Monitorowania podpięcia urządzenia USB

Po podłączeniu dysku flash USB do systemu w dzienniku operacyjnym generowane jest wiele rekordów zdarzeń o poziomie Informacyjnym oraz szczegółowe logi. Wpisy posiadają następujące identyfikatory zdarzeń:

  • 2003
  • 2004
  • 2006
  • 2010
  • 2100
  • 2101
  • 2105
  • 2106
Rysunek 4. Zdarzenie podpięcia dysku USB

Większość wpisów w logu zawiera zakodowaną nazwę urządzenia, która pomoże nam zidentyfikować urządzenie. Znajdziemy też unikatowy numer seryjny każdego, co pozwoli zidentyfikować określone dyski USB.
Jak można się domyślić, łącząc znacznik daty i godziny z unikalnym numerem seryjnym urządzenia, można dowiedzieć się dokładnie, kiedy dane urządzenie zostało podłączone do systemu.
Gdy podpinamy dysk USB, pierwszym zarejestrowanym rekordem zdarzenia jest Event ID 2003. Tak więc, odnotowując datę i znacznik czasu przypisany do rekordu Event ID 2003, możemy dokładnie powiedzieć, kiedy dysk flash USB został podłączony do systemu.


Monitorowanie odpięcia USB

Po wysunięciu lub odłączeniu urządzenia USB w dzienniku operacyjnym generowanych są następujące logi o identyfikatorach: 2100 oraz 2102.

Rysunek 5. Zdarzenie odpięcia dysku USB

Również tutaj mamy odnotowane datę i godzinę oraz unikalny numer seryjny urządzenia. Pomimo tego, że istnieje wiele rekordów zdarzeń 2102 dla rozłączenia urządzenia, identyfikator zdarzenia jest unikalny. W związku z tym, sprawdzając wpisy zdarzenia 2102, możemy dowiedzieć się dokładnie, kiedy dane urządzenie zostało odłączone od systemu.

Znalezienie tego samego unikalnego numeru seryjnego napędu flash USB w odpowiednich rekordach zdarzeń Event ID 2003 i Event ID 2102, a następnie połączenie tego, pozwala dokładnie określić, jak długo konkretny dysk flash USB był podłączony do systemu.


Podsumowanie

Jak widać, pozyskanie informacji na temat podpiętych urządzeń USB nie stanowi jakiegoś „rocket science”. Korzyści w zastosowania tych metod na pewno znajdziecie wiele. Jedną na pewno jest informatyka śledcza. Można np. przeanalizować w firmie z jakich urządzeń korzystają użytkownicy i na tej podstawie zbudować niezależną czarną listę do blokady w oprogramowaniu DLP. Zalecamy też włączenie opcji śledzenia aktywności urządzenia, która pozwoli nam dokładnie określić na podstawie logów, kiedy urządzenie zostało wpięte oraz odpięte z komputera oraz na tej podstawie wyliczyć czas jak długo było podpięte. Zachęcamy do zapoznania się z innymi artykułami z naszej Kampanii dotyczącej Informatyki Śledczej.


Interesujące linki:

– Pod linkiem tutaj znajdziesz ciekawy skrypt napisany w PowerShell wyciągający z logów informacje o podpinanych urządzeniach
– Opis atrybutów przechowanych w rejestrze systemowym dla urządzeń USB znajdziesz tutaj.