BadUSB — On accessories that turn evil Karsten Nohl <[email protected]> Sascha Krißler <[email protected]> Jakob Lell <[email protected]> SRLabs Template v12 デモ 1 – USB メモリによるキー ボードエミュレーションと USB ブー トによるコンピュータへの感染 2 アジェンダ USB の概要 USB デバイスの再プログラム USB の攻撃シナリオ 防御と次のステップ 3 ユーザからは見えない USB デバイスのマイクロコントローラ USB コント ローラ 8051 CPU ブートローダ フラッシュメモリ コントロー ラファーム ウェア マスストレージ ユーザから見える のはこの部分だけ 4 USB デバイスの認識 USB デバイス コネクタ + ハブ ホスト ルート ハブ 識別子 例 USB メモリ デバイスクラス 8 – マスストレージ a. 1 – オーディオ b. 14 – ビデオ エンドポイント 0 – コントロール 1 – データ転送 0 1 6 7 シリアルナンバー AA627090820000000702 0258A350 ウェブカメラ – – – – コントロール ビデオデータ 音声データ ビデオ割り込み 5 USB デバイスの初期化ステップ USB デバイス USB プラグアンドプレイ 登録 電源オン + ファームウェア 初期化 アドレスの設定 ディスクリプタの送信 設定の送信 ドライバの ロード 通常の動作 オプション : 登録の抹消 再登録… 別のドライバ のロード デバイスは複数の 識別子を持てる デバイスはディス クリプタを通じて その機能を通知 する ウェブカメラとマ イクといった複数 のデバイスクラス をサポートする場 合、デバイスは複 数のディスクリプ タを持つ デバイスは登録 の抹消し、別のデ バイスとして再登 録できる 6 アジェンダ USB の概要 USB デバイスの再プログラミング USB 攻撃のシナリオ 防御と次のステップ 7 USB ファームウェアのリバースエンジニアリングとパッチ作成に 必要な期間は 2 ヶ月以下 Aファームウェアアップデートプ B ファームウェアのリバースエ C ロセスの文書化 1. インターネット上で漏洩して いるファームウェアと更新 ツールを探す 2. Wireshark でアップデート の通信を解析 3. アップデートで使用された SCSI コマンドをリプレイ 4. ( フラッシュのピンをショート させ、文鎮化したデバイスを リセット ) ンジニアリング 1. 逆アセンブラにロード ( 落と し穴 : MMU と同じようなメ モリバンキング ) –. 経験則を当てはめる –. 関数の開始位置と関数を呼 び出すインストラクションの メモリアドレスを突き合わせ る –. ディスクリプタなどの既知の USB のビットフィールドを見 つける 1. 通常のリバースエンジニア リング手法でフックポイント を見つける ファームウェアをパッチ 1. ファームウェアにフックを追加 して、機能を追加および変更 2. 専用のリンカスクリプトで C とアセンブラコードをコンパイ ルし、元のファームウェアの未 使用部分に追加 標的になりうるデバイス ここでは USB メモリを対象 にしているが、同じアプロー チは他のデバイスにも有効 外付けハードディスク ウェブカメラ、キーボード おそらく他にも多数 8 アジェンダ USB の概要 USB デバイスの再プログラミング USB 攻撃のシナリオ 防御と次のステップ 9 デモ 2 – USB メモリに感染した Windows で Linux を乗っ取 る 10 感染と特権上昇に必要なのはキーボードエミュレーションだけ ( ソフトウェアの脆弱性は不要 ) 問題 – Linux マルウェアは一般ユーザの権限で実行されるが、他の USB メモリに感染を広げるには root 権限が必要 解決策 – sudo で使うパスワードをスクリーンセーバーで奪取 LD_PRELOAD でパス ワード盗聴プログラムを リンクしたスクリーンセー バー ( もしくは policykit) を起動 ユーザがパスワードを入力 し、スクリーンロックを解除 マルウェアはパスワードを盗 聴し、 sudo で root 権限を 奪取 この特権上昇モジュー ルは Metasploit に投 稿予定 11 デモ 3 – USB メモリで Windows の DNS を変更 12 「 USB の DHCP 」によるネットワーク通信の転送 偽の USB イーサ ネット アダプタが DHCP で DNS 設 定を変更 DNS クエリは 攻撃者の DNS サーバ へ 攻撃ステップ 結果 1.USB メモリがイーサ ネットアダプタを偽装 2.DHCP リクエストには デフォルトゲートウェイ は変更せず、インター ネット上の DNS サーバ のアドレスを返す 1.インターネット通信は通常の WiFi 接続を通じて行われる 2.しかし、 DNS クエリは USB メモリ が指定した DNS サーバに送られ、 リダイレクト攻撃が成立 13 ボーナス : 仮想マシンの脱獄 1. ゲストの仮想マシンが USB デバイスを書き換え (SCSI コ マンドを使う ) ゲスト仮想マシン 1. USB デバイスが別 のデバイスとしてホ ストマシンに接続 ホスト 1. USB デバイスがキー入力を 偽装、 DNS 設定の変更 14 デモ 4 – Android で Windows マシンのデータをリダ イレクト 15 「そのパソコンでスマートフォンを充電してもらえないかな」 – Android フォンが USB 攻撃のもっとも身近なプラットフォームに USB イーサネットア ダプタが DHCP で デフォルトゲートウェ イ を変更 コンピュータからのイ ンターネット通信はす べてスマートフォン経 由に Preparation – Android デバイスの Ethernet-over-USB 機能はほとんど設定を 必要としない 攻撃 – スマートフォンがデフォルトゲートウェイ になり、すべてのインターネット通信を傍受 srlabs.de/badu sb で実証コードを 公開 第二要素認証によるハッキ ング ウイルスに感染したスマート フォンは、 USB 接続したコン ピュータにキーボードエミュ レーションで侵入可能 これによりオンラインバンキン グの「二要素認証」セキュリ ティモデルを崩せる 16 ブートセクタウイルス : USB バージョン OS と BIOS のフィンガープ リンティング パッチを当てた USB メモリ ファームウェア は USB まわり の挙動で Windows/Ma c/Linux およ び BIOS を区 別可能 OS やアンチウイルスか らルートキットを隠す OS がアクセスしても見え るのは USB の内容のみ ブート時にマシンへ感染 BIOS が USB メモリにア クセスすると見えるのは Linux で、ルートキットが 起動してマシンに感染し、 USB メモリのファイルか らブート USB メモリには Linux のインス トールイメージ など 隠された Linux イメージ 17 USB による攻撃のバリエーションは多数 考えられる攻撃手法 これまでに紹介 した攻撃手法 キーボード エミュレー ション ネットワーク カードの偽 装 「 USB ブートセク タ」ウイルス USB メモリや外 付けハードディス クにデータを隠蔽 書き込みデータの 書き換え PC BIOS のアッ プデート ディスプレイの偽 装 結果 外部ストレージはファイルを削除するかわりに隠し てしまうことができる ストレージに追加されるファイルにウイルスを追加 アンチウイルスソフトウェアが最初にアクセスすると オリジナルのファイルが見えるが、その後のアクセス ではウイルスに ブート時にキーボードをエミュレートし、 USB メモリ に隠された別の BIOS をインストール USB ディスプレイをエミュレートし、 CAPTCHAS や 乱数表などのセキュリティ情報を取得 18 アジェンダ USB の概要 USB デバイスの再プログラミング USB 攻撃のシナリオ 防御と次のステップ 19 USB 攻撃に対する効果的な防御は存在しない 防御方法 USB デバイスのホワイ トリス 重要なデバイスクラスも しくは USB そのものを ブロック 限界 USB デバイスのシリアルナンバーは必ずしもユニークではない ホワイトリストメカニズムを持つ OS は ( まだ ) 存在しない 当然ながら、ユーザビリティに大きな影響を与える 非常に基本的なデバイスクラスでも悪用可能で、それらをブロックす るとほとんどの USB デバイスが使えなくなる デバイスファームウェア のスキャン 可能だとしても、 USB デバイスのファームウェアはそのファームウェ アを通じてしか読めない。悪意のあるファームウェアは正常なファー ムウェアとして偽装できる ファームウェアのアップ デートにコード署名を使 用 不適切な実装がファームウェアアップデートを許してしまう可能性は 否定できない 小さなマイクロコントローラ上では、強固な暗号技術の実装は困難 既存の膨大なデバイスは脆弱なまま ハードウェアでファーム ウェアアップデートを無 効に 単純で効果的 20 USB デバイスの再プログラムには生産的な目的も アイデア 1 – データベースクエリの高速化 ホストにデータを返す前に ( もしくは返す代わりに )USB メ モリ上でデータをパース A5/1 レインボーテーブルの参照を高速化するのが本来の 動機 アイデア 2 – 低コス トなチップの再利用 再プログラム可能な チップを USB スト レージ以外の用途に 使用 flowswitch / phison プロジェクト の目的はローコスト な USB 3.0-FPGA インターフェースの作 成 21 BadUSB の責任の所在は曖昧 修正はまだ提供されていない チップベン ダーの反応 はない 機器メー カーの反応 はない OS ベン ダーの反応 はない 一番話題になっている Phison は改良し たチップをすでに提供しているとするが、 顧客は積極的に新チップを選択していな い 他ベンダーは何の声明も出していない 影響を受けるベンダーでパッチやアドバ イザリを公表したベンダーはない OS の実装サイドにも解決に向けた動き はない。例外は USB エニュメレーション を無効にする機能を実装した FreeBSD のみ v s. BadUSB マルウェアは現実 的な脅威になりつつある Adam Caudill と Brandon Wilson は Phison の USB コント ローラを標的にしたエ クスプロイトを 9 月に 開催された Dabycon で発表 回避策として公表され たのは GData の Keyboard Guard の み 22 まとめ USB デバイスは多様な感染経路になりうる USB やその他の方法で感染すると、マルウェ アは USB デバイスをデータの隠し場所にする ことができ、マルウェアの駆除を無効化できる コントローラが再プログラム可能な USB デバ イスは共用すべきではない ご質問は ? [email protected] 23
© Copyright 2025 ExpyDoc