Detecting a missing security alert using a machine learning model

Methods, systems, and apparatuses are provided for detecting a missing security alert by receiving an alert sequence generated by a network security provider, applying the received alert sequence to a security incident model, receiving an indication from the security incident model that the received alert sequence corresponds to a security incident defined by a predetermined sequence of alerts that includes at least one alert missing from the received alert sequence, and generating a notification to the network security provider that indicates at least one of the security incident or the missing alert(s). In addition, the security incident model may be generated by providing a set of historical alerts and a set of historical security incidents to a machine learning algorithm to generate the security incident model.

BACKGROUND

Cloud computing is a form of network-accessible computing that provides shared computer processing resources and data to computers and other devices on demand over the Internet. Cloud computing enables the on-demand access to a shared pool of configurable computing resources, such as computer networks, servers, storage, applications, and services. Given the vast resources available on the cloud, cloud workload security has become increasingly important.

To combat security issues, cloud security providers offer services with threat detection capabilities to alert customers to malicious activity targeting their environments. As in conventional computer systems, cloud computing systems may generate several alerts related to a single attack campaign. Many attacks follow a common sequence of steps to achieve some nefarious objective. Such attacks are often referred to as a kill-chain.

To render a collection of alerts meaningful to a system administrator, a cloud security provider may aggregate alerts that align with a kill-chain pattern into an “incident” to provide a consolidated view of the attack campaign. Typically, an incident includes a sequence of alerts, where each alert corresponds to a particular step in a kill-chain. These alerts contain valuable information helpful in determining what triggered the alert, the resources targeted, and the source of the attack.

SUMMARY

Methods, systems, and computer program products are provided for detecting a missing security alert in a security incident using a machine learning model. For example, the methods, systems, and computer program described herein may receive an alert sequence generated by a network security provider and apply the received alert sequence to a security incident model. An indication may be received from the security incident model that the received alert sequence corresponds to a security incident defined by a predetermined sequence of alerts that includes at least one alert missing from the received alert sequence. A notification may be generated for sending to the network security provider that indicates the security incident and/or the at least one missing alert. The system may also receive a similarity score from the security incident model that indicates an amount of similarity between the received alert sequence and the security incident. In addition, the system may generate the security incident model, such as by providing a set of historical alerts and a set of historical security incidents to a machine learning algorithm, or in another manner.

DETAILED DESCRIPTION

The present specification and accompanying drawings disclose one or more embodiments that incorporate the features of the present invention. The scope of the present invention is not limited to the disclosed embodiments. The disclosed embodiments merely exemplify the present invention, and modified versions of the disclosed embodiments are also encompassed by the present invention. Embodiments of the present invention are defined by the claims appended hereto.

Cloud computing is a form of network-accessible computing that provides shared computer processing resources and data to computers and other devices on demand over the Internet. Cloud computing enables the on-demand access to a shared pool of configurable computing resources, such as computer networks, servers, storage, applications, and services. Given the vast resources available on the cloud, cloud workload security has become increasingly important.

To combat security issues, cloud security providers offer services with threat detection capabilities to alert customers to malicious activity targeting their environments. As in conventional computer systems, cloud computing systems may generate several alerts related to a single attack campaign. Many attacks follow a common sequence of steps to achieve some nefarious objective. Such attacks are often referred to as a kill-chain.

To render a collection of alerts meaningful to a system administrator, a cloud security provider aggregates any alerts that align with a kill-chain pattern into an “incident” to provide a consolidated view of the attack campaign. Typically, an incident includes a sequence of alerts, where each alert corresponds to a particular step in a kill-chain. These alerts contain valuable information helpful in determining what triggered the alert, the resources targeted, and the source of the attack.

However, in some instances, a malicious event in an attack series may not be detected and thereby an alert corresponding to the malicious event may not be triggered. If an alert is missing from a sequence of issued alerts, then the appropriate incident associated with the attack series may not be designated and provided to a system administrator. For example, an attacker may move laterally from a compromised resource to another resource within a same network to harvest valuable data. If the lateral move to the other resource is not detected, then an alert indicating that the other resource is comprised will not be included in the reported incident and a system administrator will be unaware of the comprised resource and unable to remediate the attack. Current threat detection techniques are not necessarily foolproof and can at times miss malicious activity targeting resources.

Embodiments disclosed herein overcome these issues by taking into account that attackers often use the same attack sequence. Accordingly, in embodiments enable missing steps in an attack sequence to be determined, which can be used to determine the presence of an incident that was not already determined to have occurred.

For example, in one embodiment, an alert sequence generated by a network security provider is received. The received alert sequence is provided to a security incident model. An indication is received from the security incident model that the received alert sequence corresponds to a security incident defined by a predetermined sequence of alerts that includes at least one alert missing from the received alert sequence. A notification is generated to the network security provider that indicates at least one of the security incident or the missing alert(s). Embodiments disclosed herein also address these issues by a similarity score being obtained from the security incident model that indicates an amount of similarity between the received alert sequence and the security incident. Furthermore, a set of historical alerts and a set of historical security incidents may be input to a machine learning algorithm to generate the security incident model.

In embodiments, systems may be configured in various ways to determine security incidents from received alert sequences. For instance,FIG. 1shows a block diagram of an example security incident determination system100, according to an example embodiment. As shown inFIG. 1, system100is implemented with respect to an environment114that includes any number of resources (e.g., resources106A,106B,106C,106D) that a user108is authorized to access and an attacker110is not authorized to access, a security management system116, and an incident identification system102. System100is described in further detail as follows.

