1일차 강의


디지털 포렌식의 개념
디지털 포렌식이란 범죄수사나 기업감사의 대상이 되는 데이터가 디지털 매체(컴퓨터, 서버, 휴대폰, CCTV 등)에 저장되어 있거나 네트워크를 통해 전송되어지고 있을 때, 해당 데이터를 수집ㆍ분석하여 사용자의 위법행위를 증명하는 일련의 과정

디지털 포렌식의 5대원칙
정당성의 원칙(Principle of Authenticity):모든 증거는 적법한 절차와 영장을 통해 수집되어야 합니다. 위법하게 수집된 정보는 증거 능력을 상실합니다.
무결성의 원칙(Principle of Integrity):수집된 증거가 원본과 동일하며, 수집·분석 과정에서 훼손·위조·변조되지 않았음을 입증해야 합니다. 해시값(Hash) 등을 통해 증명합니다.
신속성의 원칙(Principle of Timeliness):디지털 데이터는 휘발성이 강하므로, 지체 없이 신속하게 수집 및 분석을 진행해야 합니다.
재현의 원칙(Principle of Replicability):동일한 조건과 방법으로 분석했을 때, 누구라도 항상 같은 결과가 나와야 합니다.
연계보관성의 원칙(Chain of Custody):증거의 획득, 이송, 보관, 분석 등 모든 과정에서 증거를 누가, 언제, 어떻게 다루었는지 명확하게 기록하고 추적할 수 있어야 합니다.


해시란 무엇인가?
해시(Hash)는 임의의 길이를 가진 데이터를 고정된 길이의 고유한 문자열(값)로 변환해 주는 알고리즘 또는 그 결과물(해시값)을 의미
해시의 3대 핵심 특징
고유성 :데이터가 단 1글자, 1비트만 바뀌어도 완전히 다른 해시값이 생성됩니다.
단방향성 :해시값만 보고 원본 데이터가 무엇이었는지 절대 역추적할 수 없습니다.
고정된 길이 :원본 파일의 크기가 1KB이든 100GB이든 항상 똑같은 길이의 해시값을 출력합니다.


해시 알고리즘
MD5:과거에 많이 쓰였으나 현재는 보안 취약점(충돌 가능성)으로 인해 포렌식에서 단독 사용을 지양
SHA-256:현재 디지털 포렌식과 암호학계에서 가장 널리 쓰이는 표준적인 안전한 알고리즘


충동 가능성
무한한 데이터를 유한한 방에 나누어 넣다 보면, 확률적으로 언젠가는 서로 다른 데이터가 같은 방(해시값)에 들어가는 상황이 발생
해시 실습

import hashlib import os def calculate_sha256(data, is_file=False): sha256 = hashlib.sha256() if is_file: if not os.path.exists(data): return "파일을 찾을 수 없습니다." with open(data, 'rb') as f: while chunk := f.read(65536): sha256.update(chunk) else: sha256.update(data.encode('utf-8')) return sha256.hexdigest() if __name__ == "__main__": print("=== SHA-256 해시값 추출 프로그램 ===") choice = input("1: 텍스트 입력, 2: 파일 경로 입력 -> ") if choice == '1': text = input("해시를 구할 텍스트를 입력하세요: ") print(f"▶ SHA-256 해시값: {calculate_sha256(text, is_file=False)}") elif choice == '2': path = input("파일의 절대 경로 또는 상대 경로를 입력하세요: ").strip('"\'') print(f"▶ SHA-256 해시값: {calculate_sha256(path, is_file=True)}") else: print("잘못된 선택입니다.")
배포된 4G USB를 이용해서 이미징후 해시값을 구해보자
볼륨:운영체제(OS)가 고유한 드라이브 문자(예: C:, D:)를 할당하여 실제로 데이터를 읽고 쓸 수 있도록 만든 하나의 독립적인 저장 공간
파티션:하나의 하드디스크를 여러 구역으로 기술적으로 쪼개놓은 단위
포맷:저장 장치를 초기화하고 사용할 준비를 하는 '행위'이며, 파일 시스템(File System)은 그 결과로 저장 장치에 구축되는 데이터를 관리하는 '규칙과 구조
파일 시스템:컴퓨터가 파일에 이름을 붙이고, 어디에 저장할지 결정하며, 어떻게 찾아낼지 관리하는 데이터 저장 규칙

저장하기
삭제하기
포맷하기


참고사이트
디지털포렌식전공
FTK Imager
Autopsy
OSForensic
FEX
https://porensic.jvision.org
관제