Kalay ネットワークで防犯カメラの乗っ取りが可能な脆弱性が発見される

** 本記事は、Video surveillance network hacked by researchers to hijack footage の翻訳です。最新の情報は英語記事をご覧ください。**

セキュリティ企業 Mandiant 社の研究者が、Kalay と呼ばれるビデオ共有・監視ネットワーク上のデバイスを乗っ取る脆弱性を報告しました。

中国のスマートデバイス企業 ThroughTek 社が運営する Kalay (台湾の先住民族の言葉で「握手」の意) は、監視カメラ、スマートロック、インターホン、スマートプラグや、さらには NAS デバイスといった個人用クラウドストレージハードウェアなど、ホームオートメーションデバイスのベンダー向けに、クラウドベースのサービスとして提供されています。

ThroughTek 社は以下のように述べています。

(Kalay は) 多くのホームオートメーションデバイスを統合し、ユーザーが特定の目的や日々の習慣に応じてシステムを監視・制御するのを助けます。

また、より詳しく以下のようにも述べています。

(Kalay は) 監視カメラ、スマートコンシューマー製品、各種センサーの統合を可能にし、有名ブランドメーカー、通信事業者、システムインテグレーター、ハードウェアメーカー、その他のサービスプロバイダーがより安全、便利で柔軟なスマートソリューションをユーザーに提供する助けになります。

上述の通り、ホームオートメーションデバイスのメーカーは Kalay ソフトウェアを自社のファームウェアに組み込み、既存の Kalay ネットワークを利用できます。そうすることで、メーカーが自社で独自のプロトコルを作成したり、独自のサーバーを設置したり、独自のホームオートメーションサービスを構築したりせずともユーザーによる機器の管理やアクセスを容易にできるというのが Kalay の基本理念です。

外部からの侵入

今回、Mandiant 社の研究者により、Kalay プロトコルに対するある種の中間者攻撃 (MiTM) が発見されました。この攻撃により、攻撃者は家庭内の機器に侵入することができ、被害者の Web カメラの映像が盗み出されるなどの被害が発生します。

幸いなことに、CVE-2021-28372 と呼ばれるこの脆弱性は、Kalay システムを利用しているすべての製品に対して悪用できるわけではありません。攻撃者はまず、侵入したい機器に割り当てられた 20 バイトの固有識別子を知る必要があります。

Mandiant 社によると、これらの固有識別子 (UID) は「各デバイスを販売している企業がホストする Web API から、Kalay に対応しているクライアント (モバイルアプリケーションなど) に割り当てられる」とのことです。

しかし、ネットワークの MAC アドレスが、機器メーカーごとに共通の 3 バイトと実質的にランダムな 3 バイトで構成されているように、Kalay に対応したクライアントに割り当てられる 20 バイトも完全にランダムではないと推定されます。

とはいえ、たった 6 バイトの MAC アドレスとは異なり、20 バイトの長さがあれば、たとえベンダーによって共通する部分が数バイトあっても、残りの部分を予測困難なランダム文字列にする余地は十分にあります。

実際、Mandiant 社も「ThroughTek 社の UID を総当りする可能性を調査したが、時間とリソースの制約上不可能であることがわかった」と認めています。

しかし、マルウェアによって自宅のネットワークから UID が盗み出され、ダークウェブで売られたり、他の何らかの方法で安易に開示されたりすることがあります。このような方法で攻撃者に UID が知られた場合、攻撃者は一時的にそのデバイスになりすまし、Kalay ネットワークに再登録するだけでデバイスを乗っ取ることができます。

この攻撃が機能するのは Kalay ネットワークの初回設定が登録するデバイスの UID を使用して行われ、その際にデバイスのデータにリモートでアクセスするのに使用できる認証情報が発行されるからです。

この攻撃が機能するのは Kalay ネットワークの初回設定が登録するデバイスの UID を使用して行われ、その際にデバイスのデータにリモートでアクセスするのに使用できる認証情報が発行されるからです。

  • ネットワーク上のデバイスを特定する。
  • 特定したデバイスからライブビデオフィードを抽出する。
  • 抽出したライブビデオフィードを認証されたモバイルデバイスに中継する。

