REvil의 과감한 도발 | Kaseya 관리형 서비스 소프트웨어를 악용하여 높은 수익 창출

보고서 개요

  • 수천 개 기업 엔드포인트에 REvil 랜섬웨어를 전파하기 위해 의심스러운 제로 데이 공격이 사용되었습니다.
  • 공격자들은 관리형 보안 서비스 공급업체와 IT 관리 기업이 다양한 고객과 소통하는 데 주로 사용하는 Kaseya VSA 서버를 표적으로 삼았습니다.
  • 공격자들은 certutil.exe, Microsoft Defender 및 도용한 디지털 인증서와 같은 다양한 일반 구성 요소를 공격 실행 경로의 일부로 악용했습니다.
  • 현재 이 사건은 지금까지 가장 큰 규모의 랜섬웨어 공격으로 평가되고 있습니다. 당황스럽게도 공격자들은 모든 피해자들을 위한 범용 설명 도구를 미화 5천만 달러(최초 가격: 7천만 달러) 일시불 가격으로 제공하고 있습니다.
  • 이 게시글에서는 공격자의 공격 실행 경로를 설명하며 공격에 맞선 SentinelOne Singularity의 대응을 보여주는 동영상과 관련 지표와 함께 방어를 지원하는 헌팅 규칙을 소개합니다.

공격 현황

2021년 7월 2일 금요일, Kaseya의 관리형 서비스 소프트웨어 고객을 표적으로 REvil 랜섬웨어를 전파하는 잘 준비된 대규모 랜섬웨어 캠페인이 발견되었습니다. 처음에는 규모로 인해 공급망 공격으로 쉽게 생각했지만 시간이 지나면서 공격자가 인터넷 연결 Kaseya VSA 서버에 대한 제로 데이 익스플로잇을 활용하는 것으로 밝혀졌습니다.

Kaseya의 초기 자문은 상황의 심각성을 과소 평가하여 고객들에게 추가 공지가 있을 때까지 VSA 서버를 종료하도록 안내했습니다.

Kaseya의 초기 전달 사항

이후 Kaseya는 보안 커뮤니티와 협력하여 이번 사건의 근본 원인을 분석했습니다. 이 게시글에서는 감염 경로를 파악하고 관련 지표를 강조하며 고객을 위한 보호 장치를 명확하게 하는 데 그 목적이 있습니다.

Kaseya VSA 익스플로잇 및 감염 경로

현재까지의 분석 결과에 따르면 VSA 구성 요소 중 하나(dl.asp)의 논리적 결함이 인증 우회를 일으킨 것으로 밝혀졌습니다. 공격자들은 KUpload.dll을 사용하여 맬웨어 드로퍼가 포함된 가짜 인증서인 ‘agent.crt’를 비롯한 여러 파일을 삭제할 수 있었습니다. 삭제된 또 다른 아티팩트인 Screenshot.jpg는 JavaScript 파일로 보여지며 현재 일부만 복구되었습니다. 사용된 익스플로잇의 정확한 특성에 대한 구체적인 정보는 분석이 진행되면서 계속 발견되고 있습니다.

의심되는 익스플로잇 경로는 맬웨어를 실행하고 로그를 삭제하는 일련의 VSA 프로시저를 대기열에 추가하기 위한 userFilterTableRpt.asp의 SQL 삽입으로 끝납니다. 이 활동은 해킹된 AWS EC2 인스턴스 18.223.199[.]234에서 시작된 것으로 파악되었습니다. 161.35.239[.]148(DigitalOcean), 162.253.124[.]16(Sapioterra) 및 35.226.94[.]113(Google Cloud)에서 추가 활동도 관찰되었습니다.

REvil 맬웨어 감염 경로

이 악의적인 프로시저는 ‘Kaseya VSA Agent Hot-fix’로 명명되었습니다. 이 프로시저는 인터넷 액세스를 확인하고 PowerShell을 사용하여 실시간 모니터링, 침입 방지, 네트워크 보호 및 샘플 자동 제출 등 순차적인 기본 운영 체제 보안 조치를 비활성화하는 일련의 명령입니다. 그런 다음 이 프로시저는 인증서 유효성 검사에 주로 사용되는 기본 certutil.exe 애플리케이션을 호출하고 사용하여 ‘agent.crt’ 콘텐츠를 실행 파일인 agent.exe로 디코딩합니다.

