내용정리

[FORENSIC-PROOF] 메모리 포렌식 (Memory Forensics)

suuuullloc 2023. 4. 25. 16:58

1. 물리메모리 이해

 

# 메모리 포렌식 목적

 - 프로세스의 행위 탐지

 - 네트워크 연결 정보

 - 사용자 행위

 - 복화화, 언패킹, 디코딩된 데이터

 - 패스워드와 암호 키 획득

 

# 메모리 포렌식 대상

 - 물리메모리

 - 페이지 파일

 - 하이버네이션 파일

 

# 물리 주소 확장이란?

 - 물리적 주소 지정 비트를 32비트에서 36비트로 확장 (4GB -> 64GB)

 - 접근 가능한 물리 주소 공간 증가

 

# 프로세스 생성 과정

 1. 실행 파일 실행

 2. 서브시스템(POSIX, MS-DOS, Win32 등) 확인

 3. EPROCESS, KPROCESS, PEB, 초기 주소 공간 설정

 4. 기본 스레드 생성

 5. 윈도우 하위 시스템에 새로 생성된 프로세스와 스레드 알림

 6. 기본 스레드에 의해 프로세스 환경 설정과 스레드 자원 할당

 7. 새로운 프로세스와 스레드의 컨텍스트 내부 주소 공간 초기화 완료


2. 물리메모리 덤프

 

# 물리메모리 덤프 방식

 1. 하드웨어를 이용한 덤프

 2, 소프트웨어를 이용한 덤프

 3. 크래시 덤프

 4. 가상화 시스템 덤프

 5. 절전모드 덤프

 

# 하드웨어를 이용한 덤프

 - PCI 장치를 이용한 덤프 - Tribble

 - FireWire(IEEE 1394)를 이용한 메모리 덤프 - FireWire Attack

 

# 소프트웨어를 이용한 덤프

 - Win(32|64)dd

 - Memorize

 - FD(FastDump)Pro

 

# 크래시 덤프

 - 윈도우만 지원하며 수동 크래시를 발생시키려면 시스템 재부팅 필요

 - 크래시 덤프 수동 생성

 

# 절전모드 덤프

 - 전체 메모리 영역의 덤프가 아닌 사용 중인 영역만 덤프

 

# 콜드 부트

 : 종료된 시스템 메모리를 차갑게 유지시켜 메모리 손실을 줄이는 방법

 

# 실전 메모리 덤프

 - 최근에는 주로 소프트웨어 방식을 이용해 메모리 덤프

 - 덤프한 메모리는 외장저장장치에 저장


3. 물리메모리 분석

 

# 초기 메모리 분석 방법

 - 문자열 추출 : 특정 패턴의 문자열 검색

 - 파일 카빙 : 그래픽 이미지, HTML, 레지스트리 등 파일 카빙 기법으로 파일 획득

 

# 오브젝트 검색

 - 물리메모리 상의 오브젝트를 찾기 위한 방법 : 리스트 워킹, 패턴 매칭

 

# 리스트 워킹

 - EPROCESS 프로세스 이름을 이용한 프로세스 탐색 기법

 - KPCR(Kernel Processor Control Region)을 이용한 프로세스 탐색 기법

- DKOM과 같은 프로세스 은닉 기법 탐지 불가능

 

# 패턴 매칭

 - 프로세스 구조체의 패턴을 이용해 메모리 영역 전체 검색

 - 은닉 프로세스라도 동일한 프로세스 구조체를 가짐