본문 바로가기

드림핵

[드림핵] 디지털 데이터와 디지털 장치

https://dreamhack.io/lecture/courses/629

 

Dreamhack | 강의 | Dreamhack

 

dreamhack.io

 

 

1. 디지털 데이터

리틀 엔디언

  • 엔디언(Endian): 다바이트 이상의 데이터를 메모리에 저장할 때의 바이트 순서 방식입니다.
  • 리틀 엔디언작은 바이트부터 저장하는 방식으로, 예를 들어 0x01234567을 저장한다면 메모리에는 다음과 같이 저장됩니다:

주소 값 (16진수) 값 (2진수)

0x100 0x67 01100111
0x101 0x45 01000101
0x102 0x23 00100011
0x103 0x01 00000001

즉, 저장 순서는 67 → 45 → 23 → 01입니다.

  • 리틀 엔디언이 중요한 이유
    1. Intel CPU는 리틀 엔디언을 기본적으로 채택함
    2. 디지털 포렌식에서는 파일 시스템 분석 시 이 방식을 통해 저장된 데이터를 해석함

리틀 엔디언 실습

VBR(Volume Boot Record)에서 특정 오프셋의 값을 리틀 엔디언 방식으로 읽어보는 실습 예시입니다:

예제에서 오프셋의 의미

  • 0x0B - 0x0C: Bytes per sector (2바이트)
  • 0x0D: Sectors per cluster (1바이트)
  • 0x1C - 0x1F: Hidden sectors (4바이트)
  • 0x28 - 0x2F: Total sectors (8바이트)

예시 결과 (리틀 엔디언 해석값)

  • Bytes per sector = 0x200
  • Sectors per cluster = 0x8
  • Hidden sectors = 0x3A800
  • Total sectors = 0x31AE246F

각 바이트를 거꾸로 읽는 방식으로 해석하는 것이 포인트입니다. 예를 들어 0x1C부터 0x1F에 00 80 3A 00이 있다면, 리틀 엔디언 방식으로 0x003A8000 → 0x3A800으로 해석합니다.

 

주의점: 파일 시그니처

  • 파일 포맷을 구분짓는 파일 시그니처 영역(예: NTFS)은 리틀 엔디언을 적용하지 않고 그대로 읽습니다.
  • 예: 오프셋 0x03 - 0x10에 있는 OEM ID 값은 NTFS 그대로 읽습니다.

 

 

 

 

 

인코딩

  • **인코딩(Encoding)**은 데이터를 정해진 규칙에 따라 특정 형식으로 변환하는 과정입니다.
  • 암호화와 유사해 보일 수 있지만, 암호화는 접근을 제한하기 위한 목적, 인코딩은 데이터를 표준화해 전달/저장하기 위한 목적입니다.
  • 대표적인 인코딩 종류:
    • ASCII 인코딩
    • Base64 인코딩
    • UTF-8 인코딩

 ASCII 인코딩

  • ASCII 인코딩은 ASCII 테이블에 따라 숫자를 문자로 변환하는 인코딩입니다.

구분 ASCII(Hex) 설명

줄바꿈 0xA, 0xD Windows: 0xD 0xA / Linux: 0xA
숫자 0x30~0x39 0~9
영어 대문자 0x41~0x5A A~Z
영어 소문자 0x61~0x7A a~z

 ASCII TABLE

ASCII 테이블은 0~127까지 128개의 문자로 구성되어 있고, 각 문자의 Decimal, Hex, Char 값을 포함합니다.

 

ASCII 인코딩

ASCII 인코딩은 숫자(0~127)에 문자(영문자, 기호 등)를 대응시키는 방식입니다. 대부분의 바이너리 파일에는 ASCII로 표현된 텍스트 조각이 포함되어 있기 때문에, HxD 등의 헥스 에디터에서 바이너리 파일을 열면 알파벳 문자열이 보이기도 합니다.

 

줄바꿈 0x0A, 0x0D 윈도우: CRLF (0x0D 0x0A)
숫자 0x30~0x39 '0' ~ '9'
대문자 0x41~0x5A 'A' ~ 'Z'
소문자 0x61~0x7A 'a' ~ 'z'

 

 

Base64 인코딩

Base64 인코딩은 바이너리 데이터를 ASCII 문자만으로 표현하기 위한 방법입니다. 이메일 첨부 파일, 이미지 내장(HTML), 인증 토큰 등에서 자주 사용되며, 보통 인코딩 후 길이가 약간 늘어납니다.

 Base64 예시

  • Dreamhack! → RHJlYW1oYWNrIQ==
  • Hunijson → SHVuaXNvbjI=

Base64는 다음의 64문자를 이용해 인코딩합니다

 

