auditor

auditorは、暗号ハッシュ関数を使用した高速整合性監査用のフォレンジック ツールです 。

これは他の一般的なツール (fsum、hashdeep、sha256sum など) に似ていますが、デジタル データの監査をよりシンプルかつ 高速にする機能を備えています。

auditorは複数のハッシュアルゴリズムをサポートしています。デフォルトはsha256、2015年からNISTが推奨するハッシュアルゴリズムです( NISTのハッシュ関数に関するポリシーを参照)。

デフォルトでは、 Logothash method 有効になっていますが、このモードを無効にすることもできます。

インテグリティチェーン

が使用する監査プロセスは、整合性情報を格納する監査ファイルによって提供される整合性チェーンauditorの概念に基づいています 。

このプロセスに関係する用語は次のとおりです:
Audit_FullList: は、処理された各元のデータ ファイルの整合性情報を含む監査ファイルです。 : は、ファイル

Stampの実際の整合性情報です。は、関連するアクションを実行するときに常に再計算されて表示されます。 : は、作成時に を保存する監査ファイルです。Audit_FullListStamp

Audit_StampStampAudit_FullList

インテグリティチェーン
図1 - プロセスに関係するファイル

整合性チェーンは次の順序で生成されます (デフォルトの動作)。

内部のデータ ファイルinput_pathが処理され、整合性情報 (ハッシュ、サイズ、相対ファイル パスなど) が生成され、 に保存されますAudit_FullList

Audit_FullListも処理され、 が生成されますStamp。これは端末に印刷され、 に保存されますAudit_Stamp

整合性チェーンのチェックは、上記のプロセスとは逆の順序Stampで実行され、ファイルを再処理し、監査ファイルに対して整合性をチェックします。も再計算され、ターミナルに出力され、 に保存されているものと比較されAudit_Stamp、一致するかどうかが確認されます。

監査ファイルの生成を続行し、整合性チェーンの将来の検証が正しく安全に実行されるようにするには、次の手順に従います。

  1. データファイルを特定のフォルダ( と呼びますinput_path)に整理します。Auditor がインストールされている場合は、コマンドターミナルを開いて を実行します 。デフォルトでは、このコマンドは input_path フォルダのルート内に監査ファイルと auditor hash input_pathを作成します。(必要に応じて変更できます。) Audit_FullListAudit_Stamp
  2. 監査ファイルを含むすべてのデータを保存し、 ファイル の内容を 印刷するAudit_Stampか、 デジタル署名してください。
    この手順を省略すると、誰でもデータを改ざんして新しい監査ファイルを簡単に生成でき、整合性検証が損なわれる可能性があります。 現在、プリンターやデジタル証明書を利用できない場合は、 freetsa.org(オンライン署名を使用) などの無料のタイムスタンプ認証局を利用して、オンラインでファイルに署名することができます。
  3. 必要に応じて、データファイルと監査ファイルの両方を含むパッケージ(ZIP、TAR、またはその他のコンテナなど)を作成することもできます。このパッケージのバックアップコピーを複数のメディアに作成してください。
  4. その後、誰かが でチェックを行うと auditor check、前述の整合性チェーンが実行されます。プロセスの最後に、 からの整合性データ Audit_FullListが再計算され、端末に表示されます。 この値は、前のステップで印刷またはデジタル署名された値と完全に一致する必要があります。 一致しない場合、整合性チェックは無効です。
  5. のデータを使用して、個々のオリジナルデータファイルの整合性を検証することもできます Audit_FullList。 の使用法セクションの例を参照してください auditor check

使用法

短いマニュアルはこちらをご覧ください。

auditorシステムにインストールする と、次のように使用できます。

auditor subcommands: 情報
hash
lock
check
info
clone
chkcopy

hashフォレンジック監査の最初のステップです。ファイルの整合性を検証できる監査ファイルを生成します。

サブコマンドハッシュの基本的な使い方

auditor hash input_path

