이번에는 사용자의 행동과 관련된 정보들을 찾아 볼 것이다. Mac OS X에서는 사용자의 여러 행동 정보(접근/실행 한 파일 및 디렉토리 등)를 plist로 저장해 두고 있다.


[최근 접근한 어플리케이션]

사용자가 최근 접근한 어플리케이션의 정보를 저장하는 plist 파일이 있는데 파일 명은 com.apple.recentitmes.plist(오타 아님)이다. 파일의 위치는 /Users/<사용자이름>/Library/Preferences 이다. 파일은 실행 프로퍼티 리스트로 plutil로 변환하여 보면 [그림 1]과 같다.


[그림 1 - com.apple.recentitmes.plist 파일의 일부분]


한가지 특징으로는 접근한 시간, 즉 타임스탬프를 제공해주지 않는다는 점이다. 그렇기 때문에 해당 정보만을 가지고 특정 시점에 접근 된 파일을 찾기란 무리이고 다른 정보들과 연관지어 조사를 수행해야 한다.


 * 참고 : 어플리케이션 접근 정보도 있지만 파일서버 접근 정보도 포함하고 있다.



[디스크 이미지]

해당 시스템에서 사용자가 오픈한 디스크 이미지의 전체 경로를 포함하는 plist 파일이 있다. 파일 명은 com.apple.DiskUtility.plist 이고 위치는 recentitmes.plist 파일과 동일하다. 물론 이 파일도 일반 텍스트 프로퍼티 리스트로 변환해 주어야 한다.


[그림 2 - com.apple.DiskUtility.plist]


[그림 2]에서는 전체경로가 보이지 않지만 만약 사용자가 오픈한 디스크 이미지가 있을 경우 <string></string> 태그에 보이게 된다.



[어플리케이션 Finder 정보]

Mac OS X 에서 어플리케이션은 Finder라는 주요 정보를 참조하게 되는데 어플리케이션들이 참조하는 Finder 정보는 com.apple.finder.plist 파일에 저장되어 있다. 해당 파일을 통해 여러가지 정보를 수집 할 수 있는데 그 정보들은 다음과 같다.


 - FXConnectToLastURL 키 - 어플리케이션이 마지막으로 연결하였던 파일서버의 전체주소를 제공한다.

 - FXDesktopVolumePositions 키 - 시스템에서 이전에 마운트되었던 볼륨명과 마운트포인트 명을 제공한다.

 - FxRecentFolders 키 - 사용자가 최근에 보거나 접근한 디렉토리 정보를 제공한다.


[연결 디바이스 정보]

포렌식 수행 과정에서 연결된 디바이스들의 정보 중 가장 관심이 가는 것은 당연히 이동형 저장장치 일 것이다. 이 정보는 kernel.log에 저장되어 있다. 또 다른 연결 디바이스 정보들은 com.apple.iPod.plist 에 저장되어 있다.

kernel.log는 /var/log 디렉토리에 위치하고 있으며 당연히 외부장치형 디바이스의 연결정보만 저장하는 것이 아니기 때문에 특정 키워드로 검색을 해주어야 한다. 그 키워드는 "USBMSC" 이다.


[그림 3 - USB 연결 기록]


위 정보를 정리해보면 다음과 같다.


 - 날짜 및 시간 : May 6 10:52:09(5월 6일 10시 52분 09초)

 - 연결 디바이스 타입 : USB

 - Serial Number : 8998000000000081125034C5

 - Vender ID : 0x1516

 - Product ID : 0x8628

 - Firmware Version : 0x200


com.apple.iPod.plist 파일은 /Users/<사용자이름>/Library/Preferences 디렉토리에 있으며 해당 파일에는 여러 디바이스 리스트와 연결시각 등 kernel.log와 거의 유사한 정보들이 목록화 되어 있다.




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

Windows 8 Forensic Artifact - (1)  (0) 2012.06.27
TSK(The Sleuth Kit) 사용 매뉴얼 한글 버전!!  (4) 2012.05.21
Mac OS X - Live Response (5)  (2) 2012.05.06
Mac OS X - Live Response (4)  (0) 2012.05.03
Mac OS X - Live Response (3)  (0) 2012.05.03
  1. Favicon of http://feedbeef.blogspot.com BlogIcon n0fate 2012.06.12 18:14

    맥쪽은 포렌식 분야의 블루오션인듯해요. 이런 정보를 하나하나 잘 정리해서 가이드를 작성해도 재미있겠네요 :-)

    • Favicon of https://maj3sty.tistory.com BlogIcon MaJ3stY 2012.06.12 22:17 신고

      음 좀 더 찾아봐야 겠군요 ㅋ

      아직 plist가 어색해서... ㅠㅠ

포렌식에서 어떤 대상을 분석하던 시간은 정말 중요한 정보이며 사건의 기준이 된다. Mac OS X에서는 시간 값이 어떻게 변화되는지 간단하게 알아보자.

