Technique for malware detection capability comparison of network security devices

A testing technique tests and compares malware detection capabilities of network security devices, such as those commercially available from a variety of cyber-security vendors. Testing is conducted on test samples in a “blind” fashion, where the security devices do not know beforehand whether the test samples are “live” malware or benign network traffic. The test samples are received from a remote server and potentially represent malicious attacks against a testing network. Notably, for truly blind testing, embodiments of the testing technique employ a mixture of malware and benign test samples, as well as addressing subterfuge, to prevent the security devices from being able to reliably determine maliciousness of the test samples based on a source of any of the samples.

BACKGROUND

Technical Field

The present disclosure relates to malware detection capabilities of network security devices and, more specifically, to testing and comparing of malware detection capabilities of network security devices.

Background Information

Enterprise network administrators desiring to evaluate commercially available malware detection capabilities of network security devices may often conduct tests to determine efficacy of one or more malware detection solutions of the devices. These tests may be conducted before selection of one of the solutions for purchase or from time to time after solution procurement to assure continued efficacy of malware detection as the threat landscape changes. The testing may require using ‘live’ malware for realistic and accurate evaluation. As such, it is vital that the testing be conducted safely without the potential to infect the enterprise's own network and its IT infrastructure.

Typically, these tests are conducted by testing commodity (common and well known) malware in the selected malware detection solutions to assess whether the solutions detect the malware. Unfortunately, these tests can produce inaccurate results that do not reveal hidden deficiencies in the real-world malware detection capabilities of the detection solutions. For instance, some of the tested solutions may detect malware attacks based on pre-determined signatures or characteristics, such as whether the attacks match well known virus signatures, or whether they originate from black-listed domains (i.e., domains associated with known malware). Such detection solutions are unlikely to succeed in ‘real’ use of an actual ‘in production’ computer network, where the solutions must detect and protect against ‘zero day’ and other advanced malware.

Zero day attacks, by definition, have not been detected before and thus have no known signatures or known characteristics; accordingly, such signature-based solutions would fail to detect them. Moreover, advanced malware may coopt and use previously whitelisted domains, i.e., domains not previously known to be malicious; accordingly, solutions relying on domain-identification techniques would fail to detect them. Finally, advanced malware is often polymorphic, and thus has signatures and superficial characteristics that change over time while retaining core malicious functions, which, once again, may escape detection by solutions relying on pre-determined information. To accurately assess the effectiveness of malware detection solutions, attacks need to be tested in a manner as consistent as possible with real-world attacks on the enterprise (i.e., private) network including use of advanced malware.

It is often desirable to test detection solutions for other purposes and in other circumstances as well. For example, a detection solution vendor or manufacturer may test new releases or models of its detection solutions against prior releases and models (from the same manufacturer or from different companies) by way of comparison testing and/or to demonstrate enhanced detection capabilities.

OVERVIEW

The embodiments herein are directed to a testing technique to test and compare malware detection capabilities of network security devices and other cyber-attack security devices, such as those commercially available from a variety of cyber-security vendors. Testing is conducted on a plurality of test samples in a “blind” fashion, where the security devices do not know beforehand whether the test samples are “live” malware or benign network traffic. The test samples are received from a remote server and potentially represent malicious attacks against a testing network. Notably, for truly blind testing, embodiments of the testing technique employ a mixture of malware and benign test samples, as well as addressing subterfuge, to prevent the security devices from being able to reliably determine maliciousness of the test samples based on a source of any of the samples.

In one or more embodiments, a virtualized endpoint running on a test console, e.g., a computer, connected to the testing network of a testing environment generates and sends one or more request messages (requests) to acquire a plurality (e.g., mixture) of test samples from a database of samples stored in a secure data store of the testing environment. Each request includes an indicator, e.g., a uniform resource locator (URL), of a domain that may or may not be known to be associated with a source of malware. More specifically, the URL's may each correspond to a well-known and common (i.e., “clean” or “whitelisted”) domain not generally associated with a malicious server. In other embodiments, the URL's may correspond to a mixture of such whitelisted domains and “dirty” or “blacklisted” domains known to be associated with a malicious server. Illustratively, the request is modified at a proxy of a gateway connected to the testing network to direct the request to a remote server storing the database of samples, while maintaining the URL as an alias domain of the request. The request is forwarded to a switch of the testing network that connects the test console and the security devices to provide communication with the remote server, which may be located external to the testing network and accessed, e.g., via a public network. The switch mirrors (i.e., provides copies of) the request to the security devices, illustratively “units under test” (UUTs), such as one or more malware detection systems, which may be equipped with counter-evasion technology configured to detect malware developed to avoid detection. According to the testing technique, the proxy may be used to obscure source/destination address information of communications (i.e., addressing subterfuge) with the remote server so that simplistic malware detection by, e.g., Internet address blacklisting, is unreliable for the UUTs to detect whether the communication has malware.

