[Artifact] 윈도우 포렌식 - 레지스트리
레지스트리
레지스트리란 윈도우 운영체제에서 하나 이상의 사용자, 응용 프로그램 및 하드웨어 장치에 맞게 시스템을 구성하는데 필요한 정보를 저장하는 중앙 계층형 데이터베이스다. 레지스트리를 분석하면 사용자의 프로필, 설치된 응용 프로그램 정보, 프로그램 실행 흔적, 무선네트워크, USB 연결 흔적 등이 남기 때문에 윈도우 포렌식 분야의 주요 아티팩트 중 하나다.
레지스트리는 레지스트리 편집기를 통해 확인할 수 있다.
(Windows + R을 누른 후 regedit을 입력)
레지스트리 구조
Hive Key
Root key라고도 하며 HKEY로 시작한다.
- HKEY_CLASS_ROOT(HKCR): 파일 연관성과 COM객체 등록 정보, HKU를 참조
- HKEY_CURRENT_USER(HKCU): 현재 시스템에 로그인한 사용자의 프로파일 정보, HKU를 참조
- HKEY_LOCAL_MACHINE(HKLM): 시스템의 HW, SW 설정 및 다양한 환경 정보, 실제 파일
- HKEY_USERS(HKU): 시스템의 모든 사용자와 그룹에 관한 프로파일 정보, 실제 파일
- HKEY_CURRENT_CONFIG(HKCC): 시스템이 시작할 때 사용하는 HW 프로파일 정보, HKLM 참조
- HKEY_PERFORMANCE_DATA(HKPD): 런타임 성능 데이터 정보를 제공, 메모리상 존재
포렌식적 관점에서는 HKEY_CURRENT_USER, HKEY_LOCAL_MACHINE, HKEY_USERS가 가장 중요하다.
Hive
레지스트리 정보를 저장하고 있는 물리적인 파일로 C:\WINDOWSystem32\Config 폴더에 저장된다. 일반적으로 DEFAULT, SAM, SECURITY, SOFTWARE, SYSTEM에 확장자 명이 없는 파일로 나누어져 보관된다.
- DEFAULT(C:\WINDOWS\System32\config)
제어판, 키보드, 키보드 레이아웃과 같은 기본 정보
관련 하이브 파일: default, default.LOG, default.SAV
해당 레지스트리 키: HKEY_USER/DEFAULT
- SAM(C:\WINDOWS\System32\config)
로컬 계정과 그룹 정보
관련 하이브 파일: SAM, SAM.LOG, SAM.SAV
해당 레지스트리 키: HKEY_LOAL_MACHINE/SECURITY/SAM, HKEY_LOCAL_MACHINE/SAM
- SECURITY(C:\WINDOWS\System32\config)
시스템의 보안과 권한 관련 정보
관련 하이브 파일: SECURITY, SECURITY.LOG, SECURITY.SAV
해당 레지스트리 키: HKEY_LOCAL_MACHINE/SECURITY
- SOFTWARE(C:\WINDOWS\System32\config)
시스템 부팅과 관련 없는 전역 설정 정보
관련 하이브 파일: software, software.LOG, software.SAV
해당 레지스트리 키: HKEY_LOCAL_MACHINE/SOFTWARE
- SYSTEM(C:\WINDOWS\System32\config)
시스템 부팅에 필요한 전역 설정 정보
관련 하이브 파일:system, system.LOG, system.SAV
해당 레지스트리 키: HKEY_LOCAL_MACHINE/SYSTEM, HKEY_CURRENT_CONFIG
사용자별로 유지해야 하는 정보는 사용자 프로파일 폴더(%UserProfile%) 하위에 저장된다.
- NTUSER.DAT(C:\Users\사용자이름\NTUSER.DAT): 사용자별 설정 정보
- UsrClass.dat(C:\Users\사용자이름\AppData\Local\Microsoft\Windows\UsrClass.dat): 사용자별 애플리케이션 바인딩 정보
SubKey
키의 하위에 존재하는 키로 \를 사용해서 계급을 구분한다.
레지스트리 값 종류 목록
0 | REG_NONE | 종류 없음 |
1 | REG_SZ | 문자열 값 |
2 | REG_EXPAND_SZ | 확장할 수 있는 문자열 값. 환경 변수를 포함할 수 있음. |
3 | REG_BINARY | 이진 값 |
4 | REG_DWORD/REG_DWORD_LITTLE_ENDIAN | DWORD 값(32bit) 정수(리틀엔디언) |
5 | REG_DWORD_BIG_ENDIAN | DWORD 값(32bit) 정수(빅엔디언) |
6 | REG_LINK | 심볼 링크(유니코드) |
7 | REG_MULTI_SZ | 다중 문자열 값(고유한 문자열 배열) |
8 | REG_RESOURCE_LIST | 리소스 목록 |
9 | REG_FULL_RESOURCE_DESCRIPTOR | 리소스 서술자 |
10 | REG_RESOURCE_REQUIRMENTS_LIST | 리소스 요구 목록 |
11 | REG_QWORD/REG_QWORD_LITTLE_ENDIAN | QWORD 값(64bit 정수) |
HKCU 서브키
- AppEvents: 윈도우와 윈도우용 프로그램이 사용하는 각 이벤트에 대한 효과음 등을 사운드 관련 정의
- Console: 명령 프롬포트 설정 정보
- Control Panel: 환경 설정 정보
- Environment: 환경 변수 정의
- EUDC(End User Defined Characters): 사용자 정의 문자 편집기
- Identities: 윈도우 메일 계정 정보
- Keyboard Layout: 키보드 레이아웃 설정 정보
- Network: 네트워크 드라이브 매핑 정보 및 환경 설정 값
- Printers: 프린터 연결 정보
- Session Information: 한 세션에서 동작 중인 프로그램 중에서 작업표시줄에 보이는 프로그램 숫자
- Software: 현재 로그온한 사용자와 관련 있는 SW 목록
- Volatile Environment: 휘발성 환경 변수 정의
HKLM 서브키
- HARDWARE: 메모리 상에 저장되며(컴퓨터를 부팅해야만 알 수 있는 정보이거나 일회적으로 사용되는 정보) 어떤 HW가 장착되어 있는지 확인할 수 있을 뿐 세부적인 내용이 없음
- SAM: 사용자의 패스워드, 소속 그룹, 도메인 정보와 같은 로컬 계정 정보와 그룹 정보를 저장,
- SECURITY: 시스템 범위의 보안 정책과 사용자 권리 할당 정보를 저장
- SOFTWARE: 시스템 범위의 소프트웨어 목록과 환경 설정 정보(어플리케이션 이름, 경로, 라이센스 정보 등) 저장
- SYSTEM: 부팅될 때 필요한 시스템 범위의 환경 설정 정보 저장(로드할 디바이스 드라이버, 시작 서비스 목록 등)
HKU 서브키
- .DEFALUT: 시스템의 프로파일과 링크, 새로운 사용자가 로그온할 때 사용하는 설정 내용
- 로컬 서비스 계정 SID
- 네트워크 서비스 계정 SID
- 사용자의 SID:
- 사용자의 SID_Classes
레지스트리 포렌식
MRU: 가장 최근에 사용된 파일, 프로그램 등에 대한 정보 목록
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDig32\OpneSaveMRU
최근 open 되거나 save 된 파일 목록 기록
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDig32\LastVisitedMRU
최근 실행 프로그램의 파일명과 open/save한 파일이 존재하는 폴더 path 저장
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\rRunMRU
[시작]->[실행]을 선택하여 실행된 명령어의 목록 저장
HKCU\Software\Microsoft\SearchAssistant\ACMRU
최근 검색한 내용 저장
Autorun Location: windows 시스템이 시작되는 동안 프로그램을 실행시키기 위한 레지스트리 키
HKLM\Software\Microsoft\Windows\CurrentVersion\Run
windows 구동 시 실행되는 프로그램 목록(시작 프로그램)
HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce(EX)
windows 구동 시 1회 실행된 후 삭제되는 프로그램 목록
HKLM\Software\Microsoft\Windows\CurrentVersion\RunServices
windows 구동 시 실행되는 서비스 형태의 프로그램 목록
HKLM\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
windows 구동 시 1회 실행된 후 삭제되는 서비스 형태의 프로그램 목록
Device 정보
HKLM\SYSTEM\ControlSet00x\Enum\USBSTOR
USB 장치 정보 저장, HKLM\SYSTEM\MountedDevices를 참조하여 어떤 USB 장치가 어떤 드라이브에 mount 되어 있는지 확인 가능
HKLM\SYSTEM\MountedDevices
NTFS 파일 시스템에 의해 사용된 mount된 volume 목록 유지