As shown inFIG. 1, resources of environment114, security management system116, and incident identification system102are communicatively coupled via a network112. Resources of environment114are also communicatively coupled with each other via network112. Network112may comprise one or more networks such as local area networks (LANs), wide area networks (WANs), enterprise networks, the Internet, etc., and may include one or more of wired and/or wireless portions.

For illustration purposes, environment114is shown to include resources106A,106B,106C, and106D, but may include any number of resources, including tens, hundreds, thousands, millions, and even greater numbers of resources. Environment114may be comprised of resources (e.g., servers) running on different clouds and/or in on-premises data centers of an enterprise or organization associated with a user108. Resources106A,106B,106C, and106D may include any of the following example cloud computing resources of computer networks, servers, storage, applications, or services, and/or may include further types of resources. For example, in an embodiment, resources106A,106B,106C, and106D may each be a server and form a network-accessible server set that are each accessible by a network such as the Internet (e.g., in a “cloud-based” embodiment) to store, manage, and process data. Additionally, in an embodiment, environment114may include any type and number of other resources including resources that facilitate communications with and between the servers (e.g., network switches, networks, etc.), storage by the servers (e.g., storage devices, etc.), resources that manage other resources (e.g., hypervisors that manage virtual machines to present a virtual operating platform for tenants of a multi-tenant cloud, etc.), and/or further types of resources.

In an embodiment, resources106A,106B,106C, and106D may be configured to execute one or more services (including microservices), applications, and/or supporting services. A “supporting service” is a cloud computing service/application configured to manage a set of servers to operate as network-accessible (e.g., cloud-based) computing resources for users. Examples of supporting services include Microsoft® Azure®, Amazon Web Services™, Google Cloud Platform™, IBM® Smart Cloud, etc. A supporting service may be configured to build, deploy, and manage applications and services on the corresponding set of servers. Each instance of the supporting service may implement and/or manage a set of focused and distinct features or functions on the corresponding server set, including virtual machines, operating systems, application services, storage services, database services, messaging services, etc. Supporting services may be coded in any programming language. Resources106A,106B,106C, and106D may be configured to execute any number of supporting services, including multiple instances of the same and/or different supporting services.

User108and any number of further users (e.g., individual users, family users, enterprise users, governmental users, etc.) may access resources106A,106B,106C, and106D and any other resources of environment114through network112via computing devices, including a computing device118accessed by user108. These computing devices used to access resources of environment114may be any type of a stationary or mobile computing device, including a mobile computer or mobile computing device (e.g., a Microsoft® Surface® device, a personal digital assistant (PDA), a laptop computer, a notebook computer, a tablet computer such as an Apple iPad™, a netbook, etc.), a mobile phone, a wearable computing device, or other type of mobile device, or a stationary computing device such as a desktop computer or PC (personal computer), or a server. Computing device118of user108may interface with resources106A,106B,106C, and106D through application programming interfaces (API)s and/or by other mechanisms. Note that any number of program interfaces may be present.

Though security management system116and incident identification system102are shown separate from resources106A,106B,106C, and106D, in an embodiment, security management system116and incident identification system102may be incorporated in one or more resources of environment114. Security management system116and incident identification system102may also be incorporated in any type of stationary or mobile computing device(s) described elsewhere herein or otherwise known. For instance, security management system116and incident identification system102may be incorporated in a network/cloud supporting service mentioned elsewhere herein or otherwise known.

Security management system116may be configured to manage and/or monitor the security of resources106A-106D and any other resources in environment114. For example, attacker110may attempt to access resources106A,106B,106C, and106D via network112for an unauthorized purpose using any type of stationary or mobile computing device similar to computing devices used by user108, such as a computing device120. In some instances, attacker110may try to execute malicious software (e.g., malware) on a resource, attempt a brute-force attack (e.g., password guessing) on a resource, persist in a compromised network to access valuable data and/or use a comprised resource to mount attacks against other resources in an environment.

If such attacks by attacker110occur, resources106A,106B,106C, and106D may generate an alert indicating that a perceived threat has been detected. For instance, as shown inFIG. 1, resources106A and106C generate alerts104a,104b, and104c. These alerts may be generated following unauthorized or illegitimate attempts perpetrated by attacker110to access resources106A and106C. After being generated, in an embodiment, alert104amay be stored in a log file maintained by resource106C and alerts104band104cmay be stored in a log file maintained by resource106A. A monitoring agent associated with security management system116may be installed on each of resources106A,106B,106C, and106D and configured to collect events (such as alerts104a,104b, and104c) from log files, performance data, and other telemetry from the resources and send the collected information to security management system116via network112.

Alerts104a,104b, and104cmay comprise any type of security alert, including but not limited to a potential virus alert, web application firewall alert, endpoint data protection alert, etc. Similarly, alerts104a,104b, and104care not limited to security alerts generated in cloud computing systems described herein as exemplary embodiments. Alert evaluating system108may also operate on one or more standalone devices connected to a network in which security alerts are generated.

Alerts104a,104b, and104cmay include contextual information, such as a username, process name, IP address, etc., associated with a resource and/or application that the alert was generated based upon. Alerts104a,104b, and104cmay also include contextual information regarding any relationship the alert may have to another one or more alerts, such as temporal connections. Alerts104a,104b, and104cmay be individual alerts, groups of alerts, logs of alerts, or chains of alerts that may together resemble a potential threat.

