1. 레지스트리 개요
- 레지스트리(Registry)
- 윈도우에서 행해지는 대부분의 작업을 위해 중요한 정보 값을 저장하고 참고하는 공간
- 하나의 파일 시스템처럼 체계적으로 모든 정보를 하나의 저장소에 저장하여 관리
- 운영체제 내에서 작동하는 모든 하드웨어, 소프트웨어, 사용자 정보 및 시스템 구성 요소 등을 담고 있는 데이터베이스(계층 구조)
- 생성 배경
- 초창기 윈도우 : 초기화 파일(.ini)로 각 프로그램이나 운영체제의 설정 정보를 개별적으로 저장 → 시스템 구성이 복잡/많은 애플리케이션 → 시스템 및 사용자에게 심한 부하 → 레지스트리 도입
- Registry Editor Utility
- Hive 파일(바이너리)는 접근이 불가하기 때문에 레지스트리 편집기로 맵핑해서 보여줌
- 레지스트리 편집기
- regedit.exe
- 주로 검색 기능
- 윈도우 NT 3.x부터 존재
- 시스템 전역 설정을 수정하기 위해서는 관리자 권한으로 실행
- 16bit 전용이었으나, 현재는 regedt32.exe과 통합되어 사용
- regedt32.exe
- 구성 편집 기능
- 윈도우 NT 3.x 부터 존재
- XP부터 regedit.exe를 실행하는 작은 프로그램으로 통합
- regedit.exe
- 그룹정책 편집기
- gpedit.msc (group policy editor)
- 로컬 그룹 정책 편집기(Windows Pro와 Enterprise에는 기본 설치)
- 여러 사용자와 컴퓨터의 환경을 쉽게 구성도구이나 편집기 사용 시, 레지스트리에 영향
- gpedit.msc (group policy editor)
2. 레지스트리 구조
2.1. 키(Key)
- 컴퓨터 밑에 각각의 트리 구조로 구성 (계층적 구조 방식)
- 키들은 각각 여러 개의 하위 키(Subkey)를 보유
- 각 하위 키들은 개별적으로 또 하위 키나 값(Value)을 보유
2.2. 값(Value)
- 값의 이름과 함께 값과 관련된 데이터(Data)가 값 저장
- 운영체제나 애플리케이션, 서비스 등이 동작할 때 사용하는 환경 설정 값
- 값에 저장되어 있는 데이터는 여러 가지 데이터 타입
2.3. 루트 키(Root key)
- 루트(root)에 위치한 레지스트리 키
- 하드웨어 디바이스 정보, 로컬 시스템의 하이브 파일의 값 등
- 부팅할 때, 커널이 참고해서 메모리 공간에 생성
- 운영체제가 시작하여 종료될 때까지 실행되는 모든 프로세스에 공유되거나 맵핑(mapping)되어 이용
2.3.1. HKEY_CLASSES_ROOT
- 파일 연결, OLE 객체 클래스 ID와 같은 등록된 애플리케이션의 정보를 저장
- ex. 윈도우 탐색기에서 파일 이름을 더블 클릭 시, 어떤 프로그램이 실행될지 / 우측 버튼을 눌렀을 때 어떤 메뉴 창 목록이 뜰지 결정
2.3.2. HKEY_USERS
- 컴퓨터에서 사용 중인 각 사용자의 프로파일에 대한 정보를 저장
- ex. 사용자의 폴더, 화면 색상 및 제어판 설정 등이 저장
- 하위 키에 따른 구분
- “.DEFAULT” 키
- 사용자 계정에 기본적으로 필요한 환경설정 값이 저장 → DEFAULT 하이브 파일에 값이 저장
- “[User SID]” 키
- 각 사용자 계정의 고유한 환경설정 값이 저장 → 각 사용자 계정 폴더의 NTUSER.DAT에 값이 저장
- “.DEFAULT” 키
- 구조
HKU 하위키 | 하이브 파일 위치 |
HKU\<LocalServices SID> | %SystemRoot%\ServiceProfiles\LocalService\\NTUSER.DAT |
HKU\<NetworkServices SID> | %SystemRoot%\ServiceProfiles\NetworkService\NTUSER.DAT |
HKU\<User SID> | %UserProfile%\NTUSER.DAT |
HKU\<User SID>_Classes | %UserProfile%\AppData\Local\Microsoft\Windows\UsrClass.dat |
HKU\.DEFAULT | %SystemRoot%\System32\Config\DEFAULT |
2.3.3. HKEY_CURRENT_USER
- 현재 시스템에 로그인한 사용자의 프로파일을 담고 있는 레지스트리 키
- 메모리에만 존재하는 루트 키
- 보충 필요
2.3.4. HKEY_LOCAL_MACHINE
- 시스템의 하드웨어, 소프트웨어 구성 정보나 기타 환경 설정 등 운영체제의 모든 사용자가 사용하는 설정을 저장
- 하위 키 중 “HARDWARE” 는 현재 시스템이 부팅하면서 생성한 하드웨어 데이터베이스 및 모든 장치 드라이버 정보 등의 값 및 휘발성 데이터도 저장
- 구조
-
-
-
- BCD00000000 – Boot Configuration Data 관리
- HARDWARE – 시스템 하드웨어 디스크립션과 모든 하드웨어의 장치 드라이버 매핑 정보 (Volatile Hive)
- SAM – 로컬 계정 정보와 그룹 정보 (Hide)
- SECURITY – 시스템 보안 정책과 권한 할당 정보 (Hide)
- SOFTWARE – 소프트웨어 정보
- SYSTEM – 시스템 부팅에 필요한 시스템 전역 구성 정보
-
-
2.3.5. HKEY_CURRENT_CONFIG
- 컴퓨터에 설치되어 있는 하드웨어에 관한 현재 설정 정보를 저장
- 이 레지스트리 키에 저장된 정보는 디스크에 하이브로 영구적으로 저장되는 게 아니라 부팅 시에 동적으로 생성루트 키(Root Key)
3. 레지스트리 하이브(Hive)
- 레지스트리는 하이브(Hive)라는 데이터 파일에 저장
- 하이브는 운영체제가 시작될 때 로드되며, 레지스트리 정보 저장 및 복원 역할 수행
- 주요 하이브 파일 경로
레지스트리 하이브 | 지원 파일 |
HKEY_CURRENT_CONFIG | System, System.alt, System.log, System.sav |
HKEY_CURRENT_USER | Ntuser.dat, Ntuser.dat.log |
HKEY_LOCAL_MACHINE\SAM | Sam, Sam.log, Sam.sav |
HKEY_LOCAL_MACHINE\Security | Security, Security.log, Security.sav |
HKEY_LOCAL_MACHINE\Software | Software, Software.log, Software.sav |
HKEY_LOCAL_MACHINE\System | System, System.alt, System.log, System.sav |
HKEY_USERS\.DEFAULT | Default, Default.log, Default.sav |
- 파일 목록
하이브 파일 | 해당 레지스트리 | 설명 |
SAM | HKEY_LOCAL_MACHINE\SAM | 계정 이름, 패스워드 같은 윈도우 운영체제 로그인에 필요한 계정 정보가 저장되어 있는 파일 |
SECURITY | HKEY_LOCAL_MACHINE\SECURITY | 감사 정책이나 권한 정보 같은 운영체제의 보안 설정 정보가 저장되어 있는 파일 |
SOFTWARE | HKEY_LOCAL_MACHINE\SOFTWARE | 운영체제에 설치되어 있는 애플리케이션 정보, 파일 확장자, 개발사 정보 등 소프트웨어와 관련된 정보가 저장되어 있는 파일 |
SYSTEM | HKEY_LOCAL_MACHINE\SYSTEM | 윈도우 운영체제 설치 및 설정 값, 하드웨어 드라이버 및 구성 정보 등 시스템 설정 정보가 저장되어 있는 파일 |
DEFAULT | HKEY_USERS.DEFAULT | 사용자 계정에 기본적으로 필요한 환경설정 값이 저장되어 있는 파일 |
NTUSER.DAT | HKEY_USERS | 각 사용자 계정의 환경설정 값이 저장되어 있는 파일 |
UserClass.dat | HKEY_USERS | NTUSER.DAT의 값 외 추가적으로 각 사용자 계정의 환경설정 값이 저장되어 있는 파일 |
4. 결론
- 레지스트리는 윈도우 운영체제의 핵심 구성 요소로, 시스템 및 사용자 환경을 저장하는 중요한 역할 수행
- 포렌식 분석에서는 레지스트리를 활용해 시스템 설정, 사용자 활동, 악성코드 흔적 등을 조사 가능
- 다음 포스트에서는 레지스트리 데이터 수집과 하이브 파일 분석을 다룰 예정
📎 참고 자료
'Forensic > Registry' 카테고리의 다른 글
[Registry Forensic] 악성코드 탐지를 위한 레지스트리 활용 방법 (0) | 2025.02.24 |
---|---|
[Registry Forensic] 시스템 및 사용자 활동 분석 (0) | 2025.02.23 |
[Registry Forensic] 레지스트리 데이터 수집과 하이브 파일 분석 (0) | 2025.02.17 |