NoviGest Desktop Appに認証なしでOSコマンド実行の脆弱性
NoviGest Desktop Appに、認証なしで呼び出せる機能を経由してサーバー上のOSコマンドを実行されるおそれのある脆弱性が見つかりました。このアプリを社内で運用している組織が対象です。まず利用状況を洗い出してサービスに届く経路を絞り、修正版の有無をベンダーの告知で確認してください。
急ぎ度: 早めに
実際の攻撃は確認されていませんが、CVSS v4が9.4で、ネットワークから認証なしに到達できる点が重く、修正版の情報も確認できていないためです。
関係があるか
NoviGest Desktop Appを導入し、そのJava RMIサービスにネットワーク経由で到達できる環境が対象です。PostgreSQLを裏で使っている構成が前提になっています。
| 製品 | 影響を受ける版 | 直った版 |
|---|---|---|
| NoviGest Desktop App(Tactis) | 影響する版は未確認です。INCIBE-CERTの告知とベンダーの案内で確認してください。 | 修正版は未確認です。 |
確かめ方
- 1資産台帳や導入記録で、NoviGest Desktop Appを動かしているサーバーを洗い出します。
- 2そのサーバーでJavaのプロセスが待ち受けているポートを確認し、どのネットワークから届くかをファイアウォールやセグメント構成と照らし合わせます。
- 3導入している版を確認し、INCIBE-CERTの告知とベンダーの案内にある影響範囲と比べます。
何が起きたか
NoviGest Desktop Appのサーバー側に、認証を求めずに重要な機能を呼び出せる脆弱性があります。ネットワーク上でそのサービスに届く相手は、データベースの認証情報を取得し、最終的にサーバー上でOSコマンドを実行できてしまいます。
問題があるのは、アプリが提供するJava RMIのサービスです。認証なしでリモートメソッドを呼び出せるため、機密性の高い認証情報の取得と、PostgreSQLへの任意のSQL実行が可能になります。
さらに、データベースのアカウントが高い権限を持っているため、これらの操作をつなげてOSコマンドの実行まで進めます。その結果、サーバーの機密性、完全性、可用性がすべて損なわれます。
分類はCWE-306(重要な機能に対する認証の欠如)で、CVSS v4は9.4、深刻度はcriticalです。
攻撃の流れ
-
1
サービスへ到達
Java RMIサービスにネットワーク経由で届く位置に、攻撃者がいます。
-
2
認証なしで呼出
認証されないまま、サービスのリモートメソッドを呼び出します。
-
3
資格情報の入手
データベースへの接続に使う機密性の高い認証情報を取得します。
-
4
SQLの実行
取得した権限でPostgreSQLに任意のSQLを実行します。
-
5
OS操作へ拡大
アカウントの高い権限を足がかりに、サーバー上でOSコマンドを実行します。
どう悪用されるか
悪用に必要なのは、対象のJava RMIサービスにネットワークから届くことです。サービスの呼び出しに認証は要らず、利用者に何かを操作させる必要もありません。CVSS v4のベクターでは、攻撃条件の複雑さは低、事前の攻撃要件はなしと評価されています。なお、同じベクターの必要な権限は低(PR:L)と記録されており、ベンダー説明の「認証なし」とは表現が異なります。
うまくいくと、攻撃者はデータベースの認証情報を握り、データベース内の情報を読み書きできます。OSコマンドまで実行されれば、サーバー全体の乗っ取りにつながります。CVSS v4では、機密性・完全性・可用性のすべてで影響が高いと評価されており、連携する別システムへの影響も高いとされています。
今すぐやること
-
1
利用しているサーバーを洗い出す
NoviGest Desktop Appが動いているサーバーと、そこへ接続できるネットワークの範囲を確認します。
ss -tlnp | grep java -
2
サービスに届く経路を絞る
修正版の確認より先に、RMIサービスへ接続できる範囲を業務上必要な端末だけに限定します。インターネットから届く状態であれば、真っ先に遮断してください。
-
3
ベンダーの告知で修正版を確認する
INCIBE-CERTの告知とTactisの案内を見て、影響する版と修正版、個別の対処手順を確認します。
-
4
修正版に更新する
修正版が出ていれば、検証環境で動作を確かめたうえで本番に適用します。
-
5
ログと権限を点検する
対象サーバーとPostgreSQLの接続ログに、心当たりのない接続やSQL、OSコマンドの実行がないかを確認します。あわせて、データベースのアカウントに過剰な権限がないかも見直します。
すぐ更新できないとき
修正版をすぐに当てられない場合は、ファイアウォールなどでRMIサービスへの接続元を必要な端末に限り、それ以外からは届かないようにします。同じネットワークに置かれた他の端末が踏み台になることも考え、サーバーを業務用のセグメントから分けておくと安全です。データベースのアカウント権限を下げられるなら、OSコマンドへ進める余地を狭められます。ただし、アプリが動かなくなるおそれがあるため、事前に検証してください。
背景
Java RMIは、あるプログラムが別のサーバー上のプログラムのメソッドを、ネットワーク越しに自分のもののように呼び出せる仕組みです。便利な反面、呼び出す側を確かめる処理はアプリが自分で用意する必要があります。今回はその処理が重要な機能に欠けていたため、サービスに届く相手なら誰でも使える状態でした。
もう一つの要因は、アプリが使うPostgreSQLのアカウントの権限が高いことです。データベースで高い権限を持つアカウントは、条件がそろえばOSの操作にまで手が届くことが知られています。SQLを実行できるだけの脆弱性が、サーバー全体の問題に広がったのはこのためです。
よくある質問
Q.INCIBE-CERTの告知は「複数の脆弱性」という題ですが、この件だけ対応すればよいですか。
Q.認証情報を取得されたおそれがあるときは、何を替えるべきですか。
まだ分かっていないこと
- 影響する版と修正版は、現時点で確認できていません。Tactisの案内とINCIBE-CERTの告知で確認してください。
- 実際の攻撃で悪用されたかどうかは分かっていません。
- RMIサービスが標準でどのポートで待ち受け、どの範囲に公開される構成なのかは分かっていません。
この記事は、取得元の公開情報をもとに生成 AI で作成しています。誤りを含むことがあります。対応を決める前に、下の原文と参照先を確認してください。
影響パッケージ
| 種類 | パッケージ | 影響を受ける版 | 直った版 |
|---|---|---|---|
| Tactis | NoviGest Desktop App | — | — |
原文の説明 取得元が公開している説明をそのまま載せています (多くは英語)。
Vulnerability due to a lack of authentication in critical functions of the NoviGest Desktop App's Java RMI service. An attacker with network access to the service can invoke remote methods without authentication, obtain sensitive credentials, and execute arbitrary SQL queries on PostgreSQL. The elevated privileges of the database account allow these capabilities to be chained together to execute operating system commands on the server, compromising its confidentiality, integrity, and availability.
出典: CVE.org (CVE Program・cvelistV5) NVD GitHub Advisory
参照URL
- web cve-coordination@incibe.es
- web nvd.nist.gov
- web github.com