[논문 리뷰] 삼성 스마트폰 파일 공유 어플리케이션에 관한 디지털 포렌식 연구

2024. 2. 2. 21:45논문 리뷰/보안-디지털포렌식

*본 글의 모든 내용, 그림, 표 출처는 논문 원문에 있습니다.

https://dcollection.korea.ac.kr/public_resource/pdf/000000277511_20240202162023.pdf

[출처] 이상진. (2023). 삼성 스마트폰 파일 공유 어플리케이션에 관한 디지털 포렌식 연구. 고려대학교 대학원


 파일 공유 시스템은 산업기말 유출과 같은 정보 유출로 이어질 수 있고, 음란물 등의 불법 자료 공유와 같은 범죄로 이어 질 수 있고, 이는 사회 전반적으로 큰 피해를 줄 수 있다. 따라서 모바일 기기를 사용하는 사용자 간의 파일 공유 행위를 입증할 수 있는 디지털 포렌식 관점의 분석의 필요성이 대두되었다. 

 본 연구에 사용된 기기 및 소프트웨어에 관한 정보는 다음 표와 같다. 

Nearby Share

-구글에서 만든 대용량 파일 전송 기능으로 와이파이와 블루투스, 위치정보를 확인하여 근거리에 있는 디바이스에 다이렉트로 사진/동영상/문서 등의 파일 공유 기능

Nearby Share를 통한 파일 공유 동작 원리

*Nearby Share를 통한 파일 공유 동작 원리를 파악하기 위해서는 BLE 영역과 네트워크 영역, 이렇게 두 가지 영역을 분석해야 동작 원리를 파악할 수 있는데, 이 절차는 다음과 같다. 

A. 클라이언트가 상대방 기기를 탐지

1) 공유하고자 하는 파일을 선택 후 Nearby Share 실행

2) BLE 광고 채널에서 광고 패킷 발생

3) 광고 패킷을 탐지한 주변 기기에서 "Nearby Share를 사용 중인 기기가 있음" 알림 배너 팝업

4) 알림 배너를 터치한 다음 파일을 공유받을 준비 완료

B. 클라이언트 기기 화면에 상대방 기기 이름 표시

1) 동일 네트워크상에 있는 두 기기는, mDNS를 통해 Nearby Share 서비스 사용이 가능한 기기 탐지

2) 알림 배너 클릭과 동시에 상대방 기기에서 클라이언트의 탐색에 응답

3) 상대방 기기의 응답 패킷에 기기의 IPv4, IPv6, WiFi MAC, Bluetooth MAC, User Name 등의 정보 포함

4) 응답 패킷 정보 기반으로, 클라이언트 공유 화면에 Nearby Share 서비스 이용이 가능한 상대방 표시

C. 클라이언트와 상대방 기기 간의 통신

1) 클라이언트 기기와 상대 기기 간의 TLS(transport Layer Security) 연결 후 데이터 교환

 Nearby Share를 통해 공유된 파일의 중요성 : 

-이를 통해 공유된 파일의 메타데이터인 생성, 수정, 접근 시간이 변경되고, 데이터 변조는 없으며, 해시값 또한 변화가 없음

=> 증거의 원본성이 유지되며 파일에 대한 임의의 조작이 없는 한 발신자 기기에 저장된 파일과 수신자 기기에 저장된 파일이 동일한 파일인 것을 입증 가능

*파일 공유 행위를 수사하기 위해서는 발신에 대한 정보가 있어야 하나, Nearby Share을 통해서는 확인 불가

*Nearby Share를 통해 공유받은 아티팩트는 안드로이드에서 다운로드 파일을 관리하는 패키지인 'download.db' 파일과 'external.db' 파일에 저장됨 -> 두 파일 모두 기타 다운로드 기록이 저장되어 Nearby Share을 통해 다운로드된 파일을 구분할 필요가 있음

->'download.db' 파일은 'Nearby Share을 통해 다운받음' 문구를 통해 구분 가능

->'external.db' 파일은 'non-dwnldmngr-download-dont-retry2download' URI(Uniform Resource Identifier)가 같이 기록됨

Quick Share

-BLE 패킷을 사용하여 근거리 기기를 탐지하고 네트워크를 사용하여 파일을 전송

Quick Share를 통한 파일 공유 동작 원리

*Quick Share를 통한 파일 공유 동작 원리를 파악하기 위해서는 BLE 영역과 네트워크 영역, 이렇게 두 가지 영역을 분석해야 동작 원리를 파악할 수 있는데, 이 절차는 다음과 같다. 

