본문 바로가기

[+] Forensic

N Drive Forensic Artifact

글쓴이는 주변 분들을 대상으로 하나의 설문조사(?)를 했었다. 자주 사용하는 클라우드 서비스가 무엇이냐는 질문에 대한 답변을 조사하는 것이었는데 설문의 결과를 종합해 보니 어느정도 예상하는 순위들이 정해졌다.


1. N 드라이브

2. 다음 클라우드

3. U 클라우드

4. 아마존 클라우드

5. 구글 드라이브


글쓴이는 시간이 허락하는대로 위 5가지의 흔적들을 조사 해 포스팅하고자 한다. 이번 글은 당연히 N 드라이브에 대한 흔적들을 소개하고자 한다. 글쓴이는 이전에 클라우드 포렌식이란 주제로 글을 써 포스팅한 적이 있다. 그 글에서 클라우드의 현재 문제점 때문에 클라이언트 측의 장비를 중심으로 여러 증거들을 수집해야 한다고 했었는데 이 글에서 클라이언트에서 어떠한 흔적과 증거들을 발견 할 수 있는지 소개하겠다. 일단 클라우드 서비스 별로 남기는 흔적은 모두 다르므로 이 글에서 언급하는 흔적들이 모두 통용되는 흔적이 아니라는 것을 알아두기 바란다.


1. N 드라이브의 두가지 접근 방법과 그 흔적들

N 드라이브에 접근 해 서비스를 이용 할 수 있는 방법은 Windows PC를 기준으로 두 가지로 분류 할 수 있다. 첫 번째 방법은 네이버 측에서 제공하는 응용 프로그램 설치를 통해 NFS(Network File System)를 통하여 접근 하는 방법이고, 또 하나는 웹 브라우저를 통해 접근 하는 방법이다. 일단 N 드라이브 응용 프로그램을 이용한 접근 방법의 흔적부터 알아보자.


1.1. NFS를 통한 접근과 그 흔적

N 드라이브 응용 프로그램을 설치하고 실행하면 다음과 같은 로그인 창을 볼 수 있다.


[그림 1 - 로그인 창]


로그인을 하고 나면 다음과 같이 NFS 공유 드라이브가 생성 되며 이 드라이브를 통해 파일을 업로드하고 다운로드 할 수 있게 된다.


[그림 2 - N 드라이브 NFS]


이렇게 응용 프로그램을 설치 해 로컬에서 파일을 업로드하고 다운로드 할 수 있는데 응용 프로그램을 설치하게 되면 레지스트리와 사용자 계정 폴더에 흔적이 남게 된다. 다음은 레지스트리에 생성 되는 N 드라이브 응용 프로그램의 흔적들이다.


 - HKCU\Software\NHN_Corporation\NaverNDrive


위 경로에는 여러 value와 또 그 하위에 사용자 계정 명으로 된 키가 존재한다.


 * 참고 : 해당 키의 LastWritten 시간을 확인하면 계정의 로그인 시간 여부를 파악 할 수 있다. 만약 계정이 로그인 되어 있는 상태라면 해당 키의 시간은 해당 로그인 세션이 시작된 시간을 뜻하며, 현재 로그인이 되어 있지 않다면 해당 키의 시간은 마지막 세션 종료 시간을 의미한다. 이 이유는 계속해서 로그인과 로그아웃시 해당 키의 Recent Drive letter등의 키 data를 수정하기 때문이다.


[그림 3 - NaverNDrive 키에 생성 된 정보들]


자동로그인 설정 정보부터 자동 실행, 드라이버 버전, NFS GUID 등의 많은 정보들이 포함되어 있다. NaverNDrive 키에서 얻을 수 있는 포렌식적 정보는 최근의 로그인 했던 사용자 계정 정보를 가지고 있는 recent_id0과 NFS 드라이브의 GUID를 가지고 있는 NNFS가 있다. 또 사용자 패스워드 정보와 관련 있는 PKEY와 드라이브에 할당 된 드라이브 문자를 저장하는 Recent Drive letter도 있다.

만약에 N 드라이브의 응용 프로그램이 자동 로그인으로 설정되어 있다면 그 상태로 분석을 수행하면 되지만 자동로그인이 되어 있지 않거나 로그아웃 되어 있다면 위 정보를 이용해서는 직접적인 분석이 불가능하다. 이때는 N 드라이브 응용 프로그램의 로그를 분석 해 봐야 한다. 


 - Users\%User name%\AppData\Local\Naver\NaverNDrive\%사용자 계정명%