The remote server receives and parses each request for credentials to authenticate the virtualized endpoint as entitled to receive one or more test samples indicated in the request. The remote server then returns a response message (response) associated with each request addressed to the virtualized endpoint, wherein the response includes the one or more test samples of the mixture of malicious and benign test samples, each having at least one malware or benign object for processing by the virtualized endpoint. A copy of the response to the request is also provided to each UUT, e.g., via the switch. The virtualized endpoint processes the objects while each UUT performs its own processing of the objects to detect whether the objects are malware or benign. In some embodiments, and depending on the type of UUT being tested, each UUT may monitor and track the request-response message traffic (i.e., both inbound and outbound traffic) flowing between the gateway and remote server. The UUT may attempt, depending on its capabilities, to match the destination address (e.g., URL) of such outbound traffic (e.g., the request message) and/or the source address (e.g., URL) of such inbound traffic (e.g., response message) against a blacklist of known malicious servers. However, any attempt by the UUT to ascribe maliciousness to the alias domain for purposes of Internet address blacklisting of the destination of the request or the source of the response may be ineffective (i.e., unreliable indicator of malware) because of the mixture of malicious and benign objects contained in the response(s) and because of the mixture of clean and dirty alias domains.

During processing by the virtualized endpoint, the object may seek additional content, such as a malicious package not included in the object. The virtualized endpoint may generate further requests to obtain such additional content from one or more network locations, e.g., identified by one or more URLs specified by the object. The UUT may process the object and additional content to determine whether the object and additional content are malicious. Thereafter, each UUT may indicate whether an object (and additional content) is malware or benign.

Based on the reports of the UUTs, the test application issues its own report to compare and contrast detection efficacy of the UUT's. In an embodiment, the report may include information as to whether each UUT correctly identified samples as malicious or benign or incorrectly (i.e., falsely) identified samples as malicious or benign (false positives and false negatives, respectively), as well as a vector (e.g., email, web) used to deliver the sample and a sample type (e.g., object, flow, multi-flow).

DESCRIPTION

FIG. 1is a block diagram of a network environment100that may be advantageously used with one or more embodiments described herein. The network environment100illustratively includes a plurality of computer communications networks organized as a public network120, such as the internet, and a private network130, e.g., an organization or enterprise network including a testing network (i.e., a network used for testing purposes) or a production environment (i.e., a network used for operation of the enterprise). The networks120,130illustratively include a plurality of network links and segments connected to a plurality of nodes. The network links and segments may include local area networks (LANs)110and wide area networks (WANs)140, including wireless networks, interconnected by intermediate nodes150to form an internetwork of nodes, wherein the intermediate nodes150may include network switches, routers and/or firewalls. The LANs110may, in turn, interconnect end nodes180which, in the case of private network130, may include endpoint devices (endpoints).

In an embodiment, the endpoints may illustratively include, e.g., client/server desktop computers, laptop/notebook computers, process controllers, medical devices, data acquisition devices, mobile devices, such as smartphones and tablet computers, and/or any other intelligent electronic device having network connectivity that may be configured to implement a virtualization system. The nodes illustratively communicate by exchanging packets or messages (i.e., network/message traffic) according to a predefined set of protocols, such as the Transmission Control Protocol/Internet Protocol (TCP/IP); however, it should be noted that other protocols, such as the HyperText Transfer Protocol Secure (HTTPS), File Transfer Protocol (FTP) and various email protocols, may be advantageously used with the embodiments herein. In the case of private network130, the intermediate node150may include a firewall or other network computing device configured to limit or block certain network traffic in an attempt to protect the endpoints from unauthorized users and attacks.

FIG. 2is a block diagram of an end node that may be advantageously used with one or more embodiments described herein. The end node200may be illustratively embodied as a test console, a unit-under-test (UUT) including a malware detection system (MDS), and/or a remote server as described further herein. The end node200may include one or more central processing units (CPUs)212, a memory220, one or more network interfaces214, one or more devices216, and (optionally) a user interface215connected by a system interconnect218, such as a bus. The user interface215may present a graphical or textual based representation to a user on, e.g., a computer display of the node that enables the user to interact with the node. The devices216may include various input/output (I/O) or peripheral devices, such as storage devices (e.g., disks) organized as storage (e.g., data and metadata) repositories of volumes and files embodied as secondary storage. The disks may be solid state drives (SSDs) embodied as flash storage devices or other non-volatile, solid-state electronic devices (e.g., drives based on storage class memory components), although, in an embodiment, the disks may be hard disk drives (HDDs). Each network interface214may contain the mechanical, electrical and signaling circuitry needed to connect the node to the network130to thereby facilitate communication over the network. To that end, the network interface214may be configured to transmit and/or receive messages using a variety of communication protocols including, inter alia, TCP/IP and HTTPS.

The memory220may include a plurality of locations that are addressable by the CPU(s)212and the network inter face(s)214for storing software program code (including application programs240and, as described below for one or more embodiments of a virtualized endpoint of the test console, an agent250) and data structures (e.g., data logs), not shown, associated with the embodiments described herein. The CPU212may be embodied as a hardware processor including processing elements or logic adapted to execute the software program code and application programs, and manipulate the data structures. Exemplary CPUs may include families of instruction set architectures based on the x86 CPU and the x64 CPU. An operating system230, portions of which are typically resident in memory220and executed by the CPU, functionally organizes the node by, inter alia, invoking operations in support of the software program code and application programs240executing on the node. Illustratively, the software program code may be implemented as processes of the operating system230. As used herein, a process is an instance of software program code (e.g., an application program240) executing in the operating system that may be separated (decomposed) into a plurality of threads, wherein each thread is a sequence of execution within the process.

