web-dev-qa-db-ja.com

ディスク(DVD)の書き込み/書き込みを確認するにはどうすればよいですか?

ディスクが確実に書き込まれた/書き込まれた日時を特定する方法/ツールはありますか?これはデータフォレンジックに関するものであり、確かな証拠となるはずです。既にIsoBusterを試しましたが、トラックが書き込まれた日時は表示されませんでした。

13
woerndl

ほとんどのオプティカルデータディスクは、 ISO 966 ファイルシステム標準を使用します。CD-ROMのボリュームとファイル構造は、情報交換のためにUniversal Disk Format Specification またはその両方(UDFブリッジと呼ばれる)。

どれを見つけるために、あなたは実行することができます

mount

linuxでは、光ディスクドライブのデバイスファイルを識別するために、ディスクがマウントされた後。

出力例:

/dev/sr0 /media/dennis/CDROM iso9660 ro,nosuid,nodev,uid=1000,gid=1000,iocharset=utf8,mode=0400,dmode=0500,uhelper=udisks2 0 0

ここでは、デバイスファイルは/dev/sr0。コマンド

disktype /dev/sr0

使用可能なファイルシステムが表示されます。両方が存在する場合は、ISO 9660を分析する方が簡単です。

ISO 9660

標準では、フィールドVolume Creation Date and Timeをボリュームの作成の瞬間の数値表現として指定し、の814番目から830番目のバイトに書き込まれます次の形式の1次ボリューム記述子

YYYYMMDDHHMMSSCCO

ここで、[〜#〜] cc [〜#〜]はセンチ秒、[〜#〜] o [〜#〜] 15分間隔でのGMTからのオフセットで、8ビット整数として格納されます( 2の補数表現 )。

ディスクの最初の32 KiB(32,768バイト)はISO 9660では使用されず、上記の記述子は未使用のブロックの直後に続くため、33,582バイト目とそれに続く16バイト目が重要です。

この情報は、光ディスク上の生データをダンプ/読み取りできる任意のツールで分析できます。 Linuxでは、 dd を使用してイメージの関連部分をダンプし、hexdumpを使用して最後のバイトを適切に表示できます。

dd if=/dev/sr0 bs=1 skip=33581 count=17 | hexdump -C

私のUbuntu 12.04 x64 LiveCDの場合、次のようになります。

00000000  32 30 31 32 30 38 32 33  31 37 31 33 34 37 30 30  |2012082317134700|
00000010  00                                                |.|

したがって、画像は2012年8月23日17:13:47.00 GMTに作成されました。

UDF

標準では、ファイルされたRecordingDateandTimeを、Primary Volume Descriptorの376番目から387番目のバイトに書き込まれる、プライマリボリュームの作成の瞬間のバイナリ表現として指定しています次の形式:

TT tT YY YY MM DD HH MM SS CC BB AA

ここで、各ペアはオクテット(バイト)です。つまり、XXは2つの16進数で構成されます。

  • TT tTは、タイムスタンプのタイプとタイムゾーンを表す リトルエンディアン 16ビット整数です。

    最下位12ビット(TTT)はタイムゾーンを保持し、UTCからのオフセットとして分単位の符号付き整数( 2の補数表現 )としてエンコードされます。

    上位4ビット(t)はタイプを保持します(常に1、現地時間を意味します)。

  • YY YYは、符号付きとしてエンコードされた年です リトルエンディアン 16ビット整数( 2の補数表現 )。

  • MMDDHHMMSSCCBBおよびAAは、作成の月、日、時、分、秒、センチ秒、数百マイクロ秒、マイクロ秒を表す符号なし8ビット整数です。

繰り返しますが、ディスクの最初の32 KiBはUDFによって使用されません。さらに、次の32 KiBバイトは、レガシーISO 9660ファイルシステム用に予約されています(存在する場合、より多くのスペースを占有する可能性があります)。

「純粋な」UDFディスクでは、コマンド

dd if=/dev/sr0 bs=1 skip=65912 count=12 | hexdump -C

エンコードされたタイムスタンプを表示します。

テストのために、K3bを使用してUDFイメージを作成しました。 ddコマンドの出力は次のとおりです

00000000  4c 1f dd 07 03 01 0f 0b  11 00 00 00              |L...........|
0000000c

分析:

  • 0xF4C(16進数)は0x800より大きいため、–マイナスです。 0xF4Cから0x1000を置くと、10進数で-180になります。つまり、タイムゾーンはUTC-3です。

  • 0x07DDは10進数で2013(作成年)です。

  • 残りのオクテットは16進表記で文字どおりに解釈できます(0x0F、0x0Bおよび0x11は10進数で15、11および17です)。

    これは、画像が2013年3月1日15:11:17.000000 UTC + 3に作成されたことを意味します。

注意事項

  • この日付を改ざんするのは簡単です。必要なのは、イメージを作成する前にコンピューターの日付を変更することだけです。

  • 実際にディスクに書き込まれる前にイメージが作成された場合は、以前の時間が記録されます。したがって、フィールドは、所有者自身が作成したディスクの潜在的な証拠にすぎません。

18
Dennis