[Digital Forensic] Live Response (실시간 대응) (3)

 

실시간 대응


(7) Mac OS X 휘발성 정보 수집

  • Mac OS X는 Apple사에서 개발한 운영체제이며 그 기반으로 Unix를 두고 있음

  • 해당 OS에서의 휘발성 정보들은 다른 OS들의 휘발성 정보와 대부분 동일하며 수집 방법만 조금 다름

  • 버전별로 조사관이 원하는 데이터를 저장하고 있는 파일 위치가 다르기 때문에, 조사관은 데이터 수집 대상의 Mac OS X 버전을 확인, 버전에 따라 수집할 데이터의 위치 파악 필요

  • Unix를 기반으로 두기 때문에 대부분의 Unix 명령어가 동일하게 적용되며, Linux에서도 동일하게 휘발성 정보 수집 가능

 

1) 시스템 시간

  • Windows 경우 datetime 명령어 조합을 이용하여 시스템 현재 시간 정보를 수집하였는데, Mac OS X도 동일하게 date 명령어로 수집 가능

  • 또한 해당 시스템이 얼마나 부팅되어 있었는지도 확인 가능하며 이때 사용하는 명령어는 uptime 명령어

  • 시스템 시간은 어떤 사건의 발생 시점 & 끝난 시점과 같은 기준점이나 범위를 구분지어 주어 굉장히 중요한 정보

 

2) 네트워크 연결 정보

  • 현재 시스템이 연결하고 있는 호스트와 연결했던 호스트 등을 보여줌

  • 시스템 재시작이나 종료되면 해당 정보는 모두 삭제되어 휘발성 정보에 속함

  • Windows에서는 netstat -an 명령어로 수집했었는데 Mac OS X 또한 동일

 

3) 프로세스 목록

  • 어떤 OS에서든지 프로세스 목록 수집은 중요 (루트킷이나 백도어의 프로세스가 실행되고 있을 수 있기 때문)

  • 프로세스 목록은 ps 명령어로 수집 가능하며, 보통 사용 옵션은 -ef 옵션이다.

 

4) 사용자 정보

  • Mac OS X는 유닉스를 기반으로 하고 있으며, 유닉스는 다중 사용자 시스템으로 여러 사용자들이 동시 접속하여 어떤 기능 수행이 가능

  • 그렇기에 현재 접속한 사용자들을 알아볼 수 있으며 이 정보는 시스템 전원이 Off되는 순간 삭제

  • 꼭 현재 접속 기록이 아닌 이전 접속 사용자 기록 또한 볼 수 있으며, 현재 접속 사용자 정보 명령어는 w(who), 현재 원격 & 로컬 사용자 정보는 finger가 있고, 옵션으로는 -lmsp가 있음

  • 이전 접속 사용자 정보에 대한 명령어는 last 명령어가 있음

 

5) 파일 정보

  • 현재 어떤 파일이 어떤 명령으로 인해 열려 있고, 어떤 네트워킹 작업을 하고 있는지 수집할 수 있는 명령어는 lsof가 있으며, 옵션으로는 -i, -P 옵션이 있음

 

6) 시간 정보

  • 포렌식에서 어떤 대상을 분석하던 시간은 정말 중요한 정보이며 사건의 기준이 됨

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

종류

설명

Modify Time

파일 내용을 수정한 경우(메타데이터 수정 포함) 갱신

Access Time

파일을 읽거나 실행한 경우 갱신

Create Time

파일이 생성된 시간을 의미

Change Time

파일의 메타데이터가 수정된 경우 갱신(Change Time이 갱신될 경우 Modify Time도 같이 갱신)

 

  • stat 명령어로 시간을 확인해보면 Access, Modify, Change, Create Time순으로 출력 됨

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

 

7) Property List

  • Mac OS X는 다른 OS와 다르게 프로퍼티 리스트(plist)라는 파일들이 존재

  • 해당 파일은 실행되는 어플리케이션 정보들이 저장되는 파일이며, 일반 TEXT와 실행 파일 두 개의 종류로 나뉨

  • Text 파일은 xml 형태로 되어 있으며, 실행 파일은 xml 형태로 되어 있지 않으나 plutil 명령어를 이용하여 xml 형태로 변형시키기 가능

 

 

