web-dev-qa-db-ja.com

BadUSBエクスプロイトを防止できますか?

最近、私はBadUSBエクスプロイトについていくつかのことを読みました、例えば:

http://arstechnica.com/security/2014/07/this-thumbdrive-hacks-computers-badusb-exploit-makes-devices-turn-evil/

私の理解では、USBに接続されたデバイスはその外観(ドライブ、キーボード、ネットワークカードなど)を変更できるため、感染したUSBドライブ(またはそのほかのデバイス)がキーボードや悪意のあるコマンドまたはネットワークカードを送信し、Webアドレスに接続してプログラムをダウンロードします。問題は、コンピューターがUSBデバイスを自動的に信頼することです。ただし、感染したチップの能力はおそらく非常に限られているため、ネットワークカードなどのより複雑なハードウェアのシミュレーションは困難です。

LinuxデスクトップでのBadUSB攻撃を防ぐ方法は?

とにかく、主にそのような動作を防ぐことが可能であるかどうかに興味があります。

  • エクスプロイトについての私の理解は正しいですか?
  • もしそうなら:新しいUSBデバイスが接続されている場合にユーザーに許可を求め、特にデバイスの「タイプ」が変更された場合に警告をスローするソフトウェア「ファイアウォール」を実装することは可能ではないでしょうか?つまり、単に[OK]をクリックするだけではなく(悪意のあるUSBデバイスが単独で実行する可能性があります)、CAPTCHAのようなものを使用します。
  • それが不可能な場合、ソフトウェアがUSBデバイスの使用を防止できない可能性があるため(または何らかの理由で):USBデータを転送するが、たとえばキーボードではなくUSBドライブのみを許可するハードウェアソリューションは可能でしょうか? USBデバイスはどのようにしてコンピュータに「タイプ」を伝えますか?
15
molotovsoda

「ファイアウォール」ソリューションには鶏と卵の問題があります。キーボードとマウスはUSBデバイスです*。ユーザーとして、キーボードとマウスのどちらも使用せずに許可を与えることをOSにどのように伝えますか?キーボードとマウスがモニターのUSBポートを介して接続されている場合はどうですか?それらはモニターの電源を切ったり入れたりするたびに切断され、再接続されます。 「ファイアウォール」がユーザーに入力デバイスを残さず、新しい入力デバイスを承認する方法がない場合、またはそのような状況を回避しようとする場合、自動的に許可されないデバイスを自動的に承認する状況が他にもあると思います。

*はい、ラップトップでも。それらは、恒久的に配線されたUSBデバイスです。

6
Mark

短い答え:はい、それは防ぐことができますが、解決策は簡単なものではありません。

最近のSecurity Nowポッドキャスト( here )と元のBlack Hatプレゼンテーション( here )でSteve Gibsonが述べたように、私が正しく思い出せば、解決策はこれらのUSBデバイスコントローラのファームウェア。これは基本的に、ファームウェアがROMチップに書き込まれることを意味します。このチップは、このエクスプロイトの基礎を形成するチップ上のファームウェアの変更を許可しません。

エクスプロイトについてのあなたの理解はかなり正確のようですが、上記の元のプレゼンテーションをご覧になることをお勧めします。

ソフトウェアタイプのソリューションを提案しても、すでに悪用されているデバイスを検出できる可能性がありますが、問題の根本的な原因は解決されません。また、残念なことに、場合によっては、UBSデバイスがタイプを変更したり、一度に複数のデバイスタイプにしたりできる必要があります。実際、Black Hatのプレゼンテーションでは、著者はUSBのこの機能を十分に活用できる方法についても良い例を示しています。警告は残念ながらそれだけです-警告-簡単に無視または沈黙させることができます。 USBデバイスの各タイプの変更についてレポートする必要がある場合、多くの誤検知が発生します。

講演で言及されたもう1つのことは、USBデバイスに対する標準化と制御がほとんどないため、USBデバイスがどうあるべきかを決定する実際の方法がないということです。したがって、実際に比較するものは何もありません。

ところで。 Infosecへの関心が高まった場合は、Security Nowポッドキャストを購読することをお勧めします。

2
ilikebeets

そのためのハードウェアがあります。

[〜#〜] usg [〜#〜]は、USBポート用のファイアウォールです。コンピュータと信頼できないUSBデバイスを接続し、内部ハードウェアファイアウォールで問題点を特定します。

https://github.com/robertfisk/USG/wiki

1
MarcG

これまでのところ、それを防止する確実な確実な方法はありません。これまでの最善の解決策は、デバイスの「ブートモード」状態を無効にし、おそらく接着剤などで物理的にアクセスを無効にすることです。

これについての記事はこちら http://news.softpedia.com/news/There-Is-Anti-BadUSB-Protection-but-It-s-a-Bit-Sticky-461485.shtml

enter image description here

pSあなたは接着剤のもので 楽しい を得ることができました:)

1
Matthew Peters

デバイスがそれ自体をネットワークアダプターとして識別した場合、なぜそれがWebからのダウンロードを許可するのですか?すでにインターネット接続があり、すでに何かができるか、WindowsがITを使用してWebに接続し、ネットワークデバイスへのWebアクセスを許可しない場合(誰かが明示的に「ブリッジ接続」などを行わない限り)

「デバイスタイプの変更を検出する」と同様-悪意のあるUSBデバイスが、必要なものすべてを含むハブとして自分自身を提示するのを防ぐにはどうすればよいでしょうか。それとも、別のデバイスとして自分自身を切断して再接続するふりをしていますか?

CAPTCHAは機能しません-入力が良いか悪いかを決定するシステムは、入力を要求するシステムと同じです-不正なデバイスが「自分でOKをクリックする」のと同じ方法で、キャプチャをバイパスすることもできます-言うまでもありませんそれがUSBにとってどれほど苦痛であるか-その人気はセキュリティではなく使いやすさによるものです

実際にUSBスティックに収まるものについては、wifi sdカードに含まれるコンポーネント( this など)を調べ、同様のコンポーネントがUSBスティックにも収まると想定します-つまりCPU、RAM、wifi、フラッシュストレージを備えた小さなOS

0
user2813274

まず、すべてのUSBデバイスがBadUSBの影響を受けるわけではありません。多くは最小限のコントローラー回路で設計されており、他の機能を引き受けたり、再プログラム可能なファームウェアを備えていません。これは特に、1セント単位で計算できるUSBドライブなどの大規模市場の低コストアイテムに当てはまります。

これに関するもう1つの見方は、ソフトウェアがUSBデバイスを再プログラムできる場合、ソフトウェアはUSBデバイスが再プログラム可能かどうかを検出して、それをシャットダウンできるということです。ほとんどのAVベンダーが、再プログラム可能なデバイスを検出し、システムへのアクセスを拒否する方法にまだ取り組んでいなかったとしても、私は驚かないでしょう。

BadUSBはUSBデバイスの終わりではなく、注意すべきもう1つの脆弱性です。

0
Chris