• 検索結果がありません。

デモ 1 USB メモリによるキーボードエミュレーションと USB ブートによるコンピュータへの感染 2

N/A
N/A
Protected

Academic year: 2021

シェア "デモ 1 USB メモリによるキーボードエミュレーションと USB ブートによるコンピュータへの感染 2"

Copied!
23
0
0

読み込み中.... (全文を見る)

全文

(1)

BadUSB — On accessories that turn evil

Karsten Nohl <[email protected]>

Sascha Krißler <[email protected]>

Jakob Lell <[email protected]>

(2)

デモ

1 – USB メモリによるキー

ボードエミュレーションと

USB ブー

(3)

アジェンダ

USB の概要

USB デバイスの再プログラム

USB の攻撃シナリオ

 防御と次のステップ

(4)

ユーザからは見えない

USB デバイスのマイクロコントローラ

8051 CPU ブートローダ USB コント ローラ コントロー ラファーム ウェア マスストレージ フラッシュメモリ ユーザから見える のはこの部分だけ

(5)

USB デバイスの認識

USB デバイス コネクタ + ハブ ホスト ルート ハブ 例 USB メモリ 8 – マスストレージ AA627090820000000702 0 – コントロール 1 – データ転送 デバイスクラス エンドポイント 識別子 a. 1 – オーディオ b.14 – ビデオ ウェブカメラ シリアルナンバー 0258A350 0 – コントロール 1 – ビデオデータ 6 – 音声データ 7 – ビデオ割り込み

(6)

USB デバイスの初期化ステップ

デバイスは複数の

識別子を持てる

 デバイスはディス

クリプタを通じて

その機能を通知

する

 ウェブカメラとマ

イクといった複数

のデバイスクラス

をサポートする場

合、デバイスは複

数のディスクリプ

タを持つ

 デバイスは登録

の抹消し、別のデ

バイスとして再登

録できる

電源オン

+

ファームウェア

初期化

ドライバの

ロード

登録

アドレスの設定

ディスクリプタの送信

設定の送信

通常の動作

再登録…

オプション

: 登録の抹消

別のドライバ

のロード

USB デバイス

USB プラグアンドプレイ

(7)

アジェンダ

USB の概要

USB デバイスの再プログラミング

USB 攻撃のシナリオ

(8)

USB ファームウェアのリバースエンジニアリングとパッチ作成に

必要な期間は

2 ヶ月以下

1. インターネット上で漏洩して いるファームウェアと更新 ツールを探す 2.Wireshark でアップデート の通信を解析 3. アップデートで使用された SCSI コマンドをリプレイ 4.( フラッシュのピンをショート させ、文鎮化したデバイスを リセット ) ファームウェアアップデートプ ロセスの文書化 ファームウェアをパッチ ファームウェアのリバースエ ンジニアリング 1. 逆アセンブラにロード ( 落と し穴 : MMU と同じようなメ モリバンキング ) –. 経験則を当てはめる –. 関数の開始位置と関数を呼 び出すインストラクションの メモリアドレスを突き合わせ る –. ディスクリプタなどの既知の USB のビットフィールドを見 つける 1. 通常のリバースエンジニア リング手法でフックポイント を見つける 1. ファームウェアにフックを追加 して、機能を追加および変更 2. 専用のリンカスクリプトで C とアセンブラコードをコンパイ ルし、元のファームウェアの未 使用部分に追加 標的になりうるデバイス ここでは USB メモリを対象 にしているが、同じアプロー チは他のデバイスにも有効  外付けハードディスク  ウェブカメラ、キーボード  おそらく他にも多数

A

B

C

(9)

アジェンダ

USB の概要

USB デバイスの再プログラミング

USB 攻撃のシナリオ

 防御と次のステップ

(10)

デモ

2 – USB メモリに感染した

Windows で Linux を乗っ取

(11)

感染と特権上昇に必要なのはキーボードエミュレーションだけ

( ソフトウェアの脆弱性は不要 )

問題 –

Linux マルウェアは一般ユーザの権限で実行されるが、他の

