web-dev-qa-db-ja.com

ホストデバイスに関して、BadUSBに関するすべての警告が本当に求められていますか?

BadUSBにそのような騒動があった理由を理解でき、実際、サイバーセキュリティの脅威モデルにおける多くの人々の基本的な想定に対して、かなり地味な脅威をもたらしています。私たちの多くが日常業務に定期的に使用しているものは、今やかろうじてまったく信用できません。ただし、BadUSB感染の存在は非常に簡単に偽装でき、確実にまたは公式に検出することが容易ではないため、信頼されていないワークステーションに接続された後は二度と信頼できないのはUSBサムドライブだけではありません。とはいえ、キャリアUSBデバイスが接続されている感染したホストワークステーションのベクターは、キーボードなどの入力デバイスとして密かに登録し、承認されたユーザー入力を偽装しますが、実際には悪意のあるコマンドを発行します。

したがって、理論的には、ターミナルエミュレータを開く必要があります。したがって、ウィンドウを少なくとも最初は通常、画面に表示する必要があります。コマンドを発行してウィンドウを移動またはサイズ変更してウィンドウを覆い隠す前に、ウィンドウを隠す必要があります。ホストへの感染は、より個別に行うことができます。気配りのあるユーザーは、その動作からの異常でプロンプトのない動作に気付く少なくとも短い機会があり、マルウェアの作成者は、ユーザーが細心の注意を払っていないという期待に頼る必要があります。

これは、邪魔なgnomeが机の下をクロールし、通常のUSBキーボードをデスクトップタワーのUSBポートの1つに差し込んで、コードをマスターの前哨地につなぐのと同じです。たとえば、トイレに行くようなものです。

ユーザーが悪意のある/信頼できないデバイスが接続されたバスルームを使用するためにホストを無人のままにした場合、ユーザーのデバイスを返すときに、悪意のあるメイド攻撃を受けた可能性もあります。

それが私の質問です。

法医学的検査のためにコンピューターを提示し、悪意のあるホテルの部屋に放置した場合、ソフトウェアに常駐するマルウェア感染のほとんどの形態を検出できると思います。ワークステーションのブートシーケンス、ファームウェア、BIOS、またはオペレーティングシステムを再インストールするだけでは完全にサニタイズできない他のシステムを変更するために、少なくとも再起動は必要ありませんか?

USBデバイス自体は、一度感染すると、または信頼できないホストに接続しただけでも、いかなる状況下でも二度と信頼することは不可能であるように思われます。デバイスにまだマルウェア感染が存在します。

ただし、特にマシンが目に見えないリブートを許すほど十分な時間ホストを監視しないままにしておかなかったと確信している場合は、ホストにとって状況はそれほど悲惨ではないと思います。つまり、ブートセクターを変更し、メインドライブを再パーティション化して、(ランダムに)N番目のユーザーが実行した再起動で再起動を必要とする不確定に延期された感染の定着をキューに入れることができるので、それはまだ良くないと思いますそれ以外の場合は、単純なドライブの再フォーマットの範囲を超えて感染を固定する必要があります。その後、多くのことが可能になります。

しかし、問題は残っています、悪意のあるメイドの世話に無人のままにされた後のホストデバイスの信頼性の回復可能性は何であり、デバイスが信頼されていないUSBデバイスに完全に接続された後の状況は、 BadUSBの時代、もしそうなら、2つの状況はどのように違うのですか?

手短に言えば、所有者の制御を離れるか、信頼できないホストに接続するUSB​​デバイスの生産、セキュリティクリティカルな雇用からの引退の悲惨な必要性は、信頼できないUSBデバイスによって接続されているワークステーションホストには適用できないという私の推測の検証を求めています。

4
J. Doe

BadUSBは主に過大評価されています。これは、IDNホモグラフ攻撃やファイル名のユニコードの反転など、最近の報道で取り上げられた非常に古い攻撃です(または、まだ報道されていませんか?)。確かに問題ですが、新しいことではありません。

したがって、理論的には、ターミナルエミュレータを開く必要があるため、ウィンドウは少なくとも最初は通常は[...]である必要があります。

