보안/디지털 포렌식

[10장]윈도우 시스템 조사

haerim9.9 2025. 2. 3. 03:20

이 글은 아래의 책 5장을 읽고 공부 목적으로 작성됨.

이상진, 「디지털 포렌식 개론」, 이룬, 2015


목차

더보기

1. 윈도우 레지스트리

2. 윈도우 아티팩트

3. 웹 브라우저


1. 윈도우 레지스트리

1) 레지스트리 소개

레지스트리(Registry) : 윈도우 운영체제와 응용프로그램 구동에 필요한 정보를 저장하는 계층형 데이터베이스

  • 부팅 과정/로그인/서비스 실행/응용프로그램 실행/사용자 행위 등 거의 모든 활동에 관여
  • 윈도우 시스템 분석의 필수 요소로, 운영체제 정보/사용자 계정 정보/시스템 정보/응용프로그램 실행 흔적/최근 접근 문서/자동 실행 항목/저장 매체 사용 흔적 등의 다양한 정보 획득 가능

 

2) 하이브(Hive) 파일

레지스트리는 계층형 구조로 구성되어 있다. 최상위 폴더에 해당되는 부분은 루트키(Root Key), 그 하위의 폴더에 해당되는 부분은 서브키(SubKey)라 말한다. 각 키에는 파일에 해당하는 값(value)이 있다. 이러한 구성을 하이브(hive)라 말한다.

 

루트키 : HKEY_CLASSES_ROOT(HKCR), HKEY_CURRENT_USER(HKCU), HKEY_LOCAL_MACHINE(HKLM), HKEY_USERS(HKU), HKEY_CURRENT_CONFIG(HKCC)

 

레지스트리는 여러 개의 물리적인 파일로 구성되어 있으며, 이를 하이브 파일이라 한다. 하이브 파일은 활성 시스템의 커널에서 관리하고 있기 때문에 파일 시스템을 직접 해석하거나 장치 드라이버와 직접적인 통신을 해야 파일을 획득할 수 있다.

 

대표적 하이브 파일 : SAM, SECURITY, SYSTEM, SOFTWARE, NTUSER.DAT, USERCLASS.DAT, BCD, COMPONENTS 등

이러한 하이브 파일이 하나의 세트(Set)를 구성하여 윈도우 레지스트리가 구성된다.

 

하이브 파일 경로

레지스트리 경로 하이브 파일 저장 위치
HKEY_LOCAL_MACHINE\BCD00000000 {Boot Partition}\Boot\BCD
HKEY_LOCAL_MACHINE\COMPONENTS %SystemRoot%\System32\Config\COMPONENTS
HKEY_LOCAL_MACHINE\SYSTEM %SystemRoot%\System32\Config\SYSTEM
HKEY_LOCAL_MACHINE\SAM %SystemRoot%\System32\Config\SAM
HKEY_LOCAL_MACHINE\SECURITY %SystemRoot%\System32\Config\SECURITY
HKEY_LOCAL_MACHINE\SOFTWARE %SystemRoot%\System32\Config\SOFTWARE
HKEY_LOCAL_MACHINE\HARDWARE Volatile
HKEY_USERS\<SID of local service account> %SystemRoot%\ServiceProfiles\LocalService\NTUSER.DAT
HKEY_USERS\ID of network service account> %SystemRoot%\ServiceProfiles\NetworkService\NTUSER.DAT
HKEY_USERS\<SID of username> %UserProfile%\NTUSER.DAT
HKEY_USERS\<SID of username>_Classes %UserProfile%\AppData\Local\Microsoft\Windows\Usrclass.dat
HKEY_USERS\.DEFAULT %SystemRoot%\System32\Config\DEFAULT

 

 

