Back to Intelligence

Candiru Spyware Delivered Through Ad Networks: Detecting and Defending Against the Discover-Tech Zero-Click Campaign

SA
Security Arsenal Team
October 18, 2026
10 min read

Reporting published by SecurityWeek has confirmed something many of us in threat intelligence have warned about for years: the commercial surveillance industry doesn't need to compromise your perimeter — it can buy its way in through the advertising ecosystem. Israeli ad-tech company Discover-Tech operated as a delivery channel for Candiru (tracked by Microsoft as Sourgum/DevilsTongue), one of the most prolific mercenary spyware vendors. Its advertisements were used to fingerprint and track devices at massive scale, then selectively deliver zero-click spyware to chosen targets.

This is a structural threat, not a single vulnerability. The ad delivery infrastructure that touches every browser, every mobile app, and every smart TV in your environment was weaponized to profile devices and push exploits to high-value individuals — journalists, dissidents, executives, government personnel — with no user interaction required. If your organization has employees who handle sensitive data, travel to high-risk regions, or work in government, legal, media, or human rights contexts, this campaign model applies to you directly.

There is no CVE to patch here. The defensive response is architectural: harden endpoints against browser-based exploitation, constrain ad delivery inside your perimeter, and instrument your SOC to catch the post-exploitation behaviors that zero-click chains cannot hide.

Technical Analysis

What Happened

Discover-Tech's advertising platform served two functions simultaneously:

  1. Mass device fingerprinting and tracking. Ad content embedded fingerprinting logic capable of profiling device type, OS version, browser build, and patch posture at scale. This gave the operator a continuously updated inventory of vulnerable devices worldwide — essentially a targeting database built by the victims' own browsers.

  2. Selective zero-click exploitation. Once a device was fingerprinted and confirmed as a valuable, exploitable target, the ad channel served an exploit chain delivering Candiru's spyware implant. The zero-click nature means no click, no consent prompt, no download dialog — rendering of the ad content itself triggered the compromise. Only selected targets received the exploit; the rest of the population received normal ads, which is precisely what makes this delivery model so evasive.

Why Ad-Borne Zero-Click Delivery Is Uniquely Dangerous

  • It bypasses user-awareness training entirely. Zero-click exploitation cannot be prevented by teaching users not to click. The attack surface is the rendering engine itself.
  • It inherits the reach of legitimate infrastructure. Ad networks are whitelisted by default in most proxy and DNS-filtering stacks. Blocking "advertising" wholesale is operationally painful, so it rarely happens — and the attackers know it.
  • Selection logic defeats honeypots. Because exploits are only served to fingerprint-verified targets, sandbox detonation and reputation scanning of ad content typically sees benign payloads.
  • Fingerprinting data has resale value. Even devices never selected for exploitation were profiled — OS build, patch level, and behavioral data suitable for future targeting.

Candiru Background

Candiru is an Israeli mercenary spyware vendor, sanctioned by the U.S. Department of Commerce (Entity List) and tracked by Microsoft as Sourgum, with its implant family designated DevilsTongue. Its historical chains have used browser and OS zero-days, and its implants feature modular persistence, credential theft, file exfiltration, and messaging-app interception. Microsoft's previous analysis documented DevilsTongue persistence via COM hijacking and its C2 operating over HTTPS with domain-fronting-friendly infrastructure.

Exploitation Status

Confirmed active, in-the-wild exploitation. This is not theoretical research — Discover-Tech's ads were operationally used to infect real targets. No CVE identifier has been publicly attached to the delivery chain in this reporting, and defenders should not wait for one. The exploit payloads rotate; the delivery model is the durable threat.

Detection & Response

The ad content and fingerprinting JavaScript execute inside the browser sandbox and leave little reliable endpoint telemetry. Where defenders can win is post-exploitation: every zero-click browser chain must eventually escape the renderer, spawn processes, establish persistence, and beacon to C2. Those behaviors are detectable. The detections below focus there — they are high-fidelity, low-noise, and applicable whether the implant is DevilsTongue or any successor.

