Histórico de USB: como um perito identifica o histórico de dispositivos USB conectados em um computador rodando Windows?

Histórico de USB: como um perito identifica o histórico de dispositivos USB conectados em um computador rodando Windows?

1.Utilidade do histórico de conexões de dispositivos USB

As pessoas amplamente utilizam dispositivos USB para diversas funções, incluindo entrada e saída de dados. Sendo esses um dos vetores que atualmente estão sendo muito utilizados para disseminação de malware ou exfiltração de dados por funcionários mal-intencionados ou despreparados.

Alguns dos casos da utilização de dispositivos USB para propagação de malware são o Stuxnet, Buckshot Yankee e mais recentemente o malware LitterDrifte, o que corrobora com o relatório de segurança da Check Point. Este relatório informa o ressurgimento da utilização de dispositivos USB como vetor para propagação de malwares no ano de 2023.

Nesse contexto, se faz necessário a descoberta dos dispositivos USB conectados a um equipamento, bem como sua interação com o sistema, sendo esse um artefato que pode auxiliar na resposta a incidentes, computação forense e afins. Conforme mencionado, os dispositivos USB têm encontrado ampla utilização na propagação de malware e na exfiltração de dados, seja de forma imprudente ou mal-intencionada, tendo em vista o tamanho cada vez menor desses dispositivos e o aumento da capacidade de armazenamento e pela crença que não haverá registros de tais ações no sistema operacional.

Dispositivos USB
Figura 1 – Fonte: Kingston – Dispositivos USB

A tema de reflexão podemos pensar no cenário de uma busca e apreensão de dispositivos informáticos, e nisso temos a questão de como encontrar algo extremamente pequeno (MicroSD) e que pode ser facilmente escondido? Como descobrir a existência deste dispositivo no local?.

2. Como descobrir se um dispositivo USB foi conectado no Windows?

A principal forma de descobrir os dispositivos USB conectados no Windows é pelo Registro do Windows, contudo é possível encontrar outros recursos do sistema operacional que apresentam artefatos revelam a presença anterior de um dispositivo USB conectado a máquina, bem como sua interação com o sistema. A título de exemplo podemos citar os logs de evento do Windows. Observe que há possibilidade de encontrar outros artefatos e recursos do sistema operacional que apresente informações sobre os dispositivos USB conectados, contudo os principais será:

  • Registro do Windows
  • dev.log
  • Log de Eventos
  • Shell Items

 

a) Registro do Windows e Shell Items

O Registro do Windows será o principal artefato que utilizaremos para analisar os dispositivos USB conectados. Sendo assim, teremos um foco maior no Registro do Windows do que os outros artefatos, contudo isso não implica que os outros artefatos são desnecessários e sim que se complementam, a fim de obter o máximo de informações possível de forma que seja possível se certificar que determinado se um dispositivo USB esteve presente em um sistema e sua interação com ele.

Vale ressaltar que basicamente existem três tipos de protocolos utilizados nos dispositivos USB, sendo eles o MSC, MTP e PTP. A título informativo o tipo MSC em resumo é um protocolo mais simples, que permite um maior controle do dispositivo USB. Afinal, o sistema operacional acaba tratando esse dispositivo como uma unidade de armazenamento.

Os principais arquivos Hive do registro do Windows que irão oferecer informações sobre os dispositivos USB conectados são:

  • C:\Windows\System32\Config
    • SYSTEM
    • SOFTWARE
  • C:\Users\<usuário>
    • DAT

A título de informação, é possível utilizar o FTK Imager para realizar a aquisição dos arquivos do registro do Windows, seja em uma análise a quente ou a frio.

Será utilizado o software Registry Explorer para visualizar os conteúdos dos arquivos do registro do Windows. Conforme demostrado na figura 2:

Programa Registry Explorer com os arquivos de registro do Windows carregado
Figura 2 – Programa Registry Explorer com os arquivos de registro do Windows carregado

