Communitygithub.com

SamuelChien/mega-skills-collection

dd 및 dcfldd를 사용하여 포렌식적으로 무결한 비트 단위 디스크 이미지를 생성하고, 해시 검증을 통해 증거 무결성을 보존합니다.

mega-skills-collection란 무엇인가요?

이 스킬은 법정 증거로 사용 가능한 비트 단위 디스크 이미지를 생성하는 포렌식 이미징 워크플로우를 제공합니다. `dd`와 `dcfldd`를 사용하여 원본 드라이브를 그대로 복제하고, SHA-256 또는 MD5 해시로 이미지 무결성을 검증합니다. Linux 기반 포렌식 워크스테이션(SIFT, Kali 등)에서 사용하며, 하드웨어 또는 소프트웨어 쓰기 차단기를 통해 증거 매체를 보호합니다. 주요 단계는 대상 장치 식별, 쓰기 방지 활성화, 이미지 획득, 해시 기반 무결성 검증, 그리고 전체 과정을 문서화하는 것입니다. `dcfldd`는 내장 해싱, 분할 이미징, 검증 패스 기능을 제공하여 고급 포렌식 요구 사항을 충족합니다. 이 스킬은 법 집행, 침해 대응, 그리고 사전 분석이 필요한 모든 디지털 포렌식 시나리오에 적합합니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/SamuelChien/mega-skills-collection/tree/HEAD/acquiring-disk-image-with-dd-and-dcfldd

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

dd 및 dcfldd를 사용한 디스크 이미지 획득

사용 시기

  • 수사 대상 드라이브의 포렌식 사본을 생성해야 할 때
  • 휘발성 디스크 증거를 분석 전에 보존해야 하는 침해 대응 중
  • 법 집행 기관이나 법적 절차에서 검증된 비트 단위 사본이 필요할 때
  • 저장 장치에 대해 파괴적 분석을 수행하기 전에
  • 물리적 드라이브, USB 장치 또는 메모리 카드에서 이미지를 획득할 때

전제 조건

  • Linux 기반 포렌식 워크스테이션 (SIFT, Kali 또는 모든 Linux 배포판)
  • dd (모든 Linux 시스템에 사전 설치됨) 또는 dcfldd (향상된 포렌식 버전)
  • 하드웨어 쓰기 차단기 또는 소프트웨어 쓰기 차단 구성
  • 원본보다 큰 용량의 대상 드라이브
  • 포렌식 워크스테이션에 대한 루트/sudo 권한
  • SHA-256 또는 MD5 해싱 유틸리티 (sha256sum, md5sum)

워크플로우

1단계: 대상 장치 식별 및 쓰기 방지 활성화

# 연결된 모든 블록 장치를 나열하여 대상 식별
lsblk -o NAME,SIZE,TYPE,MOUNTPOINT,MODEL

# 장치 세부 정보 확인
fdisk -l /dev/sdb

# 소프트웨어 쓰기 차단 활성화 (하드웨어 차단기가 없는 경우)
blockdev --setro /dev/sdb

# 읽기 전용 상태 확인
blockdev --getro /dev/sdb
# 출력: 1 (읽기 전용 활성화됨)

# 또는 지속적인 쓰기 차단을 위한 udev 규칙 사용
echo 'SUBSYSTEM=="block", ATTRS{serial}=="WD-WCAV5H861234", ATTR{ro}="1"' > /etc/udev/rules.d/99-writeblock.rules
udevadm control --reload-rules

2단계: 대상 준비 및 원본 문서화

# 케이스 디렉터리 구조 생성
mkdir -p /cases/case-2024-001/{images,hashes,logs,notes}

# 원본 드라이브 정보 문서화
hdparm -I /dev/sdb > /cases/case-2024-001/notes/source_drive_info.txt

# 일련번호와 모델 기록
smartctl -i /dev/sdb >> /cases/case-2024-001/notes/source_drive_info.txt

# 원본 장치 사전 해시
sha256sum /dev/sdb | tee /cases/case-2024-001/hashes/source_hash_before.txt