UTF-8 인코딩이란?

UTF-8은 가변길이 인코딩 방식으로, 유니코드 문자를 표현할 수 있도록 설계되었습니다. 한글, 한자, 일본어 등 다양한 언어를 표현할 수 있으며, 인터넷에서 가장 널리 사용됩니다.

한글 인코딩 예시

  • 유 → 0xEC 0x9C 0xA0
  • 니 → 0xEB 0x8B 0x88
  • 코 → 0xEC 0xBD 0x94
  • 딩 → 0xEB 0x93 0x9C

한글은 UTF-8에서 3바이트로 표현되며, 모두 0xE로 시작하는 것이 특징입니다.

 

 

 

 

파일 시그니처

파일 시그니처(File Signature)는 파일의 앞/뒤에 존재하는 고유한 바이트 패턴으로, 파일의 형식을 식별할 수 있도록 도와줍니다.

  • 헤더 시그니처(Header Signature): 파일 시작부에 위치
  • 푸터 시그니처(Footer Signature): 파일 끝부분에 위치

PNG 헤더 시그니처

PNG 푸터 시그니처

  • IEND 블록은 PNG 이미지의 끝을 의미

자주 쓰이는 파일 시그니처 정리

 

 

 

파일 확장자란?

**파일 확장자(Filename Extension)**는 파일 이름의 마지막에 붙는 . 뒤의 문자열로, 해당 파일의 형식과 역할을 나타냅니다.

예시:

  • Dreamhack.txt → 확장자: .txt → 텍스트 파일
  • report.pdf → .pdf → 문서 파일

운영체제나 프로그램은 확장자를 통해 어떤 앱으로 열지 결정합니다.

 

자주 쓰이는 확장자 정리

분류 확장자 설명

압축 .zip, .rar, .7z, .tar, .gz 압축된 파일
문서 .pdf, .docx, .xlsx, .pptx, .hwp PDF, 워드, 엑셀, 한글 등
그림 .png, .jpg, .jpeg, .gif 이미지 파일
오디오 .mp3, .wav 음성 파일
비디오 .mp4, .avi 동영상 파일
텍스트 및 코드 .txt, .json, .xml, .html, .js 데이터, 코드
윈도우 실행 .exe, .dll, .lnk, .tmp 실행 파일, 라이브러리 등

 

 

확장자 검색 도구 – Everything

 


path:<검색경로> // 해당 경로 내에 있는 모든 파일
*.exe // .exe 를 이름으로 하는 모든 파일
size:<크기조건> // 해당 크기 조건을 만족하는 모든 파일

 

 

 

<2. 디지털 장치>

 

저장장치

 

1.메모리(RAM)

RAM은 휘발성 메모리를 저장하고, CPU에서 접근 속도가 빠르기 때문에 주기억장치라고도 부릅니다.
RAM은 아래 사진과 같이 길고 얇으면서 아래 쪽에 연결 단자가 있는 형태입니다.

2. 하드디스크(HDD)

하드디스크와 SSD는 우리가 일반적으로 저장장치라고 부르는 장치입니다. 이 장치들은 비휘발성 데이터들을 저장하고 있습니다. 보통 바탕화면이나 C 드라이브에 저장된 파일들이 이러한 장치에 저장한다고 생각하시면 됩니다.

커버를 벗기고 나면 아래와 같은 구조가 보입니다. 데이터가 기록되어 있는 동그란 플래터가 계속해서 회전하고, 바늘 모양의 헤드가 플래터로부터 데이터를 읽어오는 방식으로 동작합니다.

 

3. SSD

SSD(Solid-state drive)는 반도체를 사용해 데이터를 저장하는 장치입니다. 하드디스크에 비해 높은 속도와 안정성을 가지기 때문에 최근에는 하드디스크를 대체해 많이 사용되고 있습니다.

SSD는 사진들과 같이 다양한 모습이 있습니다. SSD는 연결되는 인터페이스 종류에 따라 모양이 달라집니다. 

 

4. USB 플래시 드라이브

USB(Universal Serial Bus)는 컴퓨터와 다른 기기를 연결해 전원을 공급하거나 데이터를 전송하기 위해 만들어진 일종의 프로토콜입니다. 여기에서, USB 표준 규격을 이용해 데이터를 저장하는 장치를 USB 플래시 드라이브라고 부릅니다. 우리는 USB 플래시 드라이브를 짧게 줄여서 USB 혹은 USB 메모리라고 부르는 것입니다.

USB는 작고 가볍기 때문에 휴대성이 좋아 컴퓨터 간에 파일을 이동하거나 보관하기 위한 용도로 사용됩니다. 이런 특징으로 인해 USB를 통해서 자료 유출 사건이 발생하거나, 악성코드를 감염시키거나, 주요 정보가 저장되고 공유되는 일이 잦습니다. 따라서 디지털 포렌식 관점에서 USB는 반드시 수집해야 할 저장장치입니다.

 