USB メモリに感染を広げるには root 権限が必要

解決策 –

sudo で使うパスワードをスクリーンセーバーで奪取

LD_PRELOAD でパス ワード盗聴プログラムを リンクしたスクリーンセー バー( もしくは policykit) を起動  ユーザがパスワードを入力 し、スクリーンロックを解除  マルウェアはパスワードを盗 聴し、 sudo で root 権限を 奪取

この特権上昇モジュー

ルは

Metasploit に投

稿予定

(12)

デモ

3 – USB メモリで

(13)

USB の DHCP 」によるネットワーク通信の転送

攻撃ステップ

1.USB メモリがイーサ

ネットアダプタを偽装

2.DHCP リクエストには

デフォルトゲートウェイ

は変更せず、インター

ネット上の

DNS サーバ

のアドレスを返す

結果

1.インターネット通信は通常の

WiFi

接続を通じて行われる

2.しかし、

DNS クエリは USB メモリ

が指定した

DNS サーバに送られ、

リダイレクト攻撃が成立

偽の

USB イーサ

ネット アダプタが

DHCP で DNS 設

定を変更

DNS クエリは

攻撃者の

DNS サーバ

(14)

ボーナス

: 仮想マシンの脱獄

ゲスト仮想マシン

ホスト

1. ゲストの仮想マシンがUSB デバイスを書き換え (SCSI コ マンドを使う ) 1.USB デバイスがキー入力を 偽装、 DNS 設定の変更 1.USB デバイスが別 のデバイスとしてホ ストマシンに接続

(15)

デモ

4 – Android で

Windows マシンのデータをリダ

(16)

「そのパソコンでスマートフォンを充電してもらえないかな」 –

Android フォンが USB 攻撃のもっとも身近なプラットフォームに

Preparation – Android デバイスの

Ethernet-over-USB 機能はほとんど設定を

必要としない

攻撃 – スマートフォンがデフォルトゲートウェイ

になり、すべてのインターネット通信を傍受

USB イーサネットア ダプタが DHCP で デフォルトゲートウェ イ を変更 コンピュータからのイ ンターネット通信はす べてスマートフォン経 由に 第二要素認証によるハッキ ング ウイルスに感染したスマート フォンは、USB 接続したコン ピュータにキーボードエミュ レーションで侵入可能 これによりオンラインバンキン グの「二要素認証」セキュリ ティモデルを崩せる

srlabs.de/badu

sb で実証コードを

公開

(17)

ブートセクタウイルス

: USB バージョン

OS やアンチウイルスか

らルートキットを隠す

OS がアクセスしても見え

るのは

USB の内容のみ

ブート時にマシンへ感染

BIOS が USB メモリにア

クセスすると見えるのは

Linux で、ルートキットが

起動してマシンに感染し、

USB メモリのファイルか

らブート

OS と BIOS

のフィンガープ

リンティング

パッチを当てた

USB メモリ

ファームウェア

USB まわり

の挙動で

Windows/Ma

c/Linux およ

BIOS を区

別可能

USB メモリには

Linux のインス

トールイメージ

など

隠された

Linux イメージ

(18)

USB による攻撃のバリエーションは多数

考えられる攻撃手法

結果

 外部ストレージはファイルを削除するかわりに隠し てしまうことができる  ストレージに追加されるファイルにウイルスを追加  アンチウイルスソフトウェアが最初にアクセスすると オリジナルのファイルが見えるが、その後のアクセス ではウイルスに  ブート時にキーボードをエミュレートし、 USB メモリ に隠された別の BIOS をインストール  USB ディスプレイをエミュレートし、 CAPTCHAS や 乱数表などのセキュリティ情報を取得 これまでに紹介 した攻撃手法

キーボード

エミュレー

ション

USB メモリや外 付けハードディス クにデータを隠蔽 書き込みデータの 書き換え PC BIOS のアッ プデート ディスプレイの偽 装

ネットワーク

カードの偽

USB

ブートセク

タ」ウイルス

(19)

アジェンダ

USB の概要

USB デバイスの再プログラミング

