콘텐츠로 이동하기
위협 인텔리전스

제재를 비웃는 인텔렉사(Intellexa), 제로데이 공격은 계속된다.

2025년 12월 3일
Google Threat Intelligence Group

Google Threat Intelligence

Visibility and context on the threats that matter most.

Contact Us & Get a Demo

해당 블로그의 원문은 2025년 12월 4일 Google Cloud 블로그(영문)에 게재되었습니다. 


서론 

대중의 감시와 여러 공개 보고서에도 불구하고, 상용 스파이웨어 개발 업체들은 여전히 제약 없이 활동을 이어가고 있습니다. 이러한 용병 스파이웨어 세계에서 계속해서 두각을 나타내는 이름이 바로 인텔렉사(Intellexa)입니다. 자사의 '프레데터(Predator)' 스파이웨어로 잘 알려진 이 회사는 미국 정부로부터 제재를 받았습니다. 하지만 구글 위협 인텔리전스 그룹(GTIG)의 새로운 분석에 따르면, 인텔렉사는 이러한 제재를 회피하며 계속해서 사업을 확장하고 있는 것으로 나타났습니다.

인텔렉사는 새로운 환경에 적응하고 제재를 회피하며, 가장 높은 가격을 제시하는 구매자들에게 '디지털 무기'를 계속해서 판매하고 있습니다. Recorded Future와 국제앰네스티(Amnesty)에서 발표한 연구 결과와 더불어, 본 블로그 게시물에서는 인텔렉사의 최근 활동을 조명하고, 그들의 감시 도구가 실제로 미치는 영향을 공개하며, 이러한 산업에 맞서 구글이 취하고 있는 조치에 대해 자세히 설명하고자 합니다.

끊임없이 이어지는 제로데이 취약점 악용

지난 몇 년간 인텔렉사는 모바일 브라우저를 대상으로 제로데이 취약점을 악용하는 가장 왕성하게 활동하는 스파이웨어 개발 업체 중 하나로 입지를 굳혔습니다. 보안 연구원과 플랫폼 제공업체(벤더)들의 끊임없는 노력으로 이러한 결함을 식별하고 패치하고 있음에도 불구하고, 인텔렉사는 새로운 제로데이 익스플로잇을 확보하거나 개발하는 능력을 반복적으로 보여주며, 신속하게 적응하여 고객을 위한 운영을 계속하고 있습니다.

인텔렉사는 현재 GTIG의 일부가 된 구글 위협 분석 그룹(TAG)이 수년간 식별해 온 제로데이 취약점 중 상당수에 책임이 있습니다. 예를 들어, 2021년 이후 TAG가 발견하고 문서화한 약 70개의 제로데이 취약점 중, 원격 코드 실행(RCE), 샌드박스 탈출(SBX), 로컬 권한 상승(LPE) 취약점을 포함하여 15개의 고유한 제로데이가 인텔렉사와 관련이 있습니다. 이 모든 제로데이 취약점은 해당 벤더에 의해 패치되었습니다. 또한, 제로데이 익스플로잇을 직접 개발하는 것 외에도, 인텔렉사가 외부 조직으로부터 공격 체인(exploit chain)의 일부 단계를 구매하고 있다는 증거도 점점 더 많이 발견되고 있습니다.

CVE 식별자

역할

벤더

제품

유형

설명

CVE-2025-48543

SBX+LPE

Google

Android

메모리 손상

Android 런타임의 Use-After-Free

CVE-2025-6554

RCE

Google

Chrome

메모리 손상

V8 엔진의 타입 혼란(Type Confusion)

CVE-2023-41993

RCE

Apple

iOS

메모리 손상

WebKit JIT 원격 코드 실행

CVE-2023-41992

SBX+LPE

Apple

iOS

메모리 손상

커널 IPC의 Use-After-Free

CVE-2023-41991

LPE

Apple

iOS

코드 서명 우회

