web-dev-qa-db-ja.com

BIOSが2つの時点で変更されたかどうかを確認することはできますか?

コンピュータの実行中に、コンピュータのBIOSがそのコンピュータから2つの時点の間に変更されたかどうかを判断することはできますか?

事実上、ローカルホストオペレーティングシステムを介して(理想的にはLinuxの答えは素晴らしいですが、何でも機能します)、または何かを介して、BIOSの暗号ハッシュスナップショットと同等(または可能な限り)を収集できますコンピュータを再起動せずにIPMIのように。

コンピューター自体を信頼できないという問題があることも知っていますが、基本的な機能を探しているだけです。

注:コンピュータにBIOSが感染していないことや、午後1時から3時の間に新しい変更が発生していないことを証明するつもりはありません。

9
Trey Blalock

ボードが compatible である場合、 flashrom-r arg とともに使用して、BIOSをファイルにバックアップできます。次に、md5、sha256などを使用して、後で比較できるハッシュを取得できます。

//baseline.sh
//first make your baseline bios checksum with
flashrom -r ./bios.bios
sha256sum bios.bios > bios.checksum

//check.sh
//now periodically check again
flashrom -r ./bios.bios
sha256sum bios.checksum -c
//if your output looks like "bios.bios: FAILED" you have a problem.
4
Aedazan

システムにTPMがある場合は、システムブート間の変更がないかPCRを確認できます。最初のいくつかのPCRは、BIOSの個別の部分のハッシュで拡張されています。ドキュメントを調べて、チェックに使用するPCRを確認する必要があります。 LinuxでのPCRの読み取りは、/ sysで正しいデバイスノードを読み取るだけの問題です。Windowsでは少し複雑です。そのためのカスタムコードを記述する必要があると思います。

3
André Borie

いいえ。

BIOSとチェックサムを読み取る可能性はありますが、悪意のあるBIOSがこれを簡単に傍受する可能性があります。したがって、BIOSチェックサムやTPMをチェックしているときに何かが表示される可能性がありますが、セキュリティ対策を十分に理解している攻撃者はこれを簡単に回避できます(ハードウェアへの無制限のアクセス権を持つユーザーが侵入します)。

しかしながら ...

PCが常にオンラインになっている場合(つまり、2番目のサーバーへのハートビートによって確認されている場合)、ハードウェア側でBIOSがフラッシュされていないことを確認できます。攻撃者がサーバーにrootアクセスできない限り、実行時にBIOSをフラッシュすることは簡単ではありません。ただし、PCが常にオンラインになっていることを十分に確認する必要があります(つまり、IPSecを介して特にシードされたハートビートパッケージと10ms未満のレイテンシが必要です)。

no 100%安全なものがあることに注意してください。

2
Sebb