YAML
---
title: Browser Process Spawning Shell or Script Interpreter
description: Detects web browsers spawning cmd, PowerShell, rundll32, regsvr32, or other LOLBins — a hallmark of browser exploit chain post-exploitation, consistent with ad-delivered zero-click spyware such as Candiru/DevilsTongue.
references:
  - https://www.securityweek.com/israeli-ad-firm-doubled-as-candirus-zero-click-spyware-delivery-channel/
  - https://attack.mitre.org/techniques/T1189/
  - https://attack.mitre.org/techniques/T1059/
author: Security Arsenal
status: experimental
logsource:
  category: process_creation
  product: windows
detection:
  selection_parent:
    ParentImage|endswith:
      - '\chrome.exe'
      - '\msedge.exe'
      - '\firefox.exe'
      - '\brave.exe'
      - '\opera.exe'
      - '\iexplore.exe'
  selection_child:
    Image|endswith:
      - '\cmd.exe'
      - '\powershell.exe'
      - '\pwsh.exe'
      - '\wscript.exe'
      - '\cscript.exe'
      - '\mshta.exe'
      - '\rundll32.exe'
      - '\regsvr32.exe'
      - '\wmiprvse.exe'
      - '\schtasks.exe'
      - '\bitsadmin.exe'
  condition: selection_parent and selection_child
falsepositives:
  - Rare browser-integrated enterprise tooling; investigate parent-child pairs before whitelisting
level: high
---
title: COM Hijack Persistence via Missing TreatAs or Delegate Keys
description: Detects registry writes consistent with COM hijacking persistence, a technique Microsoft documented in Candiru's DevilsTongue implant for surviving reboots without touching common autorun locations.
references:
  - https://www.securityweek.com/israeli-ad-firm-doubled-as-candirus-zero-click-spyware-delivery-channel/
  - https://attack.mitre.org/techniques/T1546/015/
author: Security Arsenal
status: experimental
logsource:
  category: registry_set
  product: windows
detection:
  selection:
    TargetObject|contains:
      - '\Software\Classes\CLSID\'
    TargetObject|endswith:
      - '\TreatAs\'
      - '\InprocServer32\'
      - '\LocalServer32\'
    Details|contains:
      - '\Users\'
      - '\AppData\'
      - '\ProgramData\'
  filter_known_updaters:
    Image|endswith:
      - '\msiexec.exe'
      - '\setup.exe'
  condition: selection and not filter_known_updaters
falsepositives:
  - Legitimate per-user application installs registering COM objects under HKCU
level: high
---
title: Implant-Like Network Beacon from Unsigned User-Directory Binary
description: Detects outbound HTTPS connections from unsigned executables running from user-writable directories shortly after system boot or browser activity — matching DevilsTongue-style implants that stage payloads in AppData and beacon over HTTPS.
references:
  - https://www.securityweek.com/israeli-ad-firm-doubled-as-candirus-zero-click-spyware-delivery-channel/
  - https://attack.mitre.org/techniques/T1071/001/
author: Security Arsenal
status: experimental
logsource:
  category: network_connection
  product: windows
detection:
  selection:
    DestinationPort:
      - 443
      - 8443
    Image|contains:
      - '\AppData\Local\'
      - '\AppData\Roaming\'
      - '\ProgramData\'
      - '\Users\Public\'
  filter_signed:
    Signed: 'true'
  condition: selection and not filter_signed
falsepositives:
  - Portable applications and auto-updaters running from AppData; baseline per-environment
level: medium
KQL — Microsoft Sentinel / Defender
// Hunt: browser renderer spawning LOLBins — post-exploitation signature of zero-click browser chains
// Tune the browser list to your managed browser estate. Run over 30 days for retro-hunting.
let browsers = dynamic(["chrome.exe", "msedge.exe", "firefox.exe", "brave.exe", "opera.exe", "iexplore.exe"]);
let lolbins = dynamic(["cmd.exe", "powershell.exe", "pwsh.exe", "wscript.exe", "cscript.exe", "mshta.exe", "rundll32.exe", "regsvr32.exe", "schtasks.exe", "bitsadmin.exe", "wmiprvse.exe"]);
DeviceProcessEvents
| where TimeGenerated > ago(30d)
| where InitiatingProcessFileName in~ (browsers)
| where FileName in~ (lolbins)
| project TimeGenerated, DeviceName, AccountName,
          Browser = InitiatingProcessFileName,
          ChildProcess = FileName,
          ChildCommandLine = ProcessCommandLine,
          InitiatingProcessCommandLine, SHA256, ReportId