3) 레지스트리 포렌식 분석

 

  시스템 설정 정보

  • 시스템 기본 정보 : "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion"의 경로에 존재한다.
    ProductName - 운영체제 이름 / Owner - 사용자 이름 / Organization - 조직 이름 / ProductId - 운영체제 식별자 / BuildLab(Ex) - 운영체제 세부 버전 / InstallDate - 운영체제 설치 날짜(유닉스 시간 형식) / SystemRoot - 운영체제 설치 루트 폴더
  • 컴퓨터 이름 : 시스템 등록 정보에 등록된 컴퓨터 이름을 의미, "HKLM\SYSTEM\ControlSet00X\Control\ComputerName\ComputerName"경로에 존재한다.
  • 시스템 마지막 종료 시간 : "HKLM\SYSTEM\ControlSet00x\Control\Windows"경로의 ShutdownTime에 존재한다.

② 표준 시간대 설정과 날짜/시간 변경 정보 : "HKLM\SYSTEM\ControlSet00X\Control\TimeZoneInformation"경로에 존재한다. 해당 경로에는 표준 시간대, 썸머 타임 관련 정보가 존재한다.

 

③ 자동 실행 목록 및 시작 프로그램

  • 자동 실행 목록 : 현재 시스템에 설정된 자동 실행 항목은 Microsoft에서 공개한 Autoruns 프로그램을 사용하여 확인할 수 있다.
  • AppInit_DLLs : GUI 응용프로그램이 실행될 때, user32.dll에 의해 자동으로 로드되는 DLL이다. 일반적으로 비어있지만 값이 존재할 경우, 악성코드일 확률이 높다.
    "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows"에 있는 AppInit_DLLs에서 확인할 수 있다.
  • Command Processor\AutoRun : 명령 프롬프트를 실행할 때, 자동 시작되는 응용프로그램에 대한 정보를 확인할 수 있다.
    "HKLM(HKCU)\SOFTWARE\Microsoft\CommandProcessor"키의 AutoRun에 저장되어 있다.

④ 네트워크 정보

네트워크 인터페이스가 접속한 정보를 확인하면, 해당 시스템에서 접속한 IP 주소/서브넷 마스크/게이트웨이 등을 알 수 있다.

네트워크 인터페이스 정보는 "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards"와 "HKLM\SYSTEM\ControlSet00X\Services\Tcpip\Parameters\Interfaces\{GUID}" 키에 기록된다. cmd 창에서 "ipconfig\all" 명령어를 사용해서 확인할 수도 있다.

 

⑤ Recent Docs - 열람 파일 목록

아래에는 최근에 열었던 파일이 존재한다.

  • Windows 2000, XP : My Recent Documents
  • Windows 7/8 : Recent Items

"HKU\{USER}\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs"같은 경로에 최근 열어본 파일에 대한 정보가 존재한다. MRUListEx의 키 값을 이용하면 최근 열어본 파일의 순서를 확인할 수 있다.

 

⑥ 외부 시스템 연결 정보

  • 원격 데스크탑 연결 정보 : "원격 데스크탑 연결"을 수행한 이전 컴퓨터의 IP가 존재한다. MRU#에서 숫자가 작을수록 최근에 수행한 원격 데스크탑 연결 IP이다.
  • 네트워크 드라이브 연결 정보 : "HKU\{USER]\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Map Network Drive MRU"경로에 존재한다. MRUList를 통해 드라이브 연결 순서를 확인할 수 있다.
  • 마운트 포인트 : "HKU\{USER}\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2\"에는 시스템에 연결된 고유 식별 정보가 하위키로 포함되어 있다.
    이러한 식별정보는 "HKLM\SYSTEM\MountedDevices"의 하위 값 내용과 연결하여 추가적인 정보를 획득할 수 있다. 값의 데이터 4바이트가 같은 내용으로 시작하면, 각각의 값들은 동일한 디스크의 연결에 의해 생성된 것으로 볼 수 있다.

