web-dev-qa-db-ja.com

サーバー上のディスクが暗号化されている場合、物理的なセキュリティはそれほど重要ではありませんか?

サーバーに物理的にアクセスできれば、現在のパスワードがわからなくても、root/adminのパスワードを変更できます。

しかし、暗号化されたディスクでは、これは可能ではないと思います(または可能ですか?)。

それでは、サーバーの物理的な安全性がそれほど重要ではなくなったということですか?それは他の理由でまだ必要ですが、この理由はなくなったのでしょうか?

41
user93353

物理的なアクセスは、多くの場合、ほとんどの場合、セキュリティの完全な喪失を意味します-さまざまな理由から(これはすべて暗号化されたディスクを想定しています):

  • 盗難-攻撃者はサーバーまたはディスクを盗んで、自分のペースで攻撃する可能性があります。これにより、攻撃者は時間をかけることができ、攻撃者が実際にデータにアクセスしたかどうかはわかりません。
  • 物理的な変更-サーバーにアクセスできる場合は、ハードウェアを追加できます。これには、USBやキーボードのログ記録から、リモートアクセスを可能にするワイヤレスインターフェースの追加までが含まれます。
  • コールドブート攻撃 -暗号化キーを抽出してディスクの復号化を可能にする攻撃があります。
  • 等.

もちろん他にもありますが、これは攻撃者が物理的にアクセスできる場合に発生する可能性のあるサンプルにすぎません。バックドアされたUEFIイメージの適用など、まだいくぶん理論的な攻撃が存在する可能性があります。

恐らく、物理的な攻撃の最悪の部分は、正確に何が行われたかさえわからない可能性があるため、後でハードウェアを信頼できるようになることには実際の問題があります。

70
Adam Caudill

物理的なアクセスは、完全なアクセスです。ちょっと。暗号化されたディスクを備えたサーバーに物理的にアクセスできるようにします。最初にやるべきことは、キーロガーをキーボードに接続して、その厄介な暗号化を処理することです。

暗号化されたハードドライブを使ってドアに現れたら、フォーマットしてムービーをダンプします。

暗号化は、通常、暗号化を破ることではなく、回避することによって破られます。使用するだけでなく保護するだけです。あなたはあなたにアクセスを与える何かを持っているので、あなたはアクセスを持っています。パスワード、RFID、指紋など、何でも。物理的なアクセス権を与えてくださいまだ使用している間そして、私はあなたがアクセス権を取得する方法を理解します。

32
candied_orange

マシンを悪意のあるマシンに置き換えることでディスクの暗号化を無効にすることができますが、外観と動作はまったく同じですが、正当なユーザーをだましてFDEパスワードを入力させることだけが目的です。ローカルユーザーの場合はUSBキーロガーのように簡単です。リモートユーザー(SSH経由でキーを入力する場合)の場合は、SSH秘密キー(ストレージの暗号化されていない部分にあるため、 FDEキーはまだ利用できません)、そのキーを使用して独自のSSHdを起動し、ユーザーが戻るのを待ちます。

11
André Borie

コールドブート攻撃 は、ラップトップでディスク暗号化を無効にするために使用されており、サーバーで確実に機能します。 RAM DMAを使用した攻撃がThunderbolt、PCI Express、およびその他のバス技術を介して行われました。マルウェアは暗号化されていないデータにアクセスできます;物理的な攻撃者はローカルハードウェア経由で簡単にインストールできます。

動作するには、サーバーを起動する必要があります。つまり、ディスクキーがマシンのどこかにあることを覚えておいてください。

10
John Deters

物理的なアクセスの場合は、ネットワークのエッジにあるファイアウォールやips idsデバイスなどの多くのセキュリティデバイスを迂回しているため、いくつかの手順を進めています。サーバーにリモートアクセスする場合でも、暗号化を処理する必要があるため、どちらの場合も同じです。 「受付係を迂回できるのであれば、ファイアウォールを迂回する必要はない」との引用があります。

8
Silverfox