| order by TimeGenerated desc;

// Hunt: low-prevalence outbound HTTPS from browsers directly (not via renderer child processes)
// Ad-delivered fingerprinting beacons often hit freshly registered, low-reputation domains.
DeviceNetworkEvents
| where TimeGenerated > ago(7d)
| where InitiatingProcessFileName in~ (dynamic(["chrome.exe", "msedge.exe", "firefox.exe"]))
| where RemotePort in (443, 8443)
| where isnotempty(RemoteUrl)
| summarize ConnectionCount = count(),
            Devices = dcount(DeviceId),
            FirstSeen = min(TimeGenerated),
            LastSeen = max(TimeGenerated)
          by RemoteUrl
| where Devices <= 3   // rare destinations across the fleet — candidate fingerprinting/selection infrastructure
| order by Devices asc, ConnectionCount desc;
VQL — Velociraptor
-- Velociraptor hunt: browser-spawned child processes across the fleet
-- Deploy as a hunt artifact to identify endpoints that may have executed an ad-delivered exploit chain.
SELECT Pid, Ppid, Name, Exe, CommandLine, Username, CreateTime,
       getpid_info(pid=Ppid).Name AS ParentName,
       getpid_info(pid=Ppid).Exe AS ParentExe
FROM pslist()
WHERE ParentExe =~ '(?i)(chrome|msedge|firefox|brave|opera|iexplore)\\.exe$'
  AND Name =~ '(?i)(cmd|powershell|pwsh|wscript|cscript|mshta|rundll32|regsvr32|schtasks|bitsadmin)'

-- Companion artifact: persistence check — COM TreatAs hijack keys under HKCU
SELECT FullPath, Name, Data.value AS Value, Mtime
FROM glob(globs='HKEY_USERS\\*\\Software\\Classes\\CLSID\\*\\TreatAs',
          accessor='registry')
ORDER BY Mtime DESC
PowerShell
# Security Arsenal - Zero-Click Spyware Exposure Audit (Windows)
# Run elevated. Audits persistence surfaces and confirms exploit-hardening telemetry is enabled.

# 1. Verify process creation auditing with command line capture (required for the Sigma/KQL rules above)
$audit = auditpol /get /subcategory:"Process Creation" 2>$null
Write-Host "[i] Process Creation auditing: $audit"
$cmdline = Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\Audit' -Name 'ProcessCreationIncludeCmdLine_Enabled' -ErrorAction SilentlyContinue
if ($cmdline.ProcessCreationIncludeCmdLine_Enabled -ne 1) {
    Write-Host '[!] Command-line capture NOT enabled - enabling now'
    Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\Audit' -Name 'ProcessCreationIncludeCmdLine_Enabled' -Value 1
}

# 2. Hunt for COM hijack persistence (DevilsTongue technique) under user hives
Write-Host '[i] Scanning HKCU CLSID TreatAs keys for COM hijacking...'
Get-ChildItem 'Registry::HKEY_USERS' -ErrorAction SilentlyContinue | ForEach-Object {
    $base = "Registry::$($_.PSChildName)\Software\Classes\CLSID"
    if (Test-Path $base) {
        Get-ChildItem $base -Recurse -ErrorAction SilentlyContinue |
            Where-Object { $_.PSChildName -in 'TreatAs','InprocServer32','LocalServer32' } |
            Select-Object Name, @{N='Values';E={ ($_.GetValueNames() | ForEach-Object { $_.ToString() + '=' + $_.ToString() }) -join '; ' }}
    }
}

# 3. Flag unsigned executables running from user-writable paths (implant staging locations)
Get-Process | Where-Object { $_.Path -match 'AppData|ProgramData|Users\\Public' } | ForEach-Object {
    $sig = Get-AuthenticodeSignature $_.Path -ErrorAction SilentlyContinue
    if ($sig.Status -ne 'Valid') {
        Write-Host "[!] UNSIGNED process from user-writable path: $($_.Name) - $($_.Path)"
    }
}