⑦ ShellBag : 특정 폴더를 열람했을 때 해당 폴더와 관련된 정보가 기록되는 키

  • Windows XP : "HKCU\SOFTWARE\Microsoft\Windows\Shell\", "HKCU\SOFTWARE\Microsoft\Windows\ShellNoRoam"
  • Windows 7/8 : "HKCU\SOFTWARE\Classes\Local Settings\Software\Microsoft\Windows\Shell\"

ShellBag 정보는 'UsrClass' 하이브 파일에 저장된다. 최초 열람 후 폴더를 닫았을 때 해당 폴더의 시간 정보(생성, 접근, 수정 시간)이 저장된다.

시간 정보는 폴더에 변경사항이 없는 경우, 최초 열람 후 변경되지 않는다. 변경사항이 있는 경우, 작업 완료 후 폴더를 닫았을 때의 시간으로 기록된다.

ShellBag를 구조를 해석하면 열람한 폴더의 전체 경로를 확인할 수 있다. ShellBag를 분석하는 프로그램으로는 sbag가 있다.

 

 

4) 저장장치 연결 정보

 

① 저장장치 연결 정보 : 마운트된 저장장치에 대한 정보는 "HKLM\SYSTEM\MountedDevices"경로에 존재한다. 데이터를 통해 드라이브에 마운트된 장치의 형식을 알 수 있다.

 

② USB 저장장치 연결 정보

  • USB 저장장치 연결 절차 : USB가 연결되면 버스 드라이버가 PnP관리자에게 장치의 고유 식별 번호(device descriptor)를 사용하여 연결을 알림 -> 연결을 받은 PnP관리자는 받은 정보를 기반으로 Device Class ID 설정, 적절한 드라이버를 검색함 -> 장치 드라이버 설치 과정은 SetupAPI 로그 파일에 저장됨
    드라이버가 없는 경우, PnP관리자는 펌웨어로부터 드라이버를 전달받아 로드하고 레지스트리에 기록한다. "HKLM\SYSTEM\ControlSet00x\Enum\USBSTOR\{DID, device class identifier}"와 "HKLM\SYSTEM\ControlSet00x\DeviceClasses\{GUID}"가 경로이다.
  • SetupAPI Log
    -Windows XP : "%SystemRoot%\Setupapi.log"
    -Windows Vista/7/8 : "%SystemRoot%\inf\Setupapi.dev.log"
    Device Class ID, Unique Instance ID, Section의 시작 시간이 기록된다.
  • 저장 매체 정보 : "HKLM\SYSTEM\ControlSet00x\Enum\USBSTOR"경로에 기록된다. Device Class ID 형식을 통해 제조사, 제품명, 버전 정보를 확인할 수 있다. 시리얼 번호는 Device Class ID의 하위 키의 Unique Instance ID 형식을 통해 확인한다.
  • 연결 시각
    -외장형 저장장치의 최초 연결 시각 : SetupAPI 로그 파일에서 확인할 수 있다.
    -외장형 저장장치의 마지막 연결 시각 : "HKU\{USER}\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoint2"의 하위키와 "HKLM\SYSTEM\ControlSetxxx\Enum\USB\VID_####&PID_####"의 마지막 수정시간을 통해 확인할 수 있다.

③ CD / DVD 제작 및 실행 흔적 : "HKU\Software\Microsoft\Windows\CurrentVersion\Explorer\CD Burning\StagingInfo"에 임시 굽기 폴더에 대한 정보가 기록된다. 시각에 대한 정보는 "%USERPROFILE%\AppData\Local\Microsoft\Windows\Burn\Burn#"의 마지막 수정 시각으로 확인할 수 있다.

 

2. 윈도우 아티팩트

1) 이벤트 로그

응용프로그램 이벤트 : 응용 프로그램이나 기타 프로그램의 동작에 대한 이벤트 저장

보안 이벤트 : 유효하거나 유효하지 않은 로그온 시도, 파일의 생성/열람/삭제에 관한 이벤트를 기록

