μTorrent Web* 분석 기법 * 2018년 개발된 웹브라우저 기반 토렌트 클라이언트 프로그램 |
I. 최근 불법촬영물 · 아동음란물 범죄동향
◦ 최근 불법촬영물·아동음란물의 유포 및 소지자 검거시, 피압수자의 PC에서 μTorrent Web이 활용된 흔적이 다수 발견됨
◦ μTorrent Web은 기존 프로그램(μTorrent Classic) 형식에서 웹 형식으로 바뀐 것으로, 다운로드를 하는 동안에도 스트리밍 형식으로 바로 영상을 볼 수 있음
※ 기존 프로그램은 다운로드 완료시에만 해당 동영상 플레이가 가능한 점에 비추어 볼 때, 앞으로 많은 사용자들이 활용할 것으로 예상됨
II. μTorrent Web 분석방법 공유 필요성
◦ μTorrent Web 개발사(BitTorrent Inc.)에서는 사용흔적을 확인할 수 있는 포렌식 분석 관련 문서는 제공하지 않음
◦ 2019. 10. 10. 현재까지 Google에서 ‘μTorrent Web’ 포렌식 관련 문서 및 웹페이지는 전혀 확인되지 않음(한글, 영문 포함)
◦ 테스트를 통해 μTorrent Web 설치 및 실행시, 남겨지는 아티팩트 등을 역으로 추정하는 방법으로 포렌식을 해야하므로 정보공유가 필수적임
III. μTorrent, BitTorrent의 특징 및 원리
【 μTorrent의 특징 】
◦ BitTorrent P2P 프로그램 중 가장 유명한 토렌트 클라이언트
◦ 윈도우, 맥, 리눅스, 안드로이드 및 탈옥된 iOS에서 사용 가능함
◦ μTorrent를 실행하는 컴퓨터는 외부장치(iOS, Android, USB 메모리 등)와 페어링하여 사용 가능함
【 BitTorrent의 원리 】
◦ BitTorrent는 트래커를 사용하여 클라이언트가 'seed'라는 피어(peer)를 찾을 수 있도록 함
◦ BitTorrent 프로토콜을 사용하면, 하나의 노드에서 파일을 다운로드하는 대신 호스트 풀(swarm)에 참여하여 서로 컨텐츠를 업로드/다운로드 할 수 있음
◦ 파일을 배포하려는 사용자는 먼저 작은 토렌트 디스크립터 파일(.torrent 파일: 오직 메타데이터만 포함됨)을 만들어야 함
◦ .torrent 파일을 BitTorrent 클라이언트에서 불러오면, DHT(Distributed Hash Table) 통신기능을 통해 다른 BitTorrent 노드(피어 또는 seed)들과 연결할 수 있음
◦ 배포되는 파일은 여러 조각들(SHA-1 암호화 해시로 보호됨)로 나뉘는데, 각 조각을 받은 피어들은 다시 해당 조각의 새로운 배포자가 됨
◦ BitTorrent 클라이언트는 완전한 파일을 얻기 위해 어떤 조각들이 필요한지 식별함
◦ 피어가 완전한 파일을 다운로드 하면, 이제 배포 seed가 됨
【 BitTorrent의 투명성 】
◦ BitTorrent는 참가자의 익명성을 보장하지 않음
◦ 연결된 피어들의 IP주소는 클라이언트 유저 인터페이스(User Interface) 또는 Windows의 netstat 명령어만으로도 쉽게 알 수 있음
◦ μTorrent 클라이언트를 포함한 BitTorrent의 표준 포트는 TCP/UDP 6881-6889 포트임(6969는 트래커 포트).
IV. μTorrent Web 분석 (포렌식적 접근)
【 μTorrent Web 기본 설치주소 】
◦ C:\Users\<User_Name>\AppData\Roaming\uTorrent Web\
【 μTorrent Web 구성파일(설정정보 등 저장) 및 로그파일 】
◦ 구성파일들(settings.dat, resume.dat, store.dat)에는 μTorrent Web 설정정보가 저장되며, utweb.log에는 에러로그 등이 저장됨
◦ resume.dat, store.dat는 설치 즉시 생성되나, settings.dat는
μTorrent Web을 실행하여 파일을 1회 다운로드 받으면 생성됨
◦ μTorrent 클라이언트가 종료되면, settings.dat 파일은 백업되고 .bak가 새로운 파일 확장자로 붙으며, store.dat 파일은 dat-journal 파일이 생성됨. resume.dat는 클라이언트가 종료될 때 상태 정보를 저장함
※ μTorrent Web과 달리, μTorrent Classic에서는 dat 파일(resume.dat, settings.dat, dht.dat, rss.dat)에 설정 및 로그 정보가 저장됨. μTorrent Classic 클라이언트가 종료되면, dat 파일들은 백업되고, .old가 새 파일 확장자로 붙음
【 BEncode 에디터를 활용한 분석 】
◦ BEncode(B-encode) : P2P 파일 공유 시스템인 BitTorrent에서 구조화된 데이터를 저장하고 전송하기 위해 사용되는 인코딩 방식
◦ μTorrent Web의 경우, .torrent 파일, settings.dat 파일, .ses_state 파일이 BEncode로 작성되어 BEncode 디코딩 도구를 이용해야 함
※ μTorrent Classic은 구성파일(.dat)들이 모두 BEncode로 작성되어 BEncode Editor로 볼 수 있었으나, μTorrent Web은 settings.dat, .ses_state 외 구성파일(resume.dat, store.dat)이 sqlite로 작성됨
◦ BEncode 디코딩 도구로는 BEncode 에디터* 등이 있음
※ 다운로드 주소 : https://sites.google.com/site/ultimasites/bencode-editor
【 .torrent 파일 분석 by BEncode Eidtor 】
◦ .torrent 파일은 BEncode로 작성되므로 BEncode Editor로 디코딩 하여 확인 가능함
◦ 해당 .torrent 파일에 대한 모든 트래커 사이트의 URL, 파일크기, 파일이름, 토렌트 이름 등이 저장됨
【 settings.dat 파일 분석 by BEncode Eidtor 】
◦ μTorrent Web의 settings.dat 파일은 프로그램 1회실행 후 생성됨
◦ settings.dat 파일은 μTorrent Web의 환경설정 데이터를 저장함
◦ 자동실행 여부, 새로운 다운로드 시 파일저장 위치 등 확인가능함
【 .ses_state 파일 분석 by BEncode Eidtor 】
◦ μTorrent Web의 .ses_state 파일은 μTorrent Classic에서 resume.dat의 peer6 필드 또는 dht.dat(Distributed Hash Table 네트워크에 연결시 필요한 정보가 저장)와 유사한 기능을 하는 것으로 추정됨
◦ nodes(l)[561]에서 ‘561’은 μTorrent Web과 통신하는 피어(peer)들의 총합을 의미하며, 561개의 각 Binary값은 IP주소:Port번호를 의미하는 것으로 판단됨
◦ 예를 들어, 위 nodes(l)의 첫 번째 Binary값인 ‘0x2EB66DBE9609’는 IP주소 46.182.109.190, Port번호 38409를 의미함
【 resume.dat 파일 분석 】
◦ μTorrent Classic의 resume.dat 파일은 BEncode로 작성되어 BEncode Editor로 볼 수 있었으나, μTorrent Web은 sqlite로 작성됨
◦ μTorrent Classic의 resume.dat 파일은 μTorrent 종료시 상태정보를 저장하였음. 예를 들어, 지금까지 다운로드한 파일 크기(bytes), 마지막으로 파일을 공유한 시각 등 각종 시간정보 및 특히 ‘peer6’ 필드 정보*를 저장함
* 연결된 다른 μTorrent 클라이언트들의 IP주소 및 포트번호를 저장하는 필드
◦ μTorrent Web은 Torrent 테이블 내 INFOHASH라는 마그넷 해시 코드(Magnet Hash Code)*만 저장됨
* 토렌트 배포수단에는 위에서 기술한 1) seed 파일을 이용한 방법과 2) 마그넷(magnet) 주소를 이용한 방법이 있음. 마그넷 해시 코드는 마그넷 주소(마그넷 링크)의 주요 구성부분임
(마그넷 주소 예시. magnet:?xt=urn:btih:마그넷 해시코드)
※ 마그넷을 이용한 경우와 seed 파일을 이용한 경우 차이점 : 1) 통상 트래커 정보가 없어 다운로드의 시작이 느리고(트래커 주소 추가기능도 존재하므로 이런 경우 차이 없음), 2) 다운로드 시작 전에는 파일정보를 알 수 없으며, 3) 비공개 토렌트의 경우 트래커 정보가 없어 마그넷 주소로는 다운로드 불가함 |
◦ 본 보고서의 .torrent 파일을 마그넷 주소로 변환 가능하며, 역으로 마그넷 주소를 .torrent 파일로 변환도 가능함
(https://grep.kr/torrent 등 온라인 웹사이트를 이용하여 변환 가능)
【 store.dat 파일 분석 】
◦ μTorrent Web의 store.dat 파일은 sqlite로 작성되었으며, μTorrent Classic에서는 없었던 구성파일임
◦ μTorrent Web의 설치시각, 마지막 실행시각 등 확인 가능함
◦ μTorrent Web의 공인 IP주소 확인 가능함
◦ 그 밖에 μTorrent Classic의 resume.dat 파일에 저장되던 시간정보 등이 UNIX Time 형식으로 저장됨
(https://epochconverter.com/ 등 웹사이트를 이용하여 GMT, KST로 변환 가능)
【 μTorrent Web 관련 윈도우 레지스트리 아티팩트 】
◦ μTorrent Web은 기존 μTorrent Classic 클라이언트와는 달리 다음 레지스트리키만 확인됨
◦ IE8부터 쿠키(cookie, 최대 4KB 데이터 저장 가능)의 추가된 기능인 Domstorage(최대 10MB 저장 가능)
◦ 프로그램 실행시 윈도우에서 프로그램 이름등 저장하는 MuiCache
- 토렌트 실행된 경우 아티팩트 확인됨
- 프로그램 이름 및 설치주소 외 시간정보 등 확인 불가함
◦ 마그넷 주소를 이용한 경우 기본 실행프로그램 설정값 저장
◦ 마그넷 주소를 이용한 경우 기본 실행프로그램 커맨드 저장
※ 비교 : μTorrent Classic 클라이언트 관련 윈도우 레지스트리 아티팩트 1. ntuser.dat\Software\Microsoft\Windows\CurrentVersion\Uninstall\uTorrent -> 버전 및 설치장소, 레지스트리 키 마지막 수정시각(= uTorrent 설치시각) 확인 가능함 2. ntuser.dat\Software\BitTorrent\uTorrent -> 레지스트리 키 마지막 수정시각 확인 가능함 (= uTorrent 설치시각) 3. ntuser.dat\Software\Microsoft\Windows\CurrentVersion\Explorer\ FileExts\.torrent\OpenWithList -> BitTorrent 멀티플 클라이언트가 설치된 경우, 아티팩트 확인됨 4. ntuser.dat\Software\Microsoft\Windows\CurrentVersion\Explorer\ RecentDocs\.torrent -> 최근 토렌트 파일이 접근된 경우, 아티팩트 확인됨 5. ntuser.dat\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\ OpenSavePidlMRU\torrent -> 토렌트 파일이 열렸거나 윈도우 대화창을 통해 저장된 경우, 아티팩트 확인됨 6. usrclass.dat\Local Settings\Software\Microsoft\Windows\Shell\MuiCache -> 프로그램 실행시 윈도우에서 프로그램 이름 등 저장됨 |
'논문(Paper) > 사이버범죄연구' 카테고리의 다른 글
효율적인 대면설문 기법 구축을 통한 해커 프로파일링 방안 연구 (0) | 2019.04.19 |
---|---|
내가 배우고 공부한 EnCase 의 모든 것 (0) | 2010.11.29 |
[졸업논문] A Forensic Analysis of the Windows Registry (0) | 2010.11.25 |
[KUCIS 프로젝트] A Forensic Analysis of the Windows Registry (0) | 2010.11.22 |
Complex-coordinated Cyber Terror Scenario (0) | 2010.11.22 |