web-dev-qa-db-ja.com

パッケージリポジトリに対する整合性チェック?

セキュリティ更新プログラムがある場合は、できるだけ早くそれらを確認およびインストールし、自動更新の使用を検討します。

時々、クリーンブートCDから起動し、システムが侵害されていないかどうかを確認したいと思います。

そのため、パッケージ/バイナリが変更されていないか、ブートローダーをチェックし、ルートキットをチェックします。

クリーンブートCDから起動し、hddファイルシステムをマウントしたとします。

インストールされているすべてのバイナリと設定ファイルのすべてのsha256ハッシュ合計のリストを取得し、Debianリポジトリのバージョンと照合するにはどうすればよいですか?

侵入検知システム(debsums)を調査しましたが、Afick、AIDE、FCheck、Integrit、Osiris、OSSEC、Samhain、Tripwireを調べましたが、監査前に既知の良好なデータベースを作成したいという共通点があります。更新は非常に頻繁に行われ、既知の良好なデータベースの有用性が低下するため、これはあまりうまくスケールしません。更新後の既知の正常なデータベースの再作成も安全ではありません。たとえば、apt-getにバグがあり、悪意のあるパッケージをインストールした場合、その悪意のあるパッケージのチェックサムは既知の正常なデータベースになります。

実際の解決策は、ディストリビューションのパッケージリポジトリをチェックすることだと思います。どうやってやるの?

http://wiki.debian.org/SecureApt#How_to_manually_check_for_package.27s_integrity を確認しましたが、手順は不完全です。

4
user539484

パッケージ内の個々のファイルの完全性をリポジトリと照合するには、パッケージをダウンロードする以外に簡単な方法はありません。リポジトリは通常、次のファイルを提供します。

  • Release{,.gpg}InRelease-これらはPackagesファイルのハッシュを提供します。
  • Packagesファイルは、パッケージのハッシュを提供します。
  • Contentsファイルは、存在する場合、パッケージのファイルリストを提供します。

個々のファイルのハッシュを提供するファイルはありません-これらはパッケージに含まれています(DEBIAN/md5sumscontrolアーカイブ内)。

したがって、ローカルシステムを信頼していない場合:

  1. Contentsファイル(利用可能な場合)をダウンロードする必要があります。
  2. そのファイルを使用してファイルをパッケージに一致させ、パッケージをダウンロードします。
  3. 次に、md5sumsファイルを検証します。

Contentsファイルが利用できず、ローカルシステムを信頼していない場合は、everyパッケージをダウンロードして、ファイルの提供元を確認してください。

これはスケーリングしません。

1
muru