Nozomi Networks Labs チームは、Bosch Rexroth 社から CtrlX HMI WR21 というブランド名でも販売されているアドバンテックの TPC-110W HMI に発見された一連の脆弱性を調査し、公開しました。これらの脆弱性は、CVSSスコア7.3から8.8までの深刻度を持ち、このHMIを完全に侵害する可能性があります。以下に説明する脆弱性が連鎖すると、マルウェアのインストール、HMI のシャットダウン、または施設内の他のシステムやネットワークに到達するためのインターフェースとしてデバイスを使用するなどの禁止された機能へのアクセスを脅威行為者に許し、複数のセクターにわたっていくつかの現実世界に影響を及ぼします。
この機器の一部を悪用し、危険にさらすだけでなく、セキュリティ上の欠陥により、悪意のある脅威者がHMIのオペレーティングシステム上で任意のコードを実行し、ネットワークの他の部分にアクセスすることが可能になります。このブログでは、従来型とウェブベースの両方のHMIについて簡単に紹介した後、アドバンテックのTPC-110Wに関する詳細について説明します。また、調査中に発見された9つの脆弱性とその影響、攻撃シナリオ、推奨される緩和策についても説明します。
アドバンテックは、ボッシュ・レックスロスの支援を受けて、報告されたすべての脆弱性に対処し、特定のファームウェア・リリースでパッチを適用しました。
HMIとは何か?
ヒューマンマシンインターフェース(HMI)とは、産業用オートメーションや制御システムで使用される特殊なコンポーネント(ハードウェアまたはソフトウェア・インターフェースのいずれか)で、人間と機械の間のコミュニケーションを円滑にする。特に製造業やプロセス制御環境で使用される。HMIは、オペレータやエンジニアにリアルタイムのデータ、制御、監視機能を提供し、コントローラ、機器、機械、およびプロセスとの対話と管理を可能にするように設計されています。産業用HMIの主な機能には通常、データの可視化、プロセス制御、データ収集、アラーム通知などがあります。HMIデバイスは通常、重要な設備に幅広く設置され、一度に多くの作業員が物理的にアクセスできるようになっています。
多くの新しいHMIは、実装、保守、開発が容易なブラウザベースのインタフェースを提供している。しかし、この種の HMI のセキュリティ態勢は、一連のセキュリティ設定の実装を通じて採用されなければならない。これらのセキュリティ構成は、一般的にキオスク・モードを通じて実施され、HMI と対話するユーザが、設定の変更やHMI 自体のシャットダウンなど、禁止された操作を実行することを防ぎます。
アドバンテックTPC-110W HMI
ボッシュ・レックスロスからctrlX HMI WR21というブランド名でも販売されているアドバンテックのTPC-110W HMIデバイスは、リモートシステムを監視し、対話するためのブラウザベースのグラフィカル・インターフェースを提供します。このフル機能のWebブラウザは、Webベースの通信(HTTPまたはWebソケット)を介して到達するように設計され、ユーザーが利用できる主なインタフェースです。
このHMIはAndroidベースのデバイスで、Chromiumウェブブラウザと設定可能なキオスクモードアプリケーションがプリインストールされています。このキオスクモードの設定は、HMI の設定変更、システムのシャットダウン、追加アプリケーションのインストールなど、管理者のみがアクセスできる権限を分離するのに役立ちます。ユーザーマニュアルで説明されているように、HMIは、デバイスに新しい機能を追加するために、サードパーティのAndroidアプリケーションのインストールをサポートしています。
図2と図3はそれぞれ、キオスク・モードから出るために必要なパスワード設定と、Chromiumブラウザをメイン・グラフィカル・インターフェースとして起動するために提供される設定メニューを示している。
アドバンテックのTPC-110W HMIは、リモートコントロールできるように設計されています。この機能は、オペレーティングシステムにプリインストールされたAndroid Agent(パッケージ名com.adv.client)という特定のAndroidアプリケーションで実装されています。このアプリケーションは高い権限で実行され、リモート管理者は、デバッグインターフェイスの有効化やVNCを介したリモートログイン、アプリケーションのインストールや削除など、デバイス上で特定の操作を実行することができます。
Androidエージェントアプリケーションは、ユーザーがサーバーを指定して接続を確立し、管理者がリモートでHMIの操作を実行できるようにする必要があります。サーバー側のインフラは、AppHubと呼ばれるクラウドベースのサービスを通じてアドバンテックから提供されます。AppHubサーバー設定は、3つの異なるモードで設定することができます:
- 手動でサーバーを指定する
- 設定ファイルのインポート
- QRコードの読み取り
Android AgentアプリケーションとAppHubサーバー間の接続が確立されると、リモート管理者はクラウドベースのアドバンテックサービスを通じてHMIデバイスを管理することができます。AppHubの公式ドキュメントに記載されているように、Android Agentアプリケーションは一般にダウンロード可能です。
図4はAndroid Agentアプリケーションのメインインターフェイス、図5はクラウドベースのAppHubデバイス管理インターフェイスである。Android Agentアプリケーションは、高レベルの権限とHMIをリモート制御する機能を提供するため、このソフトウェアレイヤーは、研究と分析を行う上で魅力的なアクセスベクトルとなります。
アドバンテックTPC-110Wの脆弱性
Nozomi Networks 研究フェーズでは、プリインストールされたAndroid Agentアプリケーション(バージョン2122.fe0bc0f.20220125)と共に出荷されたアドバンテックのTPC-110W HMIデバイス(QQ3A.200805.001 )で利用可能な最新のAndroidビルドを分析しました。
以下は、Nozomi Networks Labs が発見した高リスクの脆弱性全9件のリストです。
ハイリスク
- CVE-2023-45844不適切なアクセス制御 (CWE-284)、CVSS v3.1 基本スコア 7.3 (CVSS:3.1/AV:P/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H)
- CVE-2023-41255不正な認証 (CWE-862), CVSS v3.1 ベーススコア 7.9 (CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:L/I:H/A:L)
- CVE-2023-43488CVSS v3.1 基本スコア 8.8 (CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H) 重要な機能の認証の欠落 (CWE-306)
- CVE-2023-41960Android アプリケーションコンポーネントの不適切なエクスポート (CWE-926), CVSS v3.1 ベーススコア 7.1 (CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H)
- CVE-2023-41372ハードコードされた認証情報の使用 (CWE-798)、CVSS v3.1 基本スコア 7.8 (CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H)
- CVE-2023-45220CVSS v3.1 基本スコア 8.8 (CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H) 重要な機能の認証の欠落 (CWE-306)
- CVE-2023-45321機密情報の平文送信(CWE-319)、CVSS v3.1 基本スコア 8.3(CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:L)
- CVE-2023-45851重要な機能のための認証の欠落 (CWE-306)、CVSS v3.1 基本スコア 8.8 (VSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)
- CVE-2023-46102: ハードコードされた認証情報の使用 (CWE-798), CVSS v3.1 Base Score 8.8 (VSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)
影響と攻撃シナリオ
前述のように、アドバンテックのTPC-110W HMIデバイスは、複数のユーザーが物理的にアクセスできるように設計されており、キオスク・モードを通じて安全に設定されたChromiumウェブ・ブラウザをメイン・グラフィカル・インターフェースとして提供します。
この設定を有効にすると、HMI に物理的にアクセスできる悪意のあるユーザーが、上記の脆弱性を悪用し、Chromium ブラウザー・インターフェース内のキオスク・モードをバイパスして、HMI デバイスにフルアクセスできるようになります。これにより攻撃者は、マルウェアのインストール、HMI のシャットダウン、施設内の他のシステムやネットワークにアクセスするためのインターフェイスとしてのデバイスの使用など、禁止されている機能へのアクセスが可能になります。
オペレーティングシステムへの攻撃
特定の脆弱性を連鎖させることで、Chromiumブラウザと相互作用するHMIデバイスを侵害する2つの異なる方法を定義することが可能です。両方のパスのルートは、Chromium ブラウザに影響する不適切なアクセス制御の脆弱性である CVE-2023-45844 です。キオスクモードの設定にもかかわらず、この脆弱性を利用することで、悪意のあるユーザーは、Chromiumブラウザ自体を悪用して、外部の攻撃者が制御するアプリケーションをHMIにインストールし、オペレーティングシステム上で任意のコードを実行する能力を得ることができます。図6に、例としてChromiumを介したアプリケーションのインストールを示します。
アドバンテックのTPC-110W HMIはAndroidベースのデバイスであるため、Androidのセキュリティモデルでは、サードパーティのアプリケーションはシステム上で低い権限でしか実行できない(アプリケーション・サンドボックス)ため、システムを完全に侵害するには十分ではありません。ここで、他の脆弱性が登場します。
最初の悪用経路は、HMIデバイスにインストールされたカスタマイズされたAndroidオペレーティングシステムの脆弱な設定に関連する2つの脆弱性、具体的にはCVE-2023-41255とCVE-2023-43488を利用します。CVE-2023-41255は、SELinuxと呼ばれるAndroidセキュリティモデルの重要なコンポーネントの1つが無効化されていることから生じる、不適切な権限付与の脆弱性です。これにより、低権限で実行されているサードパーティのインストールされたアプリケーションが、セキュリティに関連するシステム設定を変更できるようになります。
つ目のCVEであるCVE-2023-43488は、HMI上のAndroidデバッグインターフェース(ADB)サービスに関連するMissing Authentication For Critical Functionの脆弱性です。この機能は、Android ベースのデバイスの標準機能であり、管理者ユーザーがシステムに接続して保守作業を行うことを可能にします。アドバンテックのTPC-110W HMIデバイスでは、ADBデバッグインターフェイスは、認証を強制することなく、それに接続する(rootユーザーでログインする)管理者に最大権限を与えるように設定されており、この機能を攻撃者に安全に公開します。Androidオペレーティングシステムは通常、USBケーブルを物理的に接続するだけで、ADBデバッグ・インターフェースと対話することができますが、特定のシステム・セキュリティ設定を変更することで、この制限を解除することができます。
CVE-2023-45844、CVE-2023-41255、CVE-2023-43488を連鎖させることで、深刻な悪用の欠陥が得られました:
- 攻撃者は、キオスクモードで設定されたChromiumブラウザ(CVE-2023-45844)を悪用して、オペレーティングシステム上に悪意のあるアプリケーションをインストールします。
- SELinuxが適用されないため、悪意のあるアプリケーションは新しいシステム設定を適用し、ADBデバッグインターフェースをネットワーク上に公開する(CVE-2023-41255)。
- クレデンシャル認証がないため、攻撃者は USB ケーブルを物理的に差し込むことなく(通常、デバイスをアンマウントしなければ不可能)、ネットワーク経由で ADB サービスに接続できるようになります。これにより、デバイス上の root ユーザーにアクセスできる任意のユーザーの特権昇格が可能になります(CVE-2023-43488)。
これらのステップを完了すると、攻撃者はHMIデバイスへのフルアクセスが可能になります。
アンドロイド・エージェント・システム・アプリケーションへの攻撃
2つ目の悪用経路は、アドバンテックが開発したAndroidエージェントシステムアプリケーション(Nozomi Networks Labs)に存在する複数の脆弱性を悪用し、AppHubと呼ばれる同社のクラウドベースのプラットフォームを通じてTPC-110W HMIのリモート管理を可能にするものです。
Android Agent アプリケーションは、認証なしで設定データの変更を許可する機能を公開しており、その結果、Android アプリケーションコンポーネントの不適切なエクスポート (Improper Export of Android Application Components) の脆弱性 (CVE-2023-41960) が生じます。
コンフィギュレーション・データは、アンドロイド・インテント(アンドロイド固有の通信メカニズム)を通じてアンドロイド・エージェント・アプリケーションによって受信されるが、そのペイロードを定期的に処理するためには、特定のキーで暗号化する必要がある。私たちの分析により、この暗号化キーがアプリケーション自体にハードコードされていることが判明しました(一般にダウンロード可能)。このため、攻撃者はこの暗号鍵をダウンロードし、Android Agent アプリケーションに送信される悪意のある Android Intent を偽造することができます。これにより、Android Agentアプリケーションの設定が不正に変更されます。この脆弱性は、CVE-2023-41372(Use of Hard-coded Credentials)として報告しました。
悪用プロセスの最後の部分は、AndroidエージェントアプリケーションとアドバンテックのAppHubクラウドサービス間の通信に関連しています。上記で説明したように、クラウドサービスとの適切な通信を設定するために、ユーザーはAppHubサーバーのIPアドレスを指定する必要があります。クライアントとサーバー間の通信を分析することで、私たちのチームはいくつかの脆弱性を発見しました:
- クライアントとサーバーの通信はMQTTプロトコルに基づいているが、MQTTSは強制されていない。
- AppHubサーバーは、暗号化されたMQTTメッセージを介してAndroidエージェントアプリケーションに実行するコマンドを送信することができますが、暗号化キーはAndroidエージェントアプリケーション自体で取得可能です。
MQTTの代わりにMQTTSが採用されていないため、クライアントのAndroidエージェントアプリケーションはAppHubサービスを認証することができず、ユーザーが提供したアドレスを信頼できるサーバーとして受け入れることができません。さらに、交換されたメッセージを暗号化するためにハードコードされたキーを使用することで、攻撃者は、Androidエージェントアプリケーションによって処理される有効なコマンドを偽造するためにキーを取得し、活用することができます。これらのフローは、CVE-2023-45220 (Missing Authentication For Critical Function) および CVE-2023-46102 (Use of Hard-coded Credentials) として報告されています。
これらすべての脆弱性を連鎖させることで、Android Agent アプリケーション、ひいては TPC-110W HMI デバイスを侵害することが可能となり、管理者権限を持たない複数のユーザーに対して安全であることを意図したキオスクモードで設定された Chromium ブラウザを通じて、高権限コマンドを任意に実行させることができます。要約すると、上記で詳述した連鎖する脆弱性と悪用は以下の通りです:
- 攻撃者は、OS上に悪意のあるアプリケーションをインストールし、キオスクモード(CVE-2023-45844)によってロックされたChromiumブラウザを悪用します。
- インストールされた悪意のあるアプリケーションは、Android Agentアプリケーションの設定を変更し、信頼できるAppHubサーバーの代わりに攻撃者が管理するIPアドレスサーバーを指定して、Android Intentを偽造して送信します(CVE-2023-41960およびCVE-2023-41372)。
- 悪意のあるAndroid Intentの受信後、Android Agentアプリケーションは攻撃者が管理するサーバーに接続し、適切な認証メカニズムがないため、有効な接続を設定します(CVE-2023-45220)。
- 攻撃者は暗号化されたメッセージを偽造し、制御されたサーバーから Android Agent アプリケーションに送信することで、HMI デバイス上で特権的な操作を実行します(CVE-2023-46102)。
図7は、Androidエージェント・アプリケーションを通じてTPC-110W HMIデバイスを侵害するまでの悪用フローを示しています。その結果、攻撃者は、デバイス上でADBデバッグ・インタフェースを有効にする、VNCリモート・プロトコルを有効にしてデバイスにアクセスする、アプリケーションをインストールおよび削除する、最終的に管理者またはrootユーザーといった高い権限で任意のシェル・コマンドを実行するなど、Androidエージェント・アプリケーションに実装されているすべての機能を悪用することができます。
推奨される緩和策
ボッシュ・レックスロスは、脆弱性のリスト、影響を受ける製品、関連するファームウェアの バージョンを記載した公式セキュリティ勧告を 発表した。顧客および資産所有者は、使用中の HMI 機器への不正アクセスや悪用を防止するため、公式アドバイザリに記載されている指示に従って機器のアップグレードを行う必要があります。
HMI は、産業環境において魅力的なターゲットであり、産業ネットワークの相互接続性と、不正アクセス、データ侵害、マルウェアやウイルス、サービス拒否攻撃、物理的セキュリティなどの侵害に伴う潜在的なリスクのために、研究にとってますます重要なコンポーネントとなっています。ボッシュ・レックスロスの公式セキュリティ勧告に記載されている推奨される改善策に従うよう、顧客および資産所有者に強く求めます。