본문 바로가기
잡동사니

[디지털 포렌식 개념]

by L3m0n S0ju 2021. 9. 17.

 

 

모바일 포렌식의 특징

 

1. 제조사, 하드웨어, 기능의 다양성 + 짧은 제품 개발 주기 -> 다수의 모델

2. 클라우드 환경, IoT 시대로 인한 기기 중심이 아닌 계정 중심의 서비스 제공

 

 

 

 


디지털 포렌식 수행 절차

 

수사 흐름

============================================================================

고소.고발       =>          경찰          =>        검찰           =>           법원              =>       유죄.무죄

----------------------------------------------------------------------------------------------------------------------------------

                  신고                        송치                       기소                            재판

============================================================================

 

 

 

 

 

1단계: 준비

 

사건이 발생하기 전에 미리 준비

 

NIST의 CFTT 프로젝트는 디지털 포렌식 도구의 신뢰성 검증을 위한 프로젝트이다. 과정은 아래와 같다.

 

대상 범주 및 도구 선정 => 명세서 개발 => 도구 테스트

 

 

 

1~2단계: 현장 대응

 

현장 통제와 보존

 

 

 

 

2단계: 수집

 

 

 

 

2~3단계: 증거 보존 및 이송

 

관리 연속성 -> 디지털 증거의 수집, 이송 및 분석 과정에서 증거물의 보관 주체들 간의 연속적인 승계 내역을 기록함으로써, 디지털 증거가 최초 수집된 상태 그대로 어떠한 변경 없이 관리되었음을 입증하는 것

 

 

 

 

3단계: 분석

 

데이터 추출 -> 데이터 분류 -> 상세 분석

 

 

 

 

3~4단계: 표현

 

시간 정보가 포함된 시스템 아티팩트를 대상으로 타임라인 정렬함으로써, 사건의 원인과 결과를 한눈에 확인 가능\

 

 

 

 

4단계: 보고

 

보고서 작성

 

 

 

 

 


디지털 데이터 표현

 

아티팩트 -> 로그, 기록, 사용 흔적

 

 

 

 

ASCII - 제어부호

 

줄바꿈 : LF, CR

 

라인피드 (Line Feed) : 현재 위치에서 바로 아래로 이동 -> \n, 0x0A

캐리지리턴 (Carriage Return) : 커서의 위치를 앞으로 이동 -> \r, 0x0D

 

운영체제마다 줄바꿈 정의가 다르다.

 

Windows / DOS -> CRLF, 0D0A

Unix / Linux -> LF, 0A

 

 

 

 


데이터 수집 종류

 

수집대상 -> 플레시 메모리, 물리 메모리(RAM), 외장저장장치 (microSD, OTG), SIM card

 

 

 

외부저장장치 및 usim -> 별도의 보호 메커니즘이 없어 전용 리더기로 접근만 되면 데이터 획득 가능

 

 

 

 

 

 

Chip-off

 

물리적으로 플래시 메모리 칩 분리 → 칩 리더기를 통해 이미징 → 리볼링(Reballing)

 

물리적으로 분리하는 기법 : 모든 임베디드 기기에서 사용 가능 (IoT 기기 포함)

 

플래시 메모리 훼손 가능성, 숙련된 노하우, 기술 요구

->기기 자체가 손상된 경우 (침수, 화재 등), 기기 훼손보다 데이터 확보가 우선시 되는 경우

 

 

 

Debug Port - JTAG

-> 요즘은 제거해서 나옴 -> 느리고 불안정해서 잘 안씀

 

Debug Port - UART

 

 

AP 프로토콜

-> 제조사별 펌웨어 관리를 위한 비공개 프로토콜 존재

 

 

 

 

Rooting -> Firmware flashing, 앱설치

 

최근에는 code signing으로 boot.img 파일에 변화가 있으면 해시값이 달라지므로 접속이 안된다. 추가로 하드웨어 레벨에서도 code signing이 적용되어 더더욱 루팅하기 힘들어졌다. 따라서 요즘에는 AP 프로토콜의 취약점을 이용해서 데이터에 접근한다.

 

 

 

 

 

 


Firmware Flashing

 

스마트폰 부팅 모드

 

부트로더 모드 -> 안드로이드 부팅 이전에 실행되는 프로그램

리커버리 모드 -> 시스템 장애시 복구를 위해 공장초기화, 캐시 삭제등의 용도로 사용 -> PC의 안전모드와 비슷

-> 루팅할때 데이터 수집이 목적이라면 데이터 훼손을 최소화하기 위해 리커버리 모드로 부팅한다.

 

 

안드로이드 램디스크 수정을 위한 단계별 과정

 

1. 펌웨어 파일에서 recovery.img 식별 -> tar

 

-> img 파일을 hxd로 열어보면 안드로이드 파일임을 알 수 있다. 

 

2. recovery.img 파일에서 램디스크 추출

-> 안드로이드 파일은 tar파일 형식과 같으므로 안에서 램디스크 데이터 gzip 파일을 추출한다. gzip 파일의 크기만큼 추출하는데 해당 크기는 안드로이드 파일 맨 위 부분에서 찾을 수 있다.

 

3. 램디스크 파일 압축 해제 -> gzip, cpio

-> cpio 압축 해제 프로그램으로 압축을 풀어준다.

 

4. 램디스크에서 설정 수정

-> default.prop에서 ro.secure=0, ro.adb.secure=0, ro.debuggable=1로 수정

-> 리커버리 모드에서 PC와의 통신을 위해 sbin/adbd를 교체

 

 

5. 수정된 램디스크 압축

 

6. 커스텀 펌웨어 플래시

-> 파일 크기 이전과 동일하게 만들어주기

-> 수정한 recovery.img파일 이름을 boot.img로 바꿔줌 -> 자동으로 리커버리 모드로 진입

 

 

 

 

 

 


 

무결성 검증

 

비가시성, 복제 용이성, 변조 가능성 -> 증거 조사 기준(진정성) 확보 필요

 

진정성 3요소

 

1)신뢰성

    1. 도구 검증 -> 적절한 도구인가?

    2. 사람에 대한 신뢰성 -> 자격증이 있는가?

    3. 공간준비 -> 어떤 공간에서 했는가?

 

2)무결성

    -> 해시 값

 

3)동일성

 

 

 

 

 

 

댓글