dcflddは、対象のディスク(ストレージ・デバイス)から、コピーを取るツールです。
前回取り上げたddコマンドと同じ機能ですが、よりフォレンジック作業に適したツールです。
ddコマンドに比べて、ハッシュの生成を行ってくれます。
dcfldd=dcfl+dd
dcfl:米国防総省(DoD)の Computer Forensics Lab (DCFL) が開発。
ヘルプ表示
15-forensics ー Digital forensics ー dcfldd

Enhanced version of dd for forensics and security(ddコマンドの強化版)との注釈が出ます。

dcflddの特徴について
- dd の機能を完全に持ちながら、フォレンジックに便利な拡張がある。
- コピー中に 同時にハッシュ計算 が可能(MD5, SHA1, SHA256など複数ハッシュ対応)。
- ハッシュ値をログに保存できる。
- 複数出力に同時コピーが可能(例:イメージを2つのファイルに同時保存)。
- 進捗が見やすい。
コピー作業
作業の大まかな流れ
大まかな流れです。このパートは前回(ddコマンド)と同じですので端折ります。
- White Blockerで書き込み防止
- lsblkで対象デバイスを確認(sda, sdbなど)
- 容量・メーカー・対象パーティション(sda1, sda2など)を確認
- unmount /dev/sd* で対象デバイスをアンマウント
- hdparm -r1 /dev/sd* で読取専用化
- if=/dev/sd* 指定してddを実行
コピー元
今回も32GBのUSBメモリを使用してみます。

ラズパイのUSB端子に刺すとデスクトップにマウントされます。

中にはファイル1つだけです。(但し、過去の無数の書き込みと削除があります)

入力ファイル名の検索
入力ファイルの指定の際に、そのファイル名を特定・確認する方法に工夫が必要です。
“lsblk” コマンドでファイル名を検索します。
lsblk -o NAME,SIZE,FSTYPE,MOUNTPOINT,LABEL,MODEL

目的のファイル名は “sda” です。
アンマウントと書込禁止
umountでアンマウント。 “sudo hdparm -r1” で書き込み禁止します。

コピー実行
dcflddでコピー実行します。
sudo dcfldd if=/dev/sdX of=/mnt/forensics/disk01.dd hash=md5,sha256 hashlog=/mnt/forensics/disk01.hashlog bs=4M conv=sync,noerror
オプション “hachlog=” は、作成するハッシュのファイルを指定します。

オプションの解説
- if=:コピー元ファイル(デバイス)の指定
- of= を複数指定すれば同時にコピー可能(例:バックアップ+検証用)
- hash= : 計算するハッシュアルゴリズム(md5, sha1, sha256, sha384, sha512から複数指定可)
- hashlog= : ハッシュ値を保存するログファイル
- bs=:コピー単位
- conv=:sync,noerror 読み取りエラー時もゼロ埋めして継続
- split= : 出力を分割可能(例:4GBごとに分割)
実行結果確認
指定した “/mnt/forensics/” に ”transcend02.dd” ファイルが作成されています。

ハッシュログの確認
指定した “/mnt/forensics/disk02.hashlog” ファイルに、md5形式とsha256形式のハッシュが作成されています。

まとめ
このハッシュログが作成できることが “ddコマンド” との主な違いになります。
その他、出力先を複数指定したり分割する機能があります。
しかしながら、 “dcfldd” をさらに拡張した “dc3dd” という同機能のツールがあります。
そして “dc3dd” こそが正式なフォレンジックツールという位置付けで頻用されているようです。
補足
“dfコマンド” でラズパイのmicroSDの状況を調べると、

全128GBの容量のうち空きが26GBしか無くなっています。
32GBのコピーを2つ( “ddコマンド” でtranscend01.ddファイル、 “dcflddツール” でtranscend02.ddファイル)作ったせいです。
ラズパイの最初のmicroSDの大きさを選ぶ時には、このような事態を想定するべきことがわかりました。


コメント