Scroll to top

IoTセキュリティ研究 ― ファームウェアイメージから公開CVEまで

Embedded boards and IoT hardware security research
Network-connected camera security

プロジェクト概要

これは私が繰り返し立ち返っている研究テーマです。対象はコンシューマーおよび小規模事業者向けのネットワーク機器で、ルーター、TVボックス、IPカメラ、そしてそれらの内部にあるシングルボードコンピューターです。手法はあえて地味に徹しています。機器を購入し、ベンダーのサポートページから公式ファームウェアを取得し、binwalkでセクションを切り出し、SquashFSのルートをマウントして、デバッガに触れる前にまずファイルシステムを読む。そのうえで実機を隔離したベンチネットワークに接続し、実際の挙動を観察します。この手法が影響範囲の広い発見を生み続けるのは、ファームウェアイメージの中の一つの誤った判断が、その機種を買ったすべての人に届き、しかも最初の1年を過ぎるとほとんどパッチが当たらないからです。そのうちの一件は CVE-2026-58378 として、Android Debug Bridge を有効かつネットワークに露出したまま出荷されていたTVボックスの問題となり、CISAのアドバイザリ VA-26-190-03 として公開されました。他にもベンダーが静かに修正した事例があります。全機種で同一の静的RSA秘密鍵、暗号化されない管理通信、LAN上で待ち受ける認証不要のデバッグプロトコルなどです。

課題

  1. ソースもシンボルもベンダー文書もない、ストリップされたバイナリイメージから解析を始めること。
  2. ARM/MIPSのOpenWrt派生ビルド、独自のパッカー、標準外のインタープリタバイトコードに対応すること。
  3. 本当にリモートから到達できる欠陥と、工場から出ることのないデバッグ用の残置物とを見分けること。
  4. 実機を文鎮化させず、また他者のネットワークに到達することなく、影響を実証すること。
  5. 多くの場合セキュリティ連絡窓口を公開していないベンダーに対し、報告を確実に届けること。

アプローチ

  1. 公式ファームウェアを取得し、binwalkで切り出し、SquashFSのルートをマウントして、まずファイルシステムを読みます。
  2. 地味なものから探します。鍵、証明書、initスクリプト内のbase64の塊、そしてソケットで待ち受けるすべてのバイナリです。
  3. ベンダー独自に並べ替えられたオペコード表でインタープリタを再構築し、Web UIを逆コンパイルして本来のロジックを復元します。
  4. すべての発見は、被検機器のみを接続した隔離ベンチネットワーク上で確認します。
  5. まずベンダーのPSIRTへ報告し、応答がない場合はCISAの協調的開示へエスカレーションします。修正が存在する前に公開することはありません。

代表的な発見

公表ではなく、開示を

発見内容と同じくらい、プロセスが重要です。すべてはまずベンダーのPSIRTへ送ります。対象のファームウェアバージョン、ファイルパス、再現手順、そして各問題に対する推奨修正案を添えてです。製品が広く普及している場合やベンダーの対応が遅い場合には、CISAの協調的脆弱性開示プログラムへエスカレーションします。CVE-2026-58378 が VA-26-190-03 のもとで公開されたのも、この経路です。修正が存在する前に技術的詳細を公開することは一切ありません。実務上、最も時間がかかるのは解析ではなく、報告を受け取る権限を持つ担当者をベンダー側で見つけることです。

対象とするもの