본문 바로가기

[+] Forensic

Memory Analysis (1)

포렌식에서 빼놓을 수 없는 부분이 있는데 그 부분이 바로 메모리 분석 부분이다.

메모리에는 프로세스의 데이터(임시 데이터일수도 있음), 사용자 패스워드, 복호화된 데이터 등이 기록되어 있다.

메모리 분석 분야는 최근에 들어서 관심과 기술이 발전하기 시작 했는데 그 이유는 다음과 같다.

[메모리 분석 분야 관심 이유]
1. 하드 드라이브에 실행파일이 저장되지 않고 메모리에 바로 로드 되어 실행되는 악성 프로그램이 존재하기
    때문

    - 조사대상 시스템에서 프로그램은 실행되고 있으나 하드 드라이브에 실행파일이나 실행 코드가 없다면 분석에
       난항을 겪게 될 것이다. 이때 메모리 분석을 통해 어떠한 프로그램이 실행되고 있는지 파악 할 수 있다.
       이러한 식으로 하드 드라이브에 자신을 상주시키지 않고 메모리에 상주하는 프로그램들이 생겨났기 때문에
       메모리 분석이 중요시 되고 있는 것이다.

2. 사용자 응용 프로그램의 프라이버시 보호 기능이 강화되고 있기 때문
    - 요즘은 일반 회사에서 응용 프로그램을 개발 할 때 프라이버시 보호 기능때문에 응용 프로그램 사용기록등을
       예전처럼 평문이 아닌 암호화나 아예 하드 드라이브에 남기지 않게끔 개발하고 있다. 
       하지만 필요치 않기 때문에 하드 드라이브나 외부 저장장치에 남기지 않는 것이 아니기 때문에 메모리에는 존재하기
       마련이다(존재하지 않을 수도 있음)

3. 안티 포렌식 기술의 확산으로 하드 드라이브에 존재하고 있는 데이터의 무결성 등이 완전하지 못하기 때문
    - 안티 포렌식 기술 중 루트킷과 데이터 안전삭제가 있는데, 루트킷이 라이브 리스폰스로 얻을 수 있는 정보에 어떠한
       변형을 일으켰다면 해당 정보의 원형을 찾기 위해 메모리를 분석해야 한다. 또 데이터 안전삭제는 기존의 데이터를
       덮어씌우는 것으로 데이터가 덮어씌어지면 복구할 방법이 없어 조사를 진행하기가 어렵다. 이때도 메모리 분석을 하여
       지워진 데이터를 복구하여야 한다(메모리에 완전한 데이터가 있는 것이 아닌 일부 데이터만 있는 것을 복구)


위와 같은 이유로 포렌식 관점에서의 메모리 분석 분야가 관심을 받기 시작 했지만 아직까지는 발전단계가 높은 편이 아니다.

메모리 분석에 관심을 가진 시간이 짧을 뿐더러 메모리 분석을 하기 위한 선행지식이 너무 방대하고 메모리 구조는

운영체제마다 다르고 세부적으로 패치에 따라 달라질 수 있기 때문에 아직까지 발전단계가 낮은 것이다. 

메모리 분석과 라이브 리스폰스를 비교 해 봤을 때 메모리 분석 과정이 라이브 리스폰스 과정에 포함될 수 있다.

메모리 분석을 통해 얻는 정보는 대부분 라이브 리스폰스에 정보와 일치하기 때문이다.

하지만 메모리 분석을 위한 선행지식, 기술들을 봤을 때 라이브 리스폰스 과정에 메모리 분석을 넣는 것은 조사관 판단에 달려있다.

얻어지는 정보가 비슷하거나 일치한다고 하여 메모리 분석을 라이브 리스폰스로 대체하는 것은 불가능하며, 그 반대의 경우도

마찬가지 이다.(이론적으로는 가능하지만, 현실적으로는 불가능) 

라이브 리스폰스는 메모리 분석과 비교하였을 때 아래와 같은 약점을 지니고 있다.

[라이브 리스폰스의 약점]
1. 윈도우 API(DLL)에 의존
    - 라이브 리스폰스 도구들은 대부분 윈도우에서 기본적으로 제공하는 API에 의존하고 있다. 그렇기에 악의적인 해커나
      악성 프로그램이 윈도우의 DLL 파일들을 변조하거나 교체한다면 그 DLL을 사용하는 라이브리스폰스 도구의 결과는
      신뢰성이 떨어질 것이다.
 
2. 동일한 시스템에서 반복 수행 불가
    - 라이브 리스폰스의 정보는 모두 휘발성으로 시간이 지나고 다시 같은 방법으로 수집하여도 데이터가 일치한다고
      보장하지 못한다. 이로 인해 라이브 리스폰스의 데이터가 합법적인 절차를 통해 수집되었다는 증명을 하지
      못 할 수도 있다.
      객관적인 증명을 하려면 동일한 환경에서 동일한 수행이나 입력이 되었을 때 동일한 결과가 나와야 하는데 라이브
      리스폰스는 그렇지 못하다. 

3. 조사관은 나중에 더 이상 새로운 조사 진행 불가 
    - 조사관은 하나의 휘발성 정보를 수집하기 위해 여러가지 방법을 사용해야 한다. 이유는, 휘발성 정보를 증거나
      참고용으로 제출했으나, 상대편에서 반박을 하면 객관적인 증명을 하기 위해 다른 방법으로 조사하여 동일한 결과값을
      얻은 증거를 제출해야 한다. 하지만 라이브 리스폰스는 수행과정에서는 여러 방법을 사용해 정보를 수집할 수 있지만 그
      조사가 끝나고 나면 다시 정보를 수집할 방법이 없다.
      (물론 반박을 대비해 여러가지 방법을 사용해 정보를 수집하면 좋지만, 경과시간 등을 비교 해 봤을 때 썩 좋은 방법은
      아니다) 


위와 같이 라이브 리스폰스는 약점을 가지고 있는 반면 메모리 분석은 라이브 리스폰에 대해 다음과 같은 강점을 가지고 있다.

[메모리 분석의 강점]
1. 윈도우 API(DLL)에 의존하지 않음
   - 메모리를 분석하기 위해 사용되는 API는 윈도우의 프로세스/메모리에 관련된 API가 아닌, 파일시스템의 API이기 때문에
     API의 변조와 상관이 없어 얻어진 결과에 대해 신뢰성을 가질 수 있다.

2. 반복조사 가능
   - 메모리 분석 대상은 변하지 않는 것이기 때문에 언제든지 조사를 반복 할 수 있으며, 라이브 리스폰스와 달리 언제든지
     동일한 입력값을 통해 동일한 결과를 얻을 수 있다. 

3. 다양한 조사 가능
   - 메모리 분석 대상은 조사가 끝나도 존재하기 때문에(라이브 리스폰스는 존재하지 않음) 언제든지 다른 조사방법이나
     새로운 조사방법을 적용하여 조사를 다시 할 수 있다.  

 
위와 같이 메모리 분석에 강점이 있긴 하지만, 아주 큰 약점이 있다.

아직까지 메모리 분석 발전단계가 높지 않아 메모리 분석을 위해 덤프파일을 생성하는 메모리 덤프 도구등에 발전이 낮아

덤프파일의 완성도가 높지 않다는 것이다.

그렇기에 라이브 리스폰스와 메모리 분석을 적절히 상호작용해가며 조사를 해야 할 것이다.

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

HardDisk 구조  (0) 2011.12.24
Memory Analysis (2)  (0) 2011.12.24
휘발성 정보 수집 (5)  (0) 2011.12.23
휘발성 정보 수집 (4)  (0) 2011.12.21