Security management system116is further configured to correlate and analyze the collected information described above to enable real-time reporting and alerting on incidents that may require intervention. For example, security management system116may receive, via network112, alert104afrom resource106C and alerts104band104cfrom resource106A that warn of threats posed to the resources. Security management system116may further analyze alerts104a,104b, and104cand generate a security incident based on the analysis of the alerts. More specifically, security management system116may correlate information associated with alerts104a,104b, and104cand deduce that the alerts are part of the same security incident, which comprises a sequence of alerts of [104a,104b,104c], based on temporal relationships and/or contextual information (e.g., a username, process name, IP address, etc.) associated with each alert.

Additionally, security management system116may analyze a history of alerts existing on a cloud service, such as alert logs generated by individual computing devices and/or servers connected to a cloud or environment114or through logs aggregating a history of alerts across multiple computing devices and/or servers connected to the cloud or environment114. The historical alerts may then be grouped together to form incidents based on a preexisting relationship, such as a timing relationship and/or whether the alert occurred on the same or similar resources.

Incident identification system102is configured to receive an alert sequence, determine if the received alert sequence corresponds to a security incident defined by a predetermined sequence of alerts, and generate a corresponding notification. The predetermined sequence of alerts may be a pattern of alerts previously detected by a cloud provider and verified to correspond to steps in an attack campaign. In an embodiment, incident identification system102may receive an alert sequence identified by security management system116as a security incident via network112. Alternatively, or in addition to, incident identification system102may receive one or more alerts directly from resources106A,106B,106C, and106D via network112.

For example, as depicted inFIG. 1, incident identification system102receives an alert sequence of [104a,104b,104c] from security management system116and generates a notification indicating that the received alert sequence corresponds to a security incident including alert sequence of [104a,104b,104m,104c]. The indicated security incident includes alert104mwhich is not included in the received alert sequence. As previously described, a security incident may include a sequence of alerts, where each alert corresponds to a step in an attack campaign. Say for illustration purposes, a malicious event committed by attacker110corresponding to alert104mwas not detected, resulting in alert104mnot to be generated. The notification indicating that the alert sequence corresponds to the security incident including the alert sequence of [104a,104b,104m,104c] could be provided to user108—informing the user of the previously unnoticed malicious event corresponding to alert104mand allowing user108to investigate the attack and remediate any harm caused by the malicious event.

To provide real-world context, say attacker110first tries to unsuccessfully access resource106C by submitting several possible passwords for an account associated with user108, and resource106C then generates alert104aindicating that a brute force attempt was found. Next, attacker110successfully accesses resource106A by submitting a correct password for an account associated with user108, and resource106A generates alert104bindicating that a successful brute force attack was found. Attacker110then executes malicious code on resource106A without detection by masquerading it as a benign process. If the event had been detected, alert104mwould have been generated by resource106A indicating that a malicious process was created. Finally, attacker110uses resource106A to try again to access resource106C by submitting several possible passwords for an account associated with user108and resource106A then generates alert104cindicating an outgoing brute force attempt was found. Because alert104mwas not generated, user108is unaware that the malicious code is executing on resource106A. This scenario, however, is preventable.

Because attackers often employ a common pattern of attack, it is possible to predict steps of an attack campaign. For example, by embodiments described herein determining a generated alert sequence corresponds to a previously seen and vetted security incident, an incomplete alert sequence can be flagged, and users and/or system administrators can be made aware of any missing alerts associated with an undetected event. Moreover, embodiments described herein can provide users and/or system administrators with information associated with missing alerts that may be critical to an investigation of an attack campaign and that can help identify vulnerabilities in a threat detection solution offered by a cloud provider. Embodiments described herein also act as a second line of defense for resources of the environment, as threat detection systems are not necessarily foolproof and can at times miss malicious activity targeting resources.

The process described with reference toFIG. 1will now be described in more detail with reference toFIG. 2. Note that incident identification system102ofFIG. 1may be implemented in various ways to perform its functions. For instance,FIG. 2is a block diagram for a system200that generates a security incident model and uses the security incident model to identify a security incident that corresponds to a received alert sequence, where the security incident includes at least one alert missing from the received alert sequence, in accordance with an example embodiment. As shown inFIG. 2, system200includes a model generator204and incident identification system102. As further shown inFIG. 2, incident identification system102includes an alert sequence analyzer212, a similarity score comparator214, and a missing alert notification generator216. System200is described in further detail as follows.

Model generator204is configured to generate a security incident model210used to identify a security incident that corresponds to a received alert sequence and store the generated security incident model210in a storage206. Storage206may include one or more of any type of suitable storage medium, such as a hard disk, solid-state drive, magnetic disk, optical disk, read-only memory (ROM), or random-access memory (RAM). In an embodiment, security incident model210may be a machine learning model that is trained on a history of alerts that have been generated for one or more customers of a cloud security provider (including all customers). For example, as depicted inFIG. 2, model generator204includes a machine learning algorithm208. Machine learning algorithm202is provided historical security incidents202as input, and is executed by model generator204to generate security incident model210. Historical security incidents202may include a history of alerts in a cloud service, such as stored in alert logs generated by individual computing devices and/or servers connected to a cloud or environment114ofFIG. 1or through logs aggregating a history of alerts across multiple computing devices and/or servers connected to the cloud or environment114. Additional detail for generating model210is described with reference toFIG. 4, further below.