A. 클라이언트가 상대방 기기 탐지

1) 공유하고자 하는 파일을 선택 후 Quick Share 실행

2) BLE 광고 채널에서 광고 패킷 발생

3) 광고 패킷을 탐지한 주변 기기에서 응답 패킷 발생

4) 클라이언트 Quick Share 화면에 상대방 기기 이름 팝업

B. 클라이언트가 공유할 상대 선택

1) 동일 네트워크 상에 있는 두 기기는, mDNS를 통해 Quick Share 서비스 사용이 가능한 기기 탐지

2) 상대방 기기의 응답 패킷에 기기의 IPv4, IPv6, WiFi MAC 등의 정보 포함

C. 클라이언트와 상대방 기기 간의 통신

1) 클라이언트 기기와 상대 기기 간의 TLS 연결 후 데이터 교환

*Quick Share은 안드로이드 버전 10 이상과 OneUI2.0 이상의 Samsung 모바일 기기에서 사용 가능

  Quick Share을 통한 파일 공유 행위 아티팩트는 'share_live.db' 파일에 저장됨

devices 테이블, Quick Share 이용 중에 탐지된 주변 기기의 이름 표시됨

-탐지된 주변 기기 중, Quick Share을 통해 파일 공유를 진행 했다면, 공유된 파일의 크기, 전송 시간 등의 정보가 저장되어 있음

request_accept 테이블, 발신자가 파일 공유 요청을 전달한 후 상대방이 파일 공유를 수락한 행위에 관한 아티팩트

-상대방 사용자 이름, 파일 공유 상태, 공유한 파일 개수, 공유한 파일 이름 등의 정보 저장되어 있음

Quick Share 수신 아티팩트

1) 'inbound_transfer.db'의 'status_tbl' 테이블

'inbound_transfer.db'의 'status_tbl' 테이블을 나타낸 것으로, 발신자 정보와 공유 상태 등의 정보가 저장되어 음
위의 'ststus_tbl'의 'status'칼럼에 들어갈 수 있는 상태 값

2) 'inbound_transfer.db'의 'UrisDB6' 데이터베이스 파일

'UrisDB6'의 'DownloadProgress' 테이블

*해당 테이블은 [그림 7]에서 세 개의 레코드 중 첫 번째 레코드만이 'Alice'로부터 정상적으로 수신 받음

-'UrisDB6' 데이터베이스의 'DownloadProgress' 테이블 또한 한 개의 파일만이 정상적으로 수신되었음

-공유된 파일의 크기로 두 데이터베이스에 기록된 정보가 동일한 파일 공유 행위임을 유추 가능

=> Quick Share를 통해 공유된 파일은 원본성이 유지되며 파일에 대한 임의의 조작이 없는 한 발신자 기기에 저장된 파일과 수신자 기기에 저장된 파일이 동일한 파일인 것을 입증 가능

Private Share

-Samsung OneUI3.0 이상에서 사용 가능한 Private Share는 블록체인 기법을 통해 보안성이 강화된 파일 공유 어플리케이션

-공유된 파일을 어플리케이션 상에서만 확인 가능

-공유받은 파일을 다른 어플리케이션을 통해 열람하는 것이 불가능

-어플리케이션 화면 캡처 혹은 공유받은 파일을 저장하는 것은 불가능

Private Share의 공유 대상 선정 방법

-사용자 번호를 이용해서 선정

만약, SIM 카드를 사용하는 경우 -> 사용자의 연락처를 통해 공유할 수 있음

SIM 카드를 사용하지 않는 경우 -> 열 자리의 무작위 숫자가 생성되고, 생성된 무작위 번호를 통해 공유할 사용자를 선정할 수 있음

private Share의 데이터 생성 결과
Private Share를 통한 파일 공유 행위로 인해 생성되는 아티팩트를 정리한 것
[그림 9] Private Share의 발신 및 수신 과정의 시작
사용자 초대 과정 중에서 발생하는 아티팩트 나열

사용자 간의 파일을 공유하기 위해 우선 상대방을 초대

파일 공유까지의 과정 중에서 발생하는 아티팩트 나열

상대방이 초대를 수락한 경우 파일 공유를 할 수 있게 된다. -> 마지막으로 파일을 공유받은 행위는 [그림 11]과 마찬가지로 'RECEIVED' 형태로 저장된다. 

 공유 받은 파일을 열람하는 행위 => 파일을 선택하고 열리는 과정은 'OPEN'으로 저장

 공유 받은 파일을 불러오는 과정은 'DOWNLOADED'로 구분됨