It will be apparent to those skilled in the art that other types of processing elements and memory, including various computer-readable media, may be used to store and execute program instructions pertaining to the embodiments described herein. Also, while the embodiments herein are described in terms of software program code and application programs stored in memory, alternative embodiments also include the code/programs being embodied as modules consisting of hardware, software, firmware, or combinations thereof.

The embodiments herein are directed to a testing technique to test and compare malware detection capabilities of network security devices and other cyber-attack security devices, such as those commercially available from a variety of cyber-security vendors. Testing is conducted on a plurality of test samples in a “blind” fashion, where the security devices do not know beforehand whether the test samples are “live” malware or benign network traffic. The test samples are received from a remote server and potentially represent malicious attacks against a testing network. Notably, for truly blind testing, embodiments of the testing technique employ a mixture of malware and benign test samples, as well as addressing subterfuge, to prevent the security devices from being able to reliably determine maliciousness of the test samples based on a source of any of the samples.

The malware may be of any level of sophistication, from commodity malware (such as computer viruses, worms, Trojans, or spyware) to advanced malware. As used herein, advanced malware may be of any type of sophisticated malware, such as (i) zero day malware that have not been previously detected and thus have no known signatures or characteristics; (ii) polymorphic malware that changes its appearance or behavior, including its signature, over time while retaining its core malicious functions, thus avoiding matches against a signature database; and/or (iii) targeted malware that targets a particular user or node on an enterprise network and that may not match signatures of known common malware. The advanced malware may be contained for example in a single downloaded webpage or email, or may be delivered in multiple stages such as a downloaded webpage or email including a link (URL) to a downloadable malware package. Moreover, the advanced malware may have built-in evasion technology configured to detect whether it is being processed in a detection environment and, if so, deactivate or postpone activation (hibernate) to avoid detection. Accordingly, in order to detect malware reliably, the malware detection systems may be configured with capabilities to detect advanced malware even if delivered in multiple stages while avoiding triggers (e.g., events) that may cause the malware to evade detection.

FIG. 3is a block diagram of a testing environment300that may be advantageously used with one or more embodiments described herein. A testing network310of the testing environment300may include a test console320, a switch330, and one or more network security devices whose efficacy of detecting the malware is to be assessed, i.e., the security devices are tested to determine whether they can accurately detect (i.e., demonstrate capacity to descry) the malware and/or malicious behavior. The testing network310is illustratively embodied as an isolated network within the private network130, such that any malware received is contained within (i.e., restrained to) the testing network. As will be understood by persons of skill in the art, other network arrangements may be used, such as virtual LANs (VLANs), to deploy the testing network as an isolated network. The test console320may be implemented as a laptop or other computer system controlled by a test administrator. The security devices are illustratively “units under test” (UUT's340), e.g., network traffic capture devices coupled locally and communicating with one or more local or remote malware detection systems (MDS's). The UUT's340may employ any type of malware analysis, including static (for example, signature detection or heuristics) and/or dynamic (behavioral) analysis, for detection, and may or may not be equipped with counter-evasion technology configured to detect malware developed to avoid detection.

The switch330connects the test console320and the UUT's340to provide communication with the remote server360, which may be located external to the testing network310and accessed, e.g., via the public network120. The switch330may be, for example, hardware or a virtual switch provided by executable software of the test console320. In alternative embodiments, though not shown in detail, it will be understood that the testing network310and the remote server360may be located in the same private network (e.g., in separate sub-networks of a single private network of an enterprise), or in separate private networks (e.g., first and second private networks of first and second enterprises, respectively) coupled together by a communication link such as a public network (e.g., the Internet), or the testing network may be in a private network and the remote server may be hosted in a public network. The switch330may be located operationally directly behind a firewall350, router or other network device of the testing network310and may include logic (e.g., one or more mirroring ports) equipped to copy incoming packets (messages) received by the testing network310from the remote server360, and provide the incoming messages (copies) to the test console320and each UUT340. In an alternative embodiment, a UUT, such as anti-virus software or a detection agent (e.g., of the type described with respect to agent250), may be included in the virtualized endpoint324to facilitate testing of endpoint-based malware detection, as described further herein.

In an embodiment, the MDS may be included within a special-purpose, malware detection appliance or a component in a general purpose computing device. As used herein, an appliance may be embodied as any type of general-purpose or special-purpose computer, including a dedicated electronic computing device, adapted to implement a variety of software architectures relating to exploit and malware detection functionality. The term “appliance” should therefore be taken broadly to include such arrangements, in addition to any systems or subsystems configured to perform a management function for exploit and malware detection, and associated with other equipment or systems, such as a network computing device interconnecting the WANs and LANs. The MDS may be available via a local network connection or remotely through the internet. The MDS may include static analysis logic that may identify suspicious or malicious characteristics of an object, statically (operable without executing the object). Additionally, the MDS may utilize dynamic analysis logic to process suspicious objects in an instrumented (i.e., monitored), virtual machine capable of detecting behaviors of the suspicious objects during processing. The dynamic analysis logic may be configured with (and run) an operating system and one or more applications (collectively, a “software profile”) that the suspicious object may expect or need for effective processing. That is, the software profile may include the same type of software that runs on the virtualized endpoint to execute the object. By so doing, the software environment in which the virtualized endpoint monitors the suspicious behaviors may be replicated in the software profile run on the virtual machine of the MDS. In this way, object behaviors that may be exhibited only in the presence of those applications may be detected. In another embodiment, the software profile may include a different type of software (e.g., different vendor or version) that runs on the virtualized endpoint to execute the object, to determine the presence of malware within a different runtime environment, or plural software profiles (for example, the same and different from that run on the endpoint). The MDS may also include a component that may combine the results of the static and dynamic analyses to classify the object as malicious or benign.

