CiscoSEGEvent
| where NetworkDirection =~ 'Incoming'
| extend rec_domain = extract(@'@(.*)', 1, DstUserName)
| extend s_domain = extract(@'@(.*)', 1, SrcUserName)
| where s_domain != rec_domain
| where tostring(AdditionalFields) has 'ESASDRDomainAge'
| extend domain_age = extract(@'ESASDRDomainAge":"(.*days)"', 1, tostring(AdditionalFields))
| extend yy = toint(extract(@'(\d+)\syears', 1, domain_age))
| extend mm = toint(extract(@'(\d+)\smonths', 1, domain_age))
| extend dd = toint(extract(@'(\d+)\sdays', 1, domain_age))
| where isempty(yy)
| where isempty(mm) or mm <= 2
| extend AccountCustomEntity = SrcUserName
queryPeriod: 1h
description: |
'Detects suspicious sender domain age.'
kind: Scheduled
query: |
CiscoSEGEvent
| where NetworkDirection =~ 'Incoming'
| extend rec_domain = extract(@'@(.*)', 1, DstUserName)
| extend s_domain = extract(@'@(.*)', 1, SrcUserName)
| where s_domain != rec_domain
| where tostring(AdditionalFields) has 'ESASDRDomainAge'
| extend domain_age = extract(@'ESASDRDomainAge":"(.*days)"', 1, tostring(AdditionalFields))
| extend yy = toint(extract(@'(\d+)\syears', 1, domain_age))
| extend mm = toint(extract(@'(\d+)\smonths', 1, domain_age))
| extend dd = toint(extract(@'(\d+)\sdays', 1, domain_age))
| where isempty(yy)
| where isempty(mm) or mm <= 2
| extend AccountCustomEntity = SrcUserName
tactics:
- InitialAccess
triggerOperator: gt
OriginalUri: https://github.com/Azure/Azure-Sentinel/blob/master/Solutions/CiscoSEG/Analytic Rules/CiscoSEGSuspiciousSenderDomain.yaml
id: ef0a253c-95b5-48e1-8ebc-dbeb073b9338
version: 1.0.3
entityMappings:
- entityType: Account
fieldMappings:
- identifier: Name
columnName: AccountCustomEntity
triggerThreshold: 0
status: Available
relevantTechniques:
- T1566
name: Cisco SEG - Suspicious sender domain
severity: Medium
requiredDataConnectors:
- dataTypes:
- CommonSecurityLog
connectorId: CefAma
queryFrequency: 1h