let threshold = 100;
PulseConnectSecure
| where Messages startswith "Login failed"
| summarize dcount(User) by Computer, bin(TimeGenerated, 15m)
| where dcount_User > threshold
kind: Scheduled
relevantTechniques:
- T1110
id: 1fa1528e-f746-4794-8a41-14827f4cb798
queryPeriod: 1h
triggerThreshold: 0
entityMappings:
- fieldMappings:
- columnName: Computer
identifier: FullName
entityType: Host
version: 1.0.4
severity: Medium
query: |
let threshold = 100;
PulseConnectSecure
| where Messages startswith "Login failed"
| summarize dcount(User) by Computer, bin(TimeGenerated, 15m)
| where dcount_User > threshold
triggerOperator: gt
requiredDataConnectors:
- datatypes:
- Syslog
connectorId: SyslogAma
OriginalUri: https://github.com/Azure/Azure-Sentinel/blob/master/Solutions/Pulse Connect Secure/Analytic Rules/PulseConnectSecureVPN-DistinctFailedUserLogin.yaml
status: Available
description: |
'This query identifies evidence of failed login attempts from a large number of distinct users on a Pulse Connect Secure VPN server'
name: PulseConnectSecure - Large Number of Distinct Failed User Logins
tactics:
- CredentialAccess
queryFrequency: 1h