agent.exe 바이너리는 2021년 7월 1일 컴파일되었으며 포함된 실행 리소스 2개인 ‘MODLIS’와 ‘SOFTIS’의 드로퍼 기능을 합니다.

agent.exe에 포함된 리소스

리소스 101인 SOFTIS는 악의적인 페이로드를 사이드 로드하는 데 사용되고 있는, 오래되었지만 정상적인 Microsoft Defender 실행 파일입니다. 여기서 주목할만한 점은 사이드 로드 다이애드(2파트 실행 경로)라는 이 전달 메커니즘이 2021년 4월부터 REvil을 배포하는 데 사용되어 왔다는 점입니다.해당 페이로드는 리소스 102에 ‘MODLIS’라는 리소스 이름으로 포함되었습니다.

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.

Microsoft Defender에서 악의적인 페이로드를 사이드 로드하기 위해 DLL이 %WinDir%\MpSvc.dll에서 삭제되며 ServiceCrtMain, ServiceMain 및 SvchostPushServiceGlobals 함수를 내보냅니다. 이 파일은 한 캐나다 운송 회사에서 도용된 디지털 인증서로 서명합니다. 이 인증서는 REvil에서 최근에 사용한 여러 도용된 인증서 중 하나입니다. 랜섬웨어는 정적으로 연결된 OpenSSL을 사용하여 암호 작업을 수행합니다. ServiceCRTMain()은 기본 페이로드에서 파일을 역난독화하는 스레드를 생성합니다.Kaseya 사건과 직접적인 관련이 있는 IOC는 특정 하위 집합이지만 Microsoft Defender 사이드 로드 다이애드와 계속 유효한 도용된 디지털 인증서가 포함된 유사한 실행 경로 클러스터의 샘플을 수집했습니다. 이 게시글 끝 부분에 제공되는 해시와 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”

암호화 및 암호화 이후 동작

REvil 랜섬웨어의 이 변형에서 사용하는 Salsa20 암호화 알고리즘은 다른 일반 암호화 알고리즘에 비해 놀라울 정도로 빠르며 이 정도 규모의 랜섬웨어 작업에 최적의 선택입니다. 변이가 많은(highly-prolific) 다른 계열의 랜섬웨어도 같은 알고리즘을 사용해 왔습니다(예: DarkSide 및 Petya/GoldenEye의 최신 변이).

머신 콘텐츠가 성공적으로 암호화되면 암호화된 파일과 함께 랜섬 노트가 삭제되며 머신 배경 무늬가 변경되어 사용자에게 문제 상황을 경고합니다.

감염 시 표시되는 랜섬 노트

랜섬 노트는 사용자를 .onion 사이트로 안내하며 TOR에 대한 액세스 권한이 없는 사용자를 위한 대안을 제시합니다. 이 사이트에서는 해당 특정 엔드포인트에 대한 몸값을 제공하기 전에 랜섬 노트에 추가된 키와 함께 피해자가 몸값을 지불하지 않으면 랜섬 요구가 증가하는 시간을 나타내는 타이머를 함께 요구합니다. 비기업 도메인 머신의 표준 금액은 모네로(XMR) 또는 비트코인(BTC)의 미화 44,999달러에 해당합니다. 더불어 REvil 집단은 미화 7천만 달러(이후 5천만 달러로 수정) 일시불 이라는 엄청난 금액으로 범용 암호 해독 프로그램을 제안해 온 것으로 알려졌습니다.

7월 4일자 REvil 업데이트 뉴스

최신 개발 현황

7월 5일 월요일, Kaseya는 고객의 시스템 정상화를 지원하기 위해 온프레미스 설치용 최신 패치를 개발하고 있다고 발표했습니다. 또한 Kaseya는 고객이 온프레미스 설치 프로그램이 실제로 손상됐는지 여부를 확인할 수 있는 손상 감지 도구를 게시했습니다.

공격자들은 이번 사건 이후로 Shodan.io와 같은 공개 플랫폼을 사용하여 Kaseya 온프레미스 인터넷 노출 서버를 스캔하고 있습니다. 이후 지금까지 REvil뿐만 아니라 다른 공격 집단들도 인터넷을 통해 고객에게 민감한 네트워크에 즉각 액세스할 수 있는 상황입니다.

이번 공격은 certutil.exe 쓰기 실행 파일 감지와 같은 기본 제공 운영 체제 실행 파일(LOLBINs)의 부적절한 사용 또는 예상치 못한 위치에서 예상치 못한 소프트웨어를 실행하는 MsMpEng.exe와 같은 서명 소프트웨어 사용을 방지하는 최신 EDR 솔루션의 필요성을 다시 한 번 입증했습니다.

이 위협은 다음과 같이 SentinelOne으로 감지 및 완화될 수 있습니다.

SentinelOne vs REvil
REvil 랜섬웨어 공격 방지

결론

이 공격에 따른 전체적인 영향력이 계속 나타나고 있는 가운데 기술적 측면뿐만 아니라 공격 조정 방식에 있어서도 사이버 범죄의 정교함이 계속 확대되고 있습니다. 공격자들은 PR의 영향을 잘 알고 있으며 몸값 극대화를 위해 혼란 상황을 광범위하게 활용할 것입니다. 그러나 이는 보안 제품이 데이터, 특히 다양한 행동 데이터와 AI의 힘을 활용해야 하는 이유를 상기시키는 또 다른 사례입니다. 맬웨어와 랜섬웨어는 점점 더 정교해지고 있으며 장치를 손상시키기 위한 새로운 기법을 개발하고 있습니다. 데이터 기반 및 AI 기반 방식은 사이버 범죄에 대한 자율적인 자세를 만들어줍니다. 이번과 같은 최신 공격을 방어하기 위해서는 1분 1초가 중요하므로 서명 기반이나 수동 방식의 기존 솔루션만으로는 조직의 공격 표면을 보호하는 데 충분하지 않습니다.

이번 공격에 따른 모든 영향을 파악하기 위한 SentinelOne의 노력은 계속되겠지만 사전 공격 방어를 위한 SentinelOne의 조언은 항상 해당 네트워크가 이미 악의적인 공격자의 호스트라는 사실을 전제로 합니다. 사이버 범죄로 실현된 과도한 수익은 앞으로도 계속될 공격의 정교함을 더해주는 결과를 초래할 뿐이며 그 수단과 동기도 확실합니다. 랜섬웨어는 디지털 시대의 모든 기업이 직면할 수 밖에 없는 현실입니다. 오늘날 사이버 범죄는 기업 운영의 중요한 부분이 되었습니다. 악의적인 공격자가 혼란을 통해 수익을 창출할 수 있는 능력은 기업에 미칠 수 있는 실제 위협과의 관련성이 더욱 더 커졌습니다.

Indicators of Compromise

Samples

agent.crt encoded dropper
2093c195b6c1fd6ab9e1110c13096c5fe130b75a84a27748007ae52d9e951643

agent.exe dropper
d55f983c994caa160ec63a59f6b4250fe67fb3e8c43a388aec60a4a6978e9f1e

Payloads
e2a24ab94f865caeacdf2c3ad015f31f23008ac6db8312c2cbfb32e4a5466ea2
8dd620d9aeb35960bb766458c8890ede987c33d239cf730f93fe49d90ae759dd

Additional recent REvil activity including dyad droppers and payloads with still valid stolen digital signatures:

aae6e388e774180bc3eb96dad5d5bfefd63d0eb7124d68b6991701936801f1c7
df2d6ef0450660aaae62c429610b964949812df2da1c57646fc29aa51c3f031e
f6908ef76b666157a13534db47652a845d8f7d985fdf944f7e43a3afd3f3d8c2
d5ce6f36a06b0dc8ce8e7e2c9a53e66094c2adfc93cfac61dd09efe9ac45a75f
d8353cfc5e696d3ae402c7c70565c1e7f31e49bcf74a6e12e5ab044f306b4b20
dc6b0e8c1e9c113f0364e1c8370060dee3fcbe25b667ddeca7623a95cd21411f
cc0cdc6a3d843e22c98170713abf1d6ae06e8b5e34ed06ac3159adafe85e3bd6
81d0c71f8b282076cd93fb6bb5bfd3932422d033109e2c92572fc49e4abc2471

MITRE TTPs Used in Kaseya Attack

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

YARA Hunting Rules for REvil/Kaseya Artifacts

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
				)
		)
}

SentinelOne Singularity Platform 이 귀사의 조직과 비즈니스를 어떻게 보호할 수 있는지에 대해 알고 싶으시다면, 우리에게 언제든 연락해주십시오, 무료 데모 신청도 가능합니다