セキュリティ侵害に関するお問い合わせ

REvilによる大規模な攻撃 | Kaseya社のITマネージドサービスソフトウエアの悪用により巨額の利益

エグゼクティブサマリー

  • REvilのランサムウェアを数千の企業エンドポイントに配信するために、ゼロデイ攻撃が仕掛けられた疑いがあります。
  • 攻撃者は、一般的にマネージドセキュリティサービスプロバイダーやIT管理会社が顧客へのサービス充実させるために使用しているKaseyaVSAサーバーを標的にしました。
  • 攻撃者は、実行チェーンの一貫で、certutil.exe、Microsoft Defender、窃取されたデジタル証明書など、良性のさまざまなコンポーネントを悪用しました。
  • 現時点で、今回の攻撃は、今までで最大規模となるランサムウェアインシデントだと考えられます。予想外の展開として、今回、攻撃者は、すべての犠牲者に対して、5000万ドル(当初は7000万ドル)で、一括で共通で使用可能な復号化ツールを提供しています。
  • 本ブログでは、攻撃の実行チェーンについて説明します。また、攻撃に対するSentinelOne Singularityがどのようなインシデント対応を行うかのビデオで説明します。そして、防御する側を支援するために、インジケーターとハンティングルールを提示します。

インシデントの状況

2021年7月2日金曜日に、Kaseya社のマネージドサービスソフトウェアの顧客を対象として、REvilランサムウェアを配信する、高度に組織化された大規模なランサムウェアキャンペーンを発見しました。当初はサプライチェーン攻撃と見なされていました。その時点で考えられていた規模では安全な筈でしたが、時間の経過とともに、攻撃者がインターネットに直接接続されたKaseyaVSAサーバーに対してゼロデイエクスプロイトを利用していることが明らかになりました。

REvils-Grand-Coup-Abusing-Kaseya-Managed-Services-Software-for-Massive-Profits

Kaseya社による最初の勧告では、顧客に対して追って通知を行うまで、VSAサーバーをシャットダウンするように指示していました。このことで、状況の深刻さが強調されることとなりました。

カセヤからの最初の声明

それ以降、Kaseya社は、セキュリティコミュニティと関わりを持つことで、事件の根本原因のトリアージを行っていました。本ブログでは、感染チェーンを解明し、関連する指標を取り上げて、お客様がどのように保護すれば良いかを明確にしていきます。

マルウェア実行チェーン

KaseyaVSAエクスプロイトと感染チェーン

現在の調査結果では、VSAコンポーネントの1つ(dl.asp)にある論理的な欠陥が認証バイパスにつながった可能性があることが示されています。攻撃者は、KUpload.dllを使用して、マルウェアドロッパーを含む偽の証明書である「agent.crt」を含む複数のファイルをドロップしている可能性があります。ドロップされたもう1つのアーティファクトScreenshot.jpgはJavaScriptファイルのようであり、現時点では部分的にしか回復されていません。使用されたエクスプロイトの正確な性質に関する具体的な詳細は、分析が進行中であるため、まだ解明されていません。

疑われているエクスプロイトチェーンはuserFilterTableRpt.aspであり、マルウェアを実行してログを削除する一連のVSAプロシージャをキューに入れるための、SQLインジェクションで完了しています。このアクティビティは、ハイジャックされたAWSEC2インスタンスの18.223.199[.]234から発生していることが確認されています。また、追加のアクティビティが、161.35.239[.]148(DigitalOcean)、162.253.124[.]16(Sapioterra)、および35.226.94[.]113(Google Cloud)から発生していることが観察されています。

REvil マルウェア感染チェーン

悪意のある手順には、「Kaseya VSAAgentHot-fix」というラベルが付けられています。これは、インターネットアクセスをチェックし、PowerShellを使用して、リアルタイムモニタリング、侵入防止、ネットワーク保護、サンプルの自動送信など、一連のネイティブオペレーティングシステムのセキュリティ対策を無効にする一連のコマンドです。次に、このプロシージャは、証明書の検証に一般的に使用されるネイティブのcertutil.exeアプリケーションを呼び出し、それを使用して「agent.crt」の内容をagent.exeと実行可能ファイルにデコードしています。

agent.exeバイナリは、2021年7月1日にコンパイルされ、2つの埋め込まれた実行可能なリソース、「MODLIS」と「SOFTIS」のドロッパーとして機能しています。

agent.exeに埋め込まれているリソースリソース101、SOFTISは、悪意のあるペイロードをサイドロードするために使用されている、古くなった正規のMicrosoftDefender実行可能ファイルです。サイドローディングダイアド(2つの部分からなる実行チェーン)の配信メカニズムが、早くも2021年4月にREvilを配信するために使用されていたことは注目に値します。

ペイロード自体は、リソース名「MODLIS」でリソース102に含まれています。

SHA256
e2a24ab94f865caeacdf2c3ad015f31f23008ac6db8312c2cbfb32e4a5466ea2

SHA1
e1d689bf92ff338752b8ae5a2e8d75586ad2b67b

MD5
7ea501911850a077cf0f9fe6a7518859

Compilation Timestamp
2021-07-01 12:39:06

Signature Date
2021-07-02 23:15:00

Size
788.88 KB

Digital Signature
PB03 TRANSPORT LTD.

マイクロソフトディフェンダーでサイドロードさせるための悪質なペイロードとして、%WinDir%MpSvc.dllにDLLがでドロップされ、ServiceCrtMain、ServiceMainとSvchostPushServiceGlobalsのファンクションをエクスポートされます。このファイルは、カナダの運送会社から盗まれたデジタル証明書によって署名されています。これは、最近REvilが採用している、窃取されたいくつかの証明書の1つです。ランサムウェアは、静的にリンクされたOpenSSLを使用して暗号化操作を実行します。ServiceCRTMain()がメインペイロードの難読化を解除するスレッドを生成します。

Kaseya社のインシデントに直接関連するIOCは特定のサブセットですが、マイクロソフトデフェンダーのサイドローディングダイアドや有効な窃取されたデジタル証明書など、同様の実行チェーンのクラスターのサンプルを収集しています。本ブログの最後に、これらの窃取された証明書で署名された追加のファイルを識別するのに役立つハッシュとYARA署名を掲載しています。

このプロセス中に、netsh.exe(以前のREvilサンプルで見たように)も呼び出され、ローカルファイアウォールルールに次の変更が行われます。

netsh.exe netsh advfirewall firewall set rule "group=Network Discovery" new enable=Yes

以下はまだ有効な署名者です。本ブログの最後に、これらの窃取された証明書で署名された追加のファイルを識別するのに役立つYARA署名を掲載しています。

  • BUKTBAI, OOO
    thumbprint = “282ebc0a99a6328343a7d7706465778c3925adb6”
  • PB03 TRANSPORT LTD
    thumbprint = “11ff68da43f0931e22002f1461136c662e623366”
  • OOO Saylent
    thumbprint = “0d61738e6407c01d5c9f477039fb581a5f81f436”

暗号化と暗号化後の動作

Salsa20暗号化アルゴリズムが、REvilのランサムウェアのこの変異種で使用されていますが、信じられないほど高速で、他の一般的な暗号化アルゴリズムと比較して、この規模のランサムウェアの動作には最適な選択肢となっています。他の非常に変異種の多いランサムウェアファミリも同じアルゴリズムを採用しています(たとえば、DarkSideや以降のPetya / GoldenEyeのバリエーションです)。

マシンのコンテンツが正常に暗号化されると、身代金メモが暗号化されたファイルと一緒にドロップされ、マシンの壁紙が変更され、ユーザーに身代金の支払いが要求されます。

感染時に表示される身代金メモ

身代金メモは、ユーザーを.onionサイトに誘導し、TORにアクセスできないユーザーのための代替手段を提供しています。サイトは、特定のエンドポイントの身代金の金額を提供する前に、身代金のメモに追加されたキーと、身代金の需要が増える前に被害者が支払わなければならない時間を示すタイマーを表示しています。非企業ドメインマシンに対する標準的な要求は、Monero(XMR)またはBitcoin(BTC)で、44,999ドルに相当します。より広い見方をすると、REvilギャングは、共通解読ツールのために、7000万ドル(後に5000万ドルに修正)という目を疑うような膨大な一時金を要求してきていると報告されています。

7月4日のREvilギャングからのアップデート

最新状況

7月5日の月曜日に、Kaseya社は、顧客のサービスの復帰を支援するために、オンプレミスインストール用の新しいパッチを開発していることについて発表しています。さらに、同社では、顧客がオンプレミスのインストールが実際に侵害されたかどうかを確認するための侵害検知ツールを公開しています

このインシデントが発生して以来、攻撃者は、Shodan.ioなどの公開されているプラ​​ットフォームを使用してKaseya社のオンプレミスインターネット公開サーバーをスキャンしています。この隙に、REvil以外の攻撃グループが、インターネットを介して顧客にとって大きな問題となるネットワークに即座にアクセスできてしまっています。

この攻撃は、書き込み実行可能ファイルの検知や、予期しない場所からの実行や予期しないソフトウェアの実行などの署名付きソフトウェアの使用など、certutil.exeMsMpEng.exeのような、オペレーティングシステムに組み込まれた実行可能ファイル(LOLBIN)が不適切に使用されないように最新のEDRソリューションを導入する必要がある点をあらためて証明しています。

SentinelOneなら、REvilの脅威を検知し緩和することができます。

SentinelOne vs REvil
REvilのランサムウエア攻撃をライブハックデモ

結論

この攻撃の影響についてはまだ完全には明らかになっていませんが、技術的な面だけでなく、攻撃の組織化方法においても、サイバー犯罪の高度化がさらに進んでいることがわかっています。攻撃者が企業広報に対して多大な影響を与えるということを十分に認識しており、支払い額を最大化するために、広範囲にわたる混乱を利用しようとしていることが明らかです。これは、セキュリティ製品がデータ、とりわけ豊富な振る舞いデータとAIの力を活用する必要がある理由をさらに裏付けるものです。マルウェアとランサムウェアがデバイスを危険にさらす手法は、ますます狡猾で斬新になってきています。データ駆動型でAIを活用したアプローチなら、サイバーセキュリティに対して自律的に対処できるようになります。このような高度な攻撃から防御には、数秒という短い時間が非常に重要となるため、シグネチャベースや、人の力に依存した旧来のソリューションでは、組織の攻撃対象領域を十分に保護することが不可能になってきています。

この攻撃の影響については引き続き全貌を明らかにしていく予定です。防御する側へのアドバイスは、悪意のある攻撃者をネットワークがすでにホストしているという前提で、対処を検討する必要があるという点です。サイバー犯罪者が手にした法外な利益は、今後も継続して目にするであろう攻撃の洗練度をさらに高めるに違いありません。攻撃者には、その動機と、それを実現するための手段が存在しています。ランサムウェアは、すべての組織がデジタル時代の運営にあたり直面しなければならなくなる現実です。今日のサイバーセキュリティは、企業運営の重要な部分になっています。企業に常に存在する脅威として、悪意のある攻撃者が混乱を生じさせて利益を得るパワーは、今や、新たなレベルに到達しているのです。

侵入の痕跡

サンプル

agent.crt encoded dropper
2093c195b6c1fd6ab9e1110c13096c5fe130b75a84a27748007ae52d9e951643

agent.exe dropper
d55f983c994caa160ec63a59f6b4250fe67fb3e8c43a388aec60a4a6978e9f1e

ペイロード
e2a24ab94f865caeacdf2c3ad015f31f23008ac6db8312c2cbfb32e4a5466ea2
8dd620d9aeb35960bb766458c8890ede987c33d239cf730f93fe49d90ae759dd

まだ有効な窃取されたデジタルシグネチャが使われているDyad Dropperとペイロードなどの最新の REvilの攻撃

aae6e388e774180bc3eb96dad5d5bfefd63d0eb7124d68b6991701936801f1c7
df2d6ef0450660aaae62c429610b964949812df2da1c57646fc29aa51c3f031e
f6908ef76b666157a13534db47652a845d8f7d985fdf944f7e43a3afd3f3d8c2
d5ce6f36a06b0dc8ce8e7e2c9a53e66094c2adfc93cfac61dd09efe9ac45a75f
d8353cfc5e696d3ae402c7c70565c1e7f31e49bcf74a6e12e5ab044f306b4b20
dc6b0e8c1e9c113f0364e1c8370060dee3fcbe25b667ddeca7623a95cd21411f
cc0cdc6a3d843e22c98170713abf1d6ae06e8b5e34ed06ac3159adafe85e3bd6
81d0c71f8b282076cd93fb6bb5bfd3932422d033109e2c92572fc49e4abc2471

Kaseya攻撃で使用されたMITRE TTP一覧

T1112 – Modify Registry
T1012 – Query Registry
T1082 – System Information Discovery
T1120 – Peripheral Device Discovery
T1491 – Defacement
T1543.003 – Create or Modify System Process: Windows Service
T1036 – Masquerading
T1036.003 – Masquerading: Rename System Utilities
T1202 – Indirect Command Execution
T1486 – Data Encrypted for Impact
T1106 – Native API

REvil/Kaseya アーティファクツのYARAハンティングルール

import "pe"
import "math"