実際、コードをよりひそかに実行する方法はいくつかあります。最近このテーマについて DEF CONトーク があり、モニターが熱心であるにもかかわらず、コンピューターでチートコードの実行をトリガーすることにより、カスタムキーボードおよびマウスがハイステークスビデオゲームトーナメントでチートする方法を示しましただまされないように監視されています。

悪意のあるUSBデバイスができるのは、HIDをエミュレートすることだけではありません。たとえば、複数のクラスドライバーを悪用しようとするなどです。セキュリティの問題について、あいまいなカラオケマイクドライバーが監査されたと思いますか。

ワークステーションのブートシーケンス、ファームウェア、BIOS、またはオペレーティングシステムを再インストールするだけでは完全にサニタイズできないその他のシステムを変更するために、少なくとも再起動は必要ありませんか?

BIOSを変更すると、再起動しなくてもシステムが危険にさらされる可能性があります。サスペンドから再開した後、システムは、実行可能なDSDTを含むいくつかの ACPIテーブル を再度読み取ります。変更されたDSDTは、コンピューターがスリープ状態から再開すると、任意のコード実行をトリガーできます。 HDMIケーブルの接続など、特定のACPIイベントでコードの実行をトリガーする方法もあると思います。

エミュレートされたUSBキーボードは、理論上、キーコンボを通じてそのような再起動をトリガーし、BIOS管理パスワードが設定されていないと想定して、BIOSでセキュアブートを無効にするなどの悪意のある行為を実行する可能性があります。 BIOSの多様性のため、これは標的型攻撃以外の問題ではない可能性があります。

別の問題は SBバススニッフィング です。 USB(2.0)は半二重ブロードキャストプロトコルです。つまり、USBスレーブはホストに直接アドレス指定しますが、ホストはallに応答を送信しますUSBデバイス。受信者だけに聞いてください。このため、悪意のあるUSBデバイスは、ホストから同じハブ上のUSBスレーブに送信されたデータを受信できます。これは問題になる場合と問題にならない場合があります。たとえば、USBデバイスがUSB WiFiアンテナまたは外部USBハードドライブに送信されているデータをスニッフィングすることが脅威モデルにとって問題である場合、これはUSBデバイスが実行できるもう1つのことです。

unidirectional multicast

これはUSB 3.0(SuperSpeed)の問題ではありません。 このウェブサイト によると、USB 3.0はdual-simplexユニキャストバスです。つまり、xHCIハブはスイッチほどハブではありません。 USBパケットをブロードキャストするのではなく、目的の宛先にルーティングします。これはパフォーマンスの向上を目的としていますが、意図しないセキュリティ上の利点もあります。

USBデバイス自体は、一度感染すると、または信頼できないホストに接続しただけでも、いかなる状況下でも二度と信頼することは不可能であるように思われます。デバイスにまだマルウェア感染が存在します。

それを開いてマイクロコントローラーからファームウェアを読み取らないとすると、それは事実です。侵害されたファームウェアは、ハードウェアから直接読み取ることによってのみ検出できますが、例外はほとんどありません。高度なアンチデバッグ機能を備え、ソフトウェアを揮発性にしたり、難読化したり、実行後に自身の個々のコンポーネントを削除したりできるため、実際にはソフトウェア感染ほどステルス性があるとは限りません。これは、悪意を持って変更されたファームウェアとは対照的です。このファームウェアは、基本的に、完全に不活性であり、分析時に無力です。既知の正常なコピーに対してファームウェアをチェックするだけで、変更されていることを確認できます。

しかし、問題は残っています、悪意のあるメイドの世話に無人にされた後のホストデバイスの信頼性の回復可能性は何ですか

これは、タイトルの質問とは異なる質問のようです。答えは脅威モデルに依存するため、敵の能力を考慮する必要があります。邪悪なメイドは特に熟練していますか?あなたの資産はどのくらい価値がありますか?たとえば中国では、企業スパイがユビキタスです。会社のラップトップを中国のホテルに持っていくと、文字通りの悪意のあるメイドの攻撃に向かわせることができます。ラップトップを個人的なファイルと一緒に友人の家に持って行くだけの場合、せいぜいドライブが暗号化されていることを確認するだけです。