これにより、次のようになります。

  1. input_pathデフォルトのアルゴリズムで ファイルをハッシュする( sha256
  2. 監査ファイルを生成します(デフォルトパス: のルート内input_path):
    • Audit_FullList: のファイルの整合性データ(ハッシュ、サイズ、名前)が含まれます input_path。デフォルト名: _auditor_hashes.txt
    • Audit_Stamp: の整合性データのみが含まれますAudit_FullList。デフォルト名: _auditor_stamp.txt。これは、すべての整合性チェーンのチェックを確実にするために印刷またはデジタル署名する必要があるファイルです。
  3. 整合性データを表示Audit_FullList
  4. その後hash、整合性を検証するコマンドを実行できます check。今後の整合性チェックを適切に行うには、 「整合性チェーン」セクションを読み、そこに記載されているアドバイスに従ってください。

その他の例:

  1. ハッシュのみ生成し、ファイルは作成しません (-l)

    auditor hash input_path -l
  2. デフォルトのアルゴリズムで高速ディスク (-z) を使用して監査ファイルを上書きします (SSD ディスクの場合は高速なので便利です)。

    auditor hash input_path -o -z 
  3. 上記と同じですが、厳密モードを有効にして、input_path 内のすべてのファイルがハッシュされるようにします。

    auditor hash input_path -o -z --strict
  4. 監査ファイルを上書きします (-o)、thash メソッドを使用せずに (-d)。

    auditor hash input_path -o -d 
  5. 監査ファイルを上書きし (-o)、ルート フォルダー (-u 1) 内の txt ファイルのみ (-i "**/*.txt") を含めます (フラグ -i および -e は glob パターンを使用します。詳細については注記を参照してください)。

    auditor hash input_path -o -i "**/*.txt" -u 1
  6. 監査ファイルを上書きします (-o)、txt ファイルを除くすべてのファイルを含めます (-e "**/*.txt")

    auditor hash input_path -o -e "**/*.txt" 
  7. 監査ファイルを上書きします (-o)。「file1.doc」(-i "**/*/file1.doc") と「file2.xls」(-i "**/*/file2.xls") という名前のファイルのみを含めます。

    auditor hash input_path -o -i "**/*/file1.doc"  -i "**/*/file2.xls" 
  8. 監査ファイルを上書きします(-o)。$RECYCLE.BINフォルダ内のファイルと「System Volume Information」を除くすべてのファイルが含まれます。注意:$RECYCLE.BIN内の文字$はnameに属しており、正しく解析するには文字\でエスケープする必要があります。

    auditor hash input_path -o -e "**/\$RECYCLE.BIN/**" -e "**/System Volume Information/**" 
  9. 監査ファイルを上書きし(-o)、folder1という名前のディレクトリ内のファイルを除くすべてのtxtファイル(-i "**/*/*.txt")を含めます(-e "**/*/folder1/*")。

    auditor hash input_path -z -o -a blake3 -i "**/*/*.txt" -e "**/*/folder1/*" 
  10. 監査ファイルを上書き (-o)、高速ディスク (-z) とアルゴリズム 'blake3' (非常に高速) を使用します。

    auditor hash input_path -o -z -a blake3
  11. 監査ファイルを上書き(-o)、ブロックサイズ10MB、'whirlpool'ハッシュ関数を使用する

    auditor hash input_path -o -b 10MB -a whirlpool

lock既存の監査ファイルを保存する必要がある場合に便利です。これは after hashコマンドで使用でき 、誤って新しい監査ファイルが生成されるのを防ぐことができますinput_path

サブコマンド lock の基本的な使い方

auditor lock input_path

これにより、次のようになります。

  1. _auditor_lock.txt作成タイムスタンプ付きの ファイルを作成しますinput_path
  2. ハッシュサブコマンドはロックされた状態では実行されませんinput_path

ロックを解除するにはinput_path、ファイルを手動で削除する必要があります_auditor_lock.txt


checkフォレンジック監査の2番目のステップです。監査ファイルの情報を用いてデータの整合性をチェックし、ハッシュ化後に使用できます。

サブコマンドチェックの基本的な使い方

auditor check input_path

これにより、次のようになります。

  1. 監査ファイルを取得します (デフォルト パス: のルート内input_path):
  2. にリストされている整合性データを使用しAudit_Stamp、 と照合しますAudit_FullList
  3. にリストされている整合性データを使用しAudit_FullList、 の元のファイルと照合しますinput_path
  4. の再計算された整合性データを表示しますAudit_FullList

その他の例:

  1. デフォルトの監査ファイルを使用して、高速ディスク モード (-z) でチェックインします。

    auditor check input_path -z 
  2. 上記と同じですが、厳密モードが有効になっているため、input_path 内のすべてのファイルが検証されます。

    auditor check input_path -z --strict
  3. デフォルトの監査ファイルを使用して、txt ファイルのみをチェックします (-i "**/*.txt") (フラグ -i および -e は glob パターンを使用します。詳細については注記を参照してください)。

    auditor check input_path -i "**/*.txt"
  4. デフォルトの監査ファイルを使用して、静かなモード (-q) でチェックし、最初のエラー (-x) で停止します。

    auditor check input_path -q -x
  5. 特定の名前の監査ファイルを使用して F:\data_path をチェックします。(<Audit_FullList> に -f、<Audit_Stamp> に -s)

    auditor check F:\data_path -f C:\other_path\personal_fullList.txt -s C:\other_path\personal_stamp.txt -q -x 
  6. <input_path> 内の 1 つのファイルのみの整合性を監査ファイルと比較してチェックします。

    auditor check F:\data_path\file1.txt -f C:\other_path\some_audit.txt -q -x 

注:監査チェックは fsum 形式と互換性があります。

clone内部のデータのコピーinput_pathdest_path、コピーされたデータの整合性の検証に使用されます。

サブコマンドcloneの基本的な使い方

auditor clone input_path dest_path

これにより、次のようになります。

  1. からファイルを取得しinput_path、整合性データ (ハッシュ、サイズ、名前) を生成します。
  2. ファイルをコピーしますdest_path
  3. dest_pathで生成された整合性データに対して 、 のファイルの整合性をチェックしますinput_path
  4. input_path監査ファイルが存在しない場合は、-g オプションを使用して または で 作成できますdest_path。監査ファイルが存在する場合は、作成できません。

エラーの場合は再試行します (デフォルトは 3 回ですが、変更できます)。

その他の例:

  1. 高速ディスク モード (-z)。

    auditor clone input_path dest_path -z 
  2. 上記と同じですが、厳密モードを有効にして、input_path 内のすべてのファイルが複製されるようにします。

    auditor clone input_path dest_path --strict
  3. 静音モード (-q) で、最初のエラーで停止します (-x)。

    auditor clone input_path dest_path -q -x
  4. input_path と dest_path の両方に監査ファイルを生成するクローン作成 (注を参照)。

    auditor clone input_path dest_path -g both 
  5. dest_path にのみ監査ファイルを生成するクローン作成。

    auditor clone input_path dest_path -g dest 
  6. input_path にのみ監査ファイルを生成するクローン作成。

    auditor clone input_path dest_path -g input 
  7. -i および/または -e を使用して、プロセスのファイルを含めたり除外したりできます (--strict と併用できません)。

    auditor clone input_path dest_path -q -x -i "**/*.txt" -e "**/dir1/**/*

注意:監査ファイルを生成するには、input_path監査ファイル (Audit_FullList および Audit_Stamp) を含めることはできません。これは、既存の監査ファイルとの混乱を防ぐためです。

auditor clone --help のすべてのオプションを参照してください



chkcopyinput_pathは、内部のデータを監査ファイルと照合して にコピーしdest_path、同時に にコピーされたデータの整合性を検証するために使用されますdest_path

サブコマンドchkcopyの基本的な使い方

auditor chkcopy input_path dest_path

これにより、次のようになります。

  1. 監査ファイルからファイルを取得しinput_path、監査ファイルの整合性データと照合します。
  2. ファイルをコピーしますdest_path
  3. dest_path監査ファイルからの整合性データに対して ファイルの整合性をチェックします。
  4. 注意: chkcopy は監査ファイルを生成しません。

エラーの場合は再試行します (デフォルトは 3 回ですが、変更できます)。

その他の例:

  1. 高速ディスク モード (-z) では、SSD、M.2 などの高速ディスクになります。

    auditor chkcopy input_path dest_path -z 
  2. Same that above, but with strict mode enable, to ensure that ALL files in input_path are checked and copied:

    auditor chkcopy input_path dest_path --strict
  3. In quiet mode (-q) and stop on first error (-x).

    auditor chkcopy input_path dest_path -q -x
  4. You can use -i and/or -e to include or exclude files of process (Can´t be used with --strict).

    auditor clone input_path dest_path -q -x -i "**/*.txt" -e "**/dir1/**/*

Note: input_path must to have audit files (Audit_FullList / Audit_Stamp)!

)