As shown inFIG. 2, security incident model210is deployed in alert sequence analyzer212. Alert sequence analyzer212is configured to use security incident model210to identify security incidents corresponding to received alert sequences, where an identified security incident includes at least one alert missing from the corresponding received alert sequence. For example, as depicted inFIG. 2, alert sequence analyzer212receives alert sequence218(e.g., the alert sequence of [104a,104b,104c] inFIG. 1), applies alert sequence218to security incident model210, and receives an indication from security incident model210that alert sequence218corresponds to a security incident228(e.g., the security incident of [104a,104b,104m,104c] inFIG. 1) that includes at least one alert missing from alert sequence218. In an embodiment, the indication from security incident model210may include security incident228, and alert sequence analyzer212may compare the alerts of security incident228to alert sequence218to identify any alert missing from alert sequence218(e.g., alert104minFIG. 1). As shown inFIG. 2, alert sequence analyzer212is further configured to generate and provide a security incident indication222specifying security incident228, and/or any alert(s) missing from alert sequence218that is/are present in security incident228, to missing alert notification generator216.

Missing alert notification generator216is configured to generate a notification based on security incident indication222received from alert sequence analyzer212. For example, as shown inFIG. 2, missing alert notification generator216generates notification220, which may be provided to a user (e.g., user108inFIG. 1), which may be a system administrator, a computer user, etc. In an embodiment, notification220may indicate all the alerts of security incident228, and may identify security incident228by a name or other label, that corresponds to the alerts of alert sequence218and any missing alerts determined by alert sequence analyzer212. Alternatively, in an embodiment, notification220may only indicate alerts missing from alert sequence218and not all the alerts included in security incident228. As described previously, alerts contain valuable information helpful in investigating an attack. Notification220may also include such information (e.g., as identifying a resource that was attacked, a description of attack, a level of seriousness of attack, a time of detection, any action taken to address an attack, remediation steps, etc.).

As described above, incident identification system102ofFIG. 1andFIG. 2may operate in various ways. For instance,FIG. 3shows a flowchart300for determining that a received alert sequence corresponds to a security incident defined by a predetermined sequence of alerts that includes at least one alert missing from the received alert sequence, according to an example embodiment. In an embodiment, flowchart300may be implemented by alert sequence analyzer212ofFIG. 2. Other structural and operational embodiments will be apparent to persons skilled in the relevant art(s) based on the following discussion regarding flowchart300.

Flowchart300begins with step302. In step302, an alert sequence generated by a network security provider is received. For example, with reference toFIG. 2, alert sequence analyzer212receives alert sequence218. In an embodiment, as described herein with reference toFIG. 1and continued reference toFIG. 2, alert sequence analyzer212may receive a security incident (e.g., an alert sequence of [104a,104b,104c] inFIG. 1) from security management system116and/or may receive alerts (e.g.,104a,104b,104cinFIG. 1) directly from resources of environment114.

In step304, the received alert sequence is applied to a security incident model. For example, with reference toFIG. 2, alert sequence analyzer212applies alert sequence218to security incident model210deployed at alert sequence analyzer212. More specifically, alert sequence analyzer212provides alert sequence218to security incident model210, and security incident model210generates an indication that received alert sequence218corresponds to security incident228, which is defined by a predetermined sequence of alerts and includes at least one alert missing from received alert sequence218. As previously described, the predetermined sequence of alerts may be a pattern of alerts previously detected and connected to a same attack campaign. Moreover, in embodiments, the indication generated by security incident model210may specify only security incident228or may specify security incident228and other security incidents that correspond to received alert sequence218and include at least one alert missing from alert sequence218to form security incident228.

In step306, an indication is received from the security incident model that the received alert sequence corresponds to a security incident defined by a predetermined sequence of alerts that includes at least one alert missing from the received alert sequence. For example, with reference toFIG. 2, alert sequence analyzer212receives the indication generated by security incident model210described above in step304from security incident model210.

In step308, a notification is generated to the network security provider, where the notification is of at least one of the security incident or the at least one alert missing from the received alert sequence. For example, with reference toFIG. 2, missing alert notification generator216generates notification220based on security incident indication222received from alert sequence analyzer212. In an embodiment, notification220may include all the alerts of security incident228. Alternatively, notification220may include merely the alert(s) missing from alert sequence218, and not the other alerts of security incident228. Note that if alert sequence analyzer212does not determine a security incident from alert sequence218, notification220may indicate that no security incident was identified. Missing alert notification generator216may provide notification220to a user of a compromised resource. Missing alert notification generator216may also provide notification220to security management system116inFIG. 1. Upon receiving notification220, security management system116may consider security incident228in its correlation and analysis functions in order to improve its reporting and alerting of incidents.

As previously described, security incident model210may be created by a training process involving providing a machine learning algorithm with training data to learn from. For instance,FIG. 4shows a flowchart400for generating a security incident model based on historical security incidents, according to an example embodiment. In an embodiment, flowchart400may be implemented by model generator204ofFIG. 2. Other structural and operational embodiments will be apparent to persons skilled in the relevant art(s) based on the following discussion regarding flowchart400.

