본문 바로가기

드림핵

[드림핵] 디지털 증거-2 (메모리 덤프)

1. 메모리(RAM)란?

  • CPU가 빠르게 연산할 수 있도록 임시로 데이터를 저장하는 공간.
  • 흔히 사용하는 저장장치(HDD, SSD)보다 훨씬 빠름.
  • 비유:
    • CPU → 요리사의 칼
    • 메모리 → 도마 (한정된 공간)
    • 프로그램/데이터 → 요리 재료

2. 프로그램 vs 프로세스

  • 프로그램: 실행 전 상태 (하드디스크에 저장된 파일)
  • 프로세스: 실행 중인 상태 (메모리에 로드되어 실행 중인 프로그램)

3. 메모리 덤프란?

  • RAM에 있는 휘발성 데이터를 그대로 저장한 것 (일종의 스냅샷)
  • 시간이 지나면 사라지는 정보를 포착해야 하기 때문에, 신속한 수집이 중요

4. 메모리 포렌식이란?

  • 메모리 덤프를 분석해서 중요한 정보를 찾아내는 것
  • 사용자가 입력한 비밀번호, 열람 중인 파일, 실행 중인 악성코드 등이 포함될 수 있음
  • 최근 들어 암호화 기술이나 로그인 정보가 중요한 수사 단서가 되면서 중요성이 커지고 있음

 
 

 

1. 사용 도구

  • Winpmem: 메모리 덤프 수집 도구 (winpmem_mini_x64_rc2.exe)
  • HxD: 헥스 에디터, 16진수로 파일 내용을 분석 가능
  • Windows Terminal: 명령어 실행용 (관리자 권한)
  • msinfo32: 시스템 메모리 정보 확인

2. 헥스 에디터(HxD)란?

  • 파일 내용을 **Hex(16진수)**로 표현 및 편집 가능
  • Offset 영역: 데이터 위치
  • Hex 영역: 원시 데이터
  • 디코딩 영역: ASCII 문자로 변환된 정보

3. 실습 절차

  1. 메모장을 띄우고 텍스트 입력
    • 예: "MyPasswordIs1234!"
    • 이 메모장은 종료하지 않고 메모리 덤프 전까지 유지
  2. Windows Terminal 실행 (관리자 권한)
    • 명령어 입력:
    • .\winpmem_mini_x64_rc2.exe mem.raw
  3. 메모리 덤프 완료 후 mem.raw 파일 생성됨
  4. msinfo32 실행하여 RAM 크기 확인
    • Windows + R → msinfo32 입력
  5. HxD 실행 후 mem.raw 파일 열기
    • Ctrl + F로 찾기 창 열기
    • 유니코드(Unicode) 설정 후 메모장에 입력했던 문자열 검색
  6. 메모리 내에서 입력한 텍스트 확인 성공!
    • 사용자의 입력 정보가 메모리에 저장되었다는 증거

4. 의의 및 응용

  • 메모리에는 실행 중인 프로그램 정보, 입력값, 세션 키, 비밀번호, 이메일 등이 남아 있을 수 있음
  • 디지털 포렌식에서는 이런 데이터를 통해 사용자의 행위 추적 및 증거 확보 가능

실습 팁

  • 메모리 덤프는 시간과 상황이 중요 → 실시간 수집 필수
  • HxD 검색 시 인코딩 방식 주의 (텍스트가 유니코드로 저장될 수 있음)