[USB 파일 복구 툴 제작] USB 분석
1. 개요
- USB 설치 과정에서 드라이버 설치 로그파일과 레지스트리 흔적을 알 수 있는 데이터
- 연결 시간, 해당 장치 ID, 볼륨 레이블, 드라이브 문자, 시리얼 번호 확인 가능
2. 레지스트리 주요 경로
1) HKLM\SYSTEM\ControlSet00X\Enum\USBSTOR\{DID, device class identifier}
2) HKLM\SYSTEM\ControlSet00X\Control\DeviceClasses\{GUID}
3) C:\Windows\inf\Setupapi.dev.log
3. USB 저장 매체 인식 절차
1) USB 저장 매체가 연결되면 버스 드라이버는 PnP(Plug and Play) 관리자에게 장치의 고유한 식별번호(device descriptor)
를 사용하여 연결 알림을 한다.
- device descriptor) 제조사, 일련번호, 드라이버 정보 등을 포함
2) PnP 관리자는 받은 정보를 기반으로 Device Class ID를 설정하고, 적절한 드라이버 검색을 실시
3) 드라이버가 없을 경우, 사용자 모드의 PnP 관리자는 해당 장치의 펌웨어로부터 드라이버를 전달 받아 로드하고 레지스트리에 기록
- HKLM\SYSTEM\ControlSet00X\Enum\USBSTOR\{DID, device class identifier}
- HKLM\SYSTEM\ControlSet00X\Control\DeviceClasses\{GUID}
4) PnP 관리자의 이러한 일련 과정은 Setupapi.dev.log에 기록, 결과적으로 로그파일(Setupapi.dev.log) 및 레지스트리를 통해
USB 장치의 흔적 파악이 가능하다.
4. Setupapi.dev.log
: 이 파일을 통해 볼륨명, 시리얼넘버, 볼륨 GUID, Product ID, 최초 연결 시간, 마지막 연결 해제 시간, 저장매체를 사용한
사용자 계정 정보 등 확인할 수 있다.
- C:\Windows\inf\Setupapi.dev.log
1) 저장 매체 정보
- HKLM\SYSTEM\ControlSet00x\Enum\USBSTOR
2) USBSTOR의 Subkey를 분석할 경우, 이미 해당 시스템에서 사용하거나 사용했던 USB 장치를 확인할 수 있음
- Device Class ID: Disk&Ven_XXX&Prod_XXX&Rev_XXX (제조사, 제품명, 버전)
3) HKLM\SYSTEM\ControlSet00x\Enum\USBSTOR\{Device Class ID}
: Device Class ID 하위키의 Unique Instance ID 형식을 통해 시리얼 번호, USB뿐 아니라 외장 하드도 확인 가능
4) 저가형 중국산 USB Drive들은 시리얼 번호가 없는 경우가 있다.
이런 경우 PnP 관리자는 자동으로 unique한 시리얼 번호를 생성(Instance ID)하여 부여한다.
PnP 관리자에 의해 설치된 Instance ID는 2번째 위치에 &가 들어가 있게 된다.
5) HKLM\SYSTEM\ControlSet00X\Control\DeviceClasses\{GUID}
: 부팅 이후 최초로 연결한 시각을 저장하는 레지스트리
6) 하위 키 중 [a5dcbf10-6530-11d2-901f-00c04fb951ed] 가 USB 관련!
** Device List
- Disk 관련: [53F56307-B6BF-11D0-94F2-00A0C91EFB8B]
- Volume 관련: [53F5630D-B6BF-11D0-94F2-00A0C91EFB8B]
- USB 관련: [A5DCBF10-6530-11D2-901F-00C04FB951ED]
- Portable Device 관련: [6AC27878-A6FA-4155-BA85-F98F491D4F33]
> 해당 키들의 마지막 수정 시간으로 연결 시각을 확인할 수 있다.
7) HKLM\SOFTWARE\Microsoft\Windows Portable Devices\Devices
: 볼륨명, 하위키 중 제품명 또는 시리얼번호를 포함하는 키 검색
* 볼륨(volume): 하나의 파일 시스템을 갖춘 하나의 접근 가능한 스토리지 영역으로, 일반적으로(꼭 필수는 아니지만) 하드 디스크의 단일 파티션에 상주
- FriendlyName
장치명 설정 된 경우) 설정한 장치명
장치명 설정되지 않은 경우) 연결된 볼륨명
참고
'디지털포렌식' 카테고리의 다른 글
What is File Carving? (0) | 2020.05.01 |
---|---|
파일 카빙을 통한 데이터 복구 (0) | 2020.04.05 |
[USB 파일 복구 툴 제작] 1. USB 장치 인식 절차 (0) | 2020.04.04 |
댓글