US20160012239A1 - Automating post-hoc access control checks and compliance audits - Google Patents
Automating post-hoc access control checks and compliance audits Download PDFInfo
- Publication number
- US20160012239A1 US20160012239A1 US14/326,675 US201414326675A US2016012239A1 US 20160012239 A1 US20160012239 A1 US 20160012239A1 US 201414326675 A US201414326675 A US 201414326675A US 2016012239 A1 US2016012239 A1 US 2016012239A1
- Authority
- US
- United States
- Prior art keywords
- access control
- security state
- information
- request
- control request
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/552—Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
-
- 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/604—Tools and structures for managing or administering access control systems
Definitions
- ERP enterprise resource planning
- CRM customer relationship management
- IT information technology
- the compliance regulations can include complex security and compliance policies that change frequently. This can result in frequent, unintentional violations of policies, e.g., users previously permitted to access a resource are now not permitted to access the resource due to a policy change. As a result, administrators and/or auditors have to dig through numerous logged accesses for incidents of policy violations, and filter out unintentional incidents caused by recent changes in security policies and inaccurate, or outdated policies.
- Implementations of the present disclosure include computer-implemented methods for providing post-hoc access control checks. Implementations include actions of receiving a request to analyze an access control request, for which an access control decision has been provided based on a policy, retrieving information associated with the access control request from a log, the information including a first security state version and a time, determining a time interval based on the time and an audit policy, retrieving information associated with at least a second security state version based on the time interval, and evaluating the access control request based on information of the first security state and information of the second security state to provide a post-hoc access control decision.
- the second security state version includes a security state that was active within at least a portion of the time interval; actions further include selectively filtering the access control request from a list of potential policy violations based on the post-hoc access control decision; actions further include: receiving expert information based on the time interval, transmitting a request for additional information based on the expert information, and receiving the additional information, wherein evaluating the access control request is further based on the additional information; the expert information is received from a knowledge base, and the additional information is received from a user; actions further include, previous to receiving the request to analyze the access control request: receiving the access control request at the time, evaluating the access control request based on the first security state version, which is active at the time, to provide the access control decision, providing details of one or more of the access control request and the access control decision for storage in the log, and transmitting the access control decision for enforcement of the policy based on the access control decision; and information of the first security state and information of the second security state are
- the present disclosure also provides a computer-readable storage medium coupled to one or more processors and having instructions stored thereon which, when executed by the one or more processors, cause the one or more processors to perform operations in accordance with implementations of the methods provided herein.
- the present disclosure further provides a system for implementing the methods provided herein.
- the system includes one or more processors, and a computer-readable storage medium coupled to the one or more processors having instructions stored thereon which, when executed by the one or more processors, cause the one or more processors to perform operations in accordance with implementations of the methods provided herein.
- FIG. 1 depicts an example high-level architecture in accordance with implementations of the present disclosure.
- FIGS. 2-4 depict example protocols in accordance with implementations of the present disclosure.
- FIG. 5 depicts an example process that can be executed in accordance with implementations of the present disclosure.
- FIG. 6 is a schematic illustration of example computer systems that can be used to execute implementations of the present disclosure.
- Implementations of the present disclosure are generally directed to automated, post-hoc analysis of access control decisions. More specifically, implementations of the present disclosure store and provide access to versions of security states. In some implementations, an access control decision, e.g., PERMT, DENY, can be reviewed based on a then current (at the time access was requested) security state and/or one or more previous security states. In this manner, adverse access control decisions, e.g., DENY, that resulted from recently changed policies, for example, can be accounted for. In some examples, the post-hoc analysis is automatically performed in response to a request, without requiring user input. Implementations of the present disclosure further provide automated compliance audits of enterprise systems.
- an access control decision e.g., PERMT, DENY
- adverse access control decisions e.g., DENY
- Implementations of the present disclosure further provide automated compliance audits of enterprise systems.
- implementations of the present disclosure enable post-hoc analysis of one or more access control decisions to filter at least one access control decision from further investigation during an audit. Accordingly, implementations of the present disclosure enable more flexible and agile of system operations, as well as reducing costs required to issue audit certificates.
- FIG. 1 depicts an example architecture 100 in accordance with implementations of the present disclosure.
- the example architecture 100 supports versioning of security configurations and logs the runtime access control decisions.
- the example architecture 100 includes an information and communications technology (ICT) system 102 , a policy enforcement system 104 , and a security state versioning system 106 .
- the ICT system 102 includes one or more enterprise systems, e.g., an enterprise resource planning (ERP) system, a customer relationship management (CRM) system.
- ERP enterprise resource planning
- CRM customer relationship management
- the ICT system 102 , the policy enforcement system 104 , and/or the security versioning state system 106 can be provided by one or more server systems.
- the example architecture 100 includes a user 108 using a computing device 110 , e.g., a client-side computing device, to interact with the ICT system 102 .
- the user 108 can be an employee of the enterprise, and can use the computing device 110 to access the ERP and/or CRM systems.
- the example architecture 100 includes a user 112 using a computing device 114 , e.g., a client-side computing device, to interact with the policy enforcement system.
- the user 112 can be an auditor that uses the computing device 114 to access the policy enforcement system 104 , e.g., to audit compliance with one or more policies or regulations.
- the example architecture 100 also includes a user 116 using a computing device 118 , e.g., a client-side computing device, to interact with the security state versioning system 106 .
- a computing device 118 e.g., a client-side computing device
- the user 116 can be an administrator of the enterprise, and can use the computing device 118 to administer one or more policies, e.g., add, remove and/or edit access control constraints of the one or more policies
- the example environment 100 further includes a system log 120 and an audit knowledge base 122 .
- the system log 120 records interactions between users, e.g., the user 108 , and the ICT system 102 .
- the request and any relevant data e.g., user ID, time, date, resource ID, request result (PERMIT, DENY) can be recorded in the system log 120 .
- the system log 120 stores, during runtime, all information that might be necessary to perform an audit during a post-hoc system audit.
- the system log 120 includes computer-readable memory.
- the policy enforcement system 104 can interact with the system log 120 , e.g., store request results (PERMIT, DENY), retrieve log data for an audit.
- the audit knowledge base 122 provides a formalization of the expert knowledge of audit and security experts.
- information stored in the audit knowledge base 122 can be retrieved to support the automation of the post-hoc audit by guiding the auditor, e.g., the user 112 , and providing additional expert knowledge, e.g., by asking additional questions. The answers to the additional questions can be used during a re-play of access requests, described in further detail herein.
- the audit knowledge base 122 includes computer-readable memory.
- components of the example environment 100 can communicate with one another using one or more communication channels.
- a network e.g., a large computer network, such as a local area network (LAN), a wide area network (WAN), the Internet, a cellular network, or a combination thereof.
- LAN local area network
- WAN wide area network
- the Internet a cellular network
- the ICT system 102 includes a plurality of policy enforcement points (PEPs) 124 .
- PEPs 124 can be distributed across the ICT system 102 .
- PEPs can be embedded into different services of the ICT system 102 .
- each PEP 124 communicates with a central policy decision point (PDP).
- PDP policy decision point
- a PDP 126 is provided in the policy enforcement system 104 .
- the PDP 126 evaluates access control requests received from any of the PEPs 124 , and, in accordance with implementations of the present disclosure, determines whether the user request is to be granted or denied, based on the current security state, e.g., the current configuration for enforcing security and/or compliance policies, and/or one or more previous security states.
- a PEP 124 can receive a request from a user to access a resource, e.g., application, data, and can send an access control request to the PDP 126 .
- the PDP 126 determines any attributes that are required to resolve the access control request, obtains values for the attributes, and makes an access control determination based on the attributes. In some examples, the PDP 126 provides an access control decision, e.g., PERMIT, DENY, to the PEP 124 that issued the access control request. In some examples, the PEP 124 enables or prevents user access to the resource, e.g., application, data, based on the access control decision.
- the resource e.g., application, data
- the policy enforcement system 104 further includes an audit PDP 128 .
- the audit PDP 128 supports an auditor, e.g., the user 112 , during a post-hoc compliance or security audit, e.g., after access control requests have been received and responded to.
- the audit PDP 128 enables the auditor to replay access control requests with respect to different versions of the security state. For example, the audit PDP 128 enables the auditor to replay an access control request under a first security state (X 1 ), in which the user request is granted, and/or under a second security state (X 2 ), in which the user request is denied.
- X 1 first security state
- X 2 second security state
- the security state versioning system 106 stores all configurations that describe the current security policy, e.g., the access control policy, a user-role configuration, etc.
- the security state versioning system 106 includes a policy/security store 130 to store this information.
- information stored in the policy/security store 130 is versioned. That is, the policy/security store 130 stores the history of changes to the security state, and enables access to different versions of the security state.
- the policy/security store 130 includes computer-readable memory.
- security policies are implemented to ensure compliance with applicable regulations, e.g., the Health Insurance Portability and Accountability Act (HIPAA), in the health care sector, Basel II, in the financial sector.
- HIPAA Health Insurance Portability and Accountability Act
- IT information technology
- Security and compliance policies change frequently, which results in frequent, unintentional violations of policies. For example, a user is no longer permitted to access a resource that the user was previously permitted to access due to a policy change, and a violation occurs in response to the user attempting to access the resource.
- Implementations of the present disclosure are generally directed to automated analysis of post-hoc access control decisions, and automated compliance audits of enterprise systems. More particularly, implementations of the present disclosure provide versioning of the security state of an enterprise system.
- the security state includes the system configuration to enforce security and/or compliance policies.
- a history of information used by the PDP at runtime is maintained. For example, and as described above, the PDP is the component that, at runtime, decides whether a specific access request to a resource and/or data should be granted or denied.
- access control policies are defined before access, and the PDP determines, at access, whether a user request to access a resource is to be granted or denied.
- Implementations of the present disclosure enable post-access analysis of access control requests.
- the post-access analysis uses information about the security state as it was at-access, and also uses the history of the security state before and/or after the access request, i.e., the full history of the security state.
- implementations of the present disclosure enable analysis of access control requests for arbitrary time ranges and intervals. This, for example, enables an access control request to be replayed in one or more security states, e.g., the security state at the access attempt, an earlier security state, a later security state.
- policies are defined pre-access and evaluated at-access. Implementations of the present disclosure enable the use of audit policies that can be executed post-access.
- an audit policy can use information that becomes available after the actual access evaluation, e.g., granted, denied.
- the audit policy and can query the policy state over time ranges and intervals. Consequently, an audit policy evaluation is not required to be performed within a certain time frame.
- the audit policy can provide for human input. For example, for information hard or impossible to determine by a machine, e.g., ethical considerations or human evaluation, a human can be asked to provide an assessment, e.g., about the situation the access was executed in.
- FIG. 2 depicts an example protocol 200 in accordance with implementations of the present disclosure.
- the example protocol 200 represents an example business scenario, in which two access requests are submitted by the same user, and between the access requests, the security policy changes.
- example protocol 200 is based on a simplistic access control model, in which the security state is only define by a user-role mapping, e.g., a mapping of unique user IDs to one or more roles, each role having respective levels of permission to access one or more resources.
- the example protocol 200 can be executed using one or more components of the example architecture 100 of FIG. 1 .
- the current version of the security state is version X 1 , in which a subject S 1 is assigned a role R 1 .
- an access control request A 1 is received ( 202 ) from a PEP 124 at time T 1 by the PDP 126 .
- the user 108 can request access to a resource, and a corresponding PEP 124 can submit the access control request A 1 to the PDP 126 .
- the access control request A 1 identifies a subject S 1 , e.g., the user requesting access.
- the PDP 126 evaluates the access control request A 1 in view of the then current security policy, which is provided in version X 1 .
- the PDP 126 requests ( 204 ) and receives ( 206 ) the security state for the subject S 1 , e.g., from the security state versioning system 106 . More specifically, the PDP 126 retrieves the role R 1 assigned to the subject S 1 in the version X 1 . In this example, the PDP 126 evaluates ( 208 ) the access request A 1 based on the role R 1 and determines that the access request R 1 is to be denied. The PDP 126 sends ( 210 ) a DENY response, e.g., to the PEP 124 , and logs ( 212 ) the evaluation, e.g., into the system log 120 .
- a DENY response e.g., to the PEP 124
- logs ( 212 ) the evaluation e.g., into the system log 120 .
- the security state is changed to version X 2 , in which the subject S 1 is assigned both roles R 1 and R 2 .
- an administrator e.g., the user 116 using the computing device 118 , requests ( 214 ) that the role R 2 also be assigned to the subject S 1 .
- the security state is changed to version X 3 , in which the subject S 1 is assigned only the role R 2 .
- an administrator e.g., the user 116 using the computing device 118 , requests ( 216 ) that the role R 1 be removed from assignment to the subject S 1 .
- time T 3 can be less than 24 hours after time T 1 .
- an access control request A 2 is received ( 218 ) from a PEP 124 at time T 4 by the PDP 126 .
- the user 108 can request access to a resource, and a corresponding PEP 124 can submit the access control request A 2 to the PDP 126 .
- the access control request A 2 identifies the subject S 1 , e.g., the user requesting access.
- the PDP 126 evaluates the access control request A 2 in view of the then current security policy, which is provide in version X 3 .
- the PDP 126 requests ( 220 ) and receives ( 222 ) the security state for the subject S 1 , e.g., from the security state versioning system 106 . More specifically, the PDP 126 retrieves the role R 2 assigned to the subject S 1 in the version X 3 . In this example, the PDP 126 evaluates ( 224 ) the access request A 2 based on the role R 2 and determines that the access request A 2 is to be granted. The PDP 126 sends ( 226 ) a PERMIT response, e.g., to the PEP 124 , and logs ( 228 ) the evaluation, e.g., into the system log 120 .
- a PERMIT response e.g., to the PEP 124
- logs ( 228 ) the evaluation e.g., into the system log 120 .
- an audit can be performed to, for example, investigate and account for denied requests.
- an auditor e.g., the user 112
- the policy enforcement system 104 can interact with the policy enforcement system 104 , e.g., using the computing device 114 , to perform the audit.
- it can be determined that all denials, e.g., DENY, that are determined to be inconsequential, or low risk are filtered from the audit.
- An example inconsequential, or low risk denial can include a denial that, if another role assignment for the same subject within 24 hours (24 h) would have permitted the request. Consequently, an audit policy can be provided that removes a denial from consideration in the audit, if another role assignment for the same subject within 24 hours (24 h) would have permitted the request.
- FIG. 3 depicts an example protocol 300 representing an example, automatic audit based on the above-described, example audit policy. More generally, the example protocol 300 represents an example automated audit of compliance with one or more policies to filter out non-critical access failures, e.g., access attempts that were denied.
- a list of denied access requests can be provided that includes denied access requests that could be considered during an audit, e.g., denied access requests that occurred during a specified period of time and/or for a specified system.
- a request for analysis can automatically be provided for each denied access request in the list of denied access requests, and one or more denied access requests can be filtered (removed) from the list of denied access requests based on the respective analyses.
- the one or more analyses are automatically performed and are based on one or more audit policies.
- a revised list of denied access requests can be provided, and can include only denied access requests that are to be considered during the audit.
- the audit PDP 128 receives ( 302 ) a request to analyze the access control request A 1 , which is described above with reference to FIG. 2 .
- the access control request A 1 can be included in a list of denied access requests that are to be analyzed.
- the audit PDP 128 requests ( 304 ) information associated with the access control request A 1 from the system log 120 .
- the system log 120 provides ( 306 ) the information associated with the access control request A 1 to the audit PDP 128 .
- the audit PDP 128 requests ( 308 ) the security state from the security state versioning system 106 . More particularly, the audit PDP 128 requests the security state based on the example audit policy described above.
- the audit PDP 128 requests the security state for all roles of the subject S 1 from 24 hours before to 24 hours after the access control request A 1 was submitted, e.g., time T 1 . Because, in the example of FIG. 2 , the version X 3 was created within 24 hours after time T 1 , the security state versioning system 106 returns ( 310 ) the roles R 1 and R 2 . The audit PDP 128 evaluates ( 312 ) the denied access request based on the roles R 1 and R 2 . Given role R 2 , the audit PDP 128 evaluates to PERMIT. Consequently, the audit PDP 128 indicates ( 314 ) PERMIT, the access control request A 1 can be removed from the list of denied access requests, and the access control request A 1 is removed from consideration during the audit.
- a healthcare application can be considered, for example, in which a physician must have a treatment relationship with a patient to access the patient's information.
- the physician may request access to the patient's health record, for example, where the system, e.g., the policy enforcement system 104 , is informed about a treatment relationship only after the access is requested, e.g., an emergency situation, in which the patient is not able to confirm the treatment relationship. Consequently, the physician's access request may at first be denied.
- an audit policy can be defined, which removes all denied request accesses from the list of denied access requests, where a treatment relationship was created within the 24 hours after the access request, for example.
- an audit can be assisted based on information provided from a knowledge base, e.g., the audit knowledge base 122 .
- a knowledge base e.g., the audit knowledge base 122 .
- an auditor e.g., the user 112
- the auditor makes use of the audit knowledge base during the investigation.
- FIG. 4 depicts an example protocol 400 based on the above-described, example investigation.
- the example protocol 400 represents an example assisted system audit, e.g., assisted by the audit knowledge base 122 , in accordance with implementations of the present disclosure.
- An auditor e.g., the user 112 using the computing device 114 , sends ( 402 ) a request for analysis of the access control request A 1 .
- the audit PDP 128 receives the request to analyze the access control request A 1 , which is described above with reference to FIG. 2 .
- the audit PDP 128 requests ( 404 ) information associated with the access control request A 1 from the system log 120 .
- the system log 120 provides ( 406 ) the information associated with the access control request A 1 to the audit PDP 128 .
- the audit PDP 128 requests ( 408 ) expert information from the audit knowledge base 122 .
- the audit knowledge base 122 can provide expert information that can, for example, recommend situations that the auditor 112 , 114 should take into account during the audit.
- the expert information is identified based on the subject and/or details of the access control request.
- the audit knowledge base 122 sends ( 410 ) a response indicating situations that the auditor should take into account: check whether the non-managerial user would have been able to access the information in an interval of 24 hours before and 24 hours after the denied access request; check whether the access attempt was done to fulfill a low-risk activity that requires managerial approval, e.g., signing a contract up to a certain limit; and check whether a manager was not available at that time.
- the audit PDP 128 requests ( 412 ) the security state from the security state versioning system 106 . More particularly, the audit PDP 128 automatically requests the security state based on the example audit policy described above. That is, the audit PDP 128 requests the security state for all roles of the subject S 1 from 24 hours before to 24 hours after the access control request A 1 was submitted, e.g., time T 1 . Because, in the example of FIG. 2 , the version X 3 was created within 24 hours after time T 1 , the security state versioning system 106 returns ( 414 ) the roles R 1 and R 2 . The audit PDP 128 evaluates ( 416 ) the denied access request based on the roles R 1 and R 2 and the expert information.
- the audit PDP 128 can return PERMIT to the auditor 112 , 114 .
- the audit PDP 128 sends ( 418 ) a request to the auditor 112 , 114 to answer the questions: was the risk low, and was the manager absent.
- the auditor 112 , 114 sends ( 420 ) a response indicating low risk and manager absent.
- the audit PDP 128 evaluates ( 422 ) to PERMIT. Consequently, the audit PDP 128 indicates ( 424 ) PERMIT to the auditor 112 , 114 .
- the additional information given by the auditor 112 , 114 was sufficient to PERMIT the access request. Consequently, the previously denied access request can be removed from the list of denied access requests. If, on the other hand, the additional information was not sufficient, e.g., the risk was not low and/or the manager was not absent, the denied access request is not removed from the list of denied access requests, and must be further analyzed as a potential policy violation.
- FIG. 5 depicts an example process 500 that can be executed in accordance with implementations of the present disclosure.
- the example process 500 can be provided as one or more computer-executable programs executed using one or more computing devices.
- a request to analyze an access control request is received ( 502 ).
- an audit PDP e.g., the audit PDP 128 of FIG. 1 , receives the request to analyze an access control request.
- the access control request is one, for which an access control decision has been provided.
- the access control request can have been previously evaluated based on an access control policy, and an access control decision already provided.
- Information associated with the access control request is retrieved ( 504 ).
- details of the access control request can be retrieved from a system log, e.g., the system log 120 of FIG. 1 .
- the detail includes a first security state version and a time, the first security state version being an active security state at the time.
- a time interval is determined based on the time and an audit policy ( 506 ).
- the audit policy defines parameters for determining the time interval based on the time, e.g., 24 hours before, and/or 24 hours after.
- the audit policy defines conditions for determining a post-hoc access control decision based on one or more security states that were active at some point within the time interval.
- Information associated with at least a second security state version is retrieved based on the time interval ( 508 ).
- the audit PDP retrieves information associated with one or more security states that were active in at some point within the time interval from a security state versioning system, e.g., the security state versioning system 106 of FIG. 1 .
- the access control request is evaluated to provide a post-hoc access control decision ( 510 ).
- the access control request is evaluated based on information of the first security state and information of the second security state.
- the post-hoc access control decision is different than the access control decision previously provided for the access control request.
- a previously provided access control decision can be a DENY decision
- the post-hoc access control decision is provided as a PERMIT decision.
- the system 600 can be used for the operations described in association with the implementations described herein.
- the system 600 may be included in any or all of the server components discussed herein.
- the system 600 includes a processor 610 , a memory 620 , a storage device 630 , and an input/output device 640 .
- the components 610 , 620 , 630 , 640 are interconnected using a system bus 650 .
- the processor 610 is capable of processing instructions for execution within the system 600 .
- the processor 610 is a single-threaded processor.
- the processor 610 is a multi-threaded processor.
- the processor 610 is capable of processing instructions stored in the memory 620 or on the storage device 630 to display graphical information for a user interface on the input/output device 640 .
- the memory 620 stores information within the system 600 .
- the memory 620 is a computer-readable medium.
- the memory 620 is a volatile memory unit.
- the memory 620 is a non-volatile memory unit.
- the storage device 630 is capable of providing mass storage for the system 600 .
- the storage device 630 is a computer-readable medium.
- the storage device 630 may be a floppy disk device, a hard disk device, an optical disk device, or a tape device.
- the input/output device 640 provides input/output operations for the system 600 .
- the input/output device 640 includes a keyboard and/or pointing device.
- the input/output device 640 includes a display unit for displaying graphical user interfaces.
- the features described can be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them.
- the apparatus can be implemented in a computer program product tangibly embodied in an information carrier, e.g., in a machine-readable storage device, for execution by a programmable processor; and method steps can be performed by a programmable processor executing a program of instructions to perform functions of the described implementations by operating on input data and generating output.
- the described features can be implemented advantageously in one or more computer programs that are executable on a programmable system including at least one programmable processor coupled to receive data and instructions from, and to transmit data and instructions to, a data storage system, at least one input device, and at least one output device.
- a computer program is a set of instructions that can be used, directly or indirectly, in a computer to perform a certain activity or bring about a certain result.
- a computer program can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment.
- Suitable processors for the execution of a program of instructions include, by way of example, both general and special purpose microprocessors, and the sole processor or one of multiple processors of any kind of computer.
- a processor will receive instructions and data from a read-only memory or a random access memory or both.
- Elements of a computer can include a processor for executing instructions and one or more memories for storing instructions and data.
- a computer can also include, or be operatively coupled to communicate with, one or more mass storage devices for storing data files; such devices include magnetic disks, such as internal hard disks and removable disks; magneto-optical disks; and optical disks.
- Storage devices suitable for tangibly embodying computer program instructions and data include all forms of non-volatile memory, including by way of example semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks.
- semiconductor memory devices such as EPROM, EEPROM, and flash memory devices
- magnetic disks such as internal hard disks and removable disks
- magneto-optical disks and CD-ROM and DVD-ROM disks.
- the processor and the memory can be supplemented by, or incorporated in, ASICs (application-specific integrated circuits).
- ASICs application-specific integrated circuits
- the features can be implemented on a computer having a display device such as a CRT (cathode ray tube) or LCD (liquid crystal display) monitor for displaying information to the user and a keyboard and a pointing device such as a mouse or a trackball by which the user can provide input to the computer.
- a display device such as a CRT (cathode ray tube) or LCD (liquid crystal display) monitor for displaying information to the user and a keyboard and a pointing device such as a mouse or a trackball by which the user can provide input to the computer.
- the features can be implemented in a computer system that includes a back-end component, such as a data server, or that includes a middleware component, such as an application server or an Internet server, or that includes a front-end component, such as a client computer having a graphical user interface or an Internet browser, or any combination of them.
- the components of the system can be connected by any form or medium of digital data communication such as a communication network. Examples of communication networks include, e.g., a LAN, a WAN, and the computers and networks forming the Internet.
- the computer system can include clients and servers.
- a client and server are generally remote from each other and typically interact through a network, such as the described one.
- the relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Automation & Control Theory (AREA)
- Storage Device Security (AREA)
Abstract
Description
- Modern enterprise systems, e.g., enterprise resource planning (ERP) systems, customer relationship management (CRM) systems, enforce a variety of different and complex security policies. Moreover, more and more enterprises operate in regulated markets and, thus, need to prove that their information technology (IT) systems comply with applicable compliance regulations.
- The compliance regulations can include complex security and compliance policies that change frequently. This can result in frequent, unintentional violations of policies, e.g., users previously permitted to access a resource are now not permitted to access the resource due to a policy change. As a result, administrators and/or auditors have to dig through numerous logged accesses for incidents of policy violations, and filter out unintentional incidents caused by recent changes in security policies and inaccurate, or outdated policies.
- Implementations of the present disclosure include computer-implemented methods for providing post-hoc access control checks. Implementations include actions of receiving a request to analyze an access control request, for which an access control decision has been provided based on a policy, retrieving information associated with the access control request from a log, the information including a first security state version and a time, determining a time interval based on the time and an audit policy, retrieving information associated with at least a second security state version based on the time interval, and evaluating the access control request based on information of the first security state and information of the second security state to provide a post-hoc access control decision.
- These and other implementations optionally include one or more of the following features: the second security state version includes a security state that was active within at least a portion of the time interval; actions further include selectively filtering the access control request from a list of potential policy violations based on the post-hoc access control decision; actions further include: receiving expert information based on the time interval, transmitting a request for additional information based on the expert information, and receiving the additional information, wherein evaluating the access control request is further based on the additional information; the expert information is received from a knowledge base, and the additional information is received from a user; actions further include, previous to receiving the request to analyze the access control request: receiving the access control request at the time, evaluating the access control request based on the first security state version, which is active at the time, to provide the access control decision, providing details of one or more of the access control request and the access control decision for storage in the log, and transmitting the access control decision for enforcement of the policy based on the access control decision; and information of the first security state and information of the second security state are stored in a security state versioning system.
- The present disclosure also provides a computer-readable storage medium coupled to one or more processors and having instructions stored thereon which, when executed by the one or more processors, cause the one or more processors to perform operations in accordance with implementations of the methods provided herein.
- The present disclosure further provides a system for implementing the methods provided herein. The system includes one or more processors, and a computer-readable storage medium coupled to the one or more processors having instructions stored thereon which, when executed by the one or more processors, cause the one or more processors to perform operations in accordance with implementations of the methods provided herein.
- It is appreciated that methods in accordance with the present disclosure can include any combination of the aspects and features described herein. That is, methods in accordance with the present disclosure are not limited to the combinations of aspects and features specifically described herein, but also include any combination of the aspects and features provided.
- The details of one or more implementations of the present disclosure are set forth in the accompanying drawings and the description below. Other features and advantages of the present disclosure will be apparent from the description and drawings, and from the claims.
-
FIG. 1 depicts an example high-level architecture in accordance with implementations of the present disclosure. -
FIGS. 2-4 depict example protocols in accordance with implementations of the present disclosure. -
FIG. 5 depicts an example process that can be executed in accordance with implementations of the present disclosure. -
FIG. 6 is a schematic illustration of example computer systems that can be used to execute implementations of the present disclosure. - Like reference symbols in the various drawings indicate like elements.
- Implementations of the present disclosure are generally directed to automated, post-hoc analysis of access control decisions. More specifically, implementations of the present disclosure store and provide access to versions of security states. In some implementations, an access control decision, e.g., PERMT, DENY, can be reviewed based on a then current (at the time access was requested) security state and/or one or more previous security states. In this manner, adverse access control decisions, e.g., DENY, that resulted from recently changed policies, for example, can be accounted for. In some examples, the post-hoc analysis is automatically performed in response to a request, without requiring user input. Implementations of the present disclosure further provide automated compliance audits of enterprise systems. More specifically, implementations of the present disclosure enable post-hoc analysis of one or more access control decisions to filter at least one access control decision from further investigation during an audit. Accordingly, implementations of the present disclosure enable more flexible and agile of system operations, as well as reducing costs required to issue audit certificates.
-
FIG. 1 depicts anexample architecture 100 in accordance with implementations of the present disclosure. In some implementations, and as described in further detail herein, theexample architecture 100 supports versioning of security configurations and logs the runtime access control decisions. - The
example architecture 100 includes an information and communications technology (ICT)system 102, apolicy enforcement system 104, and a securitystate versioning system 106. In some examples, theICT system 102 includes one or more enterprise systems, e.g., an enterprise resource planning (ERP) system, a customer relationship management (CRM) system. In some examples, theICT system 102, thepolicy enforcement system 104, and/or the securityversioning state system 106 can be provided by one or more server systems. - The
example architecture 100 includes auser 108 using acomputing device 110, e.g., a client-side computing device, to interact with theICT system 102. For example, theuser 108 can be an employee of the enterprise, and can use thecomputing device 110 to access the ERP and/or CRM systems. Theexample architecture 100 includes auser 112 using acomputing device 114, e.g., a client-side computing device, to interact with the policy enforcement system. For example, theuser 112 can be an auditor that uses thecomputing device 114 to access thepolicy enforcement system 104, e.g., to audit compliance with one or more policies or regulations. Theexample architecture 100 also includes auser 116 using acomputing device 118, e.g., a client-side computing device, to interact with the securitystate versioning system 106. For example, theuser 116 can be an administrator of the enterprise, and can use thecomputing device 118 to administer one or more policies, e.g., add, remove and/or edit access control constraints of the one or more policies - The
example environment 100 further includes asystem log 120 and anaudit knowledge base 122. In some examples, the system log 120 records interactions between users, e.g., theuser 108, and theICT system 102. For example, when a user requests access to a resource, the request and any relevant data, e.g., user ID, time, date, resource ID, request result (PERMIT, DENY) can be recorded in thesystem log 120. For example, the system log 120 stores, during runtime, all information that might be necessary to perform an audit during a post-hoc system audit. In some examples, thesystem log 120 includes computer-readable memory. - In some examples, the
policy enforcement system 104 can interact with thesystem log 120, e.g., store request results (PERMIT, DENY), retrieve log data for an audit. In some examples, theaudit knowledge base 122 provides a formalization of the expert knowledge of audit and security experts. In some implementations, information stored in theaudit knowledge base 122 can be retrieved to support the automation of the post-hoc audit by guiding the auditor, e.g., theuser 112, and providing additional expert knowledge, e.g., by asking additional questions. The answers to the additional questions can be used during a re-play of access requests, described in further detail herein. In some examples, theaudit knowledge base 122 includes computer-readable memory. - Although not depicted in
FIG. 1 , components of theexample environment 100 can communicate with one another using one or more communication channels. For example, one or more of theICT system 102, thepolicy enforcement system 104, the securitystate versioning system 106, thecomputing devices system log 120, and theaudit knowledge base 122 can communicate using a network, e.g., a large computer network, such as a local area network (LAN), a wide area network (WAN), the Internet, a cellular network, or a combination thereof. - In the depicted example, the
ICT system 102 includes a plurality of policy enforcement points (PEPs) 124. In some examples, PEPs 124 can be distributed across theICT system 102. For example, PEPs can be embedded into different services of theICT system 102. In some examples, eachPEP 124 communicates with a central policy decision point (PDP). In the example ofFIG. 1 , aPDP 126 is provided in thepolicy enforcement system 104. In some examples, at runtime, e.g., when the system is operating and a user is able to request access to data, the PDP 126 evaluates access control requests received from any of thePEPs 124, and, in accordance with implementations of the present disclosure, determines whether the user request is to be granted or denied, based on the current security state, e.g., the current configuration for enforcing security and/or compliance policies, and/or one or more previous security states. For example, a PEP 124 can receive a request from a user to access a resource, e.g., application, data, and can send an access control request to thePDP 126. In some examples, thePDP 126 determines any attributes that are required to resolve the access control request, obtains values for the attributes, and makes an access control determination based on the attributes. In some examples, the PDP 126 provides an access control decision, e.g., PERMIT, DENY, to the PEP 124 that issued the access control request. In some examples, the PEP 124 enables or prevents user access to the resource, e.g., application, data, based on the access control decision. - In the example of
FIG. 1 , thepolicy enforcement system 104 further includes anaudit PDP 128. In some implementations, theaudit PDP 128 supports an auditor, e.g., theuser 112, during a post-hoc compliance or security audit, e.g., after access control requests have been received and responded to. In some examples, theaudit PDP 128 enables the auditor to replay access control requests with respect to different versions of the security state. For example, theaudit PDP 128 enables the auditor to replay an access control request under a first security state (X1), in which the user request is granted, and/or under a second security state (X2), in which the user request is denied. - In some implementations, the security
state versioning system 106 stores all configurations that describe the current security policy, e.g., the access control policy, a user-role configuration, etc. In some examples, the securitystate versioning system 106 includes a policy/security store 130 to store this information. In accordance with implementations of the present disclosure, information stored in the policy/security store 130 is versioned. That is, the policy/security store 130 stores the history of changes to the security state, and enables access to different versions of the security state. In some examples, the policy/security store 130 includes computer-readable memory. - As described herein, enterprise systems need to enforce a variety of different and complex security policies. Such security policies are implemented to ensure compliance with applicable regulations, e.g., the Health Insurance Portability and Accountability Act (HIPAA), in the health care sector, Basel II, in the financial sector. Such compliance regulations, in hand with the increased awareness of information technology (IT) security, result in complex and dynamic security and compliance policies. Security and compliance policies change frequently, which results in frequent, unintentional violations of policies. For example, a user is no longer permitted to access a resource that the user was previously permitted to access due to a policy change, and a violation occurs in response to the user attempting to access the resource. In response to such violations, administrators and other responsible persons have to dig through numerous, logged accesses, which could indicate an incident, and filter out unintentional incidents, e.g., incidents caused by changes in security policies, and inaccurate or outdated policies. There is a significant cost required for manual system audits.
- Implementations of the present disclosure are generally directed to automated analysis of post-hoc access control decisions, and automated compliance audits of enterprise systems. More particularly, implementations of the present disclosure provide versioning of the security state of an enterprise system. In some examples, the security state includes the system configuration to enforce security and/or compliance policies. In accordance with implementations of the present disclosure, a history of information used by the PDP at runtime is maintained. For example, and as described above, the PDP is the component that, at runtime, decides whether a specific access request to a resource and/or data should be granted or denied. In some examples, access control policies are defined before access, and the PDP determines, at access, whether a user request to access a resource is to be granted or denied.
- Implementations of the present disclosure enable post-access analysis of access control requests. In some examples, the post-access analysis uses information about the security state as it was at-access, and also uses the history of the security state before and/or after the access request, i.e., the full history of the security state. In other words, implementations of the present disclosure enable analysis of access control requests for arbitrary time ranges and intervals. This, for example, enables an access control request to be replayed in one or more security states, e.g., the security state at the access attempt, an earlier security state, a later security state.
- As discussed above, policies are defined pre-access and evaluated at-access. Implementations of the present disclosure enable the use of audit policies that can be executed post-access. In some examples, an audit policy can use information that becomes available after the actual access evaluation, e.g., granted, denied. In some examples, and as described in further detail herein, the audit policy and can query the policy state over time ranges and intervals. Consequently, an audit policy evaluation is not required to be performed within a certain time frame. In some implementations, the audit policy can provide for human input. For example, for information hard or impossible to determine by a machine, e.g., ethical considerations or human evaluation, a human can be asked to provide an assessment, e.g., about the situation the access was executed in.
-
FIG. 2 depicts anexample protocol 200 in accordance with implementations of the present disclosure. Theexample protocol 200 represents an example business scenario, in which two access requests are submitted by the same user, and between the access requests, the security policy changes. In some examples,example protocol 200 is based on a simplistic access control model, in which the security state is only define by a user-role mapping, e.g., a mapping of unique user IDs to one or more roles, each role having respective levels of permission to access one or more resources. In some examples, theexample protocol 200 can be executed using one or more components of theexample architecture 100 ofFIG. 1 . - At time T0, the current version of the security state is version X1, in which a subject S1 is assigned a role R1. In the
example protocol 200, an access control request A1 is received (202) from aPEP 124 at time T1 by thePDP 126. For example, theuser 108 can request access to a resource, and acorresponding PEP 124 can submit the access control request A1 to thePDP 126. Accordingly, the access control request A1 identifies a subject S1, e.g., the user requesting access. In some examples, thePDP 126 evaluates the access control request A1 in view of the then current security policy, which is provided in version X1. ThePDP 126 requests (204) and receives (206) the security state for the subject S1, e.g., from the securitystate versioning system 106. More specifically, thePDP 126 retrieves the role R1 assigned to the subject S1 in the version X1. In this example, thePDP 126 evaluates (208) the access request A1 based on the role R1 and determines that the access request R1 is to be denied. ThePDP 126 sends (210) a DENY response, e.g., to thePEP 124, and logs (212) the evaluation, e.g., into the system log 120. - At time T2, the security state is changed to version X2, in which the subject S1 is assigned both roles R1 and R2. For example, an administrator, e.g., the
user 116 using thecomputing device 118, requests (214) that the role R2 also be assigned to the subject S1. At time T3, the security state is changed to version X3, in which the subject S1 is assigned only the role R2. For example, an administrator, e.g., theuser 116 using thecomputing device 118, requests (216) that the role R1 be removed from assignment to the subject S1. In this example, time T3 can be less than 24 hours after time T1. - In the example of
FIG. 2 , an access control request A2 is received (218) from aPEP 124 at time T4 by thePDP 126. For example, theuser 108 can request access to a resource, and acorresponding PEP 124 can submit the access control request A2 to thePDP 126. Accordingly, the access control request A2 identifies the subject S1, e.g., the user requesting access. In some examples, thePDP 126 evaluates the access control request A2 in view of the then current security policy, which is provide in version X3. ThePDP 126 requests (220) and receives (222) the security state for the subject S1, e.g., from the securitystate versioning system 106. More specifically, thePDP 126 retrieves the role R2 assigned to the subject S1 in the version X3. In this example, thePDP 126 evaluates (224) the access request A2 based on the role R2 and determines that the access request A2 is to be granted. ThePDP 126 sends (226) a PERMIT response, e.g., to thePEP 124, and logs (228) the evaluation, e.g., into the system log 120. - In some implementations, an audit can be performed to, for example, investigate and account for denied requests. For example, an auditor, e.g., the
user 112, can interact with thepolicy enforcement system 104, e.g., using thecomputing device 114, to perform the audit. In some examples, it can be determined that all denials, e.g., DENY, that are determined to be inconsequential, or low risk are filtered from the audit. An example inconsequential, or low risk denial can include a denial that, if another role assignment for the same subject within 24 hours (24 h) would have permitted the request. Consequently, an audit policy can be provided that removes a denial from consideration in the audit, if another role assignment for the same subject within 24 hours (24 h) would have permitted the request. -
FIG. 3 depicts anexample protocol 300 representing an example, automatic audit based on the above-described, example audit policy. More generally, theexample protocol 300 represents an example automated audit of compliance with one or more policies to filter out non-critical access failures, e.g., access attempts that were denied. - In some examples, a list of denied access requests can be provided that includes denied access requests that could be considered during an audit, e.g., denied access requests that occurred during a specified period of time and/or for a specified system. In some examples, a request for analysis can automatically be provided for each denied access request in the list of denied access requests, and one or more denied access requests can be filtered (removed) from the list of denied access requests based on the respective analyses. In some examples, the one or more analyses are automatically performed and are based on one or more audit policies. In some examples, a revised list of denied access requests can be provided, and can include only denied access requests that are to be considered during the audit.
- In the example of
FIG. 3 , theaudit PDP 128 receives (302) a request to analyze the access control request A1, which is described above with reference toFIG. 2 . For example, the access control request A1 can be included in a list of denied access requests that are to be analyzed. Theaudit PDP 128 requests (304) information associated with the access control request A1 from the system log 120. Thesystem log 120 provides (306) the information associated with the access control request A1 to theaudit PDP 128. Theaudit PDP 128 requests (308) the security state from the securitystate versioning system 106. More particularly, theaudit PDP 128 requests the security state based on the example audit policy described above. That is, theaudit PDP 128 requests the security state for all roles of the subject S1 from 24 hours before to 24 hours after the access control request A1 was submitted, e.g., time T1. Because, in the example ofFIG. 2 , the version X3 was created within 24 hours after time T1, the securitystate versioning system 106 returns (310) the roles R1 and R2. Theaudit PDP 128 evaluates (312) the denied access request based on the roles R1 and R2. Given role R2, theaudit PDP 128 evaluates to PERMIT. Consequently, theaudit PDP 128 indicates (314) PERMIT, the access control request A1 can be removed from the list of denied access requests, and the access control request A1 is removed from consideration during the audit. - The examples described above with reference to
FIGS. 2 and 3 , represent a relatively simplistic use case. It is appreciated, however, that implementations of the present disclosure can be applied in more complex use cases, and access control models, e.g., models, in which access control is based on more than just roles. A healthcare application can be considered, for example, in which a physician must have a treatment relationship with a patient to access the patient's information. The physician may request access to the patient's health record, for example, where the system, e.g., thepolicy enforcement system 104, is informed about a treatment relationship only after the access is requested, e.g., an emergency situation, in which the patient is not able to confirm the treatment relationship. Consequently, the physician's access request may at first be denied. In this example, an audit policy can be defined, which removes all denied request accesses from the list of denied access requests, where a treatment relationship was created within the 24 hours after the access request, for example. - In some implementations, an audit can be assisted based on information provided from a knowledge base, e.g., the
audit knowledge base 122. For example, an auditor, e.g., theuser 112, is tasked with investigating a denied access request, where the access request was denied, because a non-managerial user attempted to access confidential information during the absence of a senior manager. In this example, the auditor makes use of the audit knowledge base during the investigation. -
FIG. 4 depicts anexample protocol 400 based on the above-described, example investigation. Theexample protocol 400 represents an example assisted system audit, e.g., assisted by theaudit knowledge base 122, in accordance with implementations of the present disclosure. - An auditor, e.g., the
user 112 using thecomputing device 114, sends (402) a request for analysis of the access control request A1. Theaudit PDP 128 receives the request to analyze the access control request A1, which is described above with reference toFIG. 2 . Theaudit PDP 128 requests (404) information associated with the access control request A1 from the system log 120. Thesystem log 120 provides (406) the information associated with the access control request A1 to theaudit PDP 128. - The
audit PDP 128 requests (408) expert information from theaudit knowledge base 122. In some examples, theaudit knowledge base 122 can provide expert information that can, for example, recommend situations that theauditor audit knowledge base 122 sends (410) a response indicating situations that the auditor should take into account: check whether the non-managerial user would have been able to access the information in an interval of 24 hours before and 24 hours after the denied access request; check whether the access attempt was done to fulfill a low-risk activity that requires managerial approval, e.g., signing a contract up to a certain limit; and check whether a manager was not available at that time. - The
audit PDP 128 requests (412) the security state from the securitystate versioning system 106. More particularly, theaudit PDP 128 automatically requests the security state based on the example audit policy described above. That is, theaudit PDP 128 requests the security state for all roles of the subject S1 from 24 hours before to 24 hours after the access control request A1 was submitted, e.g., time T1. Because, in the example ofFIG. 2 , the version X3 was created within 24 hours after time T1, the securitystate versioning system 106 returns (414) the roles R1 and R2. Theaudit PDP 128 evaluates (416) the denied access request based on the roles R1 and R2 and the expert information. If, for example, it is determined that the subject S1 was assigned an appropriate role to be granted access, theaudit PDP 128 can return PERMIT to theauditor audit knowledge base 122, theaudit PDP 128 sends (418) a request to theauditor auditor audit PDP 128 evaluates (422) to PERMIT. Consequently, theaudit PDP 128 indicates (424) PERMIT to theauditor - In the example of
FIG. 4 , it is determined that the additional information given by theauditor -
FIG. 5 depicts an example process 500 that can be executed in accordance with implementations of the present disclosure. In some examples, the example process 500 can be provided as one or more computer-executable programs executed using one or more computing devices. - A request to analyze an access control request is received (502). For example, an audit PDP, e.g., the
audit PDP 128 ofFIG. 1 , receives the request to analyze an access control request. In some examples, the access control request is one, for which an access control decision has been provided. For example, the access control request can have been previously evaluated based on an access control policy, and an access control decision already provided. Information associated with the access control request is retrieved (504). For example, details of the access control request can be retrieved from a system log, e.g., the system log 120 ofFIG. 1 . In some examples, the detail includes a first security state version and a time, the first security state version being an active security state at the time. - A time interval is determined based on the time and an audit policy (506). In some examples, the audit policy defines parameters for determining the time interval based on the time, e.g., 24 hours before, and/or 24 hours after. In some examples, the audit policy defines conditions for determining a post-hoc access control decision based on one or more security states that were active at some point within the time interval. Information associated with at least a second security state version is retrieved based on the time interval (508). In some examples, the audit PDP retrieves information associated with one or more security states that were active in at some point within the time interval from a security state versioning system, e.g., the security
state versioning system 106 ofFIG. 1 . The access control request is evaluated to provide a post-hoc access control decision (510). In some examples, the access control request is evaluated based on information of the first security state and information of the second security state. In some examples, the post-hoc access control decision is different than the access control decision previously provided for the access control request. For example, and based on the audit policy, a previously provided access control decision can be a DENY decision, while the post-hoc access control decision is provided as a PERMIT decision. - Referring now to
FIG. 6 , a schematic diagram of anexample computing system 600 is provided. Thesystem 600 can be used for the operations described in association with the implementations described herein. For example, thesystem 600 may be included in any or all of the server components discussed herein. Thesystem 600 includes aprocessor 610, amemory 620, astorage device 630, and an input/output device 640. Thecomponents system bus 650. Theprocessor 610 is capable of processing instructions for execution within thesystem 600. In one implementation, theprocessor 610 is a single-threaded processor. In another implementation, theprocessor 610 is a multi-threaded processor. Theprocessor 610 is capable of processing instructions stored in thememory 620 or on thestorage device 630 to display graphical information for a user interface on the input/output device 640. - The
memory 620 stores information within thesystem 600. In one implementation, thememory 620 is a computer-readable medium. In one implementation, thememory 620 is a volatile memory unit. In another implementation, thememory 620 is a non-volatile memory unit. Thestorage device 630 is capable of providing mass storage for thesystem 600. In one implementation, thestorage device 630 is a computer-readable medium. In various different implementations, thestorage device 630 may be a floppy disk device, a hard disk device, an optical disk device, or a tape device. The input/output device 640 provides input/output operations for thesystem 600. In one implementation, the input/output device 640 includes a keyboard and/or pointing device. In another implementation, the input/output device 640 includes a display unit for displaying graphical user interfaces. - The features described can be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them. The apparatus can be implemented in a computer program product tangibly embodied in an information carrier, e.g., in a machine-readable storage device, for execution by a programmable processor; and method steps can be performed by a programmable processor executing a program of instructions to perform functions of the described implementations by operating on input data and generating output. The described features can be implemented advantageously in one or more computer programs that are executable on a programmable system including at least one programmable processor coupled to receive data and instructions from, and to transmit data and instructions to, a data storage system, at least one input device, and at least one output device. A computer program is a set of instructions that can be used, directly or indirectly, in a computer to perform a certain activity or bring about a certain result. A computer program can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment.
- Suitable processors for the execution of a program of instructions include, by way of example, both general and special purpose microprocessors, and the sole processor or one of multiple processors of any kind of computer. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. Elements of a computer can include a processor for executing instructions and one or more memories for storing instructions and data. Generally, a computer can also include, or be operatively coupled to communicate with, one or more mass storage devices for storing data files; such devices include magnetic disks, such as internal hard disks and removable disks; magneto-optical disks; and optical disks. Storage devices suitable for tangibly embodying computer program instructions and data include all forms of non-volatile memory, including by way of example semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, ASICs (application-specific integrated circuits).
- To provide for interaction with a user, the features can be implemented on a computer having a display device such as a CRT (cathode ray tube) or LCD (liquid crystal display) monitor for displaying information to the user and a keyboard and a pointing device such as a mouse or a trackball by which the user can provide input to the computer.
- The features can be implemented in a computer system that includes a back-end component, such as a data server, or that includes a middleware component, such as an application server or an Internet server, or that includes a front-end component, such as a client computer having a graphical user interface or an Internet browser, or any combination of them. The components of the system can be connected by any form or medium of digital data communication such as a communication network. Examples of communication networks include, e.g., a LAN, a WAN, and the computers and networks forming the Internet.
- The computer system can include clients and servers. A client and server are generally remote from each other and typically interact through a network, such as the described one. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
- In addition, the logic flows depicted in the figures do not require the particular order shown, or sequential order, to achieve desirable results. In addition, other steps may be provided, or steps may be eliminated, from the described flows, and other components may be added to, or removed from, the described systems. Accordingly, other implementations are within the scope of the following claims.
- A number of implementations of the present disclosure have been described. Nevertheless, it will be understood that various modifications may be made without departing from the spirit and scope of the present disclosure. Accordingly, other implementations are within the scope of the following claims.
Claims (20)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/326,675 US9235716B1 (en) | 2014-07-09 | 2014-07-09 | Automating post-hoc access control checks and compliance audits |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/326,675 US9235716B1 (en) | 2014-07-09 | 2014-07-09 | Automating post-hoc access control checks and compliance audits |
Publications (2)
Publication Number | Publication Date |
---|---|
US9235716B1 US9235716B1 (en) | 2016-01-12 |
US20160012239A1 true US20160012239A1 (en) | 2016-01-14 |
Family
ID=55026497
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/326,675 Active 2034-07-29 US9235716B1 (en) | 2014-07-09 | 2014-07-09 | Automating post-hoc access control checks and compliance audits |
Country Status (1)
Country | Link |
---|---|
US (1) | US9235716B1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10394793B1 (en) * | 2015-01-30 | 2019-08-27 | EMC IP Holding Company LLC | Method and system for governed replay for compliance applications |
US11941155B2 (en) | 2021-03-15 | 2024-03-26 | EMC IP Holding Company LLC | Secure data management in a network computing environment |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10691808B2 (en) | 2015-12-10 | 2020-06-23 | Sap Se | Vulnerability analysis of software components |
US9965633B2 (en) | 2015-12-29 | 2018-05-08 | Sap Se | Using code similarities for improving auditing and fixing of SAST-discovered code vulnerabilities |
US10318739B2 (en) | 2016-01-19 | 2019-06-11 | Sap Se | Computing optimal fix locations for security vulnerabilities in computer-readable code |
US20170300644A1 (en) * | 2016-04-18 | 2017-10-19 | The Regents Of The University Of California | Surveillance information system to facilitate detection and review of potential hipaa violations |
US10972485B2 (en) | 2018-08-31 | 2021-04-06 | Sophos Limited | Enterprise network threat detection |
US12265526B2 (en) | 2022-03-31 | 2025-04-01 | Sophos Limited | Methods and apparatus for natural language interface for constructing complex database queries |
US12204870B2 (en) | 2022-03-31 | 2025-01-21 | Sophos Limited | Natural language analysis of a command line using a machine learning model to generate a natural language description of the command line |
US12130923B2 (en) | 2022-03-31 | 2024-10-29 | Sophos Limited | Methods and apparatus for augmenting training data using large language models |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7734682B2 (en) * | 2000-05-10 | 2010-06-08 | Schlumberger Technology Corporation | Application service provider method and apparatus |
US20030159070A1 (en) * | 2001-05-28 | 2003-08-21 | Yaron Mayer | System and method for comprehensive general generic protection for computers against malicious programs that may steal information and/or cause damages |
WO2003058375A2 (en) * | 2001-10-26 | 2003-07-17 | Zeosoft Corporation | Development, management of distributed clients and servers |
US7290275B2 (en) * | 2002-04-29 | 2007-10-30 | Schlumberger Omnes, Inc. | Security maturity assessment method |
US7779247B2 (en) * | 2003-01-09 | 2010-08-17 | Jericho Systems Corporation | Method and system for dynamically implementing an enterprise resource policy |
US20050182958A1 (en) * | 2004-02-17 | 2005-08-18 | Duc Pham | Secure, real-time application execution control system and methods |
EP1800209A4 (en) * | 2004-09-16 | 2010-03-24 | Fortress Gb Ltd | System and methods for accelerated recognition and processing of personal privilege operative for controlling large closed group environments |
US8341694B2 (en) * | 2006-07-08 | 2012-12-25 | International Business Machines Corporation | Method and system for synchronized access control in a web services environment |
US8291466B2 (en) * | 2006-10-19 | 2012-10-16 | International Business Machines Corporation | Method and system for synchronized policy control in a web services environment |
US20080270802A1 (en) * | 2007-04-24 | 2008-10-30 | Paul Anthony Ashley | Method and system for protecting personally identifiable information |
US8200527B1 (en) * | 2007-04-25 | 2012-06-12 | Convergys Cmg Utah, Inc. | Method for prioritizing and presenting recommendations regarding organizaion's customer care capabilities |
EP2415207B1 (en) * | 2009-03-31 | 2014-12-03 | Coach Wei | System and method for access management and security protection for network accessible computer services |
US8473505B2 (en) | 2009-06-30 | 2013-06-25 | Sap Ag | System and method for providing delegation assistance |
US9256757B2 (en) * | 2010-06-17 | 2016-02-09 | Sap Se | Prefetch of attributes in evaluating access control requests |
US8560712B2 (en) * | 2011-05-05 | 2013-10-15 | International Business Machines Corporation | Method for detecting and applying different security policies to active client requests running within secure user web sessions |
US9286475B2 (en) * | 2012-02-21 | 2016-03-15 | Xerox Corporation | Systems and methods for enforcement of security profiles in multi-tenant database |
US9286187B2 (en) * | 2012-08-30 | 2016-03-15 | Sap Se | Static enforcement of process-level security and compliance specifications for cloud-based systems |
-
2014
- 2014-07-09 US US14/326,675 patent/US9235716B1/en active Active
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10394793B1 (en) * | 2015-01-30 | 2019-08-27 | EMC IP Holding Company LLC | Method and system for governed replay for compliance applications |
US11941155B2 (en) | 2021-03-15 | 2024-03-26 | EMC IP Holding Company LLC | Secure data management in a network computing environment |
Also Published As
Publication number | Publication date |
---|---|
US9235716B1 (en) | 2016-01-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9235716B1 (en) | Automating post-hoc access control checks and compliance audits | |
US12236440B1 (en) | Compliance management system | |
US11714828B2 (en) | Aligned purpose disassociation in a multi-system landscape | |
US12147567B2 (en) | Data privacy integration services processing using multiple work packages and multiple responder groups | |
US11151254B2 (en) | Secure communications gateway for trusted execution and secure communications | |
US8826403B2 (en) | Service compliance enforcement using user activity monitoring and work request verification | |
US9495545B2 (en) | Automatically generate attributes and access policies for securely processing outsourced audit data using attribute-based encryption | |
US9087148B2 (en) | Automated role adjustment in a computer system | |
US8738753B2 (en) | Standard operating procedure automation in database administration | |
EP3422269A1 (en) | Centralized consent management | |
US20080162707A1 (en) | Time Based Permissioning | |
US20230179602A1 (en) | Voting operations for data privacy integration services using different voting responder groups | |
US9762587B2 (en) | Grouping access control violations for process-aware systems | |
DE102021130957A1 (en) | RECOMMENDATIONS FOR THE STABILITY OF SOFTWARE UPDATES | |
US20090327000A1 (en) | Managing Change Requests in an Enterprise | |
Glaser et al. | Effective use of business intelligence: leveraging your organization's business data could improve financial and operational performance--and quality of care. | |
EP2972935B1 (en) | Managing data in a cloud computing environment using management metadata | |
US10038724B2 (en) | Electronic access controls | |
US20070088736A1 (en) | Record authentication and approval transcript | |
US20140081671A1 (en) | Real-time Provisioning of Actuarial Data | |
US10311248B1 (en) | Managing delegated access permissions | |
CN110489310A (en) | A kind of method, apparatus, storage medium and computer equipment recording user's operation | |
US20140317006A1 (en) | Market specific reporting mechanisms for social content objects | |
US11741409B1 (en) | Compliance management system | |
US7788706B2 (en) | Dynamical dual permissions-based data capturing and logging |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: SAP AG, GERMANY Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:BRUCKER, ACHIM D.;PETRITSCH, HELMUT;SIGNING DATES FROM 20140624 TO 20140707;REEL/FRAME:033276/0508 |
|
AS | Assignment |
Owner name: SAP SE, GERMANY Free format text: CHANGE OF NAME;ASSIGNOR:SAP AG;REEL/FRAME:033625/0223 Effective date: 20140707 |
|
FEPP | Fee payment procedure |
Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 8 |