# 4. Confirm Exploit Protection / ASR telemetry flows to your EDR (Defender example)
$asr = Get-MpPreference -ErrorAction SilentlyContinue
Write-Host "[i] Defender ASR rules configured: $($asr.AttackSurfaceReductionRules_Ids.Count)"
Bash / Shell
#!/usr/bin/env bash
# Security Arsenal - macOS/iOS-adjacent and Linux exposure checks for zero-click spyware risk
# Zero-click browser/ad chains target mobile and desktop alike. macOS: verify Lockdown Mode posture for at-risk users.

# macOS: check for unexpected configuration profiles (common spyware/C2 management channel)
if command -v profiles >/dev/null 2>&1; then
  echo "[i] Installed configuration profiles (review for unknown entries):"
  profiles show -type configuration 2>/dev/null
fi

# macOS: list LaunchAgents/Daemons with unsigned or user-directory binaries
echo "[i] Persistence items referencing user-writable paths:"
grep -rEl "Library/Application Support|/tmp|/var/tmp" \
  ~/Library/LaunchAgents /Library/LaunchAgents /Library/LaunchDaemons 2>/dev/null

# Linux: outbound beacon triage — long-lived connections on 443 from non-browser processes
echo "[i] Outbound 443 connections from non-standard processes:"
ss -tnp 2>/dev/null | grep ':443 ' | grep -viE 'chrome|firefox|edge|proxy|squid'

Remediation

There is no patch for "advertising." Remediation is layered and architectural:

1. Protect high-risk users first. Enable Apple Lockdown Mode on iOS/macOS devices belonging to executives, journalists, legal counsel, government-affiliated staff, and anyone traveling to high-risk regions. Lockdown Mode is specifically designed to blunt mercenary-spyware chains like Candiru's by disabling JIT compilation, blocking most message attachments, and constraining web technologies. On Android, ensure devices run current builds and enable Google Play Protect plus Advanced Protection Program for associated accounts.

2. Constrain ad delivery at the network edge. Deploy DNS-layer ad and tracker blocking (e.g., Pi-hole-class or enterprise DNS security with ad/tracker categories enabled) for corporate networks and VPN profiles. This does not just improve privacy — it removes the delivery vector for fingerprinting scripts and exploit staging. Where full ad blocking is not feasible, block third-party script execution in ads via secure browser policies.

3. Harden browsers as exploited infrastructure, not productivity tools. Enforce site isolation, disable third-party cookies, and restrict JIT where operationally acceptable (Edge: Enhanced Security Mode; Chrome: enable Site Isolation and consider V8 sandbox enforcement policies). Keep browsers on the stable channel with automatic updates enforced — Candiru historically burns n-days as readily as zero-days against unpatched populations.

4. Instrument for post-exploitation, because prevention will sometimes fail. Deploy the Sigma rules and KQL hunts above. The browser-spawning-LOLBin rule alone is one of the highest-fidelity detectors available against this entire class of attack and fires on almost nothing legitimate.

5. Audit persistence surfaces. Review COM registrations under HKCU, scheduled tasks, and Run keys on endpoints used by high-risk staff. Candiru's DevilsTongue specifically used COM hijacking — it survives casual IR triage that only checks the standard autoruns list.

6. Treat unusual device behavior on high-risk users as an IR trigger, not a helpdesk ticket. Battery drain, thermal anomalies, unexpected reboots, or spikes in mobile data usage on a targeted individual's device warrant forensic imaging (e.g., MVT — Mobile Verification Toolkit) rather than a wipe-and-reimage.

7. Engage intelligence-sharing channels. Candiru is on the U.S. Commerce Department Entity List. If you identify suspected DevilsTongue activity, report to CISA (report@cisa.gov) and consult vendor threat intel from Microsoft and Citizen Lab, which maintain the most complete public record of this actor's infrastructure.

The lesson of Discover-Tech is that the commercial surveillance market has industrialized delivery: your adversary no longer needs to phish your people when they can rent the ad pipe your people already trust. Defense has to move to the same layer — the network edge, the browser, and the post-exploitation behaviors that no implant can avoid.

Related Resources

Security Arsenal Managed SOC Services AlertMonitor Platform Book a SOC Assessment soc-mdr Intel Hub

Is your security operations ready?

Get a free SOC assessment or see how AlertMonitor cuts through alert noise with automated triage.