Communitygithub.com

dd および dcfldd によるディスクイメージの取得

Linux フォレンジックワークステーション上で dd または dcfldd を使用し、ハッシュ検証 (MD5/SHA) を実施しながらフォレンジックに健全なビット単位のディスクイメージを作成し、証拠の完全性を保持します。容疑者のドライブ、USB デバイス、メモリーカードのイメージング、インシデント対応時の揮発性ディスク証拠の保存、破壊的分析前の法的手続きに使用します。

dd および dcfldd によるディスクイメージの取得 とは?

このスキルは、Linux フォレンジックワークステーション上で `dd` または `dcfldd` を使用して、フォレンジックに健全なビット単位のディスクイメージを取得するための詳細なワークフローを提供します。証拠の完全性を維持するために、書き込みブロッカー(ハードウェアまたはソフトウェア)の設定、ソースデバイスの事前ハッシュ化、取得中のハッシュ検証(MD5、SHA-256)、および事後検証を重視しています。`dcfldd` はハッシュログ、分割イメージ、検証パスなどの高度なフォレンジック機能を提供し、`dd` は幅広い互換性とパイプ処理(ネットワーク経由のリモート取得など)を可能にします。このワークフローは、容疑者のドライブ、USB フラッシュドライブ、障害が発生しているドライブからの取得など、さまざまなシナリオをカバーしており、証拠の完全性と完全な証跡を必要とする事件対応や法執行機関の調査に最適です。このスキルは、SIFT や Kali を含む任意の Linux ディストリビューションで使用でき、`dd`、`dcfldd`、`sha256sum`、`hdparm`、`smartctl`、`lsblk` などのツールの詳細な使用方法を説明します。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/mukul975/Anthropic-Cybersecurity-Skills/tree/main/skills/acquiring-disk-image-with-dd-and-dcfldd

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

dd および dcfldd によるディスクイメージの取得 は何をしますか?

使用すべき状況

  • 調査のために容疑者のドライブのフォレンジックコピーを作成する必要がある場合
  • 分析前に揮発性ディスク証拠を保存するインシデント対応中
  • 法執行機関や法的手続きにおいて、検証済みのビット単位のコピーが必要な場合
  • ストレージデバイスに対して破壊的な分析を実行する前
  • 物理ドライブ、USB デバイス、またはメモリーカードからイメージを取得する場合

前提条件

  • Linux ベースのフォレンジックワークステーション (SIFT、Kali、または任意の Linux ディストリビューション)
  • dd (すべての Linux システムにプリインストール) または dcfldd (拡張フォレンジック版)
  • ライトブロッカーハードウェア、またはソフトウェア書き込み保護が設定されていること
  • ソースより大容量の保存先ドライブ
  • フォレンジックワークステーションでの root/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
ディスクイメージ取得レポート
==============================
案件番号: 2024-001
日時: $(date -u +"%Y-%m-%d %H:%M:%S UTC")
検査担当者: [氏名]

ソースデバイス: /dev/sdb
モデル: [hdparm の出力から]
シリアル番号: [hdparm の出力から]
容量: [fdisk の出力から]

取得ツール: dcfldd v1.9.1
ブロックサイズ: 4096
ライトブロッカー: [ハードウェア/ソフトウェア モデル]

イメージファイル: evidence.dd
イメージハッシュ (SHA-256): [ハッシュファイルから]
ソースハッシュ (SHA-256): [ハッシュファイルから]
ハッシュ一致: はい/いいえ

取得中のエラー: [エラーログから]
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読み取りエラーでも続行し、オフセットの整合性を維持するためにゼロ埋めする
保管の連鎖 (Chain of Custody)証拠が改ざんされていないことを証明する文書化された経路
分割イメージング大きなイメージを小さなファイルに分割して保存・運搬する手法
Raw/dd 形式メタデータコンテナのオーバーヘッドがないビット単位のイメージ形式

ツールとシステム

ツール目的
dd標準的な Unix ディスク複製ユーティリティ。raw イメージングに使用
dcflddDoD Computer Forensics Laboratory による dd の拡張版。ハッシュ機能を搭載
dc3ddDoD Cyber Crime Center によるもう一つのフォレンジック dd 派生版
sha256sum整合性検証のための SHA-256 ハッシュ計算
blockdevブロックデバイスの読み取り専用モードを設定する Linux コマンド
hdparmドライブの識別とパラメータレポート
smartctlドライブの健全性と識別のための S.M.A.R.T. データ取得
lsblkブロックデバイスの列挙と識別

一般的なシナリオ

シナリオ 1: 容疑者のノートパソコンのハードドライブを取得する ドライブを Tableau T35u ハードウェアライトブロッカー経由で接続し、/dev/sdb として特定します。SHA-256 ハッシュを使用した dcfldd で取得し、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 を使用してギャップをゼロで埋めます。エラーログにどのセクタが読み取り不能だったかを文書化します。

