ブログ(脅威調査)

Mandiant、何百万ものIoTデバイスに影響を及ぼす重大な脆弱性を公表

2021年8月17日、MandiantはCybersecurity ad Infrastructure Security Agency (CISA) と連携して、ThroughTekの “Kalay” ネットワークを使用する何百万ものIoTデバイスに影響を及ぼす重大な脆弱性を報告しました。2020年後半にMandiantのRed Teamリサーチャーによって発見されたこの脆弱性は、攻撃者が被害者の IoTデバイスにリモートで侵入し、その結果、感染したデバイスの機能を使用して、ライブ・オーディオを聞いたり、リアルタイム・ビデオ・データを見たり、さらなる攻撃に使用するためにデバイスのパスワード情報を窃取したりすることを可能にします。さらなる攻撃としては、攻撃者が侵害されたデバイスを遠隔制御するなどの操作が行われることが考えられます。

このブログの記事を作成している時点で、ThroughTekは、8,300万を超えるアクティブなデバイスが存在し、プラットフォーム上への月間接続は11億を超えていると公表しています。ThroughTekのクライアントには、IoTカメラ・メーカー、スマート・ベビー・モニターや、DVR (Digital Video Recorder) 製品が含まれています。2021年5月にNozomi Networksのリサーチャーが(CISAと連携して)発表した脆弱性とは異なり、この最新の脆弱性では、攻撃者はデバイスにリモートで通信することができます。その結果、さらなる攻撃では、攻撃者が侵害したデバイスを遠隔制御して遠隔コードを実行する危険性があります。

Kalayプロトコルは、クライアント・ソフトウェア(例えば、モバイルまたはデスクトップ・アプリケーション)やスマート・カメラなどのネットワーク化されたIoTデバイスに組み込まれたソフトウェア開発キット(SDK)として実装されます。今回発見された脆弱性は、消費者に機器が提供される前にOEM(Original Equipment Manufacturer)やリセラーによってKalayプロトコルがどのように製品に組み込まれるかに依存するため、Mandiantはこの脆弱性の影響を受ける製品や企業の完全なリストを発表することができません。

この脆弱性にはCVSS3.1基本スコア9.6が割り当てられ、CVE-2021-28372およびFEYE-2021-0020として追跡されます。このブログの記事では、KalayネットワークおよびCVE−2021−28372についてハイレベルで議論しています。また、ThroughTekおよびMandiantからの提案や緩和策も含まれます。

Mandiantは、CISAとThroughTekの両者に対し、このアドバイザリを公開する上での調整とサポートに感謝の意を表します。

FAQ

どのようなデバイスが影響を受け、(可能性として)何台のデバイスが影響を受けますか?

このポストに記載されている脆弱性は、Kalayプラットフォームのコア・コンポーネントに影響を及ぼします。Mandiantは、影響を受けるデバイスの包括的なリストを作成することはできませんでしたが、ThroughTekのウェブサイトは、このポストを作成している時点で、Kalayプラットフォーム上に8,300 万以上のアクティブ・デバイスがあると報告しています。

問題はどのように対処されていますか?

Mandiantは、ThroughTekおよびCISAと協力して、この脆弱性を開示し、ThroughTekとMandiantが提供するガイダンスに従ってKalayプラットフォームを使用している企業に以下を強く推奨しています。

  • 実装されたSDKのバージョンが3.1.10より古い場合、ライブラリをバージョン3.3.1.0またはバージョン3.4.2.0にアップグレードし、Kalayプラットフォームによって提供される AuthkeyおよびDatagram Transport Layer Security(DTLS)機能を有効にする
  • 実装されたSDKのバージョンが3.1.10以降の場合は、AuthkeyとDTLSを有効にする
  • Kalayの固有識別子(UID)を返すAPIまたは他のサービス上で、セキュリティ制御をレビューして適切に設定する

攻撃者は、これらの脆弱性をどのように悪用しますか?

