Mac OS X는 Apple社에서 개발한 운영체제이며 그 기반은 Unix를 두고 있다. 해당 OS에서의 휘발성 정보들은 다른 OS들의 휘발성 정보와 대부분 동일하며 그 수집 방법만 조금 다를 뿐이다. Mac OS X에서도 다른 OS와 마찬가지로 시간정보, 네트워크 연결정보, 프로세스 목록 등을 수집한다. 그럼 이제부터 하나씩 살펴보자.


 * 참고 : Mac OS X는 Unix를 기반으로 두고 있기 때문에 대부분의 Unix 명령어가 동일하게 적용된다. 그렇기 때문에 Linux에서도 아래와 같은 명령어들로 동일하게 휘발성 정보를 수집 할 수 있다.


[시스템 시간]

Windows의 경우 date 명령어와 time 명령어의 조합을 이용하여 시스템의 현재 시간 정보를 수집하였었는데, Mac OS X에서도 동일하게 date이란 명령어로 시스템의 현재 시간 정보를 수집 할 수 있다. 또 해당 시스템이 얼마나 부팅되어 있었는지도 알 수 있는데 이때 사용하는 명령어는 uptime 명령어이다.


[그림 1 - date 명령어]


[그림 2 - uptime 명령어]


시스템 시간은 어떤 사건의 발생 시점이나 끝난 시점 등과 같은 기준점이나 범위를 구분지어 주기 때문에 굉장히 포렌식에서 중요한 정보이다.


[네트워크 연결 정보]

네트워크 정보 또한 휘발성 정보 중 하나인데, 현재 시스템이 연결하고 있는 호스트와 연결했던 호스트 등을 보여준다. 하지만 시스템이 재시작 되거나 종료되면 해당 정보는 모두 지워져 버리기 때문에 휘발성 정보에 속하는 것이다. Windows 에서는 netstat -an 명령어로 네트워크 연결 정보를 수집했었는데 Mac OS X 또한 동일하다.


[그림 2 - netstat -an 명령어]


[프로세스 목록]

어떤 OS에서든지 프로세스 목록을 수집하는 일은 중요시 여겨진다. RootKit이나 Backdoor의 프로세스가 실행되고 있을 수 있기 때문이다. 프로세스의 목록은 ps 명령어로 수집할 수 있는데 보통 사용하는 옵션은 ef옵션이다.


[그림 3 - ps -ef 명령어]




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

Memory Forensics PoketBook(KR)  (0) 2012.04.30
Mac OS X - Live Response (2)  (0) 2012.04.30
Mac OS X - Live Response (1)  (0) 2012.04.29
디지털 포렌식과 하둡에 관한 고찰  (0) 2012.04.09
이메일 헤더 분석  (0) 2012.04.02
휘발성 정보 수집에는 여러가지가 있는데 이에 대해 간단히 알아 볼 것이다.

[시스템 시간]
시스템 시간은 포렌식에서 중요한 의미를 갖는다.
시스템 시간은 윈도우 cmd에서 기본적으로 지원하는 data와 time 명령어로 수집 가능하다.
윈도우 하단에 있는 트레이바의 시간패널을 조작하면 레지스트리에 기록이 남지만, cmd 명령어로 수정할 경우 레지스트리에 기록이 남지 않는다.

 [그림 1 - 시스템 시간 수집 화면]


[네트워크 연결 정보]
휘발성중에 휘발성이라 할 수 있는 정보이다. 만약 개별적으로 운영하는 방화벽이나 방화벽 어플리케이션이 있다면 해당 정보보다 더 우선적으로 방화벽 로그의 분석이 수행 되어야 한다. 해당 정보는 순간 정보이지만, 방화벽의 정보는 장기간에 걸친 정보이기 때문이다.
네트워크의 연결 정보는 윈도우 cmd의 netstat 명령어로 수집 할 수 있으며 여러가지 옵션이 있으므로 한번씩 테스트 해보는 것이 좋다.
 

[그림 2- netstat 명령어의 결과]



[프로세스 목록]
프로세스 분석은 기본중에 기본이며, 어떠한 행위가 어떠한 이유에서 일어났는지에 대한 근거가 될 수 있다.
만약 syetem32 폴더에 없는 시스템 프로세스나, 부모 프로세스가 될 수 없는 프로세스에 자식 프로세스가 있는 등 이상현상 등을 탐지 할 수 있기에 프로세스 목록은 중요하게 다뤄진다.
프로세스 목록을 수집하는 방법은 여러가지가 있으며 윈도우 cmd에서 기본적으로 지원하는 Tasklist가 있고, 다른 도구로서는 Pslist가 있다.
Tasklist Pslist는 프로세스의 전체경로는 나오지 않는다.
Pslist의 경우 -t 옵션을 주면 Tree 형식으로 프로세스를 보여줘, 부모 프로세스와 자식 프로세스의 관계를 직관적으로 파악할 수 있다.
GUI형태의 도구로는 Process Monitor, Process Explorer가 있다. GUI 형태의 CLI 보다 시스템에 영향을 많이 주게 되지만 프로세스의 전체경로와 DLL, TCP 동작 등 여러가지 정보를 제공한다.
아래는 CLI 형태의 도구들의 동작 이미지이다.

[그림 3 - tasklist 명령어 결과]

[그림 4 - Pslist 프로그램 실행 결과]


[Handle(핸들) 정보]
핸들은 프로세스에 기본적으로 여러개가 있으며, 핸들이 실제로 가리키고 있는 오브젝트는 레지스트리에 기록되어있다.
핸들정보를 수집 할 때에는 sysinternals.com에서 만든 Handle.exe 파일을 주로 사용한다.

 [그림 5 - Handle.exe 실행 결과]

※ 기존에 다른 도구들을 테스트 했던 Win7에서 이 도구는 관리자권한을 요구 해 runas로 하려 했으나
    Win7 Home 버전이어 관리자계정 정책을 바꾸지 못하여 부득이 하게 Win XP SP2에서 테스트 하였다. 


[DLL 목록]
만약 침해사고가 일어난 시스템에서 DLL Injection으로 인해 사고가 일어난 것이라면, 프로세스 목록만으로는 원인 분석등을 하기 어렵다. 그렇기에 DLL 목록을 얻어와 분석을 해야 한다.
DLL 목록은 Sysinternals.com에서 만든 ListDlls.exe 라는 도구로 쉽게 얻을 수 있다.

 [그림 6 - ListDlls.exe 실행 결과]


위 도구들 중 sysinternals.com에서 만든 도구들은  http://live.sysinternals.com/ 에서 다운로드 할 수 있다.
 

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

휘발성 정보 수집 (4)  (0) 2011.12.21
휘발성 정보 수집 (3)  (0) 2011.12.21
휘발성 정보 수집 (2)  (2) 2011.12.20
휘발성 정보 수집 (1)  (0) 2011.12.20
Dynamic-Link Library Redirection  (0) 2011.12.19
  1. BlogIcon n0fate 2011.12.21 09:37

    유저명(사용자)가 인상깊네요. 좋은 글 잘보고 갑니다! :D

    • Favicon of https://maj3sty.tistory.com BlogIcon MaJ3stY 2011.12.21 10:40 신고

      ㅎㅎ 나름 레어?! ㅋ

      와주셔서 감사합니다 ㅎ

+ Recent posts