COBALT STRIKE BEACON HTTP C2 heuristic detection

By monitoring and analyzing HTTP/HTTPS network traffic at the firewall, and utilizing heuristics and cloud security services to detect Cobalt Strike Beacon C2 traffic, the problem of the inability to effectively identify this malware in existing technologies has been solved, thus improving network security protection capabilities.

CN119698801BActive Publication Date: 2026-01-02PALO ALTO NETWORKS INC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202380057327.X
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2022-07-29
Filing Date
2023-06-30
Publication Date
2026-01-02
Estimated Expiration
2043-06-30

AI Technical Summary

Technical Problem

Existing anti-malware security solutions are unable to effectively detect Cobalt Strike Beacon C2 HTTP/HTTPS transactions, especially new malware variants, posing significant security risks to enterprises.

Method used

By employing behavior-based detection technology, the Cobalt Strike Beacon C2 business activities are identified and appropriate actions are taken by monitoring HTTP/HTTPS network traffic at the firewall, using heuristics and cloud security services for pre-filtering and analysis.

Benefits of technology

It enables efficient detection of Cobalt Strike Beacon C2 HTTP/HTTPS services, effectively preventing malware from intruding into enterprise networks and improving network security.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119698801B_ABST
    Figure CN119698801B_ABST
Patent Text Reader

Abstract

Techniques for Cobalt Strike Beacon HTTP C2 heuristic detection are disclosed. In some embodiments, a system / process / computer program product for Cobalt Strike Beacon HTTP C2 heuristic detection includes monitoring hypertext transfer protocol (HTTP) network traffic at a firewall; pre-filtering the monitored HTTP network traffic at the firewall to select a subset of the HTTP network traffic to forward to a cloud security service; determining, based on a plurality of heuristics, whether the subset of the HTTP network traffic is associated with Cobalt Strike Beacon HTTP C2 traffic activity; and performing an action in response to detecting Cobalt Strike Beacon HTTP C2 traffic activity.
Need to check novelty before this filing date? Find Prior Art

Description

BACKGROUND

[0001] Malware is a general term often used to refer to rogue software (e.g., including a variety of hostile, intrusive, and / or otherwise unwanted software). Malware can be in the form of code, scripts, active content, and / or other software. Example uses of malware include disrupting computer and / or network operations, stealing proprietary information (e.g., confidential information such as identity, financial, and / or intellectual property related information), and / or gaining access to private / proprietary computer systems and / or computer networks. Unfortunately, as efforts are developed to help detect and mitigate malware, the authors of the evil creations find ways to circumvent such efforts. Thus, there is a constant need for improving techniques for identifying and mitigating malware. BRIEF DESCRIPTION OF DRAWINGS

[0002] Various embodiments of the application are disclosed in the following detailed description and in the drawings.

[0003] Figure 1 An example of an environment in which a malicious application ("malware") is detected and prevented from causing harm is illustrated.

[0004] Figure 2A An embodiment of a data appliance is illustrated.

[0005] Figure 2B A functional diagram of a logical component that is an embodiment of a data appliance.

[0006] Figure 3 An example of a logical component that can be included in a system for analyzing a sample is illustrated.

[0007] Figure 4A Portions of example embodiments of a detection system and a quality check system for processing network traffic to perform Cobalt Strike Beacon C2 HTTP traffic detection in accordance with some embodiments are illustrated.

[0008] Figure 4B Portions of example embodiments of a detection system and a quality check system for processing network traffic to perform Cobalt Strike Beacon C2 HTTPS traffic detection in accordance with some embodiments are illustrated.

[0009] Figure 5A Example attributes associated with Cobalt Strike Beacon HTTP traffic for heuristic detection in accordance with some embodiments are illustrated.

[0010] Figure 5BFIG. illustrates additional example attributes associated with Cobalt Strike Beacon HTTP traffic for heuristic detection, according to some embodiments.

[0011] Figure 5C FIG. illustrates additional example attributes associated with Cobalt Strike Beacon HTTP traffic for heuristic detection, according to some embodiments.

[0012] Figure 5D FIG. illustrates additional example attributes associated with Cobalt Strike Beacon HTTP traffic for heuristic detection, according to some embodiments.

[0013] Figure 5E FIG. illustrates additional example attributes associated with Cobalt Strike Beacon HTTPS traffic for heuristic detection, according to some embodiments.

[0014] Figure 5F FIG. illustrates additional example attributes associated with Cobalt Strike Beacon HTTPS traffic for heuristic detection, according to some embodiments.

[0015] Figure 5G FIG. illustrates additional example attributes associated with Cobalt Strike Beacon HTTPS traffic for heuristic detection, according to some embodiments.

[0016] Figure 6 is a flowchart of a process for Cobalt Strike Beacon HTTP C2 heuristic detection, according to some embodiments.

[0017] Figure 7 is a flowchart of a process for Cobalt Strike Beacon HTTPS C2 heuristic detection, according to some embodiments.

[0018] Figure 8 FIG. illustrates a checksum algorithm for logic probing for HTTP / HTTPS Cobalt Strike team server detection, according to some embodiments.

[0019] Figure 9A FIG. illustrates an example DNS request for active probing of a target, according to some embodiments.

[0020] Figure 9B FIG. illustrates an example DNS response for active probing of a target, according to some embodiments.

[0021] Figure 10 is a flowchart of a process for HTTP / HTTPS probing of Cobalt Strike Team Server detection according to some embodiments.

[0022] Figure 11 is a flowchart of a process for DNS probing of Cobalt Strike Team Server detection according to some embodiments. DETAILED DESCRIPTION

[0023] The application can be implemented in numerous ways, including as a process; an apparatus; a system; a composition of matter; a computer program product; and / or a processor, such as a processor configured to execute instructions stored on and / or provided by a memory coupled to the processor. In this specification, these implementations, or any other form that the application can take, can be referred to as techniques. In general, the order of the steps of disclosed processes can be altered, except

[0024] The detailed description set forth below in connection with the appended drawings Figure 1 A detailed description of one or more embodiments of the application is provided below along with The application is described in connection with such embodiments, but the application is not limited to any embodiment. The scope of the application is limited only by the claims and the application encompasses numerous alternatives, modifications and equivalents. Numerous specific details are set forth in the following description in order to provide a thorough understanding of the application. These details are provided for the purpose of example and the application can be practiced according to the claims without some or all of these specific details. For the purpose of clarity, technical material that is known in the technical fields related to the application has not been described in detail so that the application is not unnecessarily obscured.

[0025] Firewalls generally protect networks from unauthorized access while allowing authorized communications to pass through the firewall. Firewalls are generally a device, a set of devices, or software executing on a device that provides firewall functionality for network access. For example, a firewall can be integrated into an operating system of a device (e.g., a computer, a smart phone, or other type of device capable of network communication). Firewalls can also be integrated into or executed as one or more software applications on various types of devices such as computer servers, gateways, network / routing devices (e.g., network routers), and data appliances (e.g., security appliances or other types of specialized devices), and certain operations can be implemented in specialized hardware such as ASICs or FPGAs in various implementations.

[0026] Firewalls generally deny or allow network transmissions based on a set of rules. These sets of rules are generally referred to as policies (e.g., network policies or network security policies). For example, a firewall can filter inbound traffic by applying a set of rules or policies to prevent unwanted external traffic from reaching a protected device. A firewall can also filter outbound traffic by applying a set of rules or policies (e.g., allow, block, monitor, notify or log, and / or other actions can be specified in firewall rules or firewall policies that can be triggered based on various criteria such as described herein). A firewall can also filter local network (e.g., intranet) traffic by similarly applying a set of rules or policies.

[0027] Security devices (e.g., security appliances, security gateways, security services, and / or other security devices) can include various security functionality (e.g., firewall, anti-malware, intrusion prevention / detection, data loss prevention (DLP), and / or other security functionality), networking functionality (e.g., routing, quality of service (QoS), workload balancing of network-related resources, and / or other networking functionality), and / or other functionality. For example, routing functionality can be based on source information (e.g., IP address and port), destination information (e.g., IP address and port), and protocol information.

[0028] Basic packet filtering firewalls filter network communication traffic by inspecting individual packets transmitted on a network (e.g., packet filtering firewalls or first generation firewalls, which are stateless packet filtering firewalls). Stateless packet filtering firewalls generally inspect individual packets themselves and apply rules based on the inspected packets (e.g., using a combination of source and destination address information, protocol information, and port numbers of the packets).

[0029] Application firewalls can also perform application layer filtering (e.g., application layer filtering firewalls or second generation firewalls, which operate at the application level of the TCP / IP stack). Application layer filtering firewalls or application firewalls can generally identify certain applications and protocols (e.g., web browsing using hypertext transfer protocol (HTTP), domain name system (DNS) requests, file transfer using file transfer protocol (FTP), and various other types of applications and other protocols such as Telnet (remote login), DHCP, TCP, UDP, and TFTP (GSS)). For example, an application firewall can block unauthorized protocols that attempt to communicate over standard ports (e.g., an application firewall can generally be used to identify unauthorized protocols / out-of-policy protocols that attempt to sneak through by using non-standard ports for the protocol).

[0030] Stateful firewalls can also perform state-based packet inspection, in which each packet is inspected within the context of a series of packets associated with a flow of packets for the network transmission. This firewall technique is generally referred to as stateful packet inspection, since it maintains a record of all connections passing through the firewall and is able to determine whether a packet is the beginning of a new connection, part of an existing connection, or an invalid packet. For example, the connection state itself can be one of the criteria that triggers a rule within a policy.

[0031] As discussed above, advanced firewalls or next generation firewalls can perform both stateless packet filtering and stateful packet filtering as well as application layer filtering. Next generation firewalls can also perform additional firewall techniques. For example, certain newer firewalls, sometimes referred to as advanced firewalls or next generation firewalls, can also identify users and content (e.g., next generation firewalls). In particular, certain next generation firewalls extend the list of applications that these firewalls can automatically identify to thousands of applications. Examples of such next generation firewalls are commercially available from Palo Alto Networks, Inc. (e.g., Palo Alto Networks PA Series firewalls). For example, Palo Alto Networks next generation firewalls enable enterprises to identify and control applications, users, and content using a variety of identification technologies, such as the following: App-ID for accurate application identification, User-ID for user identification (e.g., by user or user group), and Content-ID for real-time content scanning (e.g., control web surfing and limit data and file transfers), rather than just ports, IP addresses, and packets. These identification technologies allow enterprises to use business relevant concepts to securely enable application usage, rather than following the traditional approach provided by traditional port blocking firewalls. Also, for application inspection, specialized hardware for next generation firewalls (e.g., implemented as specialized appliances) generally provides higher levels of performance than software executing on general purpose hardware (e.g., security appliances such as those provided by Palo Alto Networks, Inc. that use specialized, function-specific processing tightly integrated with single-pass software engines to maximize network throughput while minimizing latency).

