4-1) 윈도우 아티팩트1
Last updated
Last updated
"아티팩트"를 간단히 설명하면, 디지털 포렌식에서 시스템, 애플리케이션, 또는 사용자의 활동 흔적을 나타내는 데이터 조각이라고 할 수 있습니다. 이는 파일, 로그, 메타데이터 등 다양한 형태로 존재하며, 시스템 사용이나 사건의 분석에 중요한 증거로 사용됩니다. 이중에서 윈도우와 관련된 아티팩트를 윈도우 아티팩트라고 하며 시험에서 항상 출제되고 있는 기본 분석 문제 입니다.
포렌식 도구가 잘 분석해주기 때문에 꾸준히 반복해서 여러 시나리오 문제를 해결하다 보면 충분히 대응이 가능하실 것입니다.
윈도우 아티팩트의 경우 아래에 있는 것이 전부가 아닙니다. 여기서는 시험에 출제된 주요 아티팩트만 포함하였습니다. (기출문제가 나오면서 출제되는 유형이 있다면 추가하도록 하겠습니다.)
윈도우 레지스트리(Windows Registry)는 Windows 운영 체제에서 중요한 설정과 옵션을 저장하는 계층적 데이터베이스입니다. 레지스트리는 운영 체제, 애플리케이션, 사용자 계정, 하드웨어 장치 및 기타 시스템 구성 요소에 대한 정보를 포함하고 있으며, 이 정보를 통해 시스템의 동작을 제어합니다.
다만 여기서는 포렌식 도구를 이용하여 쉽게 살펴 볼 수 있는 부분만 살펴보도록 하겠습니다.
기본적으로 시험에서는 Autopsy 와 REGA를 이용하여 분석하는 것을 추천 드립니다. 여기서는 레지스트리 자체를 분석하는 것이 아닌, 레지스트리를 분석하면 문제해결을 할 수 있는 시험문제와 관련된 부분만 살펴보도록 하겠습니다.
EnCase에서는 Process에서 전처리를 통해 윈도우 관련 아티팩트 분석을 하게 됩니다. 트리창에서 우클릭 - Process - Process All - Create Custom 또는 상위 메뉴에서 Process 에서 옵션을 추가 설정할 수 있습니다.
Process 옵션에서 하위에 Modules의 아래 옵션을 선택하면 윈도우 아티팩트 관련 분석을 진행합니다. - System Info Parser - Windows Event Log Parser - Windows Artifact Parser
(참고로 옵션 선택이 원활하지 않을 경우 Overwrite evidence cache를 선택하여 진행합니다.)
[View] - [Processor Manager] 또는 우측 하단에 진행상황을 확인할 수 있습니다. 단순 아티팩트의 경우 분석 시간이 상대적으로 길지 않기 때문에 이 옵션만 선택한 경우 짧은 시간 내에 확인이 가능할 것 입니다. Completed 완료가 되면 트리창에서 우클릭 - Refresh 또는 상위 메뉴에서 [Refresh] 클릭합니다.
아티팩트 분석 결과는 View - Artifact 메뉴에서 확인 가능합니다.
윈도우 레지스트리 전용 분석 도구 입니다. 매우 유용하기에 함께 활용하시는 것을 추천합니다.
먼저 REGA 사용을 위해서는 윈도우 레지스트리 파일을 모두 추출하여야 합니다. 위에 Autopsy 에서도 경로를 알려주듯이 해당 경로를 가보도록 하겠습니다. 윈도우가 설치된 NTFS 파일시스템에서 Windows/System32/config 폴더로 가보도록 하겠습니다. SAM, SECURITY, SOFTWARE, SYSTEM 파일을 추출합니다. (레지스트리 하이브 파일)
SAM (Security Account Manager): 이 하이브는 사용자 계정과 보안 정보를 저장합니다. 여기에는 사용자 계정 이름, 암호 해시, 보안 그룹 정보 등이 포함됩니다.
SECURITY: 이 하이브는 로컬 보안 정책, 사용자 권한, 감사 정책 등의 보안 관련 정보를 저장합니다.
SOFTWARE: 이 하이브는 컴퓨터에 설치된 모든 소프트웨어와 관련된 정보를 저장합니다. 여기에는 설치된 프로그램, 각종 설정, 라이선스 정보 등이 포함됩니다.
SYSTEM: 이 하이브는 컴퓨터의 하드웨어 설정, 드라이버 정보, 시스템 부팅 순서 등의 시스템 관련 설정을 저장합니다.
사용자 정보가 있는 경로에서도 레지스트리 파일을 추출하여야 합니다. NTUSER.DAT 관련 파일을 추출합니다. - NTUSER.DAT : 해당 사용자의 바탕 화면 설정, 시작 메뉴 구성, 설치된 프로그램의 사용자별 설정, 최근에 열었던 파일 목록, 그리고 기타 개인 설정 등이 포함
*분석이미지에는 Users 폴더에 하나의 폴더만 있지만, 실제 윈도우의 경우 All Users, Default, Default User, DefaultAppPool, Public 등의 기본적으로 생기는 폴더도 있습니다. 다만 실제로 사용하지 않는 사용자일 가능성이 높기에 해당 폴더내의 개인 파일들이 없다면 분석할 필요성이 적어집니다.
[FTK Imager에서도 같은 경로의 파일을 추출할 수 있으며, 숨긴파일을 보이게 하면 확인 가능합니다.]
추출한 파일들을 하나의 폴더에 저장한 뒤 REGA에서 열어보도록 하겠습니다. 파일 - 레지스트리 분석 선택 후 표준 시간대를 설정합니다.
이후 사건정보를 간단히 입력 후 레지스트리 파일 입력에서 폴더 선택 후 추출한 파일들이 있는 폴더를 선택합니다. 정상적으로 불러온다면 아래와 같이 파일명과 HIVE 타입이 표시되며, 검증 완료가 체크됩니다. 이 후 분석시작을 눌러봅시다.
로딩이 진행됩니다.
레지스트리 내용을 살펴볼 수 있는 도구이지만 실제 시험에서는 도구 상자의 기능을 충분히 잘 사용하는 것 만으로도 충분할 것입니다.
시험에서는 EnCase와 REGA를 모두 사용하거나, EnCase에서 찾을 수 없는 문제를 해결할 때 REGA의 도움을 받는 것을 추천합니다.
레지스트리가 저장한 값의 경우 시간 값 같은 경우 변환되어 우리가 확인할 수 있는 값으로 저장되지 않고 Hex나 기타 Timestamp 형식로 저장될 수 있습니다. 따라서 시간값을 변환해주는 프로그램을 함께 이용하는 것이 좋습니다.
시험장에서도 제공하는 도구 중 하나인 DCODE를 활용하여 시간값을 변환해볼 수 있으니 다운로드 하여 설치해두도록 합시다.
(공식 사이트가 잘 안되거나 같은 버전으로 연습을 원할 경우 다운로드 하여 활용)
시험에서 자주 출제되는 유형으로 윈도우 시스템 관련 문제가 다양하게 출제됩니다. - 윈도우 제품 이름(Product Name) : Windows 10 Pro (예) - 장치이름(Machine Name / Computer Name): DESKTOP-MJ5P95F (예) - 윈도우 설치시간, 종료시간 - 윈도우에 설치된 프로그램명 (시나리오 분석 시 활용) - 사용자 계정 정보
[EnCase]
기본적인 시스템 정보를 묻는 문제의 경우 대부분 포렌식 도구가 분석해주는 결과창에서 어렵지 않게 찾을 수 있습니다. (윈도우 제품 이름, 장치이름, 주요 사용자) EnCase에서는 View - Artifact 의 [System Info Parser - Artifacts] 에서 시스템 관련 분석 내역을 확인할 수 있습니다. 다만 문제에서 요구하는 부분을 찾을 수 없는 경우 REGA 등에서 검색 등을 통해 찾을 수 있습니다.
Report 탭에서 상세 내역을 확인할 수 있으며 시간정보의 경우 꼭 표준 한국시 적용 여부를 확인하여야 합니다.
[REGA]
REGA에서도 동일하게 확인이 가능하며 윈도우 설치 정보에서 제품명, 윈도우 설치 시간, 주요 사용자 등도 확인이 가능합니다.
사용자 계정 정보에서 주로 사용했던 계정 정보 및 계정 생성시간, 로그인 시간등도 확인이 가능합니다.
다만 이 부분에서 찾을 수 없는 경우 추가 검색을 통해서 찾을 수 있습니다. 장치이름(Machine Name / Computer Name)의 경우 "computername" 키워드 검색에서 찾을 수 있습니다.
최근 종료시간의 경우 "ShutdownTime" 키워드 검색, windows 에서 찾을 수 있습니다. 하단의 해당 레지스트리가 저장된 경로도 확인이 됩니다.
ShutdownTime의 경우 HEX 값으로 저장되어 있어 시간값을 변환하여 확인해봅시다. 먼저 값데이터를 더블 클릭 후 복사하여 봅시다.
DCODE를 실행 한 뒤 Format를 Hex (Little-Endian) 선택 후 값 데이터를 복사한 값을 붙여넣기 한 뒤 Decode 하면 좌측에 결과가 출력 됩니다. 이중에서 +9:00 (한국시)로 된 시간 정보를 활용하는 하는 것을 추천합니다. 물론 +9시 하지 않고 UTC, UTC+0 값으로 하고 기준시를 표시 하여도 좋지만, 가능하면 답안 작성 및 보고서 작성시 시간 관련 정보는 모두 통일한 기준시를 표시하여야 하는 것을 추천합니다.
보통 시험에서는 USB 접속 흔적 등을 물어보는 문제도 다수 출제되고 있습니다. - USB 제조사(벤더사) - 제품명 - 시리얼번호
- 할당한 디스크 드라이브명 - USB 최초 접근시간, 마지막 접근시간
[EnCase]
먼저 USB 접근 흔적을 살펴보면 다양한 정보들이 있을 수 있습니다. 실제 이러한 정보도 보면 레지스트리 분석을 통해서 표시가 되는 것입니다.
[참고] HKEY_LOCAL_MACHIN/SYSTEM/ControlSet001/Enum/USBSTOR USB 대용량 저장 장치에 대한 정보를 저장합니다. 이 경로는 USB 장치의 저장소 관련 정보를 담고 있으며, 주로 드라이브 레터와 연관된 장치의 정보를 포함합니다. USBSTOR\Disk&Ven_ <VendorName>&Prod_<ProductName>&Rev_<SerialNumber> 참고로 EnCase에서도 이 정보를 이용하여 표시를 해주고 있습니다.
추가로 USB 최초 접근시간과 마지막 접근시간을 한번 살펴보겠습니다. 먼저 최초 접근 시간의 경우 특정 파일을 분석해야 합니다. windows/INF 폴더를 보면 "setupapi.dev.log" 파일이 저장되어 있습니다. (실제로는 많은 파일들 안에 하나가 저장되어 있을 것입니다.) 해당 파일을 추출하거나 또는 아래 그림과 같이 [Transcript]를 통해 열어봅시다. 찾기(Ctrl + F)를 통해 "USBSTOR"을 검색 합니다. 여기서 가장 처음 Section Start 시간이 사실상 해당 USB가 연결된 시간입니다.
또한 Find Next(F3) 반복적으로 검색하다가 마지막에 발견되는 것이 있으면 해당 부분이 사실상 마지막 접근시간에 해당 합니다. 다만 이번 분석에서는 한번만 나오기 때문에 사실상 한번 연결 후 재연결하지 않은 것으로 보입니다.
* Section start는 특정 작업이나 이벤트의 시작을 나타냅니다. 여기서는 특정 장치(예: USB 드라이브)가 연결되었을 때 그 장치의 드라이버 설치가 시작된 시점을 의미
시험에 필수로 알아야 할 것은 아니나 한번 살펴보고 가겠습니다. 일반적으로 레지스트리 최종 수정시간 정보가 저장됩니다. - HKEY_LOCAL_MACHIN/SYSTEM/ControlSet001/Enum/USB - HKEY_LOCAL_MACHIN/SYSTEM/ControlSet001/Enum/USBSTOR 하위에 시리얼넘버 하위에 Properties 하위 {83da6326-97a6-4088-9453-a1923f573b29}를 보면 일반적으로 0066 에 hex 값으로 시간정보가 저장됩니다. EnCase 내에서도 레지스트리 분석이 가능합니다. Windows \ System32 \ config 폴더를 보면 SYSTEM 레지스트리 하이브 파일이 있는데 선택 후 우클릭 - Entries - View File Structure를 선택하여 내부 구조 파악이 가능합니다.
구조 분석이 완료되면 SYSTEM를 클릭하면 레지스트리 내부 구조를 확인할 수 있습니다.
[참고] {83da6326-97a6-4088-9453-a1923f573b29} 속성 ID
0064: "First Install Date" - 장치가 처음 설치된 날짜를 나타냅니다.
0065: "Last Arrival Date" - 장치가 마지막으로 시스템에 연결된 날짜를 나타냅니다.
0066: "Last Removal Date" - 장치가 마지막으로 시스템에서 제거된 날짜를 나타냅니다.
0067: "Disconnect Time" - USB 장치가 마지막으로 시스템에서 분리된 시간을 나타냅니다.
(참고 - 일부러 알아야 할 필요는 없음) 추가로 usb 관련 주요 윈도우 이벤트 로그에서도 살펴보겠습니다. (아래 로그가 전체는 아니고 일부에 해당하기에 참고로만 살펴보겠습니다.) Windows/System32/winevt/logs/Microsoft-Windows-Kernel-PnP%4Configuration.evtx 파일을 추출하거나 열어봅시다.
여러가지가 표시되는데 Event ID과 Time Generated 를 참고하여 가장 마지막 시간대에 USB 해제 관련 이력을 확인할 수 있습니다. - 400 : 장치구성 시작 - 410 : 장치구성 성공 - 430 : 장치제거
EnCase에서는 검색이나 내역 확인이 불편한 감이 있어서 이벤트 로그 파일을 추출하여 더 보기 쉽게 살펴보겠습니다. Artifacts 에서 바로 추출할 경우 확장자가 정확하지 않을 수 있어 실제 파일로 이동하겠습니다. 먼저 추출한 이벤트 로그 파일 선택 후 우클릭 - Go to File 선택 하면 해당 파일 위치로 이동합니다.
파일을 우클릭 - Entries - Copy Files를 통해 추출 해보겠습니다.
추출한 파일을 실행 한 뒤 [현재 로그 필터링] 선택 후 430을 검색해보도록 하겠습니다.
*Microsoft-Windows-Kernel-PnP 로그에서 이벤트 ID 400, 410, 430은 Plug and Play(PnP) 관련 이벤트를 기록하는 중요한 이벤트입니다. 이들은 일반적으로 하드웨어 장치가 시스템에 연결되거나 제거될 때 발생하며, USB 장치와 같은 외부 장치의 연결 및 제거와 관련된 정보를 제공하고 있습니다. 이렇게 USB 흔적의 경우 종합적으로 살펴봐야 정확히 파악을 할 수 있습니다. 1. 최초 연결한 경우 setupapi.dev.log를 살펴봅니다. 2. 마지막으로 연결 정보는 레지스트리와 윈도우 이벤트 로그를 함께 활용하여 확인합니다.
[REGA]
REGA에서 도구상자에서 저장 장치 부분을 살펴보면 USB 흔적도 발견되기도 합니다. 그러나 발견이 되지 않을 경우 직접 Autopsy에서 표시해주는 경로로 가서 확인할 필요가 있습니다. HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Enum/USBSTOR
이 부분을 참고하여 제작사(Ven), 제품명(Prod), 시리얼넘버 등을 찾을 수 있습니다. 실제 시험에서 시리얼 넘버는 Autopsy와 비교하여 확인하는 것을 추천합니다.
HKEY_LOCAL_MACHIN/SYSTEM/MountedDevices 부분에서 드라이브(C, D, E, F 등..)의 값의 Hex값을 열어보면 연결된 정보를 확인할 수 있습니다. 이번 분석 건의 경우 F드라이브에 USB 가 연결된 흔적을 발견할 수 있습니다.
Autospy 에서 확인한 것과 같이 레지스트리에서 USB 연결 해제시간을 확인할 수 있습니다. - HKEY_LOCAL_MACHIN/SYSTEM/ControlSet001/Enum/USB - HKEY_LOCAL_MACHIN/SYSTEM/ControlSet001/Enum/USBSTOR 하위에 시리얼넘버 하위에 Properties 하위 {83da6326-97a6-4088-9453-a1923f573b29}를 보면 일반적으로 0066 에 hex 값으로 시간정보가 저장되며, REGA 에서는 아래 키 속성에서 이를 해석해서 시간을 표현해 줍니다.
조금 더 상세히 살펴보면 HKEY_LOCAL_HACHINE/SYSTEM/ControlSet001/Enum/USB 이 경로는 USB 장치의 기본 정보를 저장하며 VID_<VendorID>&PID_<ProductID> 를 저장하며 VendorID에 제조사 별로 고유 값을 가집니다.
그런데 이상하죠? 연결시간 해제시간이 동일합니다. 이러한 현상은 사실 다양한 이유로 이렇게 남을 수 있습니다. 예) usb 연결 후 해제하지 않고 컴퓨터를 종료 또는 해제하지 않고 분석용 이미지를 획득 등등..
실제 시험에서는 이렇게 주요 아티팩트에서 나온 값을 단순 해석하는 것 만으로도 충분합니다.
네트워크 관련 문제 또한 레지스트리 분석을 통해 확인이 가능합니다. 자주 출제된 문제는 아니나, 최근에 출제된 문제 유형으로 해당 윈도우에 할당된 IP 정보를 확인할 수 있습니다. - 할당 방식 및 할당된 IP - 네트워크 카드 제조사 정보 등
네트워크 관련은 Artifacts 에서 System Info Parser 에서 Network - Interfaces에서 살펴볼 수 있습니다.
일반적으로 DHCP IP Address 가 실제로 사용된 IP일 확률이 높습니다. 시험에서는 인터페이스명, IP 정보 등을 물어 볼 수 있습니다.
그렇다면, DHCP라는 것을 알아야 하는데 DHCP(Dynamic Host Configuration Protocol)는 컴퓨터 네트워크에서 IP 주소 및 기타 네트워크 구성 요소(예: 서브넷 마스크, 기본 게이트웨이, DNS 서버 등)를 자동으로 할당하고 관리하는 프로토콜입니다. 한마디로 우리가 공유기를 사용하거나 KT, SK 등 인터넷을 사용할 때 우리가 일일이 IP를 지정하는 것이 아닌 자동으로 저장해주는 방식을 활용하는 것입니다.(대부분 사용) 여기서 할당된 IP를 활용하여 인터넷 등을 사용하게 됩니다. 따라서 시험에서 할당된 IP를 물어볼 경우 DHCP 의 IP일 경우가 있고 또는 수동으로 IP를 할당할 수도 있을 것입니다. 수동으로 IP를 할당한 경우 단순히 IP Address로 저장될 수 있습니다.
(참고 - 일부러 알아야 할 필요는 없음) Windows \ System32 \ config 경로의 System 레지스트리 하이브 파일을 살펴보면 SYSTEM\ControlSet001\Services\Tcpip\Parameters\Interfaces 이 경로에서 IP 할당 정보등을 확인할 수 있습니다.
네트워크 카드(인터페이스) 정보의 경우 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4d36e972-e325-11ce-bfc1-08002be10318} 경로를 살펴봐야 하는데 경로를 외우기는 매우 어렵습니다.
(참고 - 일부러 알아야 할 필요는 없음) 네트워크 카드(인터페이스) 정보의 경우 SYSTEM\CurrentControlSet\Control\Class\{4d36e972-e325-11ce-bfc1-08002be10318} 경로를 살펴봐야 하는데 경로를 외우기는 매우 어렵습니다. 그나마 쉽게 찾기 위해서 Autopsy 에서 SYSTEM 하이브 레지스트리 파일에서 ROOT\CurrentControlSet\Control\Class 경로를 가서 아래 그림과 같이 {4d36e972~ 로 시작하는 부분을 살펴보면 우측에 Class에서 "Net" 를 찾아 봅시다. 이제 하위 드라이브에서 0000,0001 폴더 들을 살펴보면 네트워크 Adaptor를 제외하고 네트워크 카드 정보를 확인할 수 있습니다. - DriverDesc : 네트워크 어댑터의 이름 - ProviderName : 네트워크 카드의 제조사 > 네트워크 드라이버를 Microsoft에서 만든 버전으로 설치한 경우 Microsoft로 나오게 됩니다.
[REGA]
REGA 에서는 TCP/IP 정보에서 IP주소, 네트워크 장치명 등을 확인할 수 있는 기능을 제공하고 있으나 혹시나 정상적으로 보이지 않을 경우 Autopsy와 동일한 방법으로 확인을 하여야 합니다. - 네트워크 카드 정보: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class
해당 경로를 직접 가서 살펴보면 Autopsy와 동일하게 내용 확인이 가능합니다. - IP 정보 : ControlSet001\Services\Tcpip\Parameters\Interfaces
만약 dhcp로 자동할당 된 경우 키워드 검색 "dhcpip" 로 검색할 경우 빠르게 찾을 수 있습니다.
수동으로 IP를 할당할 경우 "ipaddress" 를 키워드 검색해서 값 이름에 IPAddress 부분에서 수동으로 입력한 IP를 확인할 수 있습니다.
추가적으로 정리를 해보면 시험에서 네트워크 관련 정보를 묻는 문제에서 IP를 묻는 경우 1. 자동 할당한 경우 DHCP IP 를 찾습니다. EnableDHCP는 1 2. DHCP IP가 없을 경우 IP Address 를 찾습니다. EnableDHCP 는 0 > 수동 할당 된 경우 *시험 문제 답안 작성 시 활용하도록 합니다.
실제 시험에서는 레지스트리 분석이라는 이름으로 문제를 출제하는 것이 아닌 시스템 정보나, USB 흔적, 네트워크 정보 등 필요한 정보를 물어보면 수험자가 해당 부분을 찾아서 답변을 해야 합니다. 이 때 많은 윈도우 관련 주요 정보가 레지스트리에 많이 저장되고, 포렌식 도구는 이를 해석하여 보기 편하게 해주는 것입니다.
위의 실습한 부분에서 경로 같은 것은 절대로 일부러 외우거나 할 필요는 없습니다. 이번에는 한번 연습을 통해서 실습을 해보고 계속해서 문제를 풀다 보면 자연스럽게 익혀지는 부분이기 때문에 일부러 시간 내서 외우시지 마세요! 그리고 포렌식 도구가 바로 보여주는 부분은 바로바로 활용하도록 합시다.
알고 있으면 좋은 부분 ( 대충 한번 정리만 해보겠습니다.) 1. 레지스트리 분석용 하이브 파일 Windows/System32/config - SAM, SECURITY, SOFTWARE, SYSTEM - Uers/{사용자명}/NTUSER.DAT~ 2. 필수는 아니나 알고 있으면 좋은 usb 관련 부분 - HKEY_LOCAL_MACHIN/SYSTEM/ControlSet001/Enum/USBSTOR - KEY_LOCAL_HACHINE/SYSTEM/ControlSet001/Enum/USB >> 저장매체/Properties 하위 {83da6326-97a6-4088-9453-a1923f573b29} 0066 키 찾기 - Windows/System32/winevt/logs/Microsoft-Windows-Kernel-PnP%4Configuration.evtx 이벤트 로그 (400, 410, 430) - USB 최종 연결 정보 확인 용 - SYSTEM/ControlSet001/Enum/USBSTOR SYSTEM/MountedDevices (usb 연결 드라이브 확인용) 3. 필수는 아니나 알고 있으면 좋은 네트워크 관련 부분 - HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\ {4d36e972-e325-11ce-bfc1-08002be10318} > (네트워크 카드 관련 정보) - ControlSet001\Services\Tcpip\Parameters\Interfaces (0000, 0001 ~~ -> IP 관련 정보)
개발 연구실 (DFRC) 및 공식 사이트 > (공식 사이트가 잘 안되거나 같은 버전으로 연습을 원할 경우 다운로드 하여 활용)
공식 사이트 : 다운로드 경로 : 다운로드 후 설치해두도록 합시다.