セキュリティはプライバシーと機密性だけでなく、可用性と整合性(およびトレーサビリティなど)も含むことに注意してください。

そのため、物理的にアクセスすると、たとえデータにアクセスできなくても、攻撃者は多くの損害を与えることができます。

完全性と可用性はあなたの「その他の理由」だと思います。しかし、物理的なセキュリティの重要性が低いかどうかにかかわらず、問題の機密性を取り除いても、物理的なセキュリティが最も重要です。


ここで他の人を補完するものとしてこの回答を検討してください。彼らのポイントを繰り返す必要はありません。

3
Theraot

サーバーに物理的にアクセスできれば、現在のパスワードがわからなくても、root/adminのパスワードを変更できます。

変更するときに、現在のパスワードを要求しないOSはどれですか。または、他のユーザー(管理者)のパスワードを変更することを意味しますか?

しかし、暗号化されたディスクでは、これは可能ではないと思います(または可能ですか?)。

私のWindowsでの経験では、他の管理者がパスワードを強制的に変更した場合、EFSフォルダー/ファイルにアクセスできません。パスワードを紛失したり、パスワードが強制的に変更されたりした場合(またはアカウント自体が削除された場合)は、EFS証明書が必要になります。

それでは、サーバーの物理的な安全性がそれほど重要ではなくなったということですか?それは他の理由でまだ必要ですが、この理由はなくなったのでしょうか?

IMO、両方が必要です。

0
Ajay

短い答え:いいえ、それは非常に重要です

ほとんどの人がソーシャルエンジニアリング、または必然的にインタラクティブな攻撃(キーロガーや悪意のあるメイド攻撃の変種など)を含む回答を投稿しています。これらは、安全なリモート認証技術(通常はIntel TXTまたはSGXを含む)を使用して無効にすることができます。これらのほとんどはインタラクティブであり、多くの敵は誰かがサーバーにログインするまで待つ余裕がありません。暗号化されたサーバーをいつでも侵害するために使用できるいくつかの例とその緩和策を提供します。これはLinux中心ですが、ハードウェアポイントはOSに依存しないことに注意してください。

コールドブート攻撃を使用してメモリを直接回復する

誰もが知っている方法であるコールドブート攻撃は、ほとんどのハードウェアで暗号化キーを2つの方法で中程度の信頼性で回復できます。 1つ目は、凍結スプレーを使用してメモリを冷却し、物理的に取り出して新しいマザーボードに入れて内容を読み取ることです。 2つ目は、メモリを保持し、オプションで冷却して信頼性を向上させ、悪意のある軽量のオペレーティングシステム、ブートローダー、または少なくとも1つの既知のケースでは、メモリを読み取って非メモリにダンプするカスタムBIOSでシステムを再起動することです。 -揮発性媒体。

コールドブート攻撃が機能するのは、DRAMと呼ばれる最新の大容量コンピュータメモリがデータをコンデンサに格納するためです。コンデンサは、電荷を格納しているときに高速でリフレッシュする必要があります。そうしないと、電荷が失われます。通常、信頼性のために64ミリ秒ごとに更新されますが、電力がなくても、多くの場合、データは短時間保持されます。

現在サーバーで一般的に使用されているメモリには、DDR2、DDR3、およびDDR4の3つの主要なタイプがあります。 DDR2は、電源がなくても30秒以上データを保持できる場合があります。 DDR3とDDR4はわずか数秒で電力を失うため、コールドブート攻撃を仕掛けるのがはるかに難しくなります。さらに、DDR3およびDDR4メモリはコンテンツをスクランブルして電気的干渉を減らしますが、使用するアルゴリズムはLFSRです。これは暗号的に安全ではなく、破るのは簡単です。

