Post

[Windows] 윈도우 레지스트리 심화

레지스트리의 5가지 루트키와 주요 하이브 설명

[Windows] 윈도우 레지스트리 심화

레지스트리의 하이브 구조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_and_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 등)를 사용해야한다.









Reference



  1. 출처: https://ccnaguru.com/windows-registry-hives-in-digital-forensics/ ↩︎

  2. 출처: https://yum-history.tistory.com/265 ↩︎

  3. 출처: https://www.forensic-artifacts.com/registry-forensics/sub01 ↩︎

This post is licensed under CC BY 4.0 by the author.