5. SDCard

SDCard는 USB보다도 작고 가벼운 저장장치입니다. 주로 디지털 카메라, 내비게이션, 블랙박스 등 소형 기기에서 사용되는데, 최근에는 컴퓨터나 노트북에 별도의 포트가 있어 직접 장착되기도 합니다.

 

 

 

 

 

대표적인 저장장치 인터페이스 종류

IDE / ATA 오래된 방식, 병렬 전송(PATA), 현재는 거의 사용되지 않음
SATA 대부분의 HDD/SSD에서 사용되는 직렬 전송 방식
PCI / PCIe 그래픽카드·고성능 SSD 등에 사용되는 고속 전송 슬롯
M.2 최신 SSD 규격. NVMe 기반으로 고속 전송 가능
USB 외장형 저장장치에서 사용되는 범용 인터페이스

 IDE (또는 ATA)

  • 병렬 전송 방식 (PATA) 사용
  • 한 케이블에 최대 2개 장치 연결 가능
  • 점퍼 설정으로 Master/Slave 지정 필요
  • 전송 속도 느림, 현재는 거의 사용되지 않음

SATA

  • 직렬 전송 방식으로 IDE 대비 속도와 안정성 향상
  • 데이터 케이블과 전원 케이블이 분리됨
    • SATA 데이터 커넥터: 작고 얇은 케이블
    • SATA 전원 커넥터: 15핀 구조
  • SATA1(1.5Gbps), SATA2(3Gbps), SATA3(6Gbps) 등 세대 발전

 PCI / PCIe

  • 메인보드 슬롯에 직접 장착
  • 고성능 SSD(NVMe)나 그래픽카드 등에서 사용
  • Lane 단위로 대역폭 제공 (예: x1, x4, x8, x16)
  • 병렬 전송에서 시리얼 전송 방식으로 발전

 M.2 인터페이스

  • 작고 얇은 SSD 규격
  • SATA 방식 or NVMe 방식(PCIe 기반) 사용 가능
  • **커넥터 키(Key)**에 따라 호환성 결정됨
    • B Key, M Key, B+M Key 등
  • NVMe SSD는 PCIe를 사용해 SATA보다 최대 5~6배 속도 빠름

 USB

  • 범용 인터페이스로 외장하드, USB 메모리 등에 사용
  • 세대별 속도 차이 존재
    • USB 2.0: 480Mbps
    • USB 3.0: 5Gbps (파란색 포트로 구분)
 
 
 

디지털 포렌식 도구 (하드웨어 & 소프트웨어)

1. 하드웨어 포렌식 장비

디스크 이미지 장비 - Logicube Falcon

  • 디스크 복제 및 이미지 생성 전문 장비
  • 디스크 → 디스크 / 디스크 → 이미지 복제 모두 가능
  • 멀티디바이스 지원, 빠른 속도, 다양한 해시 알고리즘(SHA-1, MD5) 지원

쓰기 방지 장치 (Write Blocker)

  • 증거 디스크에 쓰기 작업을 차단하여 무결성 보장
  • 소프트웨어/하드웨어 방식이 있으며, 하드웨어 방식이 더 강력함

패러데이 백 (Faraday Bag)

  • 디지털 장비의 무선 전파 차단
  • 스마트폰, 태블릿 등의 원격 접속 방지, 전자기 신호 차단용

2. 소프트웨어 포렌식 도구

비휘발성 데이터 수집 및 분석 도구

  • 전원이 꺼져도 남아있는 디스크, 로그, 레지스트리 등 분석
도구 설명
FTK Imager 디스크 이미지를 추출하고, 파일/섹터/메모리 등을 미리보기 가능
KAPE 중요한 파일 수집 자동화 도구, 레지스트리, 로그 수집 등 가능

휘발성 데이터 수집 및 분석 도구

  • 전원이 꺼지면 사라지는 메모리, 네트워크 정보 등 실시간 상태 수집
도구 설명
DumpIt 메모리 덤프 수집 도구, 단일 실행파일 형태
Winpmem 메모리 수집 + 다양한 포맷 지원 (AFF4 등)
Volatility 수집된 메모리 이미지를 분석하는 오픈소스 도구 (프로세스, DLL, 네트워크 등 추적 가능)

통합 포렌식 도구

도구 특징
Magnet AXIOM 이미지 수집부터 분석·리포트까지 가능한 올인원 상용 포렌식 툴 모바일, 클라우드, PC, 브라우저 데이터까지 광범위하게 분석 가능