본문 바로가기
[보안 Archive] ~2017/etc.

Alexa forensics 논문 정리

by Joy L. 2020. 3. 28.
반응형
Digital forensic approaches for Amazon Alexa ecosystem 논문 정리 내용.
[논문]
https://www.sciencedirect.com/science/article/pii/S1742287617301974

 

 

• [Introduction]

 

알렉사에서 Cloud-native artifact를 수집할때 겪는 어려움:

1. 클라우드에 접근하기 위해서 user account가 필요함

2. 클라우드에서 삭제된 정보는 복구하기가 어려움

그래서 client-side 포렌식도 해야함

 

CIFT는 unofficial API들을 사용해서 알렉사에서 cloud native 아티펙트를 수집하고,  웹앱을 사용할때 생성되는 client side 아티펙트를 분석할 수 있음.

 

 

• [Alexa ecosystem]

 

[Fig1] 참고.

 

그림에 있는 Alexa는 인증, 데이터 관리, 로깅, Alexa voice service 등등의 다양한 클라우드 서비스를 포함함. (All amazon cloud platforms supporting the operation of Alexa ecosystem)

 

Alexa와 연동되는 앱을 실행 시키기 위해 사용되는 기기들을 companion client라고 함.

클라우드를 통해 Alexa를 관리하는데 companion client가 필수.

그래서 웹 브라우징이 가능한 기기들은 다 Alexa ecosystem의 사용과 관련된 디지털 증거를 가지고 있을 가능성이 있음.

 

 

• [분석 전략]

 

• Hardware

(하드웨어 부분은 해당이 없다고 판단해서 생략)

 

• Network

포렌식적으로 중요한 아티펙트들은 id&password로 새션이 생성된 후에 encrypted connection으로 전송됨.

 

• Cloud

Unofficial API를 알아내고 cloud-native 아티펙트를 찾기 위한 분석을 함.

 

• Client

클라이언트에서 발견되는 아티펙트를 cloud-native 아티펙트와 함께 사용해야함.

 

• [Existing works]

 

Cloud forensics 2가지 방법:

1. Client-based cloud forensics

2. Cloud-native forensics

 

Echo의 경우 계정, alexa와의 interaction 등에 대한 의미있는 SQLite database랑 web cache 파일들이 있음

 

Companion client에서 Client-centric 아티펙트들을 먼저 찾고, 그 아티펙트들을 활용해서 Cloud-native 포렌식의 결과을 향상해야함.

 

 

• [이 사람들이 찾은거]

 

• Test environment

[Table2] 참고.

 

테스트 환경에 브라우저는 크롬 밖에 없는데, 다른 브라우저들은 캐시에 의미있는 데이터를 저장하지 않아서 chrome만 사용함.

 

• Unofficial Alexa API & native artifacts

Native 아티펙트들은 JSON 포맷으로 돌아옴.

 

이 사람들이 찾은 Unofficial API 들은 Appendix A에 정리되어있음. 참고하셈.

그리고 [Fig 2]에 몇가지 기능들이 어떤 API에 해당 되는지 나와있음.

 

 

UNIX 타임스탬프를 포함하고 있는 데이터들은 device preference API에서 확인 되는 타임존으로 user activity의 reconstruct를 허용하는것에 대한 증거가 될 수 있다. 잉? (S18 패이지에 2번째 칼럼에 원문 참고요망;;;)

 

필요하다면 Utterance API를 사용해서 음성 파일을 다운로드 할 수 있음. (챌린지에서 이미 제공된 음성 파일이 다 인지 아니면 더 있는지 확인해야하나?)

 

• Client-centric artifacts

Companion client에 alexa 관련된 정보를 가지고 있는 artifact의 위치는 [Table 3]을 참고.

 

• Alexa 안드로이드 모바일 앱 DB

2개의 SQLite 파일을 사용함:

1. Map_data_storage.db

2. DataStore.db

 

Map_data_storage.db는 현재 로그인 돼있는 사용자에 대한 토큰 정보를 가지고 있음. 로그아웃하면 삭제됨. 그런데 삭제된 정보의 일부는 SQLite DB의 사용되지 않은 영역과 journal file에서 찾을 수 있음.

 

DataStore.db는 to-do list와 shopping list를 가지고 있는데, Appendix A에 나온것 처럼 todo API를 사용하면 얻을 수 있다.

 

• 안드로이드 WebView 캐시

알렉사는 웹 기반 어플이기 때문에 WebView class를 사용해서 컨텐츠를 보여줌. 그래서 cloud-native 아티펙트들이 WebView에 의해 cache 되었을 가능성이 있음.

캐시 파일들은 [Table 3]을 참고.

정보 추출하는건 [Fig 3] 참고.

 

• Chrome web cache

Chrome cache system에서, Alexa native 아티펙트를 포함하고 있는 데이터 스트림은 주로 data block file(data_#)에 저장됨. 그래서 모든 캐시 entry를 파싱해서 데이터 블럭 파일 안에 있는 데이터 스트림을 확인해야함.

알렉사 관련된 캐시들이 가진 2가지 데이터 스트림:

  1. HTTP header를 위한 스트림
  2. 캐시된 데이터 자체

 

 

• [CIFT 설계 및 구현]

 

• 설계

(그림 따로 올리는거 참고 ㅎ)

 

• 구현

 

(설계를 바탕으로 파이썬 패키지를 만들었다고 함. [Table 4]에 샘플있음. 추후에 공개하겠다고 나와있는데, 아직 공개된지는 모르겠음.)

 

alexa관련 아티팩트를 관리하기 위해 정규화된 DB schema를 만들었음.

12t_csv (by log2timeline) 포맷의 타임스탬프로 아티팩트를 정규화했음. (Appendix B가 예시임.)

 

 

• [CIFT 결과]

visualization 했다는 내용인데 걍 kibana 사용해서 했고, 타임라인 분리해서 visualize했다는 내용임.

 

반응형

댓글