Flowchart400includes step402. In step402, a set of historical alerts and a set of historical security incidents is provided to a machine learning algorithm to generate the security incident model. For example, with reference toFIG. 2, after receiving historical security incidents202, model generator204may provide historical security incidents202to machine learning algorithm208. Model generator204may also include a machine learning (ML) application, such as TensorFlow™, that implements machine learning algorithm208to generate security incident model210. When machine learning algorithm208is implemented, it may find patterns in the set of historical alerts, to map occurrences of the historical alerts to the historical security incidents202, and output a model that captures these patterns to enable mapping of a received alert sequence to one or more security incidents previously known. Security incident model210may be generated using any suitable techniques, including supervised machine learning model generation algorithms such as supervised vector machines (SVM), linear regression, logistic regression, naïve Bayes, linear discriminant analysis, decision trees, k-nearest neighbor algorithm, neural networks, recurrent neural network, etc.

Note that security incident model210may be generated in various forms. In accordance with one embodiment, security incident model210may be generated according to a suitable supervised machine-learning algorithm mentioned elsewhere herein or otherwise known. For instance, model generator204may implement a vector space learning algorithm to generate security incident model210as a vector space model. As a vector space model, security incident model210would represent historical security incidents202in a continuous vector space, where similar security incidents are mapped to nearby points or are embedded nearby each other. With security incident model210in the form of a vector space model, many established natural language processing (NLP) methods can be used to predict and analyze relationships between security alerts, such as identifying missing alerts from a detected alert sequence. In another embodiment, model generator204may implement a gradient boosted tree algorithm or other decision tree algorithm to generate and/or train security incident model210in the form of a decision tree. The decision tree may be traversed with input data (alert sequence218, etc.) to identify any missing alerts. Alternatively, model generator204may implement an artificial neural network learning algorithm to generate security incident model210as a neural network that is an interconnected group of artificial neurons. The neural network may be presented with an alert sequence to identify a security incident that the alert sequence corresponds to.

In addition to security incident model210providing an indication that a received alert sequence corresponds to a security incident, security incident model210may also be configured to generate a similarity score that indicates an amount of similarity between the received alert sequence and the security incident. For instance,FIG. 5shows a flowchart500for generating and receiving a similarity score that indicates an amount of similarity between a received alert sequence and a security incident, according to an example embodiment. In an embodiment, flowchart500may be implemented by alert sequence analyzer212ofFIG. 2. Other structural and operational embodiments will be apparent to persons skilled in the relevant art(s) based on the following discussion regarding flowchart500.

Flowchart500includes step502. In step502, a similarity score is received that indicates an amount of similarity between the received alert sequence and the security incident. For example, with reference toFIG. 2, alert sequence analyzer212may receive from security incident model210a similarity score that indicates an amount of similarity between received alert sequence218and security incident228. For example, model generator204may generate security incident model210to include a weighted equation that includes a set of weighted variable that are combined (e.g., summed) to generate the similarity score. For instance, in one embodiment, each variable may correspond to an alert. If an alert is present in alert sequence218, the variable for that alert may be given the value “1” (otherwise is given the value “0”). Each variable with value “1” is multiplied by its corresponding weight (determined by model generator204), and each of these factors are combined to determine the similarity factor for that alert sequence, which may be compared to a standard factor for the determined security incident, to determine the similarity score (e.g., the closer the values of the factors, the higher the similarity score).

Alert sequence analyzer212is further configured to generate a similarity result224that identifies security incident228and the corresponding similarity score to similarity score comparator214. In another embodiment, similarity result224may identify one or more alerts of security incident228that are missing from received alert sequence218and the corresponding similarity score.

Similarity score comparator214is also configured to provide a compare result226to missing alert notification generator216that identifies security incident228or the one or more alerts of security incident228that are missing from received alert sequence218and the corresponding similarity score. However, based on the similarity score specified in similarity result224received from alert sequence analyzer212, similarity score comparator214may not propagate compare result226to missing alert notification generator216. For example, similarity score comparator214may only provide compare result226identifying security incident228to missing alert notification generator216if the similarity score is above a predefined threshold.

In some embodiments, several security incidents may be identified as corresponding to received alert sequence218. For instance,FIG. 6shows a flowchart600for receiving an indication that a received alert sequence corresponds to a plurality of security incidents, according to an example embodiment. In an embodiment, flowchart600may be implemented by alert sequence analyzer212ofFIG. 2. Other structural and operational embodiments will be apparent to persons skilled in the relevant art(s) based on the following discussion regarding flowchart600.

Flowchart600begins with step602. In step602, an indication is received from the security incident model that the received alert sequence corresponds to a plurality of security incidents, where each security incident of the plurality of security incidents is defined by a predetermined sequence of alerts that include at least one alert missing from the received alert sequence. For example, with reference toFIG. 2, alert sequence analyzer212receives an indication from security incident model210that received alert sequence218corresponds to a plurality of security incidents (e.g., including security incident228and at least one other security incident identified by security incident model210). Each security incident of the plurality of security incidents may be defined by a predetermined sequence of alerts that include at least one alert missing from received alert sequence218.

In step604, similarity scores corresponding to the security incidents of the plurality of security incidents are received. Each similarity score indicates an amount of similarity between the received alert sequence and a corresponding security incident of the plurality of security incidents. For example, with reference toFIG. 2, alert sequence analyzer212receives similarity scores corresponding to the security incidents of the plurality of security incidents. Each similarity score indicates an amount of similarity between received alert sequence218and a corresponding security incident of the plurality of security incidents.