위 경로에는 NDNetIOLog.db 파일과 SyncLog 폴더가 존재하고 SyncLog 폴더에는 NDSyncLog.db 파일이 존재한다. NDNetIOLog.db 파일은 N 드라이브 내에서 파일의 이동과 삭제 정보를 저장하고 있으며, NDSyncLog.db 파일은 N 드라이브와 로컬 PC의 어떤 폴더가 동기화 되었다는 것을 알려주는 파일로 동기화 된 폴더와 디렉토리 등을 알 수 있다. NDNetIOLog.db 파일에는 두 개의 테이블이 존재하지만 이 두 개의 테이블 중 tb_io_log 테이블만 분석하면 된다.


[그림 4 - 파일의 이동 및 삭제 정보]


파일이 이동 되었을 때는 src_path 칼럼과 dest_path 칼럼에 데이터가 모두 존재하지만 삭제 된 파일의 경우 iotype에 Delete_to_trash 라는 데이터가 저장되면서 dest_path 칼럼에 데이터가 존재하지 않는다. 이를 통해 어느정도 드라이브에 어떤 파일이 있었고 어떤 파일이 어떻게 이동되고 삭제되었는지 확인이 가능하다. 


NDSyncLog.db 파일은 동기화와 관련 된 정보를 저장하는 파일인데 이 파일을 통해 로컬 PC의 어떤 폴더가 N 드라이브와 동기화 되어 있는지, 동기화 된 파일은 어떤 파일들인지 파악이 가능하다. 이 파일에는 세 개의 테이블이 존재하는데 tb_sync_conf_inf 라는 테이블은 동기화 정보가 저장되어 있는 테이블의 정보와 로컬 폴더, 동기화 시간, 동기화 상태의 정보를 저장하고 있다.

또 tb_sync_failure_list 테이블은 동기화에 실패한 파일의 경로를 저장하고 있다. 마지막으로 tb_file_info_[랜덤] 테이블은 동기화 된 파일의 정보를 저장하고 있다.


[그림 5 - tb_file_info_[랜덤] 테이블]


동기화 된 파일의 로컬 경로와 N 드라이브 경로 모두를 저장하고 있으며 파일 명 또한 저장하고 있다. NDNetIOLog.db 파일과 연계하여 분석하면 현재 동기화 된 파일 중 어떤 파일이 삭제되었는지, 남아있는지 파악이 가능하다.


1.2. 웹 브라우저를 통한 접근과 그 흔적

N 드라이브는 응용 프로그램말고도 웹 브라우저를 통해 접근이 가능하다. 웹 브라우저로 접근이 이루어졌는지 확인하고 싶다면 "http://ndrive2.naver.com" 문자열을 기준으로 검색하면 된다. 글쓴이는 구글 크롬을 이용하여 접근 했고 그 흔적을 찾아 보았다. IE라면 index.dat 또는 WebCacheV24.dat 파일을 분석하면 된다. 구글 크롬의 경우 History 파일들 중 현재 달(月)의 정보를 저장하고 있는 History 파일을 열고 pages_content 테이블을 분석하면 된다.


[그림 6 - 구글 크롬의 History 파일]


구글 크롬의 경우 열어본 페이지의 내용을 그대로 저장하기 때문에(c2body 칼럼) 정확하게 어떤 파일이 현재 N 드라이브에 존재하고 있는지 확인이 가능하다.


[그림 7 - c2body 칼럼에 저장되어 있는 페이지 정보]



2. N 드라이브에 존재하고 있는 파일 획득 방안

사실 이 부분은 기술적인 부분 보다는 합법적 능력과 사용자에게서 얻은 사용자 계정 정보가 필요하다. 사용자에게 사용자 계정 정보를 얻어 로그인 해 파일을 얻거나 사용자가 사용자 계정 정보 제공을 거부할 시 정확한 위법사실은 클라우드 서비스 업체에 알려 정상적인 경로를 통해 파일을 얻는 방법 밖에 존재하지 않는다.

이 두가지 방법외에 다른 방법, 특히 합법적이지 않은 경로를 통해 얻은 파일은 증거로 채택되기 어렵기 때문에 되도록이면 위 방법으로 증거가 될만한 파일이 존재하는지 파악해 존재한다는 증거를 근거로 해당 파일을 획득해야 할 것이다.




이렇게 클라이언트 측에서 획득 할 수 있는 N 드라이브의 흔적 또는 증거들을 알아보았다. 아직까지는 클라우드 포렌식에 있어 여러 문제점이 존재하기 때문에 클라우드 서버 자체를 분석하는데에는 무리가 따른다. 그러므로 이와 같이 클라이언트 측에서 해당 클라우드 서비스에 대한 여러 정보를 최대한 획득 해 중요 파일을 획득하는데 그 정보를 사용해야 할 것이다.