Veja que ao analisar o arquivo SYSTEM adquirido de uma imagem forense ele não irá apresentar a sub-chave “CurrentControlSet” em vez disso será exibido uma ou mais sub-chaves “ControlSet00<1-3>”, e caso haja mais de uma chave “ControlSet00<1-3>” é necessário prosseguir para a sub-chave “Select” e verificar o valor do campo “Current” que irá apontar para o “ControlSet00<1-3>” que deve ser o objeto de análise. Pois o “CurrentControlSet” representa a inicialização atual sendo uma referência do “ControlSet00<1-3>” que está sendo utilizado. Conforme demostrado na figura 3.

Figura 3 – Visualização do registro do Windows (Registry Explorer x Editor de Registro)
Figura 3 – Visualização do registro do Windows (Registry Explorer x Editor de Registro)

A primeira sub-chave que será analisada será “HKLM\SYSTEM\ControlSet001\Enum\USBTOR” sendo essa a principal chave que nos fornecerá informações a respeito do histórico dos dispositivos USB conectado. Observe que a partir dessa sub-chave é possível obter diversas informações sobre determinado dispositivo USB sendo algumas dessas informações:

  • Histórico de Conexões
  • Identificador do Disco
  • Nome do dispositivo
  • Número de série
  • Fabricante

Carvey (2014), em sua obra ‘Windows Forensic Analysis Toolkit’, menciona que o número de série pode conter inconsistências, com relatos de analistas que observaram mais de um dispositivo do mesmo fabricante com o mesmo número de série. Ele também observa que nem todos os dispositivos têm um número de série único armazenado, e, nesses casos, o sistema operacional Windows atribuirá um número de série para o dispositivo, identificável pelo caractere ‘&’ na segunda posição. Apesar de focar no Windows 8, a estrutura permanece a mesma.”
Temos então na figura 4 dois dispositivos USB listados, sendo eles um referente a um dispositivo Kindle e outro referente a um USB Flash Drive, cada qual com seus respectivos números de série, fabricante, identificador do Disco, histórico de conexões entre outras informações que serão de grande relevância no decorrer das análises.

Figura 4 – Registry Explorer: USBTOR
Figura 4 – Registry Explorer: USBTOR

Em seguida vamos analisar a sub-chave “HKLM\SYSTEM\ControlSet001\Enum\USB” a qual é possível identificar o PID e o VDI do dispositivo USB. Observe que é possível identificar os dispositivos pelo número de série.

Figura 5 – Registry Explorer: USB
Figura 5 – Registry Explorer: USB

Com a chave “HKLM\SYSTEM\MountedDevices” é possível identificar a letra ao qual o dispositivo foi mapeado. Essa chave lista os dispositivos USB montados no sistema com suas respectivas letras de unidade atribuídas. É importante notar que essa chave pode sofrer alterações, resultando na perda da letra atribuída a um dispositivo USB específico, pois a letra pode ser reutilizada por outro dispositivo quando não estiver ativo no sistema.

Essa chave nos possibilita determinar a letra que o dispositivo foi montado, dessa forma é possível correlacionar os artefatos de Shell Items com o respectivo dispositivo USB. Observe que essa chave poderá não conter as informações que procuramos por diversos fatores, contudo é possível correlacionar pelo seu número de série e ou GUID.

Figura 6 – Registry Explorer: MountedDevices
Figura 6 – Registry Explorer: MountedDevices

Já na sub-chave “HKLM\SOFTWARE\Microsoft\Windows Portable Devices” é possível encontrar o nome do dispositivo, e em alguns casos é possível encontrar a letra atribuída ao dispositivo (Nosso caso em relação ao dispositivo SanDisk Cruzer Blade). Veja que é possível relacionar os dispositivos com o GUID e o número de série descrito na sub-chave “USBTOR”.

Figura 7 - Registry Explorer: Windows Portable Devices
Figura 7 – Registry Explorer: Windows Portable Devices

