1. 레지스트리란?
윈도우 운영체제에서 하나 이상의 사용자, 응용 프로그램 및 하드웨어 장치에 맞게 시스템을 구성하는데 필요한 정보를 저장하는 중앙계층형 데이터베이스이다. 레지스트리를 분석하면 사용자의 프로필 , 설치된 응용프로그램 정보, 프로그램 실행 흔적, 무선네트워크 , USB 연결 흔적등이 남기 때문에 윈도우 포렌식 분약의 주요 아티팩트이다.
(1)레지스트리 구조
(2)Hive Key
-root key 라고도 하며 하이브 키는 HKEY로 시작한다.
-HKEY란 Hive key를 뜻하며 HKLM과 같이 HK로 줄여서 표현되기도 한다.
하이브 키 | 약자 | 설명 | 원본 |
HKEY_CLASSES_ROOT | HKCR | 파일 확장자, 응용 프로그램 간 바인딩 정보 등이 저장되어 있다. | HKU를 참조 |
HKEY_CURRENT_USER | HKCU | 현재 로그인한 사용자의 설정을 저장 | HKU를 참조 |
HKEY_LOCAL_MACHINE | HKLM | 사용자가 아닌 시스템 전체에 적용되는 하드웨어와 소프트웨어의 설정 데이터를 저장 | 실제 파일로 존재 |
HKEY_USER | HKU | 커퓨터에서 사용중인 프로파일 정보 및 프로파일 기본설정 등을 저장 | 실제 파일로 존재 |
HKEY_CURRENT_CONFIG | HKCC | 컴퓨터 실행 시 하드웨어 프로파일을 저장 | HKLM를 참조 |
HKEY_PERFOMANCE_DATA | HKPD | 런타임 성능 데이터 정보를 제공(윈API를 통해서 접근 가능) | 메모리 상에 존재 |
HKEY_DYN_DATA | HKDD | 플러그앤 플레이, 하드웨어 장치, 네트워크 성능 통계에 대한 정보를 제공 | 메모리 상에 존재 |
HKLM과 HKU를 Master key라고 하며 나머지 키를 Derived key라고 불린다.
*HKCU는 HKU의 심보릭 정보로 구현되어 있는데 이와같은 상황에서 HKU 보다 HKCU를 우선 참조한다.
레지스트리 추출 시 하이브 파일의 경로
레지스트리 분석을 이미지징된 디스크에서 진행할 경우에는 직접 레지스트리 하이브셋을 추출하여 분석을 진행해야한다.
HKLM과 HKU의 경우 해당 노드를 구성하는 정보는 파일로 윈도우 시스템 드라이브 내 존재한다.
windows NT 4.0 이후의 HKLM을 구성하는 하이브파일(SAM, SOFTWARE등)은 %systemroot%\System32\Config 폴더에 저장된다. HKU를 구성하는 하이브파일은 %systemroot%\System32\Config 와 각 계정의 %userprofile%과 %localappdata%\Microsoft\Windows 에 저장되어 있다.
Hive ? 레지스트리 정보를 저장하고 있는 물리적인 파일로 C:\WINDOWS\System32\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): 사용자별 설정 정보 HKEY_USER\(userSID)
- UsrClass.dat(C:\Users\사용자이름\AppData\Local\Microsoft\Windows\UsrClass.dat): 사용자별 애플리케이션 바인딩 정보 HKEY_USER\(user SID)_Classes
HKU의 하이브 파일은 분석대상의 홈디렉터리에 NTUSER.DAT 과 UsrClass.dat 를 수집해야하며 윈도우 시스템에서 사용중인 계정에 대해서도 수집하는 것이 좋다. SYSTEM 계정의 홈 디렉터리는 HKLM을 구성하는 하이브 파일과 같은 디렉터리 (%systemroot%\system32\config\)內 systemprofile 폴더이며 LOCAL SERVICE, NETWORK SERVICE 계정의 홈디렉터리는 %systemroot%\ServiceProfiles\ 에 위치해 있다.
*레지스트리의 하이브 파일이 저장되는 가장 정확한 위치는
HKLM\SYSTEM\CurrentControlSet\Control\Hivelist
(3)Key
-255자 이하의 길이를 가지며 수많은 서브키를 가지고 있다. 각 키는 값(Entry Name)을 가지고 있다.
-64비트 버전의 윈도우일 겨우 레지스트리는 32비트 , 64비트 키로 나누어져 있으며 대부분은 키 이름이 동이랗다.
-64비트 환경에서 32 비트의 키는 HKLM\Software\WOW6432Node의 서브키로 존재한다.
(4)Sub key
- 키의 하위에 존재하는 키이다.
- 예를 들어 HKLM\Software\Microsoft\windows는 "HKLM 키의 Software 서브키의 Microsoft 키의 Windows 라는 서브키를 가르킨다. " 라고 표현이 가능하다.
- 위와 같이 키, 서브키는 \를 사용하여 계급 수준을 구분한다.
레지스트리 값 종류 목록
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
(5)기타
Entry Name : name, value 라고도 표현한다. key에 존재하는 값이 들어가 있다.
Data Type : value를 표현하기 위한 자료형이다.
Value
- Entry Name의 값이다.
- value 64kb 이하여야 한다.
'Forensic > 윈도우포렌식' 카테고리의 다른 글
레지스트리 포렌식(2) (0) | 2021.11.09 |
---|