パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

あらゆるUSBデバイスを攻撃に転用可能な「BadUSB」、Black Hatにてデモ予定」記事へのコメント

  • 現在の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 on 2014年08月02日 23時36分 (#2649932)

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

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

                親コメント
              • by Anonymous Coward
                出荷状態でファームが変更されないならフラッシュROMの書き込み禁止ヒューズビット切ってしまえばいいのですが、 フェームウェアの更新機能を付けるとして、ファームウェアのバイナリに証明書を付けて、チップ上の耐ダンパ性のある鍵で正当性を担保するなら、バイナリを証明するための秘密鍵を誰が管理するかという問題になるのだと思います。チップメーカーはサービスでそんな責任負いたくないでしょうし、星の数ほどある中国のODMメーカーが秘密鍵を適切に管理できるかというと現状ではまだ難しいでしょう。結局機能的にはあっても使われない。
              • by Anonymous Coward

                ファームの改竄の検出方法には2つあります。1つめがコード署名を使う方法。2つめがDES暗号などを使ったメッセージ認証コードです。
                ご説明の中に証明書ということばがでてくるので、コード署名の方法なのかな?秘密鍵の管理は、チップメーカーは認証局に
                代行してもらえばいいし、中国のODMメーカはICカードに秘密鍵を入れて管理しておけば、良いように思います。
                これをできないと決めつけるのは、ちょっと難しいかと。
                ソフトウェアの世界では、星の数ほどあるソフトハウスが自社のソフトウェアにコード署名してますよ。
                ファームウェアの世界では、この話と何が違うのか?という

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

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

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

                親コメント
              • by Anonymous Coward

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

                もしBadUSBが非公開の仕様の漏れを利用したものなら、仕様が漏れることはそんなにないですから
                脅威ではないでしょう。今後も安価なUSBデバイスでは仕様を隠す方法でいいと思います。

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

                仕様を隠す方法に意味がないということにはならないように思います。
                仕様

              • もし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

                英語読むのは疲れるのでスキップします。

                > 現状の市場構造では日◯製作所がUSBメモリを作るというのは現実的ではないですよ。
                元日〇製作所社員ですので、その辺のことは、よーくわかってますよ。

                > 現実的には彼らにできるのは検証することだけです。
                彼らは一流の大学を出て優秀だったはずです。それが検証することしかできない人間に
                なるのです。たとえば普通には優秀だから生涯賃金を稼いでしまうわけですが、じっくり
                無能な人間にしたてあげてリストラすれば、リストラ業者が儲かるわけです。

                C言語のスキルいっしょうけんめい磨いていると、雑用やプレゼンなどの仕事をさせられて
                気がつくと、

ソースを見ろ -- ある4桁UID

処理中...