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.
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:
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.
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.
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.
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.
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”.
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.
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”
Outra sub-chave que pode ser útil para determinar a letra de montagem é a “HKLM\SOFTWARE\Microsoft\Windows Portable Devices\Windows Search\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”.
Alguns outros pontos encontrados que nos fornecem informações sobre os dispositivos conectados são:
- HKLM\SYSTEM\ControlSet001\Enum\STORAGE\Volume
- HKLM\SYSTEM\ControlSet001\Enum\SWD\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.
Sendo assim o “RecentDocs” é apenas um exemplo, contudo existem outros Shell Item e outros artefatos que podem relevar as informações dos dispositivos USB.
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.
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.
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.
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.
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