The present invention relates generally to computer security, and particularly to a dynamic resource risk scoring algorithm for resources and resource groups in public cloud environments.
Cloud configuration settings refer to the specific parameters and options that govern the behavior and functionality of cloud-based resources. These settings are crucial for optimizing performance, security, scalability, and cost-effectiveness in cloud computing environments. A misconfigured cloud resource can be exploited by attackers in several ways, potentially leading to data breaches, service disruptions, or other security incidents. Therefore, effective cloud configuration settings are essential for aligning cloud resources with organizational goals, optimizing resource utilization, and ensuring the security and compliance of cloud-based systems and applications.
The description above is presented as a general overview of related art in this field and should not be construed as an admission that any of the information it contains constitutes prior art against the present patent application.
There is provided, in accordance with an embodiment of the present invention, a method for protecting a cloud computing system, the method including receiving security alerts pertaining to cloud-based resources of the system, identifying a plurality of attack paths traversing the cloud-based resources, computing respective impact scores for the cloud-based resources based on respective counts of the identified attack paths traversing each of the cloud-based resources, and prioritizing the security alerts responsively to the respective impact scores of the cloud-based resources to which the security alerts pertain.
In one embodiment, the security alerts have respective severity levels, and the method further includes computing a resource severity score for each given cloud-based resource based on is respective impact score and the severity levels of the security alerts pertaining to the given cloud-based resource, and prioritizing the security alerts responsively to the respective resource severity scores of the cloud-based resources to which the security alerts pertain.
In another embodiment, the severity levels range from low severity to high severity, and wherein computing the resource severity scores includes applying exponential scaling factors to the severity levels so as to prioritize the security alerts having high severity.
In an additional embodiment, the security alerts have respective times, and wherein computing the resource severity score for each given cloud-based resource is based on the respective times of the security alerts pertaining to the given cloud-based resource.
In a further embodiment, the respective times includes first times, wherein the resource severity scores are computed at respective second times subsequent to the first times, and the method further includes computing, for each given security alert pertaining to one of the cloud-based resources, a respective time decay factor based on a difference between its respective first time and the second time for the resource severity score for the one of the cloud-based resources, and computing the resource severity score for each given cloud-based resource based on the respective time decay factors of the security alerts pertaining to the given cloud-based resource.
In a supplemental embodiment, the method further includes grouping the cloud-based resources based on a grouping parameter, assigning risk levels to the resource severity score based on specified score ranges for the grouping parameter, and wherein prioritizing the security alerts responsively to the respective resource severity scores of the cloud-based resources to which the security alerts pertain includes prioritizing the security alerts responsively to the respective risk levels for the resource severity scores of the cloud-based resources to which the security alerts pertain.
In one embodiment, a given grouping parameter includes all the cloud-based resources.
In another embodiment, the received security alerts were conveyed by one of more software applications executing in the cloud computing system, and wherein a given grouping parameter includes a given software application.
In an additional embodiment, the cloud-based resources have respective resource types, and wherein a given grouping parameter includes a given resource type.
In a further embodiment, the cloud-based resources have respective resource groupings, and wherein a given grouping parameter includes a given resource group.
In a supplemental embodiment, the cloud-based resources have respective build types, and wherein a given grouping parameter includes a given build type.
In some embodiments, a given attack path includes an ordered sequence of a subset of the cloud-based resources that exposes a service provided by the cloud computing system.
In other embodiments, the cloud-based resources include respective configuration settings, and wherein a given security alert pertaining to a given cloud-based resource indicates the configuration settings for the given cloud-based resource do not comply with a specified configuration policy.
There is also provided, in accordance with an embodiment of the present invention, an apparatus for protecting a cloud computing system, including a memory, and a processor configured to receive and store to the memory security alerts pertaining to cloud-based resources of the system, to identify a plurality of attack paths traversing the cloud-based resources, to compute respective impact scores for the cloud-based resources based on respective counts of the identified attack paths traversing each of the cloud-based resources, and to prioritize the security alerts responsively to the respective impact scores of the cloud-based resources to which the security alerts pertain.
There is additionally provided, in accordance with an embodiment of the present invention, a computer software product for protecting a cloud computing system, the computer software product including a non-transitory computer-readable medium, in which program instructions are stored, which instructions, when read by a computer, cause the computer to receive security alerts pertaining to cloud-based resources of the system, to identify a plurality of attack paths traversing the cloud-based resources, to compute respective impact scores for the cloud-based resources based on respective counts of the identified attack paths traversing each of the cloud-based resources, and to prioritize the security alerts responsively to the respective impact scores of the cloud-based resources to which the security alerts pertain.
The disclosure is herein described, by way of example only, with reference to the accompanying drawings, wherein:
Cloud computer systems typically deploy large numbers of cloud-based resources. Typically, many of these cloud-based resources in public cloud accounts violate multiple policies meant to secure an enterprise. This can result in a large number of security alerts being generated for the policy violations. Since the violations are typically resolved by correcting the configuration of the cloud-based resources to which the security alerts pertain, large numbers of security alerts can make it difficult for a Security Operations Center (SOC) analyst to identify which of the security alerts to prioritize for resolution.
Embodiments of the present invention provide methods and systems for protecting a cloud computing system comprising multiple cloud-based resources. As described hereinbelow, upon receiving security alerts pertaining to the cloud-based resources and identifying a plurality of attack paths traversing the cloud-based resources, respective impact scores can be computed for the cloud-based resources based on respective counts of the identified attack paths traversing each of the cloud-based resources. The security alerts can then be prioritized responsively to the respective impact scores of the cloud-based resources to which the security alerts pertain.
Depending on the of number security violations, reconfiguring a given cloud-based resource so as to comply with all relevant configuration policies can be a time intensive operation. By prioritizing the security alerts based on their respective impact scores, systems implementing embodiments of the present invention can provide more useful distribution of the security alerts (i.e., based on their respective impact scores) that can help a Security Operations Center (SOC) analyst to identify security violations for a given cloud-based resource that, when rectified, can break multiple attack paths.
In additional embodiments, as described hereinbelow, the impact score for a given cloud-based resource can be augmented with features of the security alerts pertaining to the given cloud-based resource. Examples of these features include respective severity levels and respective times of the security alerts.
In the configuration shown in
Each cloud-based resource 26 may comprise a unique resource identifier (ID) 32, an endpoint agent 34, and configuration settings 36, and. For a given cloud-based resource 26, configuration settings 36 comprise hardware and software settings that govern the behavior and functionality of cloud-based resources. For example, a given cloud-based resource 26 may comprise an AWS™ SIMPLE STORAGE SERVICE™ (S3™) bucket, and the configuration settings for the S3™ bucket may comprise information such as a bucket region, bucket permissions, etc.
Endpoint agents 34 (also known as endpoint security agents or security agents) comprises software applications that execute (typically in the background) on cloud-based resource 26 so as to identify any vulnerabilities in real-time. One example of a given endpoint security agent 34 is CORTEX XDR™ produced by PALO ALTO NETWORKS INC., 3000 Tannery Way, Santa Clara, CA 95054 USA).
In some embodiments, in response to detecting any policy violations in configuration settings 36 (i.e., any of the configuration settings that do not comply with a specified configuration policy), endpoint agents 34 can convey security alerts 24 to cloud manager 28. In other embodiments, endpoint agents 34 can convey security alerts 24 to security server 20.
For example, a given cloud-based resource 26 may comprise a GOOGLE CLOUD PLATFORM™ (GCP™) storage bucket, provided by ALPHABET INC., 1600 Amphitheatre Parkway, Mountain View, CA, USA. In this example:
Some cloud-based resources 26 may be configured to provide respective cloud services 38 to other cloud-based resources 26 or other computing devices (not shown) coupled to Internet 30. Examples of cloud services 38 include, but are not limited to, storage, processing power, database management and networking.
Cloud manager 28 comprises a cloud management platform 40 (i.e., a cloud-based application running on cloud manager 28) that is configured to safeguard cloud-native applications, data, and workloads across multi-cloud environments by providing services such as real-time threat detection and response, compliance monitoring, and data protection. An example of a given cloud management platform 40 that can provide these is PRISMA™ CLOUD, produced by PALO ALTO NETWORKS INC.
In the configuration shown in
In additional embodiments, cloud management platform 40 can analyze alert records 42 and cloud-based resources 26 so as to identify one or more attack paths 46. In embodiments herein, a given attack path 46 comprises an ordered sequence of cloud-based resources 26 (i.e., a “path”) that a malicious actor can traverse so as to exploit a vulnerability or weakness in cloud computing system 22, thereby gaining unauthorized access to (for example) a given service 38 so as to access data or computing resources in cloud computing system 22. In the configuration shown in
Security server 20 may comprise a processor 48 and a memory 50 that can store copies of alert records 42 and attack path records 44 that the security server can retrieve from cloud manager 28, as indicated by arrows 52 and 54. Memory 50 can also store a set of graph node records 56 that processor 48 can generate from attack path records 44 using embodiments described hereinbelow. In some embodiments, processor 48 can generate a directed graph 58 from graph nodes 56, and store the generated directed graph to memory 50. Graph node records 56 and directed graph 58 are respectively described in the descriptions referencing
Memory 50 can additionally store a set of threshold records 60 that are described in the description referencing
Processor 48 comprises one or more general-purpose central processing units (CPU) or special-purpose embedded processors, which are programmed in software or firmware to carry out the functions described herein. This software may be downloaded to security server 20 in electronic form, over a network, for example. Additionally or alternatively, the software may be stored on tangible, non-transitory computer-readable media, such as optical, magnetic, or electronic memory media. Further additionally or alternatively, at least some of the functions of processor 38 may be carried out by hard-wired or programmable digital logic circuits.
Examples of memory 50 include dynamic random-access memories, non-volatile random-access memories, hard disk drives and solid-state disk drives.
In some embodiments, tasks described herein performed by processor 48 may be split among multiple physical and/or virtual computing devices. In other embodiments, these tasks may be performed in a managed cloud service such as cloud computing system 22.
As described supra, alert records 42 correspond to security alerts 24. In embodiments herein, a given feature in given alert record 42 may also be referred to as a given feature in the corresponding security alert. For example, alert severity 78 for a given security alert 24 refers to the alert severity in the corresponding alert record.
Each attack path record 44 corresponds to a given attack path 46, and can store information such as:
In some embodiments, graph node records 56 correspond to respective cloud-based resource 26, and each graph node record 56 can store information such as:
In some embodiments, nlevel provides an exponential scaling factor so that security alerts 24 with higher severities 78 has a greater impact on RSS 108 than security alerts 24 with lower severities 78 (i.e., even if there are more security alerts 24 with lower alert severities 78 than security alerts 24 with higher severities 78). In other words, the exponential scaling of alert severities 78 helps limit any cloud-based resources 26 with security alerts 24 from moving to a higher risk level (risk levels are described in the description referencing
In one embodiment, processor 48 can use the following formula to compute time decay for a given security alert 24:
where r is a decay rate, r*t0 is a constant, and to is a half-life period. In this embodiment, the scaling stays close to 1 for first n days and drops significantly reaching half-value at to and close to 0 for values ≥2*t0.
In some embodiments, processor 48 can maintain approximately the same value for the TD component for the first few days and then reduce the values significantly with increase in n. For example, a policy failure that occurred yesterday (n−1) and the other one that occurred 2 days ago will have approximately the same value with α(t)˜1. However, the delta increases with increase in n with α(t)˜0 for large value of n.
In embodiments herein processor 48 can use RSS 108 and the information in threshold records 60 so compute the risk level for a given cloud-based resource 26. In a first example, group 110 in a first subset of threshold records 60 may reference all cloud-based resources 26, and processor 48 can use the score ranges in the first subset so as to compute the risk level for the given cloud-based resource. In a second example, group 110 in a second subset of threshold records 60 may reference a subset cloud-based resources 26 (e.g., group 110 may reference the cloud-based resources that are EC2™ instances), and processor 48 can use the score ranges in the second subset so as to compute the risk level for the given cloud-based resource.
In some embodiments, processor 48 can define, for a given group 110, score ranges 112 (i.e., thresholds) based on a target percentage for each risk level. For example, if risk levels 114 are critical, high, medium, low and insignificant, upon computing resource severity scores 108, processor can specify scores ranges 112 so that the distribution of the resource severity scores (i.e., for a given group 110) is 2% critical, 8% high, 15% medium, 30% low, and 45% insignificant.
In the example shown in
In the example shown in
In the example shown in
In the example shown in
In some embodiments, impact score 106A can be ignored, since node 120A does not add any new attack paths 46.
In additional embodiments, processor 48 can prioritize resolution of security alerts 24 based on the respective impact scores 106 of the cloud-based resources to which the security alerts pertain. In the example shown in
In embodiments herein, the impact scores for a given cloud-based resource 26 can indicate how many attack paths 46 can be “broken” by resolving the security alerts pertaining to the given cloud-based resource. Therefore, by prioritizing the security alerts for the node having the highest impact score 106, processor 48 can break the greatest number of attack paths 46.
In step 130, security server 20 receives security alerts 24 that pertain to cloud-based resources 26. As described supra, security server 20 can receive security alerts 24 by receiving alert records 42.
In steps 132 and 134, processor 48 identifies respective alert severities 78 and respective alert times 72 for the received security alerts. In some embodiments, processor 48 can extract alert severities 78 and alert times 72 from the received alert records. As described supra, alert severities 78 and alert times 72 can be used to compute respective resource severity scores 108 for cloud-based resources 26.
In step 136, processor 48 identifies attack paths 46. In embodiments herein, attack paths 46 comprise ordered sequences of cloud-based resources 26 that a malicious actor can access so as to gain unauthorized access to a given cloud service 38. As described supra, processor 48 can identify attack paths 46 by receiving the attack paths from cloud manager 28.
In step 138, processor 48 uses embodiments described hereinabove to compute respective impact scores 106 for the cloud-based resources in the received attack paths.
In step 140, processor 48 uses embodiments described hereinabove to compute respective resource severity scores 108 for the cloud-based resources in the received attack paths. As described supra, the resource severity score for a given cloud-based resource 26 is based on (a) the impact score for the cloud-based resources, (b) respective alert severities 78 for security alerts 24 that pertain to the given cloud-based resource, and (c) respective alert times 72 for security alerts 24 that pertain to the given cloud-based resource.
Finally in step 142, processor 48 prioritizes the security alerts based on the resource severity scores (i.e., that include impact scores 106, as described supra) of the cloud-based resources to which the security alerts pertain. As described supra, processor 48 can compute one or more risk levels 114 (e.g., low, medium, high, critical) for each given cloud-based resource 26, and prioritize security alerts 24 based on the risk levels of the cloud-based resources to which the security alerts pertain.
It will be appreciated that the embodiments described above are cited by way of example, and that the present invention is not limited to what has been particularly shown and described hereinabove. Rather, the scope of the present invention includes both combinations and subcombinations of the various features described hereinabove, as well as variations and modifications thereof which would occur to persons skilled in the art upon reading the foregoing description and which are not disclosed in the prior art.