Windows Forensic/Evidence Analysis

[Digital Forensic] USB Connection Information Analysis

DF_m@ster 2024. 1. 8. 09:00

디스크 분석 과정에서 USB 연결 분석은 어떤 USB가 어떤 사용자 계정에 연결되었는지 확인할 수 있기 때문에 중요한 분석으로 여겨진다. USB 연결 분석으로 연결했던 USB 이름, USB 시리얼 넘버, USB GUID, USB Device Class ID, USB Unique Instance ID, USB 최초 연결 시간, USB 마지막 연결 시간, USB가 연결되었던 사용자 계정 등의 정보가 확인 가능하다.

 

USB 시리얼 넘버: 제조업체가 USB 장치마다 할당한 고유한 식별자로, 같은 USB 장치를 다른 PC에 연결해도 동일한 값을 갖는다.

USB GUID: 이는 장치의 클래스 또는 유형을 나타내는 값으로, 장치 자체에 고유하다. 따라서, 같은 USB의 클래스 또는 유형 장치를 다른 PC에 연결해도 동일한 값을 갖는다.

USB Unique Instance ID: USB가 시스템에 연결될 때 생성되는 고유한 식별자로, 같은 USB 장치를 다른 PC에 연결하면 다른 Unique Instance ID가 생성된다.

USB Device Class ID: 제조사 이름, 제품 이름, 제품 버전 정보를 포함한 값이다.

 

 

 

USB Connection Inforamtion

USB 연결 정보 분석에는 크게 세 가지 방법이 있다. 첫 번째 방법은 특정 경로에 저장된 USB 연결 로그 파일을 분석하는 방법이다. 두 번째 방법은 특정 경로에 존재하는 USB 연결 로그 레지스트를 분석하는 방법이다. 이때, USB 연결 로그를 관리하는 레지스트리는 총 3가지 경로가 존재한다. 세 번째 방법은 디지털 포렌식 툴인 'Autopsy'의 'Recent Activity' 옵션을 사용하여 분석하는 방법이다. 이 옵션을 활용하면, 수동으로 파일을 찾고 추출하는 과정 없이 USB 로그를 효율적으로 분석할 수 있다. 다만 많은 정보를 추출하지는 못한다.

 

Information Location

아래의 USB 정보는 모두 '기기에 연결되었던'을 전제로 한 USB를 의미한다.

 

1. 로그 파일 분석

확인 가능 정보: USB 이름, USB 시리얼 넘버, USB GUID, USB Product ID, USB 최초 연결 시간, USB 마지막 연결 시간, USB가 연결되었던 사용자 계정 정보

파일 경로: %SystemRoot%\INF\Setupapi.dev.log

 

2. 레지스트리 분석

확인 가능 정보: Device Class ID, Unique Instance ID 정보

이때 Device Class ID는 'Disk&Ven_~&Prod_~&Rev~' 형태를 띠는데, Ven은 제조사 이름, Prod는 제품 이름, Rev는 버전을 의미로 해석해야 한다.

레지스트리 경로: HKEY_LOCAL_MACHINE\SYSTEM\ControlSet00?\Enum\USBTOR

 

3. 레지스트리 분석

확인 가능 정보: USB 제조사 ID (VID), USB 제품 ID(PID) 정보

레지스트리 경로: HKEY_LOCAL_MACHINE\SYSTEM\ControlSet00?\Enum\USB

 

4. 레지스트리 분석

확인 가능 정보: 연결했던 USB 볼륨 이름 정보

볼륨 이름은 사용자가 설정할 있는 저장 장치의 사용자 정의 이름이다.

레지스트리 경로: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Portable Devices\Devices

 

 

 

USB Connection Analysis

실습을 위해 VMware에서 실제 USB를 연결하여 상황을 재현하였다. 추가로 VMware의 VMDK 파일을 FTK Imager를 이용해 RAW 파일로 이미징 하고, Autopsy로 USB 연결 로그를 분석한 결과이다.

 

Autopsy에서 'Data Artifacts' 항목의 'USB Device Attached'를 선택하면 연결했던 USB 로그를 확인할 수 있다. 시간순으로 정렬을 하였고, 가장 마지막에 연결한 2개의 USB가 실습을 위해 의도적으로 연결한 USB이다. 제조 회사, 제품 모델, 시리얼 넘버 정보를 확인 가능하며, 아래의 예시에서는 SanDisk 사의 5581 모델의 시리얼 넘버가 'A2003381084C4159'인 USB이다. 'Artifact ID'는 USB 장치가 시스템에 연결될 생성되는 데이터나 정보를 포함하며, 특정 장치나 해당 장치의 사용을 추적하는 사용된다. 해당 USB는 '-9223372036854775781' 값을 갖는다.

