web-dev-qa-db-ja.com

ディレクトリの信頼性と整合性を確保する方法

ディストリビューションでUbuntuの署名付きチェックサムと同様のことをしたいのですが、現在、整合性の部分に行き詰まっています。ここのチュートリアルでは、プロセスをどのように見せたいかをほとんどカバーしています(私が使用しているので、Mac構文用に記述しているものを変更しました)。 https://tutorials.ubuntu。 com/tutorial/tutorial-how-to-verify-ubunt

残念ながら、私が使用している配布チャネルでは、ファイルを解凍して配布する必要があります。それ以外の場合は、それらをtarファイルなどに圧縮して、その上でチェックサムを実行します。

存在するファイルのSHA256SUMSファイルを生成するのは非常に簡単です:find * -type f -exec shasum -b -a 256 {} \; > SHA256SUMS(合計ファイルの合計を削除する必要があるだけです)。その後、合計はshasum -c -a 256 SHA256SUMSで確認できます。

私の懸念は、このシステムは、合計が生成されたときに存在していたファイルの整合性のみを保証することです。攻撃者は追加のファイルを追加する可能性があり、このシステムはそれをキャッチしません。

帯域内に留まることを考えた1つのオプションは、受信者に同じコマンドを実行して新しいファイルで合計を生成し、生成されたものと私が生成したものとの差分を実行することですが、一部の人々はただ実行するのではないかと心配しています典型的な検証コマンド。代わりに、検証を実行するスクリプトを含めた場合、攻撃者はこのスクリプトも変更するだけであり、スクリプトを無視して一般的な検証戦略を実行する危険性もあります。

これまでのところ、最良のオプションのように思われます。別の配布チャネルを用意し、そのファイルに署名済みのチェックサムを作成し、検証を完了するには、2つのファイルツリー間の差分を確認します。他のアイデアはありますか?

2
jack

このようなシステムを自分で設計するのではなく、 Aide などの既存のファイル整合性チェッカーを利用することをお勧めします。

Aideはファイルシステムからデータベースを作成し、権限、iノード番号、ユーザー、グループ、ファイルサイズ、mtimeとctime、atime、増加するサイズ、リンク数、リンク名などのさまざまなファイル属性を格納します。誰かがファイルシステムに変更を加えると、補佐官はデータベースをシステムの実際のステータスと比較して報告します。

気になる特定のファイルやディレクトリを監視し、変更を通知するように設定できます。

Macの場合、Aideは Brewとともにインストールされる にすることができます。

1
gowenfawr