事例研究:出荷された全機種が同じ秘密鍵を持つルーター
- Home
- ブログ
私はJoeです。ファームウェアの調査は、私の仕事の中で最も地味な部分でありながら、最も影響範囲の広い発見を安定して生み出す領域でもあります。ルーターのイメージの中に一つ悪い判断が混ざれば、それはその機種を購入したすべての人に届いてしまうからです。本稿は、私が実施してきたコンシューマー向けルーターの監査をまとめたもので、手法をそのまま再利用できる形で書いています。未修正の特定機器を識別できる詳細は意図的に省いています。重要なのはパターンです。
-
なぜ私はコンシューマー向けルーターを見続けるのか
家庭や小規模オフィスのルーターは、多くの人が所有する機器の中で最も高い権限を持つ存在です。すべてのDNSクエリを見て、すべての接続を終端し、そして最初の1年を過ぎるとほとんどパッチが当てられません。しかも安価であるということは、ファームウェアが納期に追われて作られたことを意味します。私がルーターを監査するとき探しているのは、風変わりなメモリ破壊の脆弱性ではありません。製品を出荷しなければならないときに取られる近道です。そうしたバグこそが、一度に数百万の家庭に届いてしまうからです。
-
ファームウェアイメージを展開する
手順は地味で、いつも同じです。ベンダーのサポートページから公式ファームウェアを取得し、binwalkでセクションを識別・切り出し、SquashFSのルートファイルシステムをマウントして、あとはひたすら読む。凝った解析に入る前に、まずは平凡なものをgrepします。keyやpemという名前のファイル、initスクリプト内のbase64の塊、パスワードらしき固定文字列、そしてソケットで待ち受けるすべてのバイナリ。私がこれまで報告してきた内容の大半は、デバッガからではなく、この最初の一巡から出てきたものです。
-
全機種に共通する、ひとつの秘密鍵
ファイルシステムには、RSAの秘密鍵が平文で含まれていました。プレースホルダーでも開発用の残骸でもなく、実際に機器が使用している鍵で、そのファームウェアで出荷される全機種において同一です。この事実ひとつで、信頼モデルは崩壊します。公開されているファームウェアイメージをダウンロードした人は誰でもその鍵を手にでき、つまり機器になりすまし、その鍵で保護されたものを復号し、機器が受け入れる署名を作れるということです。これを解決できるユーザー側の操作は存在しません。鍵は初回起動時に機器上で生成されなければならず、それはベンダーにしかできないファームウェアの変更です。
-
平文の管理通信と、認証のない管理プロトコル
さらに二つの指摘が重なりました。管理インターフェースはローカルネットワーク上で通信の暗号化なしに提供されており、管理者の認証情報が、同じWi-Fi上の誰にでも読める形で流れていました。それとは別に、ベンダーのデバッグ用プロトコルが待ち受けており、認証を一切必要とせずコマンドを受け付けていました。個々でも十分に悪いのですが、これらを連鎖させると、LANに到達した攻撃者は(来客、侵害されたノートPC、脆弱なWi-Fiパスワードの向こう側にいる隣人など)何も推測することなくゲートウェイを掌握できてしまいます。
-
開示の順序 ― まずベンダー、次に当局
発見内容と同じくらい、プロセスが重要です。すべてはまずベンダーのPSIRTに送りました。対象のファームウェアバージョン、ファイルパス、再現手順、そして各問題に対する推奨修正案を添えてです。製品が広く普及している場合や、ベンダーの対応が遅い場合には、CISAの協調的脆弱性開示プログラムへエスカレーションします。私の関連する発見(Android Debug Bridgeをネットワークに露出したまま出荷されていたTVボックス)がCISAアドバイザリ VA-26-190-03 のもとで CVE-2026-58378 として公開されたのも、この経路です。修正が存在する前に技術的詳細を公開することは、一切ありません。
-
所有者が今週できること
ベンダーが埋め込んだ鍵を再生成することはできませんが、その鍵の価値を下げることはできます。最新のファームウェアを適用し、四半期ごとに再確認してください。実際に使っていないのであれば、リモート管理とUPnPは無効にしてください。管理者の初期パスワードとWi-Fiパスワードを変更し、来客用機器とIoT機器は別のSSIDに分離して、侵害されたスマートプラグが管理インターフェースと同じLAN上に居座らないようにしてください。その機種がサポート終了で、ベンダーが修正の提供を止めているなら、買い替えてください。パッチの当たらないゲートウェイは、他の対策で埋め合わせられる類の機器ではありません。
-
ベンダー側が変えるべきこと
機器の鍵はビルド時ではなく初回起動時に生成すること。LAN上であっても管理通信は暗号化すること。「ローカルネットワーク」が「信頼できる」を意味しなくなって久しいからです。デバッグ用・製造用インターフェースは、単に文書化しないのではなく、量産イメージでは無効にして出荷すること。そして、返信のあるセキュリティ連絡窓口を公開すること。私が行う開示で最も時間がかかるのは、たいていレポートを書く作業ではなく、それを受け取る権限を持つ担当者をベンダー側で見つけることです。
コメント(5件)
-
netops_hana 2日前 返信「鍵は初回起動時に生成する」という一文は、すべての組込みチームの壁に貼っておくべきです。昨年、あるカメラベンダーでまったく同じパターンを見つけました。
-
カメラはもっとひどいです。ルーターは少なくとも時々はファームウェア更新がありますから。
-
-
IoT用に別SSIDを立てたことが、自宅で行った中で最も効果の高い変更でした。しかも費用はゼロです。
-
ベンダーの回答までにどれくらいかかったのか気になります。私の経験では、そこがすべてを物語ります。
-
大きくばらつきます。数日で受領連絡をくれるPSIRTもあれば、エスカレーション経路がなければ何も動かないところもあります。当局を経由する道が存在するのは、まさにそのためです。
-