In an embodiment, in which several security incidents are identified as corresponding to received alert sequence218, similarity score comparator214may be used to filter the several security incidents by their corresponding similarity scores. For instance,FIG. 7shows a flowchart700for identifying a security incident of a plurality of security incidents that has a highest similarity score, according to an example embodiment. In an embodiment, flowchart700may be implemented by similarity score comparator214and missing alert notification generator216ofFIG. 2. Other structural and operational embodiments will be apparent to persons skilled in the relevant art(s) based on the following discussion regarding flowchart700.

Flowchart700begins with step702. In step702, a security incident of the plurality of security incidents that has a highest similarity score is identified. For example, with reference toFIG. 2, similarity score comparator214may receive similarity result224from alert sequence analyzer212identifying a plurality of security incidents (e.g., including security incident228and at least one other security incident identified by security incident model210) that received alert sequence218corresponds to. Similarity score comparator214may compare the similarities scores of the plurality of security incidents and provide compare result226to missing alert notification generator216indicating which security incident of the plurality of security incidents has the highest similarity score.

In step704, the notification to indicate the identified security incident is generated. For example, with reference toFIG. 2, missing alert notification generator216may generate notification220to indicate which security incident of the plurality of security incidents has the highest similarity score.

In some embodiments, missing alert notification generator216may generate a notification to a network security provider reporting that several security incidents correspond to a received alert sequence. For instance,FIG. 8shows a flowchart800for identifying security incidents of the plurality of security incidents that have similarity scores above a predetermined threshold, according to an example embodiment. In an embodiment, flowchart800may be implemented by similarity score comparator214and missing alert notification generator216ofFIG. 2. Other structural and operational embodiments will be apparent to persons skilled in the relevant art(s) based on the following discussion regarding flowchart800.

Flowchart800begins with step802. In step802, security incidents of the plurality of security incidents that have similarity scores above a predetermined threshold are identified. For example, with reference toFIG. 2, similarity score comparator214may receive similarity result224from alert sequence analyzer212identifying a plurality of security incidents (e.g., including security incident228and at least one other security incident identified by security incident model210) that received alert sequence218corresponds to. Similarity score comparator214may compare the similarities scores of the plurality of security incidents and provide compare result226to missing alert notification generator216indicating which security incidents of the plurality of security incidents have similarity scores above the predetermined threshold. The predetermined threshold may be determined by a system administrator.

In step804, the notification to indicate the identified security incidents is generated. For example, with reference toFIG. 2, missing alert notification generator216may generate notification220to indicate which security incidents of the plurality of security incidents have similarity scores above the predetermined threshold.

As previously described, in an embodiment, notification220may be provided to a user such as a system administrator. For instance,FIG. 9shows computing device910, which may be used by a system administrator in charge of managing and/or monitoring the security of any of resources in106A,106B,106C, and106D in environment114inFIG. 1. In this example, computing device910may contain a display920, which may be any suitable display, such as a liquid crystal display, cathode ray tube display, light-emitting diode display, or any other type of display connectable to computing device910. Display920may be external to or incorporated in computing device910. Display920may contain a user interface930(e.g., a graphical user interface) that displays, among other things, information to a system administrator regarding the security of any of resources in106A,106B,106C, and106D in environment114. In an embodiment, notification220may be displayed on user interface930of computing device910. Computing device910may also include other peripheral output devices (not shown) such as speakers and printers. In another embodiment, incident indication may be transmitted to any such peripheral device attached to computing device910.

Notification220indicating all the alerts of security incident228ofFIG. 2may be displayed to a user of computing device910. Alternatively, in an embodiment, notification220may only indicate alerts missing from alert sequence218and not all the alerts included in security incident228ofFIG. 2. Notification220may also include information helpful to the user of computing device910in investigating an attack. For example, notification220indicating such information, such as identifying a resource that was attacked, a description of attack, a level of seriousness of attack, a time of detection, any action taken to address an attack, remediation steps, etc., may be displayed to the user of computing device910.

III. Example Computer System Implementation

Incident identification system102, security management system116, model generator204, machine learning algorithm208, alert sequence analyzer212, similarity score comparator214, missing alert notification generator216, flowchart300, flowchart400, flowchart500, flowchart600, flowchart700and/or flowchart800may be implemented in hardware, or hardware combined with one or both of software and/or firmware. For example, incident identification system102, security management system116, model generator204, machine learning algorithm208, alert sequence analyzer212, similarity score comparator214, missing alert notification generator216, flowchart300, flowchart400, flowchart500, flowchart600, flowchart700and/or flowchart800may be implemented as computer program code/instructions configured to be executed in one or more processors and stored in a computer readable storage medium. In another embodiment, incident identification system102, security management system116, model generator204, machine learning algorithm208, alert sequence analyzer212, similarity score comparator214, missing alert notification generator216, flowchart300, flowchart400, flowchart500, flowchart600, flowchart700and/or flowchart800may also be implemented in hardware that operates software as a service (SaaS) or platform as a service (PaaS). Alternatively, incident identification system102, security management system116, model generator204, machine learning algorithm208, alert sequence analyzer212, similarity score comparator214, missing alert notification generator216, flowchart300, flowchart400, flowchart500, flowchart600, flowchart700and/or flowchart800may be implemented as hardware logic/electrical circuitry.

