레지스트리 란?

레지스트리는 마이크로소프트 Windows 95/98 운영체제부터 계층형 레지스트리 데이터베이스 체제가 적용이 되었다. 부팅과정 부터 로그인, 서비스실행, 응용프로그램 실행, 사용자 행위 등 모든 활동에 레지스트리가 관여함. 또한 Windows XP/Vista/7 부터 이전보다 더 많은 레지스트리 데이터를 다루는데, 시스템, 어플리케이션, 사용자 계정 정보, 환경설정 정보 와 같은 Windows 운영체제를 구성하는 정보를 저장 하고있다.

레지스트리 정보는 모두 하이브(Hive) 파일로 관리가되며, 데이터의 생성/수정/삭제가 발생할때 실시간으로 데이터가 적용되어 확인해 볼 수 있다.

레지스트리 분석 방법에는 2가지가 있다.

  1. 온라인(On-line) 레지스트리 분석
  2. 오프라인(Off-line) 레지스트리 분석

온라인 레지스트리 분석은 활성 시스템에서의 레지스트리 분석을 의미한다. 활성 시스템 상태이기 때문에 레지스트리 하이브(Hive) 파일의 수집을 할 수가 없다. 그렇기 때문에 **RegEdit 프로그램(regedit.exe) 와 RegEdt32(regedt32.exe)**를 통해서 분석이 가능하다.

오프라인 레지스트리 분석은 비활성 시스템에서의 레지스트리 분석을 의미한다. 비활성 시스템 상태이기 때문에 포렌식 복제 드라이브 또는 디스크 이미지에서 레지스트리 하이브(Hive) 파일을 수집한뒤 분석을 진행하면 된다. 대부분의 레지스트리 포렌식은 대부분 오프라인(Off-line) 상태에서 분석이 진행이된다.

레지스트리 포렌식 분석의 필요성

레지스트리는 마이크로소프트 Windows 아티팩트 중에서 필수 적으로 분석 해야 하는 아티팩트이다. 운영체제 정보, 사용자 계정 정보, 시스템 정보, 응용프로그램 실행 흔적 등과 같은 여러 포렌식관점에 도움이 되는 정보가 많이 있기 때문에 분석이 필요하다.

또한 공격자가 공격유지에 사용하는 자동 실행 항목(Autoruns) 분석, 악성코드 탐지와 같은 침해사고와 관련된 분석과 대응도 진행 할 수 있다.

디스크의 시리얼 넘버와 고유ID 값이 레지스트리에 저장되기 때문에 저장 매체 사용 흔적도 분석을 진행할 수 있기 때문에 필수적으로 분석을 진행해야한다.

⇒ 사용자/시스템/저장매체 사용흔적 분석가능 → 추가적인 포렌식 분석 대상 선별

레지스트리 하이브 파일(Hive File)이란?

하이브 파일은 레지스트리 정보를 저장하고 있는 물리적인 파일이며, 키(Key) 값들을 논리적으로 구조로 저장한다. 하이브 파일은 커널에서 관리가 되기 때문에 활성 시스템 상태일때에는 일반적인 방법으로 접근이 불가능하다.

활성시스템의 레지스트리를 구성하는 하이브 파일 목록을 **하이브 셋(Hive Set)**이라고 한다. 하이브 셋에는 SAM, SECURITY, SYSTEM, SOFTWARE, Default, NTUSER.DAT, Usrclass.dat 등등 여러 하이브 파일이 들어가 있다.

레지스트리 하이브 파일의 경로는 아래와 같습니다.

SAM : C:\\Windows\\System32\\config\\SAM
SOFTWARE : C:\\Windows\\System32\\config\\SOFTWARE
SECURITY : C:\\Windows\\System32\\config\\SECURITY
SYSTEM : C:\\Windows\\System32\\config\\SYSTEM
NTUSER.DAT : C:\\USERS\\{USERNAME}\\NTUSER.DAT
UsrClass.dat : C:\\USERS\\{USERNAME}\\AppData\\Local\\Microsoft\\Windows\\UsrClass.dat