IoTセキュリティ研究 ― ファームウェアイメージから公開CVEまで
- Home
- 実績
プロジェクト概要
これは私が繰り返し立ち返っている研究テーマです。対象はコンシューマーおよび小規模事業者向けのネットワーク機器で、ルーター、TVボックス、IPカメラ、そしてそれらの内部にあるシングルボードコンピューターです。手法はあえて地味に徹しています。機器を購入し、ベンダーのサポートページから公式ファームウェアを取得し、binwalkでセクションを切り出し、SquashFSのルートをマウントして、デバッガに触れる前にまずファイルシステムを読む。そのうえで実機を隔離したベンチネットワークに接続し、実際の挙動を観察します。この手法が影響範囲の広い発見を生み続けるのは、ファームウェアイメージの中の一つの誤った判断が、その機種を買ったすべての人に届き、しかも最初の1年を過ぎるとほとんどパッチが当たらないからです。そのうちの一件は CVE-2026-58378 として、Android Debug Bridge を有効かつネットワークに露出したまま出荷されていたTVボックスの問題となり、CISAのアドバイザリ VA-26-190-03 として公開されました。他にもベンダーが静かに修正した事例があります。全機種で同一の静的RSA秘密鍵、暗号化されない管理通信、LAN上で待ち受ける認証不要のデバッグプロトコルなどです。
課題
- ソースもシンボルもベンダー文書もない、ストリップされたバイナリイメージから解析を始めること。
- ARM/MIPSのOpenWrt派生ビルド、独自のパッカー、標準外のインタープリタバイトコードに対応すること。
- 本当にリモートから到達できる欠陥と、工場から出ることのないデバッグ用の残置物とを見分けること。
- 実機を文鎮化させず、また他者のネットワークに到達することなく、影響を実証すること。
- 多くの場合セキュリティ連絡窓口を公開していないベンダーに対し、報告を確実に届けること。
アプローチ
- 公式ファームウェアを取得し、binwalkで切り出し、SquashFSのルートをマウントして、まずファイルシステムを読みます。
- 地味なものから探します。鍵、証明書、initスクリプト内のbase64の塊、そしてソケットで待ち受けるすべてのバイナリです。
- ベンダー独自に並べ替えられたオペコード表でインタープリタを再構築し、Web UIを逆コンパイルして本来のロジックを復元します。
- すべての発見は、被検機器のみを接続した隔離ベンチネットワーク上で確認します。
- まずベンダーのPSIRTへ報告し、応答がない場合はCISAの協調的開示へエスカレーションします。修正が存在する前に公開することはありません。
代表的な発見
公開済みのものは明記しています。未修正の機器は特定できる形では記載していません。応用できるのはパターンであり、まず開示が先です。
- 全機種に共通する静的秘密鍵。ファームウェアイメージ内にRSA秘密鍵が平文で存在していました。プレースホルダーではなく機器が実際に使用する鍵で、その版で出荷される全機種において同一です。公開イメージをダウンロードした者は誰でも機器になりすませます。修正には、初回起動時に鍵を生成するファームウェア変更しかありません。
- 平文の管理通信。管理インターフェースがローカルネットワーク上で暗号化なしに提供されており、管理者の認証情報が、同じWi-Fi上の誰にでも読める形で流れていました。
- 認証のないデバッグプロトコル。ベンダーのデバッグサービスが待ち受けており、認証情報なしでコマンドを受け付けていました。平文の管理インターフェースと連鎖させると、LANに到達した攻撃者は何も推測することなくゲートウェイを掌握できます。
- ネットワークに露出したAndroid Debug Bridge。量産版のTVボックスがADBを有効化したままネットワークから到達可能な状態で出荷されていました。ADBの認可を得た攻撃者はルート権限のアクセスを獲得できます。CISAアドバイザリ VA-26-190-03 のもと CVE-2026-58378 として公開されています。
- 認可の代わりに用いられた難読化。Web UIのロジックが、並べ替えられたオペコード表を用いたストリップ済みバイトコードとして出荷されていました。その表に合わせてインタープリタを再構築するとロジックを復元でき、いくつかの操作が実際にはアクセス制御されておらず、単に画面から隠されていただけだと判明しました。
公表ではなく、開示を
発見内容と同じくらい、プロセスが重要です。すべてはまずベンダーのPSIRTへ送ります。対象のファームウェアバージョン、ファイルパス、再現手順、そして各問題に対する推奨修正案を添えてです。製品が広く普及している場合やベンダーの対応が遅い場合には、CISAの協調的脆弱性開示プログラムへエスカレーションします。CVE-2026-58378 が VA-26-190-03 のもとで公開されたのも、この経路です。修正が存在する前に技術的詳細を公開することは一切ありません。実務上、最も時間がかかるのは解析ではなく、報告を受け取る権限を持つ担当者をベンダー側で見つけることです。
対象とするもの
- 家庭・小規模オフィス向けルーターおよびゲートウェイ
- AndroidベースのTVボックス・メディア機器
- IPカメラなど、常時LANに接続される機器
- ファームウェアイメージ、ブートチェーン、更新機構
- ベンダーPSIRTおよびCISAとの協調的開示