Mandiant 社の研究者によると、すでに登録されたデバイスであっても UID を知っていればKalay ネットワークに不正に再登録をすることができ、Kalay ネットワークはエラーを出すことなく新しい認証情報を発行するとのことです。

攻撃者が取得した新しい認証情報を使って標的とするデバイスでソフトウェアを認証し、カメラ映像を要求すると、Kalay ネットワークは指定された UID を持つデバイスをネットワーク上で検索します。

すると、該当する UID を持つデバイスが返答を行い、ビデオフィードの送信を開始します。

攻撃者の所有する認証情報は正しいものなので、攻撃者が再設定を行うと、フィードは攻撃者の元に戻ってくることになります。この方法により攻撃者は被害者を監視できるようになります。

(他の多くの種類のデバイスも同様の方法でハッキングされたり、乗っ取られたりする可能性があると考えられますが、ライブビデオフィードの窃取がおそらく最も目を引く例でしょう。)

簡単にいうと、今回の脆弱性は、たとえ以前のパスワードを知らなくとも、デバイスの UID を知っているだけで不正なパスワードリセットができる問題です。UID は確かに公開されるべきものではありませんが、それだけではセキュリティ上不十分です。

今回の攻撃はたとえば自宅の電話番号や運転免許証の有効期限など、その人に固有の個人情報を知ることでそのユーザーのメールアドレスのパスワードを変更できるようなものです。不特定多数を攻撃するのは困難ですが、誰か一人を攻撃するには十分すぎるほどです。

対策

1 つ目の良い知らせは、上述の通り、攻撃者はまずネットワーク上のデバイスの UID を知る必要があるということです。

しかし、残念ながら、自分のデバイスの UID がどの程度知られているかはわかりません。攻撃者が UID を知っていたとしても、通常、攻撃が始まるまではその事実を知ることはできません。

2 つ目の良い知らせは、ThroughTek 社のクライアント側ソフトウェア開発キット (SDK) ライブラリの最新版にはこのバグが存在しないことです。したがって、デバイスのファームウェアが最新であれば、現状危険はありません。

(脆弱性の存在するソフトウェアライブラリのバージョンは 3.1.10 以前です。現在のバージョン3.3.1.0 および 3.4.2.0 です。)

しかし、ThroughTek 社のコードのどのバージョンが各ベンダーのファームウェアのどのバージョンにコンパイルされているか、あるいはどのバージョンのファームウェアがどのデバイスにインストールされているかを知ることは困難です。

さらに、ThroughTek 社のコードが使われているかどうかを見分けること自体も困難です。

この脆弱性を ThroughTek 社に報告し、同社と直接連絡を取り合って問題を調査した Mandiant 社でさえ、「Kalay プラットフォームを使用しているデバイスの包括的なリストを作成することはできなかった」と述べています。

ですので、以下の対策を採りましょう。

  1. Kalay に接続されているデバイスをお持ちの方は、 そのデバイスにコンパイルされている ThroughTek ソフトウェアコンポーネントのバージョンが 3.1.10 以降であることを確認してください。ほとんどの機器では、ファームウェアをダウンロードしてバージョンを示す文字列を自力で探しだすことは容易ではありません。バージョン番号を調べる方法がわからない場合は、ベンダーに相談してください。
  2. バックエンドのクラウドネットワークを使用しているデバイスをお持ちの方は、ベンダーに相談してそのデバイスが Kalay を使用しているか確認してください。もし使用していれば、1. の対策を行ってください。

私たちは検証用の Kalay ベースのホームデバイスを所持していないため、すでに購入してインストールしたデバイスに UID を再割り当てできるかどうかは不明です。(再割り当てが可能でも直ちに問題が解決されるわけではありませんが、UID を知られるリスクは多少緩和されるでしょう。)

Mandiant 社によると、ThroughTek 社のネットワークは 8,000 万台以上の接続デバイスを持ち、それぞれが月に平均 10 回以上の接続を行い、月間で計 11 億回の接続が行われているとのことです。

ですので、Kalay ネットワークに接続しているデバイスを所持していて、有用な情報をお持ちの方は、ぜひ以下のコメント欄でお教えください。

匿名希望の方は、フォームの名前欄を未記入にしてください。