パスワードを忘れた? アカウント作成
11396155 story
ハードウェアハック

あらゆるUSBデバイスを攻撃に転用可能な「BadUSB」、Black Hatにてデモ予定 59

ストーリー by headless
攻撃 部門より
あるAnonymous Coward 曰く、

WebカメラやキーボードなどのUSBデバイスを攻撃プラットフォームにするための技術「BadUSB」が開発され、デモが2日から7日まで開催されるBlack Hat 2014 USAで行われる予定だ(Ars Technicaの記事Black Hat - BadUSB本家/.)。

記事によるとファームウェアを改ざんするものであるらしい。このBadUSBハッキングは、理論的にどんなタイプのUSBデバイスにも有効で、ハッキングされたUSB機器を検知するのはほとんど不可能だという。その上、仕掛けられたものを解除することも難しいとしている。

BadUSBはUSBデバイスのファームウェアを書き換えることで、システムから種類の異なるUSBデバイスとして認識されるようにするというもの。例えば、USBメモリーをUSBキーボードとして動作させ、悪意のあるコマンドを入力させるといったことが可能になるとのこと。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by Anonymous Coward on 2014年08月02日 16時57分 (#2649713)

    USBキーボードをUSBメモリーとして動作させ、データが読みだされそうになったときに必死に入力するはめに

    # 何となく思い浮かんだので……

    • by Anonymous Coward

      映画とかドラマなら盛り上がりそうではありますね。

      #でも、自動で何とかなりそうですね(笑
      #嫌いじゃないです。イーサンハントの仲間がやりそう。

  • by barrel (25979) on 2014年08月02日 21時53分 (#2649879)

    あるときはキーボード、あるときはマウス、
    あるときはディスプレイ(VGAアダプタ)、
    またあるときはキャプチャデバイス、NIC・・・。

    およそなんでもできてしまいそうですね。
    DVDドライブに化ければドライバのインストールもお手の物。

  • by Anonymous Coward on 2014年08月02日 16時19分 (#2649689)

    そりゃファームを書き換えりゃどんなデバイスだって何にでも変わるだろ。理論的にはな。
    素人みたいな煽り文句、さすがにスラドでは見たくないねえ。

    • by Anonymous Coward on 2014年08月02日 16時31分 (#2649697)

      今まで散々見てきてる気がしますがそれは。

      親コメント
    • by Anonymous Coward

      ほんと「ファームが外部から書き換えられるなら」可能ですよね。当たり前すぎて笑えるけど。
      そもそも、いろんなデバイスになれるように書き換えることができるのだから。

      市販のデバイスで外部書き換えが有効になったまま出荷されているデバイス見つけました、というのを
      注目浴びるように盛った表現にしてるんでしょうね。
      こんなのが大手を振って出てくるようなら大したことないイベントと思われちゃいますよ、主催者さん

      • by Anonymous Coward

        つーか、PC系の大概の周辺はファームウェアアップデート機能もってないか?
        マザボのBIOS、HDD、ADSLルーター、・・・

        隠されているだけで仕組みはあるのが普通でない?
        ないのはそこまでサービスする必要のない安い単純なデバイスで。

        なぜあるかというとそっちのほうが便利とユーザーが望んだからだろう。

        • by Anonymous Coward

          逆。
          保証期間に不具合クレームでハード交換より、
          ファーム交換の方がコストかからない。
          それだけ。

  • by Anonymous Coward on 2014年08月02日 16時29分 (#2649695)

    もちろん攻撃者は物理的にデバイスへアクセスできないんだよね?

    • by Anonymous Coward on 2014年08月02日 16時49分 (#2649712)
      ICSPモードにする手順が、あって大抵はコントローラの特定のピンの論理を操作する必要があるけど、 ラッチを操作してセルフリセットするコマンドを実装するファームも有るだろうな。 ファームウェアを更新出来る機器は、何らかのバックドアはありそう。
      親コメント
      • この発表者の人はブータブルUSBメモリからLinuxかなんかを起動して、そこから別のUSBメモリにウイルスを仕込んだという発表をするということ
        です。そして、その最初のブータブルUSBメモリにもそのウイルスが書き込まれていて、BIOSから見たときだけ複合デバイスに見える、と。

        親コメント
        • by Anonymous Coward

          私はWindowsのUSBメモリをICカードリーダとして認識されるようなUSBメモリの
          デバイスドライバの開発経験があるのだけど。
          ICSPモードの説明にしても、ブータブルUSBメモリの説明も、ほとんどわからない。
          限られた文字数で説明しようとするから、省略されているところが多すぎなのかもしれない。

          • このストーリで問題なのは、USBメモリが単体でCPUを持っていて、かつUSBメモリのファームウェアがPC単体、USB経由で書き換えられる
            というところです。それを利用して、PCから書き換えたり、接続してくるホストのOSを判別したり、判別結果に応じて動作を変えたりする
            ことができたというのが内容です。

            その結果として、BIOSがUSBメモリを読み出したと判定したときと、それ以外の通常のOSが読み出した時とではフラッシュメモリ上の
            別の領域を内容として返し、かつBIOS判定の場合はUSBキーボードとしても認識させている(複合だかハブだか)ということです。その
            領域には攻撃者に都合の良いOSが書き込まれていて、キーボード操作を送って外部ストレージからの起動を選ばせます(F12を押して、
            下キーを押して、というような単なる操作記録のようです)。

            この"攻撃者にとって都合の良いOS"には、単体でファームウェアを書き換えるプログラムが書き込まれていて、同時に繋がれているほかの
            改造可能なUSBメモリが存在すれば、自分と同じプログラムを書き込むという風に設計されています。

            また、BIOSか通常のOSかを判別するほかに、USBメモリ(マスストレージ)以外のデバイスとして見えるよう、まったく違うファームウェアを
            書き込むことができるともされています。例えばUSB NICとして認識させ、DNSサーバを実装し、応答を偽装し、詐欺をはたらくということが
            例に挙げられています。

            # ICSPは In-Circuit Serial Programming の略で、マイコンを書き込み機ではなく、実際の基板上に実装した後で
            # 独自のシリアル通信で書き換える機能です。USB経由で書き換えるのはICSPとは言わない気もします。

            親コメント
            • by Anonymous Coward

              タイトルが「あらゆるUSBデバイスを攻撃に転用可能」とあるのが、まずイカんのだよ
              これは市場にあるどんなUSBデバイスもこのファームは感染可能と読めるような書き方だから

              とにかくファームを書き換えられればそりゃUSBデバイスとして基本的に何でもできるわけで
              そこは意外なことは何もない

              この内容は攻撃に便利使えるUSBファームウエアの書き方見つけました・実装しましたって話
              キーボードとストレージとして動作できる前提なのだから、リブートして好きなことできますよ
              完全に乗っ取られてる状態ですから
              技術的に新規性があるとしたらホストが何が動作しているか判定する安定した方法を見つけたらしいことかな

              • いや、新規というか問題なのは市販USBメモリを書き換えたところだと思いますよ。極端な話、道端に落ちてることもあるわけですから。
                USB開発キットを買った人物とかマイコンを何個か買った人物というのより追跡しづらいでしょうし、大量に生産もできます。
                諜報機関が使うのなら、この改造メモリを仕込むのは目標のPCに数hopで到達できる場所でよく、あとは正規の利用者に運ばせることもできる。
                そうやってアクセスが簡単になってしまっていたのが問題ではないかと。

                タイトルが悪いというのにはまったく同意です。

                親コメント
      • by Anonymous Coward

        物理的にデバイスにアクセスできないのを どうやって解決するのか ということであって
        物理的にデバイスにアクセス場合のファームウェア書き換え方法を聞いているのではないような、、、
        ファームウェアを書き換えるEXEを起動すれば、一般権限で、書き換えることができてしまうので
        悪意のある人間は、自分のパソコンにUSBをさして、ファームウェア書き換えのEXEを実行してしまう
        ような気がしました。
        ICSPモードにすると、EXEで書き換えるより簡単になるということなのでしょうか?

        • by Anonymous Coward
          物理的にアクセスとは、基板まで解体して、JTAGパッドからコントローラのフラッシュを書き換えたり、シリアルROMを書き換えたり、そもそもUSB付きマイクロコントローラを使ったりしないという意味ですよ。
          • by Anonymous Coward

            攻撃者の手元にはUSBデバイスがあるということなのかな。
            攻撃者の手元にUSBデバイスがあるのに、解体しないと言い切れる根拠は何?

      • by Anonymous Coward

        ホビー用途のブートローダー内蔵でUSBポートからプログラム・メモリの書き換えが出来るマイコンボードと勘違いしてるだけだろう
        キーボードなんかに使われてるローエンドのUSBデバイス(LSI)の典型的な構成は「USBデータ転送エンジン+いまだに現役の8051」で、USBポートからのICSP機能なんかついてない

        逆に言えばUSBポートから書き換え可能なブートローダー内蔵のキーボードを作って内緒で販売すればやりたい放題になる可能性はあるわけだが

    • by Anonymous Coward

      書き換えたものを用意しておいて、どうにかして被害者にプラグさせるのでは。

    • by Anonymous Coward

      書き換えツールさえあればリモートでも出来そうだけど。
      USBオーディオプレーヤーなんかはメーカーサイトからダウンロード出来ますよね。

    • by Anonymous Coward

      製造段階でBadUSBハッキングが行われると怖いって話じゃないかな。
      良くある、某国製品にはバックドアが仕掛けられている! の範疇に、あらゆるusb機器が含まれるようになるってとこでしょう。

    • by Anonymous Coward

      USBメモリのautorunを書き換えてウィルス等を実行させるマルウェアがあったのをお忘れで?

      ファームウェアの書き換えが簡単にできるとは思えないけど、絶対に不可能とも言えない。

    • by Anonymous Coward

      性能が大幅に改善する流出ドライバと称してネットに置いておくとか、
      偽セキュリティソフトや偽ゲームソフトにするとか(競合するセキュリティソフトを止めてくださいって奴)、
      中国の工場で仕込んでしまう(リージョンやIPをトリガに起動する)とか。

  • by Anonymous Coward on 2014年08月02日 16時36分 (#2649700)

    ただの石 [srad.jp]が意志を持つようになるかもしれないって事か

  • ファームウェアの改造すら必要ないらしいです。

    • by Anonymous Coward

      ・MTPを許可していた(禁止していなかった)のがマヌケという話
      ・単なるUSBマスストレージにはMTPの機能は無い

      • > ・単なるUSBマスストレージにはMTPの機能は無い
        まあそれは正しいんですけどね……。
        Windowsの場合MTPデバイスはマイクロソフトがWPDというフレームワークを経由して使うんですが、USBマスストレージをWPD経由で使うことも出来るんですよ。
        マイコンピュータからリムーバブルディスクを右クリックして、「ポータブルデバイスとして開く」てのがあります。
        どこぞの企業で採用されていたセキュリティシステムがリムーバブルメディアを禁止しつつMTPがすり抜けていたそうですが、この機能を使うとどっちの扱いになるのか気になるところではあります。

        親コメント
        • どこぞの企業で採用されていたセキュリティシステムも、ちゃんと最新バージョンに更新してればMTPもブロックできたんですけどね。
          どこぞの企業の内部では、バージョンアップしてなかったセキュリティ部門への怨嗟の声も聞こえます。

          #絶対AC

          親コメント
        • by Anonymous Coward

          UMASSの制限というやつは、だいたいアタッチしているドライバで判定されるわけで、
          (あるいは、UMASSのドライバを無効にするとか。MTPは別ドライバだからすり抜ける)
          その上がWPDであろうが、結局UMASSなんだから、制限はかかる。

  • by Anonymous Coward on 2014年08月02日 18時09分 (#2649756)

    現在のUSBデバイスは、製造元が作ったファームウェアかどうかを、確認するメッセージ認証コードとか、使っていないのですか?
    それとも、その確認を回避して書き込めるのだろうか?
    ファームウェアにコード署名を導入とかあるのかなぁ?

    誰か、BadUSB もっと勉強して。

    • by Anonymous Coward
      USBにはそれが正当なデバイスであるか確認する認証プロセスはない。メーカーIDの割り当てはあるけど。 USBブロックの無い、AVRとかPICでUSB1.1レベルのUSBデバイスを作成することも出来る。 HIDクラスドライバを使えば、libusbドライバのインストールも必要なくなった。
      • by Anonymous Coward

        デバイス自身が認証プロセスを持っていなかったのか、ということだったのです。
        コード署名の検証を安価なUSBデバイスがするのは、難しいかもしれませんが
        メッセージ認証コードくらいは実装できるかと思ったのです。

        メインフレームのデバイスでは、そういう実装をしているものもが昔あった。

        • by Anonymous Coward

          TPMだかEFIだかの関連でブートローダ回りの正当性チェックする機構はあるね。
          そもそもUSBデバイスではファーム更新機能自体無い奴も多いと思うんだけど…
          ファーム更新機能を正規に持つなら、自己書き換え前に署名検証とかは組み込めるし組み込まれてることも珍しくない。

          ハードレベルでの検証機能となると、ソフト的に書き換えが実行されてる前提に基づいて実装される対策なわけだけど、
          USBデバイスのファームに自己書き換え脆弱性が存在するリスクに対してそこまでのコストを払うかというと…まぁそういうことでは?
          そこまで警戒する頃には、見た目そっくりで悪意あるファームを持った偽物をソーシャルハックで仕込まれる警戒とかも必要だろう。
          となるとホスト側とデバイス側えガチガチに相互認証するくらいの領域に足突っ込んできて、そんなの一般用には出てこないだろ…

          • ぐぐったところだと、USBメモリって中国の業者がその時手に入るフラッシュメモリとかをコントローラと組み合わせ、書き込みツールを
            使ってパラメータを設定して製造するようです。taobaoなんか見るとメモリ部品以外がすべて実装された基板も売られてます。

            しかし実際にはパラメータ設定と言ってもアルゴリズムを変えられたり動作を変えられたりするようで、設定とプログラムに別領域がある
            というよりはひとつのバイナリにまとめて書き込んでいるのかと思います。であれば、その書き込みツールを使って、パラメータではなく
            通常はいじらなくてよい、誰も気にしないプログラム部分をいじれば、機能を変えることができるということなのじゃないでしょうか。

            コントローラの方でコードプロテクトをかけるくらいはしても当然にも思えますが、何せ8051を未だに新規で製造しているくらいですから、
            一般人が書き換えることはない、する利益もないと想定して、一切対策されてないということは十分ありえると思いますね。

            親コメント
            • by Anonymous Coward

              良質な情報ありがとうございます。

              書き込まれたバイナリを比較的安価なメッセージ認証コードのハードウェアで
              チェックしていなかったのが、不思議だったのです。

              昔、メインフレームの周辺機器を設計したことがあって
              信頼性、安全性には、非常に厳しい環境にいたせい
              かもしれないが、パソコンのずさんな考え方について
              いけない。
              多分、激安な価格でないとパソコンの周辺機器が売れない
              といった事情があったかもしれないですけど。

              • 個人でパソコンいじってて信頼性ってのを実感することはあまりないですね。高信頼性をうたってる装置ってどうにも
                ロバストさがなくて、私はお膳立てをして環境を整えてやらないとてこでも動かない、こける、みたいなイメージがあります。

                コード署名をつけるといっても、チップメーカーはUSBメモリメーカーの正当性を保証できないし、認証基盤なんか作れないですよ。
                結局コントローラに秘密鍵をつけなければいけないのなら、その時にファームウェアも書き込んでしまえばよいし、その後は書き換え
                不能にするというほうが、対策として現実的じゃないかと思います。

                親コメント
              • by Anonymous Coward

                コード署名で、USBメモリメーカーの正当性まで保証する必要はないと思いますよ。
                任意の悪党がファームの改竄できなければいい。
                心配なら、ユーザーは、信頼のUSBメモリメーカー 〇立製作所 とか買えばいいのですから。

                コントローラに秘密鍵をつけて、ファームウェアを書き換え可能にすることの問題点が見えないです。
                知らない人もいるので解説すると、メッセージ認証コードはDES暗号などの秘密鍵を使って計算します。

              • まあ、非公開のはずの仕様が漏れたか、方法が見つけられたかということが今回の発表に繋がるので、仕様を隠すことには
                あまり意味がないでしょう。

                やはり、人々が単機能で改造・再利用不可能だと思い込んでいたものが、実はプログラマブルだった、というところが問題は
                ないでしょうか。USBメモリは事務処理で持ち込まれたりするもので、購入者と使用者というのも1対1対応ですらないわけです。
                まったく書き換え不能で、かつできれば内容を検証可能なコントローラを誰かが新しく設計するか、チップメーカー程度の信頼された
                大手にのみ書き込み可能な制度を作れれば解決するのではないかと思います。

                たぶん、誰かが8051ベースではない新しめのCPUでコントローラを作り直し、それには組み立てるメーカーではなくコントローラの
                メーカーの署名チェックがつくのでしょう。そして、それが数年間かけて広まっていくのでしょう。たぶん。

                親コメント
              • もしBadUSBが非公開の仕様を突破する方法を見つけたのなら、それをどうやって見つけたのかですね。
                それがわかれば、その方法では見つからないように仕様を変更すればいい。

                Security through obscurity has never achieved engineering acceptance as an approach to securing a system [wikipedia.org]
                The United States National Institute of Standards and Technology (NIST) specifically recommends against security through obscurity [wikipedia.org]

                利用者が信頼性を重視するなら〇立製作所のUSBメモリを買えば
                いいし、価格を重視するなら、安いところから買えばいいのです。

                現状の市場構造では日◯製作所がUSBメモリを作るというのは現実的ではないですよ。現実的には彼らにできるのは検証することだけです。
                業務用USBメモリを、例えば市場価格の1000円増しで販売する…売れると思いますか? そして、買った人はそれ以外のUSBメモリを自社周辺から
                一掃できますか?

                チップメーカーが組み立てメーカーに証明書を発行して、
                組み立てメーカーは、その証明書でファームに署名をするということでいいような。
                利用者は、信頼できる組み立てメーカーのデバイスを購入するのです。
                どの組み立てメーカーが作ったものかは、証明書によって検証できるので大丈夫。

                組み立てメーカーというのがそもそも日曜大工なのですよ。しかも、USBメモリというのは他人から受け取るものです。
                顧客に向かって、あなたの持ってきたUSBメモリは実は怪しい業者のもので、信頼できないので中の書類は受けとりません、などと
                いうことはできないでしょう。

                一番、安いのが、仕様の非公開
                次が、メッセージ認証コード
                その次が、コード署名

                なんだかバランス感覚が現代と離れているような気がしますが。そもそも仕様を非公開にすれば書き変えられないと思っていた
                ところ、書き換えられてしまった、というのが出発点でもあるわけで。

                親コメント
          • by Anonymous Coward

            TPMを使ったブートローダでは、取り外しができるUBSデバイスの正当性チェックできない。

            USBデバイスのファームに自己書き換え脆弱性が存在するリスクを対策しなければ
            感染してUSBデバイスが悪事をするようになると、コストをけちることないと思う。

            安価なUSBデバイスは、わからないが、メッセージ認証コードくらいのハードは
            たいしたことないと思う。

            安全なお店で買ったUSBデバイスを、安全な自宅で利用することは多いが
            その場合は、ソーシャルハックの心配はない。

            相互認証が面倒かどうかではなくて、セキュリティ的な問題があれば、やるしか
            ないのでは。

            • 商業的に一番簡単なのは、8051をやめてARMにしちゃうことでしょう。セキュアブートとかもついてます。

              USBメモリは片手か両手で数えるくらいの部品数しか載せませんし、メモリはオンダイでCPUのバスは半導体の外にも出ません。
              よって暗号アクセラレータのような外部ハードをボード上に追加することはできません。コントローラ+メモリの2チップしかそもそも
              載っていません。USB 2.0のフラッシュメモリ程度であれば、FelicaのようなIC暗号カードと同じ方向性で、マスクROMを載せて
              プログラム書き換え不能とし、フラッシュ領域に設定だけを書き込むようにするのが解決策としてよくあるやり方じゃないかと思います。

              親コメント
typodupeerror

私はプログラマです。1040 formに私の職業としてそう書いています -- Ken Thompson

読み込み中...