시스템 이벤트 : 시스템 부팅 등 윈도우 시스템의 구성요소와 관련된 오류를 기록

 

이벤트 로그 경로 : "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\<이벤트 로그 종류>"

이벤트 로그 분석 도구 : Event Log Explorer

 

이벤트 헤더 정보

정보 설명
날짜 이벤트가 발생한 날짜
시간 이벤트가 발생한 시간
사용자 이벤트를 발생시킨 사용자의 이름
컴퓨터 이벤트가 발생한 컴퓨터의 이름
원본 이벤트를 기록한 소프트웨어 (이벤트가 일어난 프로세스)
이벤트ID 해당 원본의 특정 이벤트 유형을 식별하는 번호
범주 이벤트의 원본에 의한 이벤트 분류로 주로 보안 로그에서 사용됨
종류 이벤트 삼각도의 분류로 오류, 정보, 경고, 감사 성공, 감사 실패로 분류

 

이벤트 정보의 종류

이벤트 종류 설명
오류 데이터 손실이나 기능 상실 같은 중대한 문제로 시스템을 시작하는 동안 서비스가 로드되지 못했을 경우와 같은 이벤트 기록
경고 시스템에 문제가 발생할 수 있는 문제를 미리 알려 주는 이벤트로 디스크 공간이 부족할 때와 같은 이벤트 기록
정보 응용 프로그램, 드라이버 또는 서비스가 성공적으로 수행되었음을 설명하는 이벤트
감사성공 사용자가 시스템에 로그온 성공했을 경우와 같이 보안 이벤트가 성공했음을 나타냄
감사실패 사용자가 시스템에 로그온 실패했을 경우와 같이 보안 이벤트가 실패했음을 나타냄

 

이벤트 로그 확장자 별 생성 위치

확장자 파일 생성 위치
evt %SYSTEM32%\Config\<이벤트 로그 종류>.evt
evtx %SYSTEM32%\WINEVT\LOGS\<이벤트 로그 종류>.evt

 

시스템 시작과 종료를 유추할 수 있는 아이디

종류 시스템 시작 시스템 종료
evt 시스템 로그 6005(이벤트 시작) 6006(이벤트 종료)
보안 로그 528(로그온 성공) 538(로그오프 성공)
evtx 보안 로그 4642(로그온 성공) 4634(로그오프 성공)

 

 

2) Pre/Superfetch

프리패치(Prefetch) : 프로그램 실행 속도를 향상시키기 위해 윈도우에서 제공하는 기능

128개의 파일이 생성되는 것으로 제한하고 있으며 생성 경로는 "%WINDIR%\PREFETCH\"이다.

 

프리페치는 윈도우 부팅 시와 어플리케이션 실행 시에 생성된다.

  • 부트 프리페치 : 프리페쳐에서 필요 없는 파일을 모아 "NTOSBOOT-BOODFAAD.PF"파일을 생성
  • 어플리케이션 프리페치 : 프리페치 파일이 없는 어플리케이션의 동작을 모니터링하고, 어플리케이션이 메모리에 올린 실행 코드의 일부나 전부를 파일로 저장

 

프리페치 파일이 오랫동안 사용되지 않을 경우, 페이지 아웃되어 프리페치 기능을 제대로 수행하지 못한다. 이를 개선하기 위해 윈도우 Vista부터 슈퍼페치(SuperFetch)를 적용한다.

슈퍼페치 : 프리페치와 유사하며, 사용자가 해당 프로그램을 얼마나 자주/언제/얼마동안 사용하는지 사용 패턴을 기록한다.

 

프리페치와 슈퍼페치 분석 도구 : WFA(Windows File Analyzer)

 

 

3) 바로가기 파일

바로가기 파일 : 링크, 숏컷 파일이라고도 한다. 윈도우즈 시스템 설치, 응용 프로그램 설치, 문서 파일 열람 시 사용된다. 사용자가 직접 생성할 수도 있다.

해당 파일에는 바로가기의 대상 객체 파일에 대한 경로, 볼륨 명, 시간 정보 등이 저장된다.

 

바로가기 파일 생성 위치

구분 Windows XP Windows 7/8
바탕화면 %SystemDrive%:\Documents and Settings\[User]\Desktop %SystemDrive%:\Users\[User]\Desktop
최근문서 %SystemDrive%:\Documents and Settings\[User]\Recent %SystemDrive%:\Users\[User]\Recent
시작메뉴 %SystemDrive%:\Documents and Settings\[User]\Start Menu\Programs %SystemDrive%:\Users\[User]\AppData\Roaming\Microsoft\Windows\Start Menu\Programs
빠른실행 %SystemDrive%:\Documents and Settings\[User]\Application Data\Microsoft\Internet explorer\Quick Launch %SystemDrive%:\Users\[User]\ AppData\Roaming\Microsoft\Internet Explorer\Quick Launch

 

3. 웹 브라우저

1) 웹 브라우저 소개

웹 브라우저는 인터넷 사용 내역을 웹 브라우저 로그 파일에 기록한다. 로그 파일에는 다양한 정보가 저장되며, 중요한 정보는 Cache / History / Cookie / Download / Session 정보이다.

 

 

2) 웹 브라우저 사용흔적 분석

 

① Cache 정보 : 웹 사이트 접속 시, 방문 사이트로부터 자동으로 웹 페이지 데이터를 다운 받는 것을 말한다.

  • Cache 데이터
  • Cache 인덱스 정보 : 다운로드 URL, 다운로드 시간, Cache 데이터 파일명, Cache 데이터 크기, Cache 데이터 위치 등의 정보
    -접속시간 : 다운로드 시간을 통해 알 수 있다.
    -접속한 사이트 : 다운로드 URL의 호스트 정보를 통해 확인할 수 있다.
    -사용자 행위 유추 : 다운로드 URL의 특정 키워드를 통해 사용자 행위를 유추할 수 있다.

② History 정보 : 사용자가 방문한 웹 사이트 접속 내역으로, 방문사이트 URL/방문시간/방문 횟수/웹 페이지 제목 등의 정보를 포함한다.

 

③ Cookie 정보 : 호스트/경로/쿠키/수정시간/쿠키 만료시간/변수 명/변수 값등이 있다.

쿠키는 웹 사이트가 사용자 별, 개인화된 서비스를 제공하기 위해 사용자의 컴퓨터에 저장하는 데이터를 말한다.

  • 접속한 사이트 : 호스트를 통해서 알 수 있다.
  • 사용한 서비스 종료 : 경로를 통해서 유추할 수 있다.
  • 마지막 접속시간 : 쿠키 수정시간을 통해 알 수 있다.
  • 로그인 아이디 등의 중요 정보 : 변수와 변수 값을 통해 획득할 수 있다.

④ Download List 정보 : 사용자가 의도적으로 선택해서 자신의 컴퓨터에 내려 받은 파일에 대한 정보이다. 다운로드 파일의 로컬 저장경로, 다운로드 소스 URL, 다운로드 파일크기, 다운로드 시간, 다운로드 성공 여부 등의 정보가 포함된다.

  • 접속한 사이트 : 다운로드 소스 URL을 통해서 알 수 있다.
  • 다운로드 시간 : 다운로드 시간을 통해 알 수 있다.
  • 파일 내용 : 다운로드 파일의 로컬 저장경로를 통해 확인할 수 있다. 만약 해당 경로에 파일이 존재하지 않는다면 다운로드 소스 URL을 통해 다시 다운해 확인할 수 있다.

⑤ Session 정보 : 이전 세션을 복구하기 위해 사용자 컴퓨터에 저장되는 정보를 말한다. URL, 세션 시작시간, 세션 종료시간, 제목 등이 있다.