앞으로는 시간이 될 때마다 디지털 포렌식 아티팩트를 항목 별로 정리해 공개할 예정입니다.


본 블로그를 통해 공개되는 자료는 케이스 분석과 실험을 통해 검증된 데이터입니다.


혹시나 잘못된 데이터가 있거나, 추가할만한 데이터가 있다면 언제든 연락 바랍니다.

이번에 공개할 자료는 "윈도우 운영체제에서 장치 연결 흔적과 관련된 아티팩트" 입니다. 


현재 인터넷에 공개되어 있는 데이터는 대부분 레지스트리 아티팩트만 정리되어 있고, 최신 운영체제를 반영하지 못하고 있어 사고 분석 시 일부만 참고할 수 있습니다. 


그래서 본 자료에는 레지스트리와 이벤트로그, 그리고 분석 시 참고할만한 사항을 코멘트로 달아뒀습니다.


사고 분석 시 많은 도움이 되었으면 좋겠습니다.


파일 공개는 회사 블로그로 대체합니다.


http://blog.plainbit.co.kr/archives/2048


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

[Challenge] dfChallenge 소개  (2) 2018.08.16
Forensic CheatSheet  (4) 2018.05.28
About Volume Serial Number  (0) 2018.05.17
[Techno2017] Conference 0-1 Day  (0) 2017.06.06
[F-INSIGHT] Deep in the artifacts #1  (3) 2017.03.10
  1. 으쌰 2018.05.30 17:39 신고

    안녕하세요. 블로그 포스트 흥미 있고 해서 앞으로도 자주 들일 예정입니다. 그리고 저의 목표에 거름이 되어주시길 간곡히 부탁드립니다. 포렌식 쪽 관심이 있어서 공부하는 법을 찾아보고 있는데 학원 홍보글 밖에 안보이더라구요.. 꿈은 디지털 포렌식 수사관 입니다. 혹시 디포쪽 공부하려면 무엇을 해야할지 선생님의 커리큘럼을 따라가려합니다
    일단 학원은 부딪혀봐야 안다고 해서 독학으로 했다가 힘들면 등록 예정입니다 지금 c언어 독학중입니다. 시스템보안 쪽은 언어 하나 정도면 충분하다고 하고 그 다음 뭘 해야될지 ... 선생님의 공부법을 알려주시면 감사드리겠습니다

    • Favicon of http://maj3sty.tistory.com BlogIcon MaJ3stY 2018.06.14 23:36 신고

      음.. 일단 컴퓨터 공부부터 하시는게 좋을 듯 싶고 그런 다음에는 차근차근 포렌식 서적들을 보시는게 좋을 듯 싶네요.

  2. Favicon of http://boanchanggo.tistory.com BlogIcon JQ 2018.08.09 16:09 신고

    올만에 인사드리네요~ 플레인 비트에 계세요??? ㅎㅎ
    업무는 재미있으신지요?

    • Favicon of http://maj3sty.tistory.com BlogIcon MaJ3stY 2018.08.16 11:17 신고

      네 아직 플레인비트에 있습니다 ㅎㅎ

      업무는 아직도 재미있네요 :-)

      요즘은 뭐하고 지내시나요?!

이번에는 사용자의 행동과 관련된 정보들을 찾아 볼 것이다. 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 http://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

+ Recent posts