-> 모든 행위에 대한 아티팩트는 행위가 수행된 시간 값과 함께 저장

Dropship

-'Galaxy Store'에서 별도의 설치를 통해 사용할 수 있는 삼성이 제공하는 파일 공유 서비스

-Samsung 클라우드에 공유할 파일을 업로드하고, 업로드된 파일에 대한 링크를 공유하는 방법으로 파일을 공유하며, 링크에 접속만 할 수 있다면 Samsung이 아닌 다른 제조사 기기에서도 간편하게 공유된 파일을 다운로드 받을 수 있음

Dropship을 사용해 파일을 공유한 행위에 대한 흔적을 찾을 수 있는 아티팩트 목록을 나열한 것

우선, Dropship의 아티팩트 중 'history_box_1.hive' 파일에는 Dropship을 통해 파일을 공유하거나 공유받는 행위에 대한 아티팩트가 저장되어 있음

'history_box_1.hive' 파일의 데이터가 저장된 단위

공유하거나 공유받은 파일의 링크 주소가 기록됨

-> 공유하거나 공유된 시간 이후부터 공유 링크 유효 시간 이후인 공유 만료 일시가 기록

*'history_box_1.hive' 아티팩트를 통해서 언제 어떤 링크를 통해서 파일을 공유하였거나 공유 받았는지 확인 가능

'keyword_box_1.hive'는 Dropship을 사용하면서 공유하거나 공유받은 링크에 사용된 영문자가 기록됨

(이때 영문자는 소문자만 가능, 최대 10개의 영문자를 사용할 수 있음)

 공유받은 파일이 이미지일 경우, 캐시 이미지 파일이 'cacheimage'에 저장되며, 반대로 공유한 파일의 경우, 'thumbnail' 폴더에 공유한 이미지 파일의 썸네일 이미지가 저장됨

여태 다룬 파일 공유 어플리케이션의 발/수신 아티팩트 경로를 정리한 것
파일 공유 어플리케이션의 아티팩트를 수집 시점별로 구별

 

파일 공유 어플리케이션 아티팩트 분석 도구

1) 파일 공유 어플리케이션에서 사용된 인물 정보를 정리한 'contact_list' 테이블 이용

해당 테이블에는 Quick Share의 탐지 기록과 Private Share에서 파일을 주고 받은 사용자 고유 번호 저장됨

-> 이를 통해 사용자가 다른 어떤 사용자를 탐지하였는지, 누구와 직접적으로 파일을 공유했는지 파악 가능

2) 세 가지 파일 공유 어플리케이션별로 공유 행위를 기록하는 'nbu_share', 'quick_share', 'private_share' 테이블 존재

3) 세 가지 파일 공유 어플리케이션을 통한 공유 행위를 종합해서 확인할 수 있는 'all_share' 테이블 존재

'all_share' 테이블의 데이터는 사용자가 언제 어떤 파일 공유 어플리케이션을 통해 어느 파일을 누구에게 공유하였는지 파악하는 증거자료가 될 수 있음

PoC 도구가 동작하는 과정

1. 분석 대상이 되는 모바일 기기에서 내부 저장소 추출

2. Nearby Share의 경우) 수신 정보를 확인할 수 있는 'external.db'와 'database.db'파일에서 Nearby Share을 통해 수신된 파일 정보 획득가능

Quick Share의 경우) 'share_live.db'와 'external.db'에서 파일 공유 흔적 수집 가능

Private Share의 경우) 어플리케이션 사용 정보가 기록된 'ps.log' 파일과 발/수신 등의 정보가 기록된 'transaction_database.db' 파일을 추출하여 어플리케이션 사용행위 입증 가능

본 연구의 한계점

1. 관리자 권환을 획득하지 않은 모바일 기기에서의 데이터 수집은 제한적임

2. 온전한 분석을 위해서는 취약점 기반으로 데이터를 수집할 수 있는 도구가 요구됨

3. Nearby Share는 다른 파일 공유 어플리케이션에 비해 수집할 수 있는 단서가 제한적

Private Share는 단서를 비교적 더 많이 얻을 수 있으나 공유된 파일의 원본을 확인하기 위해서는 암호화되어 저장된 파일을 복호화해야한다는 점이 단점