[Memory] Memory Forensics
기초 개념
메모리 포렌식이란 컴퓨터 하드웨어 중 주기억장치(메모리)에 존재하는 휘발성 데이터 덤프 분석을 말한다.
메모리 포렌식은 프로세스(악성코드, 서비스 등)의 행위를 탐지하고 네트워크 연결 정보 및 사용자 행위 획득 등이 가능하다. 또한 메모리 포렌식을 하면 시스템이 활성화 되어 있는 동안 시스템 런타임 상태의 중요 정보를 포함하고 있는 RAM을 분석할 수 있으며 언패킹, 루트킷 탐지, 리버스 엔지니어링 등에 도움이 된다. 하지만 휘발성 데이터로 전원 차단 시 데이터가 사라지고 온전한 데이터 수집이 어렵다는 단점도 있다.
※ 메모리 덤프: RAM 물리메모리에 저장되어 있는 데이터를 가져와서 파일로 생성.
메모리 포렌식 덤프 방식
하드웨어를 이용한 덤프
하드웨어를 이용한 덤프 방식은 악성 프로그램 영향을 받지않고 무결성 최소화라는 장점이 있다. 하지만 안정성에 대한 검증이 필요하다.
- PCI 장치를 이용한 덤프(Tribble), FireWire(IEEE 1394)를 이용한 덤프(FireWire Attack) 등
소프트웨어를 이용한 덤프
추가 장치가 필요없지만 커널 루트킷에 취약하며 OS 제약을 받는다. 또한 수집하는 메모리 쪽에 흔적이 남는다.
- DD, Win(32/63) DD & DumpIt, Memorize, FD(FastDump)Pro, Winen, HBGary 등
크래시 덤프
시스템 유지에 치명적인 영향을 주는 문제가 발생 시 문제의 원인을 찾기 위해 윈도우가 스스로 만드는 메모리 덤프 BSoD(Blue Screen of Death) 발생 시 생성되며 물리메모리에 가장 최소한의 영향을 미치는 방법이다. WinDbg, Kernel Memory Space Analyzer 등을 통해 디버깅 가능하다.
절전모드 덤프
절전 모드로 진입 시 메모리를 압축하여 C:\hiberfil.sys 파일로 저장하며 부팅 과정에서 NTLDR에 의해 메모리로 로드된 후 이전 상태로 복귀된다. 추가적인 프로그램이나 장비가 불필요해서 비교적 순수한 메모리 덤프가 가능하며 전체 메모리 영역의 덤프가 아닌 사용 중인 영역만 덤프한다.
콜드부트 덤프
종료된 시스템 메모리를 차갑게 유지시켜 메모리 손실을 줄이는 방법이다.
가상화 시스템 덤프
대부분의 가상화 시스템은 활성 메모리를 별도의 파일로 관리하며 일시중지 상태에서 메모리를 복사한다.
참고 자료
http://forensic-proof.com/slides