攻撃者には、Kalayプロトコルと、メッセージを生成して送信する機能についての包括的な知識が必要となります。そのほか、ソーシャル・エンジニアリングや、Kalay UIDを返すAPIのサービスやその他のAPIの脆弱性を通じてKalay UIDを取得する知識も必要です。そのうえで攻撃者は、取得したUIDに対応して影響を受けるデバイスにリモートから不正アクセスすることができます。

所有しているデバイスが影響を受けているかどうかを確認するにはどうすればよいですか?影響を受けるデバイスを所有している場合、どうやって保護すればよいでしょう?

MandiantはKalayプラットフォームを使用しているデバイスの包括的なリストを作成することはできませんが、IoTデバイスのユーザーが、デバイス・ソフトウェアおよびアプリケーションを最新の状態に保ち、これらのデバイスに関連するアカウントに複雑かつ一意のパスワードを使用することを強く奨励します。

デバイスの所有者は、公共の無線ネットワークのような信頼できないネットワークにデバイスを接続して影響を受けることを避けるべきです。

この脆弱性を発見したのは誰ですか?

Jake Valletta、Erik Barzdukas、そして、Dillon Franke です。

CVE-2021-28372: デバイスのなりすまし

Mandiantのリサーチャーは、ふたつの異なるアプローチを用いてThroughTekのKalayプロトコルを分析しました。第1 に、リサーチャーは、ThroughTekライブラリを含むGoogle Play Storeおよび Apple App Storeからアプリケーションを選択的にダウンロードして分析しました。これらのライブラリには、通常デバッグ記号は含まれていません。そのため、チームはFridagdbWiresharkなどのツールを用いて動的解析を実行しました。

さらに、MandiantはさまざまなKalay対応機器を購入しました。チームは、シェル・アクセスの取得、ファームウェア・イメージの復元、および追加の動的テストを実行するために、ローカルおよびハードウェア・ベースの攻撃を実行しました。使用したテクニックには、UART/JTAGインターフェイスの識別、チップオフ攻撃の実行、デバイスに存在する他のデバッグ機能の利用などが含まれます。

数カ月の間、リサーチャーはThroughTekのKalayプロトコルの完全な機能実装を開発しました。これにより、チームは、デバイス検出、デバイス登録、リモート・クライアント接続、認証、そして最も重要な音声やビデオ(AV)データのプロセスなど、ネットワーク上で主要なアクションを実行できるようになりました。AVデータのプロセスと同様に重要な、Kalayプロトコルとしてリモート・プロシージャ・コール(RPC)機能も実装されました。この機能は、デバイスによって詳細は異なりますが、一般的には、デバイス遠隔測定、ファームウェア更新、およびデバイス制御のために使用されます。

Mandiantのリサーチャーは、Kalayリクエストとレスポンスを生成し操作するための柔軟なインターフェースを作成し、Kalayプロトコルにおけるロジックとフローの脆弱性の特定に焦点を当てました。この記事で取り上げた脆弱性は、Kalay対応デバイスがKalayネットワークにアクセスし、参加する方法に影響を与えます。リサーチャーは、デバイス登録プロセスがネットワークにアクセスするために必要とするのは、デバイスの20バイトの一意に割り当てられた識別子(ここではUIDと呼びます)だけであると判断しました。Mandiantのテストでは、このUIDは通常、デバイスモデルを上市、販売する企業がホストするWeb APIからKalay対応クライアント(モバイル・アプリケーションなど)に提供されていました。Mandiantは、ブルート・フォーシングするThroughTek UIDの実行の可能性を調査し、必要な時間とリソースが不足しているために実行が不可能であることを発見しました。

図1 は、Kalayネットワーク上の典型的なデバイス登録およびクライアント接続プロセスを示します。このシナリオでは、ユーザーが、リモート・ネットワーク(例えば、コーヒーショップや携帯電話のネットワーク)からモバイル・アプリケーションで自分のカメラ・フィードにリモートでアクセスし、自分のKalay対応カメラが自宅のネットワーク上に配置されています。


図1: 一般的なデバイス登録・接続処理