3단계: dd를 사용한 이미지 획득

# 진행 상황 및 오류 처리를 포함한 기본 dd 획득
dd if=/dev/sdb of=/cases/case-2024-001/images/evidence.dd \
   bs=4096 \
   conv=noerror,sync \
   status=progress 2>&1 | tee /cases/case-2024-001/logs/dd_acquisition.log

# 공간 절약을 위한 압축 이미지
dd if=/dev/sdb bs=4096 conv=noerror,sync status=progress | \
   gzip -c > /cases/case-2024-001/images/evidence.dd.gz

# 특정 개수를 사용한 부분 획득
dd if=/dev/sdb of=/cases/case-2024-001/images/first_1gb.dd \
   bs=1M count=1024 status=progress

4단계: dcfldd를 사용한 획득 (권장 포렌식 방법)

# dcfldd가 없는 경우 설치
apt-get install dcfldd

# 내장 해싱 및 분할 출력으로 이미지 획득
dcfldd if=/dev/sdb \
   of=/cases/case-2024-001/images/evidence.dd \
   hash=sha256,md5 \
   hashwindow=1G \
   hashlog=/cases/case-2024-001/hashes/acquisition_hashes.txt \
   bs=4096 \
   conv=noerror,sync \
   errlog=/cases/case-2024-001/logs/dcfldd_errors.log

# 대용량 이미지를 관리 가능한 세그먼트로 분할
dcfldd if=/dev/sdb \
   of=/cases/case-2024-001/images/evidence.dd \
   hash=sha256 \
   hashlog=/cases/case-2024-001/hashes/split_hashes.txt \
   bs=4096 \
   split=2G \
   splitformat=aa

# 검증 패스를 사용한 획득
dcfldd if=/dev/sdb \
   of=/cases/case-2024-001/images/evidence.dd \
   hash=sha256 \
   hashlog=/cases/case-2024-001/hashes/verification.txt \
   vf=/cases/case-2024-001/images/evidence.dd \
   verifylog=/cases/case-2024-001/logs/verify.log

5단계: 이미지 무결성 검증

# 획득한 이미지 해시
sha256sum /cases/case-2024-001/images/evidence.dd | \
   tee /cases/case-2024-001/hashes/image_hash.txt

# 원본 및 이미지 해시 비교
diff <(sha256sum /dev/sdb | awk '{print $1}') \
     <(sha256sum /cases/case-2024-001/images/evidence.dd | awk '{print $1}')

# 분할 이미지를 사용하는 경우 각 세그먼트 검증
sha256sum /cases/case-2024-001/images/evidence.dd.* | \
   tee /cases/case-2024-001/hashes/split_image_hashes.txt

# 변경 사항이 없음을 확인하기 위해 원본 재해시
sha256sum /dev/sdb | tee /cases/case-2024-001/hashes/source_hash_after.txt
diff /cases/case-2024-001/hashes/source_hash_before.txt \
     /cases/case-2024-001/hashes/source_hash_after.txt

6단계: 획득 과정 문서화

# 획득 보고서 생성
cat << 'EOF' > /cases/case-2024-001/notes/acquisition_report.txt
DISK IMAGE ACQUISITION REPORT
==============================
Case Number: 2024-001
Date/Time: $(date -u +"%Y-%m-%d %H:%M:%S UTC")
Examiner: [Name]

Source Device: /dev/sdb
Model: [from hdparm output]
Serial: [from hdparm output]
Size: [from fdisk output]

Acquisition Tool: dcfldd v1.9.1
Block Size: 4096
Write Blocker: [Hardware/Software model]

Image File: evidence.dd
Image Hash (SHA-256): [from hash file]
Source Hash (SHA-256): [from hash file]
Hash Match: YES/NO

Errors During Acquisition: [from error log]
EOF

# 로그 압축 아카이브
tar -czf /cases/case-2024-001/acquisition_package.tar.gz \
   /cases/case-2024-001/hashes/ \
   /cases/case-2024-001/logs/ \
   /cases/case-2024-001/notes/

