본문 바로가기

[+] Forensic

BitTorrent Sync에 대하여

 2013년 후반기에 전 세계에서 가장 많이 쓰는 BitTorrent를 개발한 회사에서 또 하나의 야심작을 개발하여 대중들에게 내놓았다. 기존에 있던 몇몇 클라우드들의 독점을 막기 위해 자신들의 장점인 P2P 기술을 이용 해 퍼스널 클라우드 서비스를 제공한 것이다.

간단하게 말하면, 개인이 자신이 소유하고 있는 PC에 클라우드 서버를 구축하여 플랫폼과 기종 상관없이 데이터를 공유해주게 한다는 것이다. 이를 가능하게 하는 소프트웨어의 이름, 그리고 프로젝트 명을 BitTorrent Sync라 하여 현재 베타버전을 선보이고 있다.


 베타버전이기는 하나 전세계적으로 이미 사용자가 200만을 넘어서 급격한 인기추세를 보이고 있는데, 아래는 한 기사에서 발췌한 자료 이미지이다.


그림 1 - Dropbox와 비교한 BitTorrent Sync의 사용 추세


 이렇게 급격하게 사람들이 사용하는 이유는 무엇일까? 정리해보자면 몇가지가 있는데 이는 다음과 같다.


 - 제한 없는 트래픽 : 해당 서비스는 개인 PC를 이용하는 것이기 때문에 개인 PC에 인터넷만 연결되어 있다면 무제한으로 클라우드 서비스를 이용 할 수 있다.


 - 모든 플랫폼을 지원 : 초창기 서비스 때는 아니었지만 최근에 들어 iOS까지 지원하여 현재는 모든 플랫폼에서 사용 가능하여 모든 이들의 요구를 충족하였다.


 - 프라이버시 보호 : 기존의 클라우드 서비스들은 결국 다른 회사에 내 정보를 위탁하는 개념이었다. 이런 이유로 클라우드 서비스 회사들은 해커들의 많은 공격을 받았는데, 해당 서비스를 사용하면 자신의 컴퓨터에 자신의 데이터를 저장하는 경우가 되어 일반 클라우드 서비스를 사용하는 것보다는 안전하게 된다. 또 현재 트래픽 암호화 등을 서비스하기 위한 움직임이 있어 앞으로 더 안전해질 것으로 예상되어 사용률이 늘어난 것으로 보인다.


 - 빠른 다운로드 속도 : P2P 기술을 사용하기 때문에 회사나 어떤 그룹에서 이 서비스를 사용한다면 참여하는 사람이 많아 질수록 속도는 더욱 더 빨라진다는 특징이 있다.


 위에서는 장점만을 이야기하였지만 단점도 존재하지 않을까? 단점을 언급하자면 다음과 같다.


 - 클라우드 서버 PC는 항상 ON : 클라우드 서버 PC가 꺼져 있으면 파일 공유가 불가능하기 때문에 항상 서버 PC는 켜져 있어야 한다.


 - 모바일 기기의 데이터 소모 : 동기화라는 부분 때문에 모바일 기기의 데이터(3G, 4G 등)이 일시적으로 많이 소모 될 수 있다. 하지만 이는 동기화 옵션 설정으로 예방 할 수 있다.


 큰틀에서 본다면 단점도 분명히 존재하지만 단점을 수용할만큼 장점의 매력적이기 때문에 해당 서비스를 이용하는 사람들이 급격하게 늘어나는 것으로 보인다.


1. 디지털 포렌식 관점에서의 BitTorrent Sync

 이런 추세는 사실 디지털 포렌식에서는 조금은 반갑게 보이기도 한다. 왜냐하면 기존에 클라우드 서비스에 대한 디지털 포렌식을 수행 할 때 고려되었던 데이터의 위치 등에 대한 문제가 어느정도 해결되기 때문이다. 클라우드 서버에 대한 압수수색등을 할 때 데이터의 위치 등을 고려해야 하기 때문에 증거와 관련된 데이터 압수등이 불가할 때가 있었는데 해당 서비스는 개인 PC에서 클라우드 서버를 구축하기 때문에 기존에 압수수색처럼 증거를 압수할 수 있기 때문이다.

