Skip to content

Commit 405d89d

Browse files
committed
Update multiple_alerts_elastic_defend_panw_fortigate_by_host.toml
1 parent 36d85e8 commit 405d89d

File tree

1 file changed

+1
-32
lines changed

1 file changed

+1
-32
lines changed

rules/cross-platform/multiple_alerts_elastic_defend_panw_fortigate_by_host.toml

Lines changed: 1 addition & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -58,41 +58,10 @@ FROM logs-* metadata _id
5858
Esql.process_executable_values = VALUES(process.executable),
5959
Esql.host_id_values = VALUES(host.id),
6060
Esql.user_name_values = VALUES(user.name),
61-
Esql.destination_ip_values = VALUES(destination.ip)
62-
by Esql.source_ip
63-
| where Esql.event_module_distinct_count >= 2
64-
| keep Esql.alerts_count, Esql.host_sFROM logs-endpoint.alerts-default-*, logs-panw.panos-default-*, logs-fortinet_fortigate.log-default-* metadata _id
65-
| WHERE
66-
// PANW suspicious events
67-
(event.dataset == "panw.panos" and
68-
event.action in ("virus_detected", "wildfire_virus_detected", "c2_communication", "spyware_detected", "large_upload", "denied") or network.application in ("dns-over-https", "ms-dc-replication")) or
69-
70-
// Fortigate suspicious events
71-
(event.dataset == "fortinet_fortigate.log" and
72-
(event.action in ("outbreak-prevention", "deny", "infected", "blocked") or message like "backdoor*" or message like "Proxy*" or message like "anomaly*" or message like "P2P*" or message like "misc*" or message like "DNS.Over.HTTPS" or message like "Remote.Access")) or
73-
74-
// Elastic Defend Alerts
75-
(event.module == "endpoint" and event.dataset == "endpoint.alerts")
76-
77-
// extract source.ip from PANW or Fortigate events and host.ip from Elastic Defend alert
78-
|eval fw_alert_source_ip = CASE(event.dataset in ("panw.panos", "fortinet_fortigate.log"), source.ip, null),
79-
elastic_defend_alert_host_ip = CASE(event.module == "endpoint" and event.dataset == "endpoint.alerts", host.ip, null)
80-
| eval Esql.source_ip = COALESCE(fw_alert_source_i, elastic_defend_alert_host_ip)
81-
| where Esql.source_ip is not null
82-
83-
// group by host_source_ip shared between FG/PANW and Elastic Defend
84-
| stats Esql.alerts_count = COUNT(*),
85-
Esql.event_module_distinct_count = COUNT_DISTINCT(event.module),
86-
Esql.event_module_values = VALUES(event.module),
87-
Esql.message_values = VALUES(message),
88-
Esql.event_action_values = VALUES(event.action),
89-
Esql.process_executable_values = VALUES(process.executable),
90-
Esql.host_id_values = VALUES(host.id),
91-
Esql.user_name_values = VALUES(user.name)
61+
DD = VALUES(destination.ip)
9262
by Esql.source_ip
9363
| where Esql.event_module_distinct_count >= 2
9464
| keep Esql.alerts_count, Esql.source_ip, Esql.host_id_values, Esql.user_name_values, Esql.event_module_values, Esql.message_values, Esql.process_executable_values
95-
ource_ip, Esql.destination_ip_values, Esql.host_id_values, Esql.user_name_values, Esql.event_module_values, Esql.message_values, Esql.process_executable_values
9665
'''
9766
note = """## Triage and analysis
9867

0 commit comments

Comments
 (0)