디지털포렌식
사회계약설
만인의 만인에 대한 투쟁
사회계약설에 따라 사람들이 모여살게 되었다. 사람들은 모여살게됨에 따라 사람들 사이에는 규칙이 생겨나, 규칙들을 한곳에 모아 적어넣었고, 우리는 이것을 법률이라고 부른다.
규칙의 성립을 위해 사람들의 권리를 국가라는 하나의 개념에 넘긴다. 이렇게 권한을 넘기는 행위를 수권이라고 한다.
우리가 영장이라고 부르는 것은, 경찰이 국가로부터 권한을 다시 빌려온다는 증서로, 이것을 발급받음으로써 경찰은 범죄자의 권한과 자신의 권한을 충돌시켜 범죄자의 권한을 제한할 수 있다.
Forensic
Forensic은 라틴어/영어 forum에서 유래하였다. 과거, 재판은 광장에서 이루어졌고, 우리는 이러한 광장을 forum이라고 부른다.
그래서, Forensic의 사전적 정의는 "법정의, 재판에 관한, 범죄 과학 수사의"이며, Forensics의 사전적 정의는 "법의학, 법조에 의한 과학수사"다.
그럼, 법의학은 무엇일까?
- 폴리그래프
- 영상 분석
- 지문 감정
- 문서 감정
- 멀티미디어 복원
- 마약 감정
- 유전자 감정
- 화재현장 감식
- 법 안전
- 법 화학
- 법 생물학
- 디지털포렌식
디지털포렌식?
- 클라우드 서비스 포렌식
- 데이터 애널리틱스
- 데이터베이스 포렌식
- 삭제 파일 복구
- 디스크 카탈로스
- 디스크 이미징
- 드론 포렌식
- 이메일 파싱
- 파일 카빙
- 포렌식 부트 환경
- etc…
The application of computer science and investigative procedures for a legal prupose involving the analysis of digital evidence - Ken Zatyko “Defining Degital Forensics”, Forensic Magazine, 2007
따라서, 디지털포렌식이란 포렌식의 범위를 디지털로 확장한 것이다. 즉, 법적 목적으로 사용을 위한 디지털 증거 분석과 관련된 컴퓨터 과학 및 법적(수사) 절차의 적용이라는 말이다.
디지털포렌식의 조건
나라마다 디지털포렌식으로 인정받기 위한 조건이 모두 다르지만, 디지털포렌식의 결과물이 증거능력(Admissibility of Evidence)을 가지기 위한 준칙은 존재하며, 이를 디지털포렌식의 일반원칙이라고 부른다.
이때, 증명력은 이 증거의 가치, 즉 float이고, 증거능력은 bool이라고 볼 수 있다.
디지털포렌식의 일반원칙
- 정당성(Legitmacy)의 원칙: 모든 행위는 적법해야한다
- 연계보관성(Chain of Custody)의 원칙:
- 신속성(Immediacy)의 원칙:
- 무결성(Integrity)의 원칙: 결성이 존재해선 안된다
- 재현성(Reproducibility)의 원칙: 재현 가능해야한다
정당성의 원칙
위법수집증거배제법칙: 형사소송법 제308조의2(위법수집증거의 배제) 적법한 절차에 따르지 아니하고 수집한 증거는 증거로 할 수 없다. (<증거능력> 배제)
독수독과론(Fuit of the Poisionous Tree): 독 나무에서는 독 열매가 열린다는 이론으로 위법수집증거에도 적용된다. 만약 위법하게 수집한 증거에서 파생된 증거가 있다면 해당 증거의 <증거능력>역시 배제된다.
무결성의 원칙
- 말 그대로, 결함이 없어야 한다는 원칙으로 해당 증거가 최초 수집된 이후 법정에 제출될 때까지 변경이나 훼손 없이 보호되어야 한다는 원칙
- 무체물인 디지털 증거의 경우, 유체물 증거에 비해 내용을 위/변조하기 쉬우며, 육안으로 훼손이나 위/변조 여부를 탐지하기 어렵다는 특징을 가지고 있음
- 해당 증거가 위/변조되지 않았음을 증명할 필요가 있으며 보퐁 이미징과 해시함수 그리고 피압수자의 확인을 통해 이 문제를 해결하고 있다.
이미징(Imaging): 저장매체의 물리적 데이터(필요에 따라 일부 또는 전체)를 특정 유형(*.dd, *.ewf 등)의 이미지 파일로 만드는 작업으로 이미지 파일의 내부는 편집이 불가능하다는 특징을 가지고 있음
해시 함수(Hash Function): 임의의 길이의 입력 메기지를 고정된 길이의 출력값(해시값)으로 압축시키는 함수로, 역으로 출력값에서 입력메시지를 도출하는 것이 불가능하기 때문에 단방향 함수라고도 불린다. 입력 메기지의 한 비트만 변화가 생겨도 전혀 다른 출력값을 생성하므로 입력 데이터가 변경되지 않았음을 입증하는 대에 주로 사용된다.
* 수집이 완료된 순간부터 법원에 제출되기까지 해시함수의 결과는 변화되어선 안된다.
- 이미징: 수집한 데이터가 편집될 수 없음을 보증
- 해시함수: 이미지 파일의 고유 식별값 생성
- 현장조사보고서: 별도 보고서에 해당 고유 식별값 기재
- 피압수자 확인: 두 식별값이 일치하는지 확인
- 서명: 해당 식별값이 해당 증거의 고유 식별임을 인정
연계보관성의 원칙
- Chain of Custody의 우리말로, 말 그대로 보관의 사슬이라고 해석할 수 있음
- 증거가 획득되고 난 뒤, 이공, 분석, 보관, 법정 제출이라는 인련의 과정 및 각 과정 마다의 담당자, 증거 상태가 명확해야 한다는 원칙
- 무체물인 디지털 증거의 연계보관에서는 각 단계마다 담당자가 증거물을 전달받으면서, 해당 디지털 증거의 해시값을 재산출하여 해당 증거가 위/변조되지 않았음을 확인하고 연계보관양식(CoC)에 기록함
* 디스크 그 자체가 증거가 될 수 있고, 디스크 내부의 데이터가 증거가 될 수 있고, 둘 다 증거가 될 수도 있다.
재현성의 원칙
- 동일한 조건과 동일한 상황에서의 디지털포렌식 분석은 항상 같은 결과를 도출할 수 있어야 한다는 원칙
- 오류 내성의 범위에서 도구가 반봅적으로 실행될 수 있어야 한다는 반복성 또는 반복 가능성과는 구분된다.
- 분석 도구 및 방법, 분석자의 신뢰성 검증을 위한 방법으로도 사용된다.
/* NIST(National Institute of Standard and Technology)의 CFTT(Computer Forensic Tool Testing Program)를 통해 도구의 신뢰성을 검증할 수 있다. CFTT를 받지 않은 도구를 사용하여 분석한 경우, 보통 교차 분석을 통해 도구의 신뢰성을 검증한다.
신속성의 원칙
- 디지털포렌싱 수행의 전 과정은 지체없이 신속하게 수행되어야 한다는 원칙
- 외부 요인의 개입을 최소화하기 위한 원칙
- 컴퓨터에 남아있는 정보 중 메모리와 같은 일부 정보눈 휘발성 데이터로 시간의 흐름에 따라 소멸 또는 변경되기 쉬우므로, 소멸 또는 변경이 있기 전에 신속하게 디지털포렌식을 수행해야 한다.
* 사실, 휘발성 메모리의 정보 손실을 완전히 막을 수는 없기 때문에, 페이징의 최소화해야한다. 따라서, 최대한 작고, 가벼운 프로그램을 사용해야한다.
획득
- 수동 획득
- 수사관이 직접 손으로 정보를 획득
- 논리적 획득
- USB 케이블, 적외선 통신등으로 데이터 획득 명령을 보내는 방법
- 획득 도구 사용이 불가능한 경우
- PTP, MTP
- 획득 도구 이용 가능한 경우
- MD-NEXT, Final Aquiciation, etc…
- iOS Backup
- 잠금 암호 요구
- 신뢰하는 기기 등록 필요
- 기본 앱, 미디어데이터를 백업
- 비할당 영역, 캐시는 확보 안함
- 재현 불가
- ADB Backup
- iOS Backup과 동일한 컨셉
- USB ADB 설정 필요
- 하드웨어 제조사 별 특정 앱을 설치하는 경우가 일반적
- Samsung Smart Switch, LG Mobile Switch
- Backup Protocol 미 지원 앱도 상당수 대응 가능
- 재현 불가
- 요즘은 Backup Protocol을 지원하지 않는 추세
- 안드로이드는 앱 다운그레이드가 가능함
- Backup Protocol을 지원하는 버전으로 앱을 다운그레이드 한다면?
- Data뢱득을 할 수 있어 좋지만, 증거 훼손 우려
- 앱 다운그레이드 흔적으로 포렌식 여부를 알 수 있음
- Full FS
- 루팅 후 전체 FS 복사
- 실리콘 칩의 Boot ROM 취약점 이용 → checkm8
- 안드로이드 기기 취약점 이용 → ADB Pro / Anylock bypadd
- 기타 제로데이 취약점 이용 루팅
- FBE로 physical 획득이 의미 없기 때문에, 사실상 최선의 방법
- AFU 상태일 때와, BFU 상태일때 암호해독성능에 차이가 큼
- 획득 소프트웨어 제조사 별로 커버리지가 다름
- 최신 기종일 경우, 취약점 발션 전 까지 해당 방법으로
- FDE: Full Disk Encryption
- 취약점을 통해 어떻게든 암호를 헤제하면 디스크 덤프 가능
- FBE: File Based Encryption
- 2개 이상의 암호로 개별 파일별로 암호화
- 최초 부팅시 암호가 기기에 없음(BFU)
- 디스크 덤프를 따도 의미 없음
- 비할당 영역 획득 불가
- AFU: After First Unlock
- 최초 잠금 해제된 상태
- OS가 잠금 암호를 알고 있음
- 앱 사용, 생체인증이 가능한 상태
- BFU: Before First Unlock
- OS가 잠금 암호를 모름
- 무차별 대입방법 외엔 답이 없음
- 전화통화 등 일부 기능만 사용 가능. 앱 사용 불가
- 물리적 추출 - hex dump
- Physical 획득
- 저장소 전체 혹은 특정 파티션
- 시스템 영역, 앱 데이터 영역, 미디어 영역, 비할당 영역(삭제파일영역) 까지 획득 가능
- 부트로더가 변경된 펌웨어를 설치하여 Hex dump
- iOS DFU
- DFU(Device Firmware Update): 애플 장치 펌웨어 업그레이드 모드
- 아이폰 3, 3GS, 4만 physical 획득 가능
- MD-NEXT, Final Acquisition, UPED등 대부분의 획득 장비가 지원
- Android Bootloader 변경
- Samsung: Odin Mode
- LG: Download Mode
- MD-NEXT, Final Acquisition, UPED 등 대부분의 획득 장비가 지원
- 부트로더 잠금(OEM lock)을 헤재 후 시도해야함
- Andorid 8 이후 함부로 시도 X
- JTAG: Joint Test Action Group
- Hardware debuging standard (IEEE 1149.1)
- 기기를 분해하고 FPCB 또는 JTAG 단자를 연결하여 획득하는 방식
- Chip off
- 메모리 칩을 분리
- 심각한 손상으로 인해 장치가 완전히 작동하지 않는 경우에 사용
- 이론상, 정상 작동폰을 구해서 파손폰의 메모리를 정상폰에 이식하면 됨
- 데이터가 암호화되어있기 때문에 ICC와 같은 추가 복호화 키를 함께 이식 필요
- 하드웨어 제조사가 보드에 숨겨놓는 경우가 일반적
- 불가한 경우도 많음
데이터 분석
- 기술통계량 분석
- 주어진 데이터를 요약 집계하여 결과를 도출함
- 탐색적 데이터 분석 : 여러 변수간 트렌드, 패턴 관계를 찾틑 것
- 그래프를 통한 사실 확인을 주로 함
- 분석 목적을 두고 그 목적을 달성하기 위한 변수 관계 파악, 트렌드 파악 시도
- 추리 통계
- 샘플 모집간 산의 관계 탐구 (e.g. 모집단에서 오동빈 멘토가 인기 투표 1등하면 실제에서도 1등?)
- 예측 분석
- 통계적 기법을 사용하여 발생하지 않은 사건에 대해 예측 (e.g. ML, 예측분석)
- 인과관계 분석
- 수집된 데이터에서 변수간 인과관계를 확인. 실험 대상을 A, B로 나누어 종속변수 변화를 관찰하여 확인
데이터 처리
- 모든 데이터 분석 프로젝트에서 데이터 전처리는 반드시 거쳐야 하는 과정
- 분석 결과와 모델 성능에 직접적인 영향을 줄 수 있은(GIGO를 방지)
- 데이터 정제
- 이상치, 결측값 제거
- 컴퓨터가 읽을 수 없는 요소의 제거
- 숫자나 날짜등의 형식에 대해 일관성 유지
- 데이터 통합
- 서로 다른 출처의 여러 데이터를 결합
- 같은 객체. 같은 단위나 좌표로 데이터를 통ㅏ합
- 데이터 축소 증간
- 원래 용량 지군보다 작은 양의 데이터 표현 결과를 얻게 되더라도 거의 비슷한 결과를 내야함
- 데이터 증강 (이미지 변형 등으로 부족한 데이터 량 늘림)
- 데이터 변환 - 정규화, 이산화
탐색적 데이터 분석
- 수집한 데이터가 들어왔을 때 이를 다양한 각도에서 관랑하고 이해하는 과정
- 그래프나 통계적인 방법으로 자료를 직관적으로 바라보는 과정
- 목표
- 분석의 목적과 변수가 무엇이 있는지 확인. 개별 변수의 이름이나 설명을 가지는 지 확인
- 데이터를 전체적으로 살펴보기: 데이터에 문제가 없는지 확인(null, nan, 이상치 등)
- 데이터의 개별 속성값을 관찰: 각 속성값이 예측한 범위와 분포를 갖는지 확인(센서 데이터 등)
- 개별 속성 관찰에서 찾아내지 목했던 패턴을 발견(그래프, 상관관계)
모델링
- 예측 모델링: 결과의 개연성을 가장 잘 예측할 수 있는 데이터 분석 모델을 수립
- 중요한 것 → 어떤 특정 문제에 있어 가장 잘 설명할 수 있는 최선의 모델을 선택했는지
- 무엇보다 문제를 잘 이해해야하고 또한 예측 모델링 알고리즘의 특성을 잘 이해해야함
시각화 & 리포팅
- 문제 정의 단계에서 수립한 데이터 분석 목표가 얼만큼 달성하였는지 확인 (평가 지표)
- 예측 분석된 데이터를 잘 시각화하여 표현하즌 것이 중요함(통계, 다양한 그래프 이용)
- 대량의 데이터 요약 & 판단하기 쉬운 형태: 인사이트를 제공
컴퓨터 구조 이해
디지털 포렌식을 이해하기 위해, 먼저 컴퓨터 구조를 이해해야한다.
- 애플리케이션: 사용자 명령을 처리하기 위한 방법을 정의한 것
- 운영체제: UI정의, 입출력 보조, 자원 관리
- 파일시스템: 자료 기억장치에 파일을 저장/관리하기위한 체계를 정의한 것
- 하드웨어: 컴퓨터 연산을 위해 필요한 자원
Artifects 종류, 툴 사용 방법을 익히기 보다 수집/분석의 대상을 이해하는 과정, "Windows OS의 Artifacts는 왜 남는걸까?"와 같은 의문이 선행되어야 한다.
부팅 과정
- 전원 on
- CPU 전원 공급
- ROM 코드 실행
- POST(Power On Self Test) 상태 점검
- BIOS 실행
- 부트로더를 RAM에 적재 및 실행
- 운영체제 실행
- 부트로더가 운영체제를 메모리에 로드 및 실행
- 커널모드에서 명령어는 시스템 자원에 직접 접근하는 것이 가능함
- 운영체제는 커널모드를 관리/감독하는 역할을 수행함
- 유저모드인 상태에서 시스엠 자원에 직접 접근하 수 있는 명령어(Privileged Instruction)가 실행되면 CPU는 인터럽트를 발생시켜 현재 모드를 커널모드로 변경시킴
- 커널 모드를 활용하기위해 유저모드에서 API를 통해 시스템 콜을 호출하는 방법도 있음
- 응용 프로그램과 하드웨어의 통신을 위해 커널이 응용 프로그램에 제공하는 명령어를 시스템 콜이라고 한다.
- 커널이 다룰 수 없는 명령어 수신시 발생하는 것이 블루스크린
프리패칭
부팅 혹은 파일을 실행할 경우 미리 저장된 정보를 메모리에서 실행하여 실행 속도를 높임
목적에 따라 부트 프리패치의 응용프로그램 프리패치로 구분할 수 있음
- 부트 프리패치 :
NTOSBOOT-BOODFAADD.pf
- 응용 프로그램 프리패치 :
<filename>-<filepath hash>.pf
- 부트 프리패치 :
부트 프리패칭
- 부팅과 관련된 파일이 저장장치에 흩어져 있거나, 단편화되어있어 부팅속도의 저하를 일으킴
- 프리패쳐에 의해 시스템 부팅시 최대 120초까지 모니터링
- 프리패칭된 파일을 이용하여 부팅속도 향상
응용 프로그햄 프리패칭
- 응용프로그램 초기 실행시 응용프로그램의 이름, 실행 횟수, 마지막 실행 시간, 볼륨 정보 등 저장
애플 디바이스 취약점과 디지털포렌식
- 플라스트 도어: iOS 14부터 추가된 보안 기능으로, 아이 메시지를 통해 실행되는 제로 클릭 공격을 차단하기 위한 기능임.
- 제로 클릭: 악성 첨부 파일이 보이지 않는 아이메시지를 활용하여 사용자의 행위 없이 애플 기기를 감염시키는 공격 방법
제로클릭 실행 시도를 박는 블라스트도어를 우회하여 제로클릭을 실행시킨다
- 샌드박스
- 모든 앱은 다른 앱이 저장한 파일에 접근하거나 기기에 변경사항을 만들 수 없도록 제한되어 있으며, 이 상채를 생드박스화 되어있다고 표현
- ASLR
- 비인가된 메모리 변경 공격을 박기 위한 기술
- 앱이 실행될 때 모든 메모리 영역을 무작위로
- 사용한 취약점
-제로클릭을 실행하기 위해 메모리 커럽션을 일으키고자 함
- 해당 취약점은 인티져 오버플로우를 활용하여 메모리 커럽션을 일으키고 익스플로잇 시작점으로 활용하였음
- 작동방법
- 인티저 오버플로우 → 원격으로 ASLR 무력화 → 코드 실행 → 샌드박스 우회
- 실행 흔적
- 27개의 .gif PSD 파일이 Library/SMS/Attachments 경로에 생성됨
- 4개의 .gif PDF 파일이 JBIG2-encoded 스트림에 생성됨
디지털 포렌식을 공부할때 방향을 잡기 어려운 이유
디지털 포렌식을 통해 풀어야 하는 문제/목적(혐의)가 있어야 하는데 학생 때는 그런 부분이 명확하지 않음.
실력을 키우기 위한 이런 저런 가정들
- 해쉬값이 변경되면 무결성은 반드시 깨질까?
- RAID 구성 방식을 고려하지 않은 패 Server에서 Disk를 분리하여 수집한다면?
- 일체형 Desktop을 수집할 경우 어떻게 해야할까?
- TPM 기능이 활성화되어있는 Laptop을 수집해야 하는 경우
- 공장초기화를 한 Mobile Device를 수집하게되면 수행할 수 있는 다른 절차는 무엇일까?
- 수집한 Cloud 상 데이터의 원본 동일성은 어떻게 확인할 수 있을까?
- PC에 연결은 되어있지만, 인식되지 않은 HDD의 데이터는 수집할 수 있을까?
- 최신 판례 동향이 기술적 관점에서 보기에 이상한 부분이 있지는 않은걸까?
기타 수업 내용
랜섬웨어
어느날 로또 1등에 당첨되었다. 당첨금은 19억, 1등 용지를 본떠만든 순금 50돈 황금로또와 함께 전달받았다.
황금 로또는 1100만원 어치라고 한다. 황금 로또를 위해 금고를 하나 사야겠다. 얼마가 적당할까?
얼만진 몰라도 일단 1100만원이 마지노선일 것 같다.
이렇게, 가격을 명확히 알 수 있는 현실의 물건들은 그 가치를 명확히 알 수 있다. 그럼, 우리의 정보는 얼마일까? 애매하다.
그래서 블랙 해커들은 우리의 정보를 가지고 우리를 협박하기 시작하는데, 이것이 바로 랜섬웨어다.
피싱
전화 또는 mail등을 통해 가짜 사이트로 이용자의 접속을 유도하여 금융전보등을 탈취하는 수법이다.
파밍
피싱의 한 유형으로 피싱보다 진화한 형태. 이용자 pc를 악성코드에 감염시켜 정상 사이트를 입력해도 가짜 사이트로 접속되어 금융정보 등을 탈취해가는 수법이다.
DNS를 감염시켜 DHCP를 다른 곳으로 보내게 하는 등의 수법을 이용한다.
디지털 포렌식 과정
- 사고 전 준비
- 사고가 발생하기 전, 침해사고 대응팀과 조직적인 대응을 준비
- 사고 탐지 (사고,제일 어려움)
- 정보보호 및 네트워크 장비에 의한 이상 징후 탐지
- 관리자에 의한 침해 사고의 분석
- 초기 대응 (해결과정) -
- 대응 전략 쳬계화 (해결과정)
- 데이터 수집 (해결과정,사고조사)
- 데이터 분석 (해결과정,사고조사)
- 보고서 작성 (해결과정)
- 의사 결정자가 쉽게 이해할 수 있는 형태로 사오게 대한 정확한 보고서를 작성
- 해결
생각해볼만한 것
만약, 지하철 노선도에 음란물이 재생되고 있다고 하자. 담당 직원은 즉시 재생을 멈추려고 했지만, 해커 측에서 원격 제어를 막아놓은 듯 하다. 담당 직원은 현장으로 달려가 전원을 차단하고 메모리 카드를 뽑았다.
이런 담당 직원의 대처는 올바른 것인가?
디지털 포렌식의 조건
- 적법 절차의 준수
- 원본의 안전한 보존
- 디지털 증거의 무결성 확보
- 증거의 싱뢰성 증명
- 분석 결과의 반복성
- 진정성 유지