測定されたブート を実行できることに注意してください。これにより、悪意のあるメイドの攻撃が軽減されます。これは、TPMに、CRTMと呼ばれるBIOSの読み取り専用部分を測定させることによって行われます。この信頼の連鎖は、カーネル自体が検証されるまで上昇し続け、カーネル自体が検証され、ファイルシステムを検証できます。この手法では、BIOS、オプションROM、ブートローダーなどを変更できる場合でも、システムの改ざんが非常に困難になります。TPMベースの信頼チェーン:

measured boot

badUSBの時代に所有者の監督下にある間、デバイスが完全に信頼できないUSBデバイスに接続された後の状況は異なります

はい、いくつかの理由があります。まず、コンピュータのBIOSは非常に信頼されているため、改ざんに対して非常に敏感です。変更されたBIOSは、カーネルにコードを挿入したり、SMMを使用してイベントをトラップしたり、ネットワークを介して通信したりできます。一方、USBデバイスは、システムがサポートするクラスドライバーに制限されます。エミュレートされたキーボードは、admin/rootパスワードを推測したり、コンピューターの盲人が行うことができなかった操作を実行したりできません。

手短に言えば、所有者の制御を離れるか、信頼できないホストに接続するUSB​​デバイスの生産、セキュリティクリティカルな雇用からの引退の悲惨な必要性は、信頼できないUSBデバイスによって接続されているワークステーションホストには適用できないという私の推測の検証を求めています。

繰り返しますが、これは脅威モデルに完全に依存しています。 USBデバイスは、高度なソフトウェアの悪用を含むそのようなベクトルにもかかわらず、ファイルシステムドライバーまたはパーティションテーブルパーサーを悪用するために悪用される可能性がはるかに高くなります。低レベルのJTAGデバッグ(「プローブモード」)の形式である [〜#〜] dci [〜#〜] をサポートする最新のシステムを使用する場合、これは悲惨な問題であり、Intelよりも低いMEは「リング-3」ですが、MEはDCIを使用して侵害される可能性があります( [] DCIを使用)。これは、BIOSベンダーがDCIサポートを無効にするのを忘れている一部のシステムでUSB経由で実行できます。

要約すると、悪意のあるUSBデバイスは次のいずれかを実行できます。

  • キーボードやマウス(「BadUSB」)などのHIDデバイスをエミュレートします。 緩和策 制限されたソースからのHIDとして機能するUSB​​デバイスのみを受け入れるようにコンピューターを構成する必要があります。 udevを使用します。
  • ホストから同じハブのUSBスレーブに送信されるコンテンツを受動的に傍受します。ハブへのトラフィックを傍受できないようにする場合は、異なるハブ上の個々のUSBデバイスを分離します。一部の新しいコンピューターのEHCIルートハブは実際には仮想ハブであり、同じ物理xHCIルートハブの一部であることに注意してください。仮想HUBはブロードキャストモードで動作します。
  • DCIをロックしないBIOSの低レベルのデバッグでシステムを制御します。古いファームウェア、またはベンダーがIA32_DEBUG_INTERFACE MSRをロックしているBIOSは直接影響を受けませんが、DCIを介したMEのハイジャックに対して脆弱である可能性があります。
  • 悪意のある入力を介してファイルシステムドライバーまたはUSBクラスドライバーを悪用しようとします。強化されたカーネルを使用するか、サポートするカーネルドライバーの量を減らすと、このリスクが軽減されます。

これが悲惨な状況であるかどうかは、完全に脅威モデルに依存します。信頼されていないデバイスをコンピュータに接続することはできません。デバイスが使用するインターフェイスに関係なく、信頼されていないデバイスが信頼されていないホストに接続されたときにそのまま残ると想定しないでください。読み取り専用ファームウェアでUSBデバイスを使用すると、この特定のリスクを軽減できます。

5
forest