TCL LinkHub Mesh Wi-Fi システムは、ネットワークにアクセスできる物理的領域を拡大できるマルチデバイス Wi-Fi システムです。LinkHub システムの特徴的な点は、デバイスの個別管理やメッシュ内管理を行うためのネットワーク インターフェイスがないことです。これらのデバイスを操作するには、スマートフォン アプリケーションを使用するのが唯一の手段となっています。これは注目に値します。HTTP/S コードベース全体が製品から除去されているため、スモールオフィス/ホームオフィス(SOHO)ルータのほとんどが抱えている一般的なアタックサーフェス(攻撃対象領域)が理論上、大幅に縮小されるからです。したがって、統合やカスタムスクリプトを通じてデバイスのさまざまな機能がトリガーされる問題が理論上は軽減されます。ただし、ユーザーがデバイスを管理できるようにその機能をどこかで提供する必要がある点がこのアプローチの問題の 1 つとなっています。
このような特長を持つ LinkHub Mesh Wi-Fi システムですが、Cisco Talos が本日開示する複数の脆弱性は依然としてエクスプロイトされる可能性があります。それらの脆弱性がエクスプロイトされると、オペレーティングシステム レベルでのコードの挿入、ログイン情報の窃取、ネットワーク全体のサービス妨害など、さまざまな悪意のある活動が行われる危険性があります。TCL 社からは公式の修正プログラムは提供されていませんが、シスコの脆弱性開示ポリシーに従って、Cisco Talos はこれらの脆弱性を開示しています。
このデバイスを調査する糸口として最も興味をそそられるのは、すべての管理機能がスマートフォン アプリケーションに移行されていることです。最初のステップは、通信に使用されているプロトコルを解明することです。いくつかの選択肢がすぐに思い浮かびます。TCL 社はエンドポイントを隠して HTTP を使用しているかもしれませんし、トラフィックのキャプチャと識別を優先するために独自の通信プロトコルを使用しているかもしれません。キャプチャを調べてみると、HTTP などのテキストベースのプロトコルではないことが分かるので、次のステップとして、カスタムプロトコルなのか一般に普及しているプロトコルなのかを調べます。
Android アプリケーションによる通信のネットワークトラフィックのキャプチャ。
デバイスや Android アプリケーションのさまざまなバイナリを調査したところ、広く使用されている Proto Buffers ライブラリでデータをシリアル化していることが分かりました。Proto Buffers では、データをシリアル化するためにプラットフォームに依存しない定義ファイルが使用されます。protoc コンパイラは作成された定義ファイルを使用してさまざまなプログラミング言語用の定型コードを作成します。定義されたシリアル化を使用して通信するためにこのコードが必要になります。Proto Buffers を利用した場合、定義コードが定型コードに埋め込まれるという興味深い副作用が発生します。この理由は、通信の両側でデータを逆シリアル化して使用可能な形式にするために、コンパイラがサポートする各言語で必要になるからです。このデータが逆シリアル化コードにどのように含まれているかを調べることで、コンパイルされたバイナリから定義ファイルをほぼ完全な形で復元できます。
バイナリから復元した Proto Buffer 構造体
バイナリから復元した proto ファイル
proto ファイルを復元できたら、サポートされている任意の言語にファイルをコンパイルできます。したがって、proto ファイルを抽出するとサービスとのやり取りが非常にシンプルになります。脆弱性を調査する際、Proto Buffers が利用されていると助かることがもう 1 つあります。それは、Proto Buffers のシリアル化と逆シリアル化は十分にテスト済みであるということです。完璧でバグ 1 つないというわけではありませんが、この調査の目的を考えると、protoc から生成されたコードは無視してよいことになります。調査の焦点が、ビジネスロジックと逆シリアル化されたデータの処理、つまり TCL 社が担当したすべてのコードに完全に絞り込まれました。
一般的なセキュリティ調査を始める上で次に解明する必要があったのは認証方式でした。TCL アプリでは、ユーザーがパスワードを提供してデバイスを認証する必要がありません。したがって、ペアリング時に事前にネゴシエートされたか、他の情報が使用されています。復元されたプロトコル情報を含んだネットワークキャプチャをいくつか確認したところ、これらのデバイスでは認証のパスワードとしてシリアル番号が使用されていることが判明しました。さらに悪いことに、シリアル番号は権限がなくてもリクエストが可能です(通常の認証フローの中でシリアル番号がリクエストされています)。認証方式としてまったく成り立っていません。この擬似ログイン方式を再現したことで、脆弱性の調査へと進むことができました。
この調査では、17 件の脆弱性レポートを作成しました。それらのレポートでは類似の CVE をまとめて、ベンダーに提供するレポートにしています。今回は 41 件の固有の CVE をまとめています。発見された脆弱性の多くは、Proto Buffer 管理プロトコルと、メモリから構成を回復する一般的な使用法に関連するものです。それぞれの脆弱性の詳細については、下にリンクされている完全なレポートをご覧ください。
今回の脆弱性のエクスプロイトは、Snort ルール(59013、59020、59026 ~ 59029、59058、59059、59061、59289 ~ 59291、59406 ~ 59411)で検出できます。今後、脆弱性に関する新たな情報が追加されるまでの間は、ルールが追加されたり、現行のルールが変更されたりする場合がありますのでご注意ください。最新のルールの詳細については、Firepower Management Center または Snort.org を参照してください。
バッファオーバーフローの脆弱性
- Talos-2022-1454:TCL LinkHub Mesh Wi-Fi の confsrv set_port_fwd_rule におけるスタックベースのバッファオーバーフローの脆弱性
- Talos-2022-1455:TCL LinkHub Mesh Wi-Fi の confsrv set_mf_rule におけるスタックベースのバッファオーバーフローの脆弱性
- Talos-2022-1456:TCL LinkHub Mesh Wi-Fi の confers ucloud_add_node_new におけるスタックベースのバッファオーバーフローの脆弱性
- Talos-2022-1462:TCL LinkHub Mesh Wi-Fi の confsrv confctl_set_app_language におけるスタックベースのバッファオーバーフローの脆弱性
- Talos-2022-1463:TCL LinkHub Mesh Wi-Fi の GetValue におけるバッファオーバーフローの脆弱性
- Talos-2022-1482:TCL LinkHub Mesh Wi-Fi の confsrv addTimeGroup におけるスタックベースのバッファオーバーフローの脆弱性
- Talos-2022-1483:TCL LinkHub Mesh Wi-Fi の confsrv ucloud_set_node_location におけるスタックベースのバッファオーバーフローの脆弱性
- Talos-2022-1484:TCL LinkHub Mesh Wi-Fi の confsrv ucloud_set_node_location におけるバッファオーバーフローの脆弱性
コマンドインジェクションの脆弱性
- Talos-2022-1457:TCL LinkHub Mesh Wi-Fi の confsrv ucloud_add_node_new における OS コマンドインジェクションの脆弱性
- Talos-2022-1458:TCL LinkHub Mesh Wi-Fi の confsrv ucloud_add_node における OS コマンドインジェクションの脆弱性
情報漏洩の脆弱性
- Talos-2022-1503:TCL LinkHub Mesh Wi-Fi の confctl_get_guest_wlan における情報漏洩の脆弱性
- Talos-2022-1504:TCL LinkHub Mesh Wi-Fi の confctl_get_master_wlan における情報漏洩の脆弱性
サービス妨害の脆弱性
- Talos-2022-1502:TCL LinkHub Mesh Wi-Fi の confctl_set_guest_wlan におけるサービス妨害の脆弱性
- Talos-2022-1505:TCL LinkHub Mesh Wi-Fi の confctl_set_master_wlan におけるサービス妨害の脆弱性
- Talos-2022-1506:TCL LinkHub Mesh Wi-Fi の confctl_set_wan_cfg におけるサービス妨害の脆弱性
- Talos-2022-1507:TCL LinkHub Mesh Wi-Fi の ucloud_del_node におけるサービス妨害の脆弱性
ハードコーディングされたログイン情報の脆弱性
- Talos-2022-1459:TCL LinkHub Mesh Wi-Fi のso prod_change_root_passwd におけるハードコーディングされたパスワードの脆弱性
本稿は 2022 年 08 月 01 日に Talos Group のブログに投稿された「Vulnerability Spotlight: How misusing properly serialized data opened TCL LinkHub Mesh Wi-Fi system to 17 vulnerabilities」の抄訳です。