Cisco Secure Firewall - Snort Rule Triggered Across Multiple Hosts

Original Source: [splunk source]
Name:Cisco Secure Firewall - Snort Rule Triggered Across Multiple Hosts
id:a4c76d0a-56b6-44be-814b-939746c4d406
version:1
date:2025-04-14
author:Nasreddine Bencherchali, Splunk
status:production
type:Anomaly
Description:This analytic identifies Snort intrusion signatures that have been triggered by ten or more distinct internal IP addresses within a one-hour window. It leverages Cisco Secure Firewall Threat Defense logs and focuses on the IntrusionEvent event type to detect activity that may indicate broad targeting or mass exploitation attempts. This behavior is often associated with opportunistic scanning, worm propagation, or automated exploitation of known vulnerabilities across multiple systems. If confirmed malicious, this could represent the early phase of a coordinated attack aiming to gain a foothold on several hosts or move laterally across the environment.
Data_source:
  • -Cisco Secure Firewall Threat Defense Intrusion Event
search:`cisco_secure_firewall` EventType=IntrusionEvent
| bin _time span=1h
| stats dc(src_ip) as unique_src_ips, values(src_ip) as src_ip
min(_time) as firstTime max(_time) as lastTime
Values(dest) as dest
Values(dest_port) as dest_port
Values(rule) as rule
Values(transport) as transport
Values(app) as app
by signature_id, signature class_desc MitreAttackGroups InlineResult InlineResultReason
| where unique_src_ips >= 10
| `security_content_ctime(firstTime)`
| `security_content_ctime(lastTime)`
| `cisco_secure_firewall___snort_rule_triggered_across_multiple_hosts_filter`


how_to_implement:This search requires Cisco Secure Firewall Threat Defense Logs, which includes the IntrusionEvent EventType. This search uses an input macro named `cisco_secure_firewall`. We strongly recommend that you specify your environment-specific configurations (index, source, sourcetype, etc.) for Cisco Secure Firewall Threat Defense logs. Replace the macro definition with configurations for your Splunk environment. The search also uses a post-filter macro designed to filter out known false positives. The logs are to be ingested using the Splunk Add-on for Cisco Security Cloud (https://splunkbase.splunk.com/app/7404). The intrusion access policy must also be configured.
known_false_positives:False positives should be minimal. Simultaneous vulnerability scanning across multiple internal hosts might trigger this, as well as some snort rules that are noisy. Disable those if necessary or increase the threshold.
References:
  -https://www.cisco.com/c/en/us/td/docs/security/firepower/741/api/FQE/secure_firewall_estreamer_fqe_guide_740.pdf
drilldown_searches:
name:'View the detection results for - "$src_ip$" and "$signature_id$"'
search:'%original_detection_search% | search src_ip = "$src_ip$" and signature_id = "$signature_id$"'
earliest_offset:'$info_min_time$'
latest_offset:'$info_max_time$'
name:'View risk events for the last 7 days for - "$src_ip$" and "$signature_id$"'
search:'| from datamodel Risk.All_Risk | search normalized_risk_object IN ("$src_ip$", "$signature_id$") starthoursago=168 | stats count min(_time) as firstTime max(_time) as lastTime values(search_name) as "Search Name" values(risk_message) as "Risk Message" values(analyticstories) as "Analytic Stories" values(annotations._all) as "Annotations" values(annotations.mitre_attack.mitre_tactic) as "ATT&CK Tactics" by normalized_risk_object | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)`'
earliest_offset:'$info_min_time$'
latest_offset:'$info_max_time$'
tags:
  analytic_story:
    - 'Cisco Secure Firewall Threat Defense Analytics'
  asset_type:Network
  security_domain:network
  mitre_attack_id:
    - 'T1105'
    - 'T1027'
  product:
    - 'Splunk Enterprise'
    - 'Splunk Cloud'
    - 'Splunk Enterprise Security'

tests:
name:'True Positive Test'
 attack_data:
  data: https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/cisco_secure_firewall_threat_defense/intrusion_event/intrusion_events.log
  source: not_applicable
  sourcetype: cisco:sfw:estreamer
manual_test:None