코드 서명 우회

CVE-2024-4610

LPE

ARM

Mali

메모리 손상

부적절한 GPU 메모리 처리 작업

CVE-2023-4762

RCE

Google

Chrome

메모리 손상

V8 엔진의 타입 혼란(Type Confusion)

CVE-2023-3079

RCE

Google

Chrome

메모리 손상

V8 엔진의 타입 혼란(Type Confusion)

CVE-2023-2136

SBX

Google

Skia

메모리 손상

Skia SKSL의 정수 오버플로우

CVE-2023-2033

RCE

Google

Chrome

메모리 손상

V8 엔진의 Use-After-Free

CVE-2021-38003

RCE

Google

Chrome

메모리 손상

V8 엔진의 부적절한 구현

CVE-2021-38000

RCE

Google

Chrome

로직/설계 결함

Intents의 신뢰할 수 없는 입력에 대한 불충분한 검증

CVE-2021-37976

SBX

Google

Chrome

메모리 손상

memory_instrumentation의 정보 유출

CVE-2021-37973

SBX

Google

Chrome

메모리 손상

Portals의 Use-after-free

CVE-2021-1048

SBX+LPE

Google

Android

메모리 손상

ep_loop_check_proc의 Use-After-Free

표 1: 2021년 이후 인텔렉사(Intellexa)와 관련된 제로데이 취약점

공격 체인 (Exploit Chain)

2023년, 시티즌랩(CitizenLab)과 협력하여, 우리는 이집트의 공격 대상에게 실제 사용된 전체 iOS 제로데이 공격 체인을 포착했습니다. 인텔렉사가 개발한 이 공격 체인은 '프레데터(Predator)'로 알려진 스파이웨어를 기기에 은밀하게 설치하는 데 사용되었습니다. 메타데이터에 따르면, 인텔렉사는 내부적으로 이 공격 체인을 "스맥(smack)"이라고 지칭했습니다.

1단계: JSKit 프레임워크의 데자뷰

공격 체인의 초기 단계는 애플이 CVE-2023-41993으로 패치한 사파리(Safari) 원격 코드 실행(RCE) 제로데이 취약점이었습니다. 이 익스플로잇은 내부적으로 "JSKit"이라 불리는 프레임워크를 활용했습니다. 렌더러(renderer)의 취약점(이 경우 CVE-2023-41993) 덕분에 임의의 메모리 읽기 및 쓰기 기본 기능(primitive)이 확보되면, 이 프레임워크는 최신 애플 기기에서 네이티브 코드 실행을 수행하는 데 필요한 모든 구성 요소를 제공합니다.

우리는 인텔렉사가 이 iOS RCE 익스플로잇을 외부 조직으로부터 획득했다고 보고 있습니다. 왜냐하면 2021년부터 다른 스파이웨어 개발 업체나 정부 지원 공격자들이 바로 이 JSKit 프레임워크를 사용하는 것을 목격했기 때문입니다. 2024년, 우리는 러시아 정부의 지원을 받는 공격자들이 몽골 정부 웹사이트를 대상으로 한 워터링 홀(watering hole) 공격에서 동일한 iOS 익스플로잇과 JSKit 프레임워크를 사용한 캠페인에 대해 공개적으로 보고한 바 있습니다. 또한, 2022년에는 다른 스파이웨어 업체가 CVE-2022-42856을 악용할 때 동일한 프레임워크를 사용하는 등, 다른 캠페인에서도 이 프레임워크가 사용되는 것을 확인했습니다.

