BadUSB <今更だけど>
昔流行ったBadUSBをやってみた。
BadUSBはBlack Hat 2014 USA で発表された脆弱性だ。
当時USBの設計上の問題とか大袈裟に言われていたけれど。
ハード屋さんからすると「そんなのあたりまえじゃん」という感じだった。
ハードウェアをブラックボックスとして扱っているソフト屋さんからすると、目新しい問題だったのだろう。
ちょっと前なら、EZ-USBやAVR-USB(現V-USB)、今時はUSBエンジンが載ったマイコンはいっぱいあるし、サンプルプログラムもいっぱいあるので、スーパーハッカーでなくても作ることができる。
この脆弱性は原理的な対策はとても困難だろう。
HIDクラスとMassStorageクラスはWindows標準のドライバを使うので管理者権限なしで見ず知らずのデバイスが接続できることが問題だ。
USBデバイスが全て証明書を持っていてPCが認証すれば良いのだけれど、完全にやるならデバイスがTMPを持たなくてはならない。
デバイスが高価なら、ファームウエアが書き換えられないようにしたり、ファームウエアを暗号化するなどの対策が出来るかもしれないが、マウスやUSBメモリのように500円以下で売られているようなデバイスにそのようなコストを掛けることは現実的ではない。
NETで探すとPsychsonやRubberDackなどの実装が見つかる。
RubberDack(売っていたりする)はUSBエンジンが載ってるAVR(ATMega32Uxx)による実装。
PsychsonはUSBメモリ内のコントローラのファームウエアを書き換える方法。
USBメモリのコントローラといってもCPUが載っていて、USB経由でファームウエアを書き換えることができる。(ファームウエアアップデートに必要)
GitHubにPsychsonが公開されている。
「にわか鯖管の苦悩日記」
のとおりやると簡単だ。でも、このページで紹介さされているUSBメモリ(TOSHIBA TransNMemory-MX)はチップが PS2307に変わっているので、この手順は使えない。
GitHubのPsychsonのKnown Supported Devicesに動いたUSBメモリのリストがある。
この中から安い製品を2種類買ってみた
右のTOSHIBA TrasnsMemory-MXはやっぱり使えなかった。
左のSanDisk Ultra USBを使って手順どおり作業してパソコンに挿すと。
デバイス・マネージャーで確認すると、コンポジットデバイスとHIDキーボードと大容量デバイスとして認識されている。
自動的に入力されるキーを変えるとか、元のUSBメモリに戻すときには
ファームウエアを書き換えるツールDriveCom.exeを使う。このツールはドライブ名を指定しなければならない。 ドライブが見えなくなったら、ケースを開けてチップの端子をショートして挿入するとブートモードになるらしい。
SanDisk Ultraはスライド式なのでケースを開くのは面倒だ。爪を立てて分解できないのでカッターナイフで切らなければならないが、カッターナイフで切ってあるUSBメモリはいかにもアヤシいよなぁ。
メモ帳が開くだけではインパクトがないので、インパクトがあるファームウエアに書き換えることにした。ところが、ドライブとして見えているのにツールを使ってファームウエアのアップデートができない。orz
やっぱり、分解しなければならないのか。
【最近の投稿】
« 発表会に参加した <マネジメント不全だ> | トップページ | 管理用データの収集 - コストの負担と成果 - »
「日記・コラム・つぶやき」カテゴリの記事
- 修理(4) <とうとう修理不能>(2022.11.08)
- LANケーブルテスター(2022.05.18)
- 今時のWebサイトを構築してみた(2022.05.16)
- Type-C 充電器(2022.04.29)
- 全館停電 <ネットワークトラブル訓練>(2022.03.12)
コメント