Skip to content

新たな脅威、VPN機器のゼロデイ脆弱性とその対策

昨年12月に投稿した「緊急警告: 続発するVPN機器とネットワーク機器における深刻な脆弱性とその対策」において、VPN機器とネットワーク機器Web管理インタフェースにおける脆弱性の悪用は今後も続く恐れがあると記載しましたが、年明け早々の1月10日、Ivanti Connect SecureおよびIvanti Policy Secureにおけるゼロデイ脆弱性が公表されました。この脆弱性は公表時点で悪用が確認されていましたが、さらに翌日に大規模な悪用が発生しているという情報もあります。Ivantiというと耳慣れないかもしれませんが、Pulse Secure というとピンとくる人が多いと思います。日本でのシェアも高いVPN製品です。Pulse Secure は、Ivantiに買収され製品名がIvanti Connect Secureに変わっていますので、注意が必要です。

脆弱性の概要と悪用状況

1月10日(現地時間)にIvanti社から公表された脆弱性は以下の2件です。

CVE-2023-46805:Webコンポーネントにおける認証バイパスの脆弱性
制御チェックをバイパスして制限されたリソースにアクセスすることが可能な脆弱性
CVSS Base Score: 8.2 (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:N)


CVE-2024-21887:Webコンポーネントにおけるコマンドインジェクションの脆弱性
認証された管理者が細工したリクエストを送信することによって、機器上で任意のコマンドを実行することが可能な脆弱性
CVSS Base Score: 9.1 (AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H)

 

コマンドインジェクションの脆弱性は悪用に管理者権限の認証が必要ですが、認証バイパスの脆弱性と組み合わせることで、認証を回避して悪用することが可能となります。つまり、両者を組み合わせることで、リモートから認証不要で任意のコマンドが実行できる極めて危険な脆弱性です。
脆弱性の影響を受ける製品はIvanti Connect Secure (旧名 Pulse Connect Secure) および Ivanti Policy Secureのサポートされているすべてのバージョンです。なお、サポート終了バージョンの影響は評価されていないため、影響を受けないと断言できません。むしろ影響を受ける可能性が高いと考えるべきです。

 

脆弱性の悪用に関する情報ですが、1月10日に公表されたIvanti社のアドバイザリーでは限定的な悪用が確認されているとのことでした。ところが、1月15日に他のセキュリティーベンダーから脆弱性の悪用は2023年12月には観測され、1月11日には広範囲な悪用が発生しているとの情報が公表されました。悪用は世界中に広がっており、被害は中小企業から大企業や政府機関まで様々な企業・組織に及んでいるとのことです。実際、JPCERT/CCは1月15日に本脆弱性を悪用したとみられる攻撃が国内組織に対しても行われた可能性があることを確認していると注意喚起を行なっています。

本脆弱性の対応には侵害有無の調査が必須

Ivanti社は1月10日に緩和策をリリースしていますが、脆弱性を修正したバージョンの提供は1月22日週から2月19日週にかけて順次リリースするとのことです。ただし、1月26日に1月22日週のリリースは遅れるとアナウンスがありました。また、Ivanti社は緩和策のリリースと同時に、侵害有無を検出する整合性チェックツール(Integrity Checker Tool)を提供し実行を推奨しています。加えて、1月16日に脆弱性を悪用する攻撃の被害を受けた場合の復旧手順に関する情報を公開しています。
本脆弱性については、緩和策を速やかに適用した場合でも、既に侵害を受けている可能性があるため、整合性チェックの実施が必須です。侵害を受けてしまうと脆弱性を塞ぐだけでは攻撃者が侵害活動を継続できてしまいます。侵害を検出する方法、侵害が疑われる場合の対応方法、復旧方法などに関する情報はIvanti社から提供されていますので、最新の情報をご確認の上、調査や対応を実施下さい。


攻撃のステップ