最初の方法の軽減は、DIMMを取り外せないようにするのと同じくらい簡単です。これは、不正開封防止エポキシ樹脂を適切に使用することで実行できます。適切に使用した場合、それを削除しようとすると、プロセスのメモリが破壊されます。物理的に所有していないサーバーを使用している場合、これは不可能かもしれません。 2番目の方法を軽減するには、起動する前にBIOSがメモリを消去する必要があります。高速ブートを無効にすると、POSTの一環としてメモリがワイプされることがあります。多くの場合、ECCメモリは使用前にBIOSで初期化する必要があります。ただし、少なくとも一度は、このタイプのコールドブート攻撃には、カスタマイズされたバージョンのコールドブートが含まれていました。多くの新しいIntelシステムの機能であるBootGuardは、カスタムBIOSのインストールを妨げますが、特に高度な攻撃者はそれをバイパスできます。

コールドブート攻撃を無効にする最後の方法が1つあります。これは、両方のタイプのコールドブート攻撃に対して機能し、暗号化キーがメモリに接触することを決して許可しません。 LinuxのTRESORカーネルパッチは、x86デバッグレジスタにキーを配置することで、これを行います。これにより、物理アクセスを含むすべての攻撃からコンピュータが保護されるわけではなく、コールドブート攻撃による暗号化キーの読み取りが防止されるだけです。たとえば、ファイルシステムバッファーに残っているディスクからのデータは、回復可能です。

DMA attack)を使用したメモリへの読み取りと書き込み

PCH(PCI、PCIe、LPC)に接続されているすべてのデバイスは、DMAまたはダイレクトメモリアクセス攻撃を介してメモリに直接読み書きする可能性があり、悪バスマスタリングとも呼ばれます(バスマスタであるデバイスは送信を許可されます= DMAリクエストなど)DMAは、パフォーマンスを向上させるために、CPUを必要とせずに、デバイスが非同期でメモリを読み書きできるようにする手法です。 。残念ながら、そのようなデバイスがハイジャックされたか、悪意を持って挿入された場合、デバイスはすべてのメモリを読み書きでき、CPUはそれについて何もできません。CPUは、デバイスにDMA機能があるかどうかを通知できます。しかし、それが有効になっている場合、CPUはデバイスを信頼し、デバイスを裏切らないと信頼しています。

私が知っているDMA攻撃には3つのタイプがあります。1つ目は、PCI/PCIeホットプラグで、マザーボードのスロットに悪意のあるデバイスを挿入し、オペレーティングシステムを自動構成させますこれは、ホットプラグを無効にすることで簡単に軽減できます。これには、カーネル構成の変更が必要になる場合があります。2番目のタイプの攻撃は、バスマスターである既存の信頼できるデバイスをハイジャックし、それを使用してメモリの読み取りまたは書き込みを行うことです。これは、デバイス上で実行されているファームウェアを悪用するか、公開されたデバッグインターフェイスを介してハードウェアをハイジャックし、ファームウェアを再フラッシュして、デバイスのCPUのコールドリセットをトリガーするなどの方法で実行できます。最後のタイプはあまり知られていませんが、攻撃ですLPC上のLPCです。LPCは、現代のハードウェア上の古風なISAバスと同等です。古い低速のペリフェラルを処理します。ただし、LDRQ#をアサートすることによってバスマスターにすることもできます。すべてのマザーボードがこれを公開しているわけではありません。これは純粋に逸話ですが私が出会ったIntel開発者のtalは、LDRQ#を公開するラップトップを見たことがないと言った。サーバーによって異なる場合があります。残念ながら、インテルPCHデータシートでは、LPCのバスマスタービットは読み取り専用で、強制的にオンになっていると規定されています。システムがLDRQ#をサポートしている場合は、LPCベースのDMA攻撃を軽減するために他の方法で実行する必要があります。

