OTX pulse data confirms the continued evolution of Project CAV3RN, a modular espionage framework conducting targeted operations against entities in Israel. First documented by Kaspersky's Securelist and now tracked by AlienVault, CAV3RN represents a mature, professionally engineered intrusion set rather than commodity crimeware. Attribution remains unknown, but the targeting profile, modular architecture, and abuse of legitimate cloud infrastructure are consistent with state-aligned espionage tradecraft.
The defining characteristic of the current campaign wave is its dynamic C2 channel selection: the implant's communication module issues DNS queries and parses A-record responses to decide, per transaction, whether to communicate over direct HTTPS or route through a Google Apps Script relay. This gives operators two powerful advantages — they can rotate communication channels on the fly without redeploying implants, and they can shift traffic onto Google-owned infrastructure (script.google.com / googleusercontent.com), which most enterprise proxies and egress filters implicitly trust. Deployment identifiers are also rotated, hampering infrastructure-based clustering by defenders.
The framework's objective is classic espionage: persistent, low-noise access to targeted Israeli organizations with modular tasking capability. The five named modules — GoogleService.dll, CommunicationUxTheme.dll, net.dll, rnp.dll, and texture.dll — indicate a loader/communication/payload separation of concerns, allowing operators to hot-swap capabilities per victim.
Urgency: HIGH for organizations operating in or connected to Israel; MEDIUM for global enterprises as a detection-engineering exercise in trusted-cloud C2 abuse.
Threat Actor / Malware Profile
Adversary: Unattributed. TLP:WHITE pulse published by AlienVault. TTP overlap with known Middle East espionage clusters is under community analysis.
Malware Family: Project CAV3RN — modular espionage framework.
Module breakdown:
- GoogleService.dll — masquerades as a legitimate Google service component; likely the loader or primary orchestration module, thematically aligned with the Google Apps Script C2 channel to blend into process listings.
- CommunicationUxTheme.dll — the C2 communication module; implements DNS-based channel selection and the dual HTTPS / Apps Script relay logic. Its name spoofs Windows UX theme libraries.
- net.dll — network operations module; DNS query construction, A-record parsing, HTTPS transaction handling.
- rnp.dll — likely the encryption/encoding module (RNP naming suggests OpenPGP-style or custom crypto for tasking payloads).
- texture.dll — masquerades as a graphics/asset library; probable payload staging or data-handling module.
Distribution method: Targeted delivery consistent with spear-phishing or supply-chain-adjacent intrusion against Israeli entities; initial access vector has not been fully disclosed.
C2 communication:
- Implant issues DNS queries to attacker-controlled authoritative nameservers (ns1.studiotikva.com / ns2.studiotikva.com).
- The returned A-record value itself encodes an instruction — selecting direct HTTPS C2 vs. Google Apps Script relay, and carrying deployment identifiers.
- Direct channel: HTTPS to api.studiotikva.com endpoints (
/api/v1/update/check,/ac) mimicking software update traffic. - Relay channel: transactions proxied through Google Apps Script web apps, placing the effective C2 on Google IP space.
Persistence & anti-analysis: Modular DLL side-loading patterns consistent with legitimate-looking service DLLs; cloud-relay fallback defeats IP/domain blocklisting; per-transaction channel rotation defeats single-channel beacon detection; legitimate-update URL taxonomy (/api/v1/update/check) defeats shallow URL inspection.
MITRE ATT&CK mapping: T1071.001 (Web Protocols), T1071.004 (DNS), T1102.002 (Bidirectional Communication via Web Service), T1573 (Encrypted Channel), T1036.005 (Match Legitimate Name or Location), T1574.002 (DLL Side-Loading), T1027 (Obfuscated Files or Information).
IOC Analysis
The pulse contains 28 indicators spanning four types:
- IPv4 (2):
12.19.29.30,12.121.234.120— C2 and/or DNS resolver infrastructure. Operationalize as egress block entries and retro-hunt against firewall, proxy, and NetFlow telemetry for the last 90 days. - Domains (1):
studiotikva.com— attacker-registered C2 apex. Block at DNS layer (RPZ / protective DNS) and sinkhole where possible. - Hostnames (3):
api.studiotikva.com,ns1.studiotikva.com,ns2.studiotikva.com— the C2 API front and the authoritative nameservers powering the DNS channel-selection mechanism. Critical: the ns1/ns2 hostnames mean any internal host resolving*.studiotikva.comthrough these nameservers is likely implanted — hunt for DNS query logs, not just connection logs. - URLs (2):
https://api.studiotikva.com/api/v1/update/check,https://api.studiotikva.com/ac— tasking endpoints disguised as update checks. Proxy and TLS-inspection retro-hunt targets.
Operationalization guidance: Load indicators into your TIP with high confidence scoring and a 90-day lookback. Because CAV3RN can fall back to Google Apps Script relay, do not assume blocking the listed infrastructure severs C2 — also hunt for anomalous or sustained egress to script.google.com / script.googleusercontent.com from non-developer workstations. Tooling: SIEM retro-hunt (Sentinel/Splunk), Zeek/Suricata for DNS anomaly detection, EDR for module-name hunting (GoogleService.dll, CommunicationUxTheme.dll, texture.dll).
Detection Engineering
---
title: Project CAV3RN - DNS Query to Attacker Nameserver Infrastructure
id: 7f3a1c2e-9b4d-4e1a-a5c6-cav3rn000001
status: experimental
description: Detects DNS resolution of studiotikva.com infrastructure used by Project CAV3RN for channel selection and C2. A-record responses from these nameservers drive the implant's HTTPS vs Google Apps Script relay decision.
author: Security Arsenal Threat Intelligence
references:
- https://securelist.com/project-cav3rn-continues/120991/
date: 2026/08/15
modified: 2026/08/15
tags:
- attack.command_and_control
- attack.t1071.004
logsource:
category: dns
product: windows
detection:
selection:
query|contains:
- 'studiotikva.com'
- 'api.studiotikva.com'
- 'ns1.studiotikva.com'
- 'ns2.studiotikva.com'
condition: selection
falsepositives:
- Threat research and sandbox detonation
level: high
---
title: Project CAV3RN - Suspicious Module Names Masquerading as System or Google DLLs
id: 7f3a1c2e-9b4d-4e1a-a5c6-cav3rn000002
status: experimental
description: Detects load or image events for CAV3RN framework modules (GoogleService.dll, CommunicationUxTheme.dll, net.dll, rnp.dll, texture.dll) which masquerade as legitimate Windows or Google components.
author: Security Arsenal Threat Intelligence
references:
- https://securelist.com/project-cav3rn-continues/120991/
date: 2026/08/15
modified: 2026/08/15
tags:
- attack.defense_evasion
- attack.t1036.005
- attack.t1574.002
logsource:
category: image_load
product: windows
detection:
selection:
ImageLoaded|endswith:
- '\GoogleService.dll'
- '\CommunicationUxTheme.dll'
- '\texture.dll'
- '\rnp.dll'
filter_legit_paths:
ImageLoaded|startswith:
- 'C:\Program Files\Google\'
- 'C:\Program Files (x86)\Google\'
condition: selection and not 1 of filter_legit_paths*
falsepositives:
- Legitimate Google software loading GoogleService.dll from sanctioned install paths
level: high
---
title: Project CAV3RN - Anomalous Egress to Google Apps Script from Non-Browser Processes
id: 7f3a1c2e-9b4d-4e1a-a5c6-cav3rn000003
status: experimental
description: Detects network connections to Google Apps Script endpoints from processes other than browsers, consistent with CAV3RN's Apps Script C2 relay channel.
author: Security Arsenal Threat Intelligence
references:
- https://securelist.com/project-cav3rn-continues/120991/
date: 2026/08/15
modified: 2026/08/15
tags:
- attack.command_and_control
- attack.t1102.002
- attack.t1071.001
logsource:
category: network_connection
product: windows
detection:
selection:
DestinationHostname|contains:
- 'script.google.com'
- 'script.googleusercontent.com'
filter_browsers:
Image|endswith:
- '\chrome.exe'
- '\msedge.exe'
- '\firefox.exe'
- '\brave.exe'
- '\opera.exe'
condition: selection and not filter_browsers
falsepositives:
- Developer tooling, CI/CD pipelines, or IT automation legitimately calling Apps Script web apps
level: medium
// Project CAV3RN hunt: C2 infrastructure, module loads, and Apps Script relay abuse
// Microsoft Sentinel / Defender XDR — run with 90-day lookback
let cav3rn_iocs = dynamic(["studiotikva.com","api.studiotikva.com","ns1.studiotikva.com","ns2.studiotikva.com","12.19.29.30","12.121.234.120"]);
let cav3rn_modules = dynamic(["GoogleService.dll","CommunicationUxTheme.dll","net.dll","rnp.dll","texture.dll"]);
let browsers = dynamic(["chrome.exe","msedge.exe","firefox.exe","brave.exe","opera.exe"]);
union isfuzzy=true
(DeviceNetworkEvents
| where Timestamp > ago(90d)
| where RemoteUrl has_any (cav3rn_iocs) or RemoteIP in (cav3rn_iocs)
| project Timestamp, DeviceName, InitiatingProcessFileName, InitiatingProcessCommandLine, RemoteIP, RemoteUrl, ActionType),
(DeviceNetworkEvents
| where Timestamp > ago(90d)
| where RemoteUrl has_any ("script.google.com","script.googleusercontent.com")
| where not(InitiatingProcessFileName in~ (browsers))
| project Timestamp, DeviceName, InitiatingProcessFileName, InitiatingProcessCommandLine, RemoteIP, RemoteUrl, ActionType),
(DeviceImageLoadEvents
| where Timestamp > ago(90d)
| where FileName has_any (cav3rn_modules)
| where not(FolderPath startswith @"C:\Program Files\Google\" or FolderPath startswith @"C:\Program Files (x86)\Google\")
| project Timestamp, DeviceName, InitiatingProcessFileName, FileName, FolderPath, SHA256),
(DeviceEvents
| where Timestamp > ago(90d)
| where ActionType == "DnsQueryResponse" and AdditionalInfo has_any (cav3rn_iocs)
| project Timestamp, DeviceName, ActionType, AdditionalInfo)
| sort by Timestamp desc
# Project CAV3RN IOC Hunt Script - Security Arsenal
# Checks for CAV3RN module artifacts, suspicious network connections, and DNS cache evidence
# Run elevated on suspected endpoints; output to console and CSV
$report = @()
Write-Host "[*] Hunting for CAV3RN module files..." -ForegroundColor Cyan
$modules = @("GoogleService.dll","CommunicationUxTheme.dll","texture.dll","rnp.dll")
$searchPaths = @("$env:ProgramFiles","${env:ProgramFiles(x86)}","$env:ProgramData","$env:APPDATA","$env:LOCALAPPDATA","$env:TEMP")
foreach ($path in $searchPaths) {
if (Test-Path $path) {
Get-ChildItem -Path $path -Recurse -Include $modules -ErrorAction SilentlyContinue |
Where-Object { $_.FullName -notmatch "Program Files(\\| \(x86\)\\)Google" } |
ForEach-Object {
$hash = (Get-FileHash $_.FullName -Algorithm SHA256 -ErrorAction SilentlyContinue).Hash
$report += [PSCustomObject]@{Type="File"; Indicator=$_.FullName; Detail=$hash; Time=$_.LastWriteTime}
}
}
}
Write-Host "[*] Checking active and recent network connections to CAV3RN infrastructure..." -ForegroundColor Cyan
$c2ips = @("12.19.29.30","12.121.234.120")
Get-NetTCPConnection -ErrorAction SilentlyContinue | Where-Object { $c2ips -contains $_.RemoteAddress } | ForEach-Object {
$proc = Get-Process -Id $_.OwningProcess -ErrorAction SilentlyContinue
$report += [PSCustomObject]@{Type="Network"; Indicator=$_.RemoteAddress; Detail="$($proc.ProcessName) [$($proc.Path)] State=$($_.State)"; Time=Get-Date}
}
Write-Host "[*] Inspecting DNS client cache for studiotikva.com resolution..." -ForegroundColor Cyan
Get-DnsClientCache -ErrorAction SilentlyContinue | Where-Object { $_.Entry -match "studiotikva\.com" } | ForEach-Object {
$report += [PSCustomObject]@{Type="DNSCache"; Indicator=$_.Entry; Detail="$($_.Data) Type=$($_.Type)"; Time=Get-Date}
}
Write-Host "[*] Checking loaded DLLs in running processes for CAV3RN modules..." -ForegroundColor Cyan
Get-Process | ForEach-Object {
try {
$_.Modules | Where-Object { $modules -contains $_.ModuleName } | ForEach-Object {
$report += [PSCustomObject]@{Type="LoadedModule"; Indicator=$_.FileName; Detail="Process: $($_.ModuleName)"; Time=Get-Date}
}
} catch {}
}
Write-Host "[*] Reviewing scheduled tasks for suspicious persistence referencing DLL execution..." -ForegroundColor Cyan
Get-ScheduledTask | ForEach-Object {
$task = $_
$task.Actions | Where-Object { $_.Execute -match "rundll32|regsvr32" -or $_.Arguments -match ($modules -join "|") } | ForEach-Object {
$report += [PSCustomObject]@{Type="ScheduledTask"; Indicator=$task.TaskName; Detail="$($_.Execute) $($_.Arguments)"; Time=Get-Date}
}
}
Write-Host "[*] Checking Run keys for DLL-based persistence..." -ForegroundColor Cyan
$runKeys = @("HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run","HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run","HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce","HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce")
foreach ($key in $runKeys) {
if (Test-Path $key) {
Get-ItemProperty $key | Get-Member -MemberType NoteProperty | ForEach-Object {
$val = (Get-ItemProperty $key).$($_.Name)
if ($val -match "rundll32|regsvr32|\.dll") {
$report += [PSCustomObject]@{Type="RunKey"; Indicator="$key\$($_.Name)"; Detail=$val; Time=Get-Date}
}
}
}
}
if ($report.Count -gt 0) {
$report | Format-Table -AutoSize
$report | Export-Csv -Path "CAV3RN_Hunt_$(Get-Date -Format 'yyyyMMdd_HHmmss').csv" -NoTypeInformation
Write-Host "[ALERT] $($report.Count) potential CAV3RN artifacts found. Results exported to CSV." -ForegroundColor Red
} else {
Write-Host "[OK] No CAV3RN indicators found on this host." -ForegroundColor Green
}
Response Priorities
Immediate (0–4 hours):
- Block
studiotikva.comand all subdomains at DNS/protective-DNS (RPZ) and proxy layers; block12.19.29.30and12.121.234.120at egress firewalls. - Deploy the Sigma and KQL detections above; run the PowerShell hunt script on high-value endpoints, prioritizing systems with Israel-region business context.
- Retro-hunt 90 days of DNS logs for any resolution of
*.studiotikva.com— remember the A-record itself is the instruction channel, so a single resolved query may indicate an implant check-in.
24 hours:
- Hunt for anomalous non-browser egress to
script.google.com/script.googleusercontent.com; establish a baseline of legitimate Apps Script usage (developers, automation) and alert on the remainder. - If any implant activity is confirmed, treat as a full espionage incident: assume credential and data access, force enterprise-wide credential resets for affected users (espionage frameworks harvest tokens and cached credentials for lateral movement), and isolate affected hosts for forensic imaging rather than wiping.
- Review TLS inspection logs for the
/api/v1/update/checkand/acURL patterns against any host, in case infrastructure has rotated.
1 week:
- Architecturally restrict egress: implement default-deny outbound policies for servers and restrict workstation egress to categorized destinations; Google Apps Script relay abuse is only effective because trusted-cloud egress is broadly permitted.
- Deploy application allowlisting to prevent unsigned DLL side-loading (WDAC or AppLocker), targeting the masquerade-module technique.
- Deploy DNS analytics (NXDOMAIN ratio, rare TLD/first-seen domain alerting, query-per-host baselines) to catch instruction-encoded A-record channels generically, not just this campaign.
- Brief threat-hunt teams on trusted-cloud C2 tradecraft (T1102.002) as a standing hunt hypothesis.
Related Resources
Security Arsenal Incident Response Managed SOC & MDR Services AlertMonitor Threat Detection From The Dark Side Intel Hub
Is your security operations ready?
Get a free SOC assessment or see how AlertMonitor cuts through alert noise with automated triage.