Computer Science%/Forensic

Windows Registry

ch4rli3kop 2018. 1. 17. 18:25
반응형

 

윈도우 레지스트리란?

쉽게 말해서 윈도우에서 시스템을 구성하는데 사용하는 데이터베이스라고 할 수 있습니다. 각 각의 사용자, 응용 프로그램 및 하드웨어에 대한 정보 등 Windows에서 지속적으로 참조하는 설정 정보들이 담겨있어, 사용자가 윈도우를 사용한다는 것은 사용자는 레지스트리와 상호작용을 한다고 볼 수 있습니다.

사용자와의 지속적인 상호작용을 하는 만큼 레지스트리는 다양한 많은 정보들을 남기고 있습니다. 이를 통해 조사관들은 수집한 자료들로부터 결정적 증거를 확보할 수 있겠습니다.



먼저 레지스트리는 5개 혹은 6개의 루트 키들로부터 이루어지는 수 많은 서브키들로 이루어져있습니다. 제가 사용하고 있는 윈도우 10 환경 기준으로 설명한다면, 다음과 같습니다.

HKEY_USERS(HKU) : 로컬 상에 존재하는 모든 사용자들의 프로필, 계정 설정, 환경 설정 등이 포함됩니다. 

HKEY_CURRENT_USER(HKCU) : HKEY_USERS의 하위 키입니다. 현재 로그온되어 있는 사용자에 대한 프로필뿐만 아니라 폴더, 제어판 설정과 같은 환경 설정 등이 포함됩니다.  

HKEY_LOCAL_MACHINE(HKLM) : 시스템 전체에 해당하는 컴퓨터 구성 정보가 포함됩니다. 하드웨어와 소프트웨어의 설정 정보 등이 여기에 해당합니다.

HKEY_CLASSES_ROOT(HKCR) : HKEY_LOCAL_MACHINE\SOFTWARE\Classes 의 하위 키입니다. 파일 확장자명과 응용프로그램의 연결정보가 들어있어, 윈도우 탐색기는 이 정보들을 이용하여 파일을 열 때 올바른 프로그램이 열리도록 합니다. 이 키의 일부 데이터는 C:\USERS\사용자명\AppData\Local\Microsoft\Windows\UsrClass.dat 에서 발견할 수 있습니다.

HKEY_CURRENT_CONFIG : HKEY_LOCAL_MACHINE 의 하위 키입니다. 시스템 시작 시 로컬 컴퓨터에서 사용하는 하드웨어 프로필에 대한 정보가 포함됩니다. 저장된 정보는 디스크에 영구적으로 남지 않습니다.

HKEY_PERFORMANCE_DATA : 런타임 성능 데이터 정보를 제공합니다. 레지스트리 편집기에 보이지는 않지만, Windows API의 레지스트리 명령어를 통해 열람이 가능합니다.

보시다시피, 6개의 루트 키 중의 3개는, REG_LINK 라는 심볼 링크의 이름을 지정하는 데이터 형식을 이용해서 다른 루트 키들의 내부에 존재하는 서브 키를 가리키는 링크 정보입니다. 운영체제는 먼저 이 링크정보 루트 키들을 이용해서 레지스트리를 검색하고, 결과 값을 찾지 못했을 경우 기본 루트 키들에서 다시 한 번 검색을 합니다. 예를 들어, HKCR 에서 원하는 정보를 찾지 못했을 경우, HKLM 에서 다시 한 번 검색을 합니다. 또 만약 권한 문제때문에 HKLM 에 먼저 정보를 기록하지 못할 경우, 설정 값을 하위 키인 HKCU 에 저장합니다. 

결국, 루트 키들 중 중요한 키들은 HKEY_LOCAL_MACHINE(HKLM)과 HKEY_USERS(HKU)라는 것입니다.



레지스트리의 위치

이런 하위 루트 키로 얽히고 설킨 이 구조를 하이브(HIVE) 라고 합니다. 이러한 하이브에 저장된 모든 정보는 하드디스크 내에 몇 몇 파일로 나뉘어 저장됩니다. 나뉘어 저장된 하이브 파일들의 위치는 다음과 같은 레지스트리 키에서 찾을 수 있습니다.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\hivelist


[Hive 경로]


레지스트리가 하드디스크에 저장되는 파일(하이브 파일)의 위치 경로를 알았습니다. 중요한 HKLM과 HKU를 살펴보도록 하겠습니다.

먼저, 보이는 HKLM의 서브 키들인 SAM, SECURITY, SOFTWARE, SYSTEM 들은 다음과 같은 경로에서 발견할 수 있는데요. 이 경로에서 HKU의 DEFAULT 키 역시 찾아볼 수 있습니다.

C:\Windows\system32\config


[Hive 확인]


HKEY_USERS 의 정보는 각 각의 사용자들로 나뉘어 저장됩니다. 경로는 다음과 같습니다.

C:\USERS\사용자\NTUSER.DAT

반복하여 말씀드리지만 HKU는 로컬 사용자 프로필과 관련된 정보들을 저장하고 있는 레지스트리 키 입니다. 하지만 대부분들의 정보는 사용자 별로 사용되기 때문에, 이 하이브 파일 역시 사용자 별로 관리하기 쉽게 NTUSER.DAT 파일을 나누어 관리하고 있습니다.



백업

윈도우는 이러한 레지스트리를 사용하면서도 만약에 상황에 대비하여 백업기능도 갖추고 있습니다. 윈도우의 백업기능은 이 레지스트리를 백업해두는 기능과도 같다고 할 수 있습니다. 기존의 여러 설정들을 백업해두어 문제가 생겼을 시, 백업해둔 설정들을 이용하여 문제를 해결할 수 있습니다.



레지스트리에 대한 더 자세한 설명은 아래 사이트에서 참고하실 수 있겠습니다.

https://support.microsoft.com/ko-kr/help/256986/windows-registry-information-for-advanced-users




참고 : 디지털 포렌식 개론(이상진 지음, 이룬)
         디지털 포렌식(노명선 백명훈 방효근 공저, 고시계사)
         Windows Registry Forensics, second edition(Harlan Carvey 지음)
         http://egloos.zum.com/sisan/v/1368081


반응형

'Computer Science% > Forensic' 카테고리의 다른 글

Firefox PE Format 분석  (2) 2020.05.09
PE 헤더 구조  (0) 2018.04.06
.DS_STORE 파일이란  (1) 2017.10.25
파일 시그니처  (0) 2017.10.17
인코딩 디코딩 사이트  (0) 2017.10.14