US10586040B2 - Sample-specific sandbox configuration based on endpoint telemetry - Google Patents
Sample-specific sandbox configuration based on endpoint telemetry Download PDFInfo
- Publication number
- US10586040B2 US10586040B2 US15/468,636 US201715468636A US10586040B2 US 10586040 B2 US10586040 B2 US 10586040B2 US 201715468636 A US201715468636 A US 201715468636A US 10586040 B2 US10586040 B2 US 10586040B2
- Authority
- US
- United States
- Prior art keywords
- endpoint
- files
- processors
- identifying
- file
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active, expires
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/145—Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
Definitions
- Computer systems and computer-related technologies continues to increase at a rapid pace. This increased use of computer systems has influenced the advances made to computer-related technologies. Computer systems have increasingly become an integral part of the business world and the activities of individual consumers. Computer systems may be used to carry out several business, industry, and academic endeavors.
- the method may include identifying a successful execution in relation to at least one of the plurality of files on the endpoint, and identifying the one or more properties associated with the endpoint based at least in part on the successful execution. In some cases, the method may include using the at least one extracted element as a classification feature for classifying the plurality of files.
- the method may include receiving a new file, extracting one or more elements from the new file, and performing a security action based on analysis of the one or more extracted elements.
- performing the security action may include identifying among the one or more sandbox configurations a sandbox configuration for the new file.
- the sandbox configuration for the new file is based at least in part on a pre-determined correlation.
- the method may include identifying a classification of the one or more extracted elements, and identifying the pre-determined correlation based at least in part on the identified classification. In some embodiments, the method may include determining whether the new file reveals a predefined minimum behavior when executed in the identified sandbox configuration, and in response to determining that the new file reveals the predefined minimum behavior when executed in the identified sandbox configuration, increasing a confidence score associated with the pre-determined correlation.
- the method may include in response to determining that the new file fails to reveal the predefined minimum behavior when executed in the identified sandbox configuration, decreasing a confidence score associated with the pre-determined correlation.
- the method may include receiving a new file, extracting one or more elements from the new file, and determining whether the one or more elements extracted from the new file correlate with at least one of a plurality of clusters.
- the method in response to determining that the one or more extracted elements does not correlate with the plurality of clusters, may include generating a cluster that includes the new file, the cluster being generated based at least in part on the one or more elements extracted from the new file, and identifying the one or more properties associated with the endpoint.
- the new file may reveal a predefined minimum behavior when executed on the endpoint.
- the method may include adding the generated cluster to the plurality of clusters, and updating a correlation between the plurality of clusters and the one or more properties of the endpoint.
- the method in response to determining that the one or more extracted elements correlates with the plurality of clusters, the method may include identifying a pre-existing cluster associated with the new file, identifying a pre-determined correlation based at least in part on the pre-existing cluster, and identifying among the one or more sandbox configurations a sandbox configuration for the new file.
- the sandbox configuration for the new file is based at least in part on the pre-determined correlation.
- a non-transitory computer-readable storage medium storing computer executable instructions is also described.
- the execution of the instructions may cause the one or more processors to receive a plurality of files, extract at least one element from at least one file from the plurality of files, identify one or more properties associated with an endpoint, determine a correlation between the at least one extracted element and the one or more properties of the endpoint, and determine one or more sandbox configurations based at least in part on the determined correlation.
- the endpoint may be related to at least one of the plurality of files.
- FIG. 1 is a block diagram illustrating one embodiment of an environment in which the present systems and methods may be implemented in accordance with various aspects of this disclosure
- FIG. 2 is a block diagram illustrating one example of a sandbox configuration module in accordance with various aspects of this disclosure
- FIG. 3 is a block diagram illustrating one example of a classification module in accordance with various aspects of this disclosure
- FIG. 4 is a block diagram illustrating one example of an endpoint module in accordance with various aspects of this disclosure
- FIG. 5 is a flow diagram illustrating one embodiment of a method for determining sandbox configurations for malware analysis in accordance with various aspects of this disclosure
- FIG. 6 is a flow diagram illustrating one embodiment of a method for determining sandbox configurations for malware analysis in accordance with various aspects of this disclosure
- FIG. 7 is a flow diagram illustrating one embodiment of a method for determining sandbox configurations for malware analysis in accordance with various aspects of this disclosure
- FIG. 8 is a flow diagram illustrating one embodiment of a method for determining sandbox configurations for malware analysis in accordance with various aspects of this disclosure
- FIG. 9 is a block diagram illustrating one embodiment of an environment in which the present systems and methods may be implemented in accordance with various aspects of this disclosure.
- FIG. 10 depicts a block diagram of a computer system suitable for implementing the present systems and methods in accordance with various aspects of this disclosure
- FIG. 11 depicts a block diagram of a computer system suitable for implementing the present systems and methods in accordance with various aspects of this disclosure.
- FIG. 12 is a block diagram depicting a network architecture in which client systems and storage servers may be coupled to a network in accordance with various aspects of this disclosure.
- the systems and methods described herein relate to generating sample-specific sandbox configuration. More specifically, the systems and methods described herein relate to using machine learning techniques on a training set of files to classify the files into malicious and non-malicious files.
- the training set of files may include both malicious files as well as non-malicious files.
- machine learning techniques using language processing may be used for determining a successful sandbox configuration.
- clustering algorithms may be used to generate malicious file clusters and non-malicious file clusters.
- the training set of files may be clustered into groups that perform well in similar environments.
- the method generating sample-specific sandbox configurations may include two stages: a training stage and a prediction stage.
- the system is provided with a training set of files.
- the training set of files may include both malicious files and non-malicious files.
- the system may be a remote processor configured to classify malicious and non-malicious files.
- the remote processor may receive the training set of files from a second remote processor, a server, a computing device, or a combination thereof.
- Each file in the training set of files may be examined to extract at least one element from each file in the training set of files.
- the elements may be extracted from each file using methods similar to those used by an anti-virus software.
- the extracted elements may include metadata from the received files.
- the system may be configured to analyze each of the extracted elements and generate positive analysis results if an element is associated with a non-malicious file and negative analysis results if the element is associated with a malicious file. In some cases, a difference in behavior may be observed between two or more files.
- the system may be configured to identify indication of successful detonation of the malicious file, at an endpoint.
- the system may identify one or more properties of the endpoint. For example, the system may identify endpoint configurations. The system may further identify endpoint environments that describes details of the endpoint on which a file was executed.
- the details may include RRSLog data, that provides details about the software that was installed on the machine at the time that a BASH behavior for the machine was observed.
- the properties of endpoint may further include behavioral information/data, that may provide a fine-grained information about native systems at the time that the execution of the malicious file occurred. Such fine grained information may include whether there was active keyboard, mouse input, number of executing processes, and details about the executing processes.
- the system may determine a correlation between the properties and the extracted elements. As an example, the system may identify a correlation between properties of a malware file itself and properties of the execution environment of that malware file. The system may then identify a sandbox configuration based at least in part on identifying the correlation. That is, the system may identify a set of properties, that when possessed by a sandbox, the sandbox may be used to detonate a type of file.
- the system may determine elements and identifiers from the new file using methods described above. The system may then identify a pre-existing correlation associated with the elements of the new file from the correlations determined during the training stage. Upon determining the pre-determined correlation, the system may identify one or more properties of a sandbox. The identified sandbox may possess the same properties as an endpoint used to detonate similar malicious file. As explained above, the system may determine details associated with endpoints, on which a similar malicious file had successfully executed during the training stage. During the prediction stage, the system may determine the sandbox configuration to include properties similar to the endpoint. Thus, for a new file, the system may be configured to automatically derive sandbox properties that will increase the chances of extracting its malicious behavior.
- FIG. 1 is a block diagram illustrating one embodiment of an environment 100 in which the present systems and methods may be implemented in accordance with various aspects of this disclosure.
- the systems and methods described herein may be performed on a device (e.g., device 105 ).
- the environment 100 may include a device 105 , server 110 , a display 130 , a computing device 150 , and a network 115 that allows the device 105 , the server 110 , and the computing device 150 to communicate with one another.
- Examples of the device 105 may include any combination of mobile devices, smart phones, personal computing devices, computers, laptops, desktops, servers, media content set top boxes, digital video recorders (DVRs), or any combination thereof.
- Examples of computing device 150 may include any combination of a mobile computing device, a laptop, a desktop, a server, a media set top box, or any combination thereof.
- Examples of server 110 may include a data server, a cloud server, a server associated with a security solution provider, proxy server, mail server, web server, application server, database server, communications server, file server, home server, mobile server, name server, or any combination thereof.
- the device 105 may include a user interface 135 , application 140 , and sandbox configuration module 145 .
- application 140 may be installed on computing device 150 in order to allow a user to interface with a function of device 105 , sandbox configuration module 145 , and/or server 110 .
- device 105 may communicate with server 110 via network 115 .
- network 115 may include any combination of cloud networks, local area networks (LAN), wide area networks (WAN), virtual private networks (VPN), wireless networks (using 802.11, for example), cellular networks (using 3G and/or LTE, for example), etc.
- the network 115 may include the Internet.
- the device 105 may not include a sandbox configuration module 145 .
- device 105 may include application 140 that enables device 105 to interface with a user via sandbox configuration module 145 located on another device such as computing device 150 and/or server 110 .
- device 105 and server 110 may include a sandbox configuration module 145 where at least a portion of the functions of sandbox configuration module 145 are performed separately and/or concurrently on device 105 and/or server 110 .
- a user may access the functions of device 105 (directly or through device 105 via sandbox configuration module 145 ) from computing device 150 .
- computing device 150 includes a mobile application that interfaces with one or more functions of device 105 , sandbox configuration module 145 , and/or server 110 .
- server 110 may be coupled to database 120 .
- Database 120 may be internal or external to the server 110 .
- device 105 may be coupled directly to database 120 , database 120 being internal or external to device 105 .
- Database 120 may include correlation data 165 .
- device 105 may access identifier data in database 120 over network 115 via server 110 .
- Correlation data 165 may include data related to correlation between extracted elements and one or more properties of an endpoint.
- sandbox configuration module 145 may be configured to perform the systems and methods described herein in conjunction with user interface 135 , application 140 , and/or correlation data 165 .
- User interface 135 may enable a user to interact with, control, and/or program one or more functions of sandbox configuration module 145 . Further details regarding the sandbox configuration module 145 are discussed below.
- FIG. 2 is a block diagram illustrating one example of a sandbox configuration module in accordance with various aspects of this disclosure.
- Sandbox configuration module 145 - a may be one example of sandbox configuration module 145 depicted in FIG. 1 .
- sandbox configuration module 145 - a may include classification module 205 , endpoint module 210 , and sandbox module 215 .
- the sandbox configuration module 145 - a may be configured to determine a correlation between the at least one extracted element and the one or more properties of the endpoint. In some embodiments, the sandbox configuration module 145 - a may be configured to determine one or more sandbox configurations based at least in part on the determined correlation.
- classification module 205 may be configured to receive a plurality of files.
- the classification module 205 may be configured to receive a first set of files during a training stage.
- the classification module 205 may be configured to receive a first plurality of files during a training stage and a second plurality of files during a prediction stage.
- the classification module may receive executable files and exploit documents as the plurality of files.
- the classification module 205 may be configured to extract at least one element from at least one file from the plurality of files.
- the extracted element is metadata associated with the received files.
- the extracted element can be at least one of a plurality of text elements, details about data included in the received files, a plurality of images included in the received files, or a combination thereof.
- the classification module 205 may be configured to identify one or more identifiers associated with each file. In some examples, the classification module may identify the identifiers based at least in part on the extracted elements. For example, the classification module 205 may receive a file and may extract a number of elements from the file. From the extracted elements, the classification module 205 determine a number of elements associated with malicious files and a number of elements associated with non-malicious files. The classification module 205 may be configured to generate the identifiers from the identified elements. In some examples, the identifiers are signatures describing a particular set of elements observed in each file.
- the classification module 205 may be configured to generate a number of clusters of files, with at least one file per cluster. In some cases, generating the clusters of files is accomplished as a part of a training stage. In some embodiments, the classification module 205 may be configured to classify at least one file as being malicious. In some examples, a first cluster may be a cluster of evasive malware and a second cluster may be a cluster of exploits.
- the classification module 205 may be configured to receive a new file and extract one or more elements from the new file. In some examples, the classification module 205 may determine one or more identifiers from the extracted elements. In some examples, the classification module 205 may determine one or more identifiers associated with the new file by comparing the determined identifier with the identifier data stored in the database 120 (not shown), as described with reference to FIG. 1 . In some embodiments, the classification module 205 may be configured to identify a pre-existing cluster from a group of clusters. In some examples, the classification module 205 may determine whether the one or more elements extracted from the new file correlate with at least one of a plurality of clusters.
- the classification module 205 may generate the plurality of clusters as part of the training stage and store the plurality of clusters in database 120 . In some cases, the classification module 205 may determine the pre-existing cluster from the plurality of clusters generated during the training stage. In some cases, the classification module 205 may communicate with cluster data stored in database 120 to determine if there is a pre-existing cluster associated with the extracted elements for the new file. In some embodiments, the classification module 205 may receive a new file from the computing device 150 as described with reference to FIG. 1 .
- the endpoint module 210 may be configured to identify one or more properties associated with an endpoint.
- the endpoint may be related to at least one of the plurality of files.
- the endpoint may be real endpoints in relation to which the file was observed.
- the endpoint module 210 may identify properties of an endpoint upon determining that a malicious file was identified on the machine, or was observed being sent to or from the machine.
- the endpoint module 210 may determine that the file displayed malicious behavior, indicating that the endpoint environment satisfied the properties necessary for the file (e.g., malware) to activate.
- the one or more properties associated with the endpoint includes at least one of one or more processors, an operating system, a version associated with the operating system, a memory, a file system, device attributes, locale, geographic information, an input, a number of executing processes, details associated with the executing processes, a software installed on the endpoint, or a combination thereof.
- endpoint module 210 may be configured to determine a correlation between the at least one extracted element and the one or more properties of the endpoint. In some examples, upon receiving a new file, the endpoint module 210 may be configured to identify a pre-determined correlation based at least in part on the identified classification of the received file. As an example, for a file element corresponding to the existence of Japanese-characters in a file, the endpoint module 210 may observe that a correlation exists between files with these characters and machines with the property of having Japanese language packs installed. In some examples, the endpoint module 210 may determine the correlation during a prediction stage. In some embodiments, the endpoint module 210 may store the determined correlation in correlation data 165 in database 120 .
- the endpoint module 210 may identify the one or more properties associated with the endpoint. In some cases, the new file may reveal a predefined minimum behavior when executed on the endpoint. In some embodiments, the endpoint module 210 may be configured to update a correlation between a plurality of clusters (e.g., clusters generated using elements extracted from the received file) and the one or more properties of the endpoint.
- a plurality of clusters e.g., clusters generated using elements extracted from the received file
- sandbox module 215 may be configured to determine one or more sandbox configurations based at least in part on the determined correlation. For example, the sandbox module 215 may determine a configuration where one or more files with similar properties, will detonate. In some examples, the sandbox module 215 may perform a security action based on analysis of the one or more extracted elements. In some examples, performing the security action may include identifying among the one or more sandbox configurations, a sandbox configuration for the new file. In some cases, the sandbox configuration is based at least in part on a pre-determined correlation. Upon receiving a new file, the sandbox module 215 may identify a sandbox configuration.
- the sandbox module 215 may determine whether the new file reveals a predefined minimum behavior when executed in the identified sandbox configuration. In some examples, in response to determining that the new file reveals the predefined minimum behavior when executed in the identified sandbox configuration, the sandbox module 215 may be configured to increase a confidence score associated with the pre-determined correlation. In some embodiments, in response to determining that the new file fails to reveal the predefined minimum behavior when executed in the identified sandbox configuration, the sandbox module 215 may decrease a confidence score associated with the pre-determined correlation. In some examples, the confidence scores may be adjusted during the prediction stage. For example, the sandbox module 215 may generate an initial confidence score during a training stage. The sandbox module 215 may receive a correlation between one or more extracted elements and properties of an endpoint. Based on the correlation, (e.g., how strong the correlation is) the sandbox module 215 may determine an initial score associated with the correlation.
- FIG. 3 is a block diagram illustrating one example of a classification module 205 - a .
- Classification module 205 - a may be one example of classification module 205 depicted in FIG. 2 .
- classification module 205 - a may include element extraction module 305 , analysis module 310 , identifier module 315 , cluster generation module 320 , and purity module 325 .
- element extraction module 305 may be configured to receive a plurality of files.
- the element extraction module 305 may receive a first plurality of files during a training stage and a second plurality of files during a prediction stage.
- the first plurality of files may be a training set of files.
- the element extraction module 305 may receive a number of malicious and non-malicious files.
- the received files may be used for generating a plurality of clusters of malicious files and non-malicious files, respectively, using machine learning techniques during the training stage.
- the element extraction module 305 may be configured to extract at least one element from at least one file from the plurality of files.
- the element extraction module 305 may parse each file in the plurality of files to identify the at least one element from each file.
- the extracted element can be at least one of a plurality of text elements, details about data included in the received files, a plurality of images included in the received files, or a combination thereof.
- the element extraction module 305 may be configured to receive a new file.
- the element extraction module 305 may receive the new file during the prediction stage.
- the element extraction module 305 may be configured to extract one or more elements from the new file.
- the element extraction module 305 may parse the new file to identify the at least one element from each file.
- analysis module 310 may be configured to analyze the extracted elements from each file.
- each file may consist of different elements which are analyzed for maliciousness i.e., each file may be analyzed to determine if there exists an element which may be used to steal sensitive information from the recipient of the file or from an endpoint where the file is executed.
- An example of a malicious file may be a .exe file. When executed, the malicious .exe file may be able to access personal information of the recipient stored on the endpoint at which the file was received.
- the analysis module 310 analyses each element for maliciousness. These elements can be at least one of a plurality of text elements, a plurality of email attachments, a plurality of zip files, a plurality of images, are a combination thereof.
- the analysis module 310 may be configured to analyze the one or more extracted elements based on a number of pre-determined criteria.
- the pre-determined criteria may be identifying a .exe file, identifying an evasive malware, identifying one or more exploits, or a combination thereof.
- the analysis module 310 may be configured to generate a number of positive analysis detections associated with a first plurality of extracted elements. For example, the analysis module 310 may determine that a particular type of element is detected as positive, i.e., the particular type of element is related to non-malicious files. In some other embodiments, the analysis module 310 may be configured to generate a number of negative analysis detections associated with a second plurality of extracted elements. For example, the analysis module 310 may determine that a particular type of element is detected as negative, i.e., the particular type of element is related to malicious files. In some embodiments, the analysis module 310 may be configured to analyze the extracted elements using methods similar to methods used by an anti-virus software.
- identifier module 315 may be configured to identify a plurality of identifiers based on each file in the first plurality of files.
- the first plurality of files may be the training set of files, as described with reference to FIG. 2 .
- the identifier module 315 may be configured to identify the plurality of identifiers based on at least one element. For example, when the identified elements from a file include plurality of text elements, the identifiers associated with the extracted elements may be described as suspicious characters found in the text. In another example, when the identified elements from a file include plurality of email attachments, the identifiers associated with the extracted elements may be described as an executable file is detected in the email.
- the identifiers associated with the extracted element may describe the foreign language. For example, for a text file including the existence of Japanese-characters, English-characters, and numeric-characters, the identifiers may include an identifier relating to Japanese language. In some examples, in case of a plurality of zip files, the identifiers associated with the extracted elements may be described as the type of file (zip in this example). Additionally or alternatively, the identifier module 315 may be configured to receive the analysis of the extracted elements from the analysis module 310 . In some examples, the identifier module 315 may receive positive and negative analysis results associated with the extracted elements. In some embodiments the identifier module 315 may be configured to generate a representation of an identifier associated with a file, as a simplistic representation of the elements extracted from the file.
- the identifier module 315 may determine a positive identifier associated with a non-malicious file and a negative identifier associated with a malicious file.
- each file may be associated with a single identifier.
- each file may be associated with a plurality of identifiers.
- the identifier module 315 may be configured to determine duplicate identifiers associated with a single file. The identifier module 315 may then identify only unique identifiers associated with the file.
- the identifier module 315 may be configured to determine a number of weighted duplicate identifiers associated with a single file.
- the identifier module 315 may determine a frequency of each identifier within the file, i.e., the identifier module 315 may be configured to determine a number of times an identifier has been used in a particular file. The identifier module 315 may then generate a plurality of weighted identifiers based on the frequency associated with each identifier. In some embodiments, the identifier module 315 may be configured to send the identifiers for storage in database 120 , as described with reference to FIG. 1 .
- cluster generation module 320 may optionally be configured to determine a number of malicious files associated with a first identifier. As explained above, the identifier module 315 may generate a plurality of identifiers associated with a plurality of files. In some examples, cluster generation module 320 may be configured to determine a number of malicious files based at least in part of a number of extracted elements and on determining whether the extracted elements are positive or negative.
- the cluster generation module 320 may be configured to use at least one extracted element as a classification feature for classifying the plurality of files.
- the cluster generation module 320 may use any well-known classification technique to generate a classification of the plurality of files.
- the cluster generation module 320 may be configured to classify the received plurality of files into malicious files and non-malicious files.
- the cluster generation module 320 may receive identifiers from the identifier module 315 . In some embodiments, the cluster generation module 320 may be configured to determine a significance level associated with the first identifier based on the number of malicious files. For example, the cluster generation module 320 may receive an identifier analyzed as negative from the identifier module 315 . In some embodiments, the cluster generation module 320 may be configured to determine the files associated with the negative identifier. In some embodiments, the cluster generation module 320 may be configured to determine a number of malicious files associated with the negative identifier. In some examples, the cluster generation module 320 may determine that the negative identifier is associated with both a first plurality of malicious files and a second plurality of non-malicious files.
- the negative identifier may only be associated with malicious files.
- the cluster generation module 320 may be configured to identify the significance level of an identifier, based on a difference between the number of malicious files associated with the identifier and a number of non-malicious files associated with the identifier.
- cluster generation module 320 may be configured to use a plurality of extracted elements as classification features for generating a first cluster of files and a second cluster of files.
- the first cluster of files may be a cluster of malicious files and the second cluster of files may be a cluster of non-malicious files.
- the cluster generation module 320 may receive one or more identifiers from the identifier module 315 .
- the cluster generation module 320 may be configured to use the significant identifiers as features for generating the clusters. For example, the cluster generation module 320 may use only those identifiers which have a significance level satisfying a significance threshold.
- the cluster generation module 320 may be configured to use the extracted elements as features in any classification algorithm.
- the cluster generation module 320 may be configured to use metadata extracted from the received files, as classification features.
- cluster generation module 320 may be configured to generate a plurality of clusters that include at least one file per cluster. In some cases, the cluster generation module 320 may generate the plurality of clusters using a training set of files received during a training stage. Accordingly, in some cases, the plurality of clusters may include a first cluster of files and a second cluster of files. For example, the first cluster of files and the second cluster of files may include one or more files from the training set of files received during the training stage. In some embodiments, the cluster generation module 320 may be configured to generate a first cluster relating to malicious files, and a second cluster relating to non-malicious files.
- the cluster generation module 320 may be configured to determine whether one or more elements extracted from the new file correlate with at least one of a plurality of clusters. In response to determining that the one or more extracted elements does not correlate with the plurality of clusters, the cluster generation module 320 may generate a cluster that includes the new file. In some examples, the cluster may be generated based at least in part on the one or more elements extracted from the new file. In some embodiments, the cluster generation module 320 may be configured to add the generated cluster to the plurality of clusters. In some embodiments, the cluster generation module 320 may be configured to generate one or more overlapping clusters.
- the cluster generation module 320 determine that one or more extracted elements correlate with the plurality of clusters.
- the elements may be extracted from a new file during a prediction stage.
- the cluster generation module 320 may identify a pre-existing cluster associated with the new file. The pre-existing cluster may be generated during a training stage.
- the cluster generation module 320 may be configured to identify a classification of the one or more extracted elements.
- purity module 325 may be configured to determine a first level of purity for a first classification of files and a second level of purity for a second classification of files.
- the first classification of files may be a first cluster of files and the second classification of files may be a second cluster of files.
- the cluster generation module 320 may generate a plurality of clusters of files, each cluster having at least one file from a first plurality of files (e.g., training set of files received during a training stage).
- the purity module 325 may receive the generated clusters from the cluster generation module 320 .
- the purity module 325 may be configured to determine the first level of purity associated with the first cluster based on a number of malicious files and a number of non-malicious files in the first cluster.
- FIG. 4 is a block diagram illustrating one example of an endpoint module 210 - a .
- Endpoint module 210 - a may be one example of endpoint module 210 depicted in FIG. 2 .
- endpoint module 210 - a may include execution module 405 , endpoint configuration module 410 , and correlation module 415 .
- the execution module 405 may be configured to identify a successful execution in relation to at least one of the plurality of files on an endpoint. In some embodiments, the execution module 405 may be configured to identify that a file successfully executes on the endpoint (i.e., a machine). In some examples, the execution module 405 may identify endpoints in relation to which a file was observed during a training stage. In some examples, the execution module 405 may observe that a file (e.g., a malicious file) was on the endpoint, or was observed being sent to or from the endpoint, where it successfully executes. For example, the execution module 405 may identify an endpoint which successfully detonates a malicious file.
- a file e.g., a malicious file
- the execution module 405 may determine that the endpoint environment satisfied the properties necessary for a malware to activate. In some embodiments, the execution module 405 may determine that a file labeled as malicious, fails to detonate in a particular endpoint. For example, the execution module 405 may determine receive files from computing device 150 described in FIG. 1 . In some embodiments, the execution module 405 may be configured to identify successful execution of one or more malicious files, as part of a training stage.
- endpoint configuration module 410 may be configured to identify one or more properties associated with an endpoint.
- the endpoint may be related to at least one of the plurality of files.
- the endpoint configuration module 410 may receive an indication about an endpoint from the execution module 405 .
- the indication may relate to a malicious file that has successfully detonated in an endpoint.
- the endpoint configuration module 410 may observe properties of endpoints for which there is evidence that a malicious file has displayed malicious behavior, indicating that the endpoint environment satisfied the properties necessary for the malware to activate.
- the endpoint configuration module 410 may be configured to identify one or more properties associated with the endpoint based at least in part on a successful execution of a malicious file.
- the endpoint configuration module 410 may be configured to identify one or more behavioral properties associated with the endpoint.
- the one or more properties associated with the endpoint may include at least one of one or more processors, an operating system, a version associated with the operating system, a memory, a file system, device attributes, locale, geographic information, an input, a number of executing processes, details associated with the executing processes, a software installed on the endpoint, or a combination thereof.
- correlation module 415 may be configured to determine a correlation between the at least one extracted element and the one or more properties of the endpoint. In some examples, the correlation module 415 may be configured to determine a correlation between an identifier and properties associated with the endpoint. For example, the correlation module 415 may receive properties of an endpoint from the endpoint configuration module 410 and the correlation module 415 may determine the correlation based on the received properties. In some embodiments, the correlation module 415 may store the determined correlation in correlation data 165 in database 120 . In some examples, the correlation module 415 may determine the correlation between one or more properties of an endpoint and an extracted element, during a training stage. In some examples, during a prediction stage, the correlation module 415 may receive updated information associated with one or more properties of an endpoint.
- the correlation module 415 may be configured to update a correlation between elements of a file and the updated information of the endpoint.
- the correlation module 415 may determine a correlation between a plurality of clusters and one or more properties associated with the endpoints. The plurality of clusters may be generated using methods described in FIGS. 2 and 3 .
- FIG. 5 is a flow diagram illustrating one embodiment of a method 500 for determining sandbox configurations for malware analysis.
- the method 500 may be implemented by the sandbox configuration module 145 illustrated in FIGS. 1, 2, 3 , and/or 4 .
- the method 500 may be implemented in conjunction with the application 140 and/or the user interface 135 illustrated in FIG. 1 .
- the method 500 may include receiving a plurality of files.
- the method 500 may include extracting at least one element from at least one file from the plurality of files.
- the method 500 may include identifying one or more properties associated with an endpoint. In some cases, the endpoint may be related to at least one of the plurality of files.
- the method 500 may include determining a correlation between the at least one extracted element and the one or more properties of the endpoint.
- the method 500 may include determining one or more sandbox configurations based at least in part on the determined correlation.
- FIG. 6 is a flow diagram illustrating one embodiment of a method 600 for determining sandbox configurations for malware analysis.
- the method 600 may be implemented by the sandbox configuration module 145 illustrated in FIGS. 1, 2, 3 , and/or 4 .
- the method 600 may be implemented in conjunction with the application 140 and/or the user interface 135 illustrated in FIG. 1 .
- the method 600 may include receiving a plurality of files.
- the method 600 may include extracting at least one element from at least one file from the plurality of files.
- the method 600 may include using the at least one extracted element as a classification feature for classifying the plurality of files.
- the method 600 may include identifying a successful execution in relation to at least one of the plurality of files on the endpoint.
- the method 600 may include identifying the one or more properties associated with the endpoint based at least in part on the successful execution.
- the method 600 may include determining a correlation between the at least one extracted element and the one or more identified properties of the endpoint.
- the method 600 may include determining one or more sandbox configurations based at least in part on the determined correlation.
- FIG. 7 is a flow diagram illustrating one embodiment of a method 700 for determining sandbox configurations for malware analysis.
- the method 700 may be implemented by the sandbox configuration module 145 illustrated in FIGS. 1, 2, 3 , and/or 4 .
- the method 700 may be implemented in conjunction with the application 140 and/or the user interface 135 illustrated in FIG. 1 .
- the method 700 may include receiving a new file.
- the method 700 may include extracting one or more elements from the new file.
- the method 700 may include identifying a classification of the one or more extracted elements.
- the method 700 may include identifying a pre-determined correlation based at least in part on the identified classification.
- the method 700 may include performing a security action based on analysis of the one or more extracted elements. In some cases, performing the security action may include identifying among the one or more sandbox configurations a sandbox configuration for the new file. In some cases, the sandbox configuration for the new file is based at least in part on the pre-determined correlation.
- the method 700 may include determining whether the new file reveals a predefined minimum behavior when executed in the identified sandbox configuration.
- the method 700 may include in response to determining that the new file reveals the predefined minimum behavior when executed in the identified sandbox configuration, increasing a confidence score associated with the pre-determined correlation.
- the method 700 may include in response to determining that the new file fails to reveal the predefined minimum behavior when executed in the identified sandbox configuration, decreasing a confidence score associated with the pre-determined correlation.
- FIG. 8 is a flow diagram illustrating one embodiment of a method 800 for determining sandbox configurations for malware analysis.
- the method 800 may be implemented by the sandbox configuration module 145 illustrated in FIGS. 1, 2, 3 , and/or 4 .
- the method 800 may be implemented in conjunction with the application 140 and/or the user interface 135 illustrated in FIG. 1 .
- the method 800 may include receiving a new file.
- the method 800 may include extracting one or more elements from the new file.
- the method 800 may include determining whether the one or more elements extracted from the new file correlate with at least one of a plurality of clusters.
- the method 800 may include, in response to determining that the one or more extracted elements does not correlate with the plurality of clusters, generating a cluster that includes the new file. In some cases, the cluster may be generated based at least in part on the one or more elements extracted from the new file.
- the method 800 may include identifying the one or more properties associated with the endpoint.
- the new file may reveals a predefined minimum behavior when executed on the endpoint.
- the method 800 may include adding the generated cluster to the plurality of clusters.
- the method 800 may include updating a correlation between the plurality of clusters and the one or more properties of the endpoint.
- FIG. 9 is a block diagram illustrating one embodiment of an environment 900 in which the present systems and methods may be implemented in accordance with various aspects of this disclosure.
- the systems and methods described herein may be implemented by the sandbox configuration module 145 illustrated in FIGS. 1, 2, 3 , and/or 4 .
- the method 900 may be implemented in conjunction with the application 140 and/or the user interface 135 illustrated in FIG. 1 .
- the environment 900 may include files 905 , metadata 910 , cluster generation 320 - b , endpoint telemetry 920 , classifiers 815 , and a sandbox configurations 925 .
- files 905 - a , 905 - b , and 905 - c may be received by a processor.
- files 905 are a training set of files.
- Metadata 910 may be extracted from the files 905 and may be inputted to the cluster generation module 320 - b .
- the cluster generation module 320 - b may classify the received metadata 910 using methods described with reference to FIGS. 2 and 3 . Further, the clustering results are inputted to one or more classifiers 915 .
- Endpoint telemetry 920 may be configured to identify indication of successful detonation of the files 905 , at an endpoint.
- the classifiers 915 may determine a correlation between the properties and the extracted elements. As an example, the classifiers 915 may identify a correlation between properties of file 905 - a and properties of the execution environment of file 905 - a . The classifiers 915 may then identify one or more sandbox configurations 925 based at least in part on identifying the correlation.
- FIG. 10 depicts a block diagram of a computer system 1000 suitable for implementing the present systems and methods.
- the computer system 1000 may include a mobile device 1005 .
- the mobile device 1005 may be an example of a device 105 depicted in FIG. 1 .
- the mobile device 1005 includes a bus 1025 which interconnects major subsystems of mobile device 1005 , such as a central processor 1010 , a system memory 1015 (typically RAM, but which may also include ROM, flash RAM, or the like), and a transceiver 1020 that includes a transmitter 1030 , a receiver 1035 , and an antenna 1040 .
- a central processor 1010 typically RAM, but which may also include ROM, flash RAM, or the like
- transceiver 1020 typically includes a transmitter 1030 , a receiver 1035 , and an antenna 1040 .
- Bus 1025 allows data communication between central processor 1010 and system memory 1015 , which may include read-only memory (ROM) or flash memory (neither shown), and random access memory (RAM) (not shown), as previously noted.
- the RAM is generally the main memory into which the operating system and application programs are loaded.
- the ROM or flash memory can contain, among other code, the Basic Input-Output system (BIOS) or a Unified Extensible Firmware Interface (UEFI), which controls basic hardware operation such as the interaction with peripheral components or devices.
- BIOS Basic Input-Output system
- UEFI Unified Extensible Firmware Interface
- the sandbox configuration module 145 - b to implement the present systems and methods may be stored within the system memory 1015 .
- the sandbox configuration module 145 - b may be one example of the sandbox configuration module 145 depicted in FIGS. 1 and/or 2 .
- Applications resident with mobile device 1005 may be stored on and accessed via a non-transitory computer readable medium, such as a hard disk drive, an optical drive, or other storage medium. Additionally, applications can be in the form of electronic signals modulated in accordance with the application and data communication technology when accessed via a network.
- FIG. 11 depicts a block diagram of a computer system 1100 suitable for implementing the present systems and methods.
- the device 1100 may be an example of device 105 , computing device 150 , and/or server 110 illustrated in FIG. 1 .
- device 1100 includes a bus 1105 which interconnects major subsystems of device 1100 , such as a central processor 1110 , a system memory 1115 (typically RAM, but which may also include ROM, flash RAM, or the like), an input/output controller 1120 , an external audio device, such as a speaker system 1125 via an audio output interface 1130 , an external device, such as a display screen 1135 via display adapter 1140 , an input device 1145 (e.g., remote control device interfaced with an input controller 1150 ), multiple USB devices 1165 (interfaced with a USB controller 1170 ), and a storage interface 1180 . Also included are at least one sensor 1155 connected to bus 1105 through a sensor controller 1160 and a network interface 1185 (coupled
- Bus 1105 allows data communication between central processor 1110 and system memory 1115 , which may include ROM or flash memory (neither shown), and RAM (not shown), as previously noted.
- the RAM is generally the main memory into which the operating system and application programs are loaded.
- the ROM or flash memory can contain, among other code, the BIOS or the UEFI, which controls basic hardware operation such as the interaction with peripheral components or devices.
- the sandbox configuration module 145 - b to implement the present systems and methods may be stored within the system memory 1115 .
- Applications e.g., application 140
- applications resident with device 1100 are generally stored on and accessed via a non-transitory computer readable medium, such as a hard disk drive (e.g., fixed disk 1175 ) or other storage medium. Additionally, applications can be in the form of electronic signals modulated in accordance with the application and data communication technology when accessed via interface 1185 .
- Storage interface 1180 can connect to a standard computer readable medium for storage and/or retrieval of information, such as a fixed disk drive 1175 .
- Fixed disk drive 1175 may be a part of device 1100 or may be separate and accessed through other interface systems.
- Network interface 1185 may provide a direct connection to a remote server via a direct network link to the Internet via a POP (point of presence).
- Network interface 1185 may provide such connection using wireless techniques, including digital cellular telephone connection, Cellular Digital Packet Data (CDPD) connection, digital satellite data connection, or the like.
- CDPD Cellular Digital Packet Data
- FIG. 11 Many other devices or subsystems may be connected in a similar manner (e.g., entertainment system, computing device, remote cameras, wireless key fob, wall mounted user interface device, cell radio module, battery, alarm siren, door lock, lighting system, thermostat, home appliance monitor, utility equipment monitor, and so on).
- All of the devices shown in FIG. 11 need not be present to practice the present systems and methods.
- the devices and subsystems can be interconnected in different ways from that shown in FIG. 11 .
- the aspect of some operations of a system such as that shown in FIG. 11 are readily known in the art and are not discussed in detail in this application.
- Code to implement the present disclosure can be stored in a non-transitory computer-readable medium such as one or more of system memory 1115 or fixed disk 1175 .
- the operating system provided on device 1100 may be iOS®, ANDROID®, MS-DOS®, MS-WINDOWS®, OS/2®, UNIX®, LINUX®, or another known operating system.
- a signal can be directly transmitted from a first block to a second block, or a signal can be modified (e.g., amplified, attenuated, delayed, latched, buffered, inverted, filtered, or otherwise modified) between the blocks.
- a signal can be directly transmitted from a first block to a second block, or a signal can be modified (e.g., amplified, attenuated, delayed, latched, buffered, inverted, filtered, or otherwise modified) between the blocks.
- a signal input at a second block can be conceptualized as a second signal derived from a first signal output from a first block due to physical limitations of the circuitry involved (e.g., there will inevitably be some attenuation and delay). Therefore, as used herein, a second signal derived from a first signal includes the first signal or any modifications to the first signal, whether due to circuit limitations or due to passage through other circuit elements which do not change the informational and/or final functional aspect of the first signal.
- the signals associated with system 1100 may include wireless communication signals such as radio frequency, electromagnetics, local area network (LAN), wide area network (WAN), virtual private network (VPN), wireless network (using 802.11, for example), cellular network (using 3G and/or LTE, for example), and/or other signals.
- the network interface 1185 may enable one or more of WWAN (GSM, CDMA, and WCDMA), WLAN (including BLUETOOTH® and Wi-Fi), WMAN (WiMAX) for mobile communications, antennas for Wireless Personal Area Network (WPAN) applications (including RFID and UWB), etc.
- the I/O controller 1120 may operate in conjunction with network interface 1185 and/or storage interface 1180 .
- the network interface 1185 may enable system 1100 with the ability to communicate with client devices (e.g., device 105 of FIG. 1 ), and/or other devices over the network 115 of FIG. 1 .
- Network interface 1185 may provide wired and/or wireless network connections.
- network interface 1185 may include an Ethernet adapter or Fiber Channel adapter.
- Storage interface 1180 may enable system 1100 to access one or more data storage devices.
- the one or more data storage devices may include two or more data tiers each.
- the storage interface 1180 may include one or more of an Ethernet adapter, a Fiber Channel adapter, Fiber Channel Protocol (FCP) adapter, a SCSI adapter, and iSCSI protocol adapter.
- FCP Fiber Channel Protocol
- FIG. 12 is a block diagram depicting a network architecture 1200 in which client systems 1205 , 1210 and 1215 , as well as storage servers 1220 - a and 1220 - b (any of which can be implemented using computer system 1000 and/or 1100 ), are coupled to a network 1230 .
- the sandbox configuration module 145 - d may be located within one of the storage servers 1220 - a , 1220 - b to implement the present systems and methods.
- the sandbox configuration module 145 - d may be one example of the sandbox configuration module 145 depicted in FIGS. 1, 2, 3, 4, 6 , and/or 7 .
- the storage server 1220 - a is further depicted as having storage devices 1225 - a - l through 1225 - a - j directly attached
- storage server 1220 - b is depicted with storage devices 1225 - b - l through 1225 - b - k directly attached
- SAN fabric 1240 supports access to storage devices 1235 - l through 1235 - m by storage servers 1220 - a and 1220 - b , and so by client systems 1205 , 1210 and 1215 via network 1230 .
- Intelligent storage array 1245 is also shown as an example of a specific storage device accessible via SAN fabric 1240 .
- network interface 1185 or some other means or method can be used to provide connectivity from each of client computer systems 1205 , 1210 and 1215 to network 1230 .
- transceiver 1020 or some other means or method can be used to provide connectivity from each of client computer systems 1205 , 1210 and 1215 to network 1230 .
- Client systems 1205 , 1210 and 1215 are able to access information on storage server 1220 - a or 1220 - b using, for example, a web browser or other client software (not shown).
- Such a client allows client systems 1205 , 1210 and 1215 to access data hosted by storage server 1220 - a or 1220 - b or one of storage devices 1225 - a - l through 1225 - a - j , 1225 - b - l through 1225 - b - k , 1235 - l through 1235 - m , or intelligent storage array 1245 .
- FIG. 12 depicts the use of a network such as the Internet for exchanging data, but the present systems and methods are not limited to the Internet or any particular network-based environment.
- the terms “a” or “an,” as used in the specification and claims, are to be construed as meaning “at least one of.”
- the words “including” and “having,” as used in the specification and claims are interchangeable with and have the same meaning as the word “comprising.”
- the term “based on” as used in the specification and the claims is to be construed as meaning “based at least upon.”
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
Claims (20)
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/468,636 US10586040B2 (en) | 2017-03-24 | 2017-03-24 | Sample-specific sandbox configuration based on endpoint telemetry |
EP18716780.4A EP3602372B1 (en) | 2017-03-24 | 2018-03-21 | Sample-specific sandbox configuration based on endpoint telemetry |
JP2019549370A JP2020511715A (en) | 2017-03-24 | 2018-03-21 | Sample-specific sandbox configuration based on endpoint telemetry |
CN201880014922.4A CN110574034A (en) | 2017-03-24 | 2018-03-21 | sample-specific sandbox configuration based on endpoint telemetry |
PCT/US2018/023587 WO2018175600A1 (en) | 2017-03-24 | 2018-03-21 | Sample-specific sandbox configuration based on endpoint telemetry |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/468,636 US10586040B2 (en) | 2017-03-24 | 2017-03-24 | Sample-specific sandbox configuration based on endpoint telemetry |
Publications (2)
Publication Number | Publication Date |
---|---|
US20180276371A1 US20180276371A1 (en) | 2018-09-27 |
US10586040B2 true US10586040B2 (en) | 2020-03-10 |
Family
ID=61913605
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/468,636 Active 2037-08-13 US10586040B2 (en) | 2017-03-24 | 2017-03-24 | Sample-specific sandbox configuration based on endpoint telemetry |
Country Status (5)
Country | Link |
---|---|
US (1) | US10586040B2 (en) |
EP (1) | EP3602372B1 (en) |
JP (1) | JP2020511715A (en) |
CN (1) | CN110574034A (en) |
WO (1) | WO2018175600A1 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12013941B2 (en) * | 2018-06-28 | 2024-06-18 | Crowdstrike, Inc. | Analysis of malware |
US11973773B2 (en) * | 2020-05-15 | 2024-04-30 | Arbor Networks, Inc. | Detecting and mitigating zero-day attacks |
CN113297568B (en) * | 2021-06-04 | 2024-04-30 | 国网汇通金财(北京)信息科技有限公司 | Data processing method and system based on sandboxes |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140047544A1 (en) | 2012-08-09 | 2014-02-13 | Bjorn Markus Jakobsson | Server-Side Malware Detection and Classification |
US20150096022A1 (en) | 2013-09-30 | 2015-04-02 | Michael Vincent | Dynamically adaptive framework and method for classifying malware using intelligent static, emulation, and dynamic analyses |
US9223972B1 (en) | 2014-03-31 | 2015-12-29 | Fireeye, Inc. | Dynamically remote tuning of a malware content detection system |
US9571512B2 (en) * | 2014-12-15 | 2017-02-14 | Sophos Limited | Threat detection using endpoint variance |
US20170083703A1 (en) * | 2015-09-22 | 2017-03-23 | Fireeye, Inc. | Leveraging behavior-based rules for malware family classification |
US20170251003A1 (en) * | 2016-02-29 | 2017-08-31 | Palo Alto Networks, Inc. | Automatically determining whether malware samples are similar |
US20170251002A1 (en) * | 2016-02-29 | 2017-08-31 | Palo Alto Networks, Inc. | Malware analysis platform for threat intelligence made actionable |
US20180048660A1 (en) * | 2015-11-10 | 2018-02-15 | Fireeye, Inc. | Launcher for setting analysis environment variations for malware detection |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8769685B1 (en) * | 2010-02-03 | 2014-07-01 | Symantec Corporation | Systems and methods for using file paths to identify potentially malicious computer files |
US8914879B2 (en) * | 2010-06-11 | 2014-12-16 | Trustwave Holdings, Inc. | System and method for improving coverage for web code |
US9367687B1 (en) * | 2011-12-22 | 2016-06-14 | Emc Corporation | Method for malware detection using deep inspection and data discovery agents |
US9245123B1 (en) * | 2014-05-07 | 2016-01-26 | Symantec Corporation | Systems and methods for identifying malicious files |
US9411959B2 (en) * | 2014-09-30 | 2016-08-09 | Juniper Networks, Inc. | Identifying an evasive malicious object based on a behavior delta |
US9680845B2 (en) * | 2015-03-31 | 2017-06-13 | Juniper Neworks, Inc. | Detecting a malicious file infection via sandboxing |
US9594904B1 (en) * | 2015-04-23 | 2017-03-14 | Fireeye, Inc. | Detecting malware based on reflection |
-
2017
- 2017-03-24 US US15/468,636 patent/US10586040B2/en active Active
-
2018
- 2018-03-21 WO PCT/US2018/023587 patent/WO2018175600A1/en active Application Filing
- 2018-03-21 JP JP2019549370A patent/JP2020511715A/en active Pending
- 2018-03-21 CN CN201880014922.4A patent/CN110574034A/en active Pending
- 2018-03-21 EP EP18716780.4A patent/EP3602372B1/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140047544A1 (en) | 2012-08-09 | 2014-02-13 | Bjorn Markus Jakobsson | Server-Side Malware Detection and Classification |
US20150096022A1 (en) | 2013-09-30 | 2015-04-02 | Michael Vincent | Dynamically adaptive framework and method for classifying malware using intelligent static, emulation, and dynamic analyses |
US9223972B1 (en) | 2014-03-31 | 2015-12-29 | Fireeye, Inc. | Dynamically remote tuning of a malware content detection system |
US9571512B2 (en) * | 2014-12-15 | 2017-02-14 | Sophos Limited | Threat detection using endpoint variance |
US20170083703A1 (en) * | 2015-09-22 | 2017-03-23 | Fireeye, Inc. | Leveraging behavior-based rules for malware family classification |
US20180048660A1 (en) * | 2015-11-10 | 2018-02-15 | Fireeye, Inc. | Launcher for setting analysis environment variations for malware detection |
US20170251003A1 (en) * | 2016-02-29 | 2017-08-31 | Palo Alto Networks, Inc. | Automatically determining whether malware samples are similar |
US20170251002A1 (en) * | 2016-02-29 | 2017-08-31 | Palo Alto Networks, Inc. | Malware analysis platform for threat intelligence made actionable |
Non-Patent Citations (8)
Title |
---|
http://vmcloak.readthedocs.io/en/latest/config.html; 2014-2015, Jurriaan Bremer. |
https://bto.bluecoat.com/sites/default/files/tech_pubs/MAA_4.2.8_iVM_Profile_Customization_Guide_0.pdf; Apr. 27, 2016, Blue Coat Systems, Inc. |
https://github.com/a0rtega/pafish, https://Iup.Iub.Iu.se/studentpapers/search/publication/8880576; 2017, GitHub, Inc., Alberto Ortega. |
https://infosecspeakeasy.org/t/howto-build-a-cuckoo-sandbox/27; Aug. 2015, by Sean Whalen. |
https://www.botconf.eu/wp.../OK-S02-Zoltan-Balazs-Sandbox_mapping_botconf.pdf; 2015, Zoltan Balazs. |
https://www.proteansec.com/linux/installing-using-cuckoo-malware-analysis-sandbox/; Feb. 10, 2015, by Dejan Lukan. |
https://www.safaribooksonline.com/library/view/cuckoo-malware-analysis/9781782169239/ch05.html; 2017, by Iqbal Muhardianto and Digit Oktavianto. |
International Search Report, PCT/US18/23587, dated May 22, 2018. |
Also Published As
Publication number | Publication date |
---|---|
JP2020511715A (en) | 2020-04-16 |
EP3602372B1 (en) | 2024-05-22 |
WO2018175600A1 (en) | 2018-09-27 |
EP3602372A1 (en) | 2020-02-05 |
CN110574034A (en) | 2019-12-13 |
US20180276371A1 (en) | 2018-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Xiao et al. | Malware detection based on deep learning of behavior graphs | |
US11126716B2 (en) | System security method and apparatus | |
US20200285741A1 (en) | Endpoint Detection and Response Utilizing Machine Learning | |
US11258805B2 (en) | Computer-security event clustering and violation detection | |
US11392689B2 (en) | Computer-security violation detection using coordinate vectors | |
US20210064751A1 (en) | Provenance-based threat detection tools and stealthy malware detection | |
EP3654216B1 (en) | Computer-security event security-violation detection | |
US10581888B1 (en) | Classifying software scripts utilizing deep learning networks | |
US10521587B1 (en) | Detecting code obfuscation using recurrent neural networks | |
US9781144B1 (en) | Determining duplicate objects for malware analysis using environmental/context information | |
EP3117361B1 (en) | Behavioral analysis for securing peripheral devices | |
US9832211B2 (en) | Computing device to detect malware | |
US10320834B1 (en) | Retuning of random classification forests to improve efficacy | |
JP2018522321A (en) | Method and system for behavior-specific activation of real-time whitelisting | |
US11032303B1 (en) | Classification using projection of graphs into summarized spaces | |
US20200050761A1 (en) | Detection and mitigation of fileless security threats | |
US10623426B1 (en) | Building a ground truth dataset for a machine learning-based security application | |
EP3602372B1 (en) | Sample-specific sandbox configuration based on endpoint telemetry | |
KR20200039912A (en) | System and method for automatically analysing android malware by artificial intelligence | |
CN106415577B (en) | System and method for identifying the source of a suspicious event | |
US10885191B1 (en) | Detonate targeted malware using environment context information | |
US10686816B1 (en) | Insider threat detection under user-resource bi-partite graphs | |
US11044271B1 (en) | Automatic adaptive policy based security | |
US10346611B1 (en) | Detecting malicious software | |
US10977368B1 (en) | Detecting malware based on memory allocation patterns |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: SYMANTEC CORPORATION, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:HAUKLI, LARS;LEDER, FELIX;ROUNDY, KEVIN;SIGNING DATES FROM 20170321 TO 20170322;REEL/FRAME:041726/0336 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
AS | Assignment |
Owner name: CA, INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:SYMANTEC CORPORATION;REEL/FRAME:051144/0918 Effective date: 20191104 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |