- 2023/12/19
- 脅威分析レポート
【脅威分析レポート】CitrixBleedの脆弱性(CVE-2023-4966)に関する分析
Post by : Cybereason Global SOC Team
サイバーリーズンでは、新たな脅威に関する情報をお客様に提供するために、脅威分析レポートを発行しています。今回の脅威分析レポートは、Citrix製品における重大な脆弱性である「CitrixBleed」(CVE-2023-4996)に関するものです。新たな脅威に関する情報をまとめた上で、それらの脅威から身を守るための実践的な推奨事項を提供します。
Citrix ADCおよびCitrix Gatewayの脆弱性(CVE-2023-4966)に関する注意喚起
https://www.jpcert.or.jp/at/2023/at230026.html
Citrix ADC および Citrix Gateway の脆弱性について (CVE-2023-4966 等)
https://www.ipa.go.jp/security/security-alert/2023/alert20231023-2.html
現在の状況
Cybereason Security Servicesは、NetScaler ADC(旧Citrix ADC)およびCitrix Gateways(VPN仮想サーバー、ICAプロキシ、CVPN、またはRDPプロキシ)に存在する重大な脆弱性を悪用したインシデントを調査しています。CitrixBleedとして知られるこの脆弱性は、CVE-2023-4966として追跡されており、そのCVSSスコアは9.4と極めて深刻度の高いものとなっています。
この脆弱性を悪用することにより、攻撃者は、サイズの大きなHTTP GETリクエストをADC/Gatewayに送信できるようになり、その結果、バッファオーバーリードエラーを引き起こすことが可能となります。このエラーにより、Gateway上のシステムメモリが公開されます。公開されるメモリの内容は、エラーが発生するたびに同じものとなります。このメモリには、ユーザーのMFA認証セッション情報が含まれている可能性があります。このセッション情報を使うことで、攻撃者は、ユーザーのセッションを乗っ取り、既知のユーザーとして活動が行えるようになります。
■影響
CitrixBleed脆弱性を突くことで、攻撃者は、MFAおよびパスワード認証を回避できるようになるほか、防御を回避した上で、正規ユーザーのコンテキストで環境を悪用できるようになります。
▲CitrixBleedの悪用パターン
主な調査結果
このセクションでは、CitrixBleed脆弱性に起因するインシデントの調査から得られた主な結果を紹介します。
- 初期アクセス – セッション乗っ取り:未知のIPアドレス(内部または外部)により開始された有効なユーザーセッションとして認識されます。
- 認証情報へのアクセス:ブラウザ(Firefox、Chrome、Internet Explorer)に含まれていたユーザーの認証情報がダンプされました。攻撃者は、複数のターゲットからパスワードを抽出しようとする可能性があります。
- 偵察:攻撃者はNetScalerゲートウェイ認証プロセスを実装しているサーバーを標的にします。環境をスキャンしてネットワークターゲットを列挙します。また、Powershellを使用して、過去30日間にディスクに書き込まれたすべてのテキスト、PDF、Word文書、Excelファイルを検索します。さらに、Windows Management Instrumentation(WMI)を使用して、接続されているストレージを検索するほか、nltestとdnsdumpを使用してActive Directoryドメインを照会します。
- ラテラルムーブメント:攻撃者は、ネットワーク共有(net use)と組み込み型のユーティリティであるpushdを使用して、他のサーバーにRMMツールをインストールします。
- データ流出:RMMツールをインストールした後、企業のクラウドストレージに含まれている機密データを攻撃者が管理するクラウドストレージへとエクスポートできます。
- 権限昇格 – ドメインコントローラーからNTDS.DITを抽出:Githubのraw URL経由でZero-Logon.ps1を実行することで、ドメイン管理者への権限昇格を試みます(観測されたケースでは、これはCybereason Defense Platformによりブロックされました)。その後、ドメインコントローラーからNTDS.DIT※を抽出する手順を開始します。
- 複数のRMMツールを導入:攻撃者は、複数のRMMツール(AnyDesk、Atera、Splashtop、ConnectWiseなど)を使用しています。
- 「トロイの木馬」の亜種であるTedyおよびBoigyを導入:署名なしの.dllと署名なしの.exeは、公開されているマルウェアおよび脅威インテリジェンスのシグネチャと一致しませんでしたが、それらの実行は、Cybereasonの亜種実行防止機能(VPP)により認識されました。
- ポストエクスプロイト活動はCybereasonにより検知:Cybereason Defense Platformを使うことで、このようなタイプのラテラルムーブメントやエクスプロイト活動を検知できるようになります。
※NTDS.DITは、Active Directoryのデータベースに相当するものです。これには、ユーザーのパスワードハッシュを含む、すべてのADオブジェクトなどに関する機密情報が含まれています。
CitrixBleed脆弱性(CVE-2023-4966)
CitrixBleed脆弱性を突くことで、認証を受けていない攻撃者は、脆弱なCitrix ADCまたはCitrix Gatewayのシステムメモリを取得した上で、MFA認証を受けたユーザーセッションを乗っ取ることが可能となります。この脆弱性は、2014年に公開されたHeartBleed(CVE-2014-0160)脆弱性と非常によく似ています。
HeartBeat脆弱性は、OpenSSLに影響を与えるものであり、この脆弱性を突くことで、攻撃者は、対象となるSSL/TLSスタックからデータを漏洩させることが可能となります。
この脆弱性を悪用する攻撃のソースは、下記のURLに由来しています。
https://
このURLから、NetScaler Gateway上のOpenID設定の詳細にアクセスできます。このデータは匿名で取得できます。これには機密性のないデータのみが含まれているためです。
NetScaler Gatewayは、上記のURLのHTTP GETリクエストを処理する際、ns_aaa_oauth_send_openid_config関数を使用します。この関数の内部では、snprintf関数を使用して、リクエストを行うホストのメタデータ(同ホストのヘッダーに含まれているホスト名を含む)を抽出した後、このリクエストを行ったホストへのGatewayによる応答内の特定ポイントに、このホスト名を挿入します。
ここで、snprintfの戻り値がns_vpn_send_response関数経由でリクエストを行ったホストに送信されることが理由で問題が発生します。snprintf関数はデータを書き込む際の安全な境界チェック機能を備えていますが、その戻り値が別の関数で使用される場合の境界チェック機能は備えていません。
関数ns_vpn_send_responseはsnprintfの戻り値をホストに送信します。snprintfの戻り値には、バッファにより制限されるメモリ量ではなく、この関数のバッファであるprint_temp_ruleに書き込まれたメモリ量が含まれています。
CitrixBleed脆弱性を悪用する場合、攻撃者は、バッファオーバーリードエラーを引き起こすような長大なホスト名(hostname=a*50000など)を含むHTTP GETリクエストを送信します。すると、ns_vpn_send_responseは、バッファに書き込まれたサイズに基づいて過剰なデータを送信します。
バッファ変数print_temp_ruleは静的かつグローバルに割り当てられているため、常にメモリ上の同じ場所に存在します。このため、CitrixBleedが悪用された際に返されるメモリは、常にprint_temp_ruleの静的なメモリ位置の直後に存在するメモリ位置となります。
セッションクッキーは/oauth/idp/.well-known/openid-configurationではなく、バッファprint_temp_ruleに隣接する場所に保存されています。このエクスプロイトによりセッションクッキーを取得できるようになった場合、影響を受けるデバイスに対して同エクスプロイトを実行するたびに、セッションクッキーが返されることになります。
最終的に、攻撃者は、この脆弱性を悪用してCitrix Netscalerのメモリからランダムなセッションクッキーを漏洩させ、そのセッションクッキーを再生することにより、正規のユーザーセッションになりすますことが可能となります。
分析
このセクションでは、CitrixBleed脆弱性が脅威アクターによる被害者のネットワーク環境への侵入口として機能した、最近のインシデントの分析を紹介します。
Citrixテクノロジーの概要:
この攻撃の標的は、Citrix社の製品であるNetScaler ADCとNetScaler Gatewayアプライアンスです。
ユーザーが企業ファイアウォールの外部から接続する場合、同ユーザーはNetScaler Gateway経由で認証を行います。XenApp(Citrix Virtual Apps)/XenDesktopは、Citrix NetScaler Gateway(旧Access Gateway)テクノロジーを使用して、これらの接続をTLSで保護します。また、NetScaler ADC / NetScaler Gatewayはプロビジョニングサービスも提供します。
認証に成功すると、ユーザーはNetScaler Gateway認証メカニズムを実装しているサーバー(XenApp(Citrix Virtual Apps)/XenDesktop Webサーバー、ファイルサーバーなど)に接続できるようになります。Citrix NetScaler Gatewayは通常、DMZゾーンに配置されています。
▲Netscaler Gatewayの導入例
攻撃の概要
CitrixBleed POC(CVE-2023-4966)によると、この攻撃は、GETリクエストのヘッダ(Hostフィールド)をオーバーフローさせることで、システムメモリの内容をダンプさせるとのことです。ダンプされる内容にはNetScalerのセッションクッキーが含まれる可能性があります。有効なセッションクッキーを入手した脅威アクターは、NetScalerアプライアンスとの認証セッションを確立できるようになります。
有効なセッションを確立した後、脅威アクターはユーザー認証情報をダンプしようとします。このハッキングに成功した後、次のような各種サーバーをターゲットにしようと試みます。
- XenApp(Citrix Virtual Apps)
- XenDesktop
- Webサーバー
- メールサーバー
- ファイルサーバー
私たちが観測したケースでは、脅威アクターはXenAppサーバーとファイルサーバーを標的として、さらなる攻撃を実行しました。
XenAppへのログオンプロセス:
脅威アクターは、侵害したユーザー認証情報を使用して攻撃を実行します。この攻撃は、XenAppサーバーへのログオン時に実行されるcmstart.exeプロセスから始まります。このプロセスは、winlogonにより呼び出されます。これは、Wfshell.exe、CltMgr.exe、およびIcast.exeファイルに関連付けられています。プロセスicast.exeはコマンドを実行し、プロセスwfshell.exeは関連プログラムを実行します。
XenAppへのログオンプロセスをハッキングすることで、攻撃者は、悪意あるバッチファイルやPowerShellスクリプト(wfshell.exe経由)を実行できるようになります。
▲ハッキングされたXenAppログオンプロセスの攻撃ツリー
■既知のポストエクスプロイテーション
私たちは、脅威アクターによるCitrixBleed脆弱性の悪用を調査する過程で、さまざまなポストエクスプロイテーション活動を観測しました。
CitrixBleed脆弱性を介した初期アクセスの後、攻撃者は通常、侵害された環境にRMMツールやカスタムバックドアを導入します。これらのツールを使用することで、さらなるポストエクスプロイテーション活動を行えるようになります。これには、ローカルファイルやクラウドファイルを列挙して流出させることや、ドメインコントローラーから認証情報を抽出したりすることなどが含まれます。
脅威アクターが利用しているコマンドの例を下記に示します。
▲下記のセクションでは、CitrixBleedのポストエクスプロイテーション時に使用された、さまざまな戦術を紹介します。
■戦術その1:遠隔監視と管理
先述したように、パーシステンスの確立やラテラルムーブメントを行うために、複数のRMMが導入されていることが観測されています。
下記のプロセスツリーは、Splashtop RMMのインストールを示しています。
▲Splashtopインストールの攻撃ツリー
下記のコマンドラインは、リモートWMI呼び出しによるRMMツールAteraAgentおよびScreenConnectのインストールを示しています。
▲WMIを使用したAteraAgentのインストール
▲WMIを使用したScreenConnectのインストール
■戦術その2:RDPの悪用
mstsc.exeを介した、Exchangeサーバー、Veeamバックアップサーバー、および機密情報を保管するその他のサーバーへのRDPスキャンと接続が試みられました。
▲リモートデスクトップ接続アクティビティ
■戦術その3:「トロイの木馬」となる.dllと.exeをドロップ
同じハッシュ値を持つ3つの.dllファイルが、外部の未承認IPとの通信を行っていたことが観測されました。.dllファイルのハッシュ値は公開されていませんでしたが、Cybereasonの亜種実行防止機能(VPP)は、これらのファイルを「トロイの木馬」の亜種であるTedyと関連付けました。
さらに、RMMツールと共にドロップされた、「トロイの木馬」の亜種であるBoigyも、Cybereasonの亜種実行防止機能(VPP)により特定されました。
▲亜種実行防止機能(VPP)により「トロイの木馬」の亜種であるBoigyを検知
■戦術その4:スキャンによる偵察
各種の検出ツール(Fscan64.exe、mscan.exe、dnsdump.exe、netscan.exeなど)がネットワークをスキャンしていることが観測されました。
▲観測された検出ツールのアクティビティ
■戦術その5:コマンドラインによる偵察
複数のコマンドを実行して環境のデータを収集することで、ユーザーや管理者グループの情報、ドメインの信頼関係を取得すると共に、利用可能なファイル、接続されているデバイス、機密性の高いサーバーを特定していることが観測されました。
▲ADトラストの検出およびPowershellの検出を示すプロセスツリー
■戦術その6:権限昇格のためにローカル管理者を作成し特別アカウントへと追加
あるケースでは、net.exeとreg.exeを使用して、統合されたPowershell環境で管理者を追加した上で、その権限を昇格させたことが観測されました。
▲Regeditツールによるユーザー作成とnet.exeアクティビティを示すプロセスツリー
侵害の痕跡(IoC):ポストエクスプロイテーションに関するもの
Cybereason Security Servicesは、既知のポストエクスプロイテーション活動に関連するIoCのリストを入手しました。下記に示すIoCは、脅威ハンティングの目的で使用できます。
種類 | 値 | 説明 |
---|---|---|
電子メール | bogdan_tikhonov_2020@mail[.]ru | 悪意あるAteraAgentアカウントのメールアドレス |
アカウントID | 001Q3000000dn46IAA | 悪意あるAteraAgentのアカウントID |
種類 | 値 | 説明 |
---|---|---|
IPアドレス | 38.54.119[.]22 | 「トロイの木馬」の亜種であるTedy のC2サーバー |
IPアドレス | 147.75.81[.]72 | Screenconnectインスタンス経由で接続する脅威アクター |
ドメイン | instance-lipqpu-relay.screenconnect[.]com | Screenconnectインスタンスへと解決されるIPアドレス(147[.]75.81.72) |
URL | https://raw.githubusercontent[.]com/bc-security/invoke-zerologon/master/invoke-zerologon.ps1 | ZeroLogon.ps1が置かれているGithubのraw URL | IPアドレス | 20.37.139[.]187 | agent-api.atera[.]comへと解決されるIPアドレス |
種類 | 値 | MD5ハッシュ値 |
---|---|---|
モジュール | remotecall.dll svrhost.dlll archive.dll |
4f85637d97d2d0cdc85e1a14351532df |
ハッキングツール | grabff.exe | ハッシュ値なし |
RMM | AteraAgent.exe | 2899046a979bf463b612b5a80defe438 |
RMM | Screenconnect.windowsclient.exe | bb0c17757097f078181ecafedf8ccc38 |
RMM | screenconnect.clientservice.exe | 34700aa76a0d019e4fe3a99e46b3c2b2 89d3d099b6d8731bd1b7f5a68b5bf17c |
バックドア | 1.exe | 958053d0c394e007f7174403c5d3735 |
スキャナー | mscan.exe | 4c90d8b2e1d7e89a3c0b46f85162ec1 |
スキャナー | fscan64.exe | a284c8b14e4be0e2e561e5ff64e82dc7 |
スキャナー | dnsdump.exe | 9e823386d09f3d7be111d39332063553 |
RMM | sragent.exe | ハッシュ値なし |
RMM | srservice.exe | ハッシュ値なし |
RMM | AnyDesk.exe | ハッシュ値なし |
サイバーリーズンによる推奨事項
Cybereason Defense Platformを使うと、CitrixBleed脆弱性のポストエクスプロイト活動を検知して防御できます。サイバーリーズンでは下記の措置を実施することを推奨しています。
- メーカーが提供するアップデート情報および関連するCISA勧告に従って、影響を受けるCitrixのバージョンに対するパッチを直ちに適用すること。
- 環境を監視し、下記のツールやアクティビティが存在していないかどうか調べること。
- 上述したCitrixによる推奨事項に従って、アップデート後に、アクティブなNetScalerのセッションをすべて強制終了すること。これは、脆弱性のあるセッションはパッチ適用後も存続する可能性があるためです。
- NetScaler ADCとNetScaler Gatewayアプライアンスのログ(syslogおよびns.log)の定期的なログレビューを実行すること。
- Webアプリケーションファイアウォール(WAF)とHTTP/Sの記録をネットワークアプライアンスに採用し、クライアントIPと送信元IPが不一致であるSSL VPN接続を監視すること。これらのIPが不一致である場合、セッションが乗っ取られていることを意味します。エンドポイントとNetScaler ADC/Gateway間でセッションが仲介されると、CitrixのVirtual Delivery Agent(VDA)は、ユーザーの最初のセッションIPアドレスに関する情報をNetScalerのレジストリに記録します。攻撃者がセッションを乗っ取った場合、ログに記録された初期セッションIPと攻撃者がハイジャックしたセッションIPの間に差異が生じます。許可されていない地域に属している外部IPは、悪意ある活動を行っている可能性があります。
- お使いのNetScalerのレジストリで、次のようなホスト/IP接続がないかどうかを調べること。
・\Policies\Citrix\\Evidence\ClientName
・\Policies\Citrix\\Evidence\ClientIP
・\Policies\Citrix\\Evidence\BrokeringUserSid
・\WOW6432Node\Policies\Citrix\\Events\LastUpdate
・\WOW6432Node\Policies\Citrix\\Evidence\ClientName - ポリシーごとに、亜種実行防止機能(VPP)と振る舞いベースのファイル実行防止(Behavioral Execution Prevention)が有効になっていることを確認すること。
- プロアクティブなハンティングを行うには、Cybereason Defense PlatformのInvestigation(調査)画面やクエリを使用して、CitrixBleed脆弱性が悪用されている可能性のある資産を検索します。その後、検索結果に基づいて、感染した端末の隔離やペイロードファイルの削除など、さらなる修正措置を実施します。
- ブロックと実行防止を使用して、関連するIoCをカスタムレピュテーションリストに追加すること。
‒ 未承認のリモート監視および管理(RMM)ツール
‒ 未知の宛先や許可されていない宛先と通信している不明な.dll
‒ 承認されていないIPアドレスにより開始されたユーザーセッション
XDR選定ガイド〜組織で抱えるセキュリティ課題を解決するXDRの選定に役立つポイントとは〜
組織や企業は進化するサイバー脅威や複雑なセキュリティ課題に直面する機会が増えています。このため、セキュリティ担当者は、社内ネットワークのさまざまな部分で発生した問題をトリアージし、迅速に調査する必要があります。
そこで、複数のセキュリティレイヤーにわたって全体像を可視化し、脅威を検知することができるXDR(Extended Detection and Response)が注目されています。
本資料では、XDRの特長とXDRが提供する効率的でプロアクティブなソリューションを明らかにし、XDRを導入する際に押さえておくべき選定ポイントをご紹介しています。
複雑化するサイバー攻撃への対策として、本資料を参考に、XDR製品を導入し、さらなるセキュリティ強化に取り組むことをお勧めいたします。
https://www.cybereason.co.jp/product-documents/white-paper/11396/