NGINX - Multiple user agents for single source
| Id | 83a0b48f-1cb7-4b4f-a018-23c3203a239b |
| Rulename | NGINX - Multiple user agents for single source |
| Description | Detects requests with different user agents from one source in short timeframe. |
| Severity | Medium |
| Tactics | InitialAccess |
| Techniques | T1190 T1133 |
| Required data connectors | CustomLogsAma |
| Kind | Scheduled |
| Query frequency | 1h |
| Query period | 1h |
| Trigger threshold | 0 |
| Trigger operator | gt |
| Source Uri | https://github.com/Azure/Azure-Sentinel/blob/master/Solutions/NGINX HTTP Server/Analytic Rules/NGINXDifferentUAsFromSingleIP.yaml |
| Version | 1.0.2 |
| Arm template | 83a0b48f-1cb7-4b4f-a018-23c3203a239b.json |
let threshold = 5;
NGINXHTTPServer
| summarize makeset(HttpUserAgentOriginal) by SrcIpAddr, bin(TimeGenerated, 5m)
| extend ua_count = array_length(set_HttpUserAgentOriginal)
| where ua_count > threshold
| extend IPCustomEntity = SrcIpAddr
name: NGINX - Multiple user agents for single source
id: 83a0b48f-1cb7-4b4f-a018-23c3203a239b
description: |
'Detects requests with different user agents from one source in short timeframe.'
triggerThreshold: 0
entityMappings:
- fieldMappings:
- columnName: IPCustomEntity
identifier: Address
entityType: IP
version: 1.0.2
triggerOperator: gt
query: |
let threshold = 5;
NGINXHTTPServer
| summarize makeset(HttpUserAgentOriginal) by SrcIpAddr, bin(TimeGenerated, 5m)
| extend ua_count = array_length(set_HttpUserAgentOriginal)
| where ua_count > threshold
| extend IPCustomEntity = SrcIpAddr
tactics:
- InitialAccess
kind: Scheduled
queryFrequency: 1h
severity: Medium
queryPeriod: 1h
requiredDataConnectors:
- dataTypes:
- NGINX_CL
connectorId: CustomLogsAma
status: Available
OriginalUri: https://github.com/Azure/Azure-Sentinel/blob/master/Solutions/NGINX HTTP Server/Analytic Rules/NGINXDifferentUAsFromSingleIP.yaml
relevantTechniques:
- T1190
- T1133