The test console320may be configured with a test application322, a virtualized endpoint324and a gateway326. The test application322runs on the test console320to permit the test administrator to select from a database of test samples (one or more malicious or benign objects) available from the remote server360. For instance, the test administrator may be presented with a list of test samples on the computer display (user interface215) of the test console from which to choose by selecting, e.g., via mouse click, one or more identifiers associated with one or more samples and submitting the identifiers as part of a request message (request). Illustratively, the test administrator may select an identifier associated with an individual malicious or benign sample, or an identifier associated with a predetermined mixture of malicious and benign samples. Each identifier may be a domain or uniform resource locator (URL), which has a one-to-one (1:1) association with the sample or mixture of samples. The URL's may each correspond to a well-known and common (i.e., “clean” or “whitelisted”) domain (e.g., Microsoft.com or Google.com) which, while not likely to have been blacklisted as a malicious server, may nonetheless have been hijacked and used to download malware. In other embodiments, the URL's may correspond to a mixture of such whitelisted domains and “dirty” or “blacklisted” domains known to be associated with one or more malicious servers. In an embodiment, the administrator may be presented with one or more test suites having a pre-arranged selection of test samples (e.g., a pre-arranged selection of malicious and benign test samples) arranged according to a level of test sophistication designed to measure detection capabilities of the UUTs (e.g., percentage of samples correctly detected as benign or malicious).

The test application322may instantiate (which should be read to include causing the instantiation of) the virtualized endpoint324as a virtual machine running on the test console320to simulate one or more actual endpoints on the enterprise network that may be vulnerable to the malware. The virtualized endpoint324of the test console320thus serves as a “victim” node for the test samples, while providing for safe, “sandboxed” processing. Additionally, by simulating an actual endpoint, the virtualized endpoint324may effectively simulate a “normal” computer network node, and thus serve to counter (e.g., suppress) evasion technology of advanced malware. To that end, the virtualized endpoint324may serve as a source of one or more requests for the samples, i.e., mimicking a “real” endpoint, configured to generate and send each request to a destination intended by the URL of the request, but which is redirected by the gateway326to the remote server360. In this regard, the virtualized endpoint324may initiate establishment of a communication session with the remote server360(via the gateway326) to acquire the sample, e.g., an advanced malware sample. The advanced malware sample may be a single object or a group of related objects (e.g., messages) organized as a flow during a single communication session between the virtualized endpoint324and the remote server360or as a set of flows (multi-flow attack). A multi-flow attack is a coordinated strike delivering various objects (including at least one malicious object) over multiple stages and multiple flows, sometimes across multiple vectors. Many commercially available cyber-security solutions analyze these stages separately; unfortunately, they may appear benign when viewed independently, limiting the security solutions' ability to detect multi-flow attacks. Better cyber-security solutions can detect and analyze the totality of a multi-flow attack, recognizing and correlating the related flows. For instance, a request may be initiated (generated) by the virtualized endpoint324and include the URL (identifier) as an alias domain. The remote server360may provide the response to the request in one or more response messages containing an object, a flow or set of flows, during a same communication session (in the case of an object or flow) or during a set of communication sessions (in the case of a multi-flow attack). In response to a further request from the virtualized endpoint324for additional content, as described elsewhere herein, the remote server may provide additional responses. UUT's equipped to detect multi-flow attacks are typically designed to capture all the related flows, and delay completion of processing for malware detection until they are received and can be processed together.

In some embodiments, the test application322may generate a request seeking a single malware sample, which is associated with not one but two (or more) URLs. These may include a first URL associated with a known (i.e., previously determined) malicious webserver and thus quite likely contained in an address blacklist of an UUT, and a second URL having a well-known and common domain not known to be associated with a malicious server and thus not likely blacklisted. A response to the request may include a first copy of the malware served with the first, known malicious URL, and a second copy of the malware served with the second, misleadingly benign appearing URL to enable the employment of addressing subterfuge in accordance with the testing technique described herein. This enables testing of the capability of the UUT's to detect advanced malware, as will be describe in greater detail below.

