THREAT-VPN-CredentialStuffing IBM QRadar · QRadar

Detect VPN and Remote Access Credential Stuffing / Brute Force in IBM QRadar

Credential stuffing and brute force against VPN and remote access gateways is a persistent initial access vector for ransomware operators and nation-state actors. NCSC and CISA have repeatedly warned about Fortinet, Cisco ASA/FTD, Ivanti Connect Secure, Palo Alto GlobalProtect, and SonicWall VPN gateways being targeted. Attackers use credential databases from prior breaches and automated tools to test credentials at scale against VPN login portals. Unlike password spraying against M365, VPN credential stuffing often targets a single account at high frequency (bypassing account lockout through IP rotation) or uses a large pool of breached credential pairs. Volt Typhoon (China-nexus) specifically targets small business routers and VPN gateways for SOHO Living-off-the-Land access. Compromised VPN access gives attackers direct network access, bypassing perimeter defences entirely.

MITRE ATT&CK

Tactic
Credential Access Initial Access

QRadar Detection Query

IBM QRadar (QRadar)
sql
SELECT
  DATEFORMAT(starttime, 'yyyy-MM-dd HH:mm') AS TimeWindow,
  sourceip AS SourceIP,
  destinationip AS DeviceAddress,
  username AS TargetUser,
  LOGSOURCETYPENAME(devicetype) AS VendorType,
  COUNT(*) AS FailureCount,
  COUNT(DISTINCT username) AS UniqueUsers,
  COUNT(DISTINCT sourceip) AS UniqueSourceIPs
FROM events
WHERE
  LOGSOURCETYPENAME(devicetype) ILIKE ANY ('%Fortinet%', '%Cisco%', '%Palo Alto%', '%SonicWall%', '%Pulse Secure%', '%Ivanti%', '%Juniper%')
  AND (
    LOWER(category) ILIKE ANY ('%vpn%', '%ssl-vpn%', '%ipsec%', '%remote-access%', '%authentication%')
    OR LOWER(qidname(qid)) ILIKE ANY ('%vpn%', '%remote access%')
  )
  AND (
    LOWER(eventdirection) IN ('l2r', 'r2l')
    AND (
      LOWER(category) ILIKE ANY ('%fail%', '%failure%', '%invalid%', '%rejected%', '%denied%')
      OR magnitude >= 5
    )
  )
  AND starttime >= NOW() - 86400000
GROUP BY
  DATEFORMAT(starttime, 'yyyy-MM-dd HH:mm'),
  sourceip,
  destinationip,
  username,
  LOGSOURCETYPENAME(devicetype)
HAVING COUNT(*) >= 20 OR COUNT(DISTINCT username) >= 5
ORDER BY FailureCount DESC
high severity high confidence

Detects high-volume VPN authentication failures indicative of credential stuffing or brute force against VPN/remote access gateways (Fortinet, Cisco, Palo Alto, SonicWall, Ivanti, Juniper). Alerts when 20+ failures or 5+ unique users are targeted within a 15-minute window from a source IP.

Data Sources

Fortinet FortiGateCisco ASACisco FTDPalo Alto NetworksSonicWallIvanti Connect SecureJuniper Networks

Required Tables

events

False Positives & Tuning

  • Misconfigured VPN clients repeatedly failing authentication due to expired certificates or wrong credentials
  • Automated service accounts or monitoring tools performing repeated VPN connectivity checks
  • Legitimate mass remote access during large-scale business events such as all-hands days or system migrations
  • Security teams running authorised penetration tests or VPN stress tests
  • Users with forgotten or recently changed passwords generating repeated failures across multiple devices

Other platforms for THREAT-VPN-CredentialStuffing


Testing Methodology

Validate this detection against 1 adversary technique from Atomic Red Team. Each test below lists the behaviour to exercise and the telemetry you should expect to see. Executable commands and cleanup steps are available with Pro.

  1. Test 1VPN Credential Stuffing Simulation via Python Requests

    Expected signal: VPN authentication logs record multiple failures (error: invalid credentials) for multiple usernames from the test IP within the 15-minute window.

Unlock Pro Content

Get the full detection package for THREAT-VPN-CredentialStuffing including response playbook, investigation guide, and atomic red team tests.

Response PlaybookInvestigation GuideHunting QueriesAtomic Red Team TestsTuning Guidance

Related Detections