info does not perform hash integrity check. It only tests the audit files and the content of input_path and shows useful information. Can be used after hash was performed.

Example of Forensic Info

auditor info input_path

This will:

  1. Get audit files (Default path: inside root of input_path ):
  2. Verify if audit files Audit_Stamp and Audit_FullList exists.
  3. Verify if files listed in Audit_Stamp and Audit_FullList exists and listed size is the same that in input_path.
  4. Verify if all files in input_path are listed in Audit_FullList.
  5. Recalculate integrity data of Audit_FullList and check against audit file Audit_Stamp
  6. Give a report of size of the files and of all input_path.
)

注記

1: Windows PowerShellでは、パス名にスペースが含まれる場合は、末尾の「」を省略して引用符で囲む必要があります\。必要に応じて、末尾に二重のバックスラッシュを使用してください\\。これは、単一のバックスラッシュが末尾の引用符をエスケープし、ターミナルがパスを正しく解釈できないためです。

これは機能します: "C:\My Data Path"または"C:\My Data Path\\"

これは失敗します: "C:\My Data Path\"

2:フラグ -i と -e(包含パターンと除外パターン)はglob構文を使用します。簡単なマニュアルはこちらをご覧ください。

ダウンロード

バイナリのダウンロードと整合性データ(zip 内):