해당 서비스는 P2P의 윗 단에서 행해지는 서비스이므로 기존의 BitTorrent를 대상으로 한 디지털 포렌식과 대부분 비슷하나 사용되는 소프트웨어의 특징이 조금 다르므로 이 글에서 이 부분을 짚고 넘어가보도록 하겠다.


 1.1 동기화 코드

처음에 BitTorrent를 설치하면 동기화를 위한 코드를 서버 PC 측에서 확인 할 수 있다. 해당 코드를 클라이언트 PC에서 입력하면 동일한 코드를 가진 서버/클라이언트 PC는 동기화를 통해 데이터의 공유가 이루어진다.


그림 2 - 동기화 코드 입력 화면(출처)


해당 코드는 초기 설치 때 설정하는 동기화 폴더에 숨은 파일(파일명 .SyncID)로 서버와 클라이언트 모두 존재한다. 파일로 존재하기 때문에 파일을 덮어씌우는 행위만으로도 서버와 동기화가 가능하다.


그림 3 - 동기화 코드 파일


 1.2 업로드 파일 Archive

동기화 폴더에 보면 숨김 속성으로 .SyncArchive 폴더가 존재한다. 해당 폴더는 해당 클라이언트 PC가 동기화를 했던 파일들의 복사본이 존재한다. 


그림 4 - 동기화  된 파일들의 복사본


그러므로 서버에 접속하지 않아도 쉽게 클라이언트가 공유한 데이터들을 수집 할 수 있다. 파일을 건드리지 않았다면 시간 값 모두 공유한 시각을 나타낸다.


 1.3 데이터 목록 유지 DB

 클라우드 서버 PC의 경우 아래 경로에 SQLite3 파일로 서버에 업로도 된 파일들의 목록을 유지한다.


C:\Users\Administrator\AppData\Roaming\BitTorrent Sync


그림 5 - BitTorrent Sync의 여러 가지 파일들


해당 DB 파일은 간단한 테이블로 구성되어 있다. file 테이블과 meta 테이블로 구성되어 있는데 공유된 파일 또는 데이터의 목록은 file 테이블에 저장되어 있다.


그림 6 - 공유 된 데이터 목록


 1.4 기타

BitTorrent Sync의 여러 가지 파일들이 있는 곳에서 sync.log를 보면 동기화 로그를 볼 수 있지만, 프로그램이 종료되면 로그는 모두 삭제 된다. 또 sync.pid 파일은 프로그램의 실행 당시 프로세스 아이디를 가지고 있다. sync.dat과 settings.dat 파일은 동기화 옵션과 프로그램 설정 값을 저장하고 있다. 형태는 토렌트 프로그램의 설정파일과 같아 쉽게 분석이 가능하다.

마지막으로 윈도우의 경우 레지스트리를 살펴보아야 하지만 살펴본 결과, 특징적인 흔적을 남기지 않았기 때문에 이 글에서는 따로 언급하지 않는다. 또 프로토콜 또한 데이터 공유를 위한 BitTorrent 프로토콜과 데이터 전송을 위한 UDP 프로토콜을 사용하는데 기존의 BitTorrent 프로그램과 동일하기 때문에 이 글에서 언급하지 않도록 하겠다.


결국 사용자가 따로 무엇을 건드리지 않고 그대로 사용한다면 파일이 삭제가 된다 하더라도 쉽게 공유 된 파일들의 데이터를 획득 할 수 있고 서버와 클라이언트를 분석하면 알고자 하는 당시의 환경과 공유 상태, 파일 원본/목록을 구현 할 수 있다.



2. 보안 관점에서의 BitTorrent Sync

 역시 편리한 기능은 악의적으로 사용되기 쉽다. 현재 베타버전이지만 개발자 API를 제공하고 있는 만큼 악성코드에 사용될 가능성이 많다. 더군다나 P2P 기반이기 때문에 웜 형태의 악성코드가 해당 서비스의 API를 사용 해 자신을 전파한다면 그 속도는 기존의 웜 전파 속도보다 더 빠를 것이다. 여기에 트래픽 암호화까지 지원된다면 분석가들의 분석은 쉽지 않을 것이다.



정말 재밌는 서비스이고 앞으로의 성장을 지켜볼만한 가치가 있는 것 같다. 보안측면에서도 기술의 발전을 지켜보고 이를 악용하는 사례에 대해 대처하기 위해 선행 연구가 지속되어야 할 것으로 보인다.