주요 개념

개념설명
비트 단위 복사할당되지 않은 공간과 슬랙 공간을 포함한 원본의 정확한 복제본
쓰기 차단기증거 매체에 대한 쓰기를 방지하는 하드웨어 또는 소프트웨어 메커니즘
해시 검증원본과 이미지를 비교하여 무결성을 증명하는 암호화 해시
블록 크기 (bs)속도에 영향을 미치는 전송 청크 크기, 포렌식에서는 일반적으로 4096 또는 64K
conv=noerror,sync읽기 오류가 발생해도 계속 진행하고 0으로 채워 오프셋 정렬 유지
증거 무결성 체인증거가 변조되지 않았음을 증명하는 문서화된 추적 기록
분할 이미징저장 및 운송을 위해 대용량 이미지를 작은 파일로 분할
Raw/dd 형식메타데이터 컨테이너 오버헤드가 없는 비트 단위 이미지 형식

도구 및 시스템

도구목적
dd표준 Unix 디스크 복제 유틸리티, 원시 이미징용
dcflddDoD 컴퓨터 포렌식 연구소에서 개발한 dd의 향상된 버전 (해싱 포함)
dc3ddDoD 사이버 범죄 센터의 또 다른 포렌식 dd 변형
sha256sum무결성 검증을 위한 SHA-256 해시 계산
blockdev블록 장치 읽기 전용 모드를 설정하는 Linux 명령
hdparm드라이브 식별 및 매개변수 보고
smartctl드라이브 상태 및 식별을 위한 S.M.A.R.T. 데이터 검색
lsblk블록 장치 열거 및 식별

일반적인 시나리오

시나리오 1: 용의자 노트북 하드 드라이브 획득 드라이브를 Tableau T35u 하드웨어 쓰기 차단기를 통해 연결하고 /dev/sdb로 식별한 후, dcfldd를 SHA-256 해싱과 함께 사용하여 DVD 보관을 위해 4GB 세그먼트로 분할하고, 해시가 일치하는지 확인한 후 케이스 노트에 문서화합니다.

시나리오 2: 손상된 워크스테이션에서 USB 플래시 드라이브 이미징 blockdev --setro로 소프트웨어 쓰기 차단을 사용하고, MD5 및 SHA-256 이중 해싱을 포함한 dcfldd로 획득합니다. 이미지가 단일 파일에 충분히 작은 경우, 검증 후 암호화된 케이스 드라이브에 저장합니다.

시나리오 3: 네트워크를 통한 원격 획득 netcat 또는 ssh를 통해 dd를 파이프하여 원격 획득: ssh root@remote "dd if=/dev/sda bs=4096" | dd of=remote_image.dd bs=4096, 양쪽 끝을 독립적으로 해시하여 전송 무결성을 검증합니다.

시나리오 4: 고장 중인 드라이브에서 획득 먼저 ddrescue를 사용하여 읽기 가능한 섹터를 복구한 다음, conv=noerror,sync와 함께 dd를 사용하여 빈 공간을 0으로 채우고, 오류 로그에 읽을 수 없었던 섹터를 문서화합니다.

출력 형식

Acquisition Summary:
  Source:       /dev/sdb (500GB Western Digital WD5000AAKX)
  Destination:  /cases/case-2024-001/images/evidence.dd
  Tool:         dcfldd 1.9.1
  Block Size:   4096 bytes
  Duration:     2h 15m 32s
  Bytes Copied: 500,107,862,016
  Errors:       0 bad sectors
  Source SHA-256:  a3f2b8c9d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1
  Image SHA-256:   a3f2b8c9d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1
  Verification:    PASSED - Hashes match

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

SamuelChien/mega-skills-collection

Security audit, hardening, threat modeling (STRIDE/PASTA), Red/Blue Team, OWASP checks, code review, incident response, and infrastructure security for any project.

SamuelChien/mega-skills-collection

Arquitecto de Soluciones Principal y Consultor Tecnológico de Andru.ia. Diagnostica y traza la hoja de ruta óptima para proyectos de IA en español.