Outra sub-chave que pode ser de grande utilidade é a “HKLM\SYSTEM\ControlSet00<1-3>\Control\DeviceClasses. A qual irá apresentar algumas informações sobre os dispositivos USB conectados, contudo não será de grande relevância de informações a menos que não seja possível obter tais informações pelas chaves e sub-chaves anteriores decorrentes de técnicas anti-forense.

Figura 8 - Registry Explorer: DeviceClasses
Figura 8 – Registry Explorer: DeviceClasses

Ainda é possível obter informações sobre os USB conectados a partir do NTUSER.DAT do usuário. Assim podendo relacionar um dispositivo USB ao usuário ativo no momento da conexão. Você pode encontrar essas informações na seguinte subchave: “NTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2”

 

Figura 9 - Registry Explorer: MountPoints2
Figura 9 – Registry Explorer: MountPoints2

Outra sub-chave que pode ser útil para determinar a letra de montagem é a “HKLM\SOFTWARE\Microsoft\Windows Portable Devices\Windows Search\VolumeInfoCache”

Figura 10 - Registry Explorer: VolumeInfoCache
Figura 10 – Registry Explorer: VolumeInfoCache

Este local do registro do Windows também armazena o histórico de dispositivos USB, contudo depende da forma que foram conectados e estão sendo tratados pelo sistema operacional. O caminho para o encontrar é “HKLM\SYSTEM\ControlSet001\Enum\SCSI”.

Figura 11 - Registry Explorer: SCSI
Figura 11 – Registry Explorer: SCSI

Alguns outros pontos encontrados que nos fornecem informações sobre os dispositivos conectados são:

  • HKLM\SYSTEM\ControlSet001\Enum\STORAGE\Volume
Figura 12 - Registry Explorer: Volume
Figura 12 – Registry Explorer: Volume
  • HKLM\SYSTEM\ControlSet001\Enum\SWD\WPDBUSENUM
Figura 13 - Registry Explorer: WPDBUSENUM
Figura 13 – Registry Explorer: WPDBUSENUM

Uma informação interessante é referente ao ClassGUID que indica que ele é um dispositivo WPD.

  • HKLM/SOFTWARE/MICROSOFT/WINDOWSNT/CURRENTVERSION/EMDMgmt/

Em nossa análise ela se encontrava vazia, porém diversos analistas a apontam como sendo uma fonte dos dispositivos USB conectados.

  • DAT\Software\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs

Os Shell Items, como os arquivos recentes que contêm um item que aponta para o dispositivo USB, são outros artefatos que podem ser extremamente úteis em nossas análises em busca de dispositivos USB conectados. Conforme visto em outras localizações do registro do Windows.

Figura 14 - Registry Explorer: RecentDocs
Figura 14 – Registry Explorer: RecentDocs

Sendo assim o “RecentDocs” é apenas um exemplo, contudo existem outros Shell Item e outros artefatos que podem relevar as informações dos dispositivos USB.

Figura 15 - Visualização das propriedades dos arquivos LNK da pasta ”Itens Recentes”
Figura 15 – Visualização das propriedades dos arquivos LNK da pasta ”Itens Recentes”

Em resumo, quando se trata de registro do Windows foi observado que elas se completam e fornecem informações uteis, sendo assim as principais chaves do registro do Windows que se deve ser analisada são:

  • System
    • HKLM\SYSTEM\ControlSet00X\Enum\USBTOR
    • HKLM\SYSTEM\ControlSet001\Enum\USB
    • HKLM\SYSTEM\ControlSet001\Enum\SCSI
    • HKLM\SYSTEM\MountedDevices
    • HKLM\SYSTEM\ControlSet00<1-3>\Control\DeviceClasses
    • HKLM\SYSTEM\ControlSet001\Enum\STORAGE\Volume
    • HKLM\SYSTEM\ControlSet001\Enum\SWD\WPDBUSENUM
  • Software
    • HKLM\SOFTWARE\Microsoft\Windows Portable Devices
    • HKLM\SOFTWARE\Microsoft\Windows NT\Currentversion\EMDMgmt\
    • HKLM\SOFTWARE\Microsoft\Windows Portable Devices\VolumeInfoCache
  • DAT
    • DAT\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2
    • DAT\Software\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs

