[Windows] 윈도우 레지스트리 심화
레지스트리의 5가지 루트키와 주요 하이브 설명
레지스트리의 하이브 구조1
𝙸. 루트 키 (Root Key)
레지스트리는 최상위 경로에 위치한 5개의 루트 키를 중심으로 구조를 형성한다.
HKLM (HKEY_LOCAL_MACHINE)
Master Key
루트키 중 파일로 존재하며 디스크의 하이브 파일에서 직접 로드되는 원본 데이터이다.
시스템 전역 설정. 설치된 드라이버, 서비스, 하드웨어 정보 등
자체 하이브를 갖고 있으며, HKLM 하이브 중 일부는 관리자 계정으로도 접근하지 못하는 하이브가 있어 시스템 계정으로 접근 가능
HKU (HKEY_USERS)
Master Key
루트키 중 파일로 존재하며 디스크의 하이브 파일에서 직접 로드되는 원본 데이터이다.
시스템에 등록된 모든 사용자 계정의 설정. 계정 프로파일은 각 키들의 (기본값)에 링크되어 있다.
HKCU는 사실 이 중 현재 사용자 항목을 가리키는 링크이다.
HKCU (HKEY_CURRENT_USER)
Derived Key
현재 로그인한 사용자의 개인 설정으로 현재 로그온한 사용자의 정보를 서브키로 가진다.
이 서브키들은 HKU 루트키에서 가져온 것으로 아래 그림과 같이 HKU 서브키들 중 현재 로그인한 사용자의 SID (S1002) 계정의 서브키들이 HKCU의 서브키와 동일한 것을 볼 수 있다.
HKEY_CURRENT_USER2
HKCR (HKEY_CLASSES_ROOT)
Derived Key
파일 확장자 연결, COM 객체 등록 정보 등
해당 루트키는 하위 서브키로 HKLM\SOFTWARE\Classes와 HKU<SID>\Classes의 심볼릭 링크 정보를 가짐 (.btapp)
HKCC (HKEY_CURRENT_CONFIG)
Derived Key
현재 하드웨어 프로파일 정보로 이 키에 저장된 정보들은 디스크에 영구적으로 저장되지는 않고 시스템이 시작할 때 사용되는 하드웨어 프로파일을 저장
별도의 하이브를 갖고 있지 않으며 프로그램이 현재 활성화된 하드웨어를 알아보기 위해 이 루트키 참조한다.
𝙸𝙸. 마스터 키 (Master key), 파생 키 (Derived key)
Master Key와 Derived Key3
- Master Key
- Derived key의 원본을 말하며, Windows의 Configuration Manager가 각 하이브 파일을 읽어 구성하는 값들로 레지스트리 하이브로부터 직접 값을 읽어 구성된다.
- HKEY_LOCAL_MACHINE, HKEY_USERS가 여기에 해당
- Derived key
- Master key의 심볼릭 링크 값들을 말하며, 해당 값들은 파일로 존재하지 않으며 메모리에만 존재한다.
- HKET_CLASSES_ROOT, HKEY_CURRNET_USER, HKEY_CURRNET_CONFIG가 여기에 해당
E.g. HKEY_CURRENT_USER는 메모리상에서 사용자 SID에 해당하는 마스터 키 영역으로부터 파생되어 구성됩니다.
𝙸𝙸𝙸. 주요 하이브 목록
- HKLM\HARDWARE
- 해당 하이브는 휘발성 정보로 메모리에 존재한다.
- 모니터 포트 등 부팅 시 관련된 하드웨어 장치와 드라이버 맵핑 정보들을 저장
- HKLM\SAM
- 경로: %SystemRoot% \System32\Config\SAM
- 해당 하이브는 사용자의 로컬 계정 정보(로컬 계정의 식별자(RID), 암호화된 패스워드 해시, 사용자 프로필 등)와 그룹 정보를 갖고 있음 (리눅스 /etc/passwd와 비슷)
- 만약 조사하고자 하는 시스템이 도메인 컨트롤러라면 AD(Active Directory)에 도메인 계정과 그룹 정보를 가진다.
- 이 하이브는 일반 관리자 계정으로도 접근이 불가능하며, 시스템 계정으로만 접근 가능하다.
- HKLM\SECURITY
- 경로: %SystemRoot% \System32\Config\SECURITY
- 시스템 범위의 보안 정책과 사용자 권한 할당 정보, 현재 시스템의 패스워드 또는 마지막 로그온 사용자의 패스워드 등의 정보를 가진다.
- 이 하이브 또한 시스템 계정으로만 접근이 가능하다.
- HKLM\SYSTEM
- 경로: %SystemRoot% \System32\Config\SYSTEM
- 해당 하이브는 시스템이 부팅될 때의 환경 설정 정보를 가진다.
- 이런 정보들은 시스템이 정상적 부팅되었을 때 복사되며, 시스템이 비정상적으로 종료되었을 때 복사해 둔 정보를 바탕으로 부팅할 수 있는 옵션을 사용자에게 제공한다.
- 해당 하이브에서 중요한 것은 바로 CurrentControlSet 키
𝙸𝚅. 포렌식 관점에서의 하이브
정상적으로 윈도우가 동작하는 중에는 운영체제가 레지스트리 하이브 파일의 삭제, 수정, 복사를 엄격히 보호하기 때문에 일반적인 파일 복사나 응용 프로그램 API로는 SYSTEM, SAM 같은 하이브를 그대로 가져올 수 없다.
활성화 시스템에서의 하이브 파일을 획득하려면, 저장매체의 섹터에 직접 접근하여 데이터 콘텐츠를 읽어오는 전문 포렌식 도구(예: FTK Imager, X-Ways Forensics 등)를 사용해야한다.