出力形式

取得サマリー:
  ソース:       /dev/sdb (500GB Western Digital WD5000AAKX)
  保存先:      /cases/case-2024-001/images/evidence.dd
  ツール:       dcfldd 1.9.1
  ブロックサイズ: 4096 バイト
  所要時間:     2h 15m 32s
  コピーバイト数: 500,107,862,016
  エラー:       0 不良セクタ
  ソース SHA-256:  a3f2b8c9d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1
  イメージ SHA-256: a3f2b8c9d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1
  検証:         成功 - ハッシュ一致

Individual skills in this repo

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

abusing-dpapi-for-credential-access

Extract and decrypt Windows DPAPI-protected secrets (Credential Manager, browser logins/cookies, Wi-Fi credentials, KeePass keys) online or offline using SharpDPAPI, SharpChrome, Mimikatz, or Impacket

abusing-shadow-credentials-for-privesc

Take over Active Directory accounts by writing attacker-controlled public keys to msDS-KeyCredentialLink (Shadow Credentials) with pyWhisker, Whisker, or Certipy, then authenticate via PKINIT to recover the target

achieving-cmmc-level-2-compliance

>-

analyzing-active-directory-acl-abuse

Detect dangerous ACL misconfigurations in Active Directory using ldap3

analyzing-android-malware-with-apktool

Perform static analysis of Android APK malware using apktool for resource decompilation, jadx for Java source recovery, and androguard for manifest inspection, dangerous permission-combination detection, and identification of obfuscated code, dynamic code loading, and reflection-based API calls. Use to statically triage a suspicious APK without executing it or to build mobile malware detection rules.

analyzing-api-gateway-access-logs

Parses API Gateway access logs (AWS API Gateway, Kong, Nginx) to detect

analyzing-apt-group-with-mitre-navigator

Query ATT&CK data with attackcti, mitreattack-python, and stix2, then build MITRE ATT&CK Navigator layers and multi-layer heatmap overlays mapping one or more APT groups

analyzing-azure-activity-logs-for-threats

Queries Azure Monitor activity logs and sign-in logs via azure-monitor-query

analyzing-bootkit-and-rootkit-samples

Analyzes bootkit and advanced rootkit malware infecting the Master

analyzing-browser-forensics-with-hindsight

Parse Chromium-based browser databases with Hindsight to extract and correlate browsing history, downloads, cookies, cached content, autofill data, saved passwords, and extensions from Chrome, Edge, Brave, Opera, and Vivaldi into a unified timeline (XLSX, JSON, or SQLite output). Use during incident response, insider-threat investigations, or criminal cases when you need to reconstruct a user

analyzing-campaign-attribution-evidence

Systematically evaluate cyber-campaign evidence to attribute an operation to a threat actor, using the Diamond Model and Analysis of Competing Hypotheses (ACH) to weigh infrastructure overlaps, TTP consistency, malware code similarity, and timing/language artifacts into confidence-weighted attribution assessments. Use when an incident investigation needs a defensible attribution confidence level.

analyzing-certificate-transparency-for-phishing

Monitor Certificate Transparency logs using crt.sh and Certstream to

analyzing-cloud-storage-access-patterns

Detect abnormal access in AWS S3, GCS, and Azure Blob Storage by analyzing CloudTrail Data Events, GCS audit logs, and Azure Storage Analytics for after-hours bulk downloads, new-IP access, and API-call spikes (e.g. GetObject) via statistical baselines and time-series anomaly detection. Use when investigating suspected cloud data exfiltration or building related detection rules.

analyzing-cobalt-strike-beacon-configuration

Extract and analyze Cobalt Strike beacon configuration from PE files

analyzing-cobaltstrike-malleable-c2-profiles

Parse and analyze Cobalt Strike Malleable C2 profiles with dissect.cobaltstrike (profiles and beacon-payload configs) and pyMalleableC2 (AST parsing) to extract HTTP/DNS transforms, URIs, headers, sleep/jitter, and injection behavior, then generate network detection signatures. Use when reverse-engineering a captured malleable profile or building detections against Cobalt Strike Beacon traffic.

analyzing-command-and-control-communication

Analyzes malware C2 communication over HTTP, HTTPS, DNS, and custom

analyzing-cyber-kill-chain

Analyzes intrusion activity against the Lockheed Martin Cyber Kill Chain

analyzing-disk-image-with-autopsy

Perform comprehensive forensic analysis of raw (dd), E01, or AFF disk images with Autopsy and The Sleuth Kit, recovering deleted files, examining metadata and embedded artifacts, keyword searching, and building investigation timelines with visual reports. Use for structured analysis of a forensic disk image or when stakeholders need visual reports from evidence.

analyzing-dns-logs-for-exfiltration

Analyzes DNS query logs to detect data exfiltration via DNS tunneling,

analyzing-docker-container-forensics

Investigate compromised Docker containers by analyzing images, layers,

関連スキル