Autopsy 'USB Device Attached'

 

다음으로 '%SystemRoot%\INF\Setupapi.dev.log' 경로의 파일을 추출하여 분석하려는 USB의 시리얼 넘버 (A2003381084C4159)를 검색하면 아래와 같이 나타남을 확인할 수 있다. 해당 영역의 데이터를 분석하여, USB 이름, USB 시리얼 넘버, USB GUID, USB Product ID, USB 최초 연결 시간, USB 마지막 연결 시간, USB가 연결되었던 사용자 계정 정보를 추출 가능하다.

 

최초 연결 시간: 2024/01/07 00:14:38.500, 마지막 연결 시간: 2024/01/07 00:17:41.276, Class GUID: {eec5ad98-8080-425f-922a-dabf3de3f69a} 값을 갖는다.

Setupapi.dev.log

 

이전 분석에서 확인한 시리얼 넘버가 'A2003381084C4159'인 USB를 레지스트리로 추가 분석하는 과정이다. 레지스트리 분석을 위해 먼저 레지스트리를 추출해야 한다. FTK Imager의 'Obtain Systrm File'을 이용하고, 'Users\[사용자 계정]\NTUSER.DAT, ntuser.dat.LOG1'의 파일을 수동 추출하여 레지스트리 획득이 가능하다.

Obtain System Files
Users\[사용자 계정]\NTUSER.DAT, ntuser.dat.LOG1, ntuser.dat.LOG2

 

추출된 레지스트리를 'REGA'에 업로드하여 레지스트 분석을 진행한다.

REGA 분석

 

이전 분석에서 확인한 시리얼 넘버가 'A2003381084C4159'인 USB를 대상으로 분석을 진행하였다.

첫 번째로 'HKEY_LOCAL_MACHINE\SYSTEM\ControlSet00?\Enum\USBSTOR' 경로 분석이다.

 

Device Class ID는 'Disk&Ven_SanDisk&Prod_SanDisk_3.2_Gen1&Rev_DL17' 값으로 나타나며 이를 해석하면 SanDisk 사의  SanDisk_3.2_Gen1 제품이며 버전은 DL17로 해석할 수 있다. 추가적으로 시리얼 넘버는 'A2003381084C4159'임을 확인할 수 있다.

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet00?\Enum\USBSTOR

 

두 번째로 'HKEY_LOCAL_MACHINE\SYSTEM\ControlSet00?\Enum\USB' 경로 분석이다. 해당 경로는 USB를 디렉터리 별로 USB 제조사 ID (VID), USB 제품 ID(PID) 정보로 묶어 관리한다. 즉, 시리얼 넘버가 'A2003381084C4159'인 USB의 상위 디렉터리를 참고하면 해당 USB의 USB 제조사 ID (VID), USB 제품 ID(PID) 정보를 확인 가능하다.

 

아래의 예시에서는 VID는 '0E0F'이고, PID는 '0001'이다.

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet00?\Enum\USB

 

마지막 세 번째로 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Portable Devices\Devices' 경로 분석이다.  USB 볼륨 이름이 'E:\'임을 확인할 수 있다.

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Portable Devices\Devices

 

 

 

Result

USB 연결 정보는 Autopsy, 로그 파일, 레지스트리를 이용하여 다양한 정보를 추출할 수 있다. 위의 실습 결과 추출한 USB 정보는 SanDisk 회사의 SanDisk_3.2_Gen1 제품이다. 추가적으로 USB 고유 식별에 사용되는 Serial Number와 Artifact ID는 각각 'A2003381084C4159'와 '-9223372036854775781'이다. USB 세부 정보로 버전은 DL17(5581)이고, VID는 '0E0F', PID는 '0001', Class GUID는 {eec5ad98-8080-425f-922a-dabf3de3f69a}이다. 해당 USB를 'korea' 사용자 계정에서 '2024/01/07 00:14:38.500'에 최초로 연결하였음을 확인하였다. 결과적으로, Serial Number, Artifact ID, User ID 정보를 활용하여 특정 사용자가 특정 USB 장치를 연결한 정황 식별할 있다.