USB 攻撃のシナリオ

 防御と次のステップ

(20)

USB 攻撃に対する効果的な防御は存在しない

防御方法

USB デバイスのシリアルナンバーは必ずしもユニークではない  ホワイトリストメカニズムを持つ OS は ( まだ ) 存在しない

限界

 可能だとしても、USB デバイスのファームウェアはそのファームウェ アを通じてしか読めない。悪意のあるファームウェアは正常なファー ムウェアとして偽装できる 重要なデバイスクラスも しくは USB そのものを ブロック  当然ながら、ユーザビリティに大きな影響を与える  非常に基本的なデバイスクラスでも悪用可能で、それらをブロックす るとほとんどのUSB デバイスが使えなくなる  不適切な実装がファームウェアアップデートを許してしまう可能性は 否定できない  小さなマイクロコントローラ上では、強固な暗号技術の実装は困難  既存の膨大なデバイスは脆弱なまま USB デバイスのホワイ トリス デバイスファームウェア のスキャン ファームウェアのアップ デートにコード署名を使 用 ハードウェアでファーム ウェアアップデートを無 効に  単純で効果的

(21)

 再プログラム可能な

チップを

USB スト

レージ以外の用途に

使用

flowswitch /

phison プロジェクト

の目的はローコスト

USB 3.0-FPGA

インターフェースの作

USB デバイスの再プログラムには生産的な目的も

アイデア

2 – 低コス

トなチップの再利用

アイデア

1 – データベースクエリの高速化

 ホストにデータを返す前に

( もしくは返す代わりに )USB メ

モリ上でデータをパース

A5/1 レインボーテーブルの参照を高速化するのが本来の

動機

(22)

BadUSB の責任の所在は曖昧

BadUSB マルウェアは現実 的な脅威になりつつある

修正はまだ提供されていない

チップベン

ダーの反応

はない

Adam Caudill と

Brandon Wilson は

Phison の USB コント

ローラを標的にしたエ

クスプロイトを

9 月に

開催された

Dabycon

で発表

回避策として公表され

たのは

GData の

Keyboard Guard の

一番話題になっている

Phison は改良し

たチップをすでに提供しているとするが、

顧客は積極的に新チップを選択していな

他ベンダーは何の声明も出していない

機器メー

カーの反応

はない

影響を受けるベンダーでパッチやアドバ

イザリを公表したベンダーはない

OS の実装サイドにも解決に向けた動き

はない。例外は

USB エニュメレーション

を無効にする機能を実装した

FreeBSD

のみ

OS ベン

ダーの反応

はない

v

s.

(23)

まとめ

ご質問は

?

[email protected]

USB デバイスは多様な感染経路になりうる

 コントローラが再プログラム可能な

USB デバ

イスは共用すべきではない

USB やその他の方法で感染すると、マルウェ

アは

USB デバイスをデータの隠し場所にする

ことができ、マルウェアの駆除を無効化できる

参照

関連したドキュメント

項目 MAP-19-01vx.xx AL- ( Ⅱシリーズ初期データ編集ソフト) サポート OS ・ Microsoft Windows 7 32 ( ビット版). ・ Microsoft Windows Vista x86

タッチ センシング cypress.com/touch USB コントローラー cypress.com/usb ワイヤレス cypress.com/wireless. PSoC

本装置は OS のブート方法として、Secure Boot をサポートしています。 Secure Boot とは、UEFI Boot

このように、このWの姿を捉えることを通して、「子どもが生き、自ら願いを形成し実現しよう

Buyer purchase or use SCILLC products for any such unintended or unauthorized application, Buyer shall indemnify and hold SCILLC and its officers, employees, subsidiaries,

Q-Flash Plus では、システムの電源が切れているとき(S5シャットダウン状態)に BIOS を更新する ことができます。最新の BIOS を USB

When the device is operating as a sink and it receives a Hard Reset or a Power Role Swap, the automatic discharge circuitry and SNK output will be disabled by the host processor

「Silicon Labs Dual CP210x USB to UART Bridge : Standard COM Port (COM**)」. ※(COM**) の部分の