セキュリティベンダーが分析した攻撃のステップによると、攻撃者は脆弱性を悪用しWebシェルを設置し、コマンドの実行や攻撃ツールの投下、認証情報の窃取、通信の傍受など、様々な活動を試みるとのことです。この最初のステップであるWebシェルの設置ですが、Webシェルについて理解することは対策の実施において重要であるため詳しく説明します。Webシェルは、Webブラウザを介してリモートからサーバ上でコマンドを実行できるようにするスクリプトやプログラムです。

image1-3

 

Webシェルは、PHP、Perl、Python、Rubyなどのスクリプト言語で書かれており、Webサーバ上に配置されます。これによってリモートからのHTTP/HTTPSリクエストを介してサーバ上でコマンドを実行することが可能になります。技術的には検索ページ等で用いられているCGIと同じで、https://example.com/mywebshell?a=1234 のようなリクエストでWebシェルに指示を出します。(a=1234が指示にあたります)
ただし、スクリプトをWebサーバに置いただけではWebシェルを外部から実行することはできません。URLとスクリプトを対応させる設定を行う必要があります。具体的にはWebサーバの設定ファイル(httpd.conf等)に、特定のURLが該当のスクリプトにリダイレクトされる記述(詳細下記)を追加します。そして、設定を反映させるためにはWebサーバを再起動する必要があります。

 

<設定の記述例>
'/mywebshell' がリクエストされた場合に 'webshell.php' を実行する設定
Alias /mywebshell "/usr/local/apache2/htdocs/webshell/webshell.php"

 

推測含みですが、攻撃ステップは以下の図のようではないかと思われます。

image3-4

 

Webシェルを設置するには脆弱性の悪用が必要ですが、Webシェルを設置すれば脆弱性の悪用は不要で継続的に侵害活動を行うことが可能です。そして、ポイントは以下の二点です。

1.スクリプトのダウンロード(図の②)はアウトバウンドの通信
アウトバウンドの通信を必要最小限に制御することでスクリプトのダウンロードを阻止できる可能性あり

2.Webシェルへの通信はインバウンドの通信
VPNの通常通信と通信の種類や方向が同じであり通信制御や検知が難しい


VPN機器におけるゼロデイ脆弱性への対策

VPN機器におけるゼロデイ脆弱性や脆弱性公表後すぐに悪用が発生する状況は今後も継続する恐れがあり、以下のような対策が必要です。

1.脆弱性情報のタイムリーな収集
JPCERT/CCの注意喚起やIPAの重要なセキュリティ情報に加え、米CISAのKEV(Known Exploited Vulnerabilities Catalog)を定期的にチェック

2.脆弱性への迅速な対応と侵害有無の確認
バージョンアップ等の対応を3日前後で実施できたり、侵害有無の確認を実施できる保守契約やメンテナンス体制としたり、テスト機や予備機の準備

3.Web管理インタフェースの非公開やアクセス制御の実施

4.脆弱性が悪用されたり侵害されたりすることを前提とした対策

侵入口となり得る機器とインターネットや内部ネットワークとのアクセス制御やこれらの機器のログの定期的チェック

中でもより重要になってくるのが、4の脆弱性が悪用されたり侵害されたりすることを前提とした対策ですが、例えば、前述の攻撃ステップを踏まえると下図のような対策があげられます。

image2-4

 

VPN機器の脆弱性は、これまで経験したことがない次元に入っているように感じています。タイムリーな情報収集と迅速な対応に加え、脆弱性が悪用されたり侵害されたりすることを前提とした対策を可能なところから順次実施されることを検討ください。


<参考URL>
Ivanti Connect SecureおよびIvanti Policy Secureの脆弱性(CVE-2023-46805およびCVE-2024-21887)に関する注意喚起(JPCERT/CC)
https://www.jpcert.or.jp/at/2024/at240002.html

 

 


コンサルタント、フリーライター。
三菱UFJ銀行で12年間サイバーセキュリティに従事し、その後、Transmit Security 日本支社共同代表を経て独立。現在はサイバーセキュリティに関するコンサルティングやアドバイザー業務を行うとともに、国土交通省最高セキュリティアドバイザーや日本シーサート協議会専門委員、⾦融ISAC個⼈賛助会員として活動している。