7-1. Property List (네트워크 정보)

  • 네트워크 정보를 볼 수 있는 plist 파일은 /Library/Preferences/SystemConfiguration 폴더에 존재

  • 포렌식 관점에서 주목해야 할 파일은 preferences.plist와 com.apple.network.identification.plist가 있음

  • preferences.plist 파일은 네트워크 일반 정보(인터페이스 카드 정보, 컴퓨터 이름 등)가 저장되어 있음

  • com.apple.network.identification.plist 파일은 네트워크 정보의 히스토리(이전에 할당 받았던 IP 주소 등)를 저장하고 있음

 

7-2. Property List (사용자 정보)

  • 사용자 정보 또한 plist 파일로 저장되며, /private/var/db/dslocal/nodes/Default/users/ 폴더에 사용자 계정명과 동일하게 저장

  • 사용자 정보 관련 파일들은 /etc/passwd 파일과 동일하게 사용자 쉘, 권한, 홈 디렉토리 등을 저장

  • 해당 파일들은 일반 text 프로퍼티 리스트 파일이 아닌 실행 프로퍼티 파일이라 plutil 명령어로 변환해 주어야 분석 가능

  • xml 파일로 변환 시 -convert xml1 옵션 / 바이너리 파일로 변환 시 -convert binary1 옵션 사용

 

7-3. Property List (그룹 정보)

  • 사용자 정보가 아닌 그룹 정보는 Default/groups 폴더에 존재

  • admin.plist 파일은 root 권한이 어떤 사용자에게 부여되었는지 기록되는 파일

  • 시스템에 마지막 로그인한 사용자 저장 파일은 /Library/Preferences/com.apple.loginwindow.plist 파일

 

7-4. Property List (최근 접근한 어플리케이션)

  • 사용자가 최근 접근한 어플리케이션 정보 저장 plist 파일은 com.apple.recentitems.plist

  • 위치는 /Users/<사용자 이름>/Library/Preferences에 위치하며 파일 서버 접근 정보도 포함

  • 어플리케이션 정보 저장 plist 파일은 접근 시간, 즉 타임 스탬프를 제공해주지 않아 해당 정보만을 가지고 특정 시점에 접근된 파일을 찾기에는 무리가 있음

 

7-5. Property List (디스크 이미지)

  • 해당 시스템에서 사용자가 오픈한 디스크 이미지 전체 경로 포함 plist 파일은 com.apple.DiskUtility.plist이고 위치는 recentitems.plist 파일과 동일

  • FXConnectToLastURL Key : 어플리케이션이 마지막으로 연결하였던 파일 서버의 전체 주소 제공

  • FXDesktopVolumePositions Key : 시스템에서 이전에 마운트되었던 볼륨명과 마운트 포인트명 제공

  • FXRecentFolders Key : 사용자가 최근에 보거나 접근한 디렉토리 정보 제공

 

7-6. Property List (연결 디바이스 정보)

  • 포렌식 수행 과정에서 연결된 디바이스들의 정보 중 가장 관심이 가는 것은 당연 이동식 저장 장치이고, 이 정보는 kernel.log에 저장

  • 또 다른 연결 디바이스 정보들은 com.apple.iPod.plist에 저장

  • kernel.log는 /var/log 디렉토리에 위치하며, 당연히 외부 장치형 디바이스의 연결 정보만 저장하는 것이 아니기에 특정 키워드로 검색해야 함

  • 특정 키워드는 'USBMSC' 이다.

  • 출력 정보에 대한 내용은 날짜 및 시간 / 연결 디바이스 타입 / Serial Number / Vender ID / Product ID / Firmware Version이 있음

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

 

 

지금까지 Mac OS X에서 휘발성 정보를 알아보고 수집하는 방법을 알아보았다.

 

Mac OS X나 유닉스, 리눅스 경우 Windows와 다르게 대부분 쉘 명령어를 통해 정보를 수집할수 있다.

 

즉, 스크립트나 자동화 프로그램을 만든다 해도 추가적인 프로그램이 필요 없는 것이다.

 

또 지금까지 알아본 정보들이 Mac OS X의 휘발성 정보의 전부가 아니기 때문에, 로그 정보가 더 있지만 그 부분은 너무 방대하다.

 

앞으로 Mac OS X에 대한 분석은 더 진행되어야 하며, Mac 기반의 스마트폰, 패드 등이 지금보다 더 보급화되고 여러 분야에 응용되어 사용된다면 침해 사고 또한 그 증가 추세가 비례적일 것이다.


# Reference

 

http://www.yes24.com/Product/Goods/8511539

+ Recent posts