攻撃者が被害者の KalayデバイスのUIDを取得すると、ネットワーク上の同じUIDを持つデバイスを、悪意を持って登録し、Kalayサーバーに既存のKalayデバイスを上書きさせる可能性があります。ひとたび攻撃者が悪意を持ってUIDを登録すると、被害者UIDにアクセスしようとしたすべてのクライアント接続が攻撃者に転送されます。その後、攻撃者は接続プロセスを継続し、デバイスへのアクセスに必要な認証要素(ユーザー名とパスワード)を取得できます。図2は、被害者のデバイスと同じUIDを持つ悪意のあるデバイスの両方がネットワーク上に同時に存在する場合のクライアント接続攻撃の手順を示しています。この例では、悪意のある登録によってネットワーク上の既存の登録が上書きされ、クライアント接続が誤って悪意のあるデバイスにルーティングされます。


図2: 認証情報を取得するためにデバイス偽装の脆弱性を利用する攻撃者

侵害されたユーザー名とパスワードを使用すると、攻撃者はKalayネットワークを使用して、オリジナルのデバイスにリモートで接続し、AVデータにアクセスして、RPCコールを実行することができます。デバイスに実装されたRPCインターフェイスの脆弱性は、完全なリモートおよび完全なデバイス侵害につながる可能性があります。Mandiantは、Kalayデータを処理するIoTデバイス上のバイナリが、通常、特権ユーザーであるrootとして実行され、アドレス空間配置のランダム化(ASLR)、位置独立実行(PIE)、スタック・カナリア、およびNXビットのような一般的なバイナリ保護が欠けていることを確認しました。

図3は、キャプチャされた Kalayユーザー名とパスワードを使用して、Kalay RPCインターフェイスの脆弱性を悪用することによってさらなる攻撃を実行する、仮想的な攻撃を示しています。


図3: キャプチャされたユーザー名とパスワードを使用してAVデータを取得する攻撃者

以下のビデオ(図4)は、CVE-2021-28372 の概念実証の機能を示します。なお、Mandiantは公開エクスプロイト・コードをリリースしていません。

図4: CVE-2021-28372を利用して、装置のユーザー名、パスワードを盗む概念実証

緩和策および推奨案

MandiantおよびThroughTekは、Kalayプロトコルを使用している企業が少なくともバージョン3.1.10にアップグレードし、以下のKalay機能を有効にすることを強く推奨します。

  • 転送中のデータを保護するDTLS
  • クライアント接続時に追加認証レイヤーを追加するAuthKey

これらの機能を組み合わせることにより、CVE-2021-28372のリスクが低減され、攻撃者がKalayプロトコルを悪用することが防止されます。

ASLR、PIE、NX、およびスタック・カナリアなどの強化機能は、Kalayデータを処理するすべてのバイナリで有効にする必要があります。RPC機能は、信頼できないものとして扱い、適切に除去しなければなりません。

最後に、Mandiantは、IoTデバイスの製造企業がKalay UID、ユーザー名、パスワードを取得するために使用されるWeb APIに厳格な制御を適用して、攻撃者がリモートでデバイスにアクセスして機密情報を取得する危険性を最小限に抑えることを強く推奨します。有効なKalay UIDを返すWeb APIを保護できないと、攻撃者が多数のデバイスを危険にさらすことを許すことになります。

まとめ

CVE−2021−28372は、エンドユーザーのセキュリティおよびプライバシーに大きなリスクをもたらします。その脅威は適切に緩和されるべきです。保護されていないIoTカメラのような装置は、リモートからのUIDへのアクセスを可能にする危険性があり、デバイスから得られる情報を使ってさらなる攻撃の踏み台となる可能性があります。

MandiantはThroughTekおよびCISAの両者に対し、IoTデバイスをグローバルに保護するためのアドバイザリとコミットメントをリリースするにあたっての協力とサポートに感謝の意を表します。

 

本ブログは機械翻訳(MT)を使用して翻訳しています。原文と翻訳版の意味、文言が異なる場合は原文を有効とします。

原文:August 17, 2021 「Mandiant Discloses Critical Vulnerability Affecting Millions of IoT Devices