Event
| where Source == 'Semperis-Operation-Log' and EventID == 20002
| sort by TimeGenerated desc
| parse RenderedDescription with "Operation: " Operation "Access Granted:" AccessGranted "Result: " Result "Details: " * "Trustee Name: " TrusteeName " Correlation ID: " * " Source: " HostIP "WebSite Target" *
| extend host = tostring(HostIP)
| extend HostIP = trim_end(":", HostIP)
| project TimeGenerated, UserName, HostIP, _ResourceId
| order by TimeGenerated desc
| top 10 by TimeGenerated
| count
triggerThreshold: 0
queryFrequency: 30m
id: 0e105444-fe13-4ce6-9239-21880076a3f9
alertDetailsOverride:
alertDescriptionFormat: A failed logon was detected to the DSP system.
alertDisplayNameFormat: Failed Logon -- Alert from Semperis Directory Services Protector
kind: Scheduled
triggerOperator: gt
severity: Medium
eventGroupingSettings:
aggregationKind: SingleAlert
requiredDataConnectors:
- connectorId: SemperisDSP
dataTypes:
- dsp_parser
query: |
Event
| where Source == 'Semperis-Operation-Log' and EventID == 20002
| sort by TimeGenerated desc
| parse RenderedDescription with "Operation: " Operation "Access Granted:" AccessGranted "Result: " Result "Details: " * "Trustee Name: " TrusteeName " Correlation ID: " * " Source: " HostIP "WebSite Target" *
| extend host = tostring(HostIP)
| extend HostIP = trim_end(":", HostIP)
| project TimeGenerated, UserName, HostIP, _ResourceId
| order by TimeGenerated desc
| top 10 by TimeGenerated
| count
queryPeriod: 30m
name: Semperis DSP Failed Logons
OriginalUri: https://github.com/Azure/Azure-Sentinel/blob/master/Solutions/Semperis Directory Services Protector/Analytic Rules/Semperis_DSP_Failed_Logons.yaml
status: Available
description: |
'Alerts when there are failed logons in the DSP system.'
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"workspace": {
"type": "String"
}
},
"resources": [
{
"id": "[concat(resourceId('Microsoft.OperationalInsights/workspaces/providers', parameters('workspace'), 'Microsoft.SecurityInsights'),'/alertRules/0e105444-fe13-4ce6-9239-21880076a3f9')]",
"name": "[concat(parameters('workspace'),'/Microsoft.SecurityInsights/0e105444-fe13-4ce6-9239-21880076a3f9')]",
"type": "Microsoft.OperationalInsights/workspaces/providers/alertRules",
"kind": "Scheduled",
"apiVersion": "2022-11-01",
"properties": {
"displayName": "Semperis DSP Failed Logons",
"description": "'Alerts when there are failed logons in the DSP system.'\n",
"severity": "Medium",
"enabled": true,
"query": "Event\n| where Source == 'Semperis-Operation-Log' and EventID == 20002\n| sort by TimeGenerated desc \n| parse RenderedDescription with \"Operation: \" Operation \"Access Granted:\" AccessGranted \"Result: \" Result \"Details: \" * \"Trustee Name: \" TrusteeName \" Correlation ID: \" * \" Source: \" HostIP \"WebSite Target\" *\n| extend host = tostring(HostIP)\n| extend HostIP = trim_end(\":\", HostIP)\n| project TimeGenerated, UserName, HostIP, _ResourceId\n| order by TimeGenerated desc\n| top 10 by TimeGenerated\n| count\n",
"queryFrequency": "PT30M",
"queryPeriod": "PT30M",
"triggerOperator": "GreaterThan",
"triggerThreshold": 0,
"suppressionDuration": "PT1H",
"suppressionEnabled": false,
"alertRuleTemplateName": "0e105444-fe13-4ce6-9239-21880076a3f9",
"eventGroupingSettings": {
"aggregationKind": "SingleAlert"
},
"alertDetailsOverride": {
"alertDescriptionFormat": "A failed logon was detected to the DSP system.",
"alertDisplayNameFormat": "Failed Logon -- Alert from Semperis Directory Services Protector"
},
"customDetails": null,
"entityMappings": null,
"OriginalUri": "https://github.com/Azure/Azure-Sentinel/blob/master/Solutions/Semperis Directory Services Protector/Analytic Rules/Semperis_DSP_Failed_Logons.yaml",
"status": "Available"
}
}
]
}