サーバーのセキュリティを最大化するには、ソフトウェアで実装される通常のセキュリティ対策に加えて、サーバーシステムの特定の部分の上書きを防止して、物理的なアクセスのみがこの書き込み保護を回避するようにする必要があるようです。
任意のコード実行権限を取得するのに十分成功したリモートの攻撃者が以下を変更できる場合、そのサーバーは、そのような攻撃者ができる場合よりも安全性が大幅に低下しますできないそれらを変更します。
これは 多層防御 の根拠です。
私の質問は次のとおりです。
ハードウェアレベルでBIOSチップを書き込み禁止にすることは可能ですか? BIOS Savior と同様のフォームファクタを持つデバイスで、代わりに、BIOSを上書きできる回路に電流が到達するのを物理的に防止するハードウェアスイッチを持っていますか? (NB:NSAの「ANT部門[ある] BIOSに悪意のあるコードを植えることの明確な優先順位」 )
同様に、ハードウェアレベルでプロセッサを書き込み保護することは可能ですか? BIOSについて上記で説明したものと同様のフォームファクタを必要に応じて変更します。つまり、マザーボード上のCPUソケットとCPU自体の間に物理的に配置し、電流が物理的に到達しないようにハードウェアスイッチを備えています。 CPUのファームウェアを上書きできる回路?
記憶域に読み取り専用の光学ドライブ(CD-ROM、DVD-ROMなど)を使用することにより、ハードウェアレベルでオペレーティングシステムのインストールを含む記憶媒体を書き込み保護することがすでに可能です。その他のオプションには、 書き込み保護されたUSBフラッシュドライブ 、またはUSBポートとOSを含むドライブの間にインストールされたフォレンジックUSB書き込みブロッカーが含まれます。
Live CDs はテストや実験によく使用されますが、これは展開での一般的な慣行ではないようです。おそらくこれは、たとえDVD-ROMを交換して再起動するだけの問題であっても、システム管理者はOSの更新ごとにすべてのサーバーに物理的にアクセスする必要がないためです。しかし、私はその好みを共有しません。私にとって、セキュリティはより重要です。
始める前に、情報セキュリティのコンテキストで使用されるtrustという用語について少し説明します。 infosecでは、信頼は、論理的に見えるものとは逆の意味を持つことがよくあります。あなたはより少ない信頼を求めています。システムのuntrustedコンポーネントは適切であり、信頼されていないコンポーネントが多いほど良いです。信頼とは信頼を意味します。コンポーネントを信頼する場合、正直で正しく実装され、安全であることが信頼されます。コンポーネントを信頼しない場合は、妥協したり悪意があってもコンポーネントが害を及ぼすことを許可しないことを意味します。安全なコンピュータでは、 Trusted Computing Base (TCB)は、任意のシステム上の信頼できるコードの合計です。 TCBが小さいほど良いです。
watchmanを監視しているのは誰ですか? infosecでは、最高の監視員はTCBです。数が少ないほど、システムは安全になります。この問題を完全に解決することは不可能ですが、一般的な効果的な解決策の1つは、ソフトウェアよりも改ざんが難しいハードウェアへの信頼を実装することです。ハードウェアは少量のソフトウェアを検証します。この小さなソフトウェアは、より大きなソフトウェアを検証します。これについては、この記事の後半で説明します。
ハードウェアレベルでBIOSチップを書き込み禁止にすることは可能ですか? BIOS Saviorと同様のフォームファクタを持つデバイスで、代わりに、BIOSを上書きできる回路に電流が到達するのを物理的に防止するハードウェアスイッチを持っていますか?
一部の古いシステムでは、BIOSに書き込むためにジャンパーを設定する必要がありました。今日では、ほとんどの場合、ソフトウェアで行われています。これを軽減するために、 BootGuard をサポートする最新のコンピューターを使用することをお勧めします。 BootGuardは、BIOSが改ざんされていないことを確認するために、BIOSがデジタル署名を読み込んで検証する前にCPUで実行されます。署名が有効な場合にのみ、起動が再開されます。
同様に、ハードウェアレベルでプロセッサを書き込み保護することは可能ですか? BIOSについて上記で説明したものと同様のフォームファクタを必要に応じて変更します。つまり、マザーボード上のCPUソケットとCPU自体の間に物理的に配置し、電流が物理的に到達しないようにハードウェアスイッチを備えています。 CPUのファームウェアを上書きできる回路?
CPUにはファームウェアがありません。実際、それらには永久的なストレージはまったくありません。 Intelの多くの文書には「ボラティリティの表明」さえあり、基本的に中古CPUには個人情報や以前の所有者からの永久的な変更は含まれないと述べています。たとえば、 Xeon E5 v4データシート のセクション1.1.4には次の内容が含まれています。
1.1.4 Statement of Volatility (SOV)
The Intel® Xeon® Processor E5 v4 Product Family does not retain any
end-user data when powered down and / or the processor is physically
removed from the socket.
技術的には、CPUにはOTP(One-Time-Programmable)ヒューズと呼ばれる少量の永続的なストレージがありますが、BootGuardがアクティブかどうかなど、いくつかの基本設定を永続的に変更するために使用されます。実行可能ファイルは含まれていません。
あなたはおそらく microcode を考えています。マイクロコードは、マイクロコードテーブルを介してルーティングすることにより、CPUが特定の命令の動作を変更できる方法です。これは、バグのある命令を修正したり、完全に無効にしたりするために使用されます。ただし、CPUに組み込まれておらず、実行時にのみロードできます。 CPUがリセットされると、マイクロコードは失われます。 CPUがマイクロコードをロードできる主な方法は2つあります。
マイクロコードは、インテルだけが知っている署名鍵を使用して検証されます。悪意のあるマイクロコードを挿入するには、それを実行させ、Intelの署名鍵を入手する立場にある必要があります。
この種類の構成をサポートするように設計されたサーバーOS /ディストリビューションはありますか?
Tails は、これを行うために特別に設計されています。データをメモリにのみ保持する健忘症のライブシステムです。ユニオンと呼ばれる特別なタイプのファイルシステムを使用して、他の2つのファイルシステムを融合します。具体的には、USBスティックまたはDVDに存在する読み取り専用のsquashfsと、メモリ内のtmpfsを融合します。 unionファイルシステムへの変更はtmpfsに書き込まれます。これは、実際には変更されないファイルシステムが1つだけあり、メモリ内にのみ存在する別のファイルシステムがある場合に、1つの大きな書き込み可能なファイルシステムのような錯覚を与えます。
この方法でサーバーを展開および保守するための専用の情報リソース(ブック、Webサイト)はありますか?
ディスクレスサーバーを調べたい場合があります。これらは、クラスタリングとネットワーク経由のブートで一般的です。ネットワーク経由で保存されない限り、それらが持つすべてのデータは再起動時に失われます。
あなたが提供したハードウェアのリストは完全ではありません。変更可能な最新のマザーボードには、他にもたくさんあります。例えば:
それ以外にもあり、ブートプロセスを確認する方法がない限り、すべてを書き込み禁止にしようとすると、猫とマウスのゲームになります。
少し努力すれば、ソフトウェア(最新のハードウェア)を単独で使用しても、ハードウェアの整合性を検証でき、信頼する必要のあるコンポーネントの数を大幅に減らすことができます。物理的にアクセスできないコンピューターに対してリモートでこれを行うこともできます!これはリモート認証と呼ばれます。通常、これはTPMを使用して行われます。
TPMは、改ざんに強く安全なように設計された小さなハードウェアコンポーネントです(多くの場合、新しいプロセッサのファームウェアでエミュレートされます)。それは最小限の機能を持ち、いくつかのことしかできません。主に、システムのさまざまなコンポーネントのハッシュを結合するために使用され、(unseal)ハッシュが既知の値と一致する場合、それら自体。さまざまなソフトウェアが、システムの一部のコピーをTPMに送信してハッシュします。その結果、システムのいずれかのコンポーネントが変更されると、TPMのハッシュが変更されます。これはすべて、通常は読み取り専用のBIOSコンポーネントであり、BIOS自体のハッシュをTPMに送信する、信頼されたCRTM(Core Root-of-Trust for Measurement)から始まります。 CRTMとTPMが信頼されている場合、システムの残りの部分は信頼されていません。
TPMはシステムのいくつかの異なるコンポーネントを検証し、そこに保存しますPCRs。各PCRには異なる目的があり、システムの異なる部分を検証します(別の投稿から取得)。
PCR 0 to 3 for the BIOS, ROMS...
PCR 4 - MBR information and stage1
PCR 8 - bootloader information stage2 part1
PCR 9 - bootloader information stage2 part2
PCR 12 - all command-line arguments from menu.lst and those entered in the Shell
PCR 13 - all files checked via the checkfile-routine
PCR 14 - all files which are actually loaded (e.g., Linux kernel, initramfs, modules...)
PCR 15 to 23 are not used for SRTM
覚えておくべき重要なことは、TPMは検出された改ざんに対して動作できないことです。実際、LPCバス上に配置されているため、基本的には不可能です。それができることは、ハードウェアが正常な状態にあることを確認し、それ以外の場合はそれ自体を開封することを拒否することです。封印されたデータには、ディスク暗号化キー(システムが改ざんされた場合にシステムが起動しないことを保証する)、または文字列(これは、 ITLのAnti-Evil Maidの仕組みです)。
このプロセスの終わりは、システム全体のTCBを小さな読み取り専用のCRTMとセキュアなTPMチップ自体にまで削減したことです。
いくつかのリソースを求められたので、COTSワークステーションのセキュリティを向上させる(信頼できるコンピューティングベースを減らす)ために、次のことを検討します。
関連している可能性があり、このプロセスを理解するのに役立つ他のいくつかの質問:
書き込み保護は猫とマウスのゲームです。唯一の実用的な解決策は、測定されたブートを使用することです。
[〜#〜] bios [〜#〜]
私が使用したほとんどのメモリチップには、書き込みモードを選択するWまたはR/Wピンがあります。その人を適切な論理レベルに物理的に結びつけることがトリックをするはずです。
書き込み保護されたUSBドライブ
これについては少し疑わしいです。マイクロコントローラ<-> SDカードインターフェイスを実装しました。「書き込み保護」ビットはソフトウェアで完全に処理されるため、コンピュータの一部を信頼してそこに書き込めないようにする必要があります。この点でUSBフラッシュドライブが同じであるかどうかはわかりませんが、これは覚えておくべきことです。ハードウェアスイッチがまだソフトウェアで保護されている可能性があります。