Detection rules › Kusto
Corelight - Network Service Scanning Multiple IP Addresses
'Identify scanning of services that may be available on the internal network.'
MITRE ATT&CK coverage
| Tactic | Techniques |
|---|---|
| Initial Access | T1566 Phishing |
Rule body kusto
id: 599570d4-06f8-4939-8e29-95cd003f1abd
name: Corelight - Network Service Scanning Multiple IP Addresses
description: |
'Identify scanning of services that may be available on the internal network.'
severity: Medium
status: Available
requiredDataConnectors:
- connectorId: Corelight
dataTypes:
- Corelight_v2_conn
- Corelight_v2_conn_red
- corelight_conn
- corelight_conn_red
queryFrequency: 1h
queryPeriod: 1h
triggerOperator: gt
triggerThreshold: 0
tactics:
- InitialAccess
relevantTechniques:
- T1566
query: |
let threshold = 25;
union corelight_conn, corelight_conn_red
| where local_resp == true
| where local_orig == true
| where conn_state in~ ('S0', 'REJ')
| where history !contains 'D'
| summarize count() by id_orig_h, id_resp_p, bin(TimeGenerated, 1m)
| where count_ > threshold
entityMappings:
- entityType: IP
fieldMappings:
- identifier: Address
columnName: id_orig_h
version: 2.1.0
kind: Scheduled
Stages and Predicates
Parameters
let threshold = 25;
union (2 sources)
Each leg below queries one source; the rule matches if any leg does. Sources: corelight_conn, corelight_conn_red
Leg 1: corelight_conn
Leg 2: corelight_conn_red
Applied to the combined result
| where local_resp == true | where local_orig == true | where conn_state in~ ('S0', 'REJ') | where history !contains 'D' | summarize count() by id_orig_h, id_resp_p, bin(TimeGenerated, 1m) | where count_ > threshold
Exclusions
Top-level NOT(...) conjuncts: predicates this rule actively suppresses.
| Field | Kind | Excluded values |
|---|---|---|
history | contains | D |
Indicators
Each row is a field, operator, and value that the rule matches. The corpus column counts how many other rules in the catalog look for the same combination: high numbers point to widely-used, community-vetted indicators. Blank or 1 shows that the indicator is specific to this rule.
| Field | Kind | Values |
|---|---|---|
conn_state | in |
|
count_ | gt |
|
local_orig | eq |
|
local_resp | eq |
|
Output fields
Fields the rule emits when it matches. Chronicle authors list these in the outcome block; they appear on the detection and $risk_score drives alerting. Sentinel / Defender XDR rules build them up through project / summarize / extend stages. Sentinel maps these into alert fields via entityMappings and customDetails; Defender XDR custom detections surface them as alert fields directly.
| Field | Source |
|---|---|
id_orig_h | summarize |
id_resp_p | summarize |