ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • (2017) 안드로이드 기반 스마트폰 비휘발성 시스템 로그에 대한 분석
    Solar Beam 2023. 8. 7. 23:52

    1. 소스

    reference : https://www.dbpia.co.kr/journal/articleDetail?nodeId=NODE07299108 

     

    안드로이드 기반 스마트폰 비휘발성 시스템 로그에 대한 분석 | DBpia

    조재형, 이재형, 김소람, 이재형, 양승재, 이창훈, 김종성 | 디지털포렌식연구 | 2017.9

    www.dbpia.co.kr

     

    2. 정리

    1. 현재까지 모바일 포렌식은 주로 애플리케이션의 데이터베이스 파일이나 동적 로그 분석이 주를 이루었다.

     : (필요성) 시스템 로그는 리커버리 모드 진입, 유심 정보 등 기록하여 사용자 행위, 안티포렌식 행위 입증 가능

     : (정규화) 제조사·모델에 따라 시스템 로그의 파일명, 내용, 형식에 차이가 있기 때문에 정규화 필요

      : 이는 각 제조사마다 안드로이드 OS를 커스터마이징하여 사용하기 때문임

     

    2. 본 논문에서 시스템 로그를 확인한 안드로이드 기기는 다음과 같다. 각 휴대폰의 파티션을 확인하고, 그 중 시스템 로그가 저장되는 파티션을 찾아낸다. 시스템 로그에 저장된 정보를 분석하고 정규화 한다.

     : (삼성) SHV-E250S & SHV-E210S / android 4.4.4, SHV-E300L / 5.0.1, SM-J500N0 / 5.1.1, SM-920L / 6.0.1

     : (LG) LG-F320L / 4.4.2

     

    3. 안드로이드는 임베디드 리눅스 기반의 시스템이며, 모든 파티션이 mmcblk 형식의 파일로 관리된다. 

     : (내부 파티션에 대한 블록 장치명) cat /proc/partitions 명령어 활용

     : (블록 장치명에 대한 마운트 포인트) /dev/block/platform/dw_mmc/by-name 경로에서 ls -l 명령어 활용

     

    4. 제조사·모델마다 파티션의 갯수와 종류가 매우 다양하며, 같은 이름의 파티션도 저장하는 정보가 다르다.

     : (관점) 제조사가 정의한 각 파티션은 그 존재 목적에 따라 다양한 시스템 로그가 저장될 가능성이 있음 

     : (삼성) 삼성 기기는 12 ~ 28개의 파티션 확인

      : 바이너리 파티션을 제외하면 system, cache, userdata 파티션이 유의미

      : data 파티션의 log, misc, system, data 폴더와 cache 파티션의 recovery 폴더

     : (LG) LG-F320L에서는 39개의 파티션 확인

      : 마찬가지로 바이너리 파티션을 제외하면 fota, system, cache, userdata 파티션이 유의미

      : data 파티션의 anr, dontpanic, misc, system 폴더와 cache 파티션의 recovery, fota 폴더

     : (바이너리 파티션) 부팅 이미지나 백업 이미지로, 실질적으로 사용자와 관련된 시스템 로그는 미저장

     : (fota) firmware over the air의 약자로, 펌웨어 업데이트 관련 로그 기록

     : (system) 시스템 운영체제와 관련된 모든 파일이 저장

     : (cache) 앱에서 자주 사용하는 데이터, 리커버리 로그, 임시파일 등 저장

     : (userdata or data) 기기에 다운로드·설치된 앱과 앱 데이터, 사용자 설정 데이터 등 저장

     

    5. 부팅 모드에 따라 마운트 되는 파티션은 제조사마다 상이하다. 읽기 전용(Read only)으로 마운트된 것이 아니라면 시스템 로그가 저장될 가능성이 높으므로 분석 대상이 된다.

     : (일반 부팅 모드) 일반적인 사용을 위한 모드로, 리커버리 모드보다 더 많은 파티션이 마운트 됨

      : (삼성) /efs, /cache, /system, /data or /userdata 파티션은 모든 모델에서 마운트되었고, 일부는 다름

      : (LG) /modem, /persist, /drm, /sns, /mpt, /system, /cache, /userdata 파티션

     : (리커버리 모드) 공장 초기화, cache 파티션 초기화 등 특정 기능을 위한 모드

      : (삼성) /system 파티션 마운트, SM-J500N0 모델은 recovery mode에서 adb가 disable 되어 확인 불가

      : (LG) /data, /system 파티션 마운트, /system, /cache 등은 마운트 되지 않음 

     : (무결성) 무결성 보장을 위해 리커버리 모드로 부팅하여 로그를 수집하는 것이 바람직함

     : (유의점) 같은 파티션이라도 모드 별로 표시되는 이름이 달라질 수 있으므로 블록 장치명을 기준으로 해야함

     

    6. 시스템 로그를 분석하여 전원, 네트워크, USIM, 구글 계정, 애플리케이션, 리커버리 모드와 관련된 로그 및 기타 로그에 대한 정규화 작업을 진행하였다.

     : (전원) 전원 종료, 다시 시작, 부팅, 배터리 방전으로 인한 종료, firmware update로 인한 종료, USIM 제거 행위

      : (삼성) /data/log/power_off_reset_reason.txt 같은 로그에 null, Global Actions restart, no power, OTA 등 로깅

      : (LG) /data/system/dropbox/SYSTEM_BOOT@1470120408380.txt에 부팅에 관한 로그만 있음

     : (네트워크) wi-fi, 비행기 모드, 블루투스, 핫스팟 등 행위

      : (삼성) /data/misc 하위의 wifi, bluedroiddump, dhcp, bluedroid 등 디렉토리에 로그 확인됨

      : (LG) 비행기 모드 로그 없으나 블루투스로 주고받은 데이터 정보와 wifi 연결 실패 로그 추가 확인됨

     : (USIM) 유심의 현재 상태를 확인해야 하고, 유심 교체는 안티포렌식 행위이므로 중요

      : (삼성) /data/system 하위에 유심 상태(ABSENT, LOADED, IMSI), 통신사, 고유번호, 직전유심 정보 등

      : (LG) /data/data 하위 시스템 앱 패키지에서 유심의 현재 상태, 현재 유심 정보 등

     : (구글 계정) 새 계정 생성, 마지막 동기화 계정, 구글 로그인(마지막 로그인), Gmail 전송 행위

      : (삼성) /data/data 하위의 기본 앱 패키지 등에서 구글 계정 확인됨

      : (LG) 마찬가지로 /data/data 하위의 기본 앱 패키지 등에서 확인

     : (애플리케이션) 사용자가 특정 시간에 애플리케이션을 사용한 행위

      : (삼성) /data/anr 하위의 ANR(application not response), /data/system 하위의 recent task

      : (LG) /data/system 하위에서 앱에 접근한 기록, UID error, 알람 앱패키지 하위의 xml 파일

     : (리커버리 모드) 리커버리 모드로 부팅한 행위로 안티포렌식과 관련됨

      : (삼성) /data/log 하위의 recovery_log.txt 와 /cache/recovery 하위의 파일(최대 11개)

      : (LG) /cache/recovery/last_log.*(최대 11개)

     : (기타 로그) 위에서 살펴본 공통적 항목 외에도 제조사별로 추가로 로깅하는 것들이 있음

      : (삼성) 통화 drop, MMS, SD 카드 마운트, 배경화면, 펌웨어 업데이트 로그 기록

      : (LG) 카메라 앱, 기기 데이터 백업, 펌웨어 업데이트, 날씨(위치정보), 배경화면 로그 기록

     

    7. 시스템 로그를 분석하여 공장 초기화, 유심교체 등 안티포렌식 행위를 유추할 수 있다.

     : (공장 초기화) data 파티션의 모든 데이터를 wiping(zero-filling), cache 파티션의 일부를 wiping 함

      : (흔적) /data 파티션, /cache 파티션에 공장 초기화 직후 리커버리 모드 진입에 대한 로그가 생성됨

     : (유심 교체) 유심 교체의 정황을 명확이 입증하기 위해서는 이전 유심에 대한 정보가 저장되어야 함

      : 유심 상태인 ABSENT 이후에 LOADED가 기록되었다 하더라도, 동일한 유심을 재삽입한 것일 수 있음

      : 테스트 기기중 SM-J500N0, SM-920L 모델만 /data 파티션에 유심 교체에 대한 내용을 저장하여 입증 가능

Digital Forensics