LoFP LoFP / icmp packets are used in a variety of ways to help troubleshoot networking issues and ensure the proper flow of traffic. as such, it is possible that a large icmp packet could be perfectly legitimate. if large icmp packets are associated with command and control traffic, there will typically be a large number of these packets observed over time. if the search is providing a large number of false positives, you can modify the macro `detect_large_outbound_icmp_packets_filter` to adjust the byte threshold or add specific ip addresses to an allow list.

Techniques

Sample rules

Detect Large Outbound ICMP Packets

Description

The following analytic identifies outbound ICMP packets with a size larger than 1,000 bytes. It leverages the Network_Traffic data model to detect unusually large ICMP packets that are not blocked and are destined for external IP addresses. This activity is significant because threat actors often use ICMP for command and control communication, and large ICMP packets can indicate data exfiltration or other malicious activities. If confirmed malicious, this could allow attackers to maintain covert communication channels, exfiltrate sensitive data, or further compromise the network.

Detection logic


| tstats `security_content_summariesonly` count earliest(_time) as firstTime
  latest(_time) as lastTime values(All_Traffic.action) as action values(All_Traffic.bytes) as bytes from
  datamodel=Network_Traffic where All_Traffic.action !=blocked  (All_Traffic.protocol=icmp OR All_Traffic.transport=icmp) All_Traffic.bytes
  > 1000 AND NOT All_Traffic.dest_ip IN ("10.0.0.0/8","172.16.0.0/12","192.168.0.0/16") by All_Traffic.src_ip  All_Traffic.dest_ip All_Traffic.protocol

| `drop_dm_object_name("All_Traffic")`  
| iplocation dest_ip  
| `security_content_ctime(firstTime)`  
| `security_content_ctime(lastTime)` 
| `detect_large_outbound_icmp_packets_filter`