이번 게시글에서는 윈도우 포렌식 SKS! 스터디를 진행하면서 이해를 위해 진행해본 실습들을 담아볼 것이다.
Windows Artifacts는 Windows의 사용자가 수행하는 활동들 (시스템에 의해 생성된 증거들)의 정보를 보유하고 있는 하나의 개체이다.
Windows Artifacts는 생성증거로서 자동으로 프로세스, 시스템에서 생성되는 데이터이며, 자동으로 생성된 데이터를 직접 추적해 사용자의 행위들을 분석하는 포렌식을 진행해볼 수 있다. 다양한 아티팩트의 분석은 디지털 포렌식에서 매우 중요한 역할을 하고있고, 사용자 행동 추적, 시스템 오류 분석과 같은 목적으로 사용할 수 있다.
이번 글에서는 윈도운 시스템 아티팩트의 종류를 알아보고, 분석할 수 있는 포렌식 툴들을 소개해볼 예정이다.
Windows 레지스트리는 시스템 설정, 응용 프로그램 설정을 저장하는 계층 데이터베이스라고 볼 수 있다.
윈도우 시스템의 거의 대부분의 정보가 담겨 있기 때문에 레지스트리 분석은 매우 중요한 요소이다.
레지스트리 항목은 실행창에 regedit.exe 입력을 통해 확인할 수 있다.
레지스트리 편집기 창에 들어가면 주요 레지스트리 아티팩트를 확인할 수 있다.
레지스트리 편집기는 여러 개의 Key로 구성되어 있다.
Key는 Key와 Sub Key로 이루어져 있으며 계층형 구조로 나타난 사용자의 정보를 조회할 수 있다.
Key나 Sub Key를 누르면 해당 Value, Type, Data를 확인할 수 있다.
HKEY_CLASSES_ROOT (HKCR) - 파일 확장자 정보, COM 객체 등록 정보
HKEY_CURRENT_USER (HKCU) - 현재 사용자 계정에 대한 설정 정보
HKEY_LOCAL_MACHINE (HKLM) - 시스템 수준의 설정을 포함하는 정보
HKEY_USERS (HKU) - 시스템 모든 사용자, 그룹에 대한 profile 정보
HKEY_CURRENT_CONFIG (HKCC) - 시스템 시작 시 사용되는 하드웨어 profile 정보
======그밖의 주요 레지스트리 아티팩트======
RecentDocs - 최근에 열어본 문서의 목록
Run 키 - 시스템 시작 시 자동으로 실행되는 프로그램 목록
HKEY ...로 시작하는 총 5개의 Key들을 Root Key라고 칭하고 있다.
HKEY_LOCAL_MACHINE은 포렌식 분석에 많이 사용되는 하위 키 중 하나이다.
다음은 레지스트리에서 볼 수 있는 정보의 계층 위치를 담은 내용이다.
==============기본 시스템 정보==============
[Timezone]
HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation
[Systeminfo]
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName
[Windows Ver]
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
[User Account]
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
[시스템 환경 변수]
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
1. Header (16 bytes)
Signature (4 bytes): 항상 4C 00 00 00 (LNK 파일 식별자)
CLSID (16 bytes): 항상 00021401-0000-0000-C000-000000000046 (고유 식별자)
2. LinkFlags (4 bytes)
링크 파일의 특성을 나타내는 플래그 비트
3. FileAttributes (4 bytes)
링크된 대상 파일/디렉터리의 속성 (예: 읽기 전용, 숨김 등)
4. Timestamps (24 bytes)
CreationTime (8 bytes): 생성 시간
AccessTime (8 bytes): 마지막 접근 시간
WriteTime (8 bytes): 마지막 수정 시간
5. FileSize (4 bytes)
링크된 파일의 크기
6. IconIndex (4 bytes)
링크된 파일의 아이콘 인덱스
7. ShowCommand (4 bytes)
창의 초기 상태 (예: 최대화, 최소화 등)
8. HotKey (2 bytes)
링크된 파일을 실행하기 위한 핫키
9. Reserved (10 bytes)
예약된 공간