Torrent Artifacts

Kail-KM
|2015. 10. 6. 22:27

개요


 요즘 시대에 토렌트는 많이 대중화 되어 있다. 컴퓨터를 하면서 어떠한 파일을 구하고자 할때 이제는 토렌트 파일을 먼저 검색하게 되며 가격도 무료에다가 구하고자 하는 파일들을 쉽게 구할 수 있기에 많은 용이함을 제공한다. 그렇기에 이러한 토렌트의 사용은 많아졌고 이는 포렌식에 있어서 충분히 분석할 가치가 있음에 충분하다고 생각한다. 

 가령 토렌트를 통하여 그 사람의 경향을 유추할 수가 있으며, 만약 불법적인 자료를 다운받았다면 이 또한 흔적으로 남으므로 조사에 있어서 충분히 도움이 된다. 따라서 이러한 토렌트가 남기는 아티팩트에 대하여 학습을 해보고자 한다.


사용 흔적


우선 크게 토렌트 파일은 두 곳에 아티팩트를 남긴다고 할 수가 있다. 하나는 레지스트리이며 다른 하나는 바로 지정된 디렉터리이다. 레지스트리를 먼저 살펴보자. 레지스트리의 경우 컴퓨터에서 사용자가 사용하거나 접근할 떄 마지막 접근 시간이 변하거나 새로운 키나 값이 추가되는 등의 변화가 존재한다. 그렇다면 토렌트로 인하여 나타나는 레지스트리 아티팩트는 무엇인지 살펴보고 그 후에는 디렉터리에 대하여 알아보자.

레지스트리

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs\.torrent

  위의 경로는 많은 곳에서 언급이 되는 RecentDocs 키이다. 여기서 토렌트 파일의 경우 .torrent의 형태로 실행이 되기때문에 이 곳에 기록이 남는다. 하지만 여기서 이상한 점이 존재한다. 필자의 컴퓨터에서는 실제로 토렌트를 많이 사용하는 편인데 여기에서는 하나의 목록만이 나와있다는 것이다.

 이는 필자가 Chrome을 사용하는데 크롬의 경우 웹페이지에서 파일을 다운받으면 크롬의 하단 부분에 다운로드 리스트가 나오며 그 리스트에서 해당 항목을 클릭하면 다운과 함께 바로 실행이 된다. 바로 이러한 실행 방식으로 인하여 레지스트리에서는 기록이 남지 않는 것이다. 즉, 만약 범죄자로 의심되는 사람이 이러한 방식으로 토렌트 파일을 실행한다면 이는 RecentDocs에 흔적이 남지 않으므로 유념하여야 한다.

*추가 :해당 키는 Explorer의 하위 키이기 떄문에 explorer에서 실행할 때만 남으며 크롬이나 IE에서 관련된 히스토리(로컬 파일 열람 흔적)을 볼때 토렌트 파일 존재

디렉터리

 디렉터리의 경우에는 아래에 나타난 경로와 같다. 여기서 Roaming 안에 uTorrent가 존재하며 여기에는 다운받을 때 사용되었던(사용 후 바로 삭제해서 제거된) 토렌트 파일들이 존재하는 것을 확인할 수가 있었다. 이는 파일을 다운받을 때 사용된 원래의 토렌트 파일과 같은 파일을 해당 디렉터리에 생성하는 것임을 알 수가 있으며 생성 시간이나 수정시간, 접근시간들을 통하여 언제 실행이 되었는지 등을 유추할 수가 있다.

%AppData%\Roaming\uTorrent


구조


 토렌트 파일도 하나의 증거가 될 수 있기에 삭제가 되었더라도 이러한 파일을 복구할 수 있도록 카빙을 위한 시그니처나 패턴을 찾아보려고 했다. 일반적인 토렌트 파일의 경우 아래와 같은 바이너리의 값을 가진다. 특히 드래그로 파랗게 표시한 부분이 바로 토렌트 파일에서 모두 공통적으로 존재하고 있는 하나의 파일 시그니처와 같이 존재하고 있다. 

 따라서 만약 토렌트 파일을 카빙하고자 할 때에는 위와 같이 헤더에 'd8:announce'를 찾으면 된다. 그리고 토렌트 파일의 바이너리를 살펴본 결과 NULL(\x00)의 값이 거의 존재하지 않았다. NULL이 존재하기는 하지만 거의 대부분 연속적으로 존재하지 않으며 일반적은 PE구조의 파일과는 많이 다른 양상을 보였다. 이는 다시 말해 토렌트 파일을 카빙할 때 헤더를 기준으로 삼고 이러한 특성(슬랙과 같은)을 이용하면 될 것 같다고 생각이 된다.

 사실 해당 토렌트 파일을 디스크에서 발견했다고 하더라도 꼭 카빙을 해야하는 것은 아니다. 대부분의 경우 토렌트 파일은 이름에서 많은 내용들을 유추할 수가 있으며 이를 통해 불필요한 카빙을 예방하므로 시간을 절약할 수가 있다(자동화된 툴을 가지고 할 경우는 예외). 해당 토렌트 파일의 이름은 바이너리에서도 확인이 가능하며 이를 확인하면 아래와 같다.

 name**;라는 문자열 뒤에 해당 토렌트 파일의 이름이 나와 있는 것을 확인할 수가 있었으며 이는 삭제된 파일을 카빙하고자 할 때 이름을 참고할 수 있는 하나의 좋은 단서가 된다. 이외에 더 참고할 수 있는 정보들은 아래에 표와 같이 정리되어 있다. 이러한 정보들을 통하여 PC에 남아있는 토렌트 파일에 대한 아티팩트를 이해하기에 도움이 된다.


Reference


http://maj3sty.tistory.com/1050

http://maj3sty.tistory.com/1070

https://www.sans.org/reading-room/whitepapers/detection/detecting-torrents-snort-33144

For-MD-Torrent-Forensics.pdf

'Forensic > Theory' 카테고리의 다른 글

How to Use Volatility  (0) 2015.10.14
$UsnJrnl 분석  (1) 2015.10.09
Retrieving Digital Evidence : Methods, Techniques and Issues  (0) 2015.10.06
Extract $MFT  (0) 2015.10.03
Practice USB Artifacts  (0) 2015.10.01