Para auxiliar as análises quando se trata do registro do Windows é possível utilizar os plugins do RegRipper, dessa forma obtendo um resultado eficiente. A seguir, veja alguns exemplos de plugins que podem ser usados para recuperar informações do registro do Windows sobre dispositivos USB conectados.

Figura 16 - RegRipper: Utilização dos Plugins USBSTOR e VOLINFOCACHE
Figura 16 – RegRipper: Utilização dos Plugins USBSTOR e VOLINFOCACHE

Ou ainda caso deseje uma visualização mais amigável é possível utilizar o software ”USBDetective” o qual é de fácil usabilidade bastando inserir os arquivos Hive e o setupapi.dev.log em sua versão gratuita. Em sua versão paga é possível carregar outros arquivos de logs do Windows, bem como outros arquivos Hive de forma a complementar e obter o máximo de resultados possível.

Figura 17 – USBDetective versão gratuita
Figura 17 – USBDetective versão gratuita

Log de Eventos e Setupapi.dev.log

O arquivo “Setupapi.dev.log” fica localizado em “C:\Windows\INF”. Resumidamente ele um arquivo de log de instalação de dispositivos e drivers. Existem ferramentas que realizam a análise dele. Contudo uma análise manual em busca do número de série do dispositivo já é suficiente.

Figura 18 - Visualização do arquivo ”Setupapi.dev.log”
Figura 18 – Visualização do arquivo ”Setupapi.dev.log”

E, por fim, trataremos superficialmente o log de evento do Windows, a final os conceitos anteriores se aplicam da mesma forma nesse artefato. Extraímos os logs de evento do Windows do diretório ‘C:\Windows\System32\winevt\Logs’.

Para evitar ser prolixo ao demostrar cada um dos logs de eventos do Windows será demostrado apenas um deles. observe que na figura 19. Nossa análise demonstrou resultados em uma lista de logs de eventos do Windows, visível no painel lateral esquerdo.

Figura 19 - Visualizador de Eventos do Windows
Figura 19 – Visualizador de Eventos do Windows

Conclusão

O sistema operacional Windows possui diversos artefatos que nos auxiliam a obter informações a respeito dos dispositivos USB conectados, contudo observe que muitos desses artefatos podem apresentar dados inconcludentes e muitas vezes divergentes, por diversas questões. É fortemente recomendável a leitura complementar do artigo publicado pelo Kevin Ripa na SANS a respeito destes dispositivos e algumas destas inconsistências. Contudo isso não torna esses artefatos irrelevantes, mas sim é necessário atenção e cautela ao realizar análises com esse objetivo.

 

Referências Bibliográficas

CARVEY, Harlan. Windows Forensic Analysis Toolkit: advanced analysis techniques for windows 8. : Syngress, 2014.

SHAVER, Jason. Exposing Vital Forensic Artifacts of USB Devices in the Windows 10 Registry. Disponível em: https://apps.dtic.mil/sti/citations/tr/ADA632484. Acesso em: 27 mar. 2024.

LEE, Rob. USB Key Analysis vs. USB Drive Enclosure Analysis. Disponível em: https://www.sans.org/blog/usb-key-analysis-vs-usb-drive-enclosure-analysis/. Acesso em: 27 mar. 2024.

KEVIN RIPA. Sans Dfir. USB Forensics Series. Disponível em: https://www.youtube.com/watch?v=rHeDb8fgOdw. Acesso em: 27 mar. 2024.

Sobre o autor

  • Nome: João Tsukahara (Linkedin)
  • Sua Minibiografia: Pesquisador de Segurança Cibernética e Forense Digital

Plano Expert

Plano Detective

Plano Agent