免責事項:このバージョンのはauditor開発段階のソフトウェアとして提供されており、いかなる保証やサポートも提供されません。また、 非商用目的のみに無料でご利用いただけます。自己責任でご利用ください。

ライセンス:このバージョンのは非商用利用のみauditorにライセンスされています 。詳細については、 ライセンス条項全文をご確認ください。

特典

監査ファイルの形式

監査ファイルの形式はシンプルです。各行には以下の内容が含まれます。

hash_value ?ALGORITHM[<THASH-BlockSize>]|file_size[:hex]*relative_filepath
ここで[ ]はオプションです。

hash_value: ハッシュの値。

ALGORITHM[<THASH-BlockSize>]: ハッシュ化に使用されたアルゴリズム。他のツールとの互換性を保つため、大文字で格納されます。<THASH-BlockSize> パラメータはオプションで、ハッシュ化手法とブロックサイズが使用されたことを示します。ブロックサイズはKB、MB、GB、またはTB単位で指定する必要があります。例:10MB。

file_size: ハッシュ化された元のファイルのファイルサイズ。サイズが一致しない場合のチェックや速度向上に役立ちます。元のファイルとサイズが一致しないことが既に分かっているのに、なぜ大きなファイルをハッシュ化するのでしょうか?

[:hex]: ファイルパスが16進形式であることを示すオプションのフラグ。これは、一部のOSでは「\n」、「\r」、「\0」などの文字が許可されており、結果のフォーマットに関する問題を回避できるため必要です。

relative_filepath: ハッシュされたファイルの相対ファイルパス。

例1:メソッドの使用 thashアルゴリズムsha256、ブロックサイズ50MBの場合:

281d5d93464f1165ea7c403ca99d63ff4bf9a360864f8df4bd0e8e6c03774e98 ?SHA256<THASH-50MB>|500000*file_hashed.bin

例 2:通常の方法を使用し、アルゴリズム blake3 のみを使用し、ファイルパスを 16 進形式で指定します。

7357b67824d086dc53f5e1ded565f500456bea1812783f1fbcddc08fddc3944c ?BLAKE3|2233:hex*1aCb344356e4e2b2b6

将来的には他の形式も実装される可能性があります。



ベンチマーク

超微細構造 を用いて 、auditor、fsum、rhash、hashdeep64 を実行し、結果を以下に示します。

Machine configs:
S.O.: Windows 11 Home 64bits
Processor: AMD Ryzen 7 (7800X3D 4.20 GHz)
RAM: 64 GB of RAM (Corsair Vengeance DDR5 64GB - 5200MHz)
Disk: SSD M.2 2TB (Corsair MP600 Pro NVMe)

Data Source 1:
Benchmarks
Benchmarks using Data Source 1: Benchmarks
Data Source 2
Benchmarks
Benchmarks using Data Source 2: Benchmarks
ご意見やバグを発見された場合は、下記までご連絡ください。 [email protected]