Security Analysis of Role-based Access Control through Program Verification Anna Lisa Ferrara University of Bristol, UK P. Madhusudan University of Illinois,

Slides:



Advertisements
Similar presentations
RBAC Role-Based Access Control
Advertisements

ROWLBAC – Representing Role Based Access Control in OWL
Institute for Cyber Security
Role Based Access control By Ganesh Godavari. Outline of the talk Motivation Terms and Definitions Current Access Control Mechanism Role Based Access.
Role-Based Access Control CS461/ECE422 Fall 2011.
Operating System Security
SOFTWARE TESTING. Software Testing Principles Types of software tests Test planning Test Development Test Execution and Reporting Test tools and Methods.
The RBAC96 Model Prof. Ravi Sandhu. 2 © Ravi Sandhu WHAT IS RBAC?  multidimensional  open ended  ranges from simple to sophisticated.
Model Checker In-The-Loop Flavio Lerda, Edmund M. Clarke Computer Science Department Jim Kapinski, Bruce H. Krogh Electrical & Computer Engineering MURI.
UPPAAL Andreas Hadiyono Arrummaisha Adrifina Harya Iswara Aditya Wibowo Juwita Utami Putri.
Access Control RBAC Database Activity Monitoring.
Security models for medical information Eduardo B. Fernandez and Tami Sorgente.
Process Model for Access Control Wael Hassan University of Ottawa Luigi Logrippo, Université du Québec en Outaouais.
Configuring Role-Based Access Control to Enforce Mandatory and Discretionary Access Control Policies (2000) Author: Sylvia Osborn, Ravi Sandhu,Qamar Munawer.
Using Statically Computed Invariants Inside the Predicate Abstraction and Refinement Loop Himanshu Jain Franjo Ivančić Aarti Gupta Ilya Shlyakhter Chao.
Chapter 4: Security Policies Overview The nature of policies What they cover Policy languages The nature of mechanisms Types Secure vs. precise Underlying.
Security Fall 2009McFadyen ACS How do we protect the database from unauthorized access? Who can see employee salaries, student grades, … ? Who can.
Abstractions. Outline Informal intuition Why do we need abstraction? What is an abstraction and what is not an abstraction A framework for abstractions.
Security Fall 2006McFadyen ACS How do we protect the database from unauthorized access? Who can see employee salaries, student grades, … ? Who can.
Chapter 2 Access Control Fundamentals. Chapter Overview Protection Systems Mandatory Protection Systems Reference Monitors Definition of a Secure Operating.
1 Introduction Introduction to database systems Database Management Systems (DBMS) Type of Databases Database Design Database Design Considerations.
Role Based Access control By Ganesh Godavari. Outline of the talk Motivation Terms and Definitions Current Access Control Mechanism Role Based Access.
Fall 2010/Lecture 301 CS 426 (Fall 2010) Role Based Access Control.
Role Based Access Control Models Presented By Ankit Shah 2 nd Year Master’s Student.
Lecture 7 Access Control
Protection and Security An overview of basic principles CS5204 – Operating Systems1.
Lecture slides prepared for “Computer Security: Principles and Practice”, 2/e, by William Stallings and Lawrie Brown, Chapter 4 “Overview”.
MATHEMATICS INDUCTION AND BINOM THEOREM By : IRA KURNIAWATI, S.Si, M.Pd.
1 Joe Meehean. 2 Testing is the process of executing a program with the intent of finding errors. -Glenford Myers.
Access Control and Privilege Management
CatBAC: A Generic Framework for Designing and Validating Hybrid Access Control Models Bernard Stepien, University of Ottawa Hemanth Khambhammettu Kamel.
Role-Based Access Control Richard Newman (c) 2012 R. Newman.
Designing Group Security Designing security groups Designing user rights.
An Investigation on Testing RBAC Constraints Presented by Jiao Chen 04/29/2003.
Computer Security: Principles and Practice
CSCE 201 Introduction to Information Security Fall 2010 Access Control.
Policy Analysis for Self-administrated Role-based Access Control Gennaro Parlato U. Southampton, UK Anna Lisa Ferrara P. Madhusudan U. Bristol, UK UIUC,
First Edition by William Stallings and Lawrie Brown Lecture slides by Lawrie Brown Chapter 5 – Database Security.
October Efficient Policy Analysis for Administrative Role-Based Access Control Scott D. Stoller Ping Yang C.R. Ramakrishnan Mikhail I. Gofman.
CIS 540 Principles of Embedded Computation Spring Instructor: Rajeev Alur
Introduction to Software Testing. Types of Software Testing Unit Testing Strategies – Equivalence Class Testing – Boundary Value Testing – Output Testing.
Computer Security: Principles and Practice First Edition by William Stallings and Lawrie Brown Lecture slides by Lawrie Brown Chapter 4 – Access Control.
G53SEC 1 Access Control principals, objects and their operations.
Authorization in Trust Management Conditional Delegation and Attribute-Based Role Assignment using XACML and RBAC Brian Garback © Brian Garback 2005.
Proposal for RBAC Features for SDD James Falkner Sun Microsystems October 11, 2006.
Copyright © Cengage Learning. All rights reserved.
Lecture 18 Page 1 CS 111 Online OS Use of Access Control Operating systems often use both ACLs and capabilities – Sometimes for the same resource E.g.,
The Laboratory of Information Integration, Security and Privacy ● University of North Carolina at Charlotte URL: 306, UNC Charlotte.
Policy Evaluation Testbed Vincent Hu Tom Karygiannis Steve Quirolgico NIST ITL PET Report May 4, 2010.
CSCE 201 Introduction to Information Security Fall 2010 Access Control Models.
Access Control Lesson Introduction ●Understand the importance of access control ●Explore ways in which access control can be implemented ●Understand how.
Computer Security: Principles and Practice
Protection & Security Greg Bilodeau CS 5204 October 13, 2009.
Quantified Data Automata on Skinny Trees: an Abstract Domain for Lists Pranav Garg 1, P. Madhusudan 1 and Gennaro Parlato 2 1 University of Illinois at.
/ PSWLAB Thread Modular Model Checking by Cormac Flanagan and Shaz Qadeer (published in Spin’03) Hong,Shin Thread Modular Model.
1 XACML for RBAC and CADABRA Constrained Delegation and Attribute-Based Role Assignment Brian Garback © Brian Garback 2005.
Bernd Fischer RW714: SAT/SMT-Based Bounded Model Checking of Software.
PREPARED BY: MS. ANGELA R.ICO & MS. AILEEN E. QUITNO (MSE-COE) COURSE TITLE: OPERATING SYSTEM PROF. GISELA MAY A. ALBANO PREPARED BY: MS. ANGELA R.ICO.
Load Distribution of an OpenFlow Controller for Role-based Network Access Control Takayuki Sasaki, Y oichi Hatano, Kentaro Sonoda, Yoichiro Morita, Hideyuki.
Unlocking the Dynamics AX 2012 Security Model
The PLA Model: On the Combination of Product-Line Analyses 강태준.
Introducing User’s Role concept Group Name: WG2(ARC) and WG4(SEC) Source: Shingo Fujimoto, FUJITSU, Meeting Date:
Talk Outline Motivation and Background. Policy Contexts.
Access Control Role-based models RBAC
Security Enhanced Administrative Role Based Access Control Models
UNIT-4 BLACKBOX AND WHITEBOX TESTING
VAC - Verifier of Administrative Role-based Access Control Policies
RBAC-Capability Project
Role-Based Access Control Richard Newman (c) 2012 R. Newman
UNIT-4 BLACKBOX AND WHITEBOX TESTING
Presentation transcript:

Security Analysis of Role-based Access Control through Program Verification Anna Lisa Ferrara University of Bristol, UK P. Madhusudan University of Illinois, USA Gennaro Parlato University of Southampton, UK

Access control policies are designed to support authorized accesses to protected resources Access Control Policies

Most used access control model - standardized by the NIST - ease of administration Role-based Access Control (RBAC) Users RolesPermissions Permissions are pairs (object, operation) UA = Users X Roles PA = Roles X Permissions

RBAC Example: Hospital Roles: Doctor, Manager, Nurse, Patient, PrimaryD, Receptionist,… Permissions: p 1 = (Create, Appointment) p 2 =(View, OldMedicalRecord) p 3 =(View, RecentMedicalRecords) … PA: (Receptionist, p 1 ) (Doctor, p 2 ) (Doctor, p 3 ) … UA: (Mary, Receptionist) (John, Doctor), (John, PrimaryD) (Jenny, Patient) (Tim, Doctor) …

Uses the concept of role itself to administer RBAC policies: Assign(admin_role, precondition, target_role) - if admin user A has admin_role, then she can assign any user u who satisfies precondition the target_role Revoke(admin_role, precondition, target_role) Administrative RBAC (ARBAC) Admins Users Admin Actions Users Permissions any boolean condition over the roles of u Admins Roles Roles

Example of ARBAC Policy Assign Actions - assign( Manager, ¬Doctor, Receptionist ) - assign( Manager, true, Nurse ) - assign( Patient, Doctor ∧ ¬Patient, PrimaryDoctor ) … Revoke Actions - revoke( Manager, true, Receptionist ) - revoke( Manager, true, Nurse ) … Admins: Manager, Patient, Receptionist,…