JSKit 프레임워크는 유지 관리가 잘 되어 있고, 광범위한 iOS 버전을 지원하며, 다양한 포인터 인증 코드(PAC, Pointer Authentication Code) 우회 및 코드 실행 기술을 지원할 만큼 모듈화가 잘 되어 있습니다. 이 프레임워크는 메모리 내의 Mach-O 바이너리를 파싱하여 커스텀 심볼을 확인할 수 있으며, 최종적으로는 메모리에서 직접 Mach-O 바이너리를 수동으로 매핑하고 실행할 수 있습니다. 또한, JSKit 프레임워크는 공격 과정의 각 단계가 신중하게 테스트될 정도로 상당히 견고하고 잘 설계되어 있습니다. 현재까지 안드로이드(Android)에서는 이와 유사한 프레임워크를 발견하지 못했습니다.

https://storage.googleapis.com/gweb-cloudblog-publish/images/intellexa-csv-fig1.max-800x800.png

그림 1: 셸코드 실행 테스트 및 검증 예시

RCE 익스플로잇의 진입점(entry point)에 있는 디버그 문자열에 따르면, 인텔렉사가 사용한 익스플로잇은 내부적으로 'exploit number 7'로 관리되었던 것으로 보입니다. 이는 익스플로잇을 공급하는 외부 조직이 광범위한 버전의 iOS를 대상으로 하는 상당수의 익스플로잇을 보유하고 있을 가능성이 높다는 것을 시사합니다.

https://storage.googleapis.com/gweb-cloudblog-publish/images/intellexa-csv-fig2.max-400x400.png

그림 2: 다수의 iOS 익스플로잇 존재를 시사하는 디버그 문자열

크롬 익스플로잇과 관련하여, 인텔렉사는 V8의 TheHole 매직 객체를 유출할 수 있는 모든 임의의 취약점으로부터 코드 실행 권한을 획득하는 데 필요한 모든 기능을 갖춘 자체 제작 프레임워크를 사용해 왔습니다. 그들은 이 프레임워크를 CVE-2021-38003에서 처음 사용했으며, 이후 CVE-2023-4762, CVE-2023-3079, CVE-2023-2033, 그리고 가장 최근인 2025년 6월에는 사우디아라비아에서 발견된 CVE-2025-6554에 사용했습니다. 가장 최근의 CVE-2025-6554는 크롬의 V8 엔진에서 발생한 타입 혼란(type confusion) 오류였습니다. 크롬은 모든 사용자를 위해 신속하게 설정을 변경하여 이 문제를 완화했으며, 이후 버전 138.0.7204.96에서 이 버그를 CVE-2025-6554로 수정했습니다. 이 모든 CVE는 V8의 취약점이며, 모두 TheHole 객체를 유출하는 데 사용될 수 있습니다.

후속 단계: 헬퍼(Helper) 감시

두 번째 단계는 공격 체인에서 가장 기술적인 부분으로, 모든 기능을 설명하려면 별도의 블로그 게시물이 필요할 정도입니다. 본질적으로 이 단계는 사파리 샌드박스에서 탈출하고, 커널 취약점인 CVE-2023-41991 및 CVE-2023-41992를 악용하여 신뢰할 수 없는 세 번째 단계 페이로드를 시스템 권한으로 실행하는 역할을 합니다. 이 두 번째 단계는 첫 번째 단계와 통신하여 일부 프리미티브(예: PAC 우회)를 재사용하고, 세 번째 단계에 커널 메모리 읽기/쓰기 기능을 제공합니다.

우리가 포착한 마지막 단계인 세 번째 단계(GTIG에서 PREYHUNTER로 추적)는 "헬퍼(helper)"와 "워처(watcher)"라는 두 개의 모듈로 구성됩니다.

워처(watcher) 모듈은 주로 감염된 기기가 의심스러운 동작을 보이지 않도록 하는 역할을 합니다. 만약 그러한 동작이 감지되면 알림이 생성되고 익스플로잇 과정은 중단됩니다. 이 모듈은 또한 충돌(crash)을 모니터링하는 책임도 있습니다.

다음과 같은 동작들이 감지됩니다:

  • security.mac.amfi.developer_mode_status를 통한 개발자 모드 활성화 여부

  • diagnosticd를 통한 콘솔 연결 여부

  • 기기에 미국(US) 또는 이스라엘(IL) 로케일(locale) 설정 여부

  • Cydia 설치 여부

  • Bash, tcpdump, frida, sshd, 또는 checkra1n 프로세스의 실행 여부

  • McAfee, AvastMobileSecurity, 또는 NortonMobileSecurity 설치 여부

  • 커스텀 HTTP 프록시 설정 여부

  • 커스텀 루트 CA(인증서) 설치 여부

헬퍼(helper) 모듈은 /tmp/helper.sock의 유닉스 소켓을 통해 익스플로잇의 다른 부분과 통신합니다. 안드로이드용 ALIEN 악성코드와 유사하게, 이 모듈은 DMHooker와 UMHooker라는 커스텀 프레임워크를 사용하여 다양한 지점을 후킹(hook)하는 기능을 가지고 있습니다. 이러한 후킹을 통해 모듈은 다음과 같은 기본적인 스파이웨어 기능을 수행할 수 있습니다.

  • VOIP 통화 녹음 ( /private/var/tmp/l/voip_%lu_%u_PART.m4a에 저장)

  • 키로거(keylogger) 실행

  • 카메라를 이용한 사진 캡처

또한 이 모듈은 스프링보드(SpringBoard)에 후킹하여 앞서 언급된 작업으로 인해 발생하는 사용자 알림을 숨깁니다. 우리는 이러한 기능들이 프레데터(Predator)와 같은 더 정교한 스파이웨어를 배포하기 전에, 감염된 기기가 올바른 공격 대상인지 확인하기 위해 공격자에게 제공되는 것으로 보고 있습니다.

바이너리에는 공격 체인의 이름을 포함하는 다음과 같은 빌드 디렉토리와 같은 컴파일 아티팩트가 남아있었습니다.

/Users/gitlab_ci_2/builds/jbSFKQv5/0/roe/ios16.5-smackjs8-production/.

전반적으로, 이러한 익스플로잇들은 특히 상대적으로 덜 정교한 스파이웨어 스테이저(stager)와 비교할 때 매우 정교하며, 이는 익스플로잇이 다른 조직으로부터 획득되었을 것이라는 우리의 평가를 뒷받침합니다.

새로운 공격 전달 방식 차단

인텔렉사 익스플로잇의 주요 전달 방식은 여전히 종단간 암호화 메시징 애플리케이션을 통해 대상에게 직접 전송되는 일회용 링크입니다. 하지만, 우리는 일부 고객에게서 또 다른 전술, 즉 타사 플랫폼의 악성 광고를 사용하여 사용자를 핑거프린팅하고, 특정 대상을 인텔렉사의 익스플로잇 전달 서버로 리디렉션하는 것을 관찰했습니다.

우리는 이 캠페인이 상용 스파이웨어 업체가 익스플로잇 전달을 위해 광고를 남용하는 또 다른 예라고 보며, 인텔렉사는 2025년 초부터 이 분야에 점점 더 깊이 관여해 왔습니다. 우리는 파트너들과 협력하여 인텔렉사가 광고 생태계에 침투하기 위해 만든 회사들을 식별했으며, 해당 파트너들은 이후 자사 플랫폼에서 그 계정들을 폐쇄했습니다.

인텔렉사 활동의 위협에 대한 대응

인식을 높이기 위한 커뮤니티의 노력은 국제적인 정책 대응을 향한 동력을 구축했습니다. 구글은 스파이웨어 산업으로 인한 피해를 제한하기 위한 합의를 도출하고 진전을 이루기 위해 고안된 폴 몰 프로세스(Pall Mall Process)에 헌신적으로 참여해 왔습니다. 우리는 함께 이러한 강력한 기술의 오용을 제한하고 전 세계의 인권을 보호하기 위한 국제적 규범과 프레임워크를 개발하는 데 중점을 두고 있습니다. 이러한 노력은 스파이웨어의 정부 사용을 제한하기 위해 미국 정부가 취한 조치와 유사한 노력을 위한 최초의 국제적 약속을 포함한 이전의 정부 조치에 기반을 두고 있습니다.

특히 인텔렉사 활동의 심각성과 광범위한 성격을 인식하여, 우리는 2023년 이후 인텔렉사 고객과 관련된 알려진 모든 공격 대상 계정에 정부 지원 공격 경고를 동시에 전달하기로 결정했습니다. 이 노력은 파키스탄, 카자흐스탄, 앙골라, 이집트, 우즈베키스탄, 사우디아라비아, 타지키스탄 등 여러 국가에 걸쳐 수백 개의 계정을 포함하며, 위험에 처한 개인들이 이러한 정교한 위협을 인지하도록 보장합니다.

우리의 공개 정책에 따라, 우리는 생태계 전반의 인식을 높이고 보안을 발전시키기 위해 우리의 연구를 공유하고 있습니다. 또한 사용자를 추가적인 악용으로부터 보호하기 위해 식별된 모든 웹사이트와 도메인을 세이프 브라우징(Safe Browsing)에 추가했습니다. 우리는 사용자와 조직이 자신을 보호하기 위해 신속하게 패치를 적용하고 소프트웨어를 항상 최신 상태로 유지할 것을 촉구합니다. 구글은 제로데이 익스플로잇을 탐지, 분석, 방지하고 발견 즉시 벤더에게 취약점을 보고하는 데 계속 집중할 것입니다.

침해 지표 (Indicators of Compromise, IOCs)

더 넓은 커뮤니티가 이 블로그 게시물에 설명된 활동을 추적하고 식별하는 데 도움을 주기 위해, 등록된 사용자를 위한 GTI 컬렉션에 IOC를 포함시켰습니다.

파일 지표

  • 85d8f504cadb55851a393a13a026f1833ed6db32cb07882415e029e709ae0750
  • e3314bcd085bd547d9b977351ab72a8b83093c47a73eb5502db4b98e0db42cac

YARA 룰

본 규칙은 PREYHUNTER 악성코드를 식별하기 위한 위협 추적(헌팅) 활동의 시작점으로 사용될 수 있도록 제작되었습니다. 다만, 시간이 지남에 따라 수정이 필요할 수 있습니다.

rule G_Hunting_PREYHUNTER_IOSStrings_1 {
	meta:
		author = "Google Threat Intelligence Group (GTIG)"
	strings:
		$ = "/Users/gitlab_ci_2/builds/jb"
		$ = "/roe/ios1"
		$ = "-production/libs/Exploit" ascii wide
		$ = "/private/var/tmp/l/voip_%lu_%u_PART.m4a" ascii wide
		$ = "/private/var/tmp/etherium.txt" ascii wide
		$ = "/private/var/tmp/kusama.txt" ascii wide
		$ = "_gadget_pacia" ascii wide
		$ = "ZN6Helper4Voip10setupHooksEvE3$_3" ascii wide
		$ = "Hook 1 triggered! location:" ascii wide
		$ = "KernelReaderI11CorelliumRWE" ascii wide
		$ = "NSTaskROP20WithoutDeveloperMode" ascii wide
		$ = "UMHookerI14RemoteTaskPort" ascii wide
		$ = "callFunc: building PAC cache for" ascii wide
		$ = "select  tset  FROM tsettings WHERE INSTR(tset, ?)" ascii wide
		$ = "select * from tsettings WHERE length(sha256) > ?" ascii wide
		$ = "isTrojanThreadERK" ascii wide
		$ = "getpid from victim returned:" ascii wide
		$ = "victim task kaddr:" ascii wide
	condition:
		1 of them
}

감사의 말

우리는 시티즌랩(The Citizen Lab)과 국제앰네스티(Amnesty International)의 협력과 파트너십에 감사의 뜻을 표합니다.

게시 위치