Page info
- Page type : PFP Reference
- Knowledge location : 1. First Response >> Live System Forensics(win) >> Volatile Data Acquisition
- Other Reference : http://portable-forensics.com/document.html
- PFP & Manual downLoad : http://portable-forensics.com/download.html
일반적으로 디지털 포렌식에서는 컴퓨터가 켜져 있을 때, 보조기억장치에 해당하는 물리 메모리(RAM)에 로딩되어 있는 데이터를 가리켜 휘발성 데이터라 한다.
따라서, 디지털 포렌식에서 "휘발성 데이터의 조사는 곧, 물리 메모리 내용의 조사"라 보아도 무방하다.
휘발성 데이터의 포렌식적 의미
휘발성 데이터는 디지털 포렌식 조사에서 조사 당시의 시스템 상태를 정확하게 파악할 수 있게 하는데 특히 도움을 주는 데이터이다.
휘발성 데이터 수집 방법의 종류
휘발성 데이터를 수집하는 방법에는 시스템 내장 명령 혹은 시스템 API로 구현된 도구를 통하여 원하는 정보를 수집 하는 방법과 물리 메모리 전체의 내용을 수집하는 방법이 있다. 이때, 물리 메모리를 수집한 경우에는 메모리의 구조를 분석하여 원하는 정보를 채득하는 과정을 더해야 한다.
휘발성 데이터를 수집하는 방법에는 시스템 내장 명령 혹은 시스템 API로 구현된 도구를 통하여 원하는 정보를 수집 하는 방법과 물리 메모리 전체의 내용을 수집하는 방법이 있다. 이때, 물리 메모리를 수집한 경우에는 메모리의 구조를 분석하여 원하는 정보를 채득하는 과정을 더해야 한다.
본 페이지에서 다루고자 하는 주된 내용은 시스템 내장 명령을 이용한 방법이므로 물리 메모리 전체를 수집하는 방법에 대해서는 PFP Document에서 Physical Memory Acquisition의 내용을 참고하도록 하자.
휘발성 데이터는 디지털 포렌식 조사에서 조사 당시의 시스템 상태를 정확하게 파악할 수 있게 하는데 특히 도움을 주는 데이터이다.
조사 시점에 연결된 네트워크, 조사 시점에 동작 중인 프로세스를 비롯한 각종 사용중인 운영체제의 자원 등은 현장에서 휘발성 데이터를 수집하지 않고는 얻어낼 수 없는 귀한 정보들이다.
그 밖에도 암호화된 데이터도 사용 직전에는 복호화된 상태로 존재하게 되는 것처럼 물리 메모리에서는 평문(보호 해제된 혹은 복호화된) 상태의 데이터를 취득할 수 있는 가능성이 매우 높다.
본 포스트의 내용은 물리 메모리의 수집과 분석에 대한 것과는 별개이지만, 휘발성 데이터라는 큰 시각에서 유사한 내용이기에 짚어 보았다.
좀 더 넓은 관점에서 휘발성 데이터 수집의 의미는, 상위 포스트(초기 대응, 활성 시스템 포렌식)에서 확인 가능하다.
이어지는 내용에서는 시스템 명령을 통해 수집하는 휘발성 데이터의 목록과 관련 명령을 확인할 수 있다.
덧붙여, PFP를 통해서도 시스템 내장명령을 구동시킬 수 있지만, 가급적 관련 명령을 운영체제별로 모아 미리 스크립트, 배치 파일등을 구성하여 현장에서 활용하길 권장한다.
분석 대상(Target)
일괄 수집(Comprehensive collection)
Check List
|
System time
Network connection
Process List
Logon users
Loaded DLL List
Handles
Remote Open files
Open port and mapped process
Command history
Service List
NIC information
Routing table
Schedule
Clipboard
Network drive and shared folder
Netbios
Process dump
|
Related Tools
|
[Public] Live Acquisition(Volatile)
|
휘발성 데이터를 수집할 때에는 일반적으로 분석에 필요한 데이터를 한번에 일괄 수집할 수 있는 자동화 스크립트나 도구를 이용한다. 보통은 조사관이 상황에 알맞게 배치 파일을 만들어 사용하기도 하지만, 최근에는 잘 개발된 유.무료도구들이 많이 있으므로, 이를 활용하는 것도 권장할만 하다.
스스로 배치파일을 만들어 사용하고자 할 경우, 위 표의 체크 리스트의 내용은 가급적 반드시 수집하는 것이 조사에 도움이 되므로 고려하도록 하자.
체크리스트의 정보를 수집하는 명령은 본 페이지의 이어지는 내용에서 확인 가능하다.
주의할 점은, 배치파일 작성시 시스템 유틸리티는 가급적 대상 시스템의 것을 사용하지 않고,미리 준비해간 유틸리티를 사용하는 것이 바람직하다는 것이다.
조사 대상 시스템의 명령어(유틸리티)가 이미 공격자, 용의자에 의해 변조되었을 수 있기 때문이다.
Check List
|
Product name(OS name)
Owner
Organization Product ID BuildLab Install date System Root |
Related Tools
|
systeminfo
wmic os get installdate wmic os get currenttimezone wmic os get serialnumber |
시스템 기본 정보를 취득하여, 발생 가능한 취약점에 대한 정보 등을 확인하는데 사용한다. 또한, 시스템의 정보는, 케이스 구성의 가장 기본적인 정보이며 분석 대상이 되는 모든 데이터에 대한 분석 기준을 제공하기도 하므로, 반드시 수집하는 것이 옳다.
Check List
|
Current System Time
|
Related Tools
|
date /t
time /t |
향후 시간 관계 분석을 위하여 수집 당시의 시간을 시스템에서 채취해야 한다. 초기대응을 진행하는 시간도 물론 중요하지만, 당시 시스템에 설정된 시간을 알아야 추후 분석된 결과물의 시간관계를 정확하게 파악할 수 있으므로, 어떠한 사고 유형을 막론하고 가장 중요한 정보라 할 수 있다.
(매우 중요한 정보이므로, 수집 과정에서도 시간은 상황별로 틈틈히 기록할 수 있을만큼 기록하는 것이 추후, 조사에 도움이 된다.)
네트워크 연결 정보(Network connection)
Check List
|
Network connection information in same network
|
Related Tools
|
netstat -nao
|
현재 시스템과 연결된 네트워크 정보 수집하는 부분이며, 특히 침해사고 조사에 유용하다.
Check List
|
Live Process list
|
Related Tools
|
tlist -vcstm
tasklist -v (XP 이후 tlist 대신 tasklist 사용) pslist |
시스템에 동작 중인 프로세스 목록을 수집하는 것은 추후, 악의적인 프로세스 동작 여나 현재 실행되고 있는 프로그램 파악하여 증거로 사용하는데 필요하다.
Check List
|
Current logged on user
|
Related Tools
|
Net sessions
Psloggedon logonsessions |
시스템에 연결된 로컬 및 원격 사용자 목록 역시 사건에 따라 필요한 경우가 있다.
Check List
|
Loaded DLL List in target system(operation system)
|
Related Tools
|
listdlls %TEXT_PROCNAME%
listdlls %NUM_PID% |
프로세스가 사용하는 DLL의 목록은 비정상적으로 로드된 DLL이나, 당시 실제로 프로세스가 로딩하여 사용하고 있던 DLL의 정보를 알 수 있도록 하여 조사에 도움을 준다.
Check List
|
Any opened handle by specific process
|
Related Tools
|
handle -a -p %TEXT_PROCNAME%
handle -a -p %NUM_PID% |
프로세스가 열고 있는 운영체제 핸들을 확인하는 것은 프로세스의 정상 여부와 은닉된 기능을 파악하는데 용이하다. (자주 확인되는 목록은 아니지만, 수집해둘 경우 보조자료로 활용되는 경우가 간혹 있다)
Check List
|
Opened file by live process
|
Related Tools
|
net file(외부 사용자가 열고 있는 파일 목록)
openfiles psfile [\\RemoteComputer [-u Username [-p Password]]] [[Id | path] [-c]]
(원격에서 열린 파일 목록)
|
프로세스고 열고 있는 파일의 목록은 해당 프로세스에 의해 생성, 수정, 삭제가 가능한 파일의 목록을 확인하기 위해 필요하다.
Check List
|
Listening port by live process
|
Related Tools
|
netstat -anob
fport(Windows XP and lower only)
|
열린 포트 목록과 해당 포트를 열고 있는 프로세스의 목록은 프로세스가 열고 있는 포트 확인하여, 시스템에서 진행중인 악성 행위 및 관련 프로세스를 확인하는데 도움을 준다.
명령어 히스토리(Command history)
Check List
|
Transmitted command from current active terminal
|
Related Tools
|
doskey /history
|
명령 히스토리는 사용자가 쉘을 통해 실행한 명령의 내용을 저장하고 있으므로, 실행중인 터미널이 존재한다면, 반드시 수집하는 것이 옳다.
Check List
|
Installed all service in target system
|
Related Tools
|
psservice
net start sc qc %TEXT_service_name% |
서비스의 경우 설정에 따라 시스템 부팅 시 자동을 실행할 수 있고, SYSTEM권한(시스템 관리자 권한보다도 상위 권한)으로 실행되므로 취약점이 존재하는 시스템에서 악성코드가 즐겨 사용한다. 따라서 침해사고 분석 시에 반드시 수집할 필요가 있고, 일반적인 조사에서도 시스템 부팅시 실행되는 프로세스의 정보를 파악하기 위해 필요한 경우가 종종 있다.
네트워크 카드 정보(NIC information)
Check List
|
IP address
Mac address And other network interface card information |
Related Tools
|
Related tools
ipconfig /all promiscdetect |
네트워크 인터페이스 정보는 시스템 기본정보와 마찬가지로, 네트워크 통신을 위한 조사 대상 시스템의 정보를 알 수 있으므로, 조사의 기준이 되는 경우가 많다.
Check List
|
System Routing table list
|
Related Tools
|
netstat -r
|
내부 라우팅 테이블은 동일 네트워크에서의 맥 주소를 기반한 연결 상태를 나타내므로, 물리적인 네트워크 연결정보 등 네트워크 구성을 파악하기에 용이한 정보이다.
작업 스케쥴러(Schedule)
Check List
|
Scheduled command in target system
|
Related Tools
|
at
schtasks(in win8 and more over) |
작업 스케쥴러 목록에서는 시스템에서 자동으로 수행하도록 예약되어 있는 작업 목록 확인할 수 있으므로 침해사고 조사시 반드시 확인해 보아야 한다.
특히, 작업 스케쥴러를 통해 실행되는 프로세스는 SYSTEM권한으로 실행되므로 악성코드에 의해 악용되는 경우가 많다.
클립보드(Clipboard)
클립보드에 복사되어 있는 내용은 조사 현장에 신속 대응했을 경우 용의자의 마지막 행위를 파악하는데 도움이 된다.
네트워크 공유 목록(Network drive and shared folder)
분석 대상 시스템이 공유한 네트워크 드라이브와 공유 폴더를 통해 아래과 같은 정보의 확인이 가능하다.
넷 바이오스(Netbios)
NET BIOS 정보는 동일 네트워크 상의 다른 시스템이 공유한 네트워크 드라이브와 공유 폴더를 알려주기 때문에, 네트워크 공유 목록과 유사하게 파일의 유출이나 악성코드의 유입 가능성에 대해 따져볼 수 있는 근거가 될 수 있다.
프로세스 덤프(Process dump)
특정 프로세스의 메모리 영역은 다양한 부가 정보 포함한다. (해당 프로세스의 프로그램 코드, 사용중인, 복호화된 암호, 변수, DLL 목록 등)
Check List
|
Data in clipboard
|
Related Tools
|
clipbrd(XP 이하 버전)
pclip |
클립보드에 복사되어 있는 내용은 조사 현장에 신속 대응했을 경우 용의자의 마지막 행위를 파악하는데 도움이 된다.
Check List
|
Shared network folder and drive
|
Related Tools
|
net use
|
분석 대상 시스템이 공유한 네트워크 드라이브와 공유 폴더를 통해 아래과 같은 정보의 확인이 가능하다.
- 공유된 네트워크(다른 사용자)의 폴더나 드라이브 확인
- 네트워크 공유를 통한 취약점 발생 가능성 파악
- 정보 유출의 통로로 활용되었을 가능성 추측 등 다양하게 활용
Check List
|
Shared network folder and drive
|
Related Tools
|
nbtstat -c
|
NET BIOS 정보는 동일 네트워크 상의 다른 시스템이 공유한 네트워크 드라이브와 공유 폴더를 알려주기 때문에, 네트워크 공유 목록과 유사하게 파일의 유출이나 악성코드의 유입 가능성에 대해 따져볼 수 있는 근거가 될 수 있다.
Check List
|
process op code
process variable process dll list Process handle list |
Related Tools
|
userdump %NUM_PID% %FILE_DUMP_FILE_NAME%
|
특정 프로세스의 메모리 영역은 다양한 부가 정보 포함한다. (해당 프로세스의 프로그램 코드, 사용중인, 복호화된 암호, 변수, DLL 목록 등)
댓글 없음:
댓글 쓰기
질문이나 조언은 언제든 환영입니다.
악의적 댓글이나 무조건적인 비방은 삼가주세요.