US20230093332A1 - Cloud data attack detection query builder - Google Patents
Cloud data attack detection query builder Download PDFInfo
- Publication number
- US20230093332A1 US20230093332A1 US17/939,489 US202217939489A US2023093332A1 US 20230093332 A1 US20230093332 A1 US 20230093332A1 US 202217939489 A US202217939489 A US 202217939489A US 2023093332 A1 US2023093332 A1 US 2023093332A1
- Authority
- US
- United States
- Prior art keywords
- query
- cloud
- data
- signature
- resources
- 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.)
- Granted
Links
Images
Classifications
-
- 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/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/211—Schema design and management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/24569—Query processing with adaptation to specific hardware, e.g. adapted for using GPUs or SSDs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/35—Clustering; Classification
- G06F16/355—Class or cluster creation or modification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
-
- 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/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- 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/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6227—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- 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/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/083—Network architectures or network communication protocols for network security for authentication of entities using passwords
-
- 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/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/102—Entity profiles
-
- 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/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/104—Grouping of entities
-
- 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/1433—Vulnerability analysis
-
- 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/18—Network architectures or network communication protocols for network security using different networks or channels, e.g. using out of band channels
-
- 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/20—Network architectures or network communication protocols for network security for managing network security; network security policies in general
- H04L63/205—Network architectures or network communication protocols for network security for managing network security; network security policies in general involving negotiation or determination of the one or more network security mechanisms to be used, e.g. by negotiation between the client and the server or between peers or by selection according to the capabilities of the entities involved
-
- 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/034—Test or assess a computer or a system
-
- 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/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
Definitions
- the technology disclosed generally relates to cloud environments. More specifically, but not by limitation, the present disclosure relates to improved systems and methods of cloud security posture management (CSPM), cloud infrastructure entitlement management (CIEM), cloud-native application protection platform (CNAPP), and/or cloud-native configuration management database (CMDB).
- CSPM cloud security posture management
- CIEM cloud infrastructure entitlement management
- CNAPP cloud-native application protection platform
- CMDB cloud-native configuration management database
- Cloud computing provides on-demand availability of computer resources, such as data storage and compute resources, often without direct active management by users.
- a cloud environment can provide computation, software, data access, and storage services that do not require end-user knowledge of the physical location or configuration of the system that delivers the services.
- remote servers can deliver the services over a wide area network, such as the Internet, using appropriate protocols, and those services can be accessed through a web browser or any other computing component.
- cloud storage services examples include Amazon Web ServicesTM (AWS), Google Cloud PlatformTM (GCP), and Microsoft AzureTM, to name a few.
- AWS Amazon Web ServicesTM
- GCP Google Cloud PlatformTM
- AzureTM Microsoft AzureTM
- Such cloud storage services provide on-demand network access to a shared pool of configurable resources. These resources can include networks, servers, storage, applications, services, etc.
- the end-users of such cloud services often include organizations that have a need to store sensitive and/or confidential data, such as personal information, financial information, medical information. Such information can be accessed by any of a number of users through permissions and access control data assigned or otherwise defined through administrator accounts.
- the technology disclosed relates to streamlined analysis of security posture of a cloud environment.
- the disclosed technology relates to a graphical query builder for generating a subject path signature, for example representing a vulnerability path in the cloud environment.
- a computer-implemented method includes generating a graphical user interface having configurable node elements and edge elements and, in response to user input on the graphical user interface, configuring the node elements to represent entities in a subject path signature in the cloud environment and the edge elements to represent relationships between the entities in the subject path signature.
- the method also includes generating a query representing the subject path signature, executing the query to qualify a set of network paths in the cloud environment as conforming to the subject path signature, and outputting query results identifying the qualified set of network paths.
- Example 1 is a computer-implemented method for analyzing security posture of a cloud environment, the method comprising:
- Example 2 is the computer-implemented method of any or all previous examples, wherein the subject path signature comprises a subject vulnerability signature in the cloud environment.
- Example 3 is the computer-implemented method of any or all previous examples, wherein executing the query comprises executing the query to qualify one or more compute resources or storage resources as vulnerable to breach attack based on classification data conforming to the subject vulnerability signature.
- Example 4 is the computer-implemented method of any or all previous examples, wherein outputting query results comprises generating a representation of propagation of breach attack along the network paths.
- Example 5 is the computer-implemented method of any or all previous examples, wherein the node elements comprise configurable variables that define a type of network path for the subject path signature.
- Example 6 is the computer-implemented method of any or all previous examples, and further comprising a set of return data fields that define properties of the entities to return in response to the query.
- Example 7 is the computer-implemented method of any or all previous examples, and further comprising:
- Example 8 is the computer-implemented method of any or all previous examples, wherein the entities comprise one or more of:
- Example 9 is the computer-implemented method of any or all previous examples, wherein each given node display element includes a filter mechanism configured to receive user input defining a filter criterion relative to the entity represented by the given node display element.
- Example 10 is the computer-implemented method of any or all previous examples, wherein the relationships comprise at least one of permissions data or access control data, and the edge elements comprise visual links between the node elements on the graphical user interface.
- Example 11 is a computing system comprising:
- Example 12 is the computing system of any or all previous examples, wherein the subject path signature comprises a subject vulnerability signature in the cloud environment.
- Example 13 is the computing system of any or all previous examples, wherein the instructions, when executed, cause the computing system to execute the query to qualify one or more compute resources or storage resources as vulnerable to breach attack based on classification data conforming to the subject vulnerability signature.
- Example 14 is the computing system of any or all previous examples, wherein the instructions, when executed, cause the computing system to generate a representation of propagation of breach attack along the network paths.
- Example 15 is the computing system of any or all previous examples, wherein the node elements comprise configurable variables that define a type of network path for the subject path signature.
- Example 16 is the computing system of any or all previous examples, wherein the instructions, when executed, cause the computing system to generate a set of return data fields that define properties of the entities to return in response to the query.
- Example 17 is the computing system of any or all previous examples, wherein the instructions, when executed, cause the computing system to:
- Example 18 is the computing system of any or all previous examples, wherein the entities comprise one or more of:
- Example 19 is the computing system of any or all previous examples, wherein each given node display element includes a filter mechanism configured to receive user input defining a filter criterion relative to the entity represented by the given node display element.
- Example 20 is a computing system comprising:
- FIG. 1 is a block diagram illustrating one example of a cloud architecture.
- FIG. 2 is a block diagram illustrating one example of a cloud service.
- FIG. 3 is a block diagram illustrating one example of a cloud security posture analysis system.
- FIG. 4 is a block diagram illustrating one example of a deployed scanner.
- FIG. 5 is a flow diagram showing an example operation of on-boarding a cloud account and deploying one or more scanners.
- FIG. 6 illustrates one example of a user interface display representing on-boarded cloud accounts.
- FIG. 7 illustrates one example of an on-boarding user interface display.
- FIG. 8 illustrates one example of a user interface display having a dashboard representing on-boarded cloud service accounts.
- FIG. 9 is a flow diagram illustrating one example of cloud infrastructure scanning performed by a cloud scanner deployed in a cloud service.
- FIGS. 10 - 1 , 10 - 2 , 10 - 3 , and 10 - 4 (collectively referred to as FIG. 10 ) provide a flow diagram illustrating an example operation for streamlined analysis of security posture.
- FIG. 11 illustrates one example of a user interface display that facilitates user definition of a risk criterion.
- FIG. 12 illustrates one example of a user interface display that displays a set of risk signatures.
- FIG. 14 illustrates one example of a details display pane.
- FIG. 16 illustrates one example of a user interface display having a details pane that displays details for a given resource.
- FIG. 17 illustrates a user interface display that includes a visualization of access communication paths.
- FIG. 18 illustrates one example of a graphical query builder component.
- FIGS. 19 - 1 and 19 - 2 (collectively referred to as FIG. 19 ) illustrate a flow diagram of one example of generating a graphical query builder user interface.
- FIGS. 20 - 28 illustrate examples of user interface displays.
- FIG. 29 is a simplified block diagram of one example of a client device.
- FIG. 30 illustrates an example of a handheld or mobile device.
- FIG. 31 shows an example computer system.
- cloud computing environments are used by organizations or other end-users to store a wide variety of different types of information in many contexts and for many uses.
- This data can often include sensitive and/or confidential information, and can be the target for malicious activity such as acts of fraud, privacy breaches, data theft, etc. These risks can arise from individuals that are both inside the organization as well as outside the organization.
- Cloud environments often include security infrastructure to enforce access control, data loss prevention, or other processes to secure data from potential vulnerabilities.
- security infrastructures it can be difficult for an organization to understand the data posture and breadth of access to the data stored in the cloud in the organization's cloud account. In other words, it can be difficult to identify which users have access to which data, and which data may be exposed to malicious or otherwise unauthorized users, both inside or outside the organization.
- the present system is directed to a cloud security posture analysis system configured to analyze and take action on the security posture of a cloud account.
- the system discovers sensitive data among the cloud storage resources and discovers access patterns to the sensitive data.
- the results can be used to identify security vulnerabilities to understand the data security posture, detect and remediate the security vulnerabilities, and to prevent future breaches to sensitive data.
- the system provides real-time visibility and control on the control data infrastructure by discovering resources, sensitive data, and access paths, and tracking resource configuration, deep context and trust relationships in real-time as a graph or other visualization. It is noted that the technology disclosed herein can depict all graph embodiments in equivalent and analogous tabular formats or other visualization formats based on the data and logic disclosed herein.
- the system can further score breach paths based on sensitivity, volume, and/or permissions to show an attack surface and perform constant time scanning, by deploying scanners locally within the cloud account.
- the scanners execute in the cloud service itself, with metadata being returned indicative of the analysis.
- an organization's cloud data does not leave the organization's cloud account. Rather, the data can be scanned in place and metadata sent for analysis by the cloud security posture analysis system, which further enhances data security.
- cloud services 108 - 1 , 108 - 2 , 108 -N can include the same type of cloud service, or can be different types of cloud services, and can be accessed by any of a number of different actors 104 .
- actors 104 include users 110 , administrators 112 , developers 114 , organizations 116 , and/or applications 118 .
- other actors 120 can access cloud environment 102 as well.
- Architecture 100 includes a cloud security posture analysis system 122 configured to access cloud services 108 to identify and analyze cloud security posture data. Examples of system 122 are discussed in further detail below. Briefly, however, system 122 is configured to access cloud services 108 and identify connected resources, entities, actors, etc. within those cloud services, and to identify risks and violations against access to sensitive information. As shown in FIG. 1 , system 122 can reside within cloud environment 102 or outside cloud environment 102 , as represented by the dashed box in FIG. 1 . Of course, system 122 can be distributed across multiple items inside and/or outside cloud environment 102 .
- Users 110 , administrators 112 , developers 114 , or any other actors 104 can interact with cloud environment 102 through user interface displays 123 having user interface mechanisms 124 .
- a user can interact with user interface displays 123 provided on a user device (such as a mobile device, a laptop computer, a desktop computer, etc.) either directly or over network 106 .
- Cloud environment 102 can include other items 125 as well.
- FIG. 2 is a block diagram illustrating one example of cloud service 108 - 1 .
- cloud service 108 - 1 will be discussed in the context of an account within AWS.
- other types of cloud services and providers are within the scope of the present disclosure.
- Cloud service 108 - 1 includes a plurality of resources 126 and an access management and control system 128 configured to manage and control access to resources 126 by actors 104 .
- Resources 126 include compute resources 130 , storage resources 132 , and can include other resources 134 .
- Compute resources 130 include a plurality of individual compute resources 130 - 1 , 130 - 2 , 130 -N, which can be the same and/or different types of compute resources.
- compute resources 130 can include elastic compute resources, such as elastic compute cloud (AWS EC2) resources, AWS Lambda, etc.
- An elastic compute cloud is a cloud computing service designed to provide virtual machines called instances, where users can select an instance with a desired amount of computing resources, such as the number and type of CPUs, memory and local storage.
- An EC2 resource allows users to create and run compute instances on AWS, and can use familiar operating systems like Linux, Windows, etc. Users can select an instance type based on the memory and computing requirements needed for the application or software to be run on the instance.
- Storage resources 132 are accessible through compute resources 130 , and can include a plurality of storage resources 132 - 1 , 132 - 2 , 132 -N, which can be the same and/or different types of storage resources.
- a storage resource 132 can be defined based on object storage.
- AWS Simple Storage Service (S3) provides highly-scalable cloud object storage with a simple web service interface.
- An S3 object can contain both data and metadata, and objects can reside in containers called buckets. Each bucket can be identified by a unique user-specified key or file name.
- a bucket can be a simple flat folder without a file system hierarchy.
- a bucket can be viewed as a container (e.g., folder) for objects (e.g., files) stored in the S3 storage resource.
- Compute resources 130 can access or otherwise interact with storage resources 132 through network communication paths based on permissions data 136 and/or access control data 138 .
- System 128 illustratively includes identity and access management (IAM) functionality that controls access to cloud service 108 - 1 using entities (e.g., IAM entities) provided by the cloud computing platform.
- IAM identity and access management
- Permissions data 136 includes policies 140 and can include other permissions data 142 .
- Access control data 138 includes identities 144 and can include other access control data 146 as well. Examples of identities 144 include, but are not limited to, users, groups, roles, etc.
- an IAM user is an entity that is created in the AWS service and represents a person or service who uses the IAM user to interact with the cloud service.
- An IAM user provides the ability to sign into the AWS management console for interactive tasks and to make programmatic requests to AWS services using the API, and includes a name, password, and access keys to be used with the API. Permissions can be granted to the IAM user to make the IAM user a member of a user group with attached permission policies.
- An IAM user group is a collection of IAM users with specified permissions. Use of IAM groups can make management of permissions easier for those users.
- An IAM role in AWS is an IAM identity that has specific permissions, and has some similarities to an IAM user in that the IAM role is an AWS identity with permission policies that determine what the identity can and cannot do in AWS. However, instead of being uniquely associated with one person, a role is intended to be assumable by anyone who needs it. Roles can be used to delegate access to users, applications, and/or services that don't normally have access to the AWS resources. Roles can be used by IAM users in a same AWS account and/or in different AWS accounts than the role.
- roles can be used by compute resources 130 , such as EC2 resources.
- a service role is a role assumed by a service to perform actions in an account on behalf of a user.
- Service roles include permissions required for the service to access the resources needed by the service.
- Service roles can vary from service to service.
- a service role for an EC2 instance for example, is a special type of service role that an application running on an EC2 instance can assume to perform actions.
- Policies 140 can include identity-based policies that are attached to IAM identities can grant permissions to the identity. Policies 140 can also include resource-based policies that are attached to resources 126 . Examples include S3 bucket policies and IAM role trust policies.
- An example trust policy includes a JSON policy document that defines the principles that are trusted to assume a role.
- a policy is an object that, when associated with an identity or resource, defines permissions of the identity or resource. AWS evaluates these policies when an IAM principal user or a role) makes a request. Permissions in the policy determine whether the request is allowed or denied.
- Policies are often stored as JSON documents that are attached to the IAM identities (user, groups of users, role).
- a permissions boundary is a managed policy for an IAM identity that defines the maximum permissions that the identity-based policies can grant to an entity, but does not grant the permissions.
- access control lists ACLs control which principles in other accounts can access the resource to which the ACL is attached.
- ACLs can be similar to resource-based policies.
- the terms “roles” and “policies” are used interchangeably.
- Cloud service 108 - 1 includes one or more deployed cloud scanners 148 , and can include other items 150 as well.
- Cloud scanner 148 run locally on the cloud-based services and the server systems, and can utilize elastic compute resources, such as, but not limited to, AWS Lambda resources.
- Cloud scanner 148 is configured to access and scan the cloud service 108 - 1 on which the scanner is deployed. Examples are discussed in further detail below. Briefly, however, a scanner accesses the data stored in storage resources 132 , permissions data 136 , and access control data 138 to identify particular data patterns (such as, but not limited to, sensitive string patterns) and traverse or trace network communication paths between pairs of compute resources 130 and storage resources 132 .
- the results of the scanner can be utilized to identify subject vulnerabilities, such as resources vulnerable to a breach attack, and to construct a cloud attack surface graph or other data structure that depicts propagation of a breach attack along the network communication paths.
- a directional graph can be built to capture nodes that represent the resources and labels that are assigned for search and retrieval purposes.
- a label can mark the node as a database or S3 resource, actors as users, administrators, developers, etc. Relationships between the nodes are created using information available from the cloud infrastructure configuration. For example, using the configuration information, system 122 can determine that a resource belongs to a given account and create a relationship between the policy attached to a resource and/or identify the roles that can be taken up by a user.
- FIG. 3 is a block diagram illustrating one example of cloud security posture analysis system 122 .
- system 122 can be deployed in cloud environment 102 and/or access cloud environment 102 through network 106 shown in FIG. 1 .
- System 122 includes a cloud account onboarding component 202 , a cloud scanner deployment component 204 , a cloud data scanning and analysis system 206 , a visualization system 208 , and a data store 210 .
- System 122 can also include one or more processors or servers 212 , and can include other items 214 as well.
- Cloud data scanning and analysis system 206 includes a metadata ingestion component 216 configured to receive the metadata generated by the deployed cloud scanner(s) 148 .
- System 206 also includes a query engine 218 , a policy engine 220 , a breach vulnerability evaluation component 222 , one or more application programming interfaces (APIs) 224 , a cloud security issue identification component 226 , a cloud security issue prioritization component 228 , historical resource state analysis component 230 , and can include other items 232 as well.
- APIs application programming interfaces
- Query engine 218 is configured to execute queries against the received metadata and generated cloud security issue data.
- Policy engine 220 can execute security policies against the cloud data and breach vulnerability evaluation component 222 is configured to evaluate potential breach vulnerabilities in the cloud service.
- APIs 224 are exposed to users, such as administrators, to interact with system 122 to access the cloud security posture data.
- Component 226 is configured to identify cloud security issues and component 228 can prioritize the identified cloud security issues based on any of a number of criteria.
- Historical resource state analysis component 230 is configured to analyze a history of states of resources 126 .
- Component 230 includes a triggering component 234 configured to detect a trigger that to perform historical resource state analysis.
- Triggering component 234 is configured to identify an event that triggers component 230 to analyze the state of resources 126 .
- the event can be, for example, a user input to selectively trigger the analysis, or a detected event such as the occurrence of a time period, an update to a resource, etc. Accordingly, historical resource state can be tracked automatically and/or in response to user input.
- Component 230 includes a resource configuration change tracking component 236 configured to track changes in the configuration of resources 126 .
- Component 230 also includes an anomalous state detection component 238 , and can include other items 240 as well.
- Component 238 is configured to detect the occurrence of anomalous states in resources 126 .
- a resource anomaly can be identified where a given resource has an unexpected state, such as a difference from other similar resources identified in the cloud service.
- Visualization system 208 is configured to generate visualizations of the cloud security posture from system 206 .
- system 208 includes a user interface component 242 configured to generate a user interface for a user, such as an administrator.
- component 242 includes a web interface generator 244 configured to generate web interfaces that can be displayed in a web browser on a client device.
- Cloud attack surface graph generator component 248 is configured to generate a surface graph or other representation of vulnerabilities of resources to a breach attack.
- the representation of vulnerabilities can include a cloud attack surface map that graphically depicts propagation of a breach attack along network communication paths as edges between nodes that represent the corresponding resources.
- graphical query builder component 250 is configured to generate a graphical user interface with user input mechanisms configured to receive user inputs. Based on the user inputs, graphical query builder component 250 generates a query against the resource graphs generated by resource graph generator component 246 .
- an example query represents a subject path signature in the identified network communication paths between pairs of compute resources and storage resources which, for example, are identified based on permissions data and access control data.
- Data store 210 stores the metadata 252 obtained by metadata ingestion component 216 , sensitive data profiles 254 , queries 256 generated by graphical query builder component 250 , and can store other items 257 as well. Examples of sensitive data profiles are discussed in further detail below. Briefly, however, sensitive data profiles 254 can identify data patterns that are categorized as sensitive or meeting some predefined pattern of interest. Pattern matching can be performed based on the target data profiles. For example, pattern matching can be performed to identify social security numbers, credit card numbers, other personal data, medical information, to name a few. In one example, artificial intelligence (AI) is utilized to perform named entity recognition (e.g., natural language processing modules can identify sensitive data, in various languages, representing names, company names, locations, etc.).
- named entity recognition e.g., natural language processing modules can identify sensitive data, in various languages, representing names, company names, locations, etc.
- FIG. 4 is a block diagram illustrating one example of a deployed scanner 148 .
- Scanner 148 includes a resource identification component 262 , a permissions data identification component 264 , an access control data identification component 266 , a cloud infrastructure scanning component 268 , a cloud data scanning component 270 , a metadata output component 272 , and can include other items 274 as well.
- Resource identification component 262 is configured to identify the resources 126 within cloud service 108 - 1 (and/or other cloud services 108 ) and to generate corresponding metadata that identifies these resources.
- Permissions data identification component 264 identifies the permissions data 136 and access control data identification component 266 identifies access control data 138 .
- Cloud infrastructure scanning component 268 scans the infrastructure of cloud service 108 to identify the relationships between resources 130 and 132 and cloud data scanning component 270 scans the actual data stored in storage resources 132 .
- the generated metadata is output by component 272 to cloud security posture analysis system 122 .
- FIG. 5 is a flow diagram 300 showing an example operation of system 122 in on-boarding a cloud account and deploying one or more scanners.
- a request to on-board a cloud service to cloud security posture analysis system 122 is receives.
- an administrator can submit a request to on-board cloud service 108 - 1 .
- FIG. 6 illustrates one example of a user interface display 304 provided for an administrator.
- Display 304 includes a display pane 306 including a number of display elements representing cloud accounts that have been on-boarded to system 122 .
- Display 304 includes a user interface control 308 that can be actuated to submit an on-boarding request at block 302 .
- FIG. 7 illustrates one example of an on-boarding user interface display 324 that is displayed in response to user actuation of control 308 .
- Display 324 includes a user interface mechanism 326 configured to receive input to select or otherwise define a particular cloud account provider.
- mechanism 326 includes a plurality of selectable controls representing different cloud providers including, but not limited to, AWS, GCP, Azure.
- Display 324 includes a user input mechanism 328 configured to receive input defining a cloud account identifier, and an account nickname.
- User input mechanisms 330 allow the user to define other parameters for the on-boarding.
- a user input mechanism 332 is actuated to generate a cloud formation template, or other template, to be used in the on-boarding process based on the selected cloud account provider.
- each entry includes a display name 334 , an account ID 336 , a data store count 338 , and a risk count 340 .
- Data store count 338 includes an indication of the number of data stores in the cloud account and the risk count 340 includes an indication of a number if identified security risks.
- a field 342 indicates the last scan status, such as whether the last scan has completed or whether the scanner is currently in progress or currently scanning.
- a field 344 indicates the time at which the last scan was completed.
- the cloud account is authorized using roles.
- administrator access can be defined for the cloud scanner using IAM roles.
- One or more cloud scanners are defined at block 350 and can include, but are not limited to, cloud infrastructure scanners 352 , cloud data scanners 354 , vulnerability scanners 356 , or other scanners 358 .
- the cloud scanners are deployed to run locally on the cloud service, such as illustrated in FIG. 2 .
- the cloud scanners discover resources at block 362 , scan data in the resources at block 364 , and can find vulnerabilities at block 366 .
- a vulnerability can identified based on finding a predefined risk signature in the cloud service resources.
- the risk signatures can be queried upon, and define expected behavior within the cloud service and locate anomalies based on this data.
- operation returns to block 310 .
- the scan results from the deployed scanners are received.
- the scan results include metadata (block 372 ) generated by the scanners running locally on the cloud service.
- one or more actions are performed based on the scan results.
- the action includes security issue detection. For example, a breach risk on a particular resource (such as a storage resource storing sensitive data) is identified.
- security issue prioritization can be performed to prioritize the detected security issues. Examples of security issue detection and prioritization are discussed in further detail below. Briefly, security issues can be detected by executing a query against the scan results using vulnerability or risk signatures. The risk signatures identify criterion such as accessibility of the resources, access and/or permissions between resources, and data types in accessed data stores. Further, each risk signature can be scored and prioritized based impact. For example, a risk signature can include weights indicative of likelihood of occurrence of a breach and impact if the breach occurs.
- the action can further include providing user interfaces at block 380 that indicate the scan status (block 382 ), a cloud infrastructure representation (such as a map or graph) (block 384 ), and/or a cloud attack surface representation (map or graph) (block 386 ).
- the cloud attack surface representation can visualize vulnerabilities.
- Remedial actions can be taken at block 388 , such as creating a ticket (block 390 ) for a developer or other user to address the security issues.
- other actions can be taken at block 392 .
- the system can make adjustments to cloud account settings/configurations to address/remedy the security issues.
- FIG. 8 illustrates one example of a user interface display 400 , that can be displayed at block 376 .
- Display 400 provides a dashboard for a user which provides an overview of on-boarded cloud service accounts.
- the dashboard identifies a number of users 402 , a number of assets 404 , a number of data stores 406 , and a number of accounts 408 .
- a data sensitivity pane 410 includes a display element 412 that identifies a number of the data stores that include sensitive data, a display element 413 that identifies a number of users with access to the sensitive data, a display element 414 that identifies a number of resources having sensitive data, and a display element 416 that identifies a number of risks on the data stores having sensitive data. Further, graphs or charts can be generated to identify those risks based on factors such as status (display element 418 ) or impact (display element 420 ).
- Display element 420 illustratively categorizes the risks based on impact as well as the likelihood of occurrence of those risks. Risk categorization is discussed in further detail below. Briefly, however, display element 420 stratifies one or more of breach likelihood scores or breach impact scores categories representing different levels of severity, such as high, medium, and low severity levels. In one example, display element 420 is color coded based on the degree of impact of the risk (e.g., high impact is highlighted in red, medium impact is highlighted in yellow, and low impact is highlighted in green).
- FIG. 9 is a flow diagram 450 illustrating one example of cloud infrastructure scanning performed by cloud scanner 148 deployed in cloud service 108 - 1 .
- an agent-less scanner is executed on the cloud service.
- the scanner can perform constant time scanning at block 454 .
- An example constant time scanner runs an algorithm in which the running time does not depend, or has little dependence on, the size of the input.
- the scanner obtains a stream of bytes and looks for a multiplicity of patterns (one hundred patterns, two hundred patterns, three hundred patterns, etc.) in one pass through the stream of bytes, with the same or substantially similar performance.
- cloud security posture analysis 122 receives updates to the security posture data as changes are made to the cloud services.
- the scanner discovers the compute resources 130 and, at block 460 , the storage resources 132 .
- Sensitive data can be discovered at block 462 .
- the agent-less scanner does not require a proxy or agent running in the cloud service, and can utilize server-less containers and resources to scan the documents and detect sensitive data.
- the data can be accessed using APIs associated with the scanners.
- the sensitive data can be identified using pattern matching, such as by querying the data using predefined risk signatures.
- access paths between the resources are discovered based on permissions data 136 (block 466 ), and/or access control data 138 (block 468 ).
- a rule processing engine such as using JSON metadata, can be utilized to analyze the roles and policies, and can build access relationships between the nodes representing the resources.
- the policies can be decoded to get access type (allow, deny, etc.) and the policy can be placed in a node to link from a source to target node and create the access relationship.
- metadata indicative of the scanning results is generated and outputted by metadata output component 272 .
- FIGS. 10 - 1 , 10 - 2 , 10 - 3 , and 10 - 4 provide a flow diagram 500 illustrating an example operation for streamlined analysis of security posture.
- FIG. 10 will be discussed in the context of cloud security posture analysis system 122 illustrated in FIG. 3 .
- Security posture can be analyzed by system 206 using metadata 252 to return from the cloud service scanners.
- permissions data and access control data are accessed for pairs of compute and storage resources.
- the permissions and access control data can include identity-based permissions at block 504 , resource-based permissions at block 506 , or other permissions as well.
- network communication paths between the pairs of resources are traced based on the permissions and access control data.
- the permissions and access control data can identify which paths have read access from a compute resource from a particular compute resource to a particular storage resource, as represented at block 510 .
- paths with write access from compute to storage resources can be identified at block 512
- paths with synchronization access between storage resources can be identified at block 514 .
- other types of paths can be identified as well.
- a directional graph is constructed to captures all resources as nodes, with labels assigned to the nodes for search and retrieval.
- labels can mark a node as a database or S3 resource.
- labels can represent actors as normal users, admins, developers, etc.
- known relationships are identified between the nodes, for example using the information available from the cloud infrastructure configuration (e.g., defining a resource belongs to a given account).
- a relationship can be created between the policy attached to a resource, and/or the roles that can be taken up by a user.
- a rule processing engine e.g., using JavaScript Object Notation (JSON) metadata
- JSON JavaScript Object Notation
- the analysis can be used to decode the policy to get the access type (e.g., allow, deny, etc.), and the placement of the policy in a node can be used to link from the source node to target node and create the access relationship (e.g., allow, deny, etc.).
- role definitions can be analyzed to find the access type.
- the graph can therefore include various types of nodes, updated to reflect direct relationships.
- An iterative process can be performed to find transitive relationships between resources (e.g., resource access for a given entity/actors/resources).
- resources e.g., resource access for a given entity/actors/resources.
- the process identifies all incoming access relationships of N 1 .
- the access types targeting node N 1 are analyzed and updated.
- the relationships identified to access N 1 the relationships to N 2 are updated, and a new set of access relationships are identified to N 2 through N 1 .
- the process continues to proceed to identify all such relationships with the goal of creating relationships to all nodes that have sensitive data.
- block 508 identifies “access types” which include normalized forms of access permissions.
- an access type “can read” can be defined to include a plurality of different read objects within AWS (e.g., defined in terms of allowable APIs).
- the AWS permissions “PutObject” and “PutObjectAcl” are transformed to a normalized access type “can write” within system 122 .
- sensitivity classification data is accessed for objects in the storage resources.
- the sensitivity classification data can include sensitive data profiles at block 518 .
- crawlers can be selected for structured and/or unstructured databases.
- Crawling the databases can include executing a snapshot of structured databases, creating a dump of structured databases, and scanning the dump for sensitivity classification, as represented at block 524 .
- a subset of the pairs of resources are qualified as vulnerable to a breach attack.
- the qualification can be based on the permissions data at block 528 , the access control data at block 530 , and/or risk criterion at block 532 .
- the risk criterion can include any of a wide variety of different types of criteria.
- a risk criterion can indicate a variety of access to the resources at block 534 .
- One example includes a number of different roles with access to the resource, as represented at block 536 .
- a risk criterion can indicate a width of configured access to the resources, at block 538 .
- the width of configured can include a number of workloads with access to the resources (block 540 ) and/or a type of workload with access to the resources (block 542 ).
- a risk criterion can also indicate a number of users with access to the resources at block 544 , a volume of sensitive data in the resources at block 546 , and/or types of categories of sensitive data at block 548 . Of course, other types of risk criterion can be utilized as well.
- the risk criterion can be defined based on user input.
- FIG. 11 illustrates one example of a user interface display 550 that facilitates user definition of risk criterion.
- Display 550 includes a set of user input mechanisms that allows a user to define likelihood weights, represented at numeral 552 , and impact weights, represented at 554 .
- a first user input mechanism 556 allows a user to set a weight that influences a likelihood score for variations in the variety of access to the resources (e.g., block 534 ).
- controls 558 , 560 , and 562 allow a user to set weights that influence likelihood scores for a width of configured access, a number of principles or users with access, and the type of workloads with access, represented by reference numerals 558 , 560 , and 562 , respectively.
- controls 563 , 564 , 566 , 568 , and 570 allow a user to set weights on impact scores for risk criterion associated with a volume of sensitive data, a type of sensitive data, and categories of sensitive data (i.e., legal data, medical data, financial data), respectively.
- a subject vulnerability signature illustratively includes a risk signature indicative of a risk of vulnerability or breach.
- FIG. 12 illustrates an example user interface display 574 that can be accessed from display 304 illustrated in FIG. 6 , and displays a set of risk signatures.
- the risk signatures can be predefined and/or user-defined.
- display 574 can include user input mechanisms that allow a user to add, delete, or modify a set of risk signatures 576 .
- each risk signature defines a set of criteria that the resources and data in cloud service 108 - 1 can be queries upon to identify indications of vulnerabilities in the cloud service.
- the risk signatures in FIG. 12 include a name field 578 , a unique risk signature ID field 580 , and a description identified in a description field 582 .
- a result header field 584 identifies types of data that will be provided in the results when the risk signature is matched.
- a resource field 586 identifies the type of resource, and a tags field 588 identifies tags that label or otherwise identify the risk signature.
- a likelihood factor field 590 indicates a likelihood factor that is assigned to the risk signature and an impact factor signature 592 indicates an impact factor assigned to the risk signature.
- the likelihood factor indicates a likelihood assigned to occurrence of the risk signature and the impact factor assigns an impact to the cloud service assigned to the occurrence of the risk signature.
- a likelihood factor of ten indicates that the vulnerability is likely to occur if the risk signature is identified in the cloud posture data, whereas a likelihood factor of one indicates a low likelihood.
- an impact factor of ten indicates that the vulnerability is considered to have a high impact
- an impact factor of one indicates the vulnerability is considered to have a low impact on the cloud service.
- a risk signature can be defined based upon any of a wide variety of criteria.
- a risk signature can identify one or more configurations or settings of compute resources 130 . Examples include, but are not limited to, a configuration that indicates whether the compute resource provides accessibility to a particular type of data, such as confidential data, medical data, financial data, personal data, or any other type of private and/or sensitive content.
- a risk signature indicates that a compute resource is publicly accessible, includes a public Internet protocol (IP) address, or has IP forwarding enabled.
- IP Internet protocol
- a risk signature indicates that a compute resource has monitoring disabled, has no IAM role assigned to the compute resource, has backup disabled, data encryption disabled, and/or a low or short backup retention policy.
- a risk signature can identify password policies set for the compute resource. For instance, a risk signature can indicate a lack of minimum password policies, such as no minimum password length, no requirement of symbols, lowercase letters, uppercase letters, numbers, or password reuse policy. Also, a risk criterion can indicate a location of the compute resource, such as whether the compute resource is located outside of a particular region.
- Risk signatures can also indicate configurations and/or settings of storage resources 132 .
- the configurations and settings can indicate authentication or permissions enforced by the storage resource, such as whether authentication is required for read, write, delete, synchronization, or any other operation.
- the risk signature can indicate whether multi-factor authentication is disabled for the storage resource, as well as a breadth of permissions grants (e.g., whether all authenticated users are granted permissions within the storage resource).
- a risk signature can indicate whether encryption is enabled by default, a password policy enforced by the storage resource, whether the storage resource is anonymously accessible, publicly accessible, has a key management service disabled, has logging disabled, life cycle management disabled, whether the storage resource is utilized for website hosting, has geo-restriction disabled, or has backup functionality disabled. Also, the risk signature can indicate a type of data stored by the storage resource, such as the examples discussed above.
- the first subset of storage resources identified at block 572 are based on determining that the storage resources satisfy a risk signature of containing private and/or sensitive content, as represented at block 594 .
- the subject vulnerability signature is based on a prevalence of accessibility of a given role within a network exceeding a set threshold, as represented at block 596 .
- the given role can include principles (block 598 ), workloads (block 600 ), a cloud environment (block 602 ), a company (block 604 ), or other roles (block 606 ).
- the subject vulnerability signature can indicate that the storage resources are accessible by more than a threshold number of users, as represented at block 608 . Also, the subject vulnerability signature can indicate that the storage resources are accessible by a vulnerable compute resource that is publicly accessible, as represented at block 610 . This determination can be based on identifying that the compute resource is accessible through a public portal, at block 612 and/or is accessible by users outside a given company network at block 614 .
- the subject vulnerability signature can indicate that the storage resources are accessible by inactive users.
- inactive users can include users who have not accessed the resources within a threshold time, at block 618 .
- a second subset of storage resources are identified that synchronization data from the first subset.
- a particular compute resource is determined to have anomalous access to a given storage resource. The identification of anomalous access can be based on a comparison of a network communication path of the particular compute resource against paths of other compute resources. For example, the paths of other compute resources can be used to identify an expected communication path for the particular compute resource and/or expected permission for the particular resource. Then, if a difference above a threshold is identified, the particular compute resource is identified as anomalous.
- a representation of the propagation of the breach attack along the network communication paths is generated.
- the representation includes a cloud attack surface map, as represented at block 626 .
- An example cloud attack surface map includes nodes representing the resources (block 628 ) and edges representing the breach attack propagation (block 630 ).
- the map graphically depicts the subset of storage resources (block 632 ) and the subject vulnerability signature (block 634 ). Also, the map can graphically depict the anomalous access to the particular compute resource (block 636 ). For example, public accesses to the subset of storage resources can be graphically depicted at block 638 and storage resources that grant external access and/or resources that are initialized from outside a particular jurisdiction can be identified at blocks 640 and 642 , respectively.
- FIG. 13 illustrates one example of a user interface display 650 that graphically depicts vulnerability risks, in tabular form.
- display 650 renders the data discussed with respect to the cloud attack surface at block 626 of FIG. 10 in a table.
- Display 650 includes a user input mechanism 652 to specify a time range for visualizing the risk, and includes a description 654 , a resource identifier 656 , and an account identifier 658 for the cloud service account.
- the display can also indicate the impact 660 and likelihood 662 of the vulnerability risk, as well as signature identifier 664 that identifies the particular risk signature that was matched.
- Display 650 also includes a details control 666 that is actuatable to display details of the identified risk.
- a details display pane 668 is illustrated in FIG. 14 .
- Display pane 668 shows a description of the risk at display element 670 and an indication 672 of the query utilized to match the risk signature.
- a query is received for execution against the results of the metadata analysis.
- a query represents a subject path signature, such as by specifying a subject vulnerability at block 678 .
- the query can request identification of resources with anomalous access.
- the query is generated by graphical query builder component 250 illustrated above in FIG. 3 .
- the query can be obtained from data store 210 (e.g., queries 256 ), or the query can be obtained directly from graphical query builder component 250 as the query is generated based on user input. Operation of graphical query builder component 250 is discussed in further detail below.
- the query is executed against the cloud attack surface map.
- the cloud attack surface map can be filtered to identify results that match the query.
- the query results (e.g., the filtered map) is returned at block 684 .
- the filtered results can include identifying a subset of storage resources that match the query (block 686 ) and/or resources having anomalous access at block 688 .
- the cloud attack surface graph is graphically filtered based on the results at block 690 .
- the graph can be filtered based on applications running on the pairs of resources in the identified subset (block 692 ).
- Breach likelihood scores and breach impact scores are determined for the resources at block 694 , and the scores can be depicted on the cloud attack surface map at block 696 .
- the scores are graphically categorized or stratified at block 698 into high, medium, or low risk. One example is discussed above with respect to FIG. 8 .
- FIG. 15 illustrates one example of a user interface display 700 configured to graphically depict breach likelihood and impact scores.
- Display 700 identifies data stores in storage resources 132 that are identified as meeting a subject vulnerability. Each entry shown in display 700 identifies a type 702 of the resource, an impact score 704 , a likelihood score 706 , a resource identifier 708 that identifies the resource, and a cloud service identifier 710 that identifies the particular cloud resource.
- display 700 shows details for the given resource in a display pane 714 , as shown in FIG. 16 .
- Display pane 714 can show users 716 that have access to the resource, roles 718 that have access to the resource, other resources 720 that have access to the resource, as well as external users 722 or external roles 724 . Display pane 714 also shows the access type 726 .
- FIG. 17 illustrates a user interface display 800 that includes a visualization of access communication paths.
- the visualization in FIG. 17 can be rendered as a cloud infrastructure graph (e.g., map) that shows relationships between compute and storage resources and/or mappings between users, roles, and resources, based on the permissions data and the access control data.
- the visualization can be augmented using sensitivity classification data to represent propagation of breach attack along communication paths.
- the visualization in FIG. 17 can be configured to render the subset(s) of resources identified in FIG. 10 . That is, display 800 can include the cloud attack surface map at block 626 .
- nodes 802 represent compute resources and nodes 804 represent storage resources.
- the storage resources include data stores or buckets within a particular cloud service.
- Nodes 806 represent roles and/or users.
- the links (e.g., access paths) or edges 808 between nodes 802 and 806 represent that compute resources that can access the particular roles represented by nodes 806 .
- the edges or links 810 represent the storage resources that can be accessed by the particular roles or users represented by nodes 806 .
- display elements can be rendered along, or otherwise visually associated with, the edges 808 and/or 810 , to identify and graphically depict the propagation of breach attack.
- vulnerability display elements can be rendered in association with edges 808 and/or 810 to identify that a subject vulnerability signature (e.g., one or more risk signatures shown in FIG. 12 ) has been identified in the data, based on querying the permissions and access control data using the subject vulnerability signature.
- display element 809 represents a risk signature between nodes 803 and 812
- display element 811 represents (such as by including a description, icon, label, etc.) a risk signature between nodes 812 and 822 .
- Each display element 809 , 811 can represent (such as by including a description, icon, label, etc.) corresponding likelihood and impact scores, can be actuatable to render details of the subject vulnerability, such as in a display pane on display 800 .
- the details can include which risk signature has been matched, which sensitive data is at risk, etc.
- the graph can be interactive at a plurality of different resolutions or levels. For example, a user can interact with the graph to zoom into a specific subset, e.g., based on cloud vendor concepts of proximity (regions, virtual private clouds (VPCs), subnets, etc.).
- Node 812 includes an expand actuator 814 that is actuatable to expand the display to show additional details of the roles, role groups, and/or users represented by node 812 .
- the graph includes one or more filter mechanisms configured to filter the graph data by logical properties, such as names, values of various fields, IP addresses, etc.
- a free form search box 815 is configured to receive search terms and filter out all resources (e.g., by removing display of those resources) except those resources matching the search terms.
- the search terms include a subject vulnerability signature (e.g., containing private and sensitive content, public accessibility, accessibility by a particular user and/or role, particular applications running on the resources, access types, etc.).
- An input mechanism 817 is configured to receive a temporal filter or search criterion.
- a filter criterion is entered by a user to represent at least one of a creation time or date of computer resources and storage resources.
- a query can be entered specifying at least one temporal period, wherein the cloud infrastructure map is updated to graphically return at least one prior state (e.g., a permissions state, an access control state, and/or a sensitivity data classification state) of compute resources and storage resources based on the temporal period.
- a checkbox (not shown in FIG. 17 , and which can be global to the diagram) provides the ability to toggle whether or not direct neighbors of the matching resources are also displayed, even if those neighbors themselves don't match the search terms. This allows users to search for specific resources and immediately visualize all entities that have access to the searched resources.
- PII personally identifiable information
- the graph renders resources that have access to that PII.
- the graph can show associated data and metadata (e.g., properties extracted from cloud APIs, properties derived such as presence of sensitive data, access paths, etc.). This data and metadata can be shown on a panel to the left or right of the diagram.
- user can actuate user interface controls to collapse/expand this panel.
- the panel remains collapsed or expanded until changed, even across different searches and login sessions.
- the display can group properties in related categories (e.g., summary, all metadata retrieved from the cloud, all metadata derived, local annotations, etc.), and the diagram can be filtered (such as by using the free form search bar mentioned above) by metadata such as tags, applications running on them, identified owners, time since created, etc.).
- the state of the resources can be shown as of a user defined date or time.
- a calendar component can allow users to select a particular date to visualize historical state data as of that particular date.
- nodes 804 representing the storage resources are also actuatable to show additional details.
- node 822 includes an actuator 824 that is actuatable to display a view of the constituents of the storage resource represented by node 822 .
- One or more of the elements are further actuatable to show additional details of the constituent.
- FIG. 18 illustrates one example of graphical query builder component 250 .
- Graphical query builder component 250 includes a graphical user interface generator 902 , a user input detector 904 , a filter criterion generator 906 , a return data field generator 908 , and a query preview generator 910 .
- Component 250 can include other items 912 as well.
- Graphical user interface generator 902 includes a node element generator 914 configured to generate node elements in a graphical user interface.
- the node elements represent entities in a subject path signature defined by the query being generated by component 250 .
- Generator 902 also includes an edge element generator 916 configured to generate edge elements between the node elements.
- the edge elements represent relationships between the entities represented by respective node elements.
- the node display elements and edge display elements represent entities, and relationships between the entities, in a subject path signature.
- the subject path signature is used to define a query against a set of network communication paths identified in the cloud environment. Examples of identifying network communication paths is discussed above with respect to FIG. 10 .
- Graphical user interface generator 902 also includes a preview pane generator 918 , a results pane generator 920 , a display device controller 922 , and can include other items 924 as well.
- Preview pane generator 918 generates a display pane that renders a preview representation of the query defined by the node elements and display elements.
- Results pane generator 920 is configured to generate a results pane on the graphical user interface that displays the query results in response to execution of the query.
- Display device controller 922 is configured to generate control signals to control a display device to render the graphical user interface. Examples of graphical user interfaces are described in further detail below.
- Filter criterion generator 906 is configured to generate filter criterion relative to the entities and relationships represented by the node and edge display elements. A filter criterion is utilized to filter the results for the entities and relationships returned through the query.
- Query preview generator 910 is configured to generate a query preview that provide a preview representation, such as a serialized representation of the query.
- the preview pane generated by preview pane generator 918 is configured to render the preview representation of the query, and can include input mechanisms for generating the filter criterion and/or the return data fields.
- FIGS. 19 - 1 and 19 - 2 (collectively referred to as FIG. 19 ) illustrate a flow diagram 930 of one example of generating a graphical query builder user interface that receives user inputs to generate and execute a query.
- FIG. 19 will be described in the context of graphical query builder component 250 and example graphical user interface displays illustrated in FIGS. 20 - 28 .
- a graphical user interface is generated for creating a new query and/or modifying an existing query (e.g., a query 256 stored in data store 210 ).
- the graphical user interface includes display elements (block 934 ), user input mechanisms (block 936 ), and a preview pane (block 938 ).
- Display elements include node display elements (block 940 ), edge display elements (block 941 ), and can include other display elements as well.
- each edge display element includes a visual link that connect two or more node display element and defines a relationship between the entities represented by the two or more node display elements.
- the query definition can be retrieved from storage and the display elements on the graphical user interface recreated based on the query definition.
- An entity represented by a node display element corresponds to a location in the network path in the cloud environment. Accordingly, the entity can include any of a variety of constituents in the cloud environment. For example, when network communication paths are identified, such as by tracing paths between pairs of resources based on permissions and access control data (e.g., block 508 in FIG. 10 ), the entities can include locations within the network communication paths.
- a node display element can also include configurable variables, as represented at block 958 .
- the configurable variables can represent parameters or filter criterion to be used for the query.
- an edge display element is added to the graphical user interface display.
- the edge display element can be added automatically, in response to a new node display element being added at block 950 .
- an edge display element can be added in response to a user input that places a new link between existing node display elements.
- the edge display element can represent a role (block 960 ), permissions data (block 961 ), access control data (block 962 ), or other items (block 963 ) as well.
- node display element 1018 includes a user input mechanism 1030 configured to receive user input to define the particular relationship represented by edge display element 1020 .
- Input mechanism 1030 can include a drop down menu 1032 configured to select the particular relationship represented by edge display element 1020 .
- the return data fields can be defined in any of a number of ways.
- a user can define the data fields by directly providing user input into return data field display element 1050 .
- the return data fields can be defined using filter criterion user input mechanism 1024 to define the properties of the corresponding entities to be generated as the return data fields.
- a user input is received to generate the query based on the node and edge display elements in the user interface.
- the query is periodically generated/updated in response to detected changes to the display elements 1004 .
- a query generation user input mechanism is provided on preview pane 1006 , or otherwise, that is actuatable by the user to generate the query represented by display elements 1004 and the return data field display element 1050 .
- the generated query can be stored as a selectable subject path signature, as represented at block 974 .
- the queries can be stored in data store 210 .
- data field 1068 - 1 identifies an account name
- data field 1068 - 2 identifies a resource name of the respective compute resource
- data field 1068 - 3 identifies a resource name of the respective role
- data field 1068 - 4 identifies a value of an anonymous access state (whether the storage resource allows anonymous access)
- data field 1068 - 5 identifies an object count of a scan profile.
- the query can be cleared through actuation of a user input mechanism 1070 .
- FIG. 27 illustrates another example of the query results display area 1066 having a set of return data fields 1072 that are based on the return data fields defined in the query 1074 .
- one or more implementations and clauses of the technology disclosed or elements thereof can be implemented in the form of means for carrying out one or more of the method steps described herein; the means can include (i) hardware module(s), (ii) software module(s) executing on one or more hardware processors, or (iii) a combination of hardware and software modules; any of (i)-(iii) implement the specific techniques set forth herein, and the software modules are stored in a computer readable storage medium (or multiple such media).
- the present figures show a number of blocks with corresponding functionality described herein. It is noted that fewer blocks can be used, such that functionality is performed by fewer components. Also, more blocks can be used with the functionality distributed among more components. Further, the data stores discussed herein can be broken into multiple data stores. All of the data stores can be local to the systems accessing the data stores, all of the data stores can be remote, or some data stores can be local while others can be remote.
- FIG. 29 is a simplified block diagram of one example of a client device 1400 , such as a handheld or mobile device, in which the present system (or parts of the present system) can be deployed.
- FIG. 30 illustrates an example of a handheld or mobile device.
- Interface 1404 and communication links 1402 communicate with one or more processors 1406 (which can include processors or servers described with respect to the figures) along a communication bus (not shown in FIG. 29 ), that can also be connected to memory 1408 and input/output (I/O) components 1410 , as well as clock 1412 and a location system 1414 .
- processors 1406 which can include processors or servers described with respect to the figures
- communication bus not shown in FIG. 29
- FIG. 31 shows an example computer system 5000 that can be used to implement the technology disclosed.
- Computer system 5000 includes at least one central processing unit (CPU) 5072 that communicates with a number of peripheral devices via bus subsystem 5055 .
- peripheral devices can include a storage subsystem 5010 including, for example, memory devices and a file storage subsystem 5036 , user interface input devices 5038 , user interface output devices 5076 , and a network interface subsystem 5074 .
- the input and output devices allow user interaction with computer system 5000 .
- Network interface subsystem 5074 provides an interface to outside networks, including an interface to corresponding interface devices in other computer systems.
- User interface input devices 5038 can include a keyboard; pointing devices such as a mouse, trackball, touchpad, or graphics tablet; a scanner; a touch screen incorporated into the display; audio input devices such as voice recognition systems and microphones; and other types of input devices.
- pointing devices such as a mouse, trackball, touchpad, or graphics tablet
- audio input devices such as voice recognition systems and microphones
- use of the term “input device” is intended to include all possible types of devices and ways to input information into computer system 5000 .
- Memory subsystem 5022 used in the storage subsystem 5010 can include a number of memories including a main random access memory (RAM) 5032 for storage of instructions and data during program execution and a read only memory (ROM) 5034 in which fixed instructions are stored.
- a file storage subsystem 5036 can provide persistent storage for program and data files, and can include a hard disk drive, a floppy disk drive along with associated removable media, a CD-ROM drive, an optical drive, or removable media cartridges.
- the modules implementing the functionality of certain implementations can be stored by file storage subsystem 5036 in the storage subsystem 5010 , or in other machines accessible by the processor.
- Bus subsystem 5055 provides a mechanism for letting the various components and subsystems of computer system 5000 communicate with each other as intended. Although bus subsystem 5055 is shown schematically as a single bus, alternative implementations of the bus subsystem can use multiple busses.
- Computer system 5000 itself can be of varying types including a personal computer, a portable computer, a workstation, a computer terminal, a network computer, a television, a mainframe, a server farm, a widely-distributed set of loosely networked computers, or any other data processing system or user device. Due to the ever-changing nature of computers and networks, the description of computer system 5000 depicted in FIG. 31 is intended only as a specific example for purposes of illustrating the preferred implementations of the present invention. Many other configurations of computer system 5000 are possible having more or less components than the computer system depicted in FIG. 31 .
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Human Computer Interaction (AREA)
- Storage Device Security (AREA)
Abstract
Description
- The present application claims the benefit of U.S. provisional patent application Serial Nos. 63/246,303, filed Sep. 20, 2021, 63/246,310, filed Sep. 21, 2021, 63/246,313, filed Sep. 21, 2021, and 63/246,315, filed Sep. 21, 2021; the contents of these applications are hereby incorporated by reference in their entirety. The present application is also related to U.S. patent application Ser. No. 17/858,903, filed Jul. 6, 2022, Ser. No. 17/858,907, filed Jul. 6, 2022, Ser. No. 17/858,914, filed Jul. 6, 2022, and Ser. No. 17/858,919, filed Jul. 6, 2022; the contents of these applications are hereby incorporated by reference in their entirety.
- The technology disclosed generally relates to cloud environments. More specifically, but not by limitation, the present disclosure relates to improved systems and methods of cloud security posture management (CSPM), cloud infrastructure entitlement management (CIEM), cloud-native application protection platform (CNAPP), and/or cloud-native configuration management database (CMDB).
- The subject matter discussed in this section should not be assumed to be prior art merely as a result of its mention in this section. Similarly, a problem mentioned in this section or associated with the subject matter provided as background should not be assumed to have been previously recognized in the prior art. The subject matter in this section merely represents different approaches, which in and of themselves can also correspond to implementations of the claimed technology.
- Cloud computing provides on-demand availability of computer resources, such as data storage and compute resources, often without direct active management by users. Thus, a cloud environment can provide computation, software, data access, and storage services that do not require end-user knowledge of the physical location or configuration of the system that delivers the services. In various examples, remote servers can deliver the services over a wide area network, such as the Internet, using appropriate protocols, and those services can be accessed through a web browser or any other computing component.
- Examples of cloud storage services include Amazon Web Services™ (AWS), Google Cloud Platform™ (GCP), and Microsoft Azure™, to name a few. Such cloud storage services provide on-demand network access to a shared pool of configurable resources. These resources can include networks, servers, storage, applications, services, etc. The end-users of such cloud services often include organizations that have a need to store sensitive and/or confidential data, such as personal information, financial information, medical information. Such information can be accessed by any of a number of users through permissions and access control data assigned or otherwise defined through administrator accounts.
- The discussion above is merely provided for general background information and is not intended to be used as an aid in determining the scope of the claimed subject matter.
- The technology disclosed relates to streamlined analysis of security posture of a cloud environment. In particular, the disclosed technology relates to a graphical query builder for generating a subject path signature, for example representing a vulnerability path in the cloud environment. A computer-implemented method includes generating a graphical user interface having configurable node elements and edge elements and, in response to user input on the graphical user interface, configuring the node elements to represent entities in a subject path signature in the cloud environment and the edge elements to represent relationships between the entities in the subject path signature. The method also includes generating a query representing the subject path signature, executing the query to qualify a set of network paths in the cloud environment as conforming to the subject path signature, and outputting query results identifying the qualified set of network paths.
- Example 1 is a computer-implemented method for analyzing security posture of a cloud environment, the method comprising:
-
- generating a graphical user interface having configurable node elements and edge elements;
- in response to user input on the graphical user interface, configuring the node elements to represent entities in a subject path signature in the cloud environment and the edge elements to represent relationships between the entities in the subject path signature;
- generating a query representing the subject path signature;
- executing the query to qualify a set of network paths in the cloud environment as conforming to the subject path signature; and
- outputting query results identifying the qualified set of network paths.
- Example 2 is the computer-implemented method of any or all previous examples, wherein the subject path signature comprises a subject vulnerability signature in the cloud environment.
- Example 3 is the computer-implemented method of any or all previous examples, wherein executing the query comprises executing the query to qualify one or more compute resources or storage resources as vulnerable to breach attack based on classification data conforming to the subject vulnerability signature.
- Example 4 is the computer-implemented method of any or all previous examples, wherein outputting query results comprises generating a representation of propagation of breach attack along the network paths.
- Example 5 is the computer-implemented method of any or all previous examples, wherein the node elements comprise configurable variables that define a type of network path for the subject path signature.
- Example 6 is the computer-implemented method of any or all previous examples, and further comprising a set of return data fields that define properties of the entities to return in response to the query.
- Example 7 is the computer-implemented method of any or all previous examples, and further comprising:
-
- a query preview display pane configured to display one or more of the set of return data.
- Example 8 is the computer-implemented method of any or all previous examples, wherein the entities comprise one or more of:
-
- cloud accounts, compute resources, storage resources, and roles.
- Example 9 is the computer-implemented method of any or all previous examples, wherein each given node display element includes a filter mechanism configured to receive user input defining a filter criterion relative to the entity represented by the given node display element.
- Example 10 is the computer-implemented method of any or all previous examples, wherein the relationships comprise at least one of permissions data or access control data, and the edge elements comprise visual links between the node elements on the graphical user interface.
- Example 11 is a computing system comprising:
-
- at least one processor; and
- memory storing instructions executable by the at least one processor, wherein the instructions, when executed, cause the computing system to:
- generate a graphical user interface having configurable node elements and edge elements;
- in response to user input on the graphical user interface, configure the node elements to represent entities in a subject path signature in the cloud environment and the edge elements to represent relationships between the entities in the subject path signature;
- generate a query representing the subject path signature;
- execute the query to qualify a set of network paths in the cloud environment as conforming to the subject path signature; and
- output query results identifying the qualified set of network paths.
- Example 12 is the computing system of any or all previous examples, wherein the subject path signature comprises a subject vulnerability signature in the cloud environment.
- Example 13 is the computing system of any or all previous examples, wherein the instructions, when executed, cause the computing system to execute the query to qualify one or more compute resources or storage resources as vulnerable to breach attack based on classification data conforming to the subject vulnerability signature.
- Example 14 is the computing system of any or all previous examples, wherein the instructions, when executed, cause the computing system to generate a representation of propagation of breach attack along the network paths.
- Example 15 is the computing system of any or all previous examples, wherein the node elements comprise configurable variables that define a type of network path for the subject path signature.
- Example 16 is the computing system of any or all previous examples, wherein the instructions, when executed, cause the computing system to generate a set of return data fields that define properties of the entities to return in response to the query.
- Example 17 is the computing system of any or all previous examples, wherein the instructions, when executed, cause the computing system to:
-
- generate a query preview display pane configured to display one or more of the set of return data fields or the generated query.
- Example 18 is the computing system of any or all previous examples, wherein the entities comprise one or more of:
-
- cloud accounts, compute resources, storage resources, or roles; and
- the relationships comprising at least one of permissions data or access control data.
- Example 19 is the computing system of any or all previous examples, wherein each given node display element includes a filter mechanism configured to receive user input defining a filter criterion relative to the entity represented by the given node display element.
- Example 20 is a computing system comprising:
-
- memory storing permissions data and access control data for pairs of compute resources and storage resources in a cloud environment;
- accumulation logic configured to trace network paths between the compute resources and the storage resources based on the permissions data and the access control data;
- graphical user interface generator logic configured to:
- generate a graphical user interface having configurable node elements and edge elements; and
- in response to user input on the graphical user interface, configure the node elements to represent entities in a subject path signature in the cloud environment and the edge elements to represent relationships between the entities in the subject path signature;
- query generator logic configured to generate a query representing the subject path signature; and
- query execution logic configured to:
- execute the query to qualify a set of network paths in the cloud environment as conforming to the subject path signature; and
- output query results identifying the qualified set of network paths.
- This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter. The claimed subject matter is not limited to implementations that solve any or all disadvantages noted in the background.
- In the drawings, like reference characters generally refer to like parts throughout the different views. Also, the drawings are not necessarily to scale, with an emphasis instead generally being placed upon illustrating the principles of the technology disclosed. In the following description, various implementations of the technology disclosed are described with reference to the following drawings, in which:
-
FIG. 1 is a block diagram illustrating one example of a cloud architecture. -
FIG. 2 is a block diagram illustrating one example of a cloud service. -
FIG. 3 is a block diagram illustrating one example of a cloud security posture analysis system. -
FIG. 4 is a block diagram illustrating one example of a deployed scanner. -
FIG. 5 is a flow diagram showing an example operation of on-boarding a cloud account and deploying one or more scanners. -
FIG. 6 illustrates one example of a user interface display representing on-boarded cloud accounts. -
FIG. 7 illustrates one example of an on-boarding user interface display. -
FIG. 8 illustrates one example of a user interface display having a dashboard representing on-boarded cloud service accounts. -
FIG. 9 is a flow diagram illustrating one example of cloud infrastructure scanning performed by a cloud scanner deployed in a cloud service. -
FIGS. 10-1, 10-2, 10-3, and 10-4 (collectively referred to asFIG. 10 ) provide a flow diagram illustrating an example operation for streamlined analysis of security posture. -
FIG. 11 illustrates one example of a user interface display that facilitates user definition of a risk criterion. -
FIG. 12 illustrates one example of a user interface display that displays a set of risk signatures. -
FIG. 13 illustrates one example of a user interface display that graphically depicts vulnerability risks. -
FIG. 14 illustrates one example of a details display pane. -
FIG. 15 illustrates one example of a user interface display that graphically depicts breach likelihood and impact scores. -
FIG. 16 illustrates one example of a user interface display having a details pane that displays details for a given resource. -
FIG. 17 illustrates a user interface display that includes a visualization of access communication paths. -
FIG. 18 illustrates one example of a graphical query builder component. -
FIGS. 19-1 and 19-2 (collectively referred to asFIG. 19 ) illustrate a flow diagram of one example of generating a graphical query builder user interface. -
FIGS. 20-28 illustrate examples of user interface displays. -
FIG. 29 is a simplified block diagram of one example of a client device. -
FIG. 30 illustrates an example of a handheld or mobile device. -
FIG. 31 shows an example computer system. - The following discussion is presented to enable any person skilled in the art to make and use the technology disclosed, and is provided in the context of a particular application and its requirements. Various modifications to the disclosed implementations will be readily apparent to those skilled in the art, and the general principles defined herein may be applied to other implementations and applications without departing from the spirit and scope of the technology disclosed. Thus, the technology disclosed is not intended to be limited to the implementations shown, but is to be accorded the widest scope consistent with the principles and features disclosed herein.
- As noted above, cloud computing environments are used by organizations or other end-users to store a wide variety of different types of information in many contexts and for many uses. This data can often include sensitive and/or confidential information, and can be the target for malicious activity such as acts of fraud, privacy breaches, data theft, etc. These risks can arise from individuals that are both inside the organization as well as outside the organization.
- Cloud environments often include security infrastructure to enforce access control, data loss prevention, or other processes to secure data from potential vulnerabilities. However, even with such security infrastructures, it can be difficult for an organization to understand the data posture and breadth of access to the data stored in the cloud in the organization's cloud account. In other words, it can be difficult to identify which users have access to which data, and which data may be exposed to malicious or otherwise unauthorized users, both inside or outside the organization.
- The present system is directed to a cloud security posture analysis system configured to analyze and take action on the security posture of a cloud account. The system discovers sensitive data among the cloud storage resources and discovers access patterns to the sensitive data. The results can be used to identify security vulnerabilities to understand the data security posture, detect and remediate the security vulnerabilities, and to prevent future breaches to sensitive data. The system provides real-time visibility and control on the control data infrastructure by discovering resources, sensitive data, and access paths, and tracking resource configuration, deep context and trust relationships in real-time as a graph or other visualization. It is noted that the technology disclosed herein can depict all graph embodiments in equivalent and analogous tabular formats or other visualization formats based on the data and logic disclosed herein.
- The system can further score breach paths based on sensitivity, volume, and/or permissions to show an attack surface and perform constant time scanning, by deploying scanners locally within the cloud account. Thus, the scanners execute in the cloud service itself, with metadata being returned indicative of the analysis. Thus, in one example, an organization's cloud data does not leave the organization's cloud account. Rather, the data can be scanned in place and metadata sent for analysis by the cloud security posture analysis system, which further enhances data security.
-
FIG. 1 is a block diagram illustrating one example of acloud architecture 100 in which acloud environment 102 is accessed by one ormore actors 104 through anetwork 106, such as the Internet or other wide area network.Cloud environment 102 includes one or more cloud services 108-1, 108-2, 108-N, collectively referred to as cloud services 108. As noted above,cloud services 108 can include cloud storage services such as, but not limited to, AWS, GCP, Microsoft Azure, to name a few. - Further, cloud services 108-1, 108-2, 108-N can include the same type of cloud service, or can be different types of cloud services, and can be accessed by any of a number of
different actors 104. For example, as illustrated inFIG. 1 ,actors 104 includeusers 110,administrators 112,developers 114,organizations 116, and/orapplications 118. Of course,other actors 120 can accesscloud environment 102 as well. -
Architecture 100 includes a cloud securityposture analysis system 122 configured to accesscloud services 108 to identify and analyze cloud security posture data. Examples ofsystem 122 are discussed in further detail below. Briefly, however,system 122 is configured to accesscloud services 108 and identify connected resources, entities, actors, etc. within those cloud services, and to identify risks and violations against access to sensitive information. As shown inFIG. 1 ,system 122 can reside withincloud environment 102 oroutside cloud environment 102, as represented by the dashed box inFIG. 1 . Of course,system 122 can be distributed across multiple items inside and/oroutside cloud environment 102. -
Users 110,administrators 112,developers 114, or anyother actors 104, can interact withcloud environment 102 through user interface displays 123 havinguser interface mechanisms 124. For example, a user can interact with user interface displays 123 provided on a user device (such as a mobile device, a laptop computer, a desktop computer, etc.) either directly or overnetwork 106.Cloud environment 102 can includeother items 125 as well. -
FIG. 2 is a block diagram illustrating one example of cloud service 108-1. For the sake of the present discussion, but not by limitation, cloud service 108-1 will be discussed in the context of an account within AWS. Of course, other types of cloud services and providers are within the scope of the present disclosure. - Cloud service 108-1 includes a plurality of
resources 126 and an access management andcontrol system 128 configured to manage and control access toresources 126 byactors 104.Resources 126 includecompute resources 130,storage resources 132, and can includeother resources 134.Compute resources 130 include a plurality of individual compute resources 130-1, 130-2, 130-N, which can be the same and/or different types of compute resources. In the present example, computeresources 130 can include elastic compute resources, such as elastic compute cloud (AWS EC2) resources, AWS Lambda, etc. - An elastic compute cloud (EC2) is a cloud computing service designed to provide virtual machines called instances, where users can select an instance with a desired amount of computing resources, such as the number and type of CPUs, memory and local storage. An EC2 resource allows users to create and run compute instances on AWS, and can use familiar operating systems like Linux, Windows, etc. Users can select an instance type based on the memory and computing requirements needed for the application or software to be run on the instance.
- AWS Lambda is an event-based service that delivers short-term compute capabilities and is designed to run code without the need to deploy, use or manage virtual machine instances. An example implementation is used by an organization to address specific triggers or events, such as database updates, storage changes or custom events generated from other applications. Such a compute resource can include a server-less, event-driven compute service that allows a user to run code for many different types of applications or backend services without provisioning or managing servers.
-
Storage resources 132 are accessible throughcompute resources 130, and can include a plurality of storage resources 132-1, 132-2, 132-N, which can be the same and/or different types of storage resources. Astorage resource 132 can be defined based on object storage. For example, AWS Simple Storage Service (S3) provides highly-scalable cloud object storage with a simple web service interface. An S3 object can contain both data and metadata, and objects can reside in containers called buckets. Each bucket can be identified by a unique user-specified key or file name. A bucket can be a simple flat folder without a file system hierarchy. A bucket can be viewed as a container (e.g., folder) for objects (e.g., files) stored in the S3 storage resource. -
Compute resources 130 can access or otherwise interact withstorage resources 132 through network communication paths based onpermissions data 136 and/oraccess control data 138.System 128 illustratively includes identity and access management (IAM) functionality that controls access to cloud service 108-1 using entities (e.g., IAM entities) provided by the cloud computing platform. -
Permissions data 136 includespolicies 140 and can includeother permissions data 142.Access control data 138 includesidentities 144 and can include otheraccess control data 146 as well. Examples ofidentities 144 include, but are not limited to, users, groups, roles, etc. In AWS, for example, an IAM user is an entity that is created in the AWS service and represents a person or service who uses the IAM user to interact with the cloud service. An IAM user provides the ability to sign into the AWS management console for interactive tasks and to make programmatic requests to AWS services using the API, and includes a name, password, and access keys to be used with the API. Permissions can be granted to the IAM user to make the IAM user a member of a user group with attached permission policies. An IAM user group is a collection of IAM users with specified permissions. Use of IAM groups can make management of permissions easier for those users. An IAM role in AWS is an IAM identity that has specific permissions, and has some similarities to an IAM user in that the IAM role is an AWS identity with permission policies that determine what the identity can and cannot do in AWS. However, instead of being uniquely associated with one person, a role is intended to be assumable by anyone who needs it. Roles can be used to delegate access to users, applications, and/or services that don't normally have access to the AWS resources. Roles can be used by IAM users in a same AWS account and/or in different AWS accounts than the role. Also, roles can be used bycompute resources 130, such as EC2 resources. A service role is a role assumed by a service to perform actions in an account on behalf of a user. Service roles include permissions required for the service to access the resources needed by the service. Service roles can vary from service to service. A service role for an EC2 instance, for example, is a special type of service role that an application running on an EC2 instance can assume to perform actions. -
Policies 140 can include identity-based policies that are attached to IAM identities can grant permissions to the identity.Policies 140 can also include resource-based policies that are attached toresources 126. Examples include S3 bucket policies and IAM role trust policies. An example trust policy includes a JSON policy document that defines the principles that are trusted to assume a role. In AWS, a policy is an object that, when associated with an identity or resource, defines permissions of the identity or resource. AWS evaluates these policies when an IAM principal user or a role) makes a request. Permissions in the policy determine whether the request is allowed or denied. Policies are often stored as JSON documents that are attached to the IAM identities (user, groups of users, role). - A permissions boundary is a managed policy for an IAM identity that defines the maximum permissions that the identity-based policies can grant to an entity, but does not grant the permissions. Further, access control lists (ACLs) control which principles in other accounts can access the resource to which the ACL is attached. ACLs can be similar to resource-based policies. In some implementations of the technology disclosed, the terms “roles” and “policies” are used interchangeably.
- Cloud service 108-1 includes one or more deployed
cloud scanners 148, and can includeother items 150 as well.Cloud scanner 148 run locally on the cloud-based services and the server systems, and can utilize elastic compute resources, such as, but not limited to, AWS Lambda resources.Cloud scanner 148 is configured to access and scan the cloud service 108-1 on which the scanner is deployed. Examples are discussed in further detail below. Briefly, however, a scanner accesses the data stored instorage resources 132,permissions data 136, andaccess control data 138 to identify particular data patterns (such as, but not limited to, sensitive string patterns) and traverse or trace network communication paths between pairs ofcompute resources 130 andstorage resources 132. The results of the scanner can be utilized to identify subject vulnerabilities, such as resources vulnerable to a breach attack, and to construct a cloud attack surface graph or other data structure that depicts propagation of a breach attack along the network communication paths. - Given a graph of connected resources, such as
compute resources 130,storage resources 132, etc., entities (e.g., accounts, roles, policies, etc.), and actors (e.g., users, administrators, etc.), risks and violations against access to sensitive information is identified. A directional graph can be built to capture nodes that represent the resources and labels that are assigned for search and retrieval purposes. For example, a label can mark the node as a database or S3 resource, actors as users, administrators, developers, etc. Relationships between the nodes are created using information available from the cloud infrastructure configuration. For example, using the configuration information,system 122 can determine that a resource belongs to a given account and create a relationship between the policy attached to a resource and/or identify the roles that can be taken up by a user. -
FIG. 3 is a block diagram illustrating one example of cloud securityposture analysis system 122. As noted above,system 122 can be deployed incloud environment 102 and/oraccess cloud environment 102 throughnetwork 106 shown inFIG. 1 . -
System 122 includes a cloudaccount onboarding component 202, a cloudscanner deployment component 204, a cloud data scanning andanalysis system 206, avisualization system 208, and adata store 210.System 122 can also include one or more processors orservers 212, and can includeother items 214 as well. - Cloud
account onboarding component 202 is configured toonboard cloud services 108 for analysis bysystem 122. After onboarding, cloudscanner deployment component 204 is configured to deploy a cloud scanner (e.g., deployed cloud scanner(s) 148 shown inFIG. 2 ) to the cloud service. In one example, the deployed scanners are on-demand agent-less scanners configured to perform agent-less scanning within the cloud service. One example of an agent-less scanner does not require agents to be installed on each specific device or machine. The scanners operate on theresources 126 and access management andcontrol system 128 directly within the cloud service, and generate metadata that is returned tosystem 122. Thus, in one example, the actual cloud service data is not required to leave the cloud service for analysis. Cloud data scanning andanalysis system 206 includes ametadata ingestion component 216 configured to receive the metadata generated by the deployed cloud scanner(s) 148.System 206 also includes aquery engine 218, apolicy engine 220, a breachvulnerability evaluation component 222, one or more application programming interfaces (APIs) 224, a cloud securityissue identification component 226, a cloud securityissue prioritization component 228, historical resourcestate analysis component 230, and can includeother items 232 as well. -
Query engine 218 is configured to execute queries against the received metadata and generated cloud security issue data.Policy engine 220 can execute security policies against the cloud data and breachvulnerability evaluation component 222 is configured to evaluate potential breach vulnerabilities in the cloud service.APIs 224 are exposed to users, such as administrators, to interact withsystem 122 to access the cloud security posture data. -
Component 226 is configured to identify cloud security issues andcomponent 228 can prioritize the identified cloud security issues based on any of a number of criteria. - Historical resource
state analysis component 230 is configured to analyze a history of states ofresources 126.Component 230 includes a triggeringcomponent 234 configured to detect a trigger that to perform historical resource state analysis. Triggeringcomponent 234 is configured to identify an event that triggerscomponent 230 to analyze the state ofresources 126. The event can be, for example, a user input to selectively trigger the analysis, or a detected event such as the occurrence of a time period, an update to a resource, etc. Accordingly, historical resource state can be tracked automatically and/or in response to user input. -
Component 230 includes a resource configuration change tracking component 236 configured to track changes in the configuration ofresources 126.Component 230 also includes an anomalous state detection component 238, and can includeother items 240 as well. Component 238 is configured to detect the occurrence of anomalous states inresources 126. A resource anomaly can be identified where a given resource has an unexpected state, such as a difference from other similar resources identified in the cloud service. -
Visualization system 208 is configured to generate visualizations of the cloud security posture fromsystem 206. Illustratively,system 208 includes auser interface component 242 configured to generate a user interface for a user, such as an administrator. In the illustrated example,component 242 includes aweb interface generator 244 configured to generate web interfaces that can be displayed in a web browser on a client device. -
Visualization system 208 also includes a resource graph generator component 246, a cloud attack surfacegraph generator component 248, a graphicalquery builder component 250, and can includeother items 251 as well. Resource graph generator component 246 is configured to generate a graph or other representation of the relationships betweenresources 126. For example, component 246 can generate a cloud infrastructure map that graphically depicts pairs of compute resources and storage resources as nodes and network communication paths as edges between the nodes. - Cloud attack surface
graph generator component 248 is configured to generate a surface graph or other representation of vulnerabilities of resources to a breach attack. In one example, the representation of vulnerabilities can include a cloud attack surface map that graphically depicts propagation of a breach attack along network communication paths as edges between nodes that represent the corresponding resources. - As discussed in further detail below, graphical
query builder component 250 is configured to generate a graphical user interface with user input mechanisms configured to receive user inputs. Based on the user inputs, graphicalquery builder component 250 generates a query against the resource graphs generated by resource graph generator component 246. Briefly, an example query represents a subject path signature in the identified network communication paths between pairs of compute resources and storage resources which, for example, are identified based on permissions data and access control data. -
Data store 210 stores themetadata 252 obtained bymetadata ingestion component 216, sensitive data profiles 254,queries 256 generated by graphicalquery builder component 250, and can storeother items 257 as well. Examples of sensitive data profiles are discussed in further detail below. Briefly, however,sensitive data profiles 254 can identify data patterns that are categorized as sensitive or meeting some predefined pattern of interest. Pattern matching can be performed based on the target data profiles. For example, pattern matching can be performed to identify social security numbers, credit card numbers, other personal data, medical information, to name a few. In one example, artificial intelligence (AI) is utilized to perform named entity recognition (e.g., natural language processing modules can identify sensitive data, in various languages, representing names, company names, locations, etc.). -
FIG. 4 is a block diagram illustrating one example of a deployedscanner 148.Scanner 148 includes aresource identification component 262, a permissionsdata identification component 264, an access controldata identification component 266, a cloudinfrastructure scanning component 268, a clouddata scanning component 270, ametadata output component 272, and can includeother items 274 as well. -
Resource identification component 262 is configured to identify theresources 126 within cloud service 108-1 (and/or other cloud services 108) and to generate corresponding metadata that identifies these resources. Permissionsdata identification component 264 identifies thepermissions data 136 and access controldata identification component 266 identifiesaccess control data 138. Cloudinfrastructure scanning component 268 scans the infrastructure ofcloud service 108 to identify the relationships betweenresources data scanning component 270 scans the actual data stored instorage resources 132. The generated metadata is output bycomponent 272 to cloud securityposture analysis system 122. -
FIG. 5 is a flow diagram 300 showing an example operation ofsystem 122 in on-boarding a cloud account and deploying one or more scanners. Atblock 302, a request to on-board a cloud service to cloud securityposture analysis system 122 is receives. For example, an administrator can submit a request to on-board cloud service 108-1. -
FIG. 6 illustrates one example of auser interface display 304 provided for an administrator.Display 304 includes adisplay pane 306 including a number of display elements representing cloud accounts that have been on-boarded tosystem 122.Display 304 includes auser interface control 308 that can be actuated to submit an on-boarding request atblock 302. - Referring again to
FIG. 5 , atblock 310, an on-boarding user interface display is generated. Atblock 312, user input is received that defines a new cloud account to be on-boarded. The user input can define acloud provider identification 314, acloud account identification 316, acloud account name 318, access credentials to thecloud account 320, and can includeother input 322 defining the cloud account to be on-boarded. -
FIG. 7 illustrates one example of an on-boardinguser interface display 324 that is displayed in response to user actuation ofcontrol 308. -
Display 324 includes auser interface mechanism 326 configured to receive input to select or otherwise define a particular cloud account provider. In the illustrated example,mechanism 326 includes a plurality of selectable controls representing different cloud providers including, but not limited to, AWS, GCP, Azure. -
Display 324 includes auser input mechanism 328 configured to receive input defining a cloud account identifier, and an account nickname.User input mechanisms 330 allow the user to define other parameters for the on-boarding. Auser input mechanism 332 is actuated to generate a cloud formation template, or other template, to be used in the on-boarding process based on the selected cloud account provider. - Once the cloud account is connected to
system 122,display 304 inFIG. 6 can be updated to show the details of the cloud account as well as the scan status. InFIG. 6 , each entry includes adisplay name 334, anaccount ID 336, adata store count 338, and arisk count 340.Data store count 338 includes an indication of the number of data stores in the cloud account and therisk count 340 includes an indication of a number if identified security risks. Afield 342 indicates the last scan status, such as whether the last scan has completed or whether the scanner is currently in progress or currently scanning. Afield 344 indicates the time at which the last scan was completed. - Referring again to
FIG. 5 , atblock 346, the cloud account is authorized using roles. For example, administrator access (block 348) can be defined for the cloud scanner using IAM roles. One or more cloud scanners are defined atblock 350 and can include, but are not limited to,cloud infrastructure scanners 352,cloud data scanners 354,vulnerability scanners 356, orother scanners 358. - At
block 360, the cloud scanners are deployed to run locally on the cloud service, such as illustrated inFIG. 2 . The cloud scanners discover resources atblock 362, scan data in the resources atblock 364, and can find vulnerabilities atblock 366. As discussed in further detail below, a vulnerability can identified based on finding a predefined risk signature in the cloud service resources. The risk signatures can be queried upon, and define expected behavior within the cloud service and locate anomalies based on this data. - At
block 368, if more cloud services are to be on-boarded, operation returns to block 310. Atblock 370, the scan results from the deployed scanners are received. As noted above, the scan results include metadata (block 372) generated by the scanners running locally on the cloud service. - At
block 374, one or more actions are performed based on the scan results. Atblock 376, the action includes security issue detection. For example, a breach risk on a particular resource (such as a storage resource storing sensitive data) is identified. Atblock 378, security issue prioritization can be performed to prioritize the detected security issues. Examples of security issue detection and prioritization are discussed in further detail below. Briefly, security issues can be detected by executing a query against the scan results using vulnerability or risk signatures. The risk signatures identify criterion such as accessibility of the resources, access and/or permissions between resources, and data types in accessed data stores. Further, each risk signature can be scored and prioritized based impact. For example, a risk signature can include weights indicative of likelihood of occurrence of a breach and impact if the breach occurs. - The action can further include providing user interfaces at
block 380 that indicate the scan status (block 382), a cloud infrastructure representation (such as a map or graph) (block 384), and/or a cloud attack surface representation (map or graph) (block 386). The cloud attack surface representation can visualize vulnerabilities. - Remedial actions can be taken at
block 388, such as creating a ticket (block 390) for a developer or other user to address the security issues. Of course, other actions can be taken atblock 392. For instance, the system can make adjustments to cloud account settings/configurations to address/remedy the security issues. -
FIG. 8 illustrates one example of auser interface display 400, that can be displayed atblock 376.Display 400 provides a dashboard for a user which provides an overview of on-boarded cloud service accounts. The dashboard identifies a number ofusers 402, a number ofassets 404, a number ofdata stores 406, and a number ofaccounts 408. Adata sensitivity pane 410 includes adisplay element 412 that identifies a number of the data stores that include sensitive data, adisplay element 413 that identifies a number of users with access to the sensitive data, adisplay element 414 that identifies a number of resources having sensitive data, and adisplay element 416 that identifies a number of risks on the data stores having sensitive data. Further, graphs or charts can be generated to identify those risks based on factors such as status (display element 418) or impact (display element 420). -
Display element 420 illustratively categorizes the risks based on impact as well as the likelihood of occurrence of those risks. Risk categorization is discussed in further detail below. Briefly, however,display element 420 stratifies one or more of breach likelihood scores or breach impact scores categories representing different levels of severity, such as high, medium, and low severity levels. In one example,display element 420 is color coded based on the degree of impact of the risk (e.g., high impact is highlighted in red, medium impact is highlighted in yellow, and low impact is highlighted in green). -
FIG. 9 is a flow diagram 450 illustrating one example of cloud infrastructure scanning performed bycloud scanner 148 deployed in cloud service 108-1. Atblock 452, an agent-less scanner is executed on the cloud service. The scanner can perform constant time scanning atblock 454. - An example constant time scanner runs an algorithm in which the running time does not depend, or has little dependence on, the size of the input. The scanner obtains a stream of bytes and looks for a multiplicity of patterns (one hundred patterns, two hundred patterns, three hundred patterns, etc.) in one pass through the stream of bytes, with the same or substantially similar performance.
- Further, the scanner can return real-time results at
block 456. Accordingly, cloudsecurity posture analysis 122 receives updates to the security posture data as changes are made to the cloud services. - At
block 458, the scanner discovers thecompute resources 130 and, atblock 460, thestorage resources 132. Sensitive data can be discovered atblock 462. The agent-less scanner does not require a proxy or agent running in the cloud service, and can utilize server-less containers and resources to scan the documents and detect sensitive data. The data can be accessed using APIs associated with the scanners. The sensitive data can be identified using pattern matching, such as by querying the data using predefined risk signatures. - At
block 464, access paths between the resources are discovered based on permissions data 136 (block 466), and/or access control data 138 (block 468). A rule processing engine, such as using JSON metadata, can be utilized to analyze the roles and policies, and can build access relationships between the nodes representing the resources. The policies can be decoded to get access type (allow, deny, etc.) and the policy can be placed in a node to link from a source to target node and create the access relationship. Atblock 470, metadata indicative of the scanning results is generated and outputted bymetadata output component 272. -
FIGS. 10-1, 10-2, 10-3, and 10-4 (collectively referred to asFIG. 10 ) provide a flow diagram 500 illustrating an example operation for streamlined analysis of security posture. For sake of illustration, but not by limitation,FIG. 10 will be discussed in the context of cloud securityposture analysis system 122 illustrated inFIG. 3 . Security posture can be analyzed bysystem 206 usingmetadata 252 to return from the cloud service scanners. - At block 502, permissions data and access control data are accessed for pairs of compute and storage resources. The permissions and access control data can include identity-based permissions at
block 504, resource-based permissions atblock 506, or other permissions as well. - At
block 508, network communication paths between the pairs of resources are traced based on the permissions and access control data. For example, the permissions and access control data can identify which paths have read access from a compute resource from a particular compute resource to a particular storage resource, as represented atblock 510. Similarly, paths with write access from compute to storage resources can be identified atblock 512, paths with synchronization access between storage resources can be identified atblock 514. Of course, other types of paths can be identified as well. - For sake of example, but not by limitation, a directional graph is constructed to captures all resources as nodes, with labels assigned to the nodes for search and retrieval. In the AWS example, labels can mark a node as a database or S3 resource. Similarly, labels can represent actors as normal users, admins, developers, etc. Then, known relationships are identified between the nodes, for example using the information available from the cloud infrastructure configuration (e.g., defining a resource belongs to a given account). Similarly, a relationship can be created between the policy attached to a resource, and/or the roles that can be taken up by a user. In addition to storing static information, a rule processing engine (e.g., using JavaScript Object Notation (JSON) metadata) to analyze the roles and policies and build the “access” relationship between the nodes. The analysis can be used to decode the policy to get the access type (e.g., allow, deny, etc.), and the placement of the policy in a node can be used to link from the source node to target node and create the access relationship (e.g., allow, deny, etc.). Similarly, role definitions can be analyzed to find the access type. The graph can therefore include various types of nodes, updated to reflect direct relationships.
- An iterative process can be performed to find transitive relationships between resources (e.g., resource access for a given entity/actors/resources). In one example, for each access relationship from a first node N1 to a second node N2, the process identifies all incoming access relationships of N1. Then, the access types targeting node N1 are analyzed and updated. Using the relationships identified to access N1, the relationships to N2 are updated, and a new set of access relationships are identified to N2 through N1. The process continues to proceed to identify all such relationships with the goal of creating relationships to all nodes that have sensitive data.
- In one example, block 508 identifies “access types” which include normalized forms of access permissions. For example, an access type “can read” can be defined to include a plurality of different read objects within AWS (e.g., defined in terms of allowable APIs). Similarly, the AWS permissions “PutObject” and “PutObjectAcl” are transformed to a normalized access type “can write” within
system 122. - At
block 516, sensitivity classification data is accessed for objects in the storage resources. The sensitivity classification data can include sensitive data profiles atblock 518. - At
block 520, crawlers can be selected for structured and/or unstructured databases. Crawling the databases can include executing a snapshot of structured databases, creating a dump of structured databases, and scanning the dump for sensitivity classification, as represented atblock 524. - At
block 526, a subset of the pairs of resources are qualified as vulnerable to a breach attack. The qualification can be based on the permissions data atblock 528, the access control data atblock 530, and/or risk criterion atblock 532. The risk criterion can include any of a wide variety of different types of criteria. For example, a risk criterion can indicate a variety of access to the resources atblock 534. One example includes a number of different roles with access to the resource, as represented atblock 536. - Also, a risk criterion can indicate a width of configured access to the resources, at
block 538. For example, the width of configured can include a number of workloads with access to the resources (block 540) and/or a type of workload with access to the resources (block 542). - A risk criterion can also indicate a number of users with access to the resources at
block 544, a volume of sensitive data in the resources atblock 546, and/or types of categories of sensitive data atblock 548. Of course, other types of risk criterion can be utilized as well. - In one example, the risk criterion can be defined based on user input.
FIG. 11 illustrates one example of auser interface display 550 that facilitates user definition of risk criterion.Display 550 includes a set of user input mechanisms that allows a user to define likelihood weights, represented at numeral 552, and impact weights, represented at 554. - For sake of illustration, a first
user input mechanism 556 allows a user to set a weight that influences a likelihood score for variations in the variety of access to the resources (e.g., block 534). Similarly, controls 558, 560, and 562 allow a user to set weights that influence likelihood scores for a width of configured access, a number of principles or users with access, and the type of workloads with access, represented byreference numerals - Similarly, controls 563, 564, 566, 568, and 570, allow a user to set weights on impact scores for risk criterion associated with a volume of sensitive data, a type of sensitive data, and categories of sensitive data (i.e., legal data, medical data, financial data), respectively.
- Referring again to
FIG. 10 , atblock 572, a first subset of the storage resources that satisfy a subject vulnerability signature are identified. A subject vulnerability signature illustratively includes a risk signature indicative of a risk of vulnerability or breach. -
FIG. 12 illustrates an exampleuser interface display 574 that can be accessed fromdisplay 304 illustrated inFIG. 6 , and displays a set of risk signatures. The risk signatures can be predefined and/or user-defined. For example, display 574 can include user input mechanisms that allow a user to add, delete, or modify a set ofrisk signatures 576. As noted above, each risk signature defines a set of criteria that the resources and data in cloud service 108-1 can be queries upon to identify indications of vulnerabilities in the cloud service. The risk signatures inFIG. 12 include aname field 578, a unique risksignature ID field 580, and a description identified in adescription field 582. Aresult header field 584 identifies types of data that will be provided in the results when the risk signature is matched. Aresource field 586 identifies the type of resource, and atags field 588 identifies tags that label or otherwise identify the risk signature. Additionally, alikelihood factor field 590 indicates a likelihood factor that is assigned to the risk signature and animpact factor signature 592 indicates an impact factor assigned to the risk signature. The likelihood factor indicates a likelihood assigned to occurrence of the risk signature and the impact factor assigns an impact to the cloud service assigned to the occurrence of the risk signature. For sake of illustration, a likelihood factor of ten (out of a scale of ten) indicates that the vulnerability is likely to occur if the risk signature is identified in the cloud posture data, whereas a likelihood factor of one indicates a low likelihood. Similarly, an impact factor of ten (out of a scale of ten) indicates that the vulnerability is considered to have a high impact, whereas an impact factor of one indicates the vulnerability is considered to have a low impact on the cloud service. - A risk signature can be defined based upon any of a wide variety of criteria. For example, a risk signature can identify one or more configurations or settings of
compute resources 130. Examples include, but are not limited to, a configuration that indicates whether the compute resource provides accessibility to a particular type of data, such as confidential data, medical data, financial data, personal data, or any other type of private and/or sensitive content. In another example, a risk signature indicates that a compute resource is publicly accessible, includes a public Internet protocol (IP) address, or has IP forwarding enabled. In another example, a risk signature indicates that a compute resource has monitoring disabled, has no IAM role assigned to the compute resource, has backup disabled, data encryption disabled, and/or a low or short backup retention policy. Also, a risk signature can identify password policies set for the compute resource. For instance, a risk signature can indicate a lack of minimum password policies, such as no minimum password length, no requirement of symbols, lowercase letters, uppercase letters, numbers, or password reuse policy. Also, a risk criterion can indicate a location of the compute resource, such as whether the compute resource is located outside of a particular region. - Risk signatures can also indicate configurations and/or settings of
storage resources 132. For example, the configurations and settings can indicate authentication or permissions enforced by the storage resource, such as whether authentication is required for read, write, delete, synchronization, or any other operation. Also, the risk signature can indicate whether multi-factor authentication is disabled for the storage resource, as well as a breadth of permissions grants (e.g., whether all authenticated users are granted permissions within the storage resource). Also, a risk signature can indicate whether encryption is enabled by default, a password policy enforced by the storage resource, whether the storage resource is anonymously accessible, publicly accessible, has a key management service disabled, has logging disabled, life cycle management disabled, whether the storage resource is utilized for website hosting, has geo-restriction disabled, or has backup functionality disabled. Also, the risk signature can indicate a type of data stored by the storage resource, such as the examples discussed above. - Referring again to
FIG. 10 , the first subset of storage resources identified atblock 572, are based on determining that the storage resources satisfy a risk signature of containing private and/or sensitive content, as represented atblock 594. In another example, the subject vulnerability signature is based on a prevalence of accessibility of a given role within a network exceeding a set threshold, as represented atblock 596. For instance, the given role can include principles (block 598), workloads (block 600), a cloud environment (block 602), a company (block 604), or other roles (block 606). - Also, the subject vulnerability signature can indicate that the storage resources are accessible by more than a threshold number of users, as represented at
block 608. Also, the subject vulnerability signature can indicate that the storage resources are accessible by a vulnerable compute resource that is publicly accessible, as represented atblock 610. This determination can be based on identifying that the compute resource is accessible through a public portal, atblock 612 and/or is accessible by users outside a given company network atblock 614. - As represented at
block 616, the subject vulnerability signature can indicate that the storage resources are accessible by inactive users. For example, inactive users can include users who have not accessed the resources within a threshold time, atblock 618. - At
block 620, a second subset of storage resources are identified that synchronization data from the first subset. Atblock 622, a particular compute resource is determined to have anomalous access to a given storage resource. The identification of anomalous access can be based on a comparison of a network communication path of the particular compute resource against paths of other compute resources. For example, the paths of other compute resources can be used to identify an expected communication path for the particular compute resource and/or expected permission for the particular resource. Then, if a difference above a threshold is identified, the particular compute resource is identified as anomalous. - At
block 624, a representation of the propagation of the breach attack along the network communication paths is generated. In one example, the representation includes a cloud attack surface map, as represented atblock 626. An example cloud attack surface map includes nodes representing the resources (block 628) and edges representing the breach attack propagation (block 630). The map graphically depicts the subset of storage resources (block 632) and the subject vulnerability signature (block 634). Also, the map can graphically depict the anomalous access to the particular compute resource (block 636). For example, public accesses to the subset of storage resources can be graphically depicted atblock 638 and storage resources that grant external access and/or resources that are initialized from outside a particular jurisdiction can be identified atblocks -
FIG. 13 illustrates one example of auser interface display 650 that graphically depicts vulnerability risks, in tabular form. In one example,display 650 renders the data discussed with respect to the cloud attack surface atblock 626 ofFIG. 10 in a table. -
Display 650 includes auser input mechanism 652 to specify a time range for visualizing the risk, and includes adescription 654, aresource identifier 656, and anaccount identifier 658 for the cloud service account. The display can also indicate theimpact 660 andlikelihood 662 of the vulnerability risk, as well assignature identifier 664 that identifies the particular risk signature that was matched.Display 650 also includes adetails control 666 that is actuatable to display details of the identified risk. One example of adetails display pane 668 is illustrated inFIG. 14 .Display pane 668 shows a description of the risk atdisplay element 670 and anindication 672 of the query utilized to match the risk signature. - Referring again to
FIG. 10 , at block 676 a query is received for execution against the results of the metadata analysis. For example, a query represents a subject path signature, such as by specifying a subject vulnerability atblock 678. As represented atblock 680, the query can request identification of resources with anomalous access. Atblock 681, the query is generated by graphicalquery builder component 250 illustrated above inFIG. 3 . The query can be obtained from data store 210 (e.g., queries 256), or the query can be obtained directly from graphicalquery builder component 250 as the query is generated based on user input. Operation of graphicalquery builder component 250 is discussed in further detail below. - At
block 682, the query is executed against the cloud attack surface map. For example, the cloud attack surface map can be filtered to identify results that match the query. The query results (e.g., the filtered map) is returned at block 684. The filtered results can include identifying a subset of storage resources that match the query (block 686) and/or resources having anomalous access atblock 688. - The cloud attack surface graph is graphically filtered based on the results at
block 690. For example, the graph can be filtered based on applications running on the pairs of resources in the identified subset (block 692). Breach likelihood scores and breach impact scores are determined for the resources atblock 694, and the scores can be depicted on the cloud attack surface map atblock 696. In one example, the scores are graphically categorized or stratified atblock 698 into high, medium, or low risk. One example is discussed above with respect toFIG. 8 . -
FIG. 15 illustrates one example of auser interface display 700 configured to graphically depict breach likelihood and impact scores.Display 700 identifies data stores instorage resources 132 that are identified as meeting a subject vulnerability. Each entry shown indisplay 700 identifies atype 702 of the resource, animpact score 704, alikelihood score 706, aresource identifier 708 that identifies the resource, and acloud service identifier 710 that identifies the particular cloud resource. Based on actuation of a risk itemview generator mechanism 712,display 700 shows details for the given resource in adisplay pane 714, as shown inFIG. 16 .Display pane 714 can showusers 716 that have access to the resource,roles 718 that have access to the resource,other resources 720 that have access to the resource, as well asexternal users 722 orexternal roles 724.Display pane 714 also shows theaccess type 726. -
FIG. 17 illustrates auser interface display 800 that includes a visualization of access communication paths. The visualization inFIG. 17 can be rendered as a cloud infrastructure graph (e.g., map) that shows relationships between compute and storage resources and/or mappings between users, roles, and resources, based on the permissions data and the access control data. Further, the visualization can be augmented using sensitivity classification data to represent propagation of breach attack along communication paths. For example, the visualization inFIG. 17 can be configured to render the subset(s) of resources identified inFIG. 10 . That is,display 800 can include the cloud attack surface map atblock 626. - As shown in
FIG. 17 ,nodes 802 represent compute resources andnodes 804 represent storage resources. Illustratively, the storage resources include data stores or buckets within a particular cloud service.Nodes 806 represent roles and/or users. The links (e.g., access paths) oredges 808 betweennodes nodes 806. The edges orlinks 810 represent the storage resources that can be accessed by the particular roles or users represented bynodes 806. - Based on these relationships between compute and storage relationships, display elements can be rendered along, or otherwise visually associated with, the
edges 808 and/or 810, to identify and graphically depict the propagation of breach attack. For instance, vulnerability display elements can be rendered in association withedges 808 and/or 810 to identify that a subject vulnerability signature (e.g., one or more risk signatures shown inFIG. 12 ) has been identified in the data, based on querying the permissions and access control data using the subject vulnerability signature. For example,display element 809 represents a risk signature betweennodes display element 811 represents (such as by including a description, icon, label, etc.) a risk signature betweennodes display element display 800. The details can include which risk signature has been matched, which sensitive data is at risk, etc. - The graph can be interactive at a plurality of different resolutions or levels. For example, a user can interact with the graph to zoom into a specific subset, e.g., based on cloud vendor concepts of proximity (regions, virtual private clouds (VPCs), subnets, etc.).
Node 812 includes an expandactuator 814 that is actuatable to expand the display to show additional details of the roles, role groups, and/or users represented bynode 812. - When zooming into one region, such as when using the actuators discussed below, other regions can be zoomed out. This can be particularly advantageous when handling large diagrams. Further, the graph includes one or more filter mechanisms configured to filter the graph data by logical properties, such as names, values of various fields, IP addresses, etc. For example, a free
form search box 815 is configured to receive search terms and filter out all resources (e.g., by removing display of those resources) except those resources matching the search terms. In one example, the search terms include a subject vulnerability signature (e.g., containing private and sensitive content, public accessibility, accessibility by a particular user and/or role, particular applications running on the resources, access types, etc.). - An
input mechanism 817 is configured to receive a temporal filter or search criterion. For example, a filter criterion is entered by a user to represent at least one of a creation time or date of computer resources and storage resources. Further, a query can be entered specifying at least one temporal period, wherein the cloud infrastructure map is updated to graphically return at least one prior state (e.g., a permissions state, an access control state, and/or a sensitivity data classification state) of compute resources and storage resources based on the temporal period. - A checkbox (not shown in
FIG. 17 , and which can be global to the diagram) provides the ability to toggle whether or not direct neighbors of the matching resources are also displayed, even if those neighbors themselves don't match the search terms. This allows users to search for specific resources and immediately visualize all entities that have access to the searched resources. To illustrate, assume a search for personally identifiable information (PII) matches a set of S3 buckets. In this case, the graph renders resources that have access to that PII. Further, the graph can show associated data and metadata (e.g., properties extracted from cloud APIs, properties derived such as presence of sensitive data, access paths, etc.). This data and metadata can be shown on a panel to the left or right of the diagram. Further, user can actuate user interface controls to collapse/expand this panel. In one example, the panel remains collapsed or expanded until changed, even across different searches and login sessions. Additionally, the display can group properties in related categories (e.g., summary, all metadata retrieved from the cloud, all metadata derived, local annotations, etc.), and the diagram can be filtered (such as by using the free form search bar mentioned above) by metadata such as tags, applications running on them, identified owners, time since created, etc.). The state of the resources can be shown as of a user defined date or time. A calendar component can allow users to select a particular date to visualize historical state data as of that particular date. - Referring again to
FIG. 17 , thenodes 804 representing the storage resources are also actuatable to show additional details. For example,node 822 includes anactuator 824 that is actuatable to display a view of the constituents of the storage resource represented bynode 822. One or more of the elements are further actuatable to show additional details of the constituent. -
FIG. 18 illustrates one example of graphicalquery builder component 250. Graphicalquery builder component 250 includes a graphicaluser interface generator 902, a user input detector 904, afilter criterion generator 906, a returndata field generator 908, and aquery preview generator 910.Component 250 can includeother items 912 as well. - Graphical
user interface generator 902 includes anode element generator 914 configured to generate node elements in a graphical user interface. The node elements represent entities in a subject path signature defined by the query being generated bycomponent 250.Generator 902 also includes anedge element generator 916 configured to generate edge elements between the node elements. The edge elements represent relationships between the entities represented by respective node elements. The node display elements and edge display elements represent entities, and relationships between the entities, in a subject path signature. The subject path signature is used to define a query against a set of network communication paths identified in the cloud environment. Examples of identifying network communication paths is discussed above with respect toFIG. 10 . - Graphical
user interface generator 902 also includes apreview pane generator 918, a results pane generator 920, a display device controller 922, and can includeother items 924 as well.Preview pane generator 918 generates a display pane that renders a preview representation of the query defined by the node elements and display elements. Results pane generator 920 is configured to generate a results pane on the graphical user interface that displays the query results in response to execution of the query. Display device controller 922 is configured to generate control signals to control a display device to render the graphical user interface. Examples of graphical user interfaces are described in further detail below. -
Filter criterion generator 906 is configured to generate filter criterion relative to the entities and relationships represented by the node and edge display elements. A filter criterion is utilized to filter the results for the entities and relationships returned through the query. - Return
data field generator 908 is configured to generate one or more return data fields. Each return data field defines the type of data to be returned in response to the query. For example, a return data field can define a property, or set of properties, of an entity represented by a given node display element. In executing the query, the return data field is passed in as a variable and extracts a value for the property, which is returned in the query results. In one example of a relational database, a return data field can include a SQL field. As such, the query can return a value for a database column. -
Query preview generator 910 is configured to generate a query preview that provide a preview representation, such as a serialized representation of the query. The preview pane generated bypreview pane generator 918 is configured to render the preview representation of the query, and can include input mechanisms for generating the filter criterion and/or the return data fields. -
FIGS. 19-1 and 19-2 (collectively referred to asFIG. 19 ) illustrate a flow diagram 930 of one example of generating a graphical query builder user interface that receives user inputs to generate and execute a query. For sake of illustration, but not by limitation,FIG. 19 will be described in the context of graphicalquery builder component 250 and example graphical user interface displays illustrated inFIGS. 20-28 . - At block 932, a graphical user interface is generated for creating a new query and/or modifying an existing query (e.g., a
query 256 stored in data store 210). The graphical user interface includes display elements (block 934), user input mechanisms (block 936), and a preview pane (block 938). Display elements include node display elements (block 940), edge display elements (block 941), and can include other display elements as well. As represented atblock 942, each edge display element includes a visual link that connect two or more node display element and defines a relationship between the entities represented by the two or more node display elements. In the case wherein an existing query is being modified, the query definition can be retrieved from storage and the display elements on the graphical user interface recreated based on the query definition. - An entity represented by a node display element corresponds to a location in the network path in the cloud environment. Accordingly, the entity can include any of a variety of constituents in the cloud environment. For example, when network communication paths are identified, such as by tracing paths between pairs of resources based on permissions and access control data (e.g., block 508 in
FIG. 10 ), the entities can include locations within the network communication paths. - As shown in
FIG. 20 ,display 1002 includesdisplay elements 1004 and apreview pane 1006.Display elements 1004 include a set of node display elements and one or more edge display elements that link two or more of the node display elements. Illustratively, the node display elements inFIG. 20 include a firstnode display element 1008 and a secondnode display element 1010. Anedge display element 1012 includes a visual link betweennode display elements - Referring again to
FIG. 19 , the user input mechanisms can include mechanisms configured to add, delete, and/or modify the node and edge display elements. For example, user input mechanisms can include drag anddrop mechanisms 943,selection elements 944, and can includeother mechanisms 945 as well.Mechanisms 943 can allow the user to drag new display elements onto the user interface or to move existing display elements on the user interface, for example to change relative positional relationships between those elements. - User input is detected at block 946, and, at block 948, the node display elements and/or edge display elements are configured to represent a subject path signature in the cloud environment. For example, the subject path signature can include a vulnerability or risk signature. At
block 950, a node display element is added to the graphical user interface to represent an entity in the subject path signature (block 952). As noted above, an entity can include any of a variety of constituents in the cloud environment. For example, an entity can include acloud account 953, a compute resource (block 954), a storage resource (block 955), a role (block 956), and can represent other items (block 957) as well. - A node display element can also include configurable variables, as represented at block 958. The configurable variables can represent parameters or filter criterion to be used for the query. At
block 959, an edge display element is added to the graphical user interface display. The edge display element can be added automatically, in response to a new node display element being added atblock 950. Alternatively, or in addition, an edge display element can be added in response to a user input that places a new link between existing node display elements. The edge display element can represent a role (block 960), permissions data (block 961), access control data (block 962), or other items (block 963) as well. - The user input can configure a node element (block 964) and/or configure an edge display element (block 965). In one example, a node display element can be configured by adding or defining a filter criterion at
block 966. A node display element and/or edge display element can be deleted atblock 966, in response to the user input. - Referring again to
FIG. 20 ,display 1002 includes a node additionuser input mechanism 1014 and a node deletionuser input mechanism 1016.User input mechanism 1014 is actuatable to add a newnode display element 1018 and correspondingedge display element 1020, as shown inFIG. 21 .User input mechanism 1016 is actuatable to deletenode display element 1010 and the associatededge display element 1012. - Each
node display element user input mechanism 1022 and a filter criterionuser input mechanism 1024. Entity selectionuser input mechanism 1022 is configured to receive user input to select the entity that is represented by the node display element.Mechanism 1022 can include, for example, a drop down list, text input box, or any other suitable user input mechanism. In the example shown inFIG. 20 ,node display element 1008 represents a particular cloud account, defined infield 1026. Similarly,node display element 1010 represents a particular compute instance, as represented bydisplay element 1028. Further, each of the node display elements can include a condition definitionuser input mechanism 1030 configured to receive user input to define a condition upon which the entities are returned in the query. - As shown in
FIG. 22 ,node display element 1018 includes auser input mechanism 1030 configured to receive user input to define the particular relationship represented byedge display element 1020.Input mechanism 1030 can include a drop downmenu 1032 configured to select the particular relationship represented byedge display element 1020. - As shown in
FIGS. 23 and 24 , additionalnode display elements user input mechanism 1014. Further, anedge display element 1044 is added betweennode display element 1018 andnode display element 1040.Element 1044 defines that the entity (e.g., a particular cloud role) represented byelement 1018 has a relationship with the entity (e.g., a particular compute instance) represented byelement 1040 such that the entity can read the compute resource. This relationship is visually identified bydisplay field 1046 ondisplay element 1044.FIG. 24 shows that displayelement 1042 includes a drop downmenu 1048 that allows a user to select the entity represented by 1042. - Referring again to
FIG. 19 , at block 968 a set of return data fields are defined for the query. Illustratively, a return data field defines which data is returned when the query is executed against the network paths in the cloud environment. For example, a return data field can define one or more properties of an entity to return in response to the query, as represented atblock 970. As shown inFIG. 20 ,preview pane 1006 includes a return datafield display element 1050 that identifies properties of the entities as the return data fields. In the illustrated example, tworeturn data fields - The return data fields can be defined in any of a number of ways. In one example, a user can define the data fields by directly providing user input into return data
field display element 1050. Alternatively, or in addition, the return data fields can be defined using filter criterionuser input mechanism 1024 to define the properties of the corresponding entities to be generated as the return data fields. -
FIG. 23 shows that additionalreturn data fields data field 1052 includes a label “A”, wherenode display element 1008 also includes acorresponding label 1060.Return data field 1052 includes a description that indicates thatreturn data field 1052 is associated withnode display element 1008 and is configured to return the “name” property as the account name of the cloud account represented bynode display element 1008. Similarly, returndata field 1054 includes a label “B” indicating thatreturn data field 1054 is associated withnode display element 1010 and is configured to return the resource name which uniquely identifies the compute resource in the cloud environment. Similarly, returndata field 1056 is configured to return the resource name that uniquely identifies the cloud environment role for the role represented bynode display element 1018.Return data field 1058 includes a label “D” that visually identifies thatfield 1058 is associated withnode display element 1040 and is configured to return a property indicating whether the storage resource represented bynode display element 1040 is configured to allow anonymous access to data in the storage resource. - Referring again to
FIG. 19 , at block 972 a user input is received to generate the query based on the node and edge display elements in the user interface. In one example, the query is periodically generated/updated in response to detected changes to thedisplay elements 1004. In another example, a query generation user input mechanism is provided onpreview pane 1006, or otherwise, that is actuatable by the user to generate the query represented bydisplay elements 1004 and the return datafield display element 1050. The generated query can be stored as a selectable subject path signature, as represented atblock 974. For example, the queries can be stored indata store 210. - At block 976, a user input is received to generate a preview of the query. For example, the query preview is rendered in
preview pane 1006, as represented atblock 978. In the example shown inFIG. 25 , the query preview includes a serialized representation of the query, and includes the entities represented by the node display elements, the relationships between those entities, and any defined filter criterion and/or constraints, along with the defined return data fields. - At
block 980, the query is executed to generate query results. In one example, execution of the query qualifies a set of network paths as conforming to the subject path signature, as represented byblock 982. For instance, compute and/or storage resources are qualified as being vulnerable to breach attack based on the subject path signature, as represented atblock 984. In the example ofFIG. 25 , a query executionuser input mechanism 1064 is actuatable to execute the query atblock 980. - At
block 986, the query results are output. Outputting the query results can include rendering the query results in the graphical user interface at block 988. Alternatively, or in addition, the query results can be stored in a data store, such asdata store 210. In one example, the query results qualify set of network paths as matching the nodes and edges of the subject path signature, atblock 992. Also, a representation of propagation of breach attack along network paths can be generated atblock 994. Examples are discussed above. - Referring to
FIG. 26 ,user interface display 1002 includes a query resultsdisplay area 1066 which renders the query results. The query resultsdisplay area 1066 includes data fields 1068-1, 1068-2, 1068-3, 1068-4, and 1068-5 (collectively referred to as data fields 1068) that include the properties defined by the return data fields 1050. For example, data field 1068-1 identifies an account name, data field 1068-2 identifies a resource name of the respective compute resource, data field 1068-3 identifies a resource name of the respective role, data field 1068-4 identifies a value of an anonymous access state (whether the storage resource allows anonymous access), and data field 1068-5 identifies an object count of a scan profile. The query can be cleared through actuation of auser input mechanism 1070. -
FIG. 27 illustrates another example of the query resultsdisplay area 1066 having a set ofreturn data fields 1072 that are based on the return data fields defined in thequery 1074. -
FIG. 28 illustrates one example ofuser input mechanisms 1076 for defining the return data fields. As shown, ascrollable list 1078 is provided and allows the user to select one or more properties from a list of available properties identified in the cloud environment for a given entity. - It can thus be seen that the present disclosure describes technology for security posture analysis of a cloud account. In some described examples, the technology can discover sensitive data among the cloud storage resources and as well as access patterns to the sensitive data, using local scanners that reduce or eliminate need to send the cloud data outside the cloud environment. This improves data security. Further, the technology facilitates the discover of security vulnerabilities to understand the data security posture, detect, and remediate the security vulnerabilities, and to prevent future breaches to sensitive data. The system provides real-time visibility and control on the control data infrastructure by discovering resources, sensitive data, and access paths, and tracking resource configuration, deep context, and trust relationships in real-time as a graph or other visualization.
- One or more implementations of the technology disclosed or elements thereof can be implemented in the form of a computer product, including a non-transitory computer readable storage medium with computer usable program code for performing the method steps indicated. Furthermore, one or more implementations and clauses of the technology disclosed or elements thereof can be implemented in the form of an apparatus including a memory and at least one processor that is coupled to the memory and operative to perform exemplary method steps. Yet further, in another aspect, one or more implementations and clauses of the technology disclosed or elements thereof can be implemented in the form of means for carrying out one or more of the method steps described herein; the means can include (i) hardware module(s), (ii) software module(s) executing on one or more hardware processors, or (iii) a combination of hardware and software modules; any of (i)-(iii) implement the specific techniques set forth herein, and the software modules are stored in a computer readable storage medium (or multiple such media).
- Examples discussed herein include processor(s) and/or server(s). For sake of illustration, but not by limitation, the processors and/or servers include computer processors with associated memory and timing circuitry, and are functional parts of the corresponding systems or devices, and facilitate the functionality of the other components or items in those systems.
- Also, user interface displays have been discussed. Examples of user interface displays can take a wide variety of forms with different user actuatable input mechanisms. For instance, a user input mechanism can include icons, links, menus, text boxes, check boxes, etc., and can be actuated in a wide variety of different ways. Examples of input devices for actuating the input mechanisms include, but are not limited to, hardware devices (e.g., point and click devices, hardware buttons, switches, a joystick or keyboard, thumb switches or thumb pads, etc.) and virtual devices (e.g., virtual keyboards or other virtual actuators). For instance, a user actuatable input mechanism can be actuated using a touch gesture on a touch sensitive screen. In another example, a user actuatable input mechanism can be actuated using a speech command.
- The present figures show a number of blocks with corresponding functionality described herein. It is noted that fewer blocks can be used, such that functionality is performed by fewer components. Also, more blocks can be used with the functionality distributed among more components. Further, the data stores discussed herein can be broken into multiple data stores. All of the data stores can be local to the systems accessing the data stores, all of the data stores can be remote, or some data stores can be local while others can be remote.
- The above discussion has described a variety of different systems, components, logic, and interactions. One or more of these systems, components, logic, and/or interactions can be implemented by hardware, such as processors, memory, or other processing components. Some particular examples include, but are not limited to, artificial intelligence components, such as neural networks, that perform the functions associated with those systems, components, logic, and/or interactions. In addition, the systems, components, logic and/or interactions can be implemented by software that is loaded into a memory and is executed by a processor, server, or other computing component, as described below. The systems, components, logic and/or interactions can also be implemented by different combinations of hardware, software, firmware, etc., some examples of which are described below. These are some examples of different structures that can be used to implement any or all of the systems, components, logic, and/or interactions described above.
- The elements of the described figures, or portions of the elements, can be disposed on a wide variety of different devices. Some of those devices include servers, desktop computers, laptop computers, tablet computers, or other mobile devices, such as palm top computers, cell phones, smart phones, multimedia players, personal digital assistants, etc.
-
FIG. 29 is a simplified block diagram of one example of aclient device 1400, such as a handheld or mobile device, in which the present system (or parts of the present system) can be deployed.FIG. 30 illustrates an example of a handheld or mobile device. - One or
more communication links 1402 allowsdevice 1400 to communicate with other computing devices, and can provide a channel for receiving information automatically, such as by scanning. An example includes communication protocols, such as wireless services used to provide cellular access to a network, as well as protocols that provide local wireless connections to networks. - Applications or other data can be received on an external (e.g., removable) storage device or memory that is connected to an
interface 1404.Interface 1404 andcommunication links 1402 communicate with one or more processors 1406 (which can include processors or servers described with respect to the figures) along a communication bus (not shown inFIG. 29 ), that can also be connected tomemory 1408 and input/output (I/O)components 1410, as well asclock 1412 and alocation system 1414. -
Components 1410 facilitate input and output operations fordevice 1400, and can include input components such as microphones, touch screens, buttons, touch sensors, optical sensors, proximity sensors, orientation sensors, accelerometers.Components 1410 can include output components such as a display device, a speaker, and or a printer port. -
Clock 1412 includes, in one example, a real time clock component that outputs a time and date, and can provide timing functions forprocessor 1406.Location system 1414 outputs a current geographic location ofdevice 1400 and can includes a global positioning system (GPS) receiver, a LORAN system, a dead reckoning system, a cellular triangulation system, or other positioning system.Memory 1408 stores anoperating system 1416, network applications andcorresponding configuration settings 1418,communication configuration settings 1420,communication drivers 1422, and can includeother items 1424. Examples ofmemory 1408 include types of tangible volatile and non-volatile computer-readable memory devices.Memory 1408 can also include computer storage media that stores computer readable instructions that, when executed byprocessor 1406, cause the processor to perform computer-implemented steps or functions according to the instructions.Processor 1406 can be activated by other components to facilitate functionality of those components as well. -
FIG. 30 illustrates one example of atablet computer 1450 having adisplay screen 1452, such as a touch screen or a stylus or pen-enabled interface.Screen 1452 can also provide a virtual keyboard and/or can be attached to a keyboard or other user input device through a mechanism, such as a wired or wireless link. Alternatively, or in addition,computer 1450 can receive voice inputs. -
FIG. 31 shows anexample computer system 5000 that can be used to implement the technology disclosed.Computer system 5000 includes at least one central processing unit (CPU) 5072 that communicates with a number of peripheral devices via bus subsystem 5055. These peripheral devices can include astorage subsystem 5010 including, for example, memory devices and a file storage subsystem 5036, user interface input devices 5038, user interface output devices 5076, and a network interface subsystem 5074. The input and output devices allow user interaction withcomputer system 5000. Network interface subsystem 5074 provides an interface to outside networks, including an interface to corresponding interface devices in other computer systems. - In one implementation, cloud security
posture analysis system 5018 is communicably linked to thestorage subsystem 5010 and the user interface input devices 5038. - User interface input devices 5038 can include a keyboard; pointing devices such as a mouse, trackball, touchpad, or graphics tablet; a scanner; a touch screen incorporated into the display; audio input devices such as voice recognition systems and microphones; and other types of input devices. In general, use of the term “input device” is intended to include all possible types of devices and ways to input information into
computer system 5000. - User interface output devices 5076 can include a display subsystem, a printer, a fax machine, or non-visual displays such as audio output devices. The display subsystem can include an LED display, a cathode ray tube (CRT), a flat-panel device such as a liquid crystal display (LCD), a projection device, or some other mechanism for creating a visible image. The display subsystem can also provide a non-visual display such as audio output devices. In general, use of the term “output device” is intended to include all possible types of devices and ways to output information from
computer system 5000 to the user or to another machine or computer system. -
Storage subsystem 5010 stores programming and data constructs that provide the functionality of some or all of the modules and methods described herein. These software modules are generally executed by processors 5078. - Processors 5078 can be graphics processing units (GPUs), field-programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), and/or coarse-grained reconfigurable architectures (CGRAs). Processors 5078 can be hosted by a deep learning cloud platform such as Google Cloud Platform™, Xilinx™, and Cirrascale™. Examples of processors 5078 include Google's Tensor Processing Unit (TPU)™, rackmount solutions like GX4 Rackmount Series™, GX50 Rackmount Series™, NVIDIA DGX-1™, Microsoft' Stratix V FPGA™, Graphcore's Intelligent Processor Unit (IPU)™, Qualcomm's Zeroth Platform™ with Snapdragon Processors™, NVIDIA's Volta™, NVIDIA's DRIVE PX™, NVIDIA's JETSON TX1/TX2 MODULE™, Intel's Nirvana™, Movidius VPU™, Fujitsu DPI™, ARM's DynamicIQ™, IBM TrueNorth™, Lambda GPU Server with Testa V100s™, and others.
-
Memory subsystem 5022 used in thestorage subsystem 5010 can include a number of memories including a main random access memory (RAM) 5032 for storage of instructions and data during program execution and a read only memory (ROM) 5034 in which fixed instructions are stored. A file storage subsystem 5036 can provide persistent storage for program and data files, and can include a hard disk drive, a floppy disk drive along with associated removable media, a CD-ROM drive, an optical drive, or removable media cartridges. The modules implementing the functionality of certain implementations can be stored by file storage subsystem 5036 in thestorage subsystem 5010, or in other machines accessible by the processor. - Bus subsystem 5055 provides a mechanism for letting the various components and subsystems of
computer system 5000 communicate with each other as intended. Although bus subsystem 5055 is shown schematically as a single bus, alternative implementations of the bus subsystem can use multiple busses. -
Computer system 5000 itself can be of varying types including a personal computer, a portable computer, a workstation, a computer terminal, a network computer, a television, a mainframe, a server farm, a widely-distributed set of loosely networked computers, or any other data processing system or user device. Due to the ever-changing nature of computers and networks, the description ofcomputer system 5000 depicted inFIG. 31 is intended only as a specific example for purposes of illustrating the preferred implementations of the present invention. Many other configurations ofcomputer system 5000 are possible having more or less components than the computer system depicted inFIG. 31 . - It should also be noted that the different examples described herein can be combined in different ways. That is, parts of one or more examples can be combined with parts of one or more other examples. All of this is contemplated herein.
- The technology disclosed can be practiced as a system, method, or article of manufacture. One or more features of an implementation can be combined with the base implementation. Implementations that are not mutually exclusive are taught to be combinable.
- One or more features of an implementation can be combined with other implementations. This disclosure periodically reminds the user of these options. Omission from some implementations of recitations that repeat these options should not be taken as limiting the combinations taught in the preceding sections—these recitations are hereby incorporated forward by reference into each of the following implementations.
- Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims.
Claims (20)
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/939,489 US11625499B1 (en) | 2021-09-20 | 2022-09-07 | Cloud data attack detection query builder |
US18/122,101 US20230231868A1 (en) | 2021-09-20 | 2023-03-15 | Graphical query builder for cloud data attack detection |
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163246303P | 2021-09-20 | 2021-09-20 | |
US202163246315P | 2021-09-21 | 2021-09-21 | |
US202163246313P | 2021-09-21 | 2021-09-21 | |
US202163246310P | 2021-09-21 | 2021-09-21 | |
US17/939,489 US11625499B1 (en) | 2021-09-20 | 2022-09-07 | Cloud data attack detection query builder |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US18/122,101 Continuation US20230231868A1 (en) | 2021-09-20 | 2023-03-15 | Graphical query builder for cloud data attack detection |
Publications (2)
Publication Number | Publication Date |
---|---|
US20230093332A1 true US20230093332A1 (en) | 2023-03-23 |
US11625499B1 US11625499B1 (en) | 2023-04-11 |
Family
ID=85156839
Family Applications (12)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/858,903 Active US11575696B1 (en) | 2021-09-20 | 2022-07-06 | Cloud data attack detection based on cloud security posture and resource network path tracing |
US17/858,914 Active US11611573B1 (en) | 2021-09-20 | 2022-07-06 | In-cloud and constant time scanners |
US17/858,907 Active US11627155B1 (en) | 2021-09-20 | 2022-07-06 | Cloud infrastructure detection with resource path tracing |
US17/939,522 Active US11876813B2 (en) | 2021-09-20 | 2022-09-07 | Cloud data schema detection system |
US17/939,489 Active US11625499B1 (en) | 2021-09-20 | 2022-09-07 | Cloud data attack detection query builder |
US17/939,501 Active US11695785B2 (en) | 2021-09-20 | 2022-09-07 | Cloud environment analytics using snapshotting |
US18/090,195 Active US11943240B2 (en) | 2021-09-20 | 2022-12-28 | Cloud data attack detection based on network vulnerability signatures in traced resource network paths |
US18/116,161 Active US11943241B2 (en) | 2021-09-20 | 2023-03-01 | Compact cloud access network based on role-to-resource detection with resource state change tracking and provenance |
US18/122,101 Pending US20230231868A1 (en) | 2021-09-20 | 2023-03-15 | Graphical query builder for cloud data attack detection |
US18/195,290 Pending US20230275910A1 (en) | 2021-09-20 | 2023-05-09 | Data posture analysis in a cloud environment using database snapshots |
US18/520,552 Pending US20240098101A1 (en) | 2021-09-20 | 2023-11-28 | Cloud scanner with database schema detection |
US18/444,928 Pending US20240195821A1 (en) | 2021-09-20 | 2024-02-19 | Cloud Data Security Posture Detection Based On Network Communication Paths And Sensitivity Data |
Family Applications Before (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/858,903 Active US11575696B1 (en) | 2021-09-20 | 2022-07-06 | Cloud data attack detection based on cloud security posture and resource network path tracing |
US17/858,914 Active US11611573B1 (en) | 2021-09-20 | 2022-07-06 | In-cloud and constant time scanners |
US17/858,907 Active US11627155B1 (en) | 2021-09-20 | 2022-07-06 | Cloud infrastructure detection with resource path tracing |
US17/939,522 Active US11876813B2 (en) | 2021-09-20 | 2022-09-07 | Cloud data schema detection system |
Family Applications After (7)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/939,501 Active US11695785B2 (en) | 2021-09-20 | 2022-09-07 | Cloud environment analytics using snapshotting |
US18/090,195 Active US11943240B2 (en) | 2021-09-20 | 2022-12-28 | Cloud data attack detection based on network vulnerability signatures in traced resource network paths |
US18/116,161 Active US11943241B2 (en) | 2021-09-20 | 2023-03-01 | Compact cloud access network based on role-to-resource detection with resource state change tracking and provenance |
US18/122,101 Pending US20230231868A1 (en) | 2021-09-20 | 2023-03-15 | Graphical query builder for cloud data attack detection |
US18/195,290 Pending US20230275910A1 (en) | 2021-09-20 | 2023-05-09 | Data posture analysis in a cloud environment using database snapshots |
US18/520,552 Pending US20240098101A1 (en) | 2021-09-20 | 2023-11-28 | Cloud scanner with database schema detection |
US18/444,928 Pending US20240195821A1 (en) | 2021-09-20 | 2024-02-19 | Cloud Data Security Posture Detection Based On Network Communication Paths And Sensitivity Data |
Country Status (1)
Country | Link |
---|---|
US (12) | US11575696B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230342356A1 (en) * | 2022-04-22 | 2023-10-26 | International Business Machines Corporation | Generate digital signature of a query execution plan using similarity hashing |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11848956B2 (en) | 2021-04-26 | 2023-12-19 | Orca Security LTD. | Systems and methods for disparate risk information aggregation |
US11936785B1 (en) | 2021-12-27 | 2024-03-19 | Wiz, Inc. | System and method for encrypted disk inspection utilizing disk cloning techniques |
US12081656B1 (en) | 2021-12-27 | 2024-09-03 | Wiz, Inc. | Techniques for circumventing provider-imposed limitations in snapshot inspection of disks for cybersecurity |
US11936678B2 (en) * | 2022-01-06 | 2024-03-19 | Oracle International Corporation | System and techniques for inferring a threat model in a cloud-native environment |
US20240135027A1 (en) * | 2022-05-23 | 2024-04-25 | Wiz, Inc. | Techniques for detecting sensitive data in cloud computing environments utilizing cloning |
US12061719B2 (en) * | 2022-09-28 | 2024-08-13 | Wiz, Inc. | System and method for agentless detection of sensitive data in computing environments |
US12079328B1 (en) | 2022-05-23 | 2024-09-03 | Wiz, Inc. | Techniques for inspecting running virtualizations for cybersecurity risks |
US12061925B1 (en) | 2022-05-26 | 2024-08-13 | Wiz, Inc. | Techniques for inspecting managed workloads deployed in a cloud computing environment |
US20240022578A1 (en) * | 2022-07-13 | 2024-01-18 | International Business Machines Corporation | Invoking response(s) based on analysis of a dataset obtained from searching a security endpoint |
US12015636B2 (en) * | 2022-07-30 | 2024-06-18 | James Whitmore | Automated modeling and analysis of security attacks and attack surfaces for an information system or computing device |
Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060242704A1 (en) * | 2005-04-20 | 2006-10-26 | Cisco Technology, Inc. | Method and system for preventing operating system detection |
US20070226796A1 (en) * | 2006-03-21 | 2007-09-27 | Logan Gilbert | Tactical and strategic attack detection and prediction |
US20140068718A1 (en) * | 2012-08-29 | 2014-03-06 | Red Hat Israel, Ltd. | Flattening permission trees in a virtualization environment |
US20140201642A1 (en) * | 2013-01-12 | 2014-07-17 | Lyatiss, Inc. | User interface for visualizing resource performance and managing resources in cloud or distributed systems |
US20170078322A1 (en) * | 2014-12-29 | 2017-03-16 | Palantir Technologies Inc. | Systems for network risk assessment including processing of user access rights associated with a network of devices |
US10032450B2 (en) * | 2016-09-22 | 2018-07-24 | Royal Bank Of Canada | System and method for electronic communications |
US20190243865A1 (en) * | 2018-02-07 | 2019-08-08 | Sas Institute Inc. | Identification and visualization of data set relationships in online library systems |
US20200134076A1 (en) * | 2018-10-25 | 2020-04-30 | Bank Of America Corporation | Methods and apparatus for a multi-graph search and merge engine |
US20200272740A1 (en) * | 2019-02-27 | 2020-08-27 | Optum Services (Ireland) Limited | Anomalous activity detection in multi-provider transactional environments |
US20200401696A1 (en) * | 2019-06-18 | 2020-12-24 | International Business Machines Corporation | Security Incident Disposition Predictions Based on Cognitive Evaluation of Security Knowledge Graphs |
US20210014265A1 (en) * | 2019-07-12 | 2021-01-14 | Accenture Global Solutions Limited | Evaluating effectiveness of security controls in enterprise networks using graph values |
US11108828B1 (en) * | 2018-10-16 | 2021-08-31 | Styra, Inc. | Permission analysis across enterprise services |
US11256661B1 (en) * | 2017-11-13 | 2022-02-22 | Veeva Systems Inc. | User programmatic interface for supporting data access control in a database system |
US11271929B1 (en) * | 2020-09-28 | 2022-03-08 | BIZZ dot BUZZ, LLC | Dynamic display control application for controlling graphical user interface elements based on activity data |
US20220094643A1 (en) * | 2020-09-23 | 2022-03-24 | Amazon Technologies, Inc. | Compositional reasoning techniques for role reachability analyses in identity systems |
US20220094614A1 (en) * | 2016-08-22 | 2022-03-24 | Vmware, Inc. | Systems for and methods of modelling, analysis and management of data networks |
US20220116455A1 (en) * | 2021-11-16 | 2022-04-14 | Arun Raghunath | Computational storage in a function-as-a-service architecture |
Family Cites Families (53)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040034794A1 (en) * | 2000-05-28 | 2004-02-19 | Yaron Mayer | System and method for comprehensive general generic protection for computers against malicious programs that may steal information and/or cause damages |
US20060236408A1 (en) | 2005-04-14 | 2006-10-19 | International Business Machines Corporation | Method and apparatus for device dependent access control for device independent web content |
JP2007058514A (en) * | 2005-08-24 | 2007-03-08 | Mitsubishi Electric Corp | Information processor, information processing method and program |
US8261331B2 (en) | 2006-01-17 | 2012-09-04 | International Business Machines Corporation | Security management for an integrated console for applications associated with multiple user registries |
US20070185875A1 (en) | 2006-02-09 | 2007-08-09 | International Business Machines Corporation | Extensible role based authorization for manageable resources |
US8452873B2 (en) | 2006-11-01 | 2013-05-28 | International Business Machines Corporation | Provisioning of resources in a computer network |
US8402514B1 (en) * | 2006-11-17 | 2013-03-19 | Network Appliance, Inc. | Hierarchy-aware role-based access control |
US9569587B2 (en) * | 2006-12-29 | 2017-02-14 | Kip Prod Pi Lp | Multi-services application gateway and system employing the same |
US8392997B2 (en) * | 2007-03-12 | 2013-03-05 | University Of Southern California | Value-adaptive security threat modeling and vulnerability ranking |
US20080288330A1 (en) | 2007-05-14 | 2008-11-20 | Sailpoint Technologies, Inc. | System and method for user access risk scoring |
US9092500B2 (en) * | 2009-09-03 | 2015-07-28 | Commvault Systems, Inc. | Utilizing snapshots for access to databases and other applications |
US8190850B1 (en) | 2009-10-01 | 2012-05-29 | Emc Corporation | Virtual block mapping for relocating compressed and/or encrypted file data block blocks |
CN102053973A (en) | 2009-10-30 | 2011-05-11 | 国际商业机器公司 | Device and method for providing page navigation in multi-character supporting network application |
US8578442B1 (en) * | 2011-03-11 | 2013-11-05 | Symantec Corporation | Enforcing consistent enterprise and cloud security profiles |
US10620241B2 (en) | 2012-02-17 | 2020-04-14 | Perspecta Labs Inc. | Method and system for packet acquisition, analysis and intrusion detection in field area networks |
US8689324B2 (en) | 2012-04-04 | 2014-04-01 | Sas Institute, Inc. | Techniques to explain authorization origins for protected resource objects in a resource object domain |
US9378065B2 (en) | 2013-03-15 | 2016-06-28 | Advanced Elemental Technologies, Inc. | Purposeful computing |
US9910881B1 (en) | 2013-12-12 | 2018-03-06 | Amazon Technologies, Inc. | Maintaining versions of control plane data for a network-based service control plane |
WO2016054605A2 (en) | 2014-10-02 | 2016-04-07 | Reylabs Inc. | Systems and methods involving diagnostic monitoring, aggregation, classification, analysis and visual insights |
US20160366183A1 (en) | 2015-06-09 | 2016-12-15 | Ned M. Smith | System, Apparatus And Method For Access Control List Processing In A Constrained Environment |
US9699205B2 (en) * | 2015-08-31 | 2017-07-04 | Splunk Inc. | Network security system |
US10540628B2 (en) * | 2015-09-17 | 2020-01-21 | International Business Machines Corporation | Hierarchical business rule model |
US10693743B2 (en) * | 2015-09-21 | 2020-06-23 | Splunk Inc. | Displaying interactive topology maps of cloud computing resources |
US10200387B2 (en) | 2015-11-30 | 2019-02-05 | International Business Machines Corporation | User state tracking and anomaly detection in software-as-a-service environments |
US20210336934A1 (en) * | 2016-05-18 | 2021-10-28 | Zscaler, Inc. | Cloud-based web application and API protection |
US10594684B2 (en) | 2016-09-14 | 2020-03-17 | Oracle International Corporation | Generating derived credentials for a multi-tenant identity cloud service |
US10810317B2 (en) | 2017-02-13 | 2020-10-20 | Protegrity Corporation | Sensitive data classification |
US10609044B2 (en) | 2017-06-12 | 2020-03-31 | International Business Machines Corporation | Enforcing access control in trigger-action programming using taint analysis |
US11894984B2 (en) | 2017-11-27 | 2024-02-06 | Lacework, Inc. | Configuring cloud deployments based on learnings obtained by monitoring other cloud deployments |
US10803204B2 (en) * | 2018-01-25 | 2020-10-13 | Digital Guardian Llc | Systems and methods for defining and securely sharing objects in preventing data breach or exfiltration |
US10819652B2 (en) | 2018-07-02 | 2020-10-27 | Amazon Technologies, Inc. | Access management tags |
US10671750B2 (en) * | 2018-08-17 | 2020-06-02 | Mentis Inc. | System and method for data classification centric sensitive data discovery |
US11425157B2 (en) * | 2018-08-24 | 2022-08-23 | California Institute Of Technology | Model based methodology for translating high-level cyber threat descriptions into system-specific actionable defense tactics |
US11159570B2 (en) * | 2018-12-26 | 2021-10-26 | Twistlock, Ltd. | Cloud native discovery and protection |
US11206262B2 (en) | 2019-06-12 | 2021-12-21 | International Business Machines Corporation | Policy-based triggering of revision of access control information |
US11283809B2 (en) | 2019-08-14 | 2022-03-22 | Microsoft Technology Licensing, Llc. | Automatic reduction of privilege role assignments |
US20210089422A1 (en) * | 2019-09-06 | 2021-03-25 | Common Computer Inc. | System and method for serverless computing based on blockchain |
US11252159B2 (en) | 2019-09-18 | 2022-02-15 | International Business Machines Corporation | Cognitive access control policy management in a multi-cluster container orchestration environment |
US11768916B2 (en) * | 2019-12-11 | 2023-09-26 | Paypal, Inc. | Detection of sensitive database information |
US11461183B2 (en) | 2020-01-08 | 2022-10-04 | EMC IP Holding Company LLC | Trivial snapshots |
US11399039B2 (en) | 2020-01-30 | 2022-07-26 | Microsoft Technology Licensing, Llc | Automatic detection of illicit lateral movement |
US11388163B2 (en) * | 2020-02-03 | 2022-07-12 | Microsoft Technology Licensing Llc. | Least-privilege resource permission management |
US11422900B2 (en) | 2020-03-02 | 2022-08-23 | Commvault Systems, Inc. | Platform-agnostic containerized application data protection |
US11593331B2 (en) * | 2020-04-17 | 2023-02-28 | Development Guild DDI, Inc. | Methods and systems for cascade filtering for data exploration in computer systems |
US11902248B2 (en) | 2020-07-14 | 2024-02-13 | Cazena, Inc. | Cloud data lake platform and SaaS orchestration |
US11463444B2 (en) * | 2020-06-11 | 2022-10-04 | Microsoft Technology Licensing, Llc | Cloud-based privileged access management |
US11477183B1 (en) * | 2020-06-29 | 2022-10-18 | Amazon Technologies, Inc. | Application-based management of security credential revocations |
US11422871B1 (en) * | 2020-09-30 | 2022-08-23 | Amazon Technologies, Inc. | Event archiving and replay |
US11374982B1 (en) * | 2020-12-02 | 2022-06-28 | Wiz, Inc. | Static analysis techniques for determining reachability properties of network and computing objects |
US12086254B2 (en) | 2020-12-22 | 2024-09-10 | International Business Machines Corporation | Adjusting role-based access control of a user based on behavior data of the user |
US11630853B2 (en) * | 2021-01-29 | 2023-04-18 | Snowflake Inc. | Metadata classification |
US11994960B2 (en) | 2021-03-15 | 2024-05-28 | EMC IP Holding Company LLC | Data recovery in virtual desktop infrastructure environments |
US11727142B2 (en) * | 2021-04-08 | 2023-08-15 | International Business Machines Corporation | Identifying sensitive data risks in cloud-based enterprise deployments based on graph analytics |
-
2022
- 2022-07-06 US US17/858,903 patent/US11575696B1/en active Active
- 2022-07-06 US US17/858,914 patent/US11611573B1/en active Active
- 2022-07-06 US US17/858,907 patent/US11627155B1/en active Active
- 2022-09-07 US US17/939,522 patent/US11876813B2/en active Active
- 2022-09-07 US US17/939,489 patent/US11625499B1/en active Active
- 2022-09-07 US US17/939,501 patent/US11695785B2/en active Active
- 2022-12-28 US US18/090,195 patent/US11943240B2/en active Active
-
2023
- 2023-03-01 US US18/116,161 patent/US11943241B2/en active Active
- 2023-03-15 US US18/122,101 patent/US20230231868A1/en active Pending
- 2023-05-09 US US18/195,290 patent/US20230275910A1/en active Pending
- 2023-11-28 US US18/520,552 patent/US20240098101A1/en active Pending
-
2024
- 2024-02-19 US US18/444,928 patent/US20240195821A1/en active Pending
Patent Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060242704A1 (en) * | 2005-04-20 | 2006-10-26 | Cisco Technology, Inc. | Method and system for preventing operating system detection |
US20070226796A1 (en) * | 2006-03-21 | 2007-09-27 | Logan Gilbert | Tactical and strategic attack detection and prediction |
US20140068718A1 (en) * | 2012-08-29 | 2014-03-06 | Red Hat Israel, Ltd. | Flattening permission trees in a virtualization environment |
US20140201642A1 (en) * | 2013-01-12 | 2014-07-17 | Lyatiss, Inc. | User interface for visualizing resource performance and managing resources in cloud or distributed systems |
US20170078322A1 (en) * | 2014-12-29 | 2017-03-16 | Palantir Technologies Inc. | Systems for network risk assessment including processing of user access rights associated with a network of devices |
US20220094614A1 (en) * | 2016-08-22 | 2022-03-24 | Vmware, Inc. | Systems for and methods of modelling, analysis and management of data networks |
US10032450B2 (en) * | 2016-09-22 | 2018-07-24 | Royal Bank Of Canada | System and method for electronic communications |
US11256661B1 (en) * | 2017-11-13 | 2022-02-22 | Veeva Systems Inc. | User programmatic interface for supporting data access control in a database system |
US20190243865A1 (en) * | 2018-02-07 | 2019-08-08 | Sas Institute Inc. | Identification and visualization of data set relationships in online library systems |
US11108828B1 (en) * | 2018-10-16 | 2021-08-31 | Styra, Inc. | Permission analysis across enterprise services |
US20200134076A1 (en) * | 2018-10-25 | 2020-04-30 | Bank Of America Corporation | Methods and apparatus for a multi-graph search and merge engine |
US20200272740A1 (en) * | 2019-02-27 | 2020-08-27 | Optum Services (Ireland) Limited | Anomalous activity detection in multi-provider transactional environments |
US20200401696A1 (en) * | 2019-06-18 | 2020-12-24 | International Business Machines Corporation | Security Incident Disposition Predictions Based on Cognitive Evaluation of Security Knowledge Graphs |
US20210014265A1 (en) * | 2019-07-12 | 2021-01-14 | Accenture Global Solutions Limited | Evaluating effectiveness of security controls in enterprise networks using graph values |
US20220094643A1 (en) * | 2020-09-23 | 2022-03-24 | Amazon Technologies, Inc. | Compositional reasoning techniques for role reachability analyses in identity systems |
US11271929B1 (en) * | 2020-09-28 | 2022-03-08 | BIZZ dot BUZZ, LLC | Dynamic display control application for controlling graphical user interface elements based on activity data |
US20220116455A1 (en) * | 2021-11-16 | 2022-04-14 | Arun Raghunath | Computational storage in a function-as-a-service architecture |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230342356A1 (en) * | 2022-04-22 | 2023-10-26 | International Business Machines Corporation | Generate digital signature of a query execution plan using similarity hashing |
US11914593B2 (en) * | 2022-04-22 | 2024-02-27 | International Business Machines Corporation | Generate digital signature of a query execution plan using similarity hashing |
Also Published As
Publication number | Publication date |
---|---|
US11943241B2 (en) | 2024-03-26 |
US20240195821A1 (en) | 2024-06-13 |
US11695785B2 (en) | 2023-07-04 |
US11627155B1 (en) | 2023-04-11 |
US11943240B2 (en) | 2024-03-26 |
US20230087054A1 (en) | 2023-03-23 |
US20230134945A1 (en) | 2023-05-04 |
US11876813B2 (en) | 2024-01-16 |
US11575696B1 (en) | 2023-02-07 |
US20230093003A1 (en) | 2023-03-23 |
US20230099403A1 (en) | 2023-03-30 |
US11611573B1 (en) | 2023-03-21 |
US20230208861A1 (en) | 2023-06-29 |
US20230231868A1 (en) | 2023-07-20 |
US20240098101A1 (en) | 2024-03-21 |
US20230087093A1 (en) | 2023-03-23 |
US11625499B1 (en) | 2023-04-11 |
US20230275910A1 (en) | 2023-08-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11625499B1 (en) | Cloud data attack detection query builder | |
US11516255B2 (en) | Dynamic policy injection and access visualization for threat detection | |
US11985170B2 (en) | Endpoint data loss prevention (DLP) | |
JP7402183B2 (en) | Small footprint endpoint data loss prevention (DLP) | |
CN107563203B (en) | Integrated security policy and event management | |
US11886610B1 (en) | Cloud environment database log analyzer with risk signature detection | |
WO2021016517A1 (en) | Methods and system for identifying infrastructure attack progressions | |
US20230094856A1 (en) | Compact cloud access network based on role-to-resource detection with resource state change tracking and provenance | |
US11704364B2 (en) | Evaluation of security policies in real-time for entities using graph as datastore | |
US12052278B1 (en) | Cloud data peak signal detection and prioritization for data security posture management | |
US20230205897A1 (en) | Application groups for enforcing data transfer controls | |
WO2023129805A1 (en) | Application groups for enforcing data transfer controls | |
Khan et al. | Integrity Model based Intrusion Detection System: A Practical Approach | |
Rayees et al. | Integrity Model based Intrusion Detection System: A Practical Approach | |
CN118541692A (en) | Application group for enforcing data transfer control |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY |
|
FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO SMALL (ORIGINAL EVENT CODE: SMAL); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY |
|
AS | Assignment |
Owner name: NORMALYZE, INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:ITHAL, RAVISHANKAR GANESH;MURUGESAN, MUMMOORTHY;SIGNING DATES FROM 20221011 TO 20221012;REEL/FRAME:061398/0530 |
|
AS | Assignment |
Owner name: NORMALYZE, INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:ITHAL, RAVISHANKAR GANESH;MURUGESAN, MUMMOORTHY;REEL/FRAME:062050/0675 Effective date: 20221205 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |