web-dev-qa-db-ja.com

USBスティックのファームウェアがUSBポート経由で書き換え可能かどうかを確認するにはどうすればよいですか?

Linux(またはその他の方法)で、USBポートを使用してUSBフラッシュドライブのファームウェアを書き換えることができるかどうか(USBポートに差し込んでいる場合)はどうすればわかりますか?例えば。安価なEMTEC 16GB用。

udevadm monitorの使用を考えていましたが、USBコントローラーIDの外観(およびudevadmによって出力されるかどうか)とそのUSBコントローラーの詳細をどこで探すかについての手掛かりはありません。私は LinuxデスクトップでのBadUSB攻撃を防ぐ方法 をBadUsb攻撃の背後にある条件の1つであると読みました。

19
Andrei I

つまり、これを知る方法はありません。

あなたがそれらに書くことができることを報告しないかのどちらかでそこに多くの「ひどく書かれた」USBコントローラチップがあります。または悪いことができます報告します。ただし、それらへの書き込みは無視してください。

そのため、具体的にどのチップであるかを知らなければ、そのような命令に対する反応を知ることはできません。

さらに悪い例として、USBスティックまたはUSB HDDのUSBデバイスがあり、ディスクに書き込む代わりに極端なアドレスに書き込むと、内部メモリ(フラッシュEEPROM)に書き込むことができます。独自のソフトウェアを作成せずにそれを確認し、独自のファームウェアをアップロードしてテストします。 (またはUSBデバイスをブリックします)。


この方法でUSBデバイスを使用できるかどうかを確認するための唯一の信頼できる方法は、書き込みを許可する既知のUSBコントローラー ホワイトリスト です。これを確認するための独自のテストソフトウェアを作成します。

11
LvB