For instance, in an embodiment, one or more, in any combination, of incident identification system102, security management system116, model generator204, machine learning algorithm208, alert sequence analyzer212, similarity score comparator214, missing alert notification generator216, flowchart300, flowchart400, flowchart500, flowchart600, flowchart700and/or flowchart800may be implemented together in a system on a chip (SoC). The SoC may include an integrated circuit chip that includes one or more of a processor (e.g., a central processing unit (CPU), microcontroller, microprocessor, digital signal processor (DSP), etc.), memory, one or more communication interfaces, and/or further circuits, and may optionally execute received program code and/or include embedded firmware to perform functions.

FIG. 10depicts an exemplary implementation of a computing device1000in which embodiments may be implemented. For example, components of system100and system200may each be implemented in one or more computing devices similar to computing device1000in stationary or mobile computer embodiments, including one or more features of computing device1000and/or alternative features. The description of computing device1000provided herein is provided for purposes of illustration, and is not intended to be limiting. Embodiments may be implemented in further types of computer systems, as would be known to persons skilled in the relevant art(s).

As shown inFIG. 10, computing device1000includes one or more processors, referred to as processor circuit1002, a system memory1004, and a bus1006that couples various system components including system memory1004to processor circuit1002. Processor circuit1002is an electrical and/or optical circuit implemented in one or more physical hardware electrical circuit device elements and/or integrated circuit devices (semiconductor material chips or dies) as a central processing unit (CPU), a microcontroller, a microprocessor, and/or other physical hardware processor circuit. Processor circuit1002may execute program code stored in a computer readable medium, such as program code of operating system1030, application programs1032, other programs1034, etc. Bus1006represents one or more of any of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any of a variety of bus architectures. System memory1004includes read only memory (ROM)1008and random access memory (RAM)1010. A basic input/output system1012(BIOS) is stored in ROM1008.

Computing device1000also has one or more of the following drives: a hard disk drive1014for reading from and writing to a hard disk, a magnetic disk drive1016for reading from or writing to a removable magnetic disk1018, and an optical disk drive1020for reading from or writing to a removable optical disk1022such as a CD ROM, DVD ROM, or other optical media. Hard disk drive1014, magnetic disk drive1016, and optical disk drive1020are connected to bus1006by a hard disk drive interface1024, a magnetic disk drive interface1026, and an optical drive interface1028, respectively. The drives and their associated computer-readable media provide nonvolatile storage of computer-readable instructions, data structures, program modules and other data for the computer. Although a hard disk, a removable magnetic disk and a removable optical disk are described, other types of hardware-based computer-readable storage media can be used to store data, such as flash memory cards, digital video disks, RAMs, ROMs, and other hardware storage media.

A number of program modules may be stored on the hard disk, magnetic disk, optical disk, ROM, or RAM. These programs include operating system1030, one or more application programs1032, other programs1034, and program data1036. Application programs1032or other programs1034may include, for example, computer program logic (e.g., computer program code or instructions) for implementing incident identification system102, security management system116, model generator204, machine learning algorithm208, alert sequence analyzer212, similarity score comparator214, missing alert notification generator216, flowchart300, flowchart400, flowchart500, flowchart600, flowchart700and/or flowchart800(including any suitable step of flowcharts200,400,500,600,700, and800), and/or further embodiments described herein.

A user may enter commands and information into the computing device1000through input devices such as keyboard1038and pointing device1040. Other input devices (not shown) may include a microphone, joystick, game pad, satellite dish, scanner, a touch screen and/or touch pad, a voice recognition system to receive voice input, a gesture recognition system to receive gesture input, or the like. These and other input devices are often connected to processor circuit1002through a serial port interface1042that is coupled to bus1006, but may be connected by other interfaces, such as a parallel port, game port, or a universal serial bus (USB).

A display screen1044is also connected to bus1006via an interface, such as a video adapter1046. Display screen1044may be external to, or incorporated in computing device1000. Display screen1044may display information, as well as being a user interface for receiving user commands and/or other information (e.g., by touch, finger gestures, virtual keyboard, etc.). In addition to display screen1044, computing device1000may include other peripheral output devices (not shown) such as speakers and printers. Display screen1044, and/or any other peripheral output devices (not shown) may be used for implementing user interface930, and/or any further embodiments described herein.

Computing device1000is connected to a network1048(e.g., the Internet) through an adaptor or network interface1050, a modem1052, or other means for establishing communications over the network. Modem1052, which may be internal or external, may be connected to bus1006via serial port interface1042, as shown inFIG. 10, or may be connected to bus1006using another interface type, including a parallel interface.

As used herein, the terms “computer program medium,” “computer-readable medium,” and “computer-readable storage medium” are used to refer to physical hardware media such as the hard disk associated with hard disk drive1014, removable magnetic disk1018, removable optical disk1022, other physical hardware media such as RAMs, ROMs, flash memory cards, digital video disks, zip disks, MEMs, nanotechnology-based storage devices, and further types of physical/tangible hardware storage media. Such computer-readable storage media are distinguished from and non-overlapping with communication media (do not include communication media).

Communication media embodies computer-readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wireless media such as acoustic, RF, infrared and other wireless media, as well as wired media. Embodiments are also directed to such communication media that are separate and non-overlapping with embodiments directed to computer-readable storage media.

