2026年7月24日、ある独立系セキュリティ研究者がHanwha(ハンファ)製の防犯カメラ(型番: Wisenet XNP-9300RW)を購入し、ファームウェアの安全性検証を開始した。解析開始からわずか数時間後、彼の手に渡ったのは同社の全極秘コードを開く「マスターキー」だった——HanwhaのGitHub組織全体に存在する数百のプライベートリポジトリ(ソースコード、CI/CDパイプライン設定、社内ドキュメント含む)にフルアクセス可能な有効なGitHub管理者トークンである。しかもそれは、カメラのWebログイン画面の中にそのまま含まれていた。
画像注釈:Hanwha Wisenet XNP-9300RW。4K解像度と30倍光学ズームを備えた屋外用PTZ防犯カメラであり、今回の情報漏洩事件の「主役」となったモデル。
この発見は技術コミュニティに瞬く間に衝撃を与えた。Hacker Newsでの投稿は480ポイント以上を獲得し、160件を超える議論を呼んだ。しかし、真に深刻なのは、これが極めて普遍的でありながら誰も真剣に向き合ってこなかった現実を突きつけている点だ。「購入したネットワーク接続機器のすべてが、メーカー内部システムへの鍵になり得る」——それも、メーカー自らが鍵をかけたまま放置している鍵である。
なぜ社外秘コードのアクセス権が防犯カメラに混入したのか?
まず基本構造を整理する。現代のネットワークカメラは、本質的に小型の組み込みLinuxコンピュータである。独自のプロセッサ、メモリ、軽量OSを備え、管理者が設定を変更するためのWeb管理UIが組み込まれている。この管理UIは一般的なWebサイトと同様、ブラウザでIPにアクセスした際にJavaScriptファイルをダウンロードして動作する。
問題は、このJavaScriptビルド処理で発生した。
研究者がカメラのファームウェア(OSのインストールパッケージに相当)を展開してWeb管理画面のJavaScriptファイルを調べたところ、なんと約30個のファイル内に有効なGitHubアクセストークンが平文で埋め込まれていた。
分かりやすく言えば、GitHubトークンとは「金庫の鍵」そのものである。一度発行されれば、付与された権限範囲(このケースではHanwha社全体の全コードリポジトリ)にアクセスできる。本来、こうした管理者特権トークンはごく一部の中核エンジニアのみが保持し、厳重なシークレット管理システムで保護され、CI処理の完了直後に無効化されるべきものである。
それが、世界中に向けて出荷された数百万台の防犯カメラのログイン画面にそのまま同梱されていたのだ。
すなわち、このカメラのログインページにアクセスできる者——IPアドレスに到達できる者であれば誰でも——この金庫の鍵を入手できる状態にあった。
ビルドプロセスのどこで破綻が起きたのか?
研究者の解析を辿ると、原因は極めてシンプルかつ衝撃的な事実に突き当たる。売上高100億ドルを超える大手防犯機器メーカーが、驚くほど無頓着なソフトウェアビルドパイプラインを採用していたことだ。
HanwhaはカメラのWeb管理画面の構築に、モダンなフロントエンドビルドツールである「Vite」を使用していた。Viteのビルド設定では、環境変数(process.env)を最終的な静的JavaScriptコードに埋め込む挙動が可能となる。そして当時、ビルドタスクを実行していたCI(継続的インテグレーション)サーバー上には、GitHub管理者権限を持つトークンが環境変数として設定されていた。
その結果、CIサーバーの環境変数(GitHub管理者トークン、Kubernetesクラスタのアクセス先、npmシークレット、内部サービスのドメインやポート番号など)が丸ごとWebフロントエンドのコードに書き込まれ、そのままファームウェアにパッキングされて世界中の顧客へ出荷されたのである。
これは例えるなら、高級ホテルの警備部門が、金庫の暗証番号一覧を各客室のカードキーの取扱説明書に印刷して配布してしまったようなものだ。
さらに背筋が凍る「隠し要素」
GitHubトークンの漏洩にとどまらず、研究者はファームウェア内から不自然なIPアドレス群を発見した。調べたところ、それらのIPアドレスは**米国国防総省(DoD)**に割り当てられたアドレスブロックに属していた。
背景として、Hanwha(ハンファグループ)について触れる必要がある。一般には防犯カメラで知られるが、親会社であるハンファグループは韓国トップ10に入る巨大財閥であり、軍需・防衛、航空宇宙、金融、エネルギーなど多岐にわたる事業を展開している。傘下には以下の企業が含まれる:
- ハンファ・エアロスペース(Hanwha Aerospace)
- ハンファ・ディフェンスUSA(Hanwha Defense USA)
- K9 155mm自走榴弾砲、K2黒豹主戦戦車、SGR-A1監視ロボットなどの兵器を製造
画像注釈:ハンファグループは防犯カメラだけでなく軍事用装備も製造している。写真はフィンランド陸軍が運用するハンファ製 K9「サンダー」自走榴弾砲。出典: Wikimedia Commons
つまり、市販の防犯カメラ内部に、米国国防総省に関連する内部サービスのアドレスが含まれていたことになる。研究者は、防犯カメラ部門・防衛部門・航空宇宙部門が共通のCI/CD基盤を共有していた可能性を指摘している。理論上、監視カメラの脆弱性が軍事・防衛システムへの侵入の足がかりとなり得たという構造だ。
推測の域を出ない部分もあるとはいえ、この事実自体がサプライチェーンリスクの根深さを物語っている。
単なる個別の失態か、業界全体の病理か?
残念ながら、これはHanwha一社の問題にとどまらない。IoT(モノのインターネット)業界全体が、セキュリティ面において恒常的に無防備な状態にある。
セキュリティコミュニティが長年指摘し続けている構造的問題は以下の通りだ:
- ファームウェア署名検証の欠如: デジタル署名の検証が行われず、改ざんされたファームウェアによる更新を拒否できない。
- ハードコードされた認証情報: 工場出荷時の固定ID・パスワード(admin/admin等)が放置される。
- 暗号化されないファームウェア配信: HTTP平文通信で配信され、中間者攻撃(MITM)に晒される。
- フロントエンドコードへの機密埋め込み: APIキーやDBパスワード、アクセストークンをWebコード内に直書きする失態。
しかし、GitHubの特権管理者トークンを防犯カメラのログインJavaScriptにそのまま埋め込む事例は、数ある反面教師の中でも間違いなく教科書レベルの惨事と言える。
ユーザー側で講じるべき対策
家庭や企業でHanwha製の防犯カメラ(Hanwha Vision、Wisenet、旧Samsung Techwinブランドを含む)を導入している場合、メーカー側のビルドパイプラインの欠陥を直接修正することは不可能だ。Hanwha側は通報を受けてから12時間以内に該当トークンを失効させたが、それまでの間に誰がトークンを抽出していたか、悪用されたかどうかの全容は不明のままである。
セキュリティのベストプラクティスに基づく対策は以下の通りである:
- 防犯カメラを隔離ネットワーク(VLAN)に配置する: ルーターのゲストネットワーク機能やVLANを使用し、すべてのIoT機器(カメラ、スマート家電等)をメインのPCやスマホからネットワーク的に隔離する。
- ONVIF標準対応カメラとオープンソースNVRの活用: ONVIF規格に対応したカメラを選択し、オープンソースの録画ソフトウェア(VMS)と組み合わせることで、メーカー固有のクラウドやWeb管理画面に依存しない運用を行う。
- 接続機器をデフォルトで信頼しない: ネットワークに接続するすべての機器を潜在的なリスクとして認識する。ハードウェアを購入することは、その背後にあるソフトウェアサプライチェーンのリスクを引き受けることと同義である。
終わりに
この事件で最も懸念すべきは、単なる不注意そのものではない。技術的エラーはどのような企業でも起こり得る。真の課題は、売上高100億ドルを超える防衛・セキュリティ巨頭が、消費者向けファームウェアに管理者トークンが混入するのを防ぐ自動ガードレールを一切備えていなかったという事実だ。
大手メーカーでさえこの状態であれば、ブランド名すら定かでない格安IoT機器のリスクは想像に難くない。
IoT時代において、「カメラを1台買った」ことと「メーカーの金庫の鍵を手に入れた」ことの境界線は、わずか1回の不注意なビルドスクリプトによって消え去るのである。
参考リンク:
- HHH: My security camera shipped a GitHub admin token in its login page(元記事)
- Hacker News 議論スレッド(ID: 49034292)
- El Solitario: GitHub Token Leaked in Hanwha Cameras
- Wikipedia: Hanwha Group
- Hanwha Vision 公式サイト