tmxklab
4. 메모리 수집/분석 본문
주 기억장치
- 사용자가 원하는 작업을 처리하기 위한 데이터 및 처리결과 등을 기억하며 휘발성이라는 특징을 가짐
- 메모리 가용공간이 부족할 때 페이지 파일을 사용하여 보조 기억장치를 빌려 사용 -> 가상 메모리
- 대부분의 작업이 메모리를 거치기 때문에 메모리를 획득하면 거의 모든 데이터 확보 가능
메모리 포렌식 활성화된 이유)
① 악성코드 PE 헤더를 구하기 위해 메모리 확보 중요
② 악성코드 감염 및 실행 시 잘 나타내는 것은 메모리이므로 메모리 확보 중요
③ 암호화 전송 및 암호화된 데이터는 메모리를 제외하면 확보하기 어려움
④ 안티 포렌식 기술의 발전으로 보조 기억장치 흔적 외 추가 분석 요소 필요성 증가
+) 결론은 메모리 확보를 하면 해당 시점을 잘 나타내므로 메모리 확보 중요
+) 사고발생 이후에 분석하므로 해당 메모리가 덮어씌어지는 경우로 인해 메모리 포렌식 할 일 거의 없음
메모리 수집
- 일반적으로 메모리와 페이지 파일이 분석 대상 -> 메모리, 페이지 파일
- 잠자기/최대절전모드 활성화시 추가 분석 대상 -> 하이버네이션 파일
+) 페이지 파일 : 물리적으로 모자란 RAM공간을 하드디스크를 활용해 보충하고자 하는 기능
+) 하이버네이션 파일 : 절전 모드시 윈도우 환경을 그대로 보존하기 위해 복구하는 기능 -> hiberfil.sys
-> hiberfil.sys크기는 보통 램의 70%정도를 사용, 하지만 이걸 제대로 분석할 수 있는 도구가 잘 없음
메모리 수집 방법
① H/W를 이용한 덤프 : FireWire를 이용한 메모리 덤프, PCI 슬롯에 덤프할 H/W 껴서 덤프(거의 사용안함)
② S/W를 이용한 덤프 : DD, MDD, Winen, Dumpit 등 사용
③ 크래시 덤프 : 시스템 유지에 치명적인 영향을 주는 문제 발생시 원인 찾기 위해 윈도우 스스로 만드는 메모리 덤프, 일명 BSOD(Blue Screen Of Death)발생 시 생성된느 크래시 덤프
④ 절전모드 덤프 : 하이버네이션 파일(hiberfil.sys) 덤프
⑤ 가상화 시스템 덤프 : VM에서 세션 정지될 경우 물리 메모리 내용은 .vmem확장자 파일에 포함, 이 때, .vmem파일은 로우 포맷과 매우 유사하므로 다른 메모리 분석도구를 통해 분석 가능
⑥ 콜드 부트 : PC가 꺼질 때 메모리가 지워지기 전에 램을 급속냉각시켜 데이터 날아가지 않게 하는 기술
1) 최근 메모리 수집 방식
-> S/W + 크래시 덤프
2) 각 메모리 수집 방법 문제점
① H/W : 하드웨어 구비 및 미리 설치되어 있어야 하며 간혹 시스템 크래시 발생하므로 안정성에 대한 검증이 필요
② 절전모드 : 절전된 즉시 만들어지므로 그 상황 당시의 메모리 덤프가 아닌 이전의 메모리 덤프 파일이기 때문에 정확한 시점의 분석 데이터 얻기 어려움
③ 가상화 시스템 : 분석 대상이 가상화 시스템일 경우만 획득 가능
메모리 분석 방법
1) 초기 메모리 분석 방법
① 문자열 검색 : 이메일 주소, 비밀번호, 파일 명 등.. (HxD사용해서)
② 파일 카빙 : 파일의 시그니쳐와 같은 바이너리 데이터를 이용해 디스크의 비할당 영역에서 파일 복구
2) 최근 메모리 분석 방법
- 오브젝트 검색으로 발전 : 리스트 워킹, 패턴 매칭
① 리스트 워킹 : 링크르 따라 프로세스 검색(DKOM과 같은 은닉 기법 탐지 불가능)
② 패턴 매칭 : 프로세스 구조체의 패턴을 이용해 메모리 영역 전체 검색, 은닉 프로세스도 동일한 구조체 가밎
+) 메모리 구조가 깨져 리스트 워킹 사용 못한다면 패턴 매칭 사용
+) 미미카츠(mimikatz) : 윈도우 인증 취약점을 통해 비밀번호를 복호화하는 도구
3) 메모리 분석 도구
- Volatility, Rekail 두 가지를 주로 사용
4) 메모리 분석의 장,단점
장점) 해당 상황에 대해 잘 표현해 줄 수 있다.
단점) 덮어씌어지기 때문에 잘못된 판단을 할 수 있다. 결국 장점으로 인해 단점이 발생할 수 있음
메모리 포렌식(메모리 분석)
메모리 포렌식은 물리 메모리(RAM)을 덤프떠서 분석을 하는 것을 말하며, 분석을 통해 시스템에 실행 중인 애플리케이션, 애플리케이션에 접근한 객체(파일, 레지스트리 등), 로드한 모듈, 로드한 커널 드라이버 등과 같은 포렌식 조사에 필요한 정보를 얻을 수 있다.
사용 이유)
악의적인 아티팩트를 찾는 용도로 메모리 이미지를 수집하여 분석할 수 있고, 악성코드 분석에서 악성코드의 추가적인 정보를 얻기 위해 메모리 포렌식을 하는 경우도 있다. 예를 들면 악성코드 샘플을 가지고 있으면 격리된 환경에서 샘플을 실행하고 감염된 해당 시스템의 메모리를 덤프뜨고 분석하여 추가적인 악성코드의 행위를 파악할 수 있다. 또한, 악성코드가 디스크에 존재하지 않고 메모리에서만 존재할 수 있기 때문에 디스크 포렌식이나 파일 시스템 분석보다는 메모리 포렌식이 유용하다.
메모리 포렌식 단계)
① 메모리 수집 : 해당 시스템의 메모리를 수집(덤프)하는 것을 의미
② 메모리 분석 : 메모리를 덤프한 파일을 분석하는 것을 의미
참고자료
'Security > 04 forensic' 카테고리의 다른 글
4.2 메모리 분석(feat. Volatility) (0) | 2021.04.28 |
---|---|
4.1 메모리 수집 (DumpIt) (0) | 2021.04.28 |
3. 비활성 데이터 수집/분석 (0) | 2021.04.22 |
2. 활성 데이터 수집/분석 (0) | 2021.04.22 |
1. 디지털 포렌식 개요 (0) | 2021.04.22 |