Designer have security properties in mind while designing their policies Security Requirements Availability properties - A doctor must always be able to access patients’ record Escalation of privileges - A receptionist cannot access patients’ records Separation of duties - A doctor cannot be also a receptionist

Importance of Security Analysis r 1 r 2 rnrn state of the system Assign/Revoke actions u1u1 u2u … … … Policies are difficult to inspect by hand Monitoring strategies are not acceptable

Our Contribution RBAC Propose a way to automatically prove correctness - abstractions techniques Show that our solution scales in practice Build VAC, a tool publicly available

Role-reachability Problem - availability - separation of duties, - escalation of privileges, - … Role-reachability Problem each reduces to Can any user reach a particular role goal during the evolution of the system?

Equivalent Representation The cardinalities of all Venn regions determines the precise state of the ARBAC system modulo user identities Role-reachability: Is there a reachable state where #comb i >0, for some comb i containing goal? r 1 r 2 rnrn state of the system u1u1 u2u … … … #comb 1 = 0 #comb 2 = 20 #comb 2 n = 35 state of the system... equivalent modulo identities r1r1 r2r2 r3r3 The ARBAC system can purely be simulated using Venn region cardinalities number of users in each combination of roles

We use abstraction: - over-approximations (correctness) Abstraction Soundness:  s. init C (s) ⇒ init A (  (s))  s,s’. (s s’) ⇒ (  (s)  (s’)) real domainabstract domain C A  s s’s’ abstract function abstract transition  (s)  (s’)

Our Solution Set Abstraction C A’ 11 Numerical Abstraction A” 22 Set Abstraction 11 Numerical Abstraction 22

Set Abstraction (Abstract Domain) Given the set of roles, track only the number of users in a subset Track of role-combinations Example Roles: Manager, Nurse, Patient, PrimaryD, Receptionist, Doctor Track: ManagerNursePatient ManagerDoctorReceptionist DoctorReceptionist Patient May or may not be a Doctor

Set Abstraction (Abstract Transition) Must soundly update the abstract state after any Assign and Revoke action Without knowing the exact number of users in each Venn region it is difficult to update the states Intuition: Choose non-deterministically the user role-combination and update subsets accordingly ManagerNursePatient ManagerDoctorReceptionist Patient ManagerDoctor - Difficulty: Consider Assign(Manager, ¬ Receptionist, Doctor) Track = Is the user a manager or not?

Abstract Transition as a Program while ( true ) do //----- Choose a user consistent with the current configuration // b_Admin=random; assume b_Admin>=0 and b_Admin<=1; b_Doctor=random; assume b_Doctor>=0 and b_Doctor<=1; b_Manager=random; assume b_Manager>=0 and b_Manager<=1; b_Patient=random; assume b_Patient>=0 and b_Patient<=1; b_PrimaryDoctor=random; assume b_PrimaryDoctor>=0 and b_PrimaryDoctor<=1; b_Receptionist=random; assume b_Receptionist>=0 and b_Receptionist<=1; b_target=random; assume b_target>=0 and b_target<=1; //----- CanAssign(Manager, !Receptionist, Doctor ) if (brandom and (ADMIN_Manager>0) and b_Receptionist==0 and b_Doctor==0 ) then tmpAdmin=0; //----- Xt n_Doctor_0Patient // if (b_Patient==0 ) then n_Doctor_0Patient=n_Doctor_0Patient+1; tmpAdmin=1; endif; if (tmpAdmin>0) then ADMIN_Doctor=ADMIN_Doctor+1; endif; //---- ERROR if (n_target>0) then skip; endif; done;...

Numerical Abstraction Interval abstractions of programs for numerical domains each value in Track in each point of the program Interval Range 22 Security of RBAC policies does not depend on the exact number of users in a configuration!

Our tool slicing interval-abstractions using INTERPROC PolicySecurity Query NO: policy correct Yes: may be a false error encode in a program set-abstraction

Experimental Results s0s0.3s s0.01s0.3s s0.1s0.6s s0.2s0.8s s0.2s0.8s 13,3567s44s51s 26,6849s3m 0.2s3m 11s 26,7059s3m 0.3s3m 12s 40,01211s7m 0.8s7m 19s 40,04510s7m 08s7m 18s 53,34011s13m 16s13m 27s 53,3839s13m 15s13m 24s #roles #actions After SlicingVAC Line of code Time to trasform INTERPROC time Total time Hospital University Bank 1 Bank 2 Bank 3 Bank 4 Policy #actions

Conclusion Prove correctness of policies automatically (abstractions) set abstraction interval abstraction Experimentally proved the scalability of our approach VAC is available at