BadUSB攻撃から保護するデバイスがリリースされましたか?
次の保護機能が付いたUSBハブの購入に特に興味があります。
BadUSBを防ぐためにこれに似たハードウェアデバイスはありますか?
私は誰かが確かな引数で私に矛盾することを望みますが、「USBハブはそれに接続されたデバイスへのファームウェア書き込みコマンドを許可しません。」:これはすべてのハードウェアBadUSB保護システムを消滅させる間違った仮定である。
確かに関連する非常に有益な投稿があります: USBポートのファームウェアをUSBポート経由で書き換えられるかどうかを確認する方法 。そこには、一般的な「書き込み」コマンドがないことがわかります。各ベンダーは、この目的で独自のコマンドを使用しています。さらに悪い:一部のベンダーでは、実際のコマンドよりも「トリック」について話し合う必要があります。LvBは、「USBスティックまたはUSB HDDについて言及しています。ディスクに書き込む代わりに、極端なアドレスに書き込むと、内部メモリへ」。
そのようなハードウェアは、検出できず、通常のデバイス通信フローの一部にすぎないものをどのようにフィルタリングすることができますか?
これは設計では不可能だと思います。 USBが発明されたとき、パラレルケーブルやシリアルケーブル、独自仕様のインターフェイスなどの煩雑な通信方法を標準化されたケーブルとプラグに置き換えるために作られました。また、ドライバーをより簡単にプログラムできるように、下位層のドライバーモデルを標準化することでプログラミングの問題にも対処します。
最後に、USBはホットプラグ機能のために存在すると言えます。これは確かに今日のコンピュータの最も快適な機能の1つです。起動時にキーボードを接続するのを忘れた場合(たとえば、サーバーなど)、お尻の痛みを覚えています。PS/ 2キーボードを検出するために完全な再起動が必要なものもありました。
その時までに誰もセキュリティの問題を考えていませんでした。 USBスティックは存在せず、USBに接続されたすべてのデバイスは多かれ少なかれ愚かでした。そのため、USBは、ファームウェアをフラッシュしたり、「違法な」動作を検出する標準化された方法を使用しません。
USBハブは本当にばかげたデバイスです。新しいデバイスの通信へのホットプラグ挿入(他のすべてをすぐに強制的に中断することによりAFAIK)と取り外しを処理します。デバイスの電力要件を確認し、電力が多すぎる場合、新しいデバイスがオンラインになるのを禁止します。それはほとんどすべてです、そしてそれはそのように大丈夫です:彼らは安くて非常に速いことができます。
USBハブは通過するデータを検査せず、コントローラーも検査しません。それは単にそれを行うように設計されておらず、これはどの仕様にも書かれていません。特定のクラスのみを許可するようにポートの使用を制限することは、仕様と互換性がある可能性があると主張できますが、クラスデバイスも複雑です:マウス/キーボードワイヤレストランスミッターの組み合わせを考えてみてください。マウスとHIDコンポーネントの両方を公開するマルチデバイスとして表示されます。それらのほとんどは基本的なOSドライバーで実行できますが、追加のファンクションキーや高DPIレートなどの拡張機能を許可するために特定のベンダーソフトウェアで使用することもできます。私は、たとえばhavin 3200 dpiのRoccatゲーミングマウスが大好きです。したがって、クラスデバイスとして登録された後、適切なドライバがPCにインストールされていると、どういうわけかモードが切り替わります。
他のすべてのものはOSによって処理される必要があります。ドライバーのロードを許可するかどうかは、OSコアが完全に管理しています。 USBポートの使用を制御するソフトウェアが市場に出回っており、希望どおりに動作する可能性があります。
間違った問題を修正しようとする私見:USBの安全性が心配な場合は、すべてのUSBポートをオフにするか、OSレベルで必要なポリシーを実現できるオペレーティングソフトウェアを検索/要求するだけです。たとえば、Linuxは、カスタムカーネル経由でcvertain USBドライバーのみを使用するように制限できます。