Mac OS X도 다른 OS나 파일시스템과 동일하게 MAC(Modify, Access, Create) Time이 존재하고, 여기에 추가적으로 Change Time이 존재한다.(HFS+ 파일시스템에서 시간 정보는 Catalog File의 파일레코드에 존재한다.)


[그림 1 - 시간 종류별 설명]


 * 참고 : Change Time이 갱신 될 경우 Modify Time도 같이 갱신 된다.


그럼 이제부터 [그림 1]의 설명들이 무엇을 의미하는지 알아보도록 하겠다. touch 명령어로 간단히 파일을 생성하고 그 시간을 한번 알아보면 [그림 2]와 같다.


[그림 2 - 파일생성 및 시간 확인]


[그림 2]를 보면 총 4개의 시간 값이 출력되어 있는데 첫 번째 시간 값부터 Access, Modify, Change, Create Time이다.

일단 파일의 내용을 수정하여 보면 [그림 3]과 같이 해당 파일의 Modify Time과 Change Time이 수정 되는 것을 볼 수 있다.


[그림 3 - Modify, Change Time 갱신]


이번엔 권한 수정을 통해 메타데이터를 수정하면 정말 Change Time이 갱신 되는지 확인하여 보자.


[그림 4 - Change Time 갱신]


[그림 4]를 통해 Change Time이 갱신 된 것을 볼 수 있다.

마지막으로 Access Time을 살펴보자. 간단히 cat 명령으로 파일을 열어보면 [그림 5]와 같이 Access Time이 변경 된 것을 확인 할 수 있다.


[그림 5 - Access Time 갱신]


이렇듯 사용자가 파일이나 디렉토리에 변경이나 접근, 어떠한 행위를 하게 되면 시간 값들은 업데이트 되어 특정 사건의 특정 행동 기준점을 세울 수 있게 도와준다.


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

Mac OS X - Live Response (5)  (2) 2012.05.06
Mac OS X - Live Response (4)  (0) 2012.05.03
Mac OS X - Live Response (3)  (0) 2012.05.03
Memory Forensics PoketBook(KR)  (0) 2012.04.30
Mac OS X - Live Response (2)  (0) 2012.04.30

[사용자 정보]

Mac OS X는 이전에도 말했듯 유닉스를 기반으로 하고 있다. 유닉스는 다중 사용자 시스템으로 여러 사용자들이 동시에 접속하여 어떠한 기능 수행을 할 수 있다. 그렇기에 현재 접속하고 있는 사용자들을 알아 볼 수 있으며 이 정보는 시스템의 전원이 Off 되는 순간 지워져 버린다. 꼭 현재 접속한 기록이 아닌 이전에 접속했던 사용자 기록 또한 찾아 볼 수 있다.

먼저 현재 접속한 사용자들의 정보를 수집하여 보자. 이때 사용되는 명령어는 w(who)이다.


[그림 1 - w 명령어]


또 현재 원격의 사용자와 로컬 사용자 정보를 알아보는 명령어로 finger 명령어가 있으며 자주 사용되는 옵션은 -lmsp 이다.


 * 참고 : 해당 명령어는 /etc/passwd에 기초하여 정보를 출력해준다.


[그림 2 - finger 명령어]


이번에는 이전에 접속했던 사용자들의 정보를 수집하여 보자. 이때 사용되는 명령어는 last 명령어이다.


[그림 3 - last 명령어]



[파일 정보]

현재 어떤 파일이 어떤 명령으로 인해 열려있고 또 어떤 네트워킹 작업을 하고 있는지 수집 할 수 있는 명령어로 lsof 명령어가 있다. 자주 사용하는 옵션으로는 -i -P 옵션이 있다.


[그림 4 - lsof 명령어]



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

Mac OS X - Live Response (3)  (0) 2012.05.03
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

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

[Live Response 수행 여부]
Live Response는 상황에 따라 할수도 있고 하지 않을 수도 있다. 그렇기에 해야 할 상황을 정리하기는 힘들고, 그 반대로 하지 않아야 할 상황을 알아두어야 한다. 
1. 해커나 악성코드등에 의해 시스템에 존재하는 어떠한 파일이 삭제되고 있을 때
    - 이럴때는 Live Response를 수행하기 보다는 시스템의 전원 플러그를 제거하는 것이 좋다.
      삭제되는 파일이 로그파일일수도 있지만, 조직에 영향을 미치는 중요한 파일 일 수도 있기 때문이다. 
2. 조사를 수행할 때의 도구가 검증되지 않은 도구일 때 
    - 주로 공개용 도구에 해당하는데, 검증되지 않은 도구를 사용하면 시스템에 어떤 영향을 미칠지 모르기 때문이다. 


전원 플러그를 제거하는 것이 좋다고 위에 설명이 되어 있는데 이 또한 대상에 따라 달라진다.

개인PC의 경우 본체 뒤에 있는 전원 플러그를 제거해도 상관이 없다.