As noted above, computer programs and modules (including application programs1032and other programs1034) may be stored on the hard disk, magnetic disk, optical disk, ROM, RAM, or other hardware storage medium. Such computer programs may also be received via network interface1050, serial port interface1042, or any other interface type. Such computer programs, when executed or loaded by an application, enable computing device1000to implement features of embodiments discussed herein. Accordingly, such computer programs represent controllers of the computing device1000.

IV. Additional Example Embodiments

A system comprises: an alert sequence analyzer configured to receive an alert sequence generated by a network security provider, apply the received alert sequence to a security incident model, and receive an indication from the security incident model that the received alert sequence corresponds to a security incident defined by a predetermined sequence of alerts that includes at least one alert missing from the received alert sequence; and a missing alert notification generator configured to generate a notification to the network security provider that indicates at least one of the security incident or the at least one alert missing from the received alert sequence.

In one embodiment of the foregoing system, the alert sequence analyzer is further configured to: receive a similarity score from the security incident model that indicates an amount of similarity between the received alert sequence and the security incident.

In another embodiment of the foregoing system, the notification includes the similarity score.

In another embodiment of the foregoing system, a model generator is configured to provide a set of historical alerts and a set of historical security incidents to a machine learning algorithm to generate the security incident model.

In another embodiment of the foregoing system, the alert sequence analyzer is further configured to: receive an indication from the security incident model that the received alert sequence corresponds to a plurality of security incidents, each security incident of the plurality of security incidents defined by a predetermined sequence of alerts that include at least one alert missing from the received alert sequence; and receive similarity scores corresponding to the security incidents of the plurality of security incidents, each similarity score indicating an amount of similarity between the received alert sequence and a corresponding security incident of the plurality of security incidents.

In another embodiment of the foregoing system, a similarity score comparator is configured to identify a security incident of the plurality of security incidents that has a highest similarity score; and the missing alert notification generator is further configured to generate the notification to indicate the identified security incident.

In another embodiment of the foregoing system, a similarity score comparator is configured to identify security incidents of the plurality of security incidents that have similarity scores greater than a predetermined threshold; and wherein the missing alert notification generator is further configured to generate the notification to indicate the identified security incidents.

A method comprises: receiving an alert sequence generated by a network security provider; applying the received alert sequence to a security incident model; receiving an indication from the security incident model that the received alert sequence corresponds to a security incident defined by a predetermined sequence of alerts that includes at least one alert missing from the received alert sequence; and generating a notification to the network security provider that indicates at least one of the security incident or the at least one alert missing from the received alert sequence.

In one embodiment of the foregoing method, said receiving an indication comprises: receiving a similarity score from the security incident model that indicates an amount of similarity between the received alert sequence and the security incident.

In another embodiment of the foregoing method, the method further comprises: using natural language processing methods to identify the at least one alert missing from the received alert sequence.

In another embodiment of the foregoing method, the method further comprises: providing a set of historical alerts and a set of historical security incidents to a machine learning algorithm to generate the security incident model.

In another embodiment of the foregoing method, said receiving an indication comprises: receiving an indication from the security incident model that the received alert sequence corresponds to a plurality of security incidents, each security incident of the plurality of security incidents defined by a predetermined sequence of alerts that include at least one alert missing from the received alert sequence; and receiving similarity scores corresponding to the security incidents of the plurality of security incidents, each similarity score indicating an amount of similarity between the received alert sequence and a corresponding security incident of the plurality of security incidents.

In another embodiment of the foregoing method, further comprises: identifying a security incident of the plurality of security incidents that has a highest similarity score; and said generating comprises: generating the notification to indicate the identified security incident.

In another embodiment of the foregoing method, further comprises: identifying security incidents of the plurality of security incidents that have similarity scores greater than a predetermined threshold; and said generating comprises: generating the notification to indicate the identified security incidents.

A computer-readable storage medium having program instructions recorded thereon that, when executed by at least one processing circuit, perform a method on a computing device, the method comprises: receiving an alert sequence generated by a network security provider; applying the received alert sequence to a security incident model; receiving an indication from the security incident model that the received alert sequence corresponds to a security incident defined by a predetermined sequence of alerts that includes at least one alert missing from the received alert sequence; and generating a notification to the network security provider that indicates at least one of the security incident or the at least one alert missing from the received alert sequence.

In one embodiment of the foregoing computer-readable storage medium, said receiving an indication comprises: receiving a similarity score from the security incident model that indicates an amount of similarity between the received alert sequence and the security incident.

In another embodiment of the foregoing computer-readable storage medium, the method comprises: providing a set of historical alerts and a set of historical security incidents to a machine learning algorithm to generate the security incident model.

In another embodiment of the foregoing computer-readable storage medium, said receiving an indication comprises: receiving an indication from the security incident model that the received alert sequence corresponds to a plurality of security incidents, each security incident of the plurality of security incidents defined by a predetermined sequence of alerts that include at least one alert missing from the received alert sequence; and receiving similarity scores corresponding to the security incidents of the plurality of security incidents, each similarity score indicating an amount of similarity between the received alert sequence and a corresponding security incident of the plurality of security incidents.

In another embodiment of the foregoing computer-readable storage medium, the method further comprises: identifying a security incident of the plurality of security incidents that has a highest similarity score; and said generating comprises: generating the notification to indicate the identified security incident.

In another embodiment of the foregoing computer-readable storage medium, the method further comprises: identifying security incidents of the plurality of security incidents that have similarity scores greater than a predetermined threshold; and said generating comprises: generating the notification to indicate the identified security incidents.