Cisco Secure Firewall - Potential Data Exfiltration

Original Source: [splunk source]
Name:Cisco Secure Firewall - Potential Data Exfiltration
id:3d8536b6-52b4-4c3e-b695-3f2e90bb22be
version:1
date:2025-04-02
author:Nasreddine Bencherchali, Splunk
status:production
type:Anomaly
Description:The following analytic detects potentially suspicious large outbound data transfers from internal to external networks. It leverages Cisco Secure Firewall Threat Defense logs and calculates the total volume of data exchanged per connection by summing InitiatorBytes and ResponderBytes. Connections exceeding 100 MB are flagged, as these may indicate unauthorized data exfiltration, especially if initiated by unusual users, hosts, or processes. This analytic is scoped to inside-to-outside flows using a macro (cisco_secure_firewall_inside_to_outside) to abstract environment-specific zone definitions. If confirmed malicious, this behavior may reflect data staging and exfiltration over an encrypted or stealthy transport.
Data_source:
  • -Cisco Secure Firewall Threat Defense Connection Event
search:`cisco_secure_firewall` EventType=ConnectionEvent `cisco_secure_firewall_inside_to_outside`
| eval total_bytes = InitiatorBytes + ResponderBytes
| eval total_mb = round(total_bytes / 1024 / 1024, 2)
| where total_mb >= 100
| eval Exfiltrated = total_mb + " MB"
| stats min(_time) as firstTime max(_time) as lastTime
Values(url) as url
Values(rule) as rule
Values(dest_port) as dest_port
by src_ip, dest, Exfiltrated, transport, action
| `security_content_ctime(firstTime)`
| `security_content_ctime(lastTime)`
| `cisco_secure_firewall___potential_data_exfiltration_filter`


how_to_implement:This search requires Cisco Secure Firewall Threat Defense Logs, which includes the ConnectionEvent EventType. This search uses two input macros named `cisco_secure_firewall` and `cisco_secure_firewall_inside_to_outside`. We strongly recommend that you specify your environment-specific configurations (index, source, sourcetype, etc.) for Cisco Secure Firewall Threat Defense logs. Replace the macro definitions 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 access policy must also enable logging.
known_false_positives:Large outbound transfers may occur due to legitimate activities such as cloud backups, file syncing, OS or application updates, or developer build deployments. Backup servers, CI/CD pipelines, and enterprise sync tools (e.g., OneDrive, Dropbox) may exhibit similar patterns. Additional validation using user context, scheduled task windows, or endpoint telemetry is recommended to reduce false positives.
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$"'
search:'%original_detection_search% | search src_ip = "$src_ip$"'
earliest_offset:'$info_min_time$'
latest_offset:'$info_max_time$'
name:'View risk events for the last 7 days for - "$src_ip$"'
search:'| from datamodel Risk.All_Risk | search normalized_risk_object IN ("$src_ip$") 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:
    - 'T1041'
    - 'T1567.002'
    - 'T1048.003'
  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/connection_event/connection_events.log
  source: not_applicable
  sourcetype: cisco:sfw:estreamer
manual_test:None