Content deleted Content added
Andy Dingley (talk | contribs) |
|||
Line 1:
'''Attribute-based access control''' ('''ABAC'''), also known as '''policy-based access control''', defines an [[access control]] paradigm whereby access rights are granted to users through the use of [[Policy|policies]] which combine attributes together. The policies can use any type of [[Attribute (computing)|attributes]] (user attributes, resource attributes, object, environment attributes etc.). This model supports [[Boolean Logic|Boolean logic]], in which rules contain "IF, THEN" statements about who is making the request, the resource, and the action. For example: IF the requestor is a manager, THEN allow [[File system permissions|read/write access]] to sensitive data.
Unlike [[Role-based access control|role-based access control (RBAC)]], which employs pre-defined roles that carry a specific set of [[Privilege (computing)|privileges]] associated with them and to which subjects are assigned, the key difference with ABAC is the concept of policies that express a complex Boolean rule set that can evaluate many different attributes.<ref>{{Cite web |date=2014 |url=http://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-162.pdf |title=SP 800-162, Guide to Attribute Based Access Control (ABAC) Definition and Considerations |publisher=NIST |accessdate=2015-12-08 |archive-url=https://web.archive.org/web/20160305222004/http://nvlpubs.nist.gov/nistpubs/specialpublications/NIST.sp.800-162.pdf |archive-date=2016-03-05 |dead-url=yes }}</ref> Attribute values can be set-valued or atomic-valued. Set-valued attributes contain more than one atomic value. Examples are ''role'' and ''project''. Atomic-valued attributes contain only one atomic value. Examples are [[Classified information#Clearance|clearance]] and [[Information sensitivity|sensitivity]]. Attributes can be compared to static [[Value (computer science)|values]] or to one another, thus enabling relation-based access control.
Although the concept itself existed for many years, ABAC is considered<ref>{{Cite web |url=http://www.axiomatics.com/attribute-based-access-control.html |title=Attribute Based Access Control (ABAC), ''axiomatics.com'' |accessdate=2016-07-05}}</ref> a "next generation" authorization model because it provides dynamic, context-aware and risk-intelligent access control to resources allowing access control policies that include specific attributes from many different information systems to be defined to resolve an authorization and achieve an efficient regulatory compliance, allowing enterprises flexibility in their implementations based on their existing infrastructures.
Attribute-based access control is sometimes referred to as '''policy-based access control''' ('''PBAC''') or '''claims-based access control''' ('''CBAC'''),<ref>[http://genericiam.blogspot.co.uk/2015/10/rbac-first-abac-next-or-what.html RBAC first – ABAC next, or what?, 2015, Horst Walther, ''GenericIAM Blog'']. Retrieved on 2016-08-30.</ref> which is a Microsoft-specific term.<ref>[http://www.hpl.hp.com/techreports/2009/HPL-2009-30.pdf Karp, Alan, Harry Haury, and Michael Davis. "From ABAC to ZBAC: the evolution of access control models." ''International Conference on Information Warfare and Security''. Academic Conferences International Limited, 2010]. Retrieved on 2016-08-30.</ref> The key standards that implement ABAC are [[XACML]] and [[ALFA (XACML)]].
== Dimensions of attribute-based access control ==
Line 27:
# Action attributes: attributes that describe the action being attempted e.g. read, delete, view, approve...
# Object attributes: attributes that describe the object (or resource) being accessed e.g. the object type (medical record, bank account...), the department, the classification or sensitivity, the ___location...
# Contextual (environment) attributes: attributes that deal with time, ___location or dynamic aspects of the access control scenario<ref name="stackoverflow.com">{{cite web|url=http://stackoverflow.com/questions/36705901/alternatives-for-roles-claims-access-control-systems|title=Alternatives for Roles/Claims Access Control Systems|website=stackoverflow.com}}</ref>
===Policies===
Line 34:
# A user can edit a document if they are the owner and if the document is in draft mode
# Deny access before 9am
With ABAC you can have as many policies as you like that cater to many different scenarios and technologies.<ref name="stackoverflow.com"
==Other models==
Line 43:
One standard that implements attribute- and policy-based access control is [[XACML]], the eXtensible Access Control Markup Language. XACML defines an architecture, a policy language, and a request / response scheme. It does not handle attribute management (user attribute assignment, object attribute assignment, environment attribute assignment) which is left to traditional [[Identity_management|IAM]] tools, databases, and directories.
Companies, including every branch in the United States military, have started using ABAC. At its basic level, ABAC uses an ‘IF/THEN/AND’ model to protect the data itself rather than assigning data to a user who can take that information anywhere they please or give a hacker the ability to swipe{{Definition needed|date=June 2019}} the file. The US Department of Commerce has made this a mandatory practice and the adoption is spreading throughout several governmental and military agencies.[https://community.plm.automation.siemens.com/t5/Digital-Transformations/Attribute-Based-Access-Control-ABAC-Encryption-on-Steroids/ba-p/580836]<ref>{{Cite web|url=https://community.plm.automation.siemens.com/t5/Digital-Transformations/Attribute-Based-Access-Control-ABAC-Encryption-on-Steroids/ba-p/580836|title=Attribute Based Access Control (ABAC) – Encryption on Steroids|last=Coffey|first=Alisa|date=2019-03-28|website=Siemens PLM Community|language=en|archive-url=|archive-date=|dead-url=|access-date=2019-04-01}}</ref>
==Applications==
Line 78:
Security for databases has long been specific to the database vendors: Oracle VPD, IBM FGAC, and Microsoft RLS are all means to achieve fine-grained ABAC-like security.
Using ABAC, it is possible to define policies that apply across multiple databases. This is called [[Data_masking#Dynamic_data_masking|dynamic data masking]].
An example would be:
Line 86:
=== Data security ===
Data security typically goes one step further than database security and applies control directly to the data element. This is often referred to as [[data-centric security]]. On traditional relational databases, ABAC policies can control access to data at the table, column, field, cell and sub-cell using logical controls with filtering conditions and masking based on attributes. Attributes can be data, user, session or tools based to deliver the greatest level of flexibility in dynamically granting/denying access to a specific data element. On big data, and distributed file systems such as Hadoop, ABAC applied at the data layer control access to folder, sub-folder, file, sub-file and other granular.
=== Big data security ===
Line 128:
== References ==
{{Reflist}}
Gartner - improving-runtime-authorization-maturity
== External links ==
* [http://www.axiomatics.com/attribute-based-access-control.html What is attribute-based access control?]
* [http://csrc.nist.gov/projects/abac/ ATTRIBUTE BASED ACCESS CONTROL (ABAC) - OVERVIEW]
* [https://link.springer.com/chapter/10.1007%2F978-3-642-31540-4_4 Unified Attribute Based Access Control Model (ABAC) covering DAC, MAC and RBAC]
* [http://profsandhu.com/dissert/Dissertation_Xin_Jin.pdf Attribute Based Access Control Models (ABAC) and Implementation in Cloud Infrastructure as a Service]
* [https://f5.com/about-us/blog/articles/abac-not-rbac-welcome-to-the-iot-world-of-contextual-security ABAC not RBAC: Welcome to the (IoT) World of Contextual Security, 2015, Lori MacVittie]
|