2014年8月19日火曜日

【DEFCON22レポート(2)】USB機器の隠れた問題点

既に、複数のメディアでも取り上げられていますが、BlackHatとDEFCONで今回、大きな話題となったテーマです。

具体的には、USB機器の制御チップのファームウエア改竄への警告です。

USB(Universal Serial Bus)は、いまやPCのみならず、様々な機器と周辺機器接続のための標準的なインターフェイスとして不可欠のものです。ありとあらゆる種類のデバイス接続を可能にする柔軟性は、その制御機構に大きく依存しています。実は、すべてのUSBデバイスには、コントローラチップが内蔵されていて、それにより通信が制御されています。たとえば、旧型の携帯電話をPCに接続するためのUSBケーブルといったものにまで、制御チップが入っているのです。USB制御チップは一種のマイクロプロセッサで、プログラミングすることで様々なデバイスタイプに対応できるようになっています。このプログラムがファームウエアで、チップ内のフラッシュメモリに書き込まれています。

ファームウエアはバグ対策や機能追加などのために更新が必要なことから、外部から書き換えが可能になっています。問題は、これを書き換えることが、意外と簡単にできてしまうということなのです。

制御チップは、周辺機器とPCなどのコンピュータ間の通信に介在できます。もちろん、チップの処理能力の限界はありますが、理論上は通信の改竄などができることになります。また、USB経由で指令を受け取って、何かの動作をするというような仕掛けが可能になる場合もあるでしょう。

最も大きな問題は、外付けだけでなく、PCやタブレット、スマホなどの内部に、多くのUSBコントローラチップが組みこまれていることかもしれません。こうした内蔵デバイスはデバイスドライバによって制御されるため、改竄されたファームウエアがドライバの動きに介入できる可能性もあります。デバイスドライバの多くは、システム上での高い権限で動作するため、こうした特権を外部から奪取することができる可能性もゼロではありません。(こうした問題は、DEFCONのセッションで指摘されていました)


USBデバイスの開発者向け情報は、開発者向けサイトでオープンにされており、かなり詳細な技術情報が得られます。また、以下のスライドのような、USB通信をモニタしながらデバッグが可能な機器や開発用のソフトウエア、ツールなども商用、フリーを含め、様々な物が入手できます。


セッションでは、こうしたツールを使用して、USB機器のチップを書き換え、PCから違うデバイスに見せるというデモが行われました。こうしたデモはあくまでもコンセプト的なものですが、もし、誰かが本気で取り組んだら、マルウエアにファームウエアを書き換えさせてデバイスを乗っ取るということが出来てしまう可能性を示すものでもあります。コントローラチップの能力は限られており、一般のソフトウエア完全性チェックで使用されるハッシュなどの暗号技術に基づく計算は困難だといいます。そうした制約の多い環境下で、どのような改竄対策が取れるのか。これは真剣に考えなければいけない問題だと感じました。

0 件のコメント:

コメントを投稿