DMA攻撃を軽減する方法は2つあります。1つ目は、DMAがCPUとは独立して機能する一方で、DMAがオンの場合でも、CPUはバスマスタービットを有効にして許可を与える必要があります。単なるソフトウェアであるドライバーは、この許可を必要とするデバイスを拒否できます。デバイスに許可が与えられていない場合、DMAを開始できません。たとえば、Firewireドライバーを使用しないか、デフォルトでDMAが無効になっている最新のFirewireドライバーを使用すると、Firewire PCIデバイスはDMAが無効になります(バスマスタービットは設定解除されます。一部のデバイスではDMAが機能するために必要です。ネットワークインターフェイスカード、グラフィックスカードなどにはDMAが必要です。そうしないと速度が遅くなるため、この手法には欠点があります。新しい悪意のあるものが差し込まれていること、カードに対するエクスプロイト、またはハードウェアに対する攻撃(デバッグインターフェイスを使用して制御すること)について心配する必要はありませんが、例)ホストに対してこの特権を使用できます。

もう1つの軽減策は、ほとんどの最新のCPUであるIOMMUの機能を使用することです(この機能は、IntelプロセッサーではVT-dという名前です)。 IOMMUは、すべてのDMAアクセスを完全に無効にすることなく効率的にフィルタリングできます。これはDMARまたはDMA Remappingと呼ばれます。ACPI仕様では、 IOMMUが個々のDMA対応デバイスを分離するために使用するBIOSに格納されているDMARテーブルと呼ばれるデータ。ダイレクトメモリアクセスを特定の安全なメモリ領域にリダイレクトします。多くのLinuxシステムでは、これを有効にする必要があります。パラメータ_intel_iommu=on_(Intelの場合)、または_AMD_iommu=force_(AMDの場合)これらのオプションは、多くのBIOSのDMARテーブルが壊れており、システムの起動を妨げたり、問題を引き起こしたりするため、デフォルトでは有効になっていません。 _dmesg | grep -e IOMMU -e DMAR_が出力にIntel(R) Virtualization Technology for Directed I/O(明らかにIntel固有)を示し、複数のデバイスが参照されている場合、システムがIOMMUを使用してデバイスを分離しているかどうかを確認します。

JTAGを使用してCPU自体をハイジャックする

JTAGは、ハードウェアデバッグ用のインターフェイスとプロトコルを指定する標準のグループです。 IEEE 1149.1というタイトルの1つの規格では、JTAGプローブをマザーボードのヘッダーに接続するだけで、CPUを低レベルのデバッグモードにすることができます。 Intelシステムでは、ITP-XDPと呼ばれる変更された独自のヘッダーを使用します。暗号化されたサーバーをJTAGで攻撃したい場合は、プローブをXDPヘッダーに接続する必要があります。ヘッダーがはっきりと表示されていなくても、トレースは存在し、ライブで生存可能です。プローブが接続されるとすぐに、すべてのCPUコアが停止し、攻撃者はすべてのレジスタの内容の読み取り、すべてのメモリの読み取り、任意のレジスタへの書き込み、任意のメモリへの書き込み、命令ごとのCPU命令のステップ、変更を行うことができます命令ポインタ、CPUの一時停止解除と一時停止など。つまり、JTAGを使用すると、攻撃者はCPUを完全に制御し、操り人形のように制御することができ、CPUに対しては何もできません。

ソフトウェアでJTAG攻撃を軽減する方法はありません。基本的にすべてのマザーボードにはXDPヘッダーがあります。サーバーへの物理的なアクセスがあり、それを永続的に変更することが許可されている場合(例:colo、自宅でのホスティングなど)、それを軽減するための可能な方法は、強力なエポキシ樹脂を使用してXDPヘッダーの上に置くことができます。この技術は、エポキシの上に金属の厚いプレートを置くことでさらに改善でき、エポキシの微細なドリルが穴を壊すのを防ぎます。最近のマザーボードにはシステムを破壊するほど多くのトレースの層があるので、攻撃者が底を突き抜ける心配はないと言われています。システムがシャットダウンしたり、JTAGが機能しなくなったりするかどうかはわかりません。そのため、エポキシと金属シートを両側に配置することをお勧めします。

エキゾチック、非常に難しい、または理論的な攻撃