rule cw_REvil_Kaseya_BUKTBAI_stolenCert
{
	meta:
		desc = "Stolen digital certificate: BUKTAI"
		author = "JAG-S @ SentinelLabs"
		last_modified = "07.02.2021"
		version = "1.0"
		hash = "d8353cfc5e696d3ae402c7c70565c1e7f31e49bcf74a6e12e5ab044f306b4b20"
		hash = "d5ce6f36a06b0dc8ce8e7e2c9a53e66094c2adfc93cfac61dd09efe9ac45a75f"
		hash = "df2d6ef0450660aaae62c429610b964949812df2da1c57646fc29aa51c3f031e"
		hash = "aae6e388e774180bc3eb96dad5d5bfefd63d0eb7124d68b6991701936801f1c7"
	condition:
		uint16(0) == 0x5a4d
		and
		for any signer in pe.signatures:
		(
			signer.subject == "/C=RU/L=Samara/O=BUKTBAI, OOO/CN=BUKTBAI, OOO"
			or
			signer.serial == "42:c1:64:9a:6b:80:64:0f:ad:7a:fb:b8:3e:29:81:52"
			or
			signer.thumbprint == "282ebc0a99a6328343a7d7706465778c3925adb6"
		)
}

rule cw_REvil_Kaseya_PB03TRANSPORT_stolenCert
{
	meta:
		desc = "Stolen digital certificate: PB03 TRANSPORT"
		author = "JAG-S @ SentinelLabs"
		last_modified = "07.02.2021"
		version = "1.0"
		hash = "8dd620d9aeb35960bb766458c8890ede987c33d239cf730f93fe49d90ae759dd"
		hash = "e2a24ab94f865caeacdf2c3ad015f31f23008ac6db8312c2cbfb32e4a5466ea2"
		hash = "d55f983c994caa160ec63a59f6b4250fe67fb3e8c43a388aec60a4a6978e9f1e"
	condition:
		uint16(0) == 0x5a4d
		and
		for any signer in pe.signatures:
		(
			signer.subject == "/C=CA/ST=Ontario/L=Brampton/O=PB03 TRANSPORT LTD./CN=PB03 TRANSPORT LTD."
			or
			signer.serial == "11:9a:ce:ad:66:8b:ad:57:a4:8b:4f:42:f2:94:f8:f0"
			or
			signer.thumbprint == "11ff68da43f0931e22002f1461136c662e623366"
		)
}

rule cw_REvil_Kaseya_SAYLENT_stolenCert
{
	meta:
		desc = "Stolen digital certificate: PB03 TRANSPORT"
		author = "JAG-S @ SentinelLabs"
		last_modified = "07.02.2021"
		version = "1.0"
		hash = "cc0cdc6a3d843e22c98170713abf1d6ae06e8b5e34ed06ac3159adafe85e3bd6"
		hash = "dc6b0e8c1e9c113f0364e1c8370060dee3fcbe25b667ddeca7623a95cd21411f"
	condition:
		uint16(0) == 0x5a4d
		and
		for any signer in pe.signatures:
		(
			signer.subject == "/C=RU/L=Cherepovetz/O=OOO Saylent/CN=OOO Saylent"
			or
			signer.serial == "00:bd:df:46:f3:a2:de:7d:2b:fb:f5:16:9a:e9:76:d9:7e"
			or
			signer.thumbprint == "0d61738e6407c01d5c9f477039fb581a5f81f436"
		)
}

rule cw_REvil_Kaseya_Dropper
{
	meta:
		desc = "Dropper for Microsoft Defender + Sodinokibi DLL Sideload"
		author = "JAG-S @ SentinelLabs"
		last_modified = "07.02.2021"
		version = "1.0"
		hash = "df2d6ef0450660aaae62c429610b964949812df2da1c57646fc29aa51c3f031e"
		hash = "dc6b0e8c1e9c113f0364e1c8370060dee3fcbe25b667ddeca7623a95cd21411f"
		hash = "aae6e388e774180bc3eb96dad5d5bfefd63d0eb7124d68b6991701936801f1c7"
		hash = "81d0c71f8b282076cd93fb6bb5bfd3932422d033109e2c92572fc49e4abc2471"
	strings:
		$drop_ransom = "mpsvc.dll" ascii wide fullword
		$drop_defender = "MsMpEng.exe" ascii wide fullword
		$drop_path = "C:Windows" wide fullword
	condition:
		uint16(0) == 0x5a4d
		and
		(
			2 of ($drop*) 
			and
			pe.number_of_resources == 2
			and
			for all rsrc in pe.resources:
				(
				math.entropy(rsrc.offset, rsrc.length) >= 6.7
				)
		)
}