본문 바로가기

[+] Forensic

Memory Analysis (2)

메모리 분석에 앞서 해야 할 작업은 메모리 덤프 파일을 시스템으로부터 얻는 것이다.

메모리 덤프를 얻기 위해서는 다음과 같은 방법들이 있다.

 - 하드웨어를 이용한 방법
 - 소프트웨어 도구를 이용한 방법
 - OS 크래시 덤프를 이용한 방법
 - 하이버네이션 파일을 이용한 방법

각 방법은 장단점이 있어 조사관의 판단에 따라 상황에 맞게 적절하게 사용해야 한다.

위 방법들을 순서대로 차근차근 알아보도록 하자.

먼저 하드웨어를 이용한 방법이다.

하드웨어를 이용한 방법을 알아보기 전에 장단점이 무엇인지 부터 알아보고 어떠한 세부적인 방법들이 있는지 알아보도록 한

다.

[하드웨어를 이용한 메모리 덤프 장단점]
1. 장점
    - 커널 투르킷과 같은 악성 프로그램에 의해 방해를 받거나 잘못된 메모리 정보를 덤프할 가능성이 매우 낮음.
    - 메모리 덤프 속도가 빠름
    - DMA(Direct Memory Access) 기능을 사용하므로 OS 특성과 무관하게 메모리에 직접 접근이 가능함.
    - 프로그램을 실행하지 않으므로 시스템 메모리에 영향을 미치지 않음.

2. 단점
    - 아직 그 안정성이 완전히 검증되지 않음
    - 간혹 시스템 크래시를 일으킴
    - 최신 마더보드 칩셋들이 가지는 MIMO 기능으로 인해 해커나 악성 프로그램이 메모리에 덤프 작업을 방해할 가능성이
       있음. 

* DMA(Direct Memory Access) : CPU의 도움없이 메모리에 접근하는 방법으로 입출력장치들이 많이 쓰며,
                                            이 기능을 사용함으로써 입출력장치와 CPU의 속도차가 개선된다.
                                            이 기능의 메모리 맵핑은 OS가 아닌 하드웨어에서 이루어진다.
* MIMO(Memory Mapped IO) : I/O를 하기 위한 특별장치 없이 레지스터 설정만으로 메모리와 맵핑하여
                                         입출력이 가능하게 하는 기능



하드웨어를 이용한 메모리 덤프의 좋은점과 나쁜점을 알아봤으니 이제 어떠한 세부적인 방법들이 있는지 알아볼 차례이다.

[하드웨어를 이용한 메모리 덤프 방법 종류]
1. PCI 장치
    - 일반적으로 잘 알려진 메모리 덤프 방법으로 Joe Grand와 Brian Carrier이 함께 저술한  'A Hardware-Based Memory
      Acquisition Procedure for Digital Investigations' 논문으로 일반에 알려졌다.
      Tribble라는 장치를 사용하며 이 장치는 실험적인 장치여서 구매가 불가능하다.



2. FireWire 장치
    - IEEE1394 인터페이스를 사용하며, Adam Boileau가 최초로 Python 프로그램이 설치된 리눅스 머신을 이용하여
       Firewire로 시스템 메모리를 복사하는 방법을 개발 하였다. 이 장치는 윈도우에서도 사용가능하며, 대상 컴퓨터에
       무언가를 설치할 필요가 없고, PCI 장치 방법보다 간편하다.



하드웨어를 이용한 방법은 실습을 할 방법이 없어 이렇게 설명만으로 공부를 해야한다.

직접 실습을 해보기 위해서는 개인적으로 하드웨어 장비를 구해서 해본다던가 회사를 다닌다면 회사를 통해 하드웨어 장비를

구해 실습해 보는 수밖에는 없다.

포렌식 사업을 하는 회사라면 포렌식 장비가 있을 것이므로 실습하기 좋겠지만, 그렇지 않다면 실습하기가 힘들것이다. 

일단 하드웨어를 이용한 메모리 덤프 방법들은 이런것이 있다는 것만 알고 넘어가는 것이 좋을 듯 하다. 

'[+] Forensic' 카테고리의 다른 글

Memory Analysis (3)  (2) 2011.12.25
HardDisk 구조  (0) 2011.12.24
Memory Analysis (1)  (0) 2011.12.23
휘발성 정보 수집 (5)  (0) 2011.12.23