하지만 서버PC의 경우 전원 플러그를 제거하면 서버 어플리케이션들은 장애 대비 능력이 없기 때문에 시스템에 심각한 손상을 일으킬 수 있다.

그렇게 되면 조사자가 원하는 데이터가 손상될 수 있어 서버PC는 정상적으로 종료를 해야만 한다.


[Live Response 원칙]
Live Response의 원칙에는 휘발성 정보 수집이 시스템에 미치는 영향을 가장 잘 설명하고 있는 로카르드의 교환 법칙이 있다. 간단히 설명하면, "접촉하는 두 물체 사이에는 반드시 교환이 일어난다" 라는 명제로 설명 할 수 있다.
로카르드의 법칙은 범죄자에게만 적용되는 것이 아닌 수사관에게도 적용이 되는 법칙이다.
그렇기에 조사관들은 Live Response를 수행 할 때 시스템에 미치는 영향을 최소화 해야 할 필요가 있다.
이유는 Live Response를 수행하려면 어떠한 도구를 수행해야 하는데 그 도구가 수행되면 시스템에 적게나마 영향을 미치기 때문이다.
될 수 있다면, 검증되고 포렌식에 특화된 도구를 사용하는것이 좋다.
다음은 Live Response 단계에서 어떤 시스템 구성요소들이 어떠한 영향을 받는지 나열 한 것이다.
1. 메모리
    - 도구가 실행되면 프로세스가 생성되고 메모리에 적재가 되는데 이때 프로세스가 메모리를 점유하면서 이전에 있던
      데이터를 덮어 씌어버린다. 이로인해 중요한 휘발성 정보가 사라질 수 있다. 또, 커널오브젝트를 관리하는 시스템
      테이블이 갱신되면서 새로운 항목이 추가되거나, 테이블이 가득차 있는 상태였다면 오래된 항목이 자동삭제되어
      중요한 정보를 잃어버릴 수 있다. 
2. 네트워크
    - 사용하려는 도구가 네트워크 기능을 사용한다면 시스템은 소캣을 열고 통신을 시도한다. 이 과정에서 시스템에
      방화벽이 있다면 로그가 남게 되고 로그파일이 쌓이면서 사용하지 않던 하드 드라이브 영역을 사용하게 된다.
      로그파일 개수가 설정되어 있는 개수만큼 생기면 제일 오래된 로그가 삭제되어 중요한 로그정보가 지워질 수 있다.
      또, 네트워크 연결은 커널 오브젝트에 의해 관리가 되어 커널 테이블을 갱신하게 된다.
3. 프리패치 파일
    - 프리패치 파일은 윈도우에서 새로운 프로그램이 실행될 때 마다 생성되는 파일이다. 그렇기에 조사관이 사용하는
      도구가 실행될 때도 프리패치 파일이 생성되며 프리패치 파일은 최소 클러스터 하나 이상의 비할당 영역을 새로
      할당받아 사용하게 된다(윈도우는 하드 드라이브를 할당할 때 클러스터 단위로 할당 함) XP에서는 프리패치 파일의
      개수가 최대 120개이다. 그렇기에 이 개수를 초과하게 되면 오래된 프리패치 파일을 삭제하게 되고, 해커나
      악성프로그램이 실행되어 생성된 프리패치 파일이 삭제될 수 있다.
4. 레지스트리
    - 많은 Live Response 도구들은 레지스트리에 접근하여 그 값을 이용한다. 이렇게 되면 레지스트리에 마지막 접근
      시간이 갱신되어 버린다. 또, 레지스트리에 어떠한 값을 설정하게 되면 레지스트리 키에 대한 마지막 쓰기 시간도
      갱신하게 된다.
5. DLL(Dynamic Link Library)
    -  동적으로 컴파일하게 되면 필요한 파일인데 여러가지 비슷한 함수들의 모임을 뜻한다. 조사관의 도구가 시스템의
        DLL을 사용한다면 파일의 마지막 접근 시간을 갱신하게 된다.
6. 로그파일
    - 조사관의 도구가 에러를 일으키면 기본적으로 에러로그가 남게 된다. 이로 인해 악성 프로그램이 일으켰던 오류나,
      실행, 이벤트 등의 로그가 밀려 삭제 될 수 있다.

어떤식으로든 조사관이나 해커, 악성프로그램은 시스템에 영향을 미치게 되어 있다.
가장 이상적인 방법은 도구의 프로그래밍부터 이러한 경우들을 고려하여 도구를 제작하는 것이고, 현실적인 방법은 여러가지 도구들을 미리 테스트하고 그 중에서 가장 성능이 좋으면서 영향을 최소로 하는 도구를 선별하여 사용하는 것이다.


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

휘발성 정보 수집 (1)  (0) 2011.12.20
Dynamic-Link Library Redirection  (0) 2011.12.19
Live Response ?(2)  (0) 2011.12.19
Live Response ?(1)  (0) 2011.12.18
디지털 포렌식 관련 법률  (0) 2011.12.18

+ Recent posts