[0032] Advanced or next generation firewalls can also be implemented using virtualized firewalls. Examples of such next generation firewalls are commercially available from Palo Alto Networks, Inc. (e.g., Palo Alto Networks VM Series firewalls that support a variety of commercial virtualization environments, including, for example ESXi TM and NSX TM , Netscaler SDX TM , KVM / OpenStack (Centos / RHEL, ) and Amazon Web Services (AWS), and the CN Series Container Next-Generation Firewall. For example, the virtualized firewall can support similar or identical Next-Generation Firewall and Advanced Threat Protection features available in the physical form factor appliance, allowing enterprises to safely enable applications flowing into and across their private, public, and hybrid cloud computing environments. Automation features, such as VM monitoring, dynamic address groups, and REST-based APIs allow enterprises to proactively monitor VM changes to dynamically feed that context to security policies, eliminating policy lag that can occur when VMs change.

[0033] Summary of techniques for Cobalt Strike Beacon HTTP / HTTPS C2 heuristic detection Generally, existing anti-malware security solutions often fail to detect new malware or new malware variants based on malware signatures (e.g., pre-defined patterns, such as Intrusion Prevention System (IPS) signatures). Specifically, if a malware signature for a new malware or a new malware variant does not yet exist, existing anti-malware security solutions typically fail to detect the new malware or the new malware variant (e.g., currently, signature-based content IPS solutions typically fail to effectively detect Cobalt Strike Beacon C2 traffic because using existing signature-based content IPS solutions can only detect default profile(s) or known profile(s) by default). Due to the inability to detect such new malware or new malware variants, these deficiencies associated with existing malware solutions expose enterprises to significant security risks.

[0034] Cobalt Strike is an example of a malware type that uses evasion techniques to bypass malware solutions that rely on pattern matching based on pre-existing malware signatures (e.g., penetration testing service providers (penetration testers) often use the Cobalt Strike (CS) tool to test commercially available security solutions, such as firewall security solutions). Cobalt Strike is a commercially / publically available kit that is often used by researchers and penetration testers. However, it can also be used by attackers / hackers to infiltrate enterprise networks for unauthorized / malicious purposes (e.g., to leak confidential / proprietary data associated with the enterprise network, etc.).

[0035] In particular, malware writers can configure themselves-defined command and control (C2 or C&C) profiles for Cobalt Strike to avoid relying on pattern-matching based malware solutions based on pre-existing malware signatures. The Cobalt Strike toolkit generates C2 traffic that can be based on various protocols, including hypertext transfer protocol (HTTP), hypertext transfer protocol secure (HTTPS), and domain name system (DNS) protocols.

[0036] Accordingly, what is needed are anti-malware security solutions that can efficiently and effectively detect Cobalt Strike Beacon C2 HTTP / HTTPS traffic.

[0037] Accordingly, new and improved techniques for Cobalt Strike Beacon HTTP / HTTPS C2 heuristic detection are disclosed.

[0038] A new malware detection solution is disclosed that includes a new behavior-based detection solution (e.g., using heuristic-based techniques) for efficiently and effectively detecting Cobalt Strike beacon command and control (C2 or C&C) traffic (e.g., a type of malicious network communication between a C2 server and malware on an infected host) using hypertext transfer protocol (HTTP) or hypertext transfer protocol secure (HTTPS) protocols. The new malware detection solution can use heuristics to determine a conclusion that a sample is malware to facilitate detection of Cobalt Strike Beacon C2 HTTP / HTTPS traffic based on monitored network traffic activity, even in the absence of existing IPS signatures that effectively detect Cobalt Strike Beacon C2 HTTP / HTTPS traffic.

[0039] In particular, a new behavior-based detection solution for detecting Cobalt Strike Beacon C2 HTTP / HTTPS traffic is disclosed that includes a detection system (e.g., including an intrusion prevention system (IPS)) and a quality check system. The detection system can facilitate detection of Cobalt Strike Beacon C2 HTTP / HTTPS traffic using heuristic-based techniques, such as described further below with respect to various embodiments.

[0040] In some embodiments, a system / process / computer program product for Cobalt Strike Beacon HTTP / HTTPS C2 heuristic detection includes monitoring HTTP / HTTPS network traffic at a firewall; pre-filtering the monitored HTTP / HTTPS network traffic at the firewall to select a subset of HTTPS network traffic to forward to a cloud security service; determining, based on a plurality of heuristics, whether the subset of HTTPS network traffic is associated with Cobalt Strike Beacon HTTP / HTTPS C2 traffic activity; and performing an action in response to detecting Cobalt Strike Beacon HTTP / HTTPS C2 traffic activity.

[0041] In some embodiments, a system / process / computer program product for Cobalt Strike Beacon HTTP / HTTPS C2 heuristic detection further includes storing previously detected Cobalt Strike Beacon HTTP / HTTPS C2 traffic activity using a fast match table of the detection system, wherein the fast match table of the detection system stores a triple of previously detected Cobalt Strike Beacon HTTP / HTTPS C2 traffic activity, and wherein the triple includes a source IP address, a destination IP address, and a destination port.

[0042] In some embodiments, a system / process / computer program product for Cobalt Strike Beacon HTTP / HTTPS C2 heuristic detection further includes storing data statistics based on automatic heuristic analysis of the subset of HTTP / HTTPS network traffic, wherein the data statistics are stored in a data statistics table of the detection system.

[0043] In some embodiments, a system / process / computer program product for Cobalt Strike Beacon HTTP / HTTPS C2 heuristic detection further includes performing validation of detected Cobalt Strike Beacon HTTP / HTTPS C2 traffic activity based on probing of a destination IP address associated with the detected Cobalt Strike Beacon HTTP / HTTPS C2 traffic activity and using a fingerprint data repository.

[0044] In some embodiments, a system / process / computer program product for Cobalt Strike Beacon HTTP / HTTPS C2 heuristic detection includes monitoring hypertext transfer protocol (HTTP) network traffic at a firewall; pre-filtering the monitored HTTP network traffic at the firewall to select a subset of the HTTP network traffic to forward to a cloud security service, wherein pre-filtering the monitored HTTP network traffic at the firewall to select a subset of the HTTP network traffic to forward to the cloud security service includes performing heuristic analysis of the HTTP network traffic to select the subset of the HTTP traffic to forward to the cloud security service for further analysis to detect potential Cobalt Strike Beacon HTTP C2 traffic, wherein the heuristic analysis of the HTTP network traffic includes determining the following to select the subset of the HTTP traffic to forward to the cloud security service for further analysis to detect potential Cobalt Strike Beacon HTTP C2 traffic: whether the network traffic includes a header value or URI length check that matches a range of 171 bytes to 256 bytes; and whether the network traffic includes a header value or URI length field that matches one of these types of encoding: base64, base64url, netbiosu, or mask; forwarding the subset of the HTTP network traffic to the cloud security service, wherein the cloud security service automatically determines whether the subset of the HTTP network traffic is associated with Cobalt Strike Beacon HTTP C2 traffic activity based on a plurality of heuristics; and receiving a response from the cloud security service that the subset of the HTTP network traffic is associated with Cobalt Strike Beacon HTTP C2 traffic activity; and performing an action in response to determining that the subset of the HTTP network traffic is associated with Cobalt Strike Beacon HTTP C2 traffic activity.

[0045] In some embodiments, the system / process / computer program product for Cobalt Strike Beacon HTTP / HTTPS C2 heuristic detection further includes, wherein the cloud security service automatically determines whether the subset of the HTTP network traffic is associated with Cobalt Strike Beacon HTTP C2 traffic activity based on a plurality of heuristics including performing data statistical checks for behavioral-based detection of performing Cobalt Strike Beacon HTTP C2 traffic activity, the checks including checking timestamps of at least the first twelve sessions to determine whether this is a Gaussian distribution or a normal distribution.

[0046] Example techniques for cobalt strike beacon HTTPS C2 heuristic detection

[0047] In some embodiments, a system / process / computer program product for Cobalt Strike Beacon HTTPS C2 heuristic detection includes monitoring hypertext transfer protocol secure (HTTPS) network traffic at a firewall; pre-filtering the monitored HTTPS network traffic at the firewall to select a subset of the HTTPS network traffic to forward to a cloud security service; determining, based on a plurality of heuristics, whether the subset of the HTTPS network traffic is associated with Cobalt Strike Beacon HTTPS C2 traffic activity; and performing an action in response to detecting Cobalt Strike Beacon HTTPS C2 traffic activity.

[0048] In some embodiments, a system / process / computer program product for Cobalt Strike Beacon HTTPS C2 heuristic detection further includes, wherein a fast match table of the detection system stores previously detected Cobalt Strike Beacon HTTPS C2 traffic activity.

[0049] In some embodiments, a system / process / computer program product for Cobalt Strike Beacon HTTPS C2 heuristic detection further includes, wherein a fast match table of the detection system stores a triple of previously detected Cobalt Strike Beacon HTTPS C2 traffic activity, wherein the triple includes a source IP address, a destination IP address, and a destination port.

[0050] In some embodiments, a system / process / computer program product for Cobalt Strike Beacon HTTPS C2 heuristic detection further includes, wherein data statistics based on automated heuristic analysis of the subset of the HTTPS network traffic are stored in a data statistics table of the detection system.

[0051] In some embodiments, a system / process / computer program product for Cobalt Strike Beacon HTTPS C2 heuristic detection further includes performing validation on detected Cobalt Strike Beacon HTTPS C2 traffic activity.

[0052] In some embodiments, the system / process / computer program product for Cobalt Strike Beacon HTTPS C2 heuristic detection further includes performing validation of the detected Cobalt Strike Beacon HTTPS C2 traffic activity based on probing of a destination IP address associated with the detected Cobalt Strike Beacon HTTPS C2 traffic activity.

[0053] In some embodiments, the system / process / computer program product for Cobalt Strike Beacon HTTPS C2 heuristic detection further includes performing validation of the detected Cobalt Strike Beacon HTTPS C2 traffic activity based on probing of a destination IP address associated with the detected Cobalt Strike Beacon HTTPS C2 traffic activity and using a fingerprint data store.

[0054] Accordingly, in accordance with some embodiments, new and improved security solutions are disclosed that facilitate Cobalt Strike Beacon HTTP / HTTPS C2 heuristic detection using a security platform (e.g., a firewall (FW) / next generation firewall (NGFW), a network sensor that functions on behalf of a firewall, or another (virtual) device / component that can implement security policies using the disclosed techniques, including, for example, Palo Alto Networks PA Series Next-Generation Firewalls, Palo Alto Networks VM Series virtualized Next-Generation Firewalls, and CN Series container Next-Generation Firewalls, and / or other commercially available virtual or container-based firewalls that can similarly implement and be configured to perform the disclosed techniques).

[0055] These and other embodiments and examples for Cobalt Strike Beacon HTTP / HTTPS C2 heuristic detection will be further described below.

[0056] Example system architecture for Cobalt Strike Beacon HTTP / HTTPS C2 heuristic detection

[0057] Accordingly, in some embodiments, the disclosed technology includes providing a security platform (e.g., security function(s) / platform that can be implemented using a firewall (FW) / next generation firewall (NGFW), a network sensor that acts on behalf of a firewall, or another (virtual) device / component that can implement security policies using the disclosed technology, such as PANOS executing on a commercially available virtual / physical NGFW solution available from Palo Alto Networks, or another security platform / NFGW, including, for example, Palo Alto Networks PA Series Next-Generation Firewalls, Palo Alto Networks VM Series Virtualized Next-Generation Firewalls, and CN Series Container Next-Generation Firewalls and / or other commercially available virtual or container-based firewalls that can similarly implement and be configured to perform the disclosed technology), that is configured to provide DPI capabilities (e.g., including stateful inspection), e.g., to apply the disclosed technology to automatically detect CobaltStrike beacon C2 HTTP / HTTPS traffic, as further described below.

[0058] Figure 1 An example of an environment in which malicious applications (“malware”) are detected and prevented from causing harm is illustrated. As will be described in greater detail below, malware classification (e.g., by security platform 122) can be shared and / or refined in various ways between various entities included in the illustrated environment. Also, using the techniques described herein, devices such as end client devices 104-110 can be protected from such malware (e.g., including previously unknown malware / new variants of malware, such as C2 malware). Figure 1

[0059] “Malware” as used herein refers to an application that engages in behavior that a user does not approve of / if fully informed would not approve of, whether or not it is done secretly (and whether or not it is illegal). Examples of malware include ransomware, Trojans, viruses, rootkits, spyware, hacking tools, etc. One example of malware is a desktop / mobile application that encrypts data stored by a user (e.g., ransomware). Another example of malware is C2 malware, such as similarly described above. Other forms of malware (e.g., keyloggers) can also be detected and / or blocked using the disclosed technology for sample traffic based self-learning malware detection, as will be further described herein.

[0060] ​The techniques described herein can be used in conjunction with various platforms (e.g., servers, computing appliances, virtual / container environments, desktops, mobile devices, gaming platforms, embedded systems, etc.) and / or for automated detection of various forms of malware (e.g., new malware and / or variants of malware, such as C2 malware, etc.). In Figure 1 In the illustrated example environment, client devices 104-108 are laptop computers, desktop computers, and a tablet computer, respectively, that are present in enterprise network 140. Client device 110 is a laptop computer that is present outside of enterprise network 140.

[0061] Data appliance 102 is configured to enforce policies regarding communications between client devices, such as client devices 104 and 106, and nodes outside of enterprise network 140 (e.g., nodes reachable via external network 118). Examples of such policies include policies governing traffic shaping, quality of service, and traffic routing. Other examples of policies include security policies, such as policies requiring scanning of incoming (and / or outgoing) email attachments, website content, files exchanged through instant messaging programs, and / or other file transfers for threats. In some embodiments, data appliance 102 is also configured to enforce policies with respect to traffic that stays within enterprise network 140.

[0062] Figure 2A An embodiment of a data appliance is illustrated. In various embodiments, the illustrated example is representative of physical components included in data appliance 102. Specifically, data appliance 102 includes a high-performance multi-core central processing unit (CPU) 202 and random access memory (RAM) 204. Data appliance 102 also includes storage 210, such as one or more hard disks or solid state storage units. In various embodiments, data appliance 102 stores (whether in RAM 204, storage 210, and / or other appropriate locations) information used to monitor enterprise network 140 and implement the disclosed techniques. Examples of such information include application identifiers, content identifiers, user identifiers, requested URLs, IP address mappings, policies and other configuration information, signatures, hostname / URL classification information, malware profiles, and machine learning (ML) models (e.g., such as for sample-based self-learning malware detection, including C2 ML models, as further described herein). Data appliance 102 can also include one or more optional hardware accelerators. For example, data appliance 102 can include a cryptography engine 206 configured to perform encryption and decryption operations and one or more field programmable gate arrays (FPGAs) 208 configured to perform matching, act as a network processor, and / or perform other tasks.

[0063] The functions described herein as being performed by the data appliance 102 can be provided / implemented in various ways. For example, the data appliance 102 can be a special purpose device or collection of devices. The functions provided by the data appliance 102 can also be integrated into software on or executed as software on a general purpose computer, computer server, gateway, and / or network / routing device. In some embodiments, at least some of the services described as being provided by the data appliance 102 are instead (or additionally) provided to a client device (e.g., client device 104 or client device 110) by software executing on the client device.

[0064] Whenever the data appliance 102 is described as performing a task, individual components, a subset of components, or all components of the data appliance 102 can cooperate to perform the task. Similarly, whenever a component of the data appliance 102 is described as performing a task, a subcomponent can perform the task and / or the component can perform the task with other components. In various embodiments, portions of the data appliance 102 are provided by one or more third parties. Various logical components and / or features of the data appliance 102 can be omitted, and the techniques described herein adapted accordingly, depending on factors such as the amount of computing resources available to the data appliance 102. Similarly, additional logical components / features can be included in embodiments of the data appliance 102 as appropriate. One example of a component included in the data appliance 102 in various embodiments is an application identification engine configured to identify applications (e.g., using various application signatures to identify applications based on packet flow analysis). For example, the application identification engine can determine the type of traffic involved in a session, such as web browsing—social network, web browsing—news, SSH, etc.

[0065] Figure 2B is a functional diagram of logical components of an embodiment of a data appliance. In various embodiments, the examples shown are representative of logical components that can be included in the data appliance 102. Unless otherwise specified, the various logical components of the data appliance 102 can be implemented in various ways, including as a set of one or more scripts (e.g., written in Java, python, etc., if applicable).

[0066] As shown, the data appliance 102 includes a firewall and includes a management plane 232 and a data plane 234. The management plane is responsible for managing user interactions, such as by providing a user interface for configuring policies and viewing log data. The data plane is responsible for managing data, such as by performing packet processing and session handling.

[0067] The network processor 236 is configured to receive packets from client devices, such as client device 108, and provide them to the data plane 234 for processing. When the flow module 238 identifies a packet as part of a new session, it creates a new session flow. Subsequent packets will be identified as belonging to the session based on flow lookup. SSL decryption, if applicable, is applied by the SSL decryption engine 240. Otherwise, the processing by the SSL decryption engine 240 is omitted. The decryption engine 240 can assist the data appliance 102 in inspecting and controlling SSL / TLS and SSH encrypted traffic, thereby helping to stop threats that can otherwise still be hidden in encrypted traffic. The decryption engine 240 can also assist in preventing sensitive content from leaving the enterprise network 140. Decryption can be selectively controlled (e.g., enabled or disabled) based on parameters such as: URL classification, traffic source, traffic destination, user, user group, and port. In addition to decryption policies (e.g., specifying which sessions to decrypt), decryption profiles can be assigned to control various options for sessions controlled by the policies. For example, a particular cipher suite and encryption protocol version can be required to be used.

[0068] The application identification (APP-ID) engine 242 is configured to determine what type of traffic a session involves. As one example, the application identification engine 242 can recognize a GET request in received data and conclude that the session requires an HTTP decoder. In some cases, such as a web browsing session, the identified application can change, and such changes will be recorded by the data appliance 102. For example, a user can initially browse to an enterprise Wiki (classified as "Web Browsing - Productivity" based on the URL visited) and then to a social networking site (classified as "Web Browsing - Social Network" based on the URL visited). Different types of protocols have corresponding decoders.

[0069] Based on the determinations made by the application identification engine 242, the threat engine 244 sends the packets to the appropriate decoder, which is configured to assemble the packets (which can be received out of order) into the correct order, perform tokenization and extract out information. The threat engine 244 also performs signature matching to determine what should happen to the packets. The SSL encryption engine 246 can re-encrypt the decrypted data as needed. The packets are forwarded for transmission (e.g., to a destination) using the forwarding module 248.

[0070] Also as Figure 2BAs shown, policies 252 are received and stored in management plane 232. The policies can include one or more rules that can be specified using domain and / or host / server names, and the rules can apply one or more signatures or other matching criteria or heuristics, such as for enforcing security policies for subscribers / IP flows based on various extracted parameters / information from monitored session traffic flows. An example policy can include a C2 malware detection policy using the disclosed techniques for self-learning malware detection based on sample traffic. An interface (I / F) communicator 250 is provided for management communications (e.g., via (REST) API, messaging or network protocol communications or other communication mechanisms).

[0071] Security platform

[0072] Returning to Figure 1 , assume that a malicious individual (using system 120) has created malware 130, such as malware for generating Cobalt Strike beacon C2 HTTP / HTTPS traffic using a new / variant profile to avoid detection by pre-existing IPS signatures (e.g., the malware can be delivered to a user's endpoint device via a compromised website or through a phishing attack, etc. when the user accesses / browses to the compromised website). The malicious individual wants a client device (such as client device 104) to execute a copy of malware 130 to unpack the malware executable / payload to compromise the client device, and for example, cause the client device to become a bot in a botnet. The compromised client device can then be instructed to perform tasks (e.g., crypto-currency mining or participate in a denial of service attack), and report information to and receive instructions from an external entity (e.g., a command and control (C2 / C&C) server 150), if applicable.

[0073] Suppose that the data appliance 102 has intercepted an email sent (e.g., by the system 120) to a user "Alice" of the client device 104. In this example, Alice receives the email and clicks on a link to a phishing / infiltrated website, which can cause the client device 104 of Alice to attempt to download the malware 130. However, in this example, the data appliance 102 can perform the disclosed techniques for self-learning malware detection based on sample traffic and block access to the packaged malware content from the client device 104 of Alice, thereby preempting and preventing any such download of the malware 130 to the client device 104 of Alice. As will be further described below, the data appliance 102 performs the disclosed techniques for self-learning malware detection based on sample traffic, such as further described below, to detect and block such malware 130 from compromising the client device 104 of Alice.

[0074] In various embodiments, the data appliance 102 is configured to work in conjunction with a security platform 122. As one example, the security platform 122 can provide a set of signatures of known malicious files to the data appliance 102 (e.g., as part of a subscription). If the signature of the malware 130 is included in this set (e.g., the MD5 hash value of the malware 130), then the data appliance 102 can accordingly prevent the malware 130 from being transmitted to the client device 104 (e.g., by detecting that the MD5 hash value of an email attachment sent to the client device 104 matches the MD5 hash value of the malware 130). The security platform 122 can also provide a list of known malicious domains and / or IP addresses to the data appliance 102, allowing the data appliance 102 to block traffic between the enterprise network 140 and the C2 server 150 (e.g., in the event that the known C&C server 150 is malicious). The list of malicious domains (and / or IP addresses) can also help the data appliance 102 determine when one of its nodes has been infiltrated. For example, if the client device 104 attempts to contact the C2 server 150, then such an attempt is a strong indication that the client 104 has been infiltrated by malware (and remedial action should accordingly be taken, such as quarantining the client device 104 from communicating with other nodes within the enterprise network 140).

[0075] As will be described in greater detail below, the security platform 122 can also receive copies of the malware 130 from the data appliance 102 to perform cloud-based security analysis for performing sample traffic based self-learning malware detection, and malware verdicts can be sent back to the data appliance 102 for enforcing security policies to protect Alice's client device 104 from execution of the malware 130 (e.g., to block the malware 130 from accessing the client device 104).

[0076] Further, the security platform 122 can also provide other types of information to the data appliance 102 (e.g., as part of a subscription), such as a collection of information for performing the disclosed techniques for sample traffic based self-learning malware detection, which the data appliance 102 can use to perform inline analysis of such malware files, as will be further described below.

[0077] In various embodiments, the data appliance 102 can take various actions if no signature of the attachment is found. As a first example, the data appliance 102 can implement a fail-safe by blocking the transmission of any attachment that is not whitelisted as benign (e.g., does not match a signature of a known good file). A drawback of this approach is that there can be many legitimate attachments that are unnecessarily blocked as potentially malicious when they are actually benign. As a second example, the data appliance 102 can implement a fail-danger by allowing the transmission of any attachment that is not blacklisted as malicious (e.g., does not match a signature of a known bad file). A drawback of this approach is that newly created malware (that was not previously seen by the platform 122) can go unimpeded to cause harm. As a third example, the data appliance 102 can be configured to provide the file (e.g., the malware 130) to the security platform 122 for static / dynamic analysis to determine if it is malicious and / or to otherwise classify it.

[0078] The security platform 122 stores copies of the received samples in storage 142 and begins (or schedules, if applicable) analysis. One example of the storage 142 is an Apache Hadoop cluster (HDFS). The results of the analysis (as well as additional information related to the application) are stored in the database 146. In the event that the application is determined to be malicious, the data appliance can be configured to automatically block the file download based on the results of the analysis. Further, a signature can be generated for the malware and distributed (e.g., to data appliances such as the data appliances 102, 136, and 148) to automatically block future file transmission requests that download files determined to be malicious.

[0079] In various embodiments, the security platform 122 includes one or more dedicated commercially available hardware servers (e.g., with multi-core processor(s), 32G+ of RAM, gigabit network interface adapter(s), and hard drive(s)) running a typical server-level operating system (e.g., Linux). The security platform 122 can be implemented across a scalable infrastructure including multiple such servers, solid state drives, and / or other suitable high-performance hardware. The security platform 122 can include multiple distributed components, including components provided by one or more third parties. For example, portions or all of the security platform 122 can be implemented using Amazon Elastic Compute Cloud (EC2) and / or Amazon Simple Storage Service (S3). Further, as with the data appliance 102, whenever the security platform 122 is referred to as performing a task (such as storing data or processing data), it should be understood that a sub-component or multiple sub-components of the security platform 122 (whether alone or in cooperation with third-party components) can cooperate to perform the task. As one example, the security platform 122 can optionally perform static / dynamic analysis in cooperation with one or more virtual machine (VM) servers, such as the VM server 124.

[0080] An example of a virtual machine server is a physical machine that includes commercially available server-level hardware (e.g., multi-core processor, 32+ gigabytes of RAM, and one or more gigabit network interface adapters) running commercially available virtualization software, such as VMware ESXi, Citrix XenServer, or Microsoft Hyper-V. In some embodiments, a virtual machine server is omitted. Further, a virtual machine server can be under the control of the same entity that administers the security platform 122, but can also be provided by a third party. As one example, a virtual machine server can rely on EC2, with the remainder of the security platform 122 being provided by dedicated hardware owned and under the control of the operator of the security platform 122. The VM server 124 is configured to provide one or more virtual machines 126-128 for emulating client devices. The virtual machines can execute various operating systems and / or versions thereof. Observed behavior resulting from execution of applications in the virtual machines is logged and analyzed (e.g., for indications that the applications are malicious). In some embodiments, the logging and analysis is performed by the VM server (e.g., the VM server 124). In other embodiments, the analysis is performed at least in part by other components of the security platform 122, such as the coordinator 144.

[0081] In various embodiments, the security platform 122 makes the results of its sample analysis available to the data appliance 102 via a list of signatures (and / or other identifiers) as part of a subscription. For example, the security platform 122 can periodically send a content package identifying malware files, including for network traffic based heuristic IPS malware detection, etc. (e.g., every day, every hour, or some other interval, and / or based on events configured by one or more policies). Example content packages include the Cobalt Strike Beacon (CSB) detector 154 and / or other information (e.g., ML based detection models), such as described further below. The subscription can cover analysis of only files that are intercepted by the data appliance 102 and sent by the data appliance 102 to the security platform 122, and can also cover signatures of malware known to the security platform 122. As will be described in greater detail below, the platform 122 can also utilize other types of information / ML models to perform network traffic based heuristic IPS malware detection. In particular, the platform 122 can utilize the CSB detector 154 (e.g., C2 ML model(s) that can be implemented as a plug-in or subcomponent of the platform 122, such as described further below, such as with respect to Figure 4A and Figure 4B ) that can assist the data appliance 102 in detecting and performing inline blocking of potentially new / variant C2 malware (e.g., Cobalt Strike beacon C2 HTTP / HTTPS traffic).

[0082] In various embodiments, the security platform 122 is configured to provide security services to various entities other than (or in addition to, if applicable) the operator of the data appliance 102. For example, other enterprises with their own respective enterprise networks 114 and 116 and their own respective data appliances 136 and 148 can contract with the operator of the security platform 122. Other types of entities can also use the services of the security platform 122. For example, an Internet service provider (ISP) that provides Internet service to the client devices 110 can contract with the security platform 122 to analyze applications that the client devices 110 attempt to download. As another example, the owners of the client devices 110 can install software on the client devices 110 that communicates with the security platform 122 (e.g., to receive content packages from the security platform 122, to use the received content packages to check attachments according to the techniques described herein, and to transmit applications to the security platform 122 for analysis).

[0083] Analyzing samples using static / dynamic analysis

[0084] Figure 3An example of logical components that can be included in a system for analyzing samples is illustrated. Analysis system 300 can be implemented using a single device. For example, the functionality of analysis system 300 can be implemented in malware analysis module 112 that is incorporated into data appliance 102. Analysis system 300 can also be collectively implemented across multiple different devices. For example, the functionality of analysis system 300 can be provided by security platform 122.

[0085] In various embodiments, analysis system 300 can use a list, database, or other collection of known safe content and / or known bad content (collectively shown in Figure 3 as collection 314). Collection 314 can be obtained in a variety of ways, including via a subscription service (e.g., provided by a third party) and / or as a result of other processing (e.g., processing performed by data appliance 102 and / or security platform 122). Examples of information included in collection 314 are: URLs, domain names, and / or IP addresses of known malicious servers; URLs, domain names, and / or IP addresses of known safe servers; URLs, domain names, and / or IP addresses of known command and control (C2 / C&C) domains; signatures, hash values, and / or other identifiers of known malicious applications; signatures, hash values, and / or other identifiers of known safe applications; signatures, hash values, and / or other identifiers of known malicious files (e.g., OS exploit files); signatures, hash values, and / or other identifiers of known safe libraries; and signatures, hash values, and / or other identifiers of known malicious libraries.

[0086] In various embodiments, when a new sample is received for analysis (e.g., an existing signature associated with the sample does not exist in analysis system 300), it is added to queue 302. As shown, application 130 is received by system 300 and added to queue 302. Figure 3

[0087] Coordinator 304 monitors queue 302 and, when resources (e.g., static analysis workers) become available, coordinator 304 takes a sample from queue 302 for processing (e.g., takes a copy of malware 130). In particular, coordinator 304 first provides the sample to static analysis engine 306 for static analysis. In some embodiments, one or more static analysis engines are included within analysis system 300, where analysis system 300 is a single device. In other embodiments, static analysis is performed by a separate static analysis server that includes multiple workers (i.e., multiple instances of static analysis engine 306).

[0088] ​The static analysis engine obtains general information about the sample and includes it (as well as heuristics and other information, if applicable) in a static analysis report 308. The report can be created by the static analysis engine or by the coordinator 304 (or another appropriate component), which can be configured to receive information from the static analysis engine 306. As an example, static analysis of malware can include performing signature-based analysis. In some embodiments, instead of or in addition to creating a separate static analysis report 308 (i.e., the portion of the database record from report 308), the collected information is stored in the database record for the sample (e.g., in database 316). In some embodiments, the static analysis engine also forms an adjudication about the application (e.g., "safe," "suspicious," or "malicious"). As one example, even if there is one "malicious" static feature in the application (e.g., the application includes a hard link to a known malicious domain), the adjudication can be "malicious." As another example, points can be assigned to each feature (e.g., based on severity if found; based on reliability of the feature to predict malicious behavior; etc.), and the adjudication can be assigned by the static analysis engine 306 (or the coordinator 304, if applicable) based on the number of points associated with the static analysis results.

[0089] Once static analysis is complete, the coordinator 304 locates available dynamic analysis engines 310 to perform dynamic analysis on the application. As with the static analysis engine 306, the analysis system 300 can directly include one or more dynamic analysis engines. In other embodiments, dynamic analysis is performed by a separate dynamic analysis server that includes multiple workers (i.e., multiple instances of dynamic analysis engines 310).

[0090] Each dynamic analysis worker manages virtual machine instances (e.g., for emulation / sandbox analysis of samples for malware detection, such as C2 malware detection based on monitoring network traffic activity described above). In some embodiments, results of static analysis (e.g., performed by static analysis engine 306), whether in report form (308) and / or stored in database 316 or otherwise, are provided as input to dynamic analysis engine 310. For example, static report information can be used to help select / customize virtual machine instances used by dynamic analysis engine 310 (e.g., Microsoft Windows 7 SP 2 versus Microsoft Windows 10 Enterprise, or iOS 11.0 versus iOS 12.0). In the case of performing multiple virtual machine instances simultaneously, a single dynamic analysis engine can manage all instances, or multiple dynamic analysis engines can be used (e.g., with each dynamic analysis engine managing its own virtual machine instances), if applicable. As explained in more detail below, during the dynamic portion of the analysis, the actions taken by the analysis application (including network activity).

[0091] In various embodiments, static analysis of a sample is omitted or performed by a separate entity, if applicable. As one example, conventional static and / or dynamic analysis can be performed by a first entity on a file. Once it is determined (e.g., by the first entity) that a given file is malicious, the file can be provided to a second entity (e.g., an operator of security platform 122) that is dedicated to additional analysis (e.g., by dynamic analysis engine 310) regarding use of network activity by malware.

[0092] The environment used by analysis system 300 is instrumented / hooked so that behavior observed when executing an application is logged as it occurs (e.g., using a custom kernel that supports hooking and logcat). Network traffic associated with the emulator is also captured (e.g., using pcap). The logs / network data can be stored as temporary files on analysis system 300, and can also be more permanently stored (e.g., using HDFS or other appropriate storage technology or combination of technologies, such as MongoDB). Dynamic analysis engine (or another appropriate component) can compare the sample to a list of domains, IP addresses, etc. (314), and determine whether the sample has communicated (or attempted to communicate) with a malicious entity.

[0093] As with the static analysis engine, the dynamic analysis engine stores its analysis results in the database 316 in a record associated with the application being tested (and / or includes the results in the report 312, if applicable). In some embodiments, the dynamic analysis engine also forms an adjudication regarding the application (e.g., “safe,” “suspicious,” or “malicious”). As one example, even if the application takes one “malicious” action (e.g., an attempt to contact a known malicious domain or an attempt to leak sensitive information is observed), the adjudication can be “malicious.” As another example, points can be assigned to the actions taken (e.g., based on severity if found; based on reliability of the action for predicting maliciousness; etc.), and the adjudication can be assigned by the dynamic analysis engine 310 (or the coordinator 304, if applicable) based on the number of points associated with the dynamic analysis results. In some embodiments, the final adjudication associated with the sample is made based on a combination of the report 308 and the report 312 (e.g., by the coordinator 304).

[0094] Heuristic detection

[0095] Figure 4A FIGURE 1 illustrates portions of an example embodiment of a detection system and a quality check system for processing network traffic to perform Cobalt Strike Beacon C2 HTTP traffic detection, according to some embodiments. As similarly discussed above, in various embodiments, the security platform 122 includes a Cobalt Strike Beacon (CSB) detector 154. Figure 4A FIGURE 2 illustrates subcomponents of the CSB detector 154, including the following subcomponents: a detection system 402 and a quality check system 404.

[0096] Reference Figure 4A A behavior-based and cross-session detection solution for performing Cobalt Strike beacon C2 HTTP traffic detection is performed using a cloud-based security service (e.g., the cloud security service 122 shown) in coordination with a data appliance (e.g., a firewall-implementing data appliance, also simply referred to as a firewall below) 102. The behavior-based detection solution performs cross-session checks and includes three components, as will be described below. Figure 1

[0097] The firewall 102 monitors network traffic on an enterprise network (e.g., including HTTP traffic on the enterprise network 140, such as HTTP traffic between the client 106 and the server 108). Figure 1 ​The firewall 102 uses the data plane to monitor network traffic, and performs pre-filter analysis of the network traffic using an HTTP pre-filter module (e.g., a subcomponent), as shown at 410. If the following pre-filter analysis of the HTTP traffic is a hit (i.e., satisfies two of the following example criteria based on header length and header encoding format, which are selected to reduce the volume of traffic to be forwarded to the cloud security 122 for further analysis to detect potential Cobalt Strike Beacon C2 traffic, such as will be further described below), the firewall 102 forwards the traffic (e.g., a packet capture (pcap) file of network traffic associated with the session(s)) to the detection system, as shown at 412. First, the HTTP pre-filter module determines whether the network traffic includes a header value or URI length check that matches a range of 171 bytes to 256 bytes. Second, the HTTP pre-filter module determines whether the network traffic includes a header value or URI length field with an encoding that matches one of these types of encoding: base64, base64url, netbios, netbiosu, or mask. Based on experimentation (e.g., test results), the pre-filter reduces the number of network traffic forwarded by the cloud security service for further analysis to only about 0.32% of the total network traffic.

[0098] The Cobalt Strike Beacon (CSB) detector 154 includes a detection system 402 that includes an HTTP logic check module (e.g., a subcomponent that can be implemented using Python or another high-level programming language) that implements a decision tree based on the source IP address (SrcIP), destination IP address (DstIP), and destination port (DstPort) associated with each new session, and performs the following checks based on data statistics associated with each new session. As an initial logic check, the detection system 402 can determine whether a previous adjudication is stored in a fast match table, and if there is a match based on the SrcIP, DstIP, and DstPort triad, the previous adjudication is returned to the firewall 102 without further analysis / processing by the detection system 402.

[0099] Otherwise, processing continues to perform the following data statistics checks stored in the data statistics table, as shown at 414. The following data statistics checks are performed for each session and stored in the data statistics table for use in performing behavior-based detection of Cobalt Strike Beacon C2 HTTP traffic (e.g., using heuristics-based techniques, as will now be further described). In example implementations, the fast match table and the data statistics table can be implemented using a repository of data structures in memory, such as using an open source (e.g., Redis publicly available at https: / / redis.io / ) or commercially available data storage solution.

[0100] First, check the timestamps of the first twelve (12) sessions to determine if this is a Gaussian distribution or a normal distribution. In example implementations, the Gaussian distribution or normal distribution calculation can be implemented using the Bowley Skewness algorithm for normal distribution calculation (e.g., the Bowley Skewness algorithm is publicly available at https: / / www.statisticshowto.com / bowley-skewness / ), and specifically, check if the timestamps from the first twelve (12) sessions are a normal distribution. The median absolute deviation is determined using the median absolute deviation algorithm (e.g., the median absolute deviation algorithm is publicly available at https: / / en.wikipedia.org / wiki / Median_absolute_deviation). Finally, the connection count distribution is determined for the twelve (12) sessions from the time stamp difference (TSdiff) of 6 seconds to 556 seconds (e.g., 6 / 10 - 556 / 10, 1 second to 55 seconds per session, in this example implementation, we choose 40 seconds to do this connection count distribution calculation).

[0101] Second, check if the timestamp gaps between different sessions are less than 10 minutes (e.g., Cobalt Strike Beacon C2 HTTP traffic typically sends heartbeat traffic every 5 to 10 minutes to check-in its C2 / Cobalt Strike Beacon team server / exploitation metadata with its C2 / Cobalt Strike Beacon team server).

[0102] Third, check if the MD5 hash of the HTTP header is the same (e.g., metadata, including cookies associated with the session(s), is the same for each compromised machine, which results in the MD5 of the HTTP header being the same for each session, resulting in a new communication to its C2 team server).

[0103] Fourth, check if the number of HTTP header fields (i.e., the number of fields included in the HTTP header) is less than 10 fields in the HTTP header (e.g., due to design limitations from the Cobalt Strike Beacon toolkit design implementation).

[0104] Fifth, check if the HTTP header does not include custom headers.

[0105] Sixth, check if the HTTP User Agent (UA) is a popular UA (e.g., is a known / popular UA; a list of examples of popular UAs is publicly available at https: / / www.whatismybrowser.com / guides / the-latest-user-agent / ). Cobalt Strike Beacon C2 traffic is typically associated with using known / popular UAs, as such HTTP web traffic attempts to mimic typical user traffic associated with such known / popular UAs (e.g., commonly used web browsers such as Microsoft IE, Chrome, Mozilla, etc.).

[0106] Based on the above heuristics, if these logical checks result in a match, then the network traffic for such sessions is determined to be associated with Cobalt Strike Beacon C2 HTTP traffic. If there is no match, then the network traffic for such sessions is determined to not be associated with Cobalt Strike Beacon C2 HTTP traffic. The verdicts are stored in the fast match table, as shown at 416. Specifically, after determining the verdicts using the detection system as described above, the triplets (e.g., SrcIP, DstIP, Dstport) are added to the fast match table along with the verdicts. Thus, the detection system will query the fast match table for subsequent sessions, as similarly described above, in order to more efficiently determine the verdicts for previously analyzed HTTP traffic.

[0107] At 418, the quality check system 404 performs verification on the results of the detection system 402 to determine whether any previous adjudication of Cobalt Strike Beacon C2 HTTP traffic was a false positive or a false negative. Specifically, the destination (Dest) IP probing and verification module (e.g., subcomponent) performs automatic probing of the destination IP address by sending a custom HTTP request (e.g., custom HTTP / HTTPS / DNS request) to the destination IP address. As shown at 420, the Dest IP probing and verification module then determines whether the response includes a fingerprint associated with Cobalt Strike (e.g., the HTTP response data includes default credentials provided by Cobalt Strike and / or the HTTP response matches a fingerprint of Cobalt Strike (CS); in example implementations, the CS fingerprint is a predetermined string of characters included in response traffic from the CS team server, such as when a client sends an HTTP request with a randomized URL to the CS team server, the team server will respond with an HTTP status code 404 and the following example header Content-Type: text / plain r\nDate: Wed, 27 Feb 2019 14:43:19 GMT r\nContent-Length: 0, thus, we can use “Content-Type: text / plain” and Content-Length: 0 as a fingerprint to identify the CS team server, such as further described below with respect to various embodiments, to verify the Cobalt Strike Beacon C2 HTTP traffic (CS) adjudication of network traffic / session in communication with the destination IP address. As an example, the quality check system can perform malware IP address lookup to determine whether the Dest IP is associated with Cobalt Strike Beacon related malware (e.g., a known malware sample that was previously identified as Cobalt Strike Beacon related malware based on previous malware analysis), and if so, can verify the Cobalt Strike Beacon C2 HTTP traffic (C2) adjudication. Otherwise, the adjudication is automatically changed from a CS adjudication to a benign adjudication (e.g., providing a feedback loop to improve the CS detection heuristics implemented in the detection system 402). Thus, the quality check system can verify the adjudication to attempt to detect any false positives or false negatives of Cobalt Strike Beacon C2 HTTP traffic.

[0108] The disclosed techniques for a behavioral-based and cross-session detection solution to perform Cobalt Strike Beacon C2 HTTPS traffic detection facilitate a 90% detection improvement rate for Cobalt Strike Beacon C2 HTTPS traffic detection based on experimental / test results as compared to previously existing IPS signature-based methods (e.g., default / known profiles for Cobalt Strike Beacon C2 HTTP traffic).

[0109] Heuristic detection

[0110] Figure 4B FIGS. 1-4 illustrate example embodiments of a detection system and quality check system for processing network traffic to perform Cobalt Strike Beacon C2 HTTPS traffic detection in accordance with some embodiments. As discussed above with respect to FIG. 1, the security platform 122 includes a Cobalt Strike Beacon (CSB) detector 154. Figure 4A Similarly discussed, the security platform 122 includes a Cobalt Strike Beacon (CSB) detector 154. Figure 4B Similarly illustrated are subcomponents of the CSB detector 154, including the following subcomponents: a detection system 402 and a quality check system 404. However, as further described below, the HTTPS pre-filtering logic module / subcomponent and the HTTPS logic check module / subcomponent perform different pre-filtering and logic checks on HTTPS traffic (e.g., due to the HTTPS traffic header / content being encrypted, different heuristics are disclosed for automatically detecting Cobalt Strike beacon C2 HTTPS traffic as will be further described below).

[0111] With reference to Figure 4B , the behavioral-based and cross-session detection solution to perform Cobalt Strike beacon C2 HTTPS traffic detection is performed in coordination with the firewall 102 using a cloud-based security service (e.g., the cloud security service 122 shown). Figure 1 The behavioral-based detection solution performs cross-session checks and includes three components as will be described below.

[0112] The firewall 102 monitors network traffic on the enterprise network (e.g., including HTTP traffic on the enterprise network 140, such as Figure 1The firewall 102 uses the data plane to monitor network traffic and performs pre-filter analysis of the network traffic using the HTTPS pre-filter module (e.g., a subcomponent). As shown at 410, the firewall 102 uses the data plane to monitor network traffic and performs pre-filter analysis of the network traffic using the HTTPS pre-filter module (e.g., a subcomponent). As shown at 412, if the following pre-filter analysis of the HTTP traffic is a hit (i.e., satisfies two of the following example criteria based on the Server hello random field value and includes “DOWNGRD” (e.g., this field value is present in Cobalt Strike beacon C2 HTTPS traffic, but is also associated with benign traffic, so this pre-filter is used prior to further analysis performed using the detection system described below that will check for further heuristics), the criteria are selected to reduce the volume of traffic to be forwarded to the cloud security 122 for further analysis to detect potential Cobalt Strike Beacon C2 traffic, such as will be further described below), the firewall 102 forwards the traffic (a packet capture (pcap) file of network traffic associated with the session(s)) to the detection system 402. Specifically, the pre-filter module determines whether the Server hello random field value includes a “DOWNGRD” value. Based on experimentation (e.g., test results), the pre-filter reduces the number of network traffic forwarded by the cloud security service for further analysis and is only about 0.002% of the total network traffic.

[0113] The Cobalt Strike Beacon (CSB) detector 154 includes the detection system 402 that includes an HTTPS logic check module (e.g., a subcomponent that can be implemented using Python or another high-level programming language) that implements a decision tree based on the source IP address (SrcIP), destination IP address (DstIP), and destination port (DstPort) associated with each new session and performs the following checks based on the data statistics associated with each new session. As an initial logic check, the detection system 402 can determine whether a previous adjudication is stored in a fast match table and returns the previous adjudication to the firewall 102 if there is a match based on the SrcIP, DstIP, and DstPort triad without further analysis / processing by the detection system 402.

[0114] Otherwise, processing continues to perform the following data statistics checks stored in the data statistics table, as shown at 414. The following data statistics checks are performed for each session and stored in the data statistics table for use in performing behavior-based detection of Cobalt Strike Beacon C2 HTTP traffic (e.g., using heuristics-based techniques, as will now be further described). In example implementations, the fast match table and the data statistics table can be implemented using a repository of data structures in memory, such as using an open source (e.g., Redis publicly available at https: / / redis.io / ) or commercially available data storage solution.

[0115] First, check the timestamps of the first twelve (12) sessions to determine if this is a Gaussian distribution or a normal distribution. In example implementations, the Gaussian distribution or normal distribution calculation can be implemented using the Bowley Skewness algorithm for normal distribution calculation (e.g., the Bowley Skewness algorithm is publicly available at https: / / www.statisticshowto.com / bowley-skewness / ), and specifically, check if the timestamps of the first twelve (12) sessions are a normal distribution. The median absolute deviation is determined using the median absolute deviation algorithm (e.g., the median absolute deviation algorithm is publicly available at https: / / en.wikipedia.org / wiki / Median_absolute_deviation). Finally, the connection count distribution is determined from the time of the timestamp difference (TSdiff) of the twelve (12) sessions from 6 seconds to 556 seconds (e.g., 6 / 10 - 556 / 10, 1 second to 55 seconds per session, in this example implementation, we choose 40 seconds to do this connection count distribution calculation).

[0116] Second, check the application data packet length from the HTTPS requests to determine if it is the same. If the application data packet length from the HTTPS requests of each of these 12 sessions is the same length, then this is another heuristic that is used as another indicator that this can be associated with Cobalt Strike beacon C2 HTTPS traffic.

[0117] Third, check if there is only one application request data in the request direction, and if so, this is another heuristic that is used as another indicator that this can be associated with Cobalt Strike beacon C2 HTTPS traffic.

[0118] Based on the above heuristics, if these logic checks result in a match, then it is determined that the network traffic of such a session is associated with Cobalt Strike Beacon C2 HTTP traffic. If there is no match, then it is determined that the network traffic of such a session is not associated with Cobalt Strike Beacon C2 HTTP traffic. The verdict is stored in the fast match table, as shown at 416. Specifically, after determining the verdict using the detection system as described above, the triple (e.g., SrcIP, DstIP, Dstport) is added to the fast match table along with the verdict. Thus, the detection system will query the fast match table for subsequent sessions, as similarly described above, in order to more efficiently determine the verdict for previously analyzed HTTP traffic.

[0119] At 418, the quality check system 404 performs verification on the results of the detection system 402 to determine whether any previous adjudication of Cobalt Strike Beacon C2 HTTPS traffic was a false positive or a false negative. Specifically, the destination (Dest) IP probing and verification module (e.g., subcomponent) performs automatic probing of the destination IP address by sending a custom HTTPS request (e.g., custom HTTP / HTTPS / DNS request) to the destination IP address. As shown at 420, the Dest IP probing and verification module then determines whether the response includes a fingerprint associated with Cobalt Strike (e.g., the HTTPS response data includes default credentials provided by Cobalt Strike and / or the HTTP response matches a fingerprint of Cobalt Strike (CS); in example implementations, the CS fingerprint is a predetermined string included in response traffic from the CS team server, such as when a client sends an HTTPS request with a client hello to the CS team server, the team server will respond to the client with a Server hello and server credentials, and by default, the credentials include the CS keyword “Major Cobalt Strike,” thus, we can use the credential keyword “Major Cobalt Strike” as a fingerprint to identify the CS team server, such as further described with respect to various embodiments below, to verify the Cobalt Strike Beacon C2 HTTPS traffic (CS) adjudication of network traffic / session communicating with the destination IP address. As an example, the quality check system can perform a malware IP address lookup to determine whether the Dest IP is associated with Cobalt Strike Beacon related malware (e.g., a known malware sample that was previously identified as Cobalt Strike Beacon related malware based on previous malware analysis), and if so, can verify the Cobalt Strike Beacon C2 HTTPS traffic (C2) adjudication. Otherwise, the adjudication is automatically changed from a CS adjudication to a benign adjudication (e.g., providing a feedback loop to improve the CS detection heuristics implemented in the detection system 402). Thus, the quality check system can verify the adjudication to attempt to detect any false positives or false negatives of Cobalt Strike Beacon C2 HTTPS traffic.

[0120] The disclosed behavior-based and cross-session detection solution techniques for performing Cobalt Strike Beacon C2 HTTPS traffic detection facilitate a 90% detection improvement rate for Cobalt Strike Beacon C2 HTTPS traffic detection based on experimental / test results as compared to previously existing IPS signature-based approaches (e.g., default / known profiles for Cobalt Strike Beacon C2 HTTPS traffic).

[0121] Example use cases for heuristic detection

[0122] Figure 5A Figures illustrate example attributes associated with Cobalt Strike Beacon HTTP traffic for heuristic detection in accordance with some embodiments. Referring to Figure 5A , this example network traffic illustrates the same HTTP request header MD5 hash value as the request URL shown at 502 and the cookie (e.g., encoded base64) shown at 504 associated with a session of this Cobalt Strike Beacon HTTP traffic. Thus, this example illustrates that the above criteria for Figure 4A network traffic described similarly. First, the header value or URI length check matches the range of 171 bytes to 256 bytes. Second, the network traffic includes a header value or URI length field with base64 encoding, thus matching one of these types of encoding: base64, base64url, netbios, netbiosu, or mask. Thus, this network traffic shown at 506 is forwarded to cloud security 122 for further analysis using CSB detector 154 as described above for Figure 4A described similarly.

[0123] Figure 5B Figures illustrate additional example attributes associated with Cobalt Strike Beacon HTTP traffic for heuristic detection in accordance with some embodiments. Referring to Figure 5BThe example network traffic, as shown at 520, illustrates HTTP request header fields associated with a Cobalt Strike (CS) HTTP request that have fewer number of HTTP request header fields (i.e., less than 10 request header fields) as compared to a benign HTTP request (as shown at 522) that has a greater number of HTTP request header fields (i.e., greater than 10 request header fields). Thus, the example network traffic shown at 520 satisfies the fourth heuristic described above related to the number of HTTP header fields (i.e., the number of fields included in the HTTP header is less than 10 fields in the HTTP header), as described above with respect to Figure 4A Similarly described.

[0124] Figure 5C FIGURE 8 illustrates additional example attributes associated with Cobalt Strike Beacon HTTP traffic for heuristic detection, according to some embodiments. Referring to FIGURE 8, the example network traffic, as shown at 530, illustrates that the HTTP User Agent (UA) is a known UA and does not have custom headers, as shown at 530. Thus, the example network traffic shown at 530 satisfies the sixth heuristic described above related to whether the HTTP User Agent (UA) is a known / popular UA, as described above with respect to Figure 5C Similarly described. Figure 4A Similarly described.

[0125] Figure 5D FIGURE 8 illustrates additional example attributes associated with Cobalt Strike Beacon HTTP traffic for heuristic detection, according to some embodiments. Referring to FIGURE 8, the example network traffic, as shown at 530, illustrates that the HTTP User Agent (UA) is a known UA and does not have custom headers, as shown at 530. Thus, the example network traffic shown at 530 satisfies the sixth heuristic described above related to whether the HTTP User Agent (UA) is a known / popular UA, as described above with respect to Figure 5D The example network traffic, as shown at 540, illustrates HTTP request header content that does not have custom headers, as shown at 540. Thus, the example network traffic shown at 540 satisfies the fifth heuristic described above related to whether the HTTP does not include custom headers, as described above with respect to Figure 4A Similarly described.

[0126] Example use cases for heuristic detection

[0127] Figure 5E FIGURE 9 illustrates additional example attributes associated with Cobalt Strike Beacon HTTPS traffic for heuristic detection, according to some embodiments. Referring to FIGURE 9, the example network traffic, as shown at 550, illustrates a HTTPS request in which the Server hello random field value includes a “DOWNGRD” value, as described above with respect to Figure 5E Similarly described. Figure 4BSimilarly described. Thus, the network traffic shown at 506 is forwarded to the cloud security 122 for further analysis using the CSB detector 154, as described above with respect to Figure 4B Similarly described.

[0128] Figure 5F FIGURE 13 illustrates additional example attributes associated with Cobalt Strike Beacon HTTPS traffic for heuristic detection, according to some embodiments. Referring to FIGURE 13, the example network traffic illustrates the SSL application data volume in the request direction, as described above with respect to Figure 5F As shown at 560, the example network traffic illustrates the SSL application data volume in the request direction, as described above with respect to Figure 4B Similarly described. In particular, as described above with respect to Figure 4B Similarly described, a second check performed by the HTTPS logic module is to determine whether the application data packet length from the HTTPS requests is the same. If the application data packet length from the HTTPS requests from each of these 12 sessions is the same length, as shown at 560 (e.g., 1365 bytes), this is another heuristic that is used as another indicator that this can be associated with Cobalt Strike beacon C2 HTTPS traffic.

[0129] Figure 5G FIGURE 13 illustrates additional example attributes associated with Cobalt Strike Beacon HTTPS traffic for heuristic detection, according to some embodiments. Referring to FIGURE 13, the example network traffic illustrates the SSL application data volume in the request direction, as described above with respect to Figure 5G As shown at 570, the example network traffic illustrates the SSL application data volume in the request direction, as described above with respect to Figure 4B Similarly described. In particular, as described above with respect to Figure 4B Similarly described, a third check performed by the HTTPS logic module is to determine whether there is only one application request data in the request direction (e.g., length of 459 bytes) (e.g., a heuristic performed for each of the (12) sessions of these analyses), which is another heuristic that is used as another indicator that this can be associated with Cobalt Strike beacon C2 HTTPS traffic.

[0130] Additional example procedures of the disclosed techniques for Cobalt Strike Beacon HTTP / HTTPS C2 heuristic detection will now be described.

[0131] Example procedure for Cobalt Strike Beacon HTTP C2 heuristic detection

[0132] Figure 6This is a flowchart illustrating a process for heuristic detection of Cobalt Strike Beacon HTTP C2 according to some embodiments. In some embodiments, Figure 6 The process 600 shown is performed using a security platform and technologies similarly described above, including those mentioned above. Figures 1 to 5G The described embodiments. In one embodiment, process 600 is performed by the above-described embodiments. Figure 1 The described data device 102, above about Figure 1 The security platform 122 described herein (e.g., as a cloud-based security service), virtual appliances (e.g., Palo Alto Networks' VM Series Virtualized Next-Generation Firewall, CN Series Container Next-Generation Firewall, and / or other commercially available virtual or container-based firewalls may be similarly implemented and configured to perform the disclosed technologies), SDN security solutions, cloud security solutions, and / or combinations or hybrid implementations of the foregoing items described herein.

[0133] At position 602, HTTP network traffic is monitored at the firewall. For example, the firewall can use application identifiers to detect HTTP traffic, such as those mentioned above. Figure 1 and Figure 4A Described similarly.

[0134] At position 604, pre-filtering is performed on monitored HTTP network traffic at the firewall level to select a subset of HTTP network traffic to forward to the cloud security service. For example, the HTTP pre-filtering module can perform heuristic analysis on HTTP network traffic to select a subset of HTTP service sessions for further analysis by the cloud security service, as mentioned above. Figure 4A and Figures 5A to 5D Described similarly.

[0135] At point 606, execution is based on multiple heuristics to determine whether a subset of HTTP network traffic is associated with Cobalt Strike Beacon HTTP C2 service activities. For example, the HTTP logic inspection module can perform further heuristic analysis on HTTP network traffic to automatically detect Cobalt Strike Beacon HTTP C2 services, such as those mentioned above. Figure 4A and Figures 5A to 5D Described similarly.

[0136] At 608, an action is performed in response to the detection of Cobalt Strike Beacon HTTP C2 business activity. Then, the security platform (122) and data appliances (102) can, in response to a malware ruling, perform an action based on a policy (e.g., a security / C2-related malware policy, which may be stored in...).Figure 2B The data appliance can be configured to block Cobalt Strike Beacon HTTP C2 traffic activity, for example. Other example actions can include: blocking access to destination IP addresses associated with detected Cobalt Strike Beacon HTTP C2 traffic activity; blocking / dropping network traffic associated with detected Cobalt Strike Beacon HTTP C2 traffic activity and / or associated with destination IP addresses; alerting end users and / or network / security administrators that endpoints are associated with detected Cobalt Strike Beacon HTTP C2 traffic activity; quarantining endpoint devices associated with detected Cobalt Strike Beacon HTTP C2 traffic activity; identifying destination IP addresses, URLs, etc. associated with detected Cobalt Strike Beacon HTTP C2 traffic activity as malicious (or potentially malicious); and / or various other actions can also be performed based on the policy.

[0137] Example process for Cobalt Strike Beacon HTTPS C2 heuristic detection

[0138] Figure 7 is a flow diagram of a process for Cobalt Strike Beacon HTTPS C2 heuristic detection in accordance with some embodiments. In some embodiments, Figure 7 The process 700 is performed by security platforms and techniques similarly described above, including above with respect to Figures 1 to 5G described embodiments. In one embodiment, the process 700 is performed by the data appliance 102 described above with respect to Figure 1 described above with respect to Figure 1 described security platform 122 (e.g., as a cloud-based security service), virtual appliances (e.g., Palo Alto Networks VM Series virtualized next-generation firewalls, CN Series container next-generation firewalls, and / or other commercially available virtual or container-based firewalls can similarly implement and be configured to perform the disclosed techniques), SDN security solutions, cloud security solutions, and / or combinations or hybrid implementations of the above described herein.

[0139] At 702, HTTPS network traffic is monitored at a firewall. For example, the firewall can utilize application identification to detect HTTPS traffic, such as similarly described above with respect to Figure 1 and Figure 4B similarly described above.

[0140] At 704, pre-filtering is performed on the monitored HTTPS network traffic at the firewall to select a subset of the HTTPS network traffic to forward to the cloud security service. For example, the HTTPS pre-filtering module can perform heuristic analysis on the HTTPS network traffic to select a subset of the HTTPS traffic sessions to forward to the cloud security service for further analysis, as described above with respect to Figure 4B and Figures 5E to 5G described similarly.

[0141] At 706, a determination is made based on a plurality of heuristics whether the subset of the HTTPS network traffic is associated with CobaltStrike Beacon HTTPS C2 traffic activity. For example, the HTTPS logic checking module can perform further heuristic analysis on the HTTPS network traffic to automatically detect Cobalt Strike Beacon HTTPS C2 traffic, such as described above with respect to Figure 4B and Figures 5E to 5G described similarly.

[0142] At 708, an action is performed in response to detecting the Cobalt Strike Beacon HTTPS C2 traffic activity. The security platform (122) and data appliance (102) can then perform an action in response to the malware verdict based on a policy (e.g., a security / C2-related malware policy, which can be stored in the policy 252 shown in Figure 2B For example, the data appliance can be configured to block the Cobalt Strike Beacon HTTPS C2 traffic activity. Other example actions can include: blocking access to a destination IP address associated with the detected Cobalt Strike Beacon HTTPS C2 traffic activity; blocking / dropping network traffic associated with the detected Cobalt Strike Beacon HTTPS C2 traffic activity and / or associated with the destination IP address; alerting an end user and / or a network / security administrator that an endpoint is associated with the detected Cobalt Strike Beacon HTTPS C2 traffic activity; quarantining an endpoint device associated with the detected Cobalt Strike Beacon HTTPS C2 traffic activity; identifying a destination IP address, URL, etc. associated with the detected Cobalt Strike Beacon HTTPS C2 traffic activity as malicious (or potentially malicious); and / or various other actions can also be performed based on the policy.

[0143] Probing for COBALT STRIKE team server detection

[0144] Another technical challenge is verifying that a target IP address (e.g., extracted based on the techniques described above) hosts a Cobalt Strike Team Server.

[0145] Accordingly, various techniques are disclosed for probing (e.g., active probing) for Cobalt Strike Team Server detection. For example, the disclosed techniques leverage active probing of IP addresses, detecting whether an IP address hosts a Cobalt Strike Team Server based on responses to the active probing (e.g., packets sent from the target IP address in response to the probing packets).

[0146] In some embodiments, a system / process / computer program product for probing for Cobalt Strike Team Server detection includes monitoring hypertext transfer protocol (HTTP), HTTPS, and / or domain name system (DNS) network traffic at a firewall; pre-filtering the monitored HTTP, HTTPS, and / or DNS network traffic at the firewall to select a subset of the HTTP, HTTPS, and / or DNS network traffic to forward to a cloud security service; performing HTTP, HTTPS, and / or DNS probing of targets to detect whether the targets are Cobalt Strike Team Servers; and performing an action in response to detecting that a target is a Cobalt Strike Team Server.

[0147] In some embodiments, a system / process / computer program product for probing for Cobalt Strike Team Server detection further includes that detection of a Cobalt Strike Team Server validates a malware verdict on Cobalt Strike Beacon HTTP, HTTPS, and / or DNS C2 traffic activity.

[0148] In some embodiments, a system / process / computer program product for probing for Cobalt Strike Team Server detection further includes that a fast match table of a detection system stores a triple of previously detected Cobalt Strike Beacon HTTP, HTTPS, and / or DNS C2 traffic activity, where the triple includes a source IP address, a destination IP address, and a destination port.

[0149] In some embodiments, a system / process / computer program product for probing for Cobalt Strike Team Server detection further includes storing data statistics based on automatic heuristic analysis of the subset of HTTP, HTTPS, and / or DNS network traffic in a data statistics table of a detection system.

[0150] In some embodiments, the system / process / computer program product for probing for Cobalt Strike Team Server detection further includes performing validation of detected Cobalt Strike Beacon HTTP, HTTPS, and / or DNS C2 traffic activity based on active probing of destination IP addresses associated with the detected Cobalt Strike Beacon HTTP, HTTPS, and / or DNS C2 traffic activity.

[0151] In some embodiments, the system / process / computer program product for probing for Cobalt Strike Team Server detection further includes performing validation of detected Cobalt Strike Beacon HTTP, HTTPS, and / or DNS C2 traffic activity based on active probing of destination IP addresses associated with the detected Cobalt Strike Beacon HTTP, HTTPS, and / or DNS C2 traffic activity.

[0152] In some embodiments, the system / process / computer program product for probing for Cobalt Strike Team Server detection further includes performing validation of detected Cobalt Strike Beacon HTTP, HTTPS, and / or DNS C2 traffic activity based on active probing of destination IP addresses associated with the detected Cobalt Strike Beacon HTTP, HTTPS, and / or DNS C2 traffic activity.

[0153] As described above with respect to Figure 4A and Figure 4B Similarly described, the destination IP probing and validation component / module of the quality check system 404 performs active probing (e.g., via HTTP or HTTPS) of IP addresses to detect whether the IP addresses host a Cobalt Strike Team Server based on responses to the active probing (e.g., packets occurring from the target IP addresses in response to the probe packets). As will be further described below, the disclosed active probing techniques for Cobalt Strike Team Server detection can be performed using various network protocols (e.g., HTTP, HTTPS, and / or DNS).

[0154] Generally, the destination IP probing and validation module extracts destination (dst) IP addresses (dst IPs) and port numbers (ports) information from network traffic that is forwarded / captured from firewalls monitoring the network traffic, as described above with respect to Figure 4A and Figure 4Bdescribed similarly. Next, the destination IP probing and validation module sends the crafted request (e.g., crafted HTTP / HTTPS / DNS request) to the dst IP and port (e.g., target). Then, the destination IP probing and validation module checks / evaluates the response(s) received from the target. If the response content matches the predetermined fingerprint and detection logic, then the dst IP, port, and malicious verdict is inserted into the fast-matching table (e.g., the fast-matching table of the detection system 402, as described above with respect to Figure 4A and Figure 4B described similarly). Otherwise (i.e., does not match the predetermined fingerprint and detection logic), the dst IP, port, and benign verdict is inserted into the fast-matching table.

[0155] HTTP / HTTPS probing for Cobalt Strike team server detection

[0156] An example implementation for HTTP / HTTPS active probing for Cobalt Strike team server detection will now be described. As an initial pre-check operation of the probing logic, the destination IP probing and validation module sends a crafted pre-check HTTP / HTTPS request to the dst IP and port (e.g., target). An example crafted pre-check HTTP / HTTPS request is as follows: http[s]: / / [IP]:[Port] / index.html. Then, the destination IP probing and validation module checks / evaluates the response to the crafted pre-check HTTP / HTTPS request. Specifically, if the following content is received from the target’s response, then it is considered suspicious (e.g., can (possibly) be a Cobalt Strike team server) and further active probing and evaluation will be performed. More specifically, the response includes a status code equal to 404 and the HTTP / HTTPS header includes the following fields and values: ‘Date’ and a date value (e.g., ‘Wed, 09 Feb 2022 23:09:48 GMT’), 'Content-Type':'text / plain', and 'Content-Length':'0'. Otherwise (e.g., these fields and values are not present in the target’s response), then the target is determined not to be a Cobalt Strike team server and further active probing and evaluation will be performed and the verdict will be determined to be benign (and the fast-matching table can be updated, as described above with respect to Figure 4A and Figure 4B described similarly).

[0157] As a final pre-check operation of the HTTP / HTTPS probing logic, the destination IP probing and validation module sends a crafted HTTP / HTTPS request to the target to download the beacon file. An example crafted final pre-check HTTP / HTTPS request includes a URL value of “Swbl” and is as follows: http[s]: / / [IP]:[Port] / Swbl. In this example, “Swbl” can be any 4 bytes that satisfy the following checksum requirement: the 4 byte URL checksum value is equal to 92 or 93 based on the platform, such as using the checksum algorithm shown below, where the input string text is the 4 byte URL value. Figure 8 Figure 8 A checksum algorithm for the probing logic for HTTP / HTTPS Cobalt Strike team server detection is illustrated in accordance with certain embodiments. The destination IP probing and validation module then checks / evaluates the response to the crafted final HTTP / HTTPS request. If the target is a Cobalt Strike team server, the response from the target will return a status code equal to 200, an HTTP / HTTPS header ‘Content-Length’ value greater than 200k and less than 300k, and an HTTP / HTTPS body that is the first two words equal to 0xFC48 or 0xFCe8 (e.g., based on heuristic analysis of the behavior of Cobalt Strike team servers and the contents of their beacon files, such contents exist in the Cobalt Strike shared code of the beacon file). Otherwise (e.g., the response does not match the above criteria), and thus, the target is determined not to be a Cobalt Strike team server, and further active probing and evaluation will be performed, and a verdict of benign will be determined (and the fast match table can be updated, as described above with respect to Figure 4A Figure 4B Similarly described).

[0158] DNS probing for Cobalt Strike team server detection

[0159] An example implementation for DNS active probing for Cobalt Strike team server detection will now be described. As an initial pre-check operation of the probing logic, the destination IP probing and validation module performs a final check of the DNS probing of the dst IP and port (e.g., target). As a final pre-check operation of the DNS probing logic, the destination IP probing and validation module sends a crafted DNS request to the target to download the beacon file. Figure 9A ​​An example DNS request for active probing of a target is illustrated in accordance with some embodiments. Specifically, a crafted DNS request is sent to the target to download a beacon file. More specifically, the crafted DNS request is a txt DNS request with the domain aaa.stage.xxxx, as shown in Figure 9A .

[0160] The destination IP probing and validation module then checks the contents of the DNS response from the target. If the target is a Cobalt Strike team server, the response from the target will return a txt DNS record response whose contents start with “WYIIIIIIIIIIII” (e.g., based on heuristic analysis of the behavior of Cobalt Strike team servers and the contents of their beacon files, such contents exist in the shared code of Cobalt Strike base64 encoding), such as Figure 9B . Figure 9B An example DNS response for active probing of a target is illustrated in accordance with some embodiments. Otherwise (e.g., the response does not match the criteria described above), and thus, the target is determined not to be a Cobalt Strike team server, and further active probing and evaluation will be performed, and a verdict of benign will be determined (and the fast match table can be updated, as described above with respect to Figure 4A and Figure 4B , similarly described).

[0161] Additional example processes for the disclosed techniques for probing Cobalt Strike team server detection will now be described.

[0162] Example process for HTTP / HTTPS probing for Cobalt Strike team server detection

[0163] Figure 10 is a flowchart of a process for HTTP / HTTPS probing for Cobalt Strike team server detection in accordance with some embodiments. In some embodiments, Figure 10 The process 1000 illustrated in FIG. 10 is performed by the security platforms and techniques similarly described above, including the embodiments described above with respect to Figures 1 to 8 . In one embodiment, the process 1000 is performed by the data appliance 102 described above with respect to Figure 1 , the data appliance 102 described above with respect to Figure 1The described network platform 122 (e.g., as a cloud-based security service), virtual appliances (e.g., Palo Alto Networks’ VM Series virtualized next-generation firewalls, CN Series container next-generation firewalls, and / or other commercially available virtual or container-based firewalls can similarly be implemented and configured to perform the disclosed techniques), SDN security solutions, cloud security services, and / or combinations or hybrid implementations of the above described herein perform.

[0164] At 1002, HTTP / HTTPS network traffic is monitored at a firewall. For example, the firewall can utilize application identification to detect HTTP / HTTPS traffic, such as described above with respect to Figure 1 and Figures 4A to 4B described similarly.

[0165] At 1004, pre-filtering is performed on the monitored HTTP / HTTPS network traffic at the firewall to select a subset of the HTTP / HTTPS network traffic to forward to a cloud security service. For example, the HTTP / HTTPS pre-filtering module can perform heuristic analysis on the HTTP / HTTPS network traffic to select a subset of the HTTP / HTTPS traffic sessions to forward to the cloud security service for further analysis, as described above with respect to Figures 4A to 4B and Figures 5A to 5G described similarly.

[0166] At 1006, HTTP / HTTPS probing of the target is performed to detect whether the target is a Cobalt Strike team server. For example, the destination IP probing and validation module can perform further heuristic analysis on the responses from the target to automatically detect a Cobalt Strike team server, as described above with respect to Figures 4A to 4B , Figures 5A to 5G and Figure 8 described similarly.

[0167] At 1008, an action is performed in response to detecting that the target is a Cobalt Strike team server. The security platform (122) and data appliance (102) can then respond to the malware verdict based on a policy (e.g., a security / C2-related malware policy, which can be stored in Figure 2BThe data appliance can be configured to block Cobalt Strike Beacon HTTP / HTTPS C2 traffic activity, for example. Other example actions can include: blocking access to destination IP addresses associated with detected Cobalt Strike Beacon HTTP / HTTPS C2 traffic activity; blocking / dropping network traffic associated with detected Cobalt Strike Beacon HTTP / HTTPS C2 traffic activity and / or associated with destination IP addresses; alerting end users and / or network / security administrators that endpoints are associated with detected Cobalt Strike Beacon HTTP / HTTPS C2 traffic activity; quarantining endpoint devices associated with detected Cobalt Strike Beacon HTTP / HTTPS C2 traffic activity; identifying destination IP addresses, URLs, etc. associated with detected Cobalt Strike Beacon HTTP / HTTPS C2 traffic activity as malicious (or potentially malicious); and / or various other actions can also be performed based on the policy.

[0168] Example process for DNS probes for Cobalt Strike team server detection

[0169] Figure 11 is a flow diagram of a process for DNS probes for Cobalt Strike team server detection according to some embodiments. In some embodiments, Figure 11 The process 1100 illustrated is performed by security platforms and technologies similarly described above, including the embodiments described above with respect to Figures 1 to 7 and Figures 9A to 9B In one embodiment, the process 1100 is performed by the data appliance 102 described above with respect to Figure 1 the network platform 122 described above with respect to Figure 1 (e.g., as a cloud-based security service), virtual appliances (e.g., Palo Alto Networks’ VM Series virtualized next-generation firewalls, CN Series container next-generation firewalls, and / or other commercially available virtual or container-based firewalls can similarly implement and be configured to perform the disclosed technologies), SDN security solutions, cloud security services, and / or combinations or hybrid implementations of the above described herein.

[0170] At 1102, DNS network traffic is monitored at a firewall. For example, the firewall can utilize application identification to detect DNS traffic, such as similarly described above with respect to Figure 1 and Figures 4A to 4B ​

[0171] At 1104, pre-filtering is performed on the monitored DNS network traffic at the firewall to select a subset of the DNS network traffic to forward to the cloud security service. For example, the DNS pre-filtering module can perform heuristic analysis on the DNS network traffic to select a subset of the DNS traffic sessions to forward to the cloud security service for further analysis, as described above with respect to Figures 4A to 4B and Figures 5A to 5G are similarly described.

[0172] Example implementations of the DNS pre-filtering operations (such as Figure 4A shown at 410 in FIG. 4) can be performed by the DNS pre-filtering module implemented on the firewall 102 by performing the following heuristic analysis: if the DNS request is a DNS txt record (e.g., dns.qry.type == 16 (txt record)), then forward the traffic to the cloud for further Cobalt Strike detection analysis.

[0173] At 1106, DNS probing of the target is performed to detect whether the target is a Cobalt Strike team server. For example, the destination IP probing and validation module can perform further heuristic analysis on the responses from the target to automatically detect Cobalt Strike team servers, as described above with respect to Figures 4A to 4B , Figures 5A to 5G and Figures 9A to 9B are similarly described.

[0174] At 1108, an action is performed in response to detecting that the target is a Cobalt Strike team server. The security platform (122) and data appliance (102) can then respond to the malware verdict based on a policy (e.g., a security / C2-related malware policy, which can be stored in Figure 2BThe data appliance can be configured to perform actions based on the detected Cobalt Strike Beacon DNS C2 traffic activity (e.g., as specified in the policy 252 shown). For example, the data appliance can be configured to block Cobalt Strike Beacon DNS C2 traffic activity. Other example actions can include: blocking access to destination IP addresses associated with the detected Cobalt Strike Beacon DNS C2 traffic activity; blocking / dropping network traffic associated with the detected Cobalt Strike Beacon DNS C2 traffic activity and / or associated with the destination IP addresses; alerting end users and / or network / security administrators that an endpoint is associated with the detected Cobalt Strike Beacon DNS C2 traffic activity; quarantining endpoint devices associated with the detected Cobalt Strike Beacon DNS C2 traffic activity; identifying destination IP addresses, URLs, etc. associated with the detected Cobalt Strike Beacon DNS C2 traffic activity as malicious (or potentially malicious); and / or various other actions can also be performed based on the policy.

[0175] While the above embodiments have been described in some detail for clarity's sake, it is not intended that any feature of the application should be construed as required, and the application can be practiced with the elements in different configurations than those described or with fewer than the elements described. The disclosed embodiments are meant to be illustrative only and not limiting of the scope of the application.

Claims

1. A system comprising: a processor configured to: monitor hypertext transfer protocol (HTTP) network traffic at a firewall; pre-filter the monitored HTTP network traffic at the firewall to select a subset of the HTTP network traffic to forward to a cloud security service, wherein pre-filtering the monitored HTTP network traffic at the firewall to select the subset of the HTTP network traffic to forward to the cloud security service includes performing heuristic analysis of the HTTP network traffic to select the subset of the HTTP traffic to forward to the cloud security service for further analysis to detect potential Cobalt Strike Beacon HTTP C2 traffic, wherein the heuristic analysis of the HTTP network traffic includes determining the following to select the subset of the HTTP traffic to forward to the cloud security service for further analysis to detect potential Cobalt Strike Beacon HTTP C2 traffic: whether the network traffic includes a header value or URI length check that matches a range of 171 bytes to 256 bytes; and whether the network traffic includes a header value or URI length field that has an encoding that matches one of these types of encodings: base64, base64url, netbios, netbiosu, or mask; forward the subset of the HTTP network traffic to the cloud security service, wherein the cloud security service automatically determines, based on a plurality of heuristics, whether the subset of the HTTP network traffic is associated with Cobalt Strike Beacon HTTP C2 traffic activity; receive a response from the cloud security service that the subset of the HTTP network traffic is associated with Cobalt Strike Beacon HTTP C2 traffic activity; and perform an action in response to determining that the subset of the HTTP network traffic is associated with Cobalt Strike Beacon HTTP C2 traffic activity; and a memory coupled to the processor and configured to provide the processor with instructions.

2. The system of claim 1, wherein a fast match table of the detection system stores previously detected Cobalt Strike Beacon HTTP C2 traffic activity.

3. The system of claim 1, wherein a fast match table of the detection system stores a triple of previously detected Cobalt Strike Beacon HTTP C2 traffic activity, wherein the triple includes a source IP address, a destination IP address, and a destination port.

4. The system of claim 1, wherein data statistics based on the automatic heuristic analysis of the subset of the HTTP network traffic are stored in a data statistics table of the detection system.

5. The system of claim 1, wherein the processor is further configured to perform a verification on the detected Cobalt Strike Beacon HTTP C2 traffic activity.

6. The system of claim 1, wherein the processor is further configured to perform validation of the detected CobaltStrike Beacon HTTP C2 traffic activity based on a probe of a destination IP address associated with the detected CobaltStrike Beacon HTTP C2 traffic activity.

7. The system of claim 1, wherein the processor is further configured to perform validation of the detected CobaltStrike Beacon HTTP C2 traffic activity based on a probe of a destination IP address associated with the detected CobaltStrike Beacon HTTP C2 traffic activity and using a fingerprint data store.

8. The system of claim 1, wherein the cloud security service automatically determines whether the subset of HTTP network traffic is associated with Cobalt Strike Beacon HTTP C2 traffic activity based on a plurality of heuristics including performing data statistical checks for performing behavior-based detection of Cobalt Strike Beacon HTTP C2 traffic activity, the detection including checking timestamps of at least the first 12 sessions to determine whether this is a Gaussian distribution or a normal distribution.

9. A method comprising: monitoring hypertext transfer protocol (HTTP) network traffic at a firewall; pre-filtering the monitored HTTP network traffic at the firewall to select a subset of HTTP network traffic to forward to a cloud security service, wherein pre-filtering the monitored HTTP network traffic at the firewall to select the subset of HTTP network traffic to forward to the cloud security service includes performing heuristic analysis of the HTTP network traffic to select the subset of HTTP traffic to forward to the cloud security service for further analysis to detect potential Cobalt Strike Beacon HTTP C2 traffic, wherein the heuristic analysis of the HTTP network traffic includes determining the following to select the subset of HTTP traffic to forward to the cloud security service for further analysis to detect potential Cobalt Strike Beacon HTTP C2 traffic: whether the network traffic includes a header value or URI length check that matches a range of 171 bytes to 256 bytes; and whether the network traffic includes a header value or URI length field that has an encoding that matches one of these types of encoding: base64, base64url, netbios, netbiosu, or mask; forwarding the subset of HTTP network traffic to the cloud security service, wherein the cloud security service automatically determines whether the subset of HTTP network traffic is associated with Cobalt Strike Beacon HTTP C2 traffic activity based on a plurality of heuristics; receiving a response from the cloud security service that the subset of HTTP network traffic is associated with Cobalt Strike Beacon HTTP C2 traffic activity; and performing an action in response to determining that the subset of HTTP network traffic is associated with Cobalt Strike Beacon HTTP C2 traffic activity.

10. The method of claim 9, wherein the fast match table of the detection system stores previously detected Cobalt Strike Beacon HTTP C2 traffic activity.

11. The method of claim 9, wherein the fast match table of the detection system stores a triple of previously detected Cobalt Strike Beacon HTTP C2 traffic activity, wherein the triple includes a source IP address, a destination IP address, and a destination port.

12. The method of claim 9, wherein data statistics based on automatic heuristic analysis of the subset of HTTP network traffic are stored in a data statistics table of the detection system.

13. The method of claim 9, further comprising performing a verification of the detected Cobalt Strike Beacon HTTP C2 traffic activity.

14. The method of claim 9, further comprising performing a verification of the detected Cobalt Strike Beacon HTTP C2 traffic activity based on a probe of a destination IP address associated with the detected Cobalt Strike Beacon HTTP C2 traffic activity.

15. The method of claim 9, further comprising performing a verification of the detected Cobalt Strike Beacon HTTP C2 traffic activity based on a probe of a destination IP address associated with the detected Cobalt Strike Beacon HTTP C2 traffic activity and using a fingerprint data store.

16. A computer program product, embodied in a non-transitory computer readable medium and comprising computer instructions for: monitoring hypertext transfer protocol (HTTP) network traffic at a firewall; pre-filtering the monitored HTTP network traffic at the firewall to select a subset of the HTTP network traffic to forward to the cloud security service, wherein pre-filtering the monitored HTTP network traffic at the firewall to select the subset of the HTTP network traffic to forward to the cloud security service comprises: performing heuristic analysis of the HTTP network traffic to select a subset of the HTTP traffic to forward to a cloud security service for further analysis to detect potential Cobalt Strike Beacon HTTP C2 traffic, wherein the heuristic analysis of the HTTP network traffic includes determining the following to select the subset of the HTTP traffic to forward to the cloud security service for further analysis to detect potential Cobalt Strike Beacon HTTP C2 traffic: whether the network traffic includes a header value or URI length check that matches a range of 171 bytes to 256 bytes; and whether the network traffic includes a header value or URI length check that matches a range of 171 bytes to 256 bytes; and whether the network traffic includes a header value or URI length field with an encoding matching one of these types of encodings: base64, base64url, netbios, netbiosu, or mask; forwarding the subset of HTTP network traffic to a cloud security service, wherein the cloud security service automatically determines whether the subset of HTTP network traffic is associated with Cobalt Strike Beacon HTTP C2 campaign based on a plurality of heuristics; receiving a response from the cloud security service that the subset of HTTP network traffic is associated with Cobalt Strike Beacon HTTP C2 campaign; and performing an action in response to determining that the subset of HTTP network traffic is associated with Cobalt Strike Beacon HTTP C2 campaign.

17. The computer program product of claim 16, wherein the fast match table of the detection system stores previously detected Cobalt Strike Beacon HTTP C2 campaign.

18. The computer program product of claim 16, wherein the fast match table of the detection system stores a triple of previously detected Cobalt Strike Beacon HTTP C2 campaign, wherein the triple includes a source IP address, a destination IP address, and a destination port.

19. The computer program product of claim 16, further comprising computer instructions for performing a verification of the detected Cobalt Strike Beacon HTTP C2 campaign.

20. The computer program product of claim 16, further comprising computer instructions for performing a verification of the detected Cobalt Strike Beacon HTTP C2 campaign based on a probe of a destination IP address associated with the detected Cobalt Strike Beacon HTTP C2 campaign.

21. The computer program product of claim 16, further comprising computer instructions for performing a verification of the detected Cobalt Strike Beacon HTTP C2 campaign based on a probe of a destination IP address associated with the detected Cobalt Strike Beacon HTTP C2 campaign and using a fingerprint data store.

Citation Information

Patent Citations

  • Transport layer signaling security with next generation firewall

    CN111903107A

  • Diameter security with next generation firewall

    US20190253389A1