電力分析と熱分析によるサイドチャネル攻撃のよく知られた問題があります。これは、暗号化/復号化を実行するプログラムが重要な一定時間の操作を使用せず、キーの値に応じて異なる時間に検出可能な遅延または大きな消費電力が発生する場合に可能です。最新の暗号化ドライバーではこの問題が発生する可能性は低く、AES-NIなどのハードウェアアクセラレーションにより、この問題はさらに軽減されます。緩和策には、適切なハードウェアでのAESなどのハードウェアアクセラレーションをサポートする暗号の使用、S-boxが小さく、Serpentなどのビットスライスを使用して最適化できる暗号の使用、または適切なEMSECの赤/黒分離の使用(NATO SDIP-27の検索)などがあります。仕様については、通常、承認されたコンピュータを購入する必要があります)。

ロジックバスアナライザーは、回路を切断する必要なく、露出したトレースまたは電線に直接接続できます。これはDRAMで可能ですが、速度がますます速くなるにつれて、ますます困難になります。 PCIeはテクニックを使用して速度を改善し、ロジックアナライザーがまったく好まない非常に奇妙な電気現象を引き起こします(PCIeレーンはしないの間に明確な分離がありますhiとlo、データが隣接するラインに流れ込み、電気信号が前後にエコーします)。可能かもしれませんが、それは難しいでしょう。 PCIルートハブがAER、エラーレポートをサポートしている場合、システムを構成して、デフォルトのように続行するのではなく、修正可能なエラーを報告するデバイスからバスマスターをすぐに無効にすることができます。このフェイルファスト技術は、ロジックバスアナライザーをPCIeデバイスに挿入する試みを検出できる場合があります。これは、理論的でエキゾチックな攻撃であり、いずれにしても可能ではない可能性があり、緩和策はテストされていません(研究者との会話中に生じたアイデアにすぎません)。それを行う手順。それはキーを運ぶ可能性が低いため、とにかくPCIeデータの読み取りについて心配する必要はないでしょうが、私は完全を期すためにそれを含めています。

最後に、最も非現実的なことに、非常に高度な攻撃者は、タイミングと電源の癖を悪用してCPUのバグを引き起こす可能性があります。これらの攻撃(グリッチ攻撃と呼ばれます)は、安価なAtmel 8051などの単純なマイクロコントローラーを悪用するために一般的に使用されますが、これらはIntelプロセッサーよりも十分にテストされていません。グリッチには、1つまたは複数のクロックを無効または不安定な値に設定したり、電圧を仕様から外したり、タイミング仕様に違反したりすることが含まれます。特に高度なケースでは、グリッチはレーザーフォールトインジェクションと呼ばれる技術を伴い、プロセッサーがデキャップされます(上部は慎重に溶解または焼失)、および正確に制御されたレーザーを使用して特定の領域で電気的活動を誘発し、障害を引き起こします。グリッチの最終的な目的は、デバイスの内部状態をより攻撃者が使いやすい状態に変更する障害を引き起こすことです。たとえば、バスマスターを有効にしたり、IOMMUの制限を解除したりできます。 8051マイクロコントローラーの実際の例では、ファームウェアの読み取りビットなどのセキュリティロックビットを無効にしようとすることがよくあります。彼らはほとんど常にそのような単純なデバイスで成功しています。

少なくとも理論的にはすべてを軽減する

最後に、JTAG攻撃以外のすべてから保護する1つの商用緩和策があります。それはPrivateCore vCageです。すべてのメモリを暗号化し、カーネルをCPUキャッシュに入れる仮想化ソリューションです。 DMA攻撃は根本的に防止され、TCB(Trusted Computing Base)は完全にCPU自体に削減されます。つまり、何がハイジャックされても、信頼できるのはCPUだけです。理論的には、システムがSGXエンクレーブ内のすべての信頼できないコードを実行した場合、JTAG攻撃は無効になる可能性があります。これは、プローブモード(JTAGがシステムを配置するCPUモード)をSGXエンクレーブのコンテキストで使用できないため機能します。残念ながら、この実装はクローズされていますソース、およびサービスは非常に高価であるため、学術的な観点からはより興味深いです。

0
guest