SamuelChien/mega-skills-collection

Ingeniero de Sistemas de Andru.ia. Diseña, redacta y despliega nuevas habilidades (skills) dentro del repositorio siguiendo el Estándar de Diamante.

SamuelChien/mega-skills-collection

Estratega de Inteligencia de Dominio de Andru.ia. Analiza el nicho específico de un proyecto para inyectar conocimientos, regulaciones y estándares únicos del sector. Actívalo tras definir el nicho.

SamuelChien/mega-skills-collection

2D game development principles. Sprites, tilemaps, physics, camera.

SamuelChien/mega-skills-collection

3D game development principles. Rendering, shaders, physics, cameras.

SamuelChien/mega-skills-collection

Expert in building 3D experiences for the web - Three.js, React Three Fiber, Spline, WebGL, and interactive 3D scenes. Covers product configurators, 3D portfolios, immersive websites, and bringing depth to web experiences.

SamuelChien/mega-skills-collection

Accessibility audit skill for scanning, fixing, and verifying WCAG 2.2 Level A and AA compliance across React, Next.js, Vue, Angular, Svelte, and plain HTML codebases. Use when auditing accessibility, fixing a11y violations, checking color contrast, generating compliance reports, or integrating accessibility checks into CI/CD pipelines.

SamuelChien/mega-skills-collection

Ab Test Analyzer - Auto-activating skill for Data Analytics. Triggers on: ab test analyzer, ab test analyzer Part of the Data Analytics skill category.

SamuelChien/mega-skills-collection

A B Test Config Creator - Auto-activating skill for ML Deployment. Triggers on: a b test config creator, a b test config creator Part of the ML Deployment skill category.

SamuelChien/mega-skills-collection

When the user wants to plan, design, or implement an A/B test or experiment. Also use when the user mentions "A/B test," "split test," "experiment," "test this change," "variant copy," "multivariate test," "hypothesis," "conversion experiment," "statistical significance," or "test this." For tracking implementation, see analytics-tracking.

SamuelChien/mega-skills-collection

Acceptance Criteria Creator - Auto-activating skill for Enterprise Workflows. Triggers on: acceptance criteria creator, acceptance criteria creator Part of the Enterprise Workflows skill category.

SamuelChien/mega-skills-collection

Use when a coding task should be driven end-to-end from issue intake through implementation, review, deployment, and acceptance verification with minimal human re-intervention.

SamuelChien/mega-skills-collection

Accessibility Audit Runner - Auto-activating skill for Frontend Development. Triggers on: accessibility audit runner, accessibility audit runner Part of the Frontend Development skill category.

SamuelChien/mega-skills-collection

You are an accessibility expert specializing in WCAG compliance, inclusive design, and assistive technology compatibility. Conduct audits, identify barriers, and provide remediation guidance.

SamuelChien/mega-skills-collection

Web accessibility patterns for WCAG 2.2 compliance including ARIA, keyboard navigation, screen readers, and testing

SamuelChien/mega-skills-collection

Manage Discord channel access — approve pairings, edit allowlists, set DM/group policy. Use when the user asks to pair, approve someone, check who's allowed, or change policy for the Discord channel.

SamuelChien/mega-skills-collection

Create unified specification packages across Business, Development, and Design teams. Staged elaboration (L0 Vision → L1 Requirements → L2 Team Detail → L3 Acceptance Criteria) to build shared understanding. Does not write code.

SamuelChien/mega-skills-collection

Research a company or person and get actionable sales intel. Works standalone with web search, supercharged when you connect enrichment tools or your CRM. Trigger with "research [company]", "look up [person]", "intel on [prospect]", "who is [name] at [company]", or "tell me about [company]".

SamuelChien/mega-skills-collection

Validate messaging consistency across website, GitHub repos, and local documentation generating read-only discrepancy reports. Use when checking content alignment or finding mixed messaging. Trigger with phrases like "check consistency", "validate documentation", or "audit messaging".

관련 스킬