The gateway326may be embodied as a translation application (redirecting the request to the remote server) running in another (i.e., second) virtual machine of the test console320. Alternatively, the gateway may be embodied as a node within the testing network. Illustratively, the gateway326intermediates requests and responses (message traffic) between the virtualized endpoint324and the remote server360for the communication session or sessions), and, to that end, redirects that message traffic to the remote server360and virtualized endpoint324as appropriate. In one or more embodiments, e.g., using the HTTPS protocol, the communication session is illustratively established between the gateway326and the remote server360, and the virtualized endpoint324communicates with the gateway326via an internal connection (e.g., a virtualized bridge) within the test console320. Accordingly, the gateway serves as a source device for the request-response message traffic for the communication session. In an embodiment, the gateway may act as a protection layer adapted to harden the testing network by restricting (e.g., filtering) communication according to a specific configuration. That is, the gateway may be configured, e.g., via one or more firewall rules, to limit communication (e.g., allow only specific protocols, such as HTTPS/HTTP), to be exchanged with the test console so as to prevent malicious message traffic using unrecognized or custom protocols that are often employed by malware. Illustratively, if the message traffic occurs in accordance with a custom communication protocol, such communication may or may not be allowed.

In order to mimic real-world attack scenarios that often include advanced malware designed to avoid detection by unsophisticated malware detection solutions, such as Internet address blacklisting of malicious domains (relied on by many commercially available malware detection technologies), the testing technique employs addressing subterfuge on the request (packet) using one or more proxies embodied as proxy software328, such as the Squid proxy software available as open source from www.squid-cache.org. The proxy may be used to obscure source/destination address information of communications (i.e., addressing subterfuge) with the remote server360so that simplistic malware detection by, e.g., Internet address blacklisting, is unreliable for the UUT's340as is the case in many real-world scenarios. Illustratively, an instance of the proxy software328may be employed and executed at the gateway326of the test console320to modify request packet information (headers) so that the request is re-directed to the remote server360for response rather than the URL (alias domain) contained in the request. That is, an original Internet address (e.g., IP address) of the request associated with the URL is altered (modified) to an Internet address of the remote server, thus re-directing the request to the remote server. For example, the gateway326may receive a request (e.g., get HTTPS request message) from the virtualized endpoint324that specifies a well-known and common URL as the alias (destination) domain of the request and the gateway (proxy software328) may modify an appropriate header of the request to direct the request to the remote server360.

FIG. 4is a block diagram of an example request400that may be advantageously used with one or more embodiments described herein. The request400may include a plurality of header fields, such as a source (IP) address field410, a destination (IP) address field420, a session field430, a request header field440, a destination domain field450and a proxy-authorization field460. In an embodiment, the source IP address field410contains the IP address of the gateway326, the destination IP address field420contains the IP address of the remote server360(as modified by the proxy software328), and the session field430contains an identifier (e.g., session id) that identifies the communication session for the request-response message traffic between the gateway326and remote server360. The request header field440contains an identifier (e.g., a request id) that identifies the message as a request and the destination domain field450contains the URL452of the alias domain. As noted, the URL452also has a 1:1 (one-to-one) association with the requested test sample or samples. The request may also include a proxy-authorization field460that contains security credentials462(e.g., password, passcode) used to authenticate the recipient (e.g., virtualized endpoint) as entitled to receive the requested test sample or samples.

Referring again toFIG. 3, the remote server360includes a network interface362, an authenticating proxy364, a content engine366and sample database368. The network interface362may receive and parse the request400, which specifies the IP address of the gateway326as the source of the request, the IP address of the remote server360as the destination of the request, and the URL452of the requested test sample or samples. The credentials462of the parsed request are provided to the authenticating proxy364to authenticate the virtualized endpoint as entitled to receive the requested test sample or samples. One or more portions of the URL452(identifier) is provided to the content engine366and used as an index to obtain the requested sample or predetermined mixture of samples from the sample database368(e.g., a secure data store), wherein each sample or predetermined mixture of samples in the database368is associated with a different identifier. The content engine366provides the requested test sample or samples to the network interface362of the remote server, which generates (creates) a message for “serving” the sample or samples to the virtualized endpoint as a response to the request (and, in so doing, delivering the sample or samples to the UUT's).

In an embodiment, the content engine366may also retrieve from the sample database indicators of compromise (IOC's) (e.g., behavioral features) associated with the test sample or samples, e.g., in response to selection of the URL by the test administrator. The IOC's may be sent to the test application322in a message separate from the sample or samples, whether proximate in time to the message containing the sample or samples or at a later time, such as during testing of the samples by the UUTs. IOC's received by the test administrator may be pre-determined from previous monitoring (i.e., observed behavior) of the associated test samples in an environment similar to that of the endpoint. As such, the IOC's represent expected behaviors of the test samples that indicate compromise (i.e., identify potentially malicious activity) of an endpoint. The purpose and use of the IOC's are described below.

FIG. 5is a block diagram of an example response500that may be advantageously used with one or more embodiments described herein. The response500includes a plurality of header fields, such as a source (IP) address field510, a destination (IP) address field520, a session field530, a response header field540, and an (optional) location field550, as well as a payload field560. In an embodiment, the source IP address field510contains the IP address of the remote server366, the destination IP address field520contains the IP address of the gateway326, and the session field530may contain the session id of the communication session. The response header field540contains the request id of the request corresponding to the response message, the optional location field550may contain the URL452of the alias domain, and the payload field560contains the requested test sample or samples562. As will be understood by persons of skill in art, a plurality of responses500may be sent to convey an entire sample or samples562and, in some embodiments, the sample or samples may be conveyed as email attachments and via a variety of other protocols, such as a file transfer protocol (FTP).

Referring again toFIG. 3, the virtualized endpoint324may be instantiated by the test application322as a virtual machine provisioned with a software profile that includes, e.g., an operating system and one or more application programs, such as a web browser, email application, and/or a document reader, configured to receive samples/objects and associated metadata for processing. Processing by the virtualized endpoint324may include opening the object in an appropriate application, e.g., the web browser if the object is a URL of a webpage or the document reader if the object is a document. During processing by the virtualized endpoint, the object may seek additional content, such as a malicious package (e.g., an executable javascript) not included in the object. The virtualized endpoint324may generate further requests to obtain such additional content from one or more network locations, e.g., identified by one or more URLs specified by the object. Notably, the generated requests (and responses) are subject to the modification of packet information by the gateway326, as described above. That is, the requests for additional content may be re-directed to the remote server via the gateway proxy software328. Moreover, the additional content is mirrored (copied) to the UUT's340and available to them for detection of malware.

In those cases in which IOC's associated with a sample/object are received from the content engine366, upon completion of processing by the virtualized endpoint324, the test application322may inspect (e.g., scan) the virtualized endpoint using observed IOC's of the objects to determine whether the virtualized endpoint was compromised or not. In some embodiments, the test application322can cause an endpoint detection agent250(FIG. 2) of the virtualized endpoint324to report observed IOC's (behaviors) monitored during processing of the object within the virtualized endpoint324to the testing application for comparison with the IOC's received from the content engine. Behaviors observed in the virtualized endpoint324matching behaviors of the IOC's received from the content engine366may indicate that the object has compromised the virtualized endpoint324and thus constitutes malware. Moreover, the UUTs that perform behavioral detection can reasonably be expected to see the same or similar IOC's (behaviors) as exhibited in the virtualized endpoint324and/or received from the remote server, particularly if the UUT's are provisioned and run the same type of software as the virtualized endpoint324. Any failure on the part of one or another of the UUT's to so detect those behaviors (i.e., failure to detect the received IOC's or observed IOC's at the endpoint) can be reported by the test application322as reflecting on efficacy in detection. In other words, the IOC's (i.e., received or observed at the endpoint) may serve as a baseline of behaviors expected to be observed by the UUTs (and virtualized endpoint) during their processing of malicious samples/objects, and the efficacy of the UUT's may be measured by comparing the behaviors (e.g., IOC's) monitored during processing of each object within the endpoint (or IOC's provided by the content engine) with those detected by each of the UUT's. Notably, the received IOC's may serve as a baseline of behaviors expected to be observed by the virtualized endpoint, so as to verify observation of those expected behaviors at the endpoint by comparing the baseline behaviors with the behaviors monitored during processing of each object within the endpoint. When the test application322reports on the efficacy of the UUT's, it may report on those IOC's not detected by the UUT's (if any), which may present a compelling differential in performance of the UUT's in detecting malware. That is, the IOC's may be used as a metric for determining the efficacy of the UUTs in detecting malware. As such, the IOC's are not used to assist the UUT's in detection of malware.

In one or more embodiments, in order to monitor for behaviors during processing of an object within the virtualized endpoint324, the virtualized endpoint includes an endpoint detection agent250(FIG. 2). The agent250(shown in dashed lines inFIG. 3) is an executable software component configured to monitor the behavior of the application programs240and/or operating system230. The agent250may be configured to monitor and store metadata (e.g., state information, memory accesses, process names, time stamp, etc.) associated with content executed at the virtualized endpoint324and/or behaviors (sometimes referred to as “events”) that may be associated with processing activity. Events are behaviors of an object that are exhibited by processes executed by the virtualized endpoint324and are monitored by the agent250during the normal operation of the virtualized endpoint. Examples of these events may include information associated with a newly created process (e.g., process identifier, time of creation, originating source for creation of the new process, etc.), information about the type and location of certain data structures, information associated with an access to certain restricted port or memory address, or the like. The agent250may also retrieve and communicate, e.g., from the virtualized endpoint to a remote electronic device, context information such as the contents of the virtualized endpoint's memory or hard drive. In some embodiments, the agent250may include event processing and filtering logic which, for example, applies heuristics, rules or other conditions to the monitored behaviors, to identify anomalous or unexpected behaviors and determine if the object is suspicious. The processing and filtering logic, in some embodiments, may scan content being processed for matches with indicators (signatures). Also, in some embodiments, the agent250may include a classifier configured to classify the behaviors as suspicious or even malicious. The behaviors detected and classification of the object made by the agent250may be provided to the test application322for comparison with the received IOCs and with the results (e.g., observed IOC's) of the UUT's.

Illustratively, the UUT's340are configured to receive the copied content, e.g., receive the one or more objects and additional content (e.g., messages) from the switch330and process the objects and additional content in normal operation to determine whether the objects and additional content are malicious. In typical commercially-available malware detection systems, the UUT's340may treat the additional objects as new objects for separate analysis or may treat them as objects related to objects from a prior flow for analysis as part of a potential multi-flow attack.

Some commercially-available malware detection systems may be adapted (provisioned) to submit cyber-security alerts with details regarding malware detections (and other results) to a conventional third-party or open source data aggregation product such as a SIEM (Security Information and Event Management). The aggregation product can often collect, analyze, index and correlate such real-time data in a searchable repository for later presentation to users/consumers. The virtualized endpoint of the present embodiments may be equipped with an application program interface for at least one such data aggregation product. When any of the UUT's attempts to issue alerts by sending the alert data out over the testing network, the switch provides the alert data to the virtualized endpoint, which is then processed by the test application to extract the detection information contained in the data for use in comparison of detection results from the UUT's. The alert data typically is not communicated outside the testing network.

It should be noted thatFIG. 3depicts the UUT's340in a non-blocking or “out-of-band” deployment, in which the switch330mirrors (copies) traffic received over the firewall350to both of the UUT's340and provides the traffic to the test console320. This deployment is non-blocking since any objects included in the traffic found to be malicious cannot be prevented by the UUT's from reaching the virtualized endpoint324. An alternative, “in-band” deployment, can locate one or another of the UUT's in series with the switch, and between the firewall350and the test console. Upon detecting (rightly or wrongly) a malicious attack (including communications containing or associated with suspected malware), the in-line UUT340may be configured to block the communication (e.g., request-response message traffic). For example, the in-line UUT340may determine that a request message is directed to a blacklisted domain (the alias domain) and therefore block the request, or determine that the response message containing the sample is being sent from a blacklisted domain (the alias domain), and otherwise allow the traffic to proceed. In embodiments or test configurations where the traffic is blocked and yet the samples are benign, the testing results may show that the UUT in question reported a false positive (i.e., wrongly identifying the sample as malware) and, where the UUT relied solely on such reputation testing of the alias domain and the traffic was passed and yet the sample was malware, the testing results may show that the UUT in question reported a false negative (i.e., wrongly identifying the sample as benign). In order to test both UUT's340in in-line deployment, it can be readily understood that two tests may need to be performed to determine whether the two “blocking” UUT340detect the object as malicious or benign (i.e., “one at a time” testing) or, in the alternative, only one UUT may be deployed in-line and the other deployed out-of-band.

In the case of a multi-flow attack wherein the UUT's may detect and block a particular stage or flow of the multiple related flows, the test application322may analyze logs of the gateway326to determine whether other stages or flows of the multiple related flows may have bypassed (i.e., failed) detection by the UUT's and reached the console. Where any of the other stages or flows did manage to avoid detection, the test application322can report such detection failure as part of its UUT's efficacy assessment.

Each UUT may track (receive) the request-response message traffic between the gateway326and the remote server360, which maintains the URL as the alias domain (source or destination, as the case may be) or, depending on the embodiment, just the response message traffic to the gateway326from the remote server360, which maintains the URL as the alias domain (source). In other embodiments, the UUT may track the session id of the communication session for the request-response message traffic or the source IP address of the request/response which maintains the alias domain as the URL destination/source, respectively. However, any attempt by the UUT to ascribe maliciousness to the source domain or source IP address for purposes of Internet address blacklisting of the source of the response (and similarly for the request message) may be ineffective (i.e., unreliable indicator of malware) because of the mixture of malicious and benign objects contained in the response. In essence, the testing technique measures whether processing by the UUT is performed on the objects contained in the payload of the response rather than on the address information contained in the header fields of the request and/or response. That is, malware detection techniques employed by UUT's that rely largely on header metadata information (e.g., source and destination IP addresses410,420,510,520, as well as session ID430,530and URL452) in the request/response may be revealed by the testing technique in the form of a higher percentage of false positive and false negative malware detection scores versus malware detection techniques that analyze the response payload.

The UUT's340may issue reports/alerts as to their findings and results, which may be transmitted to the test application322of the test console320. The test application322may assess the reported results, and determine the efficacy (e.g., a malware detection score) of each UUT340in correctly determining whether the received objects of the samples542are malicious or benign. The test application322may also present the results of the UUT's analysis in more detail, including the characteristics and behaviors observed for each sample, on which the malware determination is based. The test application322may generate a report on the efficacy and comparison of detection results of the UUTs (including, for example, where applicable, behaviors of the samples observed during their execution by the UUTs). This report may be presented to a user or administrator via the user interface215on the console's computer display. In an embodiment, the report may include information as to whether the UUT's340falsely identified samples as malicious and benign (false positives and false negatives, respectively), as well as the vector (e.g., email, web) used in an attack and a sample type (e.g., object, flow, multi-flow). The report may also include information with respect to a level of sophistication of malware in the samples.

FIG. 6is an example simplified procedure for testing and comparing malware detection capabilities of network security devices that may be advantageously used with one or more embodiments described herein. The procedure600starts at step602and proceeds to step604where the virtualized endpoint running on the test console (test computer) generates one or more requests to acquire the plurality of test samples, wherein each request includes an indicator of an alias domain (e.g., URL) that may or may not be associated with a source of malware. At step606, the virtualized endpoint sends the request to acquire the test sample or samples from a database of samples. At step608, the request is modified (e.g., the IP address of the request is altered) at a proxy, e.g., of the gateway, to direct the request to the remote server while maintaining the indicator, e.g., URL, as the alias (destination) domain of the request. The request is then forwarded to the remote server via the switch where, at step610, in some embodiments, a copy of the request is provided to each UUT configured as a network security device.

At step612, a response to the request is generated at the remote server, wherein the response includes the test sample or samples, each having at least one malware or benign object. The response may include, for example, a test sample or samples in the form of a webpage to be opened by a web browser on the virtualized endpoint. In some embodiments, the response may include, for example, a sample or samples in the form of an email or email attachment, in which an embedded URL may link to malware or benign content, and the UUT's must simulate user interaction to cause the embedded URL to be activated. At step614, the response is returned to the virtualized endpoint via the switch where, at step616, a copy of the response to the request is provided to each UUT. At step618, each object included in the response is processed at the virtualized endpoint and, at step620, in this embodiment, each UUT also processes (e.g., runs static and/or behavioral analysis) the object (e.g., a copy thereof) to detect whether the object is malware or benign. As noted, in some embodiments, each UUT may track the request-response message traffic between the virtual endpoint and remote server which maintains the alias domain for the response. However, any attempt by the UUT to ascribe maliciousness to the alias domain for purposes of Internet address blacklisting of the destination address of the request message or the source address of the response may be ineffective (i.e., unreliable to detect malware) because of the inclusion of a malicious or benign object contained in the response and, in other embodiments (or test configurations), the use of both clean and dirty alias domains that bear no relationship for purposes of the testing to whether the samples are malware or benign.

At step622, each UUT generates a report of detection of the object as malware or benign. At step624, the test application can report on the efficacy of the UUT's by comparing and contrasting the detections of the UUT's as reported in step622. The report of the test application can be provided (generated) by a computer display or other human-readable (e.g., graphical and/or textural) or machine-readable output of the user interface215of the test console320. As noted above, a malware sample can be associated with not one but two URLs, including a first URL recognizable as associated with a known malicious webserver and thus quite likely contained in an address blacklist, and a second URL not known to be associated with a malicious server and thus not likely blacklisted. Where one of the UUT's, for example, only detects the former case of the known malicious server, the report of the test application may expose the deficiency of that UUT with regard to detection of advance (e.g., zero-day) malware for which no preexisting blacklist entry can exist. Moreover, in some embodiments, the report of the test application may include information regarding the ability of the UUT's to detect the IOC's as provided by the content engine and/or as experienced by (and monitored in) the virtualized endpoint during processing of the object. The procedure ends at step626.

While there have been shown and described illustrative embodiments of the invention, it is to be understood that various other adaptations and modifications may be made within the spirit and scope of the invention. For example, embodiments have been shown and described herein with relation to comparing the detection capabilities of the various commercially available solutions intended to be deployed as network security devices at the periphery of networks, as shown for UUT's340ofFIG. 3. However, aspects of the invention in their broader sense are not so limited and may, in fact, allow for evaluating the malware detection capabilities one or more UUT's345deployed within a virtualized endpoint (where one is shown as a dashed box inFIG. 3). To that end, the testing technique may be conducted as described above with the virtualized endpoint processing the test samples received from the remote server, while running at least one cybersecurity security solution as the UUT345(or, in some testing configurations, plural endpoint-located UUT's) within the virtualized endpoint itself.

For example, each UUT345within the virtualized endpoint may be a convention anti-virus program that scans incoming network traffic against a database of signatures or another type of endpoint detection agent that monitors processes behaviors for indicators of compromise of the virtualized endpoint, and generate alerts. Each endpoint-located UUT345may be evaluated and compared against another endpoint-located UUT (not shown) or against one or more UUT's340located outside the virtual endpoint, as shown inFIG. 3. Where plural endpoint-located UUT's are to be tested, they may be installed in the same virtualized endpoint or in different (separate) virtualized endpoints, each instantiated by the test application and provisioned with a different anti-virus or other agent. The agents can be run concurrently (in a time overlapping fashion) or sequentially within the same virtualized endpoint or in separate virtualized endpoints. It can be understood that, in some embodiments involving strictly endpoint-located UUT's and/or in-band UUT's, the switch330is not required to provide a mirrored copy to a UUT external to the virtualized endpoint. Where plural endpoint-located UUT's are tested, the switch330can take the form of a virtual switch implemented as executable software within the virtual endpoint or separately, e.g., outside the virtual endpoint through within the test console.

The foregoing description has been directed to specific embodiments. It will be apparent, however, that other variations and modifications may be made to the described embodiments, with the attainment of some or all of their advantages. For instance, it is expressly contemplated that the components and/or elements described herein can be implemented as software encoded on a tangible (non-transitory) computer-readable medium (e.g., disks, electronic memory, and/or CDs) having program instructions executing on a computer, hardware, firmware, or a combination thereof. Moreover, the embodiments or aspects thereof can be implemented in hardware, firmware, software, or a combination thereof. In the foregoing description, for example, in certain situations, terms such as “engine,” “component” and “logic” are representative of hardware, firmware and/or software that is configured to perform one or more functions. As hardware, engine (or component/logic) may include circuitry having data processing or storage functionality. Examples of such circuitry may include, but is not limited or restricted to a microprocessor, one or more processor cores, a programmable gate array, a microcontroller, an application specific integrated circuit, semiconductor memory, or combinatorial logic. Accordingly this description is to be taken only by way of example and not to otherwise limit the scope of the embodiments herein. Therefore, it is the object of the appended claims to cover all such variations and modifications as come within the true spirit and scope of the embodiments.