Download presentation
Presentation is loading. Please wait.
1
Security-1 CSE 300Security Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut 371 Fairfield Road, Box U-1155 Storrs, CT 06269-1155 steve@engr.uconn.edu http://www.engr.uconn.edu/~steve (860) 486 - 4818 The majority of these slides represent material that has been accumulated from various sources over the years. A portion these slides are being used with the permission of Dr. Ling Lui, Associate Professor, College of Computing, Georgia Tech.
2
Security-2 CSE 300 Patients Providers Clinical Researchers Motivation: Security Issues? Web Server Appl Server DB Server Firewall https Encryption https Encryption Secure Communication XML html Web Content GUI Look and Feel Patient GUI for RN vs. MD Web - Control Services Appl. – Control Methods
3
Security-3 CSE 300 Security Issues for Patients HIPPA Overriding Concern All Patient Interfaces Web-Based Secure Communication To/From Web Server (https) Among Discussion Group Members Is this https or Peer-to-Peer? Role-Based Access Control to Authorize Providers to Interact PHR Data to Individual Providers Patients Providers Clinical Researchers Web-Based Portal(XML + HL7) Open Source XML DB
4
Security-4 CSE 300 Security Issues for Providers Patients Providers Clinical Researchers EMR HIPPA Concerns for any EMR Data Transmitted into Portal Need to Consider Delegation Provider P Access to Portal for Patient X Provider Q on Call Can P Delegate his Permission to Access Portal to Q? Will Q’s Role (e.g., EMT) Limit Access Even with Delegation? Web-Based Portal(XML + HL7) Open Source XML DB
5
Security-5 CSE 300 Security Issues for Clinical Researchers Clinical Researchers PatientsProviders Feedback Repository Is Role-Based Access Control Needed to Authorized Providers to Portal Features? Security for Discussion Forums? Collaborative Interactions Among Providers and Clinical Researchers Is Security Required? Collect Results from Providers (HIPPA) Store in Feedback Repository Transfer to Permanent Warehouse Web-Based Portal(XML + HL7) Open Source XML DB
6
Security-6 CSE 300Overview Explore Wide Range of Security Topics in this and Associated PPTs: Security for Collaborative Web Portals Secure Information Exchange via XML Object-Oriented/Programmatic Security Secure Software Engineering Security for Services-Based Computing Objective – Understand the Wide Range and Location of Security Across Macro-Architecture Note: All of these Security Approaches Must work with the Security Discussed in Background PPTs
7
Security-7 CSE 300 Object-Oriented and Programmatic Security in C++/Java Collaborative Portals Look-and-Feel Application Content Document Access Secure Software Design To Design and Write Secure Software Programs Our Five-Pronged Security Emphasis Secure Information Exchange via XML with MAC/RBAC Secure MAC/RBAC Interactions via Middleware in Distributed Setting Assurance Consistency Integrity RBAC, DAC, MAC Separation of Duty Mutual Excl. Safety Liveness
8
Security-8 CSE 300 Security for Collaborative Web Portals Collaborative Portals Rapidly Emerging as Means for Communication, Interaction, and Problem Solving over Distances SourceForge MediaWiki Microsoft Sharepoint phpBB Security Model and Enforcement Often Lacking Consider WIKIs Anonymous Users (Read Only) Registered Users (Full Write Access) Result: No Guarantee of Data Correctness Need to Transcend Simplistic Approach for Application Level, Document Level (Author/View), and Look-and-Feel of Portal Itself
9
Security-9 CSE 300 What is a WIKI? Repository for Information that Accessible to All Collaborative Platform Content Contribution/Creation/Modification Document Authoring Historical Tracking of Actions Shared Platform to Facilitate Information Exchange, Joint Efforts, etc. Runs in Web Environment (Browser) – No Software to Install Limited Security: User Accounts/Passwords
10
Security-10 CSE 300
11
Security-11 CSE 300
12
Security-12 CSE 300
13
Security-13 CSE 300
14
Security-14 CSE 300 http://www.mediawiki.org/wiki/MediaWiki MediaWiki underlies WikiPedia
15
Security-15 CSE 300 MediaWiki from SourceForge
16
Security-16 CSE 300 A Wiki for Accreditation
17
Security-17 CSE 300 Creating an Account
18
Security-18 CSE 300 Viewing the Main Page
19
Security-19 CSE 300 Uploading Documents
20
Security-20 CSE 300 Creating and Modifying Content
21
Security-21 CSE 300 Viewing the Historical Record
22
Security-22 CSE 300 Customized Searching
23
Security-23 CSE 300 Uploading Images
24
Security-24 CSE 300 Problems with MediaWiki and Others Not Very User Friendly, Particularly for Non- Computer Savvy Population Difficult to Customize with Specialized Features and Capabilities beyond Basic Look and Feel Changes Security Limited to User/Password Combinations Everyone can do Anything Set up as Shared and Collaborative for All No Control on Incorrect Content Being Uploaded Addition of Security Violates General WIKI Concept of Open and Available to All
25
Security-25 CSE 300 Current R&D on WIKIs Led by Serebrum (www.serebrum.com) www.serebrum.com Developing AXON WIKI with Capabilities that include: Content Creating Editing (WYSISYG) Document Publishing (Web, PDF, RTF) Document Distribution (Email, Print, Fax) Mobile Access (Limited with BlackBerry) Security Role-Based Access Control to Define Privileges For Example, Physician, Provider, Patient, Clinical Researcher, etc. Full Collaborative Environment
26
Security-26 CSE 300 A First Snapshot of AXON
27
Security-27 CSE 300 A First Snapshot of AXON Infolet – Piece of Information that can be Easily Created, Edited, Classified, etc. Infolets organized into Accordions (US Travel, Project Brainstorm, etc.) For Our Purposes – HIT Related Topics
28
Security-28 CSE 300 A First Snapshot of AXON Accordions Contain a Topic Topics Parent Topics, Child Topics, GrandChild Topics Customizable Based on Domain PHR: Parent Topics of: History, Meds, Visits, etc. Each Topic has Document (Editable) and Attached Documents The Topic Tree is Customizable by User/Role so that Different Information visible to Different Users This is an editable document associated with the Selected Topic Docs can be Images, Word, PDF, anything…
29
Security-29 CSE 300 Other AXON Features Intended to be Fully Fledged Collaborative Tool Work Over Distance Full-text search Easy Content Creation Hierarchical topic tree Integrated CMS + DMS History + Audit Trail
30
Security-30 CSE 300 Editing Topic Documents For Each Topic,Associated Document can be Created/Edited with Full WYSISYG editor Other WIKIs Don’t have this Capability Extending this to Spreadsheet Creation Word-like Interface for Document Creation and Modification
31
Security-31 CSE 300 Other AXON Features This allows Documents to be Assembled From Topic Down Combines Docs Creates New Doc This is the WIKIBerry Interface Limited Access View and Edit Content Synchs with Server
32
Security-32 CSE 300 Grayed Boxes (Elicitation Toolkit and Ontology) are Application Dependent/Customizable Architecture Promotes Customizability
33
Security-33 CSE 300 Security Concepts and Permissions in Axon A user is identified by: Username (unique), userid (unique), User duration (userstarttime and userendtime that the user is active). A role can be defined for any capability Standard roles: guest, author, manager, admin For each role, there is a list of allowable topics A user associated with one or more roles in axon User authenticated (user name, password) User selects from list of authorized roles a set of Axon customizes itself based on the chosen role using the permissions stored in the database Able to change roles during a session. Multiple separate sessions each with its own role.
34
Security-34 CSE 300 Security Concepts and Permissions in Axon To isolate user from role: group abstraction Each User is the member of one or more Groups Group is identified by: GroupName (unique), GroupID (unique), and Group duration (GroupStartTime and GroupEndTime Users in multiple groups and have multiple roles Each group can have zero or more users Active Session for a User limits the User to a particular Group Active Session for a User limits the User to a particular Group From a security perspective (see next slide): Permissions will be assigned to Roles Roles will be assigned to Users/Groups Users/Groups will be assigned to Accordions.
35
Security-35 CSE 300
36
Security-36 CSE 300 Current AXON Main Scren
37
Security-37 CSE 300 Other Important Concepts A Project contains multiple Accordions E.g. US Travel, Brainstorm, EGuru, and Report For Each Accordions, a Topic Tree, a Document List, and an Index is maintained Each Accordion can have one or more Users, Each Accordion can have zero or more Groups University Accordions: Just like Peoplesoft Faculty, Student, Grad Program Director Faculty Accordion (corresponding to the Faculty Role) would have Record Grade, Permission Numbers, Advisee List, and other Child Topics PHR Accordions: Patient History, Education Materials, Appointments, etc.
38
Security-38 CSE 300 Other Important Concepts The Topic Tree contains three levels of parent, child, and grandchild topics: Each topic in this tree is associated with exactly one xhtml page. Each topic in this tree is associated with zero or more documents of all types (Word, PPT, PDF, GIF, etc.). The DOCS tab contains a list of documents. specifically, for the selected topic - all documents for the topic and its descendants are shown.
39
Security-39 CSE 300 Axon Permissions Basic Topic Tree Permissions Each Role can have one or more topics Each Group can have zero or more topics Each Accordion can have zero or more topics Upon Successful Login, the Accordions for a User in a Group with a Role are Displayed Advanced Topic Tree Permissions: View Means that the User has permission to View the xhtml page associated with that topic Edit Means that the User has permission to modify, delete, update, etc., the xhtml page associated with that topic
40
Security-40 CSE 300 Axon Permissions Edit/History Permissions Edit having a value of Yes means the Edit button is enabled If the Topic Tree has a Permission of Edit for a Topic, then the permission for the Topic Button Edit should be set to Yes. History View and History Rollback are assigned on a Yes/No basis to each Role. Button Permissions: Buttons: Global Menu for Hide, History, Import, Export, Email, Fax, and Print. Permissions are Yes/No on a role-by-role basis. No means that the associated ICON doesn’t appear
41
Security-41 CSE 300 Axon Permissions Axon Permissions Topic Icon Permissions: Five Icons are: New Topic to Create a new Topic Copy to Make a Copy of an Existing Topic Paste to Paste a Copy of an Existing Topic Rename to Change the Name of a Topic Archive to Store a new Version of the xhtml page associated with the topic Permissions are Yes/No on a role-by-role basis. No means that the associated ICON doesn’t appear
42
Security-42 CSE 300 Axon Permissions Document Permissions View: Open Document (word, PPT, etc.) with associated desktop viewer but do not save changes. Add: Be able to Import a Document Replace: Be able to Substitute a new Document for an Existing Document Replace is really "Substitute this new document while saving all versions of the old one." Archive: Transition a document to being "logically offline" as it exists at that point in time and remove it from the list of active documents Users will not be able to view the archived documents. An Administrator has the authority to restore archived documents if required
43
Security-43 CSE 300 Realizing RBAC in Axon Combination of LDAP and Custom RBAC Lightweight Directory Access Protocol Tracks Directory Info on Users/Sessions Customize via RBAC Look and Feel (prior slides) Other Technologies Possible XACML – Web Services Policy Constraint Lang. Different Implementations Available Not Mature as yet Bandit Role Engine RBAC based on NIST and Sun’s XACML Limited Functionality Our Approach – Custom, Relational DB Solution with Enforcement Built into Axon
44
Security-44 CSE 300 UML ER Diagram
45
Security-45 CSE 300 Relational Database Tables for RBAC Top Level Tables: ProjectInfo AccordionInfo ProjectAccordions Top Level Tables: ProjectInfo AccordionInfo ProjectAccordions Master Tables: All Projects, Accordions, and P-A Topic/Subtopic Tables: Topic SubTopic1 SubTopic2 Topic/Subtopic Tables: Topic SubTopic1 SubTopic2 Master Tables for All Parent, Child, and Grandchild Topics
46
Security-46 CSE 300 Relational Database Tables for RBAC Versions: TopicVersion Versions: TopicVersion Different Versions of xhtml Page for Each Tree Entry Attachments: Attachment AttachmentVersion Attachments: Attachment AttachmentVersion Various Attachments (Documents –Word, PPT, etc.) Associate with Each Topic + Versions
47
Security-47 CSE 300 Relational Database Tables for RBAC Permissions: UserInfo PermissionInfo GroupInfo RoleInfo UserGroupAuthorization UserRoleAuthorization Permissions: UserInfo PermissionInfo GroupInfo RoleInfo UserGroupAuthorization UserRoleAuthorization The User, Roles, Groups, and their Permissions
48
Security-48 CSE 300 Relational Database Tables for RBAC Authorizing Topics to Users, Groups, and Roles Authorization – Option A: TopicUserAuth TopicGroupAuth TopicRoleAuth Authorization – Option A: TopicUserAuth TopicGroupAuth TopicRoleAuth Authorization – Option B: TopicAuth Authorization – Option B: TopicAuth
49
Security-49 CSE 300 Relational Database Tables for RBAC Wiki Look and Feel Authorization: WikiLookandFeelAuthorization Widget WidgetPrivilegeType Wiki Look and Feel Authorization: WikiLookandFeelAuthorization Widget WidgetPrivilegeType Tracking the Different Widgets and their Availability based on Role
50
Security-50 CSE 300 Sample Table Entries
51
Security-51 CSE 300 Usage of Axon in Safety.Net Used by Project Team (PIs, Co-PIs, Providers, etc.) Repository for Planning Effort Upload, Create, Review, Modify Documents Allows Safety.Net Team to Familiarize Themselves with WIKI Technology/Web Portals No Software to Install Problems with Off-the-Shelf Product (MediaWiki) Customization Time Consuming (and Limited) Security Minimal – but Acceptable for this Use (Can’t store any Patient Related Information) Limited User Friendliness May Result in Poor Opinion of Web Technology
52
Security-52 CSE 300 Usage of WIKIs in Safety.Net Another Alternative – Use AXON Product Still Web Solution (No Software to Download) Professional Developers Customize AXON for Use on Project Multi-Pronged Approach Start with AXON for PIs, Co-PIs, Providers as Means to Support the Grant Explore the Potential Usage/Extensions of AXON to Support Patient Access to Health Care Data Synergistic Teams (Serebrum, UCHC, UConn CSE) Submit Phase I Grants for Funding In-Kind Software Contribution/Pay for Customization Work Currently Funded
53
Security-53 CSE 300 Potential Usage of WIKIs in CTSA Use of AXON as Enabling Technology for the Grant Web-Based and Hand-Held Interfaces Customization for Biomedical Informatics Platform for Clinical Research (Recruit Patients, Providers, etc.) Information Dissemination (Newsletters, etc.) Architectures and Solutions for Integration with Healthcare Systems (EMR, EHR) Security and HIPPA Compliance XML Standards for Health Data Document Extensions (Medical Images) Visualization Extensions (Data Mining) Going Independent Route for Team Project
54
Security-54 CSE 300 Concluding Remarks: Portal Security Expand WIKI Security Beyond Coarse Grained Transition and Generalize to Web Portals Security for: Application Level Document Level Portal Look-and-Feel Truly Collaborative and Secure Other Work Extending Axon with MAC (Navy SBIR) Dealing with Delegation, Separation of Duty, etc. Leveraging the Concepts for Team Project
55
Security-55 CSE 300 Object-Oriented and Programmatic Security in C++/Java Collaborative Portals Look-and-Feel Application Content Document Access Secure Software Design To Design and Write Secure Software Programs Our Five-Pronged Security Emphasis Secure Information Exchange via XML with MAC/RBAC Secure MAC/RBAC Interactions via Middleware in Distributed Setting Assurance Consistency Integrity RBAC, DAC, MAC Separation of Duty Mutual Excl. Safety Liveness
56
Security-56 CSE 300 Secure Information Exchange via XML XML Quickly Emerging as Standard of Choice for: Web Content Information Exchange Database Exchange Standard format for Tools (e.g., UML Tools Export XMI) Etc. Our Perspective, Given a XML Document Repository Each Document has DTD or XML Schema Multiple Documents per DTD/Schema Users with Particular Roles in Application Can We Customize the Displayed XML Instance Based on Role? How Can we Incorporate RBAC, MAC, etc.?
57
Security-57 CSE 300 Security for XML Documents Extend RBAC/MAC to XML Collection of Security DTDs (or XML Schema) DTDs (Schemas) for Roles, Users, and Constraints Capture RBAC and MAC Apply Security DTDs (Schemas) to XML Documents An XML Document Appears Differently Based on Role, MAC, Time, Value Security DTD (Schema) Filters Document Different DTDs (Schemas) for Roles, Users, MAC, DAC Security DTDs Role DTD User DTD Constraint DTD Application Application DTDs Application XML Files Appl_Role.xml Appl _User.xml Appl_Constraint.xml Security Officer Generates Security XML files for the Application DTDs and XML User’s Role Determines the Scope of Access to Each XML Document
58
Security-58 CSE 300 What is an XML Schema?
59
Security-59 CSE 300 What is an XML Schema?
60
Security-60 CSE 300 What is an Associated XML Instance?
61
Security-61 CSE 300 Attaining Security in XML Given an XML Application of Schemas and Associated Instances, can we: Define Schemas/Instances for Clearances, Roles, Users, User-Role Authorizations, and Delegation Augment Application’s Schemas/Instances with MAC Security Classifications (if Needed) Then, as XML Instances are Dynamically Identified to Suit a User’s Needs for an Application, can we: Retrieve and Filter those XML Instance(s) Based on User’s Role, MAC, and/or Delegation Deliver Filtered Instances(s) to User For AXON – Customized Delivered Content and not Just Application Look-and-Feel and Usage! Work is Ongoing at this Point …
62
Security-62 CSE 300 Object-Oriented and Programmatic Security in C++/Java Collaborative Portals Look-and-Feel Application Content Document Access Secure Software Design To Design and Write Secure Software Programs Our Five-Pronged Security Emphasis Secure Information Exchange via XML with MAC/RBAC Secure MAC/RBAC Interactions via Middleware in Distributed Setting Assurance Consistency Integrity RBAC, DAC, MAC Separation of Duty Mutual Excl. Safety Liveness
63
Security-63 CSE 300 Motivating Security for OO Paradigm OO Paradigm Provides Minimal Support via Public Interface and Private Implementation Public Interface Represents UNION of all Possible Privileges Needed by All Potential Users A Method in the Public Interface for One Specific User Available to ALL Users Can Access to Public Interface be Customized? Can Individuals have Particular Access to Specific Subsets of Public Interface? Can Access be Based on (Potentially) Dynamic User Roles? Can Code be Automatically Generated to Implement an Enforcement Mechanism? Role of OO Paradigm in Support a Generic, Evolvable, Reusable Enforcement Mechanism?
64
Security-64 CSE 300 Why is RBAC Needed? Many Situations When OT Library Designer (SWE) Could Utilize More Fine-Grained Control to Access of Public Interface Tradeoff Between Developers and End-Users SWEs Have Different Roles Based on Their Responsibilities Related to Cooperative Design on an Application SWEs Should Only See Those Portions of the Application That They Need to See or That They Will Be Responsible for Implementing End-users Must Be Limited in Their Interactions and Access Depending on Their Roles
65
Security-65 CSE 300 Why is RBAC Needed? For Example: In SDEs, the public interface for Modules has methods that read (for SWEs and Managers) and modify instances (only for SWEs) In HTSS, the public interface for Items has methods that read (for Scanner, I-Controller) and modify instances (only for I-Controller) In HCA, different health care professionals (e.g., Nurses vs. Physicians vs. Administrators, etc.) require select access to sensitive patient data
66
Security-66 CSE 300 What is RBAC Approach? Collects User Role, User Type, and User Class into User-Role Definition Hierarchies for Application To Establish Privileges: Assign Different Methods of PIs to Different UCs, UTs, and URs Defined Security Must be Enforced: For SWEs - by Supporting Environment For End-Users - by Application and Its Tools RBAC Approach Intentionally Obscures Information and Its Access Consistent with OO Principles on Hiding Force SWEs to Focus on Abstract Concepts Incorporate RBAC into OO in a Manner Consistent with OO Principles and Philosophy
67
Security-67 CSE 300 The Health Care Application - OTs
68
Security-68 CSE 300 The Health Care Application - OTs
69
Security-69 CSE 300 The Health Care Application - OTs
70
Security-70 CSE 300 The Health Care Application - RTs
71
Security-71 CSE 300 User Role Definition Hierarchy (URDH) Characterize Individual/Group Application Access via Hierarchy in Three Abstraction Levels : User-Roles (URs) for Fine-Grained Activities grade-recorder (changes and corrections) transcript-issuer (fill transcript request) User-Types (UTs) for Similarities that are Shared Among Set of URs registrar-staff is common responsibilities (access student records) among URs User-Classes (UCs) for Commonalities Across UTs non-academic-staff (UTs: purchasing-staff, campus-police, maintenance-staff, etc.) academic-staff (UTs: dept-staff, registrar-staff, presidents-office, etc.)
72
Security-72 CSE 300 URDH for HCA Users UC:Medical_Staff UT:Nurse UT:Physcian UR:Manager UR:Staff_RN UR:Education UR:Discharge_Plng UR:PrivateUR:Attending UC:Support_Staff Etc. UT:Technician UR:Director UR:LabUR:Pharmacy UR:Radiology
73
Security-73 CSE 300 Privilege Definition Process Assignment Assign Methods to Various Nodes of URDH Methods that are Assigned are Positive Privileges Indicate they can be Invoked by User (via a Software Application/Client) Prohibition Indicate the Methods which Can’t be Called These represent the Negative Privileges Attempt to Invoke by User (via a Software Application/Client) Results in Exception Why are Prohibited Methods Necessary?
74
Security-74 CSE 300 Privilege Acquisition Process Assignment Assigned to UR for Its Use Only Assigned to UT and Passed to Its URs Assigned to UC and Passed to Its UTs Employ OO Concepts: Inheritance w.r.t. Privileges Specialization (UT to URs) Generalization (URs to UT, UTs to UC) Notes: A UR Under 2 UTs May Have Diff. Meaning URs Cannot be Further Specialized Granularity of UR: Designer Definable! Vitals, SetIV, etc., in HCA OrderItem, TakeInventory, etc., in HTSS
75
Security-75 CSE 300 Node Profiles and Privileges Node Profiles and Privileges Profiles Contain Detailed Requirements on the Semantic Contex(n)t for Security Related Aspects of Application Each Node in the URDH Represented by: Name Prose Description of Responsibility Prose Security Requirement Assigned Methods (Positive Privileges) Prohibited Methods (Negative Privileges) Consistency Criteria (Relations Among Nodes)
76
Security-76 CSE 300 Node Descriptions - Examples from HCA
77
Security-77 CSE 300 Role Security Requirements from HCA
78
Security-78 CSE 300 Positive Privileges for Nodes Explicit Access to PPI Methods of OTs Staff_RN Assigned: Get_Symptom of Visit and Get_Medication of Prescription Get_Patient_Name of Record and Get_Test of Medical_R Set_Symptom (record symptoms on patients) Set_Test_Code (record test to be conducted) Set_Patient_Name and Insert_Med_History Discharge_Plng and Education Assigned: Similar Get Methods Limited Write: Insert_Med_History
79
Security-79 CSE 300 Implied Methodology for Assignment Privileges Associated with URs Shared Privileges for URs Under Same UT Can be Moved to UT Shared Privileges for UTs Under Same UC Can be Moved to UC However, Methods Assigned to: UC Available to Its UTs/URs UT Available to Its URs Observe that: Commonalities Push Up Tree Differences Flow Down Tree
80
Security-80 CSE 300 Two Important Concepts Methods Call Other Methods “8” Methods Assigned to Staff_RN Direct Methods/Explicitly Assigned “n” Indirect Methods Assigned to Staff_RN “8” Methods Assigned Call Other Methods In Turn, Other Methods Call Still Other Methods Hence, Chaining Effect of Implied (Actual) Calls Methods on URDH Mirror Inheritance Concepts Methods on UC Available to all of its UR Methods on UR Specific to that Role
81
Security-81 CSE 300 Prohibited Methods - Negative Privileges Important To Give Explicitly, Since: Methods Call Other Methods (MP) Assigned Methods Map to Larger Set Due to Calls and Inheritance Staff_RN Prohibited: Set_Treatment of Visit Set_Medication of Prescription Get_All methods from Medical_R Prohibition w.r.t. Hierarchy: On a UR Implies on Its UT/UC On a UT(UC) Implies on Its URs(UTs)
82
Security-82 CSE 300 Consistency Criteria Between URDH Nodes Consistency Criteria Between URDH Nodes Equivalence - URDH Nodes Must Have Same Capabilities per Assigned/Prohibited Methods Physical Respiratory Respiratory Occupational Education Discharge_Plng Subsumption - Ordering Among URDH Nodes w.r.t. Capabilities Staff_RN Discharge_Plng Manager Staff_RN Transitive Closure Applies
83
Security-83 CSE 300 A Complete Node Profile
84
Security-84 CSE 300 Security Issues for OO Paradigm MAC/DAC/RBAC - Existing Security Approaches Must Security for OO Systems Embody an Existing Approach? Is there a `Better' or `New' Choice to Consider? Are there Characteristics/Features of OO Paradigm, Systems, and Applications that Should Dictate Approach? Focus on Impact/Influence of: Encapsulation, Hiding, and Inheritance OO Application Characteristics Polymorphism, Dispatching, Overloading Object-Oriented Paradigm Claim
85
Security-85 CSE 300 Encapsulation, Hiding, and Inheritance Object Types (OTs)/Classes Involve: Encapsulated: Data and Methods Public Interface to Access OT Hidden Implementation Fosters Representation Independence Encapsulation: Reduces Allowable Actions via the Public Interface Hiding: Masks Sensitive Details in Implementation Inheritance: Controlled Sharing Among OTs Transfers Privileges from Ancestor(s) to Descendant(s) All Three Embody Security Concepts!
86
Security-86 CSE 300 What's in an OO Application? What's in an OO Application? Application Characteristics: High Volumes of Persistent Data Varied/Disparate Data Multiple Individuals/Unique Needs Distributed: Agencies/Individuals/Systems Public Interface of OT Provides: Methods, Parameters, Return Type One Interface for All Users Can't Control/Limit Access to Public Methods Need: Selective/Customizable Control of Public Interface Based on an Individual's Role
87
Security-87 CSE 300 What's in an OO Application? What's in an OO Application? OT/Class Libraries Contain: Hundreds (or More) OTs Instances/OT Range from Very Few (10s or Less) to Very Many (1000s or More) Instances Can Change Types Instances/OT Can Change Radically Over Time Conflicts with MAC: Relational Data, Few OTs (10s), Many Instances (1000s) Control at Instance and Attribute Value Levels
88
Security-88 CSE 300 Polymorphism, Dispatching, Overloading Polymorphism: Type-Independent Software Promotes Reuse Realized via Generics or Parameterized Types Can Polymorphism be Used in a Role Independent Security Library for Authentication and Enforcement? Dispatching: Run-Time Method Invocation Based on Type Strong Ties to Inheritance, Reuse, and Extensibility Can Dispatching Support Execution of Security Code by Invoking Different Methods Based on User Roles? Overloading: Methods with Same Name and Different Signatures Ada, C++, SML, etc., Support User-Defined Overloading Overloading Supports Polymorphism and Dispatching
89
Security-89 CSE 300 Object-Oriented Paradigm Claims Object-Oriented Paradigm Claims Accepted Claims: Stresses Modularity Promotes Software Reuse Facilitates Software Evolution Difficult-to-Prove Claims: Controls Data Consistency Increases Productivity For OO Security, Reuse and Evolution are Critical! Both Strongly Linked to Definition and Maintenance of OT/Class Libraries
90
Security-90 CSE 300 Security Issues and Approaches Security Defn./Enforcement Consistent with OO Precepts and Principles Support for Wide-Variety of User-Roles User Roles - Extensibility/Evolution Critical Target OO Applications and Systems: Programming, SW Engineering, Databases, Security RBAC within Joint Object-Oriented Framework Framework Facilitates Development of Application Code Against Persistent Class Library (and its Underlying DB) Role-Based Enforcement Mechanism is Part of Executable Image After Compilation During Runtime, Role of Logged In Individual Utilized to Enforce Security
91
Security-91 CSE 300 Goals for RBAC Enforcement Mechanism Goals for RBAC Enforcement Mechanism Extensibility: Application Perspective: New Classes, Methods, Roles, etc. Automatic Adjustment by RBAC EM? Extensibility: RBAC EM Perspective: New Security Policies/Approaches Can you go from MAC to DAC? Flexibility: Application Perspective: Changes to Roles, Methods, Classes, etc. How does RBAC EM Adapt? Flexibility: RBAC EM Perspective: Change to Security Restrictions/Policy Reimplementation of RBAC EM?
92
Security-92 CSE 300 Goals for RBAC Enforcement Mechanism Goals for RBAC Enforcement Mechanism Hiding & Encapsulation: Application Perspective: Invisible to Users and Components Minimize Impact on Actual Software Hiding & Encapsulation: RBAC EM Perspective: Representation Independence a Must Exploit OO Paradigm/Principles Reusability: Application Perspective: Reuse of Classes, Methods, Roles Does RBAC EM Always Need Regeneration? Reusability: RBAC EM Perspective: Is RBAC EM Application Specific? Is there a Generic RBAC EM?
93
Security-93 CSE 300 Goals for RBAC Enforcement Mechanism Goals for RBAC Enforcement Mechanism Software Engineering Related Software Itself How Pervasive are the Security Additions? Easy to Change/Modify as Privileges Change? Adheres to Existing OOPL Capabilities Software Engineer How Much Does the Software Engineer Need to Know about Security? What can be Hidden from Software Engineering? Can we Prevent Software Engineer from Getting at Restricted Software? For Example, Putting in Trap Door
94
Security-94 CSE 300 Quantifying RBAC Approaches Brute-Force (BFA) Focus on Code Level Changes Include “Conditionals” for Each UR Allowed to Access a Method in Each Methods Code User-Role Subclass (URSA) Specify “Subclasses” for Each User Role that Correspond to Each Application Class/OT Override Prohibited Methods to Return Nulls URDH Class Library (UCLA) Employ a Separate Class Library that Mirrors the URDH and Contains Privileges Requires Casting to Insure Correct Behavior
95
Security-95 CSE 300 Brute Force Approach Consider HCA Prescription Class: UR: Staff_RN Assigned Following Methods class Prescription { Public: Set_Prescription_No(....); Get_Prescription_No(....); Set_Pharmacist_Name(....); Get_Pharmacist_Name(....); Set_Medication(....); Get_Medication(....); Protected: char* patient_name, address,..... } Get_Prescription_No(....); Get_Pharmacist_Name(....); Get_Medication(....);
96
Security-96 CSE 300 Brute Force Approach Method Implementation: Comments on BFA: Code for IFs Easily Generated Any Changes Have Significant Impact Encapsulation is Poor - Spread Across OTs No Identifiable Enforcement Mechanism char* Prescription::Get_Prescription_No (....) { /* Check if a valid user is accessing the method */ if (User.User_Role == Staff_RN) || (User.User_Role == Physician) || (etc.) { //.... method code for the access..... } else return (NULL);
97
Security-97 CSE 300 User-Role Subclassing Approach Consider HCA Prescription Class Associated Privileges: class Prescription { public: virtual Get_Prescription_No(....); virtual Set_Prescription_No(....); virtual Get_Pharmacist_Name(....); virtual Set_Pharmacist_Name(....); virtual Get_Medication(....); virtual Set_Medication(....); private: char* prescription_no, pharmacist_name,... } UR: Attending_MD PM: Set_Pharmacist_Name AMs: All of the Rest UR: Staff_RN AMs: Get_Pharmacist_Name Get_Prescription_No Get_Medication PMs: Set_Prescription_No Set_Pharmacist_Name Set_Medication
98
Security-98 CSE 300 User-Role Subclassing Approach Generate User-Role Subclasses: class Staff_RN_Prescription: public Prescription{ public: virtual void Set_Prescription_No(...) {return;}; virtual void Set_Pharmacist_Name(...) {return;}; virtual void Set_Medication(...) {return;}; }; class Attending_MD_Prescription: public Prescription{ public: virtual void Set_Pharmacist_Name(...) {return;}; };
99
Security-99 CSE 300 User-Role Subclassing Approach Behavior at Runtime: Consider the Call Type of ptr Determines Which Method is called: If Staff_RN User Role, the Method is Called Which Returns Nothing (Overridden) ptr->Set_Prescription_No(); virtual void Set_Prescription_No(...) {return;};
100
Security-100 CSE 300 User-Role Subclassing Approach main() { char user_name[20], user_role[20]; Prescription* P; Staff_RN_Prescription* SP; int Number; char* Medication; cout << "Please input your name:"; cin >> user_name; cout << "Please input your role:"; cin >> user_role; // Simulates a URDH and Authorization List Current_User=new User(user_name, user_role); P = new Prescription("Jessica", "3-9-95", 100, "Kitty", "Cold");
101
Security-101 CSE 300 User-Role Subclassing Approach // This is a portion of application code if (strcmp(user_role, "Staff_RN")==0) { // Create a Instance to Hold “Staff_RM” SP = new Staff_RN_Prescription("", "", 0, "", ""); // Copy from the Parent Prescription Object SP->copy_object(P); //copy attributes from parent // Attempt to Invoke a Method as Staff_RN SP->Set_Prescription_No(200); // Set No to 200 //Get the Result of Invocation Number=SP->Get_Prescription_No(); // Staff_RN Doesn’t have Privileges - output 100 cout << "Number==" << Number << "\n"; P->copy_object(SP); //copy attributes from child delete SP; }
102
Security-102 CSE 300 Application Code Still UR Specific Comments on URSA: Extensible via New User-Role Subclasses Hindered by Switch/Recompilation Encapsulation of Security at Method Level Enforcement Mechanism Still Vague void Fill_Patient_Prescription(..., Prescription* p_rec) { // Determine the role of the user currently switch (User.User_Role()) { case Staff_RN: ((Staff_RN_Prescription *) p_rec)->Set_Prescription_No(...); break; case Attending_MD: ((Attending_MD_Prescription *) p_rec)->Set_Prescription_No(...); break; }
103
Security-103 CSE 300 URDH Class Library Approach Objectives Utilize Structure of URDH to Record Privileges Track all of Methods Assigned to User Roles, User Types, and User Classes Result Class Hierarchy Corresponding to URDH Contains all Permissions Turn Off Permissions at Root Node Turn On Permissions to Correspond to Assigned Methods Invocation only if Method “Turned On”
104
Security-104 CSE 300 Partial Class Hierarchy for URDH Root UsersUC:Medical Staff UT:Nurse UR:Staff RNUR:ManagerUR:Education Turn Off All “Check” Methods at Root Node Turn On Check Methods To Correspond to Assigned Methods Call “Check” Method Prior to Invoking Actual Method
105
Security-105 CSE 300 URDH Classes Consider Following URDH Subset: and its Corresponding Class Library: UR: Staff_RN Assigned methods: Get_Prescription_No() (to Staff_RN) Get_Pharmacist_Name() (to Staff_RN) Get_Medication() (to Nurse) class Root: all methods return False; class Users: public Root class Medical_Staff: public Root class Nurse: public Users, public Medical_Staff { int Check_Prescription_Get_Medication(){return True;} }; class Staff_RN: public Nurse { int Check_Prescription_Get_Prescription_No(){return True;} int Check_Prescription_Get_Pharmacist_Name(){return True;} };
106
Security-106 CSE 300 Impact on Application Classes Introduce “Object” Class to Track Current User and Tie into URDH Class Hierarchy Note User Part of Prescription Constructor class Object { protected: Root* current_user;... } class Item: public Object{... } class Prescription: public Item { public : Prescription(Root* u, char* Name,...); int Get_Prescription_No();... };
107
Security-107 CSE 300 Impact on Application Classes Focus on Actual Method Implementations Wrap Check Method Call Around Method Body Note Other Gets and Sets are Similar int Prescription::Get_Prescription_No() { if(current_user-> Check_Prescription_Get_Prescription_No()) return(Prescription_No); else return(NULL); } void Prescription::Set_Prescription_No(int No) { if(current_user-> Check_Prescription_Set_Prescription_No()) {Prescription_No=No;} }
108
Security-108 CSE 300 URDH Class Library Approach main() { Prescription* P; char user_name[64]; char user_role[64]; int Number; Root* current_user; cout << "Please input your name:"; cin >> user_name; cout << "Please input your role:"; cin >> user_role; // Create and Simulate a New User if (strcmp(user_role, "Staff_RN") == 0) { current_user = new Staff_RN(user_name); } else current_user = new Root(user_name);
109
Security-109 CSE 300 Key Issues: Create User to Coincide with Entry in URDH Class Hierarchy and Set Current User Change Each Method Code to Invoke Check Method Prior to Actual Invocation (Body) URDH Class Library Approach P = new Prescription(current_user,"Jim", "3-9-95", 1, "Ron", "Flu"); // FOLLOWING Set HAS NO EFFECT IF A STAFF_RN // IS ATTEMPTING TO MAKE THE CHANGE P->Set_Prescription_No(100); Number=P->Get_Prescription_No(); cout << "Number==" << Number << "\n"; }
110
Security-110 CSE 300 Comments: URDH Class Library Approach Since Changes aren't Allowed by Unauthorized Individuals the Need to Undo is Eliminated Extensibility: As new URs are Changed/Added, Only URDH Class Library Must be Recompiled Hides Security Code Once a User has been Identified Better Job at Encapsulation of Enforcement Mechanism Still Difficult to Quantify Entire Mechanism as a Single Unit Steamlines Application Code Reusability is Definitely Utilized/Superior
111
Security-111 CSE 300 Compare/Contrast the Three Approaches Application Perspective RBAC Enforcement Mechanism Perspective
112
Security-112 CSE 300 Advanced RBAC Approaches Generic Security Classes Streamline Security Defn. Process Achieve Uniformity/Promote Reuse Independent Design/Implementation/Validation Exception Handling Hide Security Code with Handlers Raise Violations when UR Attempts Unauthorized Access Review Four Approaches Generic URSA (GURSA) Basic Exception Approach (BEA) Generic Exception Approach (GEA) Advanced Exception Handling See Papers on Course Web Page…
113
Security-113 CSE 300 Object-Oriented and Programmatic Security in C++/Java Collaborative Portals Look-and-Feel Application Content Document Access Secure Software Design To Design and Write Secure Software Programs Our Five-Pronged Security Emphasis Secure Information Exchange via XML with MAC/RBAC Secure MAC/RBAC Interactions via Middleware in Distributed Setting Assurance Consistency Integrity RBAC, DAC, MAC Separation of Duty Mutual Excl. Safety Liveness
114
DSEC--114 CSE300 A Security Model/Enforcement Framework with Assurance for a Distributed Environment C. Phillips, S. Demurjian, and T.C. Ting Computer Science & Engineering Department The University of Connecticut Storrs, Connecticut 06269-3155 Charles.Phillips@usma.edu {steve,ting}@engr.uconn.edu http://www.engr.uconn.edu/~steve (860) 486 - 4818
115
DSEC--115 CSE300Motivation Legacy COTS GOTS Database NETWORK Java Client GOTS Client Legacy Client Database Client COTS Client Premise: Artifacts - set of DB, Legacy, COTS, GOTS, Each w/ API Premise: Users New and Existing Utilize Artifact APIs Distributed Application, DA Artifacts + Users Can we Control User Access to Artifact APIs (Methods) by … Role (who) Classification (MAC) Time (when) Data (what)
116
DSEC--116 CSE300 Java Client User A Role X Authorize C1, C2 C3, C5 L1, L2 L: Legacy API: Methods L1 L2 L3 C: COTS API: Methods C1 C2 C3 C4 C5 Java Client User B Role Y Authorize C1, C4 L2, L3 Motivation API Access Based on Role/Classification Can we Control Access Based on Role? Can we Control Access to Based on Classification? (high T > S > C > U low) Java Client User A Role X Authorize Secret (S) L: Legacy API: Methods T: L1 C: L2 U: L3 C: COTS API: Methods T: C1 S: C2 S: C3 T: C4 C: C5 Java Client User B Role Y Authorize Confidential (C)
117
DSEC--117 CSE300 Java Client User A Role X Authorize C1: TI a C4: TI b L1: TI c L: Legacy API: Methods L1 L2 L3 C: COTS API: Methods C1 C2 C3 C4 C5 Java Client User B Role Y Authorize C2: TI d L1: TI e Motivation API Access Based on Time/Value Can we Control Access Based on Time? Can we Control Access Based on Data Values? Java Client User A Role X Authorize X.C1 (a < 30) X.C4 (d > 40) X.L1 (f = 10) L: Legacy API: Methods L1 (f) L2 (g) L3 (h) C: COTS API: Methods C1 (a) C2 (b) C3 (c) C4 (d) C5 (e) Java Client User B Role Y Authorize Y.C2 (0<b<99) Y. L1 (f = 100)
118
DSEC--118 CSE300 Overview of Remainder of Talk Problem Statement Research Goals and Objectives Relevance/Importance of Research Distributed Environment Assumptions Unified Security Model for RBAC/MAC Security Enforcement Framework Security Assurance Design Time and Run Time Checks Role Delegation Extensions and Capabilities Analysis vs. SSE-CMM and Evaluation vs. DCP Concluding Remarks
119
DSEC--119 CSE300 Problem Statement - Research Foci Unified RBAC/MAC Security Model Security Policy Definition Run Time Security Assurance Analyses of RBAC/MAC Model/Framework Against SSE-CMM Evaluation of RBAC/MAC Model Using DCP RBAC/MAC Enforcement Framework Security Administrative and Management Tools Design Time Security Assurance
120
DSEC--120 CSE300 Research Goals and Objectives Security Model that Unifies RBAC/MAC with Constraints Based on Method Signature (How), Time (When), and Security Clearances and Classifications Security Policy and Enforcement Assurance Design Time (During Security Policy Definition) Security Assurance Run Time (Executing Application) Security Enforcement RBAC/MAC Model for a Distributed Setting Leverage Middleware Capabilities Flexible, Portable, Platform Independent Security with Minimal/Controlled Impact
121
DSEC--121 CSE300 Research Goals and Objectives Method-Level Approach Constraints using: Role, MAC, Time, and Data Customized Access to APIs of Artifacts Contrast with Object Level Approach Assessment: Security Model/Enforcement Analysis Versus CMU’s Security Engineering Capability Maturity Model (SSE-CMM) Evaluation of Utility of Approach for Supporting Dynamic Coalition Problem Prototype Administrative and Management Tools - Assurance Security Resources/Middleware - Enforcement
122
DSEC--122 CSE300 Relevance/Importance of Research Shrinking Military More Reliant on the Civilian Sector for Operational Support and Internet Usage Legacy Software Systems COTS and GOTS Shared Databases Flexible Security Policy Realization and Enforcement in Support of Coalition Warfare Classified and Non-Classified Information Rapid Deployment and Easy to Use Platform Independence Growing Need for Multi-level Security Solutions Currently Government Systems Avoid MAC Difficult to Realize and Manage
123
DSEC--123 CSE300 Distributed Environment Assumptions Assume Presence of Middleware (JINI, CORBA): Provides Bridge Between Software Artifacts Allows Software Artifacts to Register/Publish their APIs for use by Clients/Other Resources Lookup Service: Middleware that Provides Means for Software Artifacts (Resource) and Clients to Interact A Resource is a Software Artifact Accessible via API (e.g., C++, Java, etc.) Consisting of Services A Service is a Logical Grouping of Public Methods that are Registered with Lookup Service A Method has a Signature Consisting of a Possible Null Return Type and Zero or More Parameters
124
DSEC--124 CSE300 Global Command and Control System (GCCS) Resource/Service/Methods GCCS Resource with Two Services Joint Service with Methods:a.k.a Weather (Token);METOC VideoTeleconference (Token, fromOrg, toOrg);TLCF JointOperationsPlannning (Token, CrisisNum);JOPES CrisisPicture (Token, CrisisNum, Grid1, Grid2);COP TransportationFlow (Token);JFAST LogisticsPlanningTool (Token, CrisisNum); LOGSAFE DefenseMessageSystem (Token);DMS NATOMessageSystem (Token);CRONOS Component Service with Methods: ArmyBattleCommandSys (Token, CrisisNum);ABCS AirForceBattleManagementSys (Token, CrisisNum);TBMCS MarineCombatOpnsSys (Token, CrisisNum);TCO NavyCommandSystem (Token, CrisisNum);JMCIS
125
DSEC--125 CSE300 Security Enforcement Framework Software Architecture Wrapped Resource for Legacy Application Wrapped Resource for Database Application Lookup Service General Resource Wrapped Resource for COTS Application Java Client Legacy Client Database Client Software Agent COTS Client Lookup Service Security Authorization Client (SAC) Security Policy Client (SPC) Security Registration Services Unified Security Resource (USR) Security Policy Services Security Delegation Client (SDC) Security Analysis and Tracking (SAT) Security Authorization Services
126
DSEC--126 CSE300 Security Enforcement Framework Unified Security Resource Services to: Manage URs and Privileges Authorize URs to Us Identify Users and Track Security Behavior Associated Administrative/Management Tools Security Policy Client to Grant/Revoke Privileges (TCs, methods, SCs)/set CLS/CLR Security Authorization Client to Assign CLRs and Authorize URs to End Users Security Analysis Tool (SAT) to Track all Client Activity (Logons/Method Invocations)
127
DSEC--127 CSE300 Definition 1: A lifetime, LT, is a Discrete Time Interval [LT.st, LT.et] with LT.et > LT.st LT.st (start time) or LT.et (end time) is a tuple (day, month, year, hour, minute, second) where x y means x.LT.st y.LT.st and x.LT.et y.LT.et X Y is equivalent to Y X Let LT = [ct, ] means current time (ct) onward Unified Security Model Definitions Lifetimes Concept
128
DSEC--128 CSE300 Concept of Containment of Lifetimes
129
DSEC--129 CSE300 Usage of Lifetimes Lifetimes are Important Concepts since they Delineate “When” an Action or Usage Can Occur For Example: “When” is a User Role Authorized to invoke a Method? “When” is a User Authorized to a User Role? “When” Does a Resource Allow its Services Available in the Distributed Environment? Overall - LTs Control the Time Constrained Behavior for Security
130
DSEC--130 CSE300 Examples of Lifetimes
131
DSEC--131 CSE300 Related Work: Lifetimes Leasing [Wald99] Temporal Constraints [Bert96, Bert01, Ahn00] DBMS Constraints [Bark01, Nota95] User Constraints [Sand98, Zurk96] Similarities and Differences: Extend Leasing Concept from Resources, Services, and Methods to LTs of URs/ Users Temporal Constraints used on Objects and Work Flow are applied to Resources, URs, and Users Which Allows for Less Code Modification and Dynamic Changes LTs in Conjunction with Method Time Constraints Improve Granularity and Provide Increased Flexibility for Security Policy
132
DSEC--132 CSE300 Definition 2: Relevant MAC Concepts are: A sensitivity level, SLEVEL, SLEVEL = {U,C,S,T} unclassified (U) - no impact; confidential (C) causes some damage; secret (S), causes serious damage; top secret (T) causes exceptionally grave damage SLEVELs form a hierarchy: U < C < S < T Clearance (CLR) is SLEVEL given to users Classification (CLS) is the SLEVEL given to entities (roles, objects, methods, etc.) Note: We Utilize 4 Levels of Sensitivity Approach Will Work for n Levels Unified Security Model Definitions MAC Concept
133
DSEC--133 CSE300 Unified Security Model Definitions Distributed Application Definition 3: A Distributed Application, DAPPL, is Composed of a Set of Software/system Resources (e.g., a Legacy, COTS, DB, Etc.), Each Composed of a Set of Services, Which in Turn Are Each Composed of a Set of Methods, Namely: Uniquely Identifies Each Method
134
DSEC--134 CSE300 Unified Security Model Definitions Methods Every Method of Service of Resource Must be Registered from a Security Perspective Registration of Signature and Security Information Lifetime of Method (When Available for Use) Classification of Method (Level of Use) Definition 4: Every method is registered as: Default CLS is U Default LT = [ct, ] Resource by Registering Sets CLS and LT
135
DSEC--135 CSE300 Unified Security Model Definitions Services Definition 5: Every service is registered as: where Note that LT and CLS are Inferred from LT and CLS of Methods that Comprise Service
136
DSEC--136 CSE300 Unified Security Model Definitions Resource Definition 6: Every resource is registered as: where Note that LT and CLS are Inferred from LT and CLS of Services that Comprise Resource
137
DSEC--137 CSE300 Clearances/Classifications Example (C) GCCS Resource C= min {Service CLSs} (S) Joint Service with Methods S = min{Method CLSs}a.k.a (S)Weather (Token);METOC (S)VideoTeleconference (Token, fromOrg, toOrg);TLCF (S)JointOperationsPlannning (Token, CrisisNum);JOPES (S)CrisisPicture (Token, CrisisNum, Grid1, Grid2);COP (S)TransportationFlow (Token);JFAST (S)LogisticsPlanningTool (Token, CrisisNum); LOGSAFE (S)DefenseMessageSystem (Token);DMS (T)NATOMessageSystem (Token);CRONOS (C) Component Service with Methods: C = min{Method CLSs} (S)ArmyBattleCommandSys (Token, CrisisNum);ABCS (S)AirForceBattleManagementSys (Token, CrisisNum);TBMCS (S)MarineCombatOpnsSys (Token, CrisisNum);TCO (C)NavyCommandSystem (Token, CrisisNum);JMCIS Note: Access Classification Precedes Each Entry.
138
DSEC--138 CSE300 Related Work: Clearances/Classifications Lattice Based Access Control [Sand93] MAC and RBAC [Nyan95, Osbo97, Osbo00] DAC with Roles [Sand98] Orange Book [DoD96] MAC with Objects [Thur89] Similarities and Differences Our Approach Opposite in that we Take Minimum and Standard would Take Maximum Our Security Approach is at the Method Level Our Approach is Dynamic in That CLRs and CLSs Can Be Changed During Runtime MAC Check at Invocation Eliminates Need for Object Access or Change
139
DSEC--139 CSE300 Unified Security Model Definitions User Roles and UR List Definition 7: A user role, UR, representing a set of responsibilities for an application, is defined as: Notes LT and CLS is Set by Security Officer Defaults are [ct, ] and U Respectively Examples: Commander /Joint Planner - Crisis 1 [CDR_CR1, UR LT, T] [JPlannerCR1, [01dec00, 01jun01], S] [CDR_CR1, UR LT, T] [JPlannerCR1, [01dec00, 01jun01], S] Definition 8: A user-role list,, URL is the set of r unique roles that have been defined for DAPPL.
140
DSEC--140 CSE300 Unified Security Model Definitions Users and User List Definition 9: A user, U, who will be accessing the DAPPL via a client application, is defined as: Notes LT and CLS is Set by Security Officer Defaults are [ct, ] and U Respectively Example Users: General DoBest: [DoBest, 1 year, T] Colonel DoGood: [DoGood, 6 mo., S] Definition 10: A user list, UL is the set of u users that have been defined for DAPPL.
141
DSEC--141 CSE300 Examples: Users, User-Roles, and URA
142
DSEC--142 CSE300 Related Work: RBAC Benefits of RBAC Flexible, Ease of Use, Policy Realization [Bert97, Demu95, Ferr92, Nyan93, Sand96, Ting87] Main Approaches UConn - [Demu94…01, Hu94, Ting87] GMU -RBAC96 - [Ahn99…, Osbo96…, Sand96...] NIST - [Bark97, Ferr99…, Gavr98, Jeag97…] Similarities and Differences: Our Approach Does Not Rely on a Role Hierarchy Administrative Duties are Separated for Ease of Use and Least Privilege Our Approach Can Realize Multiple Policies Simultaneously on Multiple Federated Resources
143
DSEC--143 CSE300 Unified Security Model Definitions Signature Constraint Definition 11: A Signature Constraint, SC, Boolean Expression Defined on the Signature of Method, M ijk of Service S ij of resource R i that Limits the Allowable Values on the Parameters Boolean Expression is: (return-type constraint) and (parameters constraint) where either/both could be null Parameters Constraint uses AND, OR, NOT Example: CrisisPicture (Token, CrisisNum, Grid1, Grid2); SC: Grid1 < NA20 and Grid2 < NC40
144
DSEC--144 CSE300 Unified Security Model Definitions Time Constraint Definition 12: A time constraint, TC, is a lifetime that represents when a method can be assigned to a user role (or invoked by a user) or when a user is allowed to play a role. A TC has the default of [ct, ]. TC utilized at design and run time to: user role and method LTs constraining when the method can be assigned user role, method, and user LTs constraining when the method can be invoked user role and user LT constraining when the user can be authorized to the role Example: ArmyBattleCommandSys (Token, CrisisNum); TC = [ 10dec00, 16feb01]
145
DSEC--145 CSE300 Related Work: Signature and Time Constraints Temporal Constraints [Ahn00, Bert96, Bert01] User Constraints [Sand98, Zurk96] Similarities and Differences: Temporal Constraints used on Objects for Work Flow are applied to Methods as Time Constraints to Create an Operational Time Window for Valid Invocations Time Constraints are Role Dependent so Same Method in a Different Role, Can Have a Different Time Constraint Lifetimes in Conjunction with Separate, Method Time Constraints Improve Granularity and Provide Increased Flexibility for Security Policy Use of Flexible, Run-Time, Signature Constraints is Unique for Role Based Access Control, but Similar to Other Programming Parameter/Argument Techniques
146
DSEC--146 CSE300 Unified Security Model Definitions Mandatory Access Control Constraint Definition 13: A mandatory access control constraint, MACC, is the domination of the SLEVEL of one entity over another entity: CLS of Role Dominate ( ) CLS of Resource, Service, or Method CLR of User Dominate ( ) CLS of Role Example MACC: Design Time CLS of Role vs. CLS of Resource, Service, or Method Check for CLR of User vs. CLS of Role Run Time: CLR of User vs. CLS of Resource, Service, or Method
147
DSEC--147 CSE300 Unified Security Model Definitions User Role Authorizations Definition 14: A user-role authorization, URA, signifies a UR authorized to invoke a method under optional TC and/or SC, and is defined as: where UR is as given in Definition 7 M is as given in Definition 4 TC is as given in Definition 12 and is an LT that represents when the method is available to UR for invocation with default [ct, ] SC is empty (true) or as given in Definition 11 and represents values that invocation can occur
148
DSEC--148 CSE300 Unified Security Model Definitions User Role Authorizations Definition 15a : UR authorization matrix, URAM, is a matrix indexed by roles and methods: Notes: Initially, URAM, contains all 0 entries When equal to 1 for some authorization is a Valid URA (VURA) At Design, UR CLS must dominate M CLS and there must be Overlap of LT/TC
149
DSEC--149 CSE300 Example Users, User Roles, and URAs ],
150
DSEC--150 CSE300 Unified Security Model Definitions Remaining Definitions Definition 15b : A valid user-role authorization list, where Definition 15b : A valid user-role authorization list, where is the set of all VURAs with URAM(UR,M) = 1. Definition 16: A user authorization, UA, is a user authorized to play a role: where U is as given in Definition 9 UR is as given in Definition 7 TC is as given in Definition 12 and represents the LT of authorization
151
DSEC--151 CSE300 Unified Security Model Definitions Remaining Definitions Definition 17a : User authorization matrix, UAM: Notes: Initially, UAM, contains all 0 entries When equal to 1 for some Authorization is a Valid UA (VUA) At Design Time, a U’s CLR must dominate a Role’s CLS with overlap of TC and LT
152
DSEC--152 CSE300 Example UAM and URAM Matrices User\User-Role ArmyLogCR1 ArmyLogCR2 JPlannerCR1 JPlannerCR2 CDR_CR1 DoBest 0 0 0 0 1 DoGood 0 0 1 1 0 DoRight 1 0 0 0 0 CanDoRight 0 1 0 0 0 Method\User-Role ArmyLogCR1 ArmyLogCR2 JPlannerCR1 JPlannerCR2 CDR_CR1 ArmyBattleCommamdSys 1 1 1 1 1 CrisisPicture 1 1 1 1 1 MarineCombatOpnsSys 0 0 1 1 1 LogPlanningTool 1 1 0 0 1 User Authorization Matrix (UAM) 1 = authorized, 0 = not User-Role Authorization Matrix (URAM): 1 = UR authorized to invoke Method, 0 = otherwise
153
DSEC--153 CSE300 Unified Security Model Definitions Remaining Definitions Definition 17b: A valid user authorization list, where is the set of all VUAs with UAM(UR,U) = 1 Definition 18: A client, C, is authorized user U, uniquely identified via a client token C = [U, UR, IP-Address, Client-Creation-Time] where Creation Time is Clock at Creation
154
DSEC--154 CSE300 Security Enforcement Framework Software Architecture Wrapped Resource for Legacy Application Wrapped Resource for Database Application Lookup Service General Resource Wrapped Resource for COTS Application Java Client Legacy Client Database Client Software Agent COTS Client Lookup Service Security Authorization Client (SAC) Security Policy Client (SPC) Global Clock Resource (GCR) Security Registration Services Unified Security Resource (USR) Security Policy Services Security Authorization Services Security Analysis and Tracking (SAT)
155
DSEC--155 CSE300 Security Enforcement Framework Unified Security Resource Services to: Manage URs and Privileges Authorize URs to Us Identify Users and Track Security Behavior Associated Administrative/Management Tools Security Policy Client to Grant/Revoke Privileges (TCs, methods, SCs)/set CLS/CLR Security Authorization Client to Assign CLRs and Authorize URs to End Users Security Analysis Tool (SAT) to Track all Client Activity (Logons/Method Invocations)
156
DSEC--156 CSE300 Security Enforcement Framework Security Prototype (JINI and CORBA) Java GUI PDB Client JINI Lookup Service USR All Services Common Resource (Global Clock) CORBA Lookup Service Patient DB Resource (PDB) University DB Resource (UDB) Java GUI UDB Client Security Policy Client Security Authorization Client
157
DSEC--157 CSE300 Security Enforcement Framework USR Services Security Policy Services Register Service Query Privileges Service User Role Service Constraint Service Grant-Revoke Service Grant_Resource(UR_Id, R_Id); Grant_Service(UR_Id, R_Id, S_Id); Grant_Method(UR_Id, R_Id, S_Id, M_Id); Grant_SC(UR_Id, R_Id, S_Id, M_Id, SC); Grant_TC(UR_Id, R_Id, S_Id, M_Id, TC); Security Authorization Services Authorize Role Service Client Profile Service Security Registration Services Register Client Service Security Tracking and Analysis Services Revoke_Resource(UR_Id, R_Id); Revoke _Service(UR_Id, R_Id, S_Id); Revoke _Method(UR_Id, R_Id, S_Id, M_Id); Revoke _SC(UR_Id, R_Id, S_Id, M_Id, SC); Revoke _TC(UR_Id, R_Id, S_Id, M_Id, TC);
158
DSEC--158 CSE300 Security Enforcement Framework Security Policy Services Register Service Register_Resource(R_Id); Register_Service(R_Id, S_Id); Register_Method(R_Id, S_Id, M_Id); Register_Signature(R_Id, S_Id, M_Id, Signat); UnRegister_Resource(R_Id); UnRegister_Service(R_Id, S_Id); UnRegister_Method(R_Id, S_Id, M_Id); Unregister_Token(Token) Query Privileges Service Query_AvailResource(); Query_AvailMethod(R_Id); Query_Method(Token, R_Id, S_Id, M_Id); Check_Privileges(Token, R_Id, S_Id, M_Id, ParamValueList); User Role Service Create_New_Role(UR_Name, UR_Disc, UR_Id); Delete_Role(UR_Id);
159
DSEC--159 CSE300 Security Enforcement Framework Security Policy Services Constraint Service DefineTC(R_Id, S_Id, M_Id, SC); DefineSC(R_Id, S_Id, M_Id, SC); CheckTC(Token, R_Id, S_Id, M_ID); CheckSC(Token, R_Id, S_Id, M_ID, ParamValueList); Grant-Revoke Service Grant_Resource(UR_Id, R_Id); Grant_Service(UR_Id, R_Id, S_Id); Grant_Method(UR_Id, R_Id, S_Id, M_Id); Grant_SC(UR_Id, R_Id, S_Id, M_Id, SC); Grant_TC(UR_Id, R_Id, S_Id, M_Id, TC); Revoke_Resource(UR_Id, R_Id); Revoke_Service(UR_Id, R_Id, S_Id); Revoke_Method(UR_Id, R_Id, S_Id, M_Id); Revoke_SC(UR_Id, R_Id, S_Id, M_Id, SC); Revoke_TC(UR_Id, R_Id, S_Id, M_Id, TC);
160
DSEC--160 CSE300 Security Authorization and Registration Services Register Client Service Create_Token(User_Id, UR_Id, Token); Register_Client(User_Id, IP_Addr, UR_Id); UnRegister_Client(User_Id, IP_Addr, UR_Id); IsClient_Registered(Token); Find_Client(User_Id, IP_Addr); Security Tracking and Analysis Services Tracking Service: Logfile(Log String) Analysis Service: Analyze (Java Class File) SECURITY REGISTRATION SERVICES Authorize Role Service Grant_Role(UR_Id, User_Id); Revoke_Role(UR_Id, User_Id); Client Profile Service Verify_UR(User_Id, UR_Id); Erase_Client(User_Id); Find_Client(User_Id); Find_All_Clients(); SECURITY AUTHORIZATION SERVICES
161
DSEC--161 CSE300 Security Enforcement Framework Client, Resource, Service Invocations Security Authorization Services Security Registration Services Lookup Service GCCS Client 1 Register_Client(DoRight,100.150.200.250, ArmyLogCR1) 10 Return Result of Check_Privileges(…) 4 Return Result,Create_Token(DoRight,ArmyLogCR1,Token) 6 CrisisPicture(Token,CR1, NA20, NC40) 3 Client OK? 11 Return Result,CrisisPicture(…) 5. Discover/Lookup(GCCS,Joint,CrisisPicture) Returns Proxy to Course Client 7 IsClient_Registered(Token) 9 Check_Privileges(Token, GCCS, Joint, CrisisPicture, [NA20,NC40]) 2 Verify_UR(DoRight,ArmyLogCR1) Security Policy Services GCCS Resource 8 Return Result of IsClient_Registered(…) USR
162
DSEC--162 CSE300 Security Prototype Global Clock Server/Client Logon
163
DSEC--163 CSE300 The Security Policy Client Manages Privileges for Roles and Resources For Roles: Define/Delete Roles including LTs and CLSs Grant/Revoke Privileges in Terms of Methods Grant Methods to Roles Limit Grant based on Time Constraint Limit Grant based on Signature Constraint For Resources: Register Resource, its Services, their Methods Establish LTs and CLSs Resources can Also Register themselves Programmatically via the USR Services
164
DSEC--164 CSE300 Security Policy Client Registering a Resource
165
DSEC--165 CSE300 Security Policy Client Registering a Service
166
DSEC--166 CSE300 Security Policy Client Registering Methods for Resource
167
DSEC--167 CSE300 Security Policy Client Registering Methods for Resource
168
DSEC--168 CSE300 Security Policy Client Adding Methods to Service
169
DSEC--169 CSE300 Security Policy Client Adding Methods to Service
170
DSEC--170 CSE300 Security Policy Client Confirmation of Registered Methods
171
DSEC--171 CSE300 Security Policy Client Tracking Defined Resources
172
DSEC--172 CSE300 Security Policy Client Creating User Role
173
DSEC--173 CSE300 Security Policy Client Creating User Role
174
DSEC--174 CSE300 Security Policy Client Granting Resource to UR
175
DSEC--175 CSE300 Security Policy Client Granting Service to UR
176
DSEC--176 CSE300 Security Policy Client Granting Method to UR
177
DSEC--177 CSE300 Security Policy Client Confirmation of Method to Role
178
DSEC--178 CSE300 Security Policy Client Reviewing Access of Resources to Roles
179
DSEC--179 CSE300 Security Policy Client Defining a Signature Constraint
180
DSEC--180 CSE300 Security Policy Client Defining a Signature Constraint
181
DSEC--181 CSE300 The Security Authorization Client Intended for Authorization Capabilities Main Objectives Define New User with CLR and LT Authorize URs to End Users Define Clients Authorization of Roles to Users Must Satisfy User.CLR Dominates Role.CLS Overlap of LTs w.r.t. Current Time
182
DSEC--182 CSE300 Security Authorization Client Creating a User
183
DSEC--183 CSE300 Security Authorization Client Granting Roles to User
184
DSEC--184 CSE300 Security Prototype Tracking Logins and Actions
185
DSEC--185 CSE300 Security Prototype Tracking Methods of Resources
186
DSEC--186 CSE300 Security Assurance Security Assurance Represents a Confidence Level of the Security Capabilities to Insure Sensitive Information is Protected From Access and Misuse Assurance is Needed at: Design Time (DT) - as Security Policy is Defined Using our Security Model Run Time (RT) - via Enforcement as Users/Clients Access Resources in Secure Manner Enumerated and Defined to Security Assurance is Enumerated and Defined to: Insure Policy Consistency (A & M Tools) Check Conditions as Users Access Resources
187
DSEC--187 CSE300 Assurance Guarantees Available Time : Maximum Amount of Time Derived from the Intersections of LTs and TCs Simple Security Property: A Subject Can Read at the Same or Lower Level. (Read Down/No Read Up) Simple Integrity Property: A Subject Can Write to the Same or Lower Level Safety: No Bad Things Can Happen During Execution Liveness: All Good Things Can Happen
188
DSEC--188 CSE300 Available Time Available Time Represents “When” Construct is Available for Usage Comparison of Lifetimes Including Role Method Current Time Sets a Limit on When an Action can Occur
189
DSEC--189 CSE300 The Compare Function for Two LTs
190
DSEC--190 CSE300 Time-Based Guarantees
191
DSEC--191 CSE300 Time-Based Guarantees
192
DSEC--192 CSE300 Lemma 1 Conceptually
193
DSEC--193 CSE300 Time-Based Guarantees
194
DSEC--194 CSE300 Lemma 2 Conceptually
195
DSEC--195 CSE300 Time-Based Guarantees
196
DSEC--196 CSE300 Lemma 3 Conceptually
197
DSEC--197 CSE300 MAC-Based Guarantees Verify the Behavior of Method Invocation Differentiate Between Method Types Read-Only Method - Do not Change the State of an Object Satisfies Simple Security (Read up/No Read Down) Read-Write method May Change the State of an Object Satisfies Simple Security (Read up/No Read Down) and Simple Integrity (Write Down/No Write Up) Assume: Values are Not Returned Through Method Parameters (only Value Parameters)
198
DSEC--198 CSE300 MAC-Based Guarantees
199
DSEC--199 CSE300 MAC-Based Guarantees
200
DSEC--200 CSE300 MAC-Based Guarantees
201
DSEC--201 CSE300 MAC-Based Guarantees
202
DSEC--202 CSE300 MAC-Based Guarantees
203
DSEC--203 CSE300 Safety: Nothing bad happens during execution Liveness: All good things can happen during execution GOAL: Maximize Safety and Liveness Disconnecting from a network increases Safety, but decreases Liveness Allowing unlimited access increases Liveness, but decreases Safety Safety and Liveness Guarantees
204
DSEC--204 CSE300 Security Assurance Rules A Security Assurance Rule Must hold True for the Security Policy DT: Privilege Definition/Modification RT: As Users Perform Actions Categories of Checks are: MACC Domination Lifetime Time Constraint Signature Constraint Authorization and Authentication
205
DSEC--205 CSE300 Create a VURA and if the Creation is Successful, then the entry of URAM = 1. For Authorization to Occur CLS of A must Dominate CLS of M LTs of A, M, and TC must Overlap (reset as TC), and reset TC has an end time after ct Security Assurance - Design Time Rule I: Authorizing Method to UR
206
DSEC--206 CSE300 LTs and TCs must be Contrasted Security Assurance - Design Time Rule I Conceptually ct A.LTM.LTTC A.LT M.LT TC
207
DSEC--207 CSE300 Create a VUA and if the Creation is Successful, the Entries of UAM and UDAM are set to 1 For Authorization to Occur CLR of X must Dominate CLS of A LTs of A, X, and TC must Overlap (reset as TC), and reset TC has an end time after ct Security Assurance - Design Time Rule II: Authorizing UR to User
208
DSEC--208 CSE300 LTs and TCs Again Constrained Security Assurance - Design Time Rule II Conceptually ct A.LT X.LT TC A.LT X.LT TC
209
DSEC--209 CSE300 Runtime Authorization (of user to role). For Authorization to Occur at Runtime Rule II must be rechecked (since privileges can dynamically change). Recheck involves the Overlap of the LTs of X, A, and TC with Respect to Current Time. Security Assurance - Runtime Rule III: Authorizing UR to User
210
DSEC--210 CSE300 What is the Time Issue in This Case? Must Compare Against Rule II Must Also Look at TC vs. ct TC.et After ct TC.st Before ct Security Assurance - Runtime Rule III Conceptually ct TC ct TC
211
DSEC--211 CSE300 N(Name), P(Params), APV(Actual Param Values) SCOracle is a Constraint Checker that Compares Parameter Values of M’s Invocation against SC returns true if M.parametervalues satisfy SC returns false otherwise. Security Assurance - Runtime Rule IV: Invoking a Method
212
DSEC--212 CSE300 Security Assurance - Runtime Rule IV Conceptually Same issues as Rule III (Rule I and TC vs. ct) Additionally, There is a Constraint Checker Defn: CrisisPicture (Token, CrisisNum, Grid1, Grid2); SC: Grid1 < NA20 and Grid2 < NC40 Call: CrisisPicture (123, 111, NA18, NC45); Compare Call Against SC to Determine if Can Invoke
213
DSEC--213 CSE300 Safety and Liveness Theorems
214
DSEC--214 CSE300 Safety and Liveness Theorems
215
DSEC--215 CSE300 Safety and Liveness Theorems
216
DSEC--216 CSE300 Safety and Liveness Theorems
217
DSEC--217 CSE300 Related Work Security Assurance Motivation and Need within DoD [C4I99, DARP00, DoD88, Tete99] Abstract Study of Assurance [Alfo01, Garv98,McCu91, Maco01] Role Administration Participates in Assurance Separation of Duty [Ahn99, Both01,Garv98, Glig98, Nyan93, Osob00, Simo97] Mutual Exclusion [Bert97, Kand01, Khun97] Role Hierarchies [Demu95, Ferr97, Hu95, Jans98, Moff99, Sand96, Spoo89 ] Administration Mechanisms [Awis97, Murl01, Nyan94, Sand99]
218
DSEC--218 CSE300 What is Role Delegation? Role Delegation is a User-to-User Relationship that Allows One User to Transfer Responsibility for a Particular Role to Another Individual Two Major Types of Delegation Administratively-directed Delegation has an Administrative Infrastructure Outside the Direct Control of a User Mediates Delegation User-directed Delegation has an User (Playing a Role) Determining If and When to Delegate a Role to Another User In Both, Security Administrators Still Oversee Who Can Do What When w.r.t. Delegation Rensselaer at Hartford) Work of M. Liebrand ( Rensselaer at Hartford)
219
DSEC--219 CSE300 Why is Role Delegation Important? Many Different Scenarios Under Which Privileges May Want to be Passed to Other Individuals Large organizations often require delegation to meet demands on individuals in specific roles for certain periods of time True in Many Different Sectors Financial Services Engineering Academic Setting Key Issues: Who Controls Delegation to Whom? How are Delegation Requirements Enforced?
220
DSEC--220 CSE300 What Can be Delegated? Authority to Do the Task, Carries the Least Responsibility Necessary to Execute the Task, but Does Mean the Delegated User Can Execute the Delegated Task or Role. Responsibility to Do a Task Implies Accountability and a Vested Interest that a Task or Role Can Be Executed Properly. Duty to Perform a Task Implies that the Delegated User is Obligated to Execute the Given Task. Our Focus: Delegate Authority Only
221
DSEC--221 CSE300 Our Focus for Delegation Extensions to the Unified Security Model Identify Roles that are Delegatable Distinguish: Original and Delegated Users Delegation Authority and Delegated Role Detailed Example to Illustrate Concepts Analysis of Role Delegation Capabilities Investigation of SPC, SAC, and SDC in Support of Delegation Security Assurance for Delegation
222
DSEC--222 CSE300 Role Delegation Extensions Definition 19: A delegatable UR, DUR, is a UR that is eligible for delegation. Definition 20: The delegatable UR vector, DURV, is defined for all r as: Delegatable URs (from Slide 33) [CDR_CR1, [01dec00,01dec01], T] [JPlannerCR1, [01dec00, 01jun01], S] [JPlannerCR2, [01jul01, 01sep01], C] Delegatable URs (from Slide 33) [CDR_CR1, [01dec00,01dec01], T] [JPlannerCR1, [01dec00, 01jun01], S] [JPlannerCR2, [01jul01, 01sep01], C] DURV(A) = 1 for A = CDR_CR1, JPlannerCR1 and JPlannerCR2 DURV(A) = 0 for A = ArmyLogCR1 and ArmyLogCR2
223
DSEC--223 CSE300 Role Delegation Extensions Definition 21: An original user, OU UL, is authorized to the UR such that there exists a VUA for the OU/UR, i.e., UAM(UR,OU) = 1 OU: Authorized to the UR via Regular Process Implies Not Eligible for Delegation Definition 22: A delegated user, DU UL, is a user eligible to be delegated a UR by an OU or a DU (there is not a VUA i.e., UAM(UR,DU) 1). DU of a UR cannot be an OU for same UR
224
DSEC--224 CSE300 Examples of OUs DUs Examples of OUs DUs ArmyLogCR1 DoRight ArmyLogCR2 CanDoRight JPlannerCR1 DoGood JPlannerCR2 DoGood CRC_CR1 CDR_CR1 ArmyLogCR1 DoBest, DoGood, CanDoRight ArmyLogCR2 DoBest, DoGood, DoRight JPlannerCR1/JPlannerCR2 DoBest, DoRight, CanDoRight CRC_CR1 DoGood, DoRight, CanDoRight
225
DSEC--225 CSE300 Role Delegation Extensions Definition 23: User delegation/authorization matrix, UDAM: Represents who is a DU, OU, or Neither UDAM Entries are Initially All Set to False Set to 1 Whenever a User is an OU Set to 2 Whenever a User is an DU Recall Rule II Set UDAM = 1
226
DSEC--226 CSE300 Delegation and Pass on Delegation Authorities When Establishing Privileges (by the Security Officer) there must be the Ability to Define: Delegation Authority (DA) Recall:Security Officer can Delegate a Role to User DA Means that the Security Officer Can Delegate the Authority to Delegate to another User Role Can be Delegated by one User to Another However, Delegation Authority Cannot Pass-on Delegation Authority (PODA) PODA Augments DA to Allow the Delegation Authority to Also be Delegated as Part of the Delegation of a Role to a User
227
DSEC--227 CSE300 Role Delegation Extensions Definition 24: Delegation authority, DA, is given to the OU to allow delegation of a DUR. Definition 25: Pass-on delegation authority, PODA, allows an OU (DU) to pass on DA for a DUR to another user (OU or DU). Definition 26: Delegation authority matrix, DAM: DU has Neither DA Nor PODA DU has Just DA DU has Both DA and PODA
228
DSEC--228 CSE300 Example of DA and PODA JPlanner1: DoGood has DA JPlanner2: DoGood has DA CDR_CR1: DoBest has both DA and PODA All Other Entries have Neither DA Nor PODA User\User-Role ArmyLogCR1 ArmyLogCR2 JPlannerCR1 JPlannerCR2 CDR_CR1 DoBest 0 0 0 0 2 DoGood 0 0 1 1 0 DoRight 0 0 0 0 0 CanDoRight 0 0 0 0 0 Delegation Authority Matrix (DAM): 2 = has DA and PODA, 1 = has DA, 0 = neither
229
DSEC--229 CSE300 Recall UAM and URAM Matrices User\User-Role ArmyLogCR1 ArmyLogCR2 JPlannerCR1 JPlannerCR2 CDR_CR1 DoBest 0 0 0 0 1 DoGood 0 0 1 1 0 DoRight 1 0 0 0 0 CanDoRight 0 1 0 0 0 Method\User-Role ArmyLogCR1 ArmyLogCR2 JPlannerCR1 JPlannerCR2 CDR_CR1 ArmyBattleCommamdSys 1 1 1 1 1 CrisisPicture 1 1 1 1 1 MarineCombatOpnsSys 0 0 1 1 1 LogPlanningTool 1 1 0 0 1 User Authorization Matrix (UAM) 1 = authorized, 0 = not User-Role Authorization Matrix (URAM): 1 = UR authorized to invoke Method, 0 = otherwise
230
DSEC--230 CSE300 Augment with DAM and UDAM Matrices User\User-Role ArmyLogCR1 ArmyLogCR2 JPlannerCR1 JPlannerCR2 CDR_CR1 DoBest 0 0 0 0 2 DoGood 0 0 1 1 0 DoRight 0 0 0 0 0 CanDoRight 0 0 0 0 0 Delegation Authority Matrix (DAM): 2 = has DA and PODA, 1 = has DA, 0 = neither User\User-RoleArmyLogCR1 ArmyLogCR2 JPlannerCR1 JPlannerCR2 CDR_CR1 DoBest 0 0 0 0 1 DoGood 0 0 1 1 0 DoRight 1 0 0 0 0 CanDoRight 0 1 0 0 0 User Delegation/Authorization Matrix (UDAM): 2 = U is a DU, 1 = U is a OU, and 0 = not authorized
231
DSEC--231 CSE300 Example - Role Delegation General DoBest Delegates his Role to Colonel DoGood with DA, where DoBest, CDR_CR1, and DoGood defined as: OU: [DoBest, [ct, ], T] UR: [CDR_CR1, [01dec00, 01dec01], T] UA: [DoBest, CDR_CR1, [01dec00, 01dec01]] DA: Yes PODA: Yes After Delegation: DU: [DoGood, [01dec00, 01jun01], T] UA: [DoGood, CDR_CR1, [01dec00, 01jun01]]
232
DSEC--232 CSE300 Example - Role Delegation Now, Colonel DoGood wishes to re-delegate CDR_CR1 to Major CanDoRight, which can be defined as: Now, Colonel DoGood wishes to re-delegate CDR_CR1 to Major CanDoRight, which can be defined as: DU: [DoGood, [01dec00, 01jun01], T] UR: [CDR_CR1, [01dec00, 01dec01], T] UA: [DoGood, CDR_CR1, [01dec00, 01jun01]] DA: Yes PODA: No After Delegation: DU: [CanDoRight, [01jan01, 01feb01], T] UA: [CanDoRight, CDR_CR1, [01dec00, 01jun01]]
233
DSEC--233 CSE300 Related Work: Role Delegation Role Administration [Awis97] Delegation with RBAC [Bark00, Na00] Delegation Principals [Zhang01] Similarities and Differences In Our Approach, OU Maintains Control of Delegation DU Cannot Give Delegation Authority Our Approach is Dynamic, in that, Delegations have LTs Changeable During Runtime Our Delegation Incorporates MACC We extend Zhang’s Definitions to Include Delegation Authority, Revocation Authority, Delegated Role, and Delegatable Role
234
DSEC--234 CSE300 Enforcement Framework and Role Delegation Revocation Rules User-to-User Delegation Authority Rule A User (OU or DU) Who is a Current Member of a Delegatable Role (DUR), Can Delegate that User Role to Any User that Meets the Prerequisite Conditions of the Role: DU Receiving the Role is Not a Member of the Role; OU or DU is Identified As Having Delegation Authority for the Role; DU Meets the Mandatory Access Control Constraints (MACC).
235
DSEC--235 CSE300 Enforcement Framework and Role Delegation Revocation Rules Delegation Revocation Authorization Rule: An Original User Can Revoke Any Delegated User From a User Role in Which the OU Executed the Delegation. This is a Stricter Interpretation than [Zhan01], Which Allows Any OU of a Role Revocation Authority Over a DU in the Delegation Path. In Addition, a Security Administrator Can Revoke Any Delegation. Cascading Revocation Rule: Whenever an OU or DU in the delegation path is revoked, all DUs in the path are revoked.
236
DSEC--236 CSE300 Analysis of Role Delegation Analysis of Role Delegation Against Set of Common Criteria Monotonicity Permanence Totality Administration Levels of Delegation Multiple Delegation Agreements Cascading Revocation Grant-dependency Revocation We’ll Define and Discuss Each
237
DSEC--237 CSE300 Analysis of Role Delegation Monotonicity Definition: Monotonicity Refers to the State of Control the OU Possesses After Role Delegation Monotonic Delegation Means That the OU Maintains Control of the Delegated Role Non-monotonic Means That the OU Passes the Control of the Role to DU Our Approach Utilizes Monotonic Delegation Since We Believe for Assurance it is Critical to Exercise a Level of Control W.R.T. Delegation
238
DSEC--238 CSE300 Analysis of Role Delegation Permanence Definition: Permanence Refers to Delegation in Terms of Time Duration Permanent Delegation is When a DU Permanently Replaces the OU Temporary Delegation Has an Associated Time Limit With Each Role Our Approach Utilizes Temporary Delegation Since Temporal Constraints (LTs/TC) Are an Important Part of Our Unified Security Model
239
DSEC--239 CSE300 Analysis of Role Delegation Totality Definition: Definition: Totality Refers to How Completely the Permissions Assigned to the Role Are Delegated Partial Delegation Refers to the Delegation of a Subset of the Permissions of the Role Total Delegation Refers to the Situation All of the Permissions of the Role Are Delegated Our Approach Utilizes Total Delegation Since we Believe Partial Delegation Defeats Purpose of Urs and Assignment Methods to UR under TCs/SCs Partial Delegation is Achievable by Defining Special Roles that are Delegatable
240
DSEC--240 CSE300 Analysis of Role Delegation Administration Definition: Definition: Administration Refers to how Delegation will be Administered User Directed is when the User Controls all Aspects of Delegation Administrator-Directed (Third party, Agent- directed) is when Control is with the Security Officer Our Approach Utilizes a Combination of Both Allowing the Security Officer to Establish DA/PODA and the User to Determine to “Whom” the Delegation will Occur
241
DSEC--241 CSE300 Analysis of Role Delegation Levels of Delegation Definition: Definition: Levels of Delegation Refers to the Ability of DU to Further Delegate a Role (PODA) and the Number of Vertical Levels the Delegated Role Can Be Delegated Boolean Control – Roles Can Be Re-delegated Until a Delegating User Says No Integer Control –Roles can be Re-delegated until Fixed Number of Re-delegations Occur Our Approach Utilizes Modified Boolean Control via the DA/PODA If PODA not Given - Delegation Stops Prototype has Limit of either 2 or 3 Levels
242
DSEC--242 CSE300 Analysis of Role Delegation Multiple Delegations Definition: Definition: Multiple Delegations Refers to the Number of Delegated Users (DU) (Horizontally) to Whom a Delegatable User Role (DUR) Can Be Delegated to at Any Given Time Our Approach Includes Unlimited Delegations in Our Security Model Since We Want to Maintain the User’s Flexibility A Limit on the Number of DUs to a Role is Subjective. Subjective Limits Are Not Often Enforced; There Are No Hard Bases for Them
243
DSEC--243 CSE300 Analysis of Role Delegation Agreements Definition: Definition: Agreements Refer to the Delegation Protocol of the OU to the DU Bilateral Agreements: the DU Needs to Accept the Delegated Role Unilateral Agreements: the OU Delegates the UR Permissions and the DUs Are Not Required to Accept or Even Acknowledge the Delegation Our Approach Utilizes Unilateral Agreements
244
DSEC--244 CSE300 Analysis of Role Delegation Cascading Revocation Definition: Definition: Cascading Revocation Refers to the Indirect Revocation of All DUs When the OU Revokes Delegation or Administration Revokes the OU’s Delegated Role Non-cascading Revocation Could Be Useful in the Event a Middle Manager User Is Fired Without Replacement and Subordinates Need to Execute the Vacated Roles Our Approach Utilizes Cascading Revocation and will Handle Non-Cascading Case via Security Administrative Tools (Changing Privileges)
245
DSEC--245 CSE300 Analysis of Role Delegation Grant Dependency Revocation Definition: Definition: Grant-Dependency Revocation Refers to Who Has Authority to Revoke a DU Grant-Dependent Revocation Only Allow the OU to Revoke the Delegated Role Grant-Independent Revocation Allows Any Original Member of the DUR to Revoke a Delegated Role Our Approach Utilizes a Limited Form of Grant- independent Revocation Where Only the DU and the Security Administrator Can Revoke a DUR
246
DSEC--246 CSE300 Role Delegation Process Security Management Tools Examine the Process of Delegation Utilize the Military Application Explore Security Policy Client Security Authorization Client Security Delegation Client SDC is a New Administrative Tool Utilized by Both Security Officer and the End User Focus on their role in Delegation Administration Screen Bit Maps are Ordered to Illustrate a Process
247
DSEC--247 CSE300 Security Policy Client Registration of Resources
248
DSEC--248 CSE300 Security Policy Client Creation of Administration Role
249
DSEC--249 CSE300 Security Authorization Client Granting of Role(s) to User(s)
250
DSEC--250 CSE300 Security Policy Client Cdr. Crisis 1 Role/Conflicting Role List
251
DSEC--251 CSE300 Security Policy Client Granting of Resource(s) to Role(s)
252
DSEC--252 CSE300 Security Policy Client Granting of Service (s) to Role(s)
253
DSEC--253 CSE300 Security Policy Client Granting of Methods(s) to Role(s)
254
DSEC--254 CSE300 Security Policy Client Query Privileges
255
DSEC--255 CSE300 Security Authorization Client Create a User
256
DSEC--256 CSE300 Security Authorization Client Create a User
257
DSEC--257 CSE300 Security Authorization Client Granting a Role
258
DSEC--258 CSE300 Security Authorization Client Granting a Role with DA/PODA
259
DSEC--259 CSE300 Security Authorization Client Granting a Role with DA/PODA
260
DSEC--260 CSE300 Security Authorization Client Query Privileges
261
DSEC--261 CSE300 Security Authorization Client Query Privileges - Results
262
DSEC--262 CSE300 The Security Delegation Client
263
DSEC--263 CSE300 Security Delegation Client Log on to the Security Delegation Client
264
DSEC--264 CSE300 Security Delegation Client Attempt to Perform a Delegation
265
DSEC--265 CSE300 Security Delegation Client Attempt to Perform a Delegation
266
DSEC--266 CSE300 Security Delegation Client Query a User’s Role
267
DSEC--267 CSE300 Security Delegation Client Revocation of Delegation
268
DSEC--268 CSE300 Security Delegation Client Revocation of Delegation
269
DSEC--269 CSE300 Security Delegation Client Denying Log in if UR not Available
270
DSEC--270 CSE300 Security Delegation Client Denying Delegation if MAC Violated
271
DSEC--271 CSE300 Security Delegation Client Denying Delegation if TC Violated
272
DSEC--272 CSE300 Security Delegation Client Denying Delegation if no Delegatable Roles
273
DSEC--273 CSE300 Security Delegation Client Pass on Delegation Restriction
274
DSEC--274 CSE300 Security Delegation Client Example Dobest delegate a role to dogood without pass-on-delegation, when dogood delegated this role to doright, he can’t delegate it with pass-on-delegation
275
DSEC--275 CSE300 Security Delegation Client Delegation Matrix within SDC Dobest(T): ArmyLogCR1(c) Chip(T): ArmyLogCR1(c) Dogood(S): ArmyLogCR1 ( C) Doright(c ): ArmyLogCR1 ( C) When Original user revoke This role, the role matrix is revoked within SDC
276
DSEC--276 CSE300 Security Delegation Client Example Dobest delegate a role to dogood Dogood delegate this role to other users
277
DSEC--277 CSE300 Security Delegation Client Example Dobest revokes the role delegated to dogood The role delegated by dogood are erased at the same time.
278
DSEC--278 CSE300 Design Time Security Assurance for Delegation Design Time Checks – Policy Realization MACC Domination CLR Dominates CLS Role Delegation DU Not Already a Role Member User to User Delegation Authority Must Check User Delegation Authority Matrix DU Meets MACC Requirements Lifetime Consistency DU’s LT Must be Within OU’s LT Modified Boolean Delegation OU can Delegate and Pass on Delegation Authority DU cannot Pass On Delegation Authority These are Checks in SPC, SAC, and SDC
279
DSEC--279 CSE300 Run Time Security Assurance for Delegation Executed While Running Distributed Application MACC Domination Role Delegation User to User Delegation Authority Lifetime Consistency Modified Boolean Delegation (additional checks) Delegation Revocation Authorization Rule OU/DU Can Revoke Any Initiated Delegation Cascading Revocation Rule Whenever OU is Revoked, OU’s Delegations are revoked, Including Passed On Delegations These are Checks by the Enforcement Framework as supported with USR
280
DSEC--280 CSE300 UDAM(A, X) =1 implies that UAM(A, X) = 1 by Rule II. Rules V establishes DA for user X to role A in the case where X is an OU. Security Assurance - Design time Rule V: Assigning Delegation Authority
281
DSEC--281 CSE300 Theorem V
282
DSEC--282 CSE300 User must have DA in order to have PODA e.g., a User cannot have PODA without DA UDAM(A, X) =1 implies that UAM(A, X) = 1 by Rule II. Rule VI establishes, respectively, DA/PODA for user X to role A in the case where X is an OU. Security Assurance - Design time Rule VI: DA and PODA
283
DSEC--283 CSE300 The delegation sets UAM and UDAM for the DU and DR. Y is a DU of A, and X satisfies Rules V or VI Y to be authorized to A, hence UAM(A, Y) = 1 Security Assurance - Design time Rule VII: Delegation of UR
284
DSEC--284 CSE300 Passing on of DA or DA/PODA from a user (either OU or DU) to another DU Rule VIII establishes, respectively, DA or DA/PODA for user Y a DU of role A, and assumes Rule VII is satisfied. Security Assurance - Design time Rule VIII: Delegation of DA/PODA
285
DSEC--285 CSE300 Theorem VI, VII, and VIII
286
DSEC--286 CSE300 Assessment of RBAC/MAC Model/Framework Intent is to Assess the Capabilities of RBAC/MAC Model and Security Framework Analysis vs. SSE-CMM SSE-CMM: Standard Security Model Compare/Contrast Model/Framework (including Assurance) Against SSE-CMM Use SSE-CMM as a Benchmark to Evaluate the Degree We Meet ISO Requirements Evaluation vs. Dynamic Coalitions (DCs) Represent via the RBAC/MAC Model Security Features/Requirements of DCs Can RBAC/MAC Model Represent DCs? What Features are Good? Need to be Added?
287
DSEC--287 CSE300 Analysis vs. SSE-CMM What is SSE-CMM? An ISO Standard Model For Capturing the Essential Characteristics of an Organization’s Security Engineering Process The Model is a Standard for Security Engineering Practices Covering: Life Cycle Management of All Activities Management, Organizational, and Engineering Activities Concurrent Interactions (Software, Hardware, Humans, Organizations) Certification, Accreditation, and Evaluation
288
DSEC--288 CSE300 Analysis vs. SSE-CMM Why was SSE-CMM Developed? Objective: Advance Security Engineering As a Defined, Mature, and Measurable Discipline Project Goal: Develop a Mechanism to Enable: Selection of Appropriately Qualified Security Engineering Providers Focused Investments in Security Engineering Practices Capability-based Assurance
289
DSEC--289 CSE300 Analysis vs. SSE-CMM SSE-CMM Engineering Process Areas Administer Security Controls Assess Impact Assess Security Risk Assess Threat Assess Vulnerability Build Assurance Argument Coordinate Security Monitor Security Posture Provide Security Input Specify Security Needs Verify and Validate Security
290
DSEC--290 CSE300 10/24/96 Domain Process Areas Base Practices Base Practices Process Areas Base Practices Base Practices Analysis vs. SSE-CMM SSE-CMM Model Architecture Process Areas Organization Project Security Engineering Process Areas Domain Compare and Contrast RBAC/MAC Model and Framework w/Standard SSE-CMM: 11 Process Areas/61 Base Practices PA01: Administer Security Controls Base Practice 01: Establish Responsibilities and Accountability for Security Controls Base Practice 02: Manage the Configuration of Security System Controls Work in Progress
291
DSEC--291 CSE300 Evaluation vs. DCP What is DCP? Marine Corps NavyAir Force Army GCCS FADD AFATDS GCCS-A MCS ASAS CSSCS Other ABCS Battle Management System Joint Command System Army Battle Command System Combat Operations System U.N. U.S.A NGO/ PVO NATO Dynamic Coalition U.S. Global C2 Systems Army C2 Dynamic Coalition Problem (DCP) are Inherent Security, Resource, and/or Information Sharing Risks that Occur as a Result of the Coalition being Formed Quickly
292
DSEC--292 CSE300 Evaluation vs. DCP Suitability of Our Approach for DCP Detailed Evaluation of DCP w.r.t. Security Model Utility of Multiple Roles for Users Relevance of Data Value Constraints and Time Limitations on Users Examination of API Level Control of Resources Importance of Multi-level Secure Capabilities Security Assurance at Design/Run Times Extrapolating from GCCS to DCP Evolve from GCCS to DCP What are the Issues and Problems to Solve? Status: Work in Progress at this Time
293
DSEC--293 CSE300 Summary: Research Innovations Unification of Mandatory Access Control (MAC) and Role-based Access Control (RBAC) Features Realization of MAC: Bell and LaPadula Model Highly Flexible RBAC Capabilities Security Policy Realization Change Policy on the fly Broad Use of Constraints: Fine-Grained Security User Constraints and Role Constraints Time Constraints and Signature Constraints Security Assurance at Design and Run Times DT Checks as Security Policy is Defined RT Checks for Invocation/Delegation
294
DSEC--294 CSE300 Summary: Additional Contributions Working Prototype that can Administer Multiple Security Policies Against Multiple Resources in a Distributed Environment Supporting JINI/CORBA A Well Defined Security Model which Supports Security Policy Definition via Administrative and Management Tools with Security Assurance: Security Policy Client (SPC) Security Authorization Client (SAC) Security Analysis Tool (SAT) Security Delegation Client (SDC)
295
DSEC--295 CSE300 Summary: Remaining Research Security Model that Unifies RBAC/MAC Finer Grained MAC Classification Levels on a Method’s Signature Investigate Time-Constrained Classification User Constraints Role Deconfliction Security Policy and Enforcement Assurance Detailing all Design and Run Time Checks Defining Security Assurance for Fine Grained MAC and User Constraints Completion of Analysis/Evaluation: Model/Framework vs. CMU Security Model Evaluation of Utility in Support of DCP
296
DSEC--296 CSE300 Summary: Publications to Date Initial Security Model S. Demurjian, T. C. Ting, P. Barr, C. Phillips, “Role- Based Security in a Distributed Resource Environment”, Proc. of 14th IFIP WG 11.3 Working Conf. on Database Security, August 2000. S. Demurjian, T.C. Ting, C. Phillips, et al., “A User Role-Based Security Model for a Distributed Environment”, in Research Advances in Database and Information Systems Security, J. Therrien (ed.), Kluwer, 2001. Enhanced Security Model C. Phillips, S. Demurjian, T.C. Ting, “Security Engineering for Roles and Resources in a Distributed Environment", Proc. of the 3rd Annual Information Systems Security Engineering Conf., March 2002.
297
DSEC--297 CSE300 Summary: Publications to Date Relevance of Work for DCP C. Phillips, T.C. Ting, S. Demurjian, “Information Sharing in Dynamic Coalitions”, Proc. of the 7th ACM SACMAT 2002, June 2002. MAC Model Extensions and Security Assurance C. Phillips, S. Demurjian, T.C. Ting, “Towards Information Assurance for Dynamic Coalitions”, Proc. of the 3rd IEEE Info. Assurance Workshop, June 2002. C. Phillips, S. Demurjian, T.C. Ting, “Security Assurance for an RBAC/MAC Security Model and Enforcement Framework”, CSE Technical Report. Role Delegation Extensions with Assurance M. Liebrand, H. Ellis, C. Phillips, S. Demurjian, and T.C. Ting, “Role Delegation for a Distributed, Unified RBAC/MAC”, Proc. 16th IFIP WG 11.3 Conf. on Data and Application Security, July 2002.
298
Security-298 CSE 300 Object-Oriented and Programmatic Security in C++/Java Collaborative Portals Look-and-Feel Application Content Document Access Secure Software Design To Design and Write Secure Software Programs Our Five-Pronged Security Emphasis Secure Information Exchange via XML with MAC/RBAC Secure MAC/RBAC Interactions via Middleware in Distributed Setting Assurance Consistency Integrity RBAC, DAC, MAC Separation of Duty Mutual Excl. Safety Liveness
299
Security-299 CSE 300 Security Analysis/Design for UML Thuong Doan, Jaime Pavlich-Mariscal, Steven A. Demurjian, Laurent D. Michel Computer Science & Engineering Department 371 Fairfield Road, Box U-2155 The University of Connecticut Storrs, Connecticut 06269-2155 http://www.engr.uconn.edu/~steve thuongdoan@yahoo.com jaime.pavlich@uconn.edu steve@cse.uconn.edu ldm@cse.uconn.edu
300
Security-300 CSE 300 Motivation: Importance of Security Software Engineering Phases of Requirements, Design, Implementation, Testing, Maintenance. Effort: E.g., 60% for Requirement & Design, 15% Implementation, and 25% Testing [Boehm 87] Software Applications with Security Concerns When is Security Incorporated into Software Development? Traditional: Deferred to Latter Stages of the Lifecycle Problem: Error-Prone, Difficult to Verify, Costly Microsoft Report: >50% Security Problems are Design Flaws [McGraw 03] Return on Security Investment (ROSI): 21% if Integrating at Design; 15% Implementation;12% Testing [Hoo 01]
301
Security-301 CSE 300 Motivation: Importance of Security Incorporating Security into Design/Development Object-Oriented Software Design: Using the De Facto UML (Unified Modeling Language) [OMG03], a Language for Specifying, Visualizing, Constructing, and Documenting Software Artifacts When is Security Incorporated into Software Design/Development Processes? Security Must Be a First Class Citizen - Integrated at Early and All Stages of the Lifecycle Security Assured, Synchronized, Convenient Provide Automated Transition from Security Definitions to Security Enforcement Code Integration of Enforcement Code with Application
302
Security-302 CSE 300Objectives Span from Requirements/Design to Development of the Software Process, its Models, and Tools Integrated: Rigid Methodology to Express Security Concerns Seamlessly Capture Security Requirements at Design Assured: Specific Means to Verify Security Concerns Easy-To-Use: Intuitive Solution Facilitates Inclusion of Security for Different Stakeholders Transition: Requirements - Design – Development Security Code Generation (Authorizations) Run-time Authentication
303
Security-303 CSE 300 Two Complementary Perspectives Extend UML Diagrams with Security Integrate Security into Use Case, Class, and Sequence Diagrams Align UML Concepts to Security Expand Properties on Use Cases, Actors, Relations, Classes, Methods, etc. Add New Associations Among Diagrams Design Time Security Assurance New UML Diagrams for Security Role, User, and Delegation Diagrams Support MAC features Across Separate Security from UML Composable Security and Automatic Generate of Enforcement “Code”
304
Security-304 CSE 300 Global Objectives Security Features from Design to Development Extend UML to Support MAC, DAC, and RBAC Security Properties (Simple Security, Strict *, etc.) plus Constraint Checking (Mutual Exclusion) New UML Diagrams Collect Security Design into a Logical, Well-Organized Abstractions Automatic Generation of Security Enforcement Code Integrated with Application Maintain Security Information in Database Track Design and Security State Provide Single Locale for Security Definitions (Users, Roles, and their Authorized Privileges) Serve as a Means to Support Run-Time Authentication
305
Security-305 CSE 300 Detailed Objectives Track Design State that Contains All Actions Related to Security and Application Definition Employ Functional Notation that Tracks All Actions and Maintains Historical Record Support Security Consistency and Assurance by Security Checks as Design is Created/Change Overall Security Analysis of Entire Design Security Abstraction that Collects Security Definitions Cohesive and Coherent UML Diagram Generated from Security Definitions Security Enforcement Code Generation Aspect-Oriented Programming Approach Security Code Integrated with Application Code
306
Security-306 CSE 300 Overview of the Process Non-Security Requirements Specification Security Requirements Specification R1Rn … Main Application Design Model Security Model … Main Application Code Security Code … Requirements Analysis Design Implementation Access Control Requirements Security Features Security Component Code SF1SFn SC1SCn Iterative Process
307
Security-307 CSE 300 Overview of Remainder of Talk Perspective 1: Extending UML Diagrams w/Security Principles of Secure Design UML Extensions for Security Tracking Design and Security State Security Assurance via Constraint Checking Prototyping Effort Perspective 2: New UML Diagrams for Security Role Slice, User, and Delegation Diagrams MAC Security Features Composable Security Aspect Oriented Code Generation Prototyping Effort Conclusions and Ongoing Research
308
Security-308 CSE 300 Extending UML for the Design and Definition of Security Requirements Address Security in Use-Case Diagrams, Class Diagrams, Sequence Diagrams, etc. Formal Security Policy Definition that Track Design State via a Functional Representation Iterate, Revise Bi-Directional Translation – From Security Definitions (Extensions) to Underlying formal Functional Model Security Model Generation RBAC99 GMU/ NIST RBAC/MAC UConn (Distributed Security) Oracle Security Must Prove Generation Captures all Security Requirements Perspective 1: Extending UML Diagrams Many Alternative Security Model Solutions New UML Diagrams and AOP Security Enforcement
309
Security-309 CSE 300 UML Design Tool Database Server Designer’s Input Internal UML Structures UML Diagrams Customer’s Requirements UML Diagrams Triggers Security Constraints Checking Module (Algorithm) Perspective 1: Extending UML Diagrams New UML Security Diagrams Aspect-Oriented Security Enforcement Code Generation Java
310
Security-310 CSE 300 Principles of Secure Design Principle 1 The Software Design has Multiple Iterative Periods Security Features Should be Incorporated and Adjusted During Each of and Among Those Periods Principle 2 T The Security Assurance is Satisfied Relatively to the Period of Software Design Principle 3 The Security Incorporating Process Should Neither Counter the Intuition Nor Decrease the Productivity of the Stakeholders Principle 4 Security Definition via a Unified Perspective that Collects Privileges into a Cohesive Abstraction
311
Security-311 CSE 300 Tier 2: Associating Classes Used in Use Cases Choosing Needed Classes in Sequence Diagrams Tier 3: Sequence Diagrams (and Other Diagrams) Specify Messages (Methods Without Code) Between Objects Multiple Design Tiers: Tier 1: Use Case Diagrams, Class Diagrams Define Use Cases, Actors, and Their Relationships Define Classes (High Level:Only Attributes/Methods Signatures) and Relationships Among Classes Principle 1 The Software Design Has Multiple Iterative Phases and The Security Features Should Be Incorporated and Adjusted During Each of and Among Those Phases
312
Security-312 CSE 300 Principle 2 The Security Assurance is Satisfied Relatively to the Period of Software Design Security Assurance Evaluated Against the Respective Software Design Phase To Enforce the Security Assurance Rules (SARs) The Granularity Level of SAR Checks Is Dependent on the Level of Detail in the Software Design Phase Example: Tiers 1 & 2: Use Case Diagrams, Class Diagrams Check the Security Levels of Use Cases, Actors, and Classes Tier 3: Sequence Diagrams Check the Security Levels of Methods
313
Security-313 CSE 300 Principle 3 The Security Incorporating Process Should Neither Counter the Intuition nor Decrease the Productivity of the Software Designer. Our Perspective: (e i, e j.behavior jk ): Whether Element e i Can Employ Some Behavior behavior jk of Element e j Security Consideration in UML: “Who Can Exercise Which Behaviors of the Application (Use Cases) and Class Behaviors (Methods)?” Answer: Drawing Connections in UML Diagrams Productivity: Incorporating Security Via SARs in Connections Provides Security Checks During the Normal Activity of Designers
314
Security-314 CSE 300 Principle 3 The Security Incorporating Process Should Neither Counter the Intuition nor Decrease the Productivity of the Software Designer Security Consideration in UML: “Who Can Exercise Which Behaviors of the Application (Use Cases) and Class Behaviors (Methods)?” Example: The System has Two Usage Modes: Design-Time: Real-Time Check Drag – Check – “Drop/Pop”: Realization of the Intended Design Element or Pop Up Error Message Depending on the Security Checking Result Post-Design: On-Demand Check Security Compiler Executed on a Whole Design
315
Security-315 CSE 300 Principle 3 The Security Incorporating Process Should Neither Counter the Intuition nor Decrease the Productivity of the Software Designer. MAC: (Subject, Operation, Object): Operation = Read|Write|Call Object = A Piece of Atomic Information With Only One Assigned Security Classification Object-Oriented: Operation = (Read*Write*Call*)* (as Method) Object = An Instance of Class with Many Attributes
316
Security-316 CSE 300 Principle 4 Security Definition via a Unified Perspective that Collects Privileges into a Cohesive Abstraction Our Perspective: Security as Supported via Principles 1, 2, and 3, Spreads Requirements Across Multiple Diagrams As a Result, Security is “Tangled” and “Scattered” Across Design Propose a “Role-Slice Diagram” that Collects Definitions into a Central Location Allows Stakeholders to See the “Big Picture” Provides Basis for Security Enforcement Code Generation
317
Security-317 CSE 300 Extending UML for Secure Design Work of Thuong Doan, Ph.D. student Defining a Framework for Assurance in Secure Software Design with UML Capable of Capturing All of the Critical Security Requirements Aligning Roles with Actors in Use-Case Diagram Adding Security Properties and Constraints Checking MAC, RBAC, and Lifetimes to Use-Case, Class, and Sequence Diagrams Simultaneously Tracking All of the States of a Design from a Security Perspective Maintaining the Security Assurance as Requirements/Designs are Defined and Changed
318
Security-318 CSE 300 Extending UML for Secure Design Extend “Most Utilized” UML Diagrams Use Cases Class Sequence Diagram Security Extensions for Privileges and Authorization MAC – Assignment of Security Levels to UML Entities (Use Cases, Actors, Class, Methods, etc.) RBAC – Alignment of “Actor” with “Role” Lifetimes –Element or Association (ISA, include, extend, etc.) Availability w.r.t. Security Real-Time Security Analysis Maintain Design State As Connections are Made, Check Security Privileges for their Consistency/Correctness
319
Security-319 CSE 300 Extending UML for Secure Design UML + Security Extensions Captured in Design State Functional Model Design Action Design Time Checked in Security Constraints Checker Assumptions Utilizing UML Security Specifications Communicating with the Customer
320
Security-320 CSE 300 Use-Case UML Extensions Security Levels (TS, S, C, U) are Associated with Each Element (Use Case and Actor) Levels are the Security Sensitivity for the Element Lifetimes A Lifetime Represents the Availability of an Element with respect to Security Usage Start and End Date/Time End Date can be Infinite (no end) Connections As Use Cases are Connected and Actors are Connected – Levels and Lifetimes are Checked Consistency of Connections Checked First – Let’s Consider Extensions Informally …
321
Security-321 CSE 300 Survey Management Example A Survey Institution Performs and Manages Public Surveys The Senior Staff Person Adds a Survey Header Into the Database Staff Person (Senior or Junior Staff) Adds Questions Into that Survey, Categorize Questions and Adds a New Question Category If Needed Some Special Questions that have More Sensitive Content - Only Senior Staff Allowed to Process
322
Security-322 CSE 300 Use Case Diagram in UML A Survey Institution Manages Public Surveys Use Case Diagram for Creating a New Survey Entry
323
Security-323 CSE 300 Use Case Diagram with Security Levels Taking Security Concern MAC: Security Level (e.g. U<C<S<TS) Assigned for Elements (Use Cases and Actors) Valid Connection: Actor with Confidential Level can Utilize Use Case with Confidential Level
324
Security-324 CSE 300 UML Use Case Diagram with Security Levels Taking Security Concern MAC: Security Level (e.g. U<C<S<TS) Assigned for Elements Invalid Connection: Actor with Confidential Level cannot Utilize Use Case with Secret Level
325
Security-325 CSE 300 Extensions for Security + Lifetime Actor Senior Staff is Represented as (“Senior Staff”, A, [“01/01/2005”,“12/31/2006”], S, S) Min = Max for Actors
326
Security-326 CSE 300 Extensions for Security + Lifetime Use Case Add Survey Header is Represented As Use Case Add Survey Header is Represented As (“Add Survey Header”, UC, [“01/01/2005”, “12/31/2006”], S, S) Min = Max for Use Cases Security Property of Use Case Add Survey Header
327
Security-327 CSE 300 UML Class Diagram Security Levels (TS, S, C, U) are Associated with Each Element (Class and Method) Classes have Minimum and Maximum Levels Lifetimes Classes and Methods have Start/End Date/Time End Date can be Infinite (no end) Containment/Connections All Methods of a Class Must have Security Level Between its Class’ Minimum and Maximum As Classes are Connected – Levels and Lifetimes are Checked Consistency of Connections Checked First – Let’s Consider Extensions Informally …
328
Security-328 CSE 300 Survey Management Class Diagram
329
Security-329 CSE 300 Extensions for Security + Lifetime Min = Max for Methods Security Property of Class Survey_List Security Property of Method Add_Survey_Header
330
Security-330 CSE 300 UML Use-Case Connections Relationships Track Dependencies Across Designs Two Groups of UML Connection Kinds Group 1 – Explicitly in UML Use Case/Actor (Role)/Class Inheritance: Child Inherits (Specializes) Parent Use Case Inclusion/Extension: > Actor-Use Case Association:a Interacts with uc Group 2 – Result of Tracking Use-Case/Class Interactions – For Each Use Case Track … Classes Utilized to Implement the Use Case (Initial Phases of Design) Methods of those Classes Utilized to Implement the Use Case (Later Phases of Design)
331
Security-331 CSE 300 Group 1 Connections Use Case or Actor (Role) Inheritance: Child Inherits (Specializes) Parent Child at Level or More Secure than Parent Use Case Inclusion/Extension: > X Includes Y: Y at Level or Less Secure than X X Extends Y: X at Level or Less Secure than Y Actor-Use Case Association: Actor A Interacts with UC X A at Level or More Secure than X Connections Cause Detailed Checks Not only Source and Destination of Connection Also Must Check Related UCs and/or Actors
332
Security-332 CSE 300 Use Case Group 1 Connections All Associations (Connections) Must Satisfy MAC Constraints on Prior Slide Intent – Keep Design in Correct/Consistent State
333
Security-333 CSE 300 Group 2 Connections Secure Design with UML Requires the Ability to Establish Associations Between UML Use Case Diagrams are Relatively Independent In Sequence Diagrams, Actor and UC Can Interact with Classes (and Methods) – Not Required Group 2 Connections Provide Ability to Track Classes and Methods Utilized to Implement a UC
334
Security-334 CSE 300 Group 2 Connections: UC to Classes Use Case-Class Utilization: uc Utilizes c UC Add Survey Header Utilize Survey_List, Survey_Hdr_Add_Pg, and Survey_Header Classes Means UC Add Survey Header Will Utilize Portions of those Classes for its Implementation Again – Consistency Checks From UC to Classes
335
Security-335 CSE 300 Survey Management Class Diagram
336
Security-336 CSE 300 Group 2 Connections: UC to Methods Use Case-Method Utilizing: uc Directly Utilizes m UC Add Survey Header Utilizes Methods onSubmit of Class Survey_Hdr_Add_Pg Create_Survey_Header of Class Survey_Header Add_Survey_Header, Survey_Title_Search, and Update_Survey_List of Class Survey_Header
337
Security-337 CSE 300 Tracking Design and Security State Previous Slides Illustrate the Ability to Maintain a Correct “Security” State as Design Created/Changed Objective Now is to: Define Design Security State Formalize Prior Definitions of Security Level, Lifetime, UML Element, UML Connection Introduce Security Constraint Hierarchy and Checking Define Application’s Security Requirement Formalize Constraint Checking w.r.t. Disallowed Usage (Negative Permissions) Mutual Exclusion (Excluding Actions by UML Elements within Time Periods)
338
Security-338 CSE 300 One Can Consider the Design State As a Set of Design Elements Design State Space How do we Represent and Keep Track of the Design States? Design Elements Time-Sensitive They have Lifetimes 06/01/2005 Design Time 06/01/2006
339
Security-339 CSE 300 Design State Space Use Functional Model and Track Design Instances State is a Function Design Element ID State Function i Design Time ii Design Element Contents Error Status Action is a (Meta)Function on States Design Action ii i+1
340
Security-340 CSE 300 Security Model for UML Design Extending UML with Security Features (MAC, RBAC and Lifetime) Def. 3.2.1 (Security Level Set) The Security Level Set ( SL ): a Partial Ordered Set with Relation < where for SL and SL ’ SL, SL < SL ’ Means that the Level SL ’ has a Higher Security Concern than that of SL Def. 3.2.2 (Lifetime) Let T be a Set of Discrete Time of the Form “month- day-year [hour:minute:second]” (As a Subset Cartesian Product of Sets of Integers), a Lifetime lt is a Time Interval [st, et] where et and st T are the Start Time and End Time (lt.st and lt.et), Respectively, with et st (the Point of Time st Occurs Not After et).
341
Security-341 CSE 300 Extended UML Elements with Security Augmenting UML Elements with Security Levels (SLs) and Lifetimes (LTs) Formal Definition: Def. 3.2.4 (UML Element) = ID EK I SL SL : the Set of UML Elements A UML element : a Tuple (id, k, lt, sl min, sl max ) where id, k, lt, sl min, and sl max are its Element Identification, Element Kind, Lifetime, Minimum and Maximum Security Levels (Denoted as .id, .k, .lt, .sl min and .sl max ) For a Class c: c.sl min c.sl max ; Other Non-Class Element: e.sl min e.sl max = e.sl Example: Example: (“Senior Staff”, A, [“01/01/2005”, “12/31/2006”], S, S)
342
Security-342 CSE 300 Extended UML Connections with Security UML Connections Have Lifetimes Formal Definition: Def. 3.2.6 (UML Connection) = ID CK I ID ID : the Set of UML Connections A Connection : a Tuple (id, k, lt, id s, id t ) where id, k, lt, id s and id t are the ID of the Connection, the Connection kind, Connection Lifetime, and the IDs of the Source and Target UML Elements (Denoted as .id, .k, .lt .id s and .id t ) Example: (“ ”, AU_Asc, [“01/01/2005”, “12/31/2005”], “Senior Staff ”, “Add Survey Header ”)
343
Security-343 CSE 300 Security Constraint MAC Constraint RBAC Constraint Lifetime Constraint Security as “Enforcing a Policy that Describes Rules for Accessing Resources.” (Viega and McGraw 2002) Considering Three Types of Security Constraint MAC: Checking the Domination of Security Levels of Connected Elements Lifetime: Checking the Temporal Window of Activity for Entities and Users. RBAC: Maintaining the Interest Conflict-Free Working Environment for User Roles
344
Security-344 CSE 300 Application’s Security Requirements Application’s Security Requirements have Lifetimes Formal Definition: Def. 3.2.7 (Security Requirement for RBAC) i = ID SR I ( ID ) i (i= 2, 3,…) An Application’s Security Requirement (SR) Involved In i elements: a Tuple (id, k, lt, 1, 2,…, i ) i where id, k, lt, 1, 2,…, and i, are the ID Label (Denoted as .id), the Kind of the Security Requirement ( .sk), the Lifetime ( .lt), and the i Involved Element’s IDs (Denoting .els = { 1, 2,…, i }), Respectively SRs 2 3, SR = {DisU, ME SRO, ME SOR } DisU: Disallowed Usage (Negative Permission) ME SRO and ME SOR : Mutual Exclusions
345
Security-345 CSE 300 Application’s Security Requirements Disallowed Usage – DisU: Negative Permission (id, DisU, lt, 1, 2 ) Element 1 is Not Allowed To Use Element 2 During lt E.g. (“SR1”, DisU, [“01/01/2005”, “12/31/2006”], “Junior Staff ”, “Add Survey Header”) [“01/01/2005”, “12/31/2006”]
346
Security-346 CSE 300 Application’s Security Requirements Static Role-Objects Mutual Exclusion - ME SRO (id, ME SRO, lt, 1, 2, 3 ) 3 : Actor 1 is Not Allowed to Use Both Elements 2 and 3 During lt E.g. (“SR2”, ME SRO, [“01/01/2005”, “12/31/2006”], “Junior Staff ”, “Add Question”, “Approve Question”) [“01/01/2005”, “12/31/2006”]
347
Security-347 CSE 300 Application’s Security Requirements Static Object-Roles Mutual Exclusion - ME SOR (id, ME SOR, lt, 1, 2, 3 ) 3 : Actors 1 and are Not Allowed to Use Element 3 At the Same Time During lt E.g. (“SR3”, ME SOR, [“01/01/2005”, “12/31/2006”], “Supervisor ”, “Editor”, “Activate/Deactivate Survey”)
348
Security-348 CSE 300 Together Architect Plug-In The Interface to Enter a Security Requirement Enter the Static Role-Objects Mutual Exclusion that the Junior Staff Cannot Use Both “Add Question” and “Approve Question” Use Cases from 01/01/2005 to 12/31/2006.
349
Security-349 CSE 300 Together Architect Plug-In The List of Security Requirements The Interface Allows to Add a New Security Requirement, Edit/Remove a Current Security Requirements, and Generate the Set of Current Security Requirements in Specified Formats.
350
Security-350 CSE 300 Complete Security Constraint Taxonomy Security Constraint MAC Constraint RBAC Constraint 2-element Constraint 3-element Constraint Disallowed Usage Mutual Exclusion Static Role-Objects ME Static Object-Roles ME Lifetime Constraint n-element Constraint
351
Security-351 CSE 300 Design State and Transitioning State Function Provides the Transition from One Design State to Next When Given Design Action Adding/Deleting/Modifying a UML Element Adding/Deleting/Modifying a UML Connection Three Aspects of Design State Space UML Elements Application’s Security Requirements UML Connections State Functions Triggered on Insertion, Deletion, etc.
352
Security-352 CSE 300 Three Design State Spaces and Actions Security Constraint UML Element State Space Design Action Application’s Security Requirement State Space UML Connection Design State Space Design Time Design Action ii i+1 Insert/Update/ Delete
353
Security-353 CSE 300 State Functions Extended Sets: = { } , = { } , and = { } where is the null Element Err ={0, 1, 2,…}: Set of Error Numbers with “0” As an Initial Value (for Initial State) and “1” As No Error Def. 3.3.1 (State Function Signatures) For UML Elements: : ID T Err For UML Connections: : ID T Err For Security Requirements: : ID T Err UML Element ID Design Time ii UML Element Contents Error Status Design State i: ( i, i, i )
354
Security-354 CSE 300 Inserting a UML Element Status Function for UML Elements the Status of a UML Element Based on the Current Set of Designed UML Elements L at the Design Time Def. 3.4.3 (Status Function for UML Element Space): stat : 2 ID T Err stat L = if L == then ( , 0) else let e L in // Pick an element e in L if e.id then stat L\{e} else intra_chk e UML Element ID Design Time stat UML Element Contents Error Status Current UML Element Set
355
Security-355 CSE 300 Inserting a UML Element intra_chk Function for the Intra-element Check on the Properties (Lifetime and Security Levels) of an UML Element at a Specific Time Def. 3.4.2 (Intra-Element Checking for a UML Element) intra_chk : T Err intra_chk = // : the added UML element; : the design time if .lt.et then ( , 2) // Error: the life time ended before the design time else if .ek == Cl then // Adding a class if .sl min .sl max then ( , 1) // Return the applicable element without error else ( , 3) // Error: The SL max of a class must dominate its SL min else // adding a non-class if .sl min == .sl max then ( , 1) // Return the applicable element without error else ( , 4) // Error: The SL max of a non-class must be equal to its SL min
356
Security-356 CSE 300 State Functions Remember: Design State Function Signature For UML Elements: : ID T Err UML Element ID Design Time ii UML Element Contents Error Status UML Element ID Design Time stat UML Element Contents Error Status Current UML Element Set Status Function for UML Element Space: stat : 2 ID T Err Cast the Form of i Function as i = (stat L i ) L i (= i.set): The Set of Designed UML Elements in State i. Define L 0 = 0.set = 0 = ( , 0)
357
Security-357 CSE 300 Inserting a UML Element Function of Inserting a UML Element Def. 3.4.4 (The Insert Action on UML Element Space): Ins : Ins i e = i+1 where i+1 = stat (insert e i.set), i+1 = i and i+1 = i Example: Design From Scratch (From State 0) Add Use-Case uc1: Add Survey Header, min SL = max SL = “S”, and LT = [“01/01/05”, “12/31/06”] State 0: ( 0, 0, 0 ) = (( , 0), ( , 0), ( , 0)) State 1: 1 stat (insert uc 1 0.set) = stat (insert uc 1 ) = stat {uc1}; 1 = 0 and 1 = 0 1 uc1 “06/15/05” = (stat {uc1}) uc1 “06/15/05” = ((Add Survey Header, UC, [01/01/05,12/31/06], S, S),1)
358
Security-358 CSE 300 Status Function for UML Connections Status of a UML Element Based on the UML Element State and the Current Set of Designed UML Connections L at the Design Time Def. 3.4.6 (Status Function for UML Connection Space): stat : 2 ID T Err stat L = if L == then ( , 0) else let e L in // Pick an element e in L if e.id then stat L\{e} else intra_chk e
359
Security-359 CSE 300 Inserting Action Function of Inserting a UML Connection Def. 3.4.7 (The Insert Action on UML Connection Space): Ins : Ins i e = i+1 where i+1 = i, i+1 = stat i+1 (insert e i.set), and i+1 = i Function of Inserting a Security Requirement Def. 3.4.7 (The Insert Action on SR Space): Ins : Ins i e = i+1 where i+1 = i, i+1 = i, and i+1 = stat i+1 (insert e i.set) Deletion and Update of UML Elements Also Require Analogous Modification to the Design State Space
360
Security-360 CSE 300 Tier 2: Associating Classes Used in Use Cases Choosing Needed Classes in Sequence Diagrams Tier 3: Sequence Diagrams (and Other Diagrams) Specify Messages (Methods Without Code) Between Objects Recall the three Prior Design Tiers Tier 1: Use Case Diagrams, Class Diagrams Define Use Cases, Actors, and Their Relationships Define Classes (High Level:Only Attributes/Methods Signatures) and Relationships Among Classes Recall Design Tiers and Design Process Tiers Represent a Typical Design Process with UML Not Only Process – but One Scenario Objective is to Understand Placement of Security in the Process – Particularly w.r.t. Assurance
361
Security-361 CSE 300 Security Constraints Checking Three Security/Software Design Tiers for the UML Tier 1: Use-Case Diagrams Tier 2: Classes Use-Cases Tier 3: Sequence Diagrams Intra-Checks Occur within Individual UML Elements Inter-Checks for MAC/RBAC/Lifetime Constraints Cstr MAC : T Boolean Cstr RBAC : T Boolean Cstr LT : T Boolean Lifetime Check at the Design Time: Necessary Condition Also Checked at Run-Time in the Code Generated for Security Enforcement Intra-Checks Inter-Checks
362
Security-362 CSE 300 Security Constraints Checking Inter-Element Check for MAC (Simple Sec/Integrity) The MAC Constraint Cstr MAC ( i, , t) for a Connection from x to y For a Connection (Not Use Case-Class and Class- Method Connection), x Utilizes y : x.SL y.SL MAC Satisfied Connection: Actor with Confidential Level can Utilize Use Case with Confidential Level
363
Security-363 CSE 300 MAC Constraint Checking Enforcing MAC Constraint – Error Case Actor Staff with “C” Cannot Utilize Add Survey Header with “S”
364
Security-364 CSE 300 Security Constraints Checking Inter-Element Check for MAC Use Case-Class Utilization: uc Utilizes c The Security Level of Use Case uc Dominates the Minimum Security Level of Class c: uc.sl c.sl min
365
Security-365 CSE 300 Security Constraints Checking Inter-Element Check for MAC Class-Method Defining: c Defines m The Security Level of Method m is Between the Minimum and Maximum Security Levels of Class c: c.sl max m.sl c.sl min Example: The SL of Method Add_Survey_Header as Secret is Between The Max (Secret) and Min (Confidential) SLs of the Class Survey_List Security Property of Class Survey_List Security Property of Method Add_Survey_Header
366
Security-366 CSE 300 Security Constraints Checking Inter-Element Check for Lifetime The Lifetime Constraint Cstr LT ( i, , t) for a Connection from x to y at t x Utilizes y: Work Time WT = .lt x.lt y.lt and t < WT.et (= The end time of Work Time) Lifetime Satisfied Connection at t = “1/15/06” < WT.et = “12/31/07” [1/1/05, 12/31/07] [1/1/05, 12/31/08] [1/1/06, 12/31/07]
367
Security-367 CSE 300 Inter-Element Check for RBAC The RBAC Constraint Cstr RBAC ( i, , t) for a Security Requirement DisAllowed Usage: (id, DisU, lt, 1, 2 ) Path from Element 1 to Element 2 During lt Static Role-Objects Mutual Exclusion: (id, ME SRO, lt, 1, 2, 3 ) 3 : The Path Coverage (i.e. All the Paths) from Actor 1 Cannot Contain Elements 2 and 3 During lt Static Object-Roles Mutual Exclusion: (id, ME SOR, lt, 1, 2, 3 ) 3 : Element 3 is NOT in the Intersection of two Path Coverages from Actor 1 and Actos 2 During lt Security Constraints Checking 11 22 11 22 33 11 22 33
368
Security-368 CSE 300 Towards Security Assurance When is Design Acceptable with Respect to Security? Define Security Compliance Properties Represents Constraints that Must Hold as Design is Created and Modified Does the Design have Expected Security Properties? Security Conformity Support Program Design-Time and Post-Design Modes Goal: Each Design Element is Legitimate to Use via Intra-Checks All Application's Security Requirements Hold via Inter-Checks at a Design Time t
369
Security-369 CSE 300 Towards Security Assurance Design-Time Checking As Discussed so Far, Security Checks Occur as Design is Created and Modified However – Design Can be Too Complicated to Develop without Constant Nagging Error In Use Case – Perhaps any Remaining Connections will Cause Errors However – Designer May Intend to Make Changes to Remove Problems in Later Design Iterations Need the Ability to Turn off Design-Time Checking Result: Require Checking of Design Iterations
370
Security-370 CSE 300 Towards Security Assurance Post-Design Checking Turn off Design-Time Security Checking Initiated by Security Designer Allows Design to be in an Inconsistent State w.r.t. Security Compliance and Conformity Design State is Still Tracked Represents All Design Actions Can Track All Security Errors Doesn’t Report Errors At Certain Design Milestones (Iterations) Designer can Initiate Post Design Checking Comprehensive Intra- and Inter- Check Across the Entire Design Instance
371
Security-371 CSE 300 Security Compliance Properties A Design State i = ( i, i, i ) is said to Be Admissible at Design Time t if Every Design Element in i, i, and i Evaluates to be Applicable at t MAC/LT Constraint-Compliant at Design Time t if i is Admissible and for Every UML Connection in i, Cstr MAC / Cstr LT ( i, , t) Yields true at t RBAC Constraint-Compliant at Design Time t if i is Admissible and for Every Application's Security Constraint in i, Cstr RBAC ( i, θ, t) Yields true at t Security Constraint-Compliant at Design Time t if i is MAC, LT and RBAC Constraint-Compliant
372
Security-372 CSE 300 Security Conformity Design Support Security Conformity Design Support (SCDS) Program For Design-Time Mode P DT Designer’s Action Event Trigger Security Constraint Check on the Current State & Design Time Materialize Connection | Error Materialize Connection: Update GUI and Design Space For Post-Design Mode PPD Simulate Designer’s Actions at a Design Time Connections with Non-Actors (MAC and Lifetime Check Only) Connections of Actor-Use-Case then Actor Inheritance
373
Security-373 CSE 300 Design-Time Checking Design-Time Checking: MAC Constraint Violation The Connection is Removed
374
Security-374 CSE 300 Together Architect Plug-In Turning the MAC Design-Time Checking On/Off
375
Security-375 CSE 300 Post-Design Checking Post-Design Checking - Error Case MAC Violation
376
Security-376 CSE 300 Security Conformity Design Support SCDS Program for Design-Time Mode P DT Intended to be Active within the Design Environment P DT ( : , t: T){ // is the beginning security constraint-compliant state // t is the design time specified by the designer now = err_no = 0 // No error is defined yet while designer performs action on e = Response( , e, now, t) if err_no 1 then ReportError(err_no) else {Materialize e in the design now = temp } end while }
377
Security-377 CSE 300 Security Conformity Design Support Example of a Design State Construction Process Use Case Diagram for Creating a New Survey Entry
378
Security-378 CSE 300 Security Conformity Design Support Example of a Design State Construction Process Use Case Diagram for Creating a New Survey Entry
379
Security-379 CSE 300 Security Conformity Design Support Example of a Design State Construction Process Use Case Diagram for Creating a New Survey Entry
380
Security-380 CSE 300 Security Conformity Design Support Example of a Design State Construction Process Use Case Diagram for Creating a New Survey Entry
381
Security-381 CSE 300 Security Conformity Design Support Example of a Design State Construction Process Use Case Diagram for Creating a New Survey Entry
382
Security-382 CSE 300 Algorithmic Complexity Discussion The Design-Time Security Conformity Support Program P DT Check Performed whenever a UML Element, UML Connection or SR is Created/Modified Checks Occur in the UML Design Tool Reasonable Computational Cost So As to Not Add Overhead to the Design Process The Post-Design Security Conformity Support Program P PD When Designs Become More Complex, or are Partially Checked (Imported) Employed at Design Iterations to Check the Whole Design (at Some Milestone/version) A Graph Traverse Problem on UML Connections
383
Security-383 CSE 300 Prototyping Effort Together Architect (TA): UML Tool with Open APIs for JAVA and a Modular Plug-in Structure Thanks to Andy, Phil, Frank, and Vijaya, et al. TA Allows Our Own Custom Code to be Added Custom Code for MAC/RBAC/LT Constraints Provides a Tool for Secure Software Design On-Going Prototyping Effort Supports Definition of SLs and LTs, for Use-cases, Actors, Classes, and Methods and Constraints into TA Security Level Analyses for UML Designs Real-Time as Design is Created and Modified Post-Design for Design Iterations/Increments Generation of Comments that Capture Defined Security - Longer Term to Generate Secure Code
384
Security-384 CSE 300 Together Architect (TA) Plug-In The Modified Inspector Panel of TA Assigning Lifetime and Security Levels to Actor Staff
385
Security-385 CSE 300 Together Architect Plug-In The Interface to Enter a Security Requirement Enter the Static Role-Objects Mutual Exclusion that the Junior Staff Cannot Use Both “Add Question” and “Approve Question” Use Cases from 01/01/2005 to 12/31/2006.
386
Security-386 CSE 300 Together Architect Plug-In The List of Security Requirements The Interface Allows to Add a New Security Requirement, Edit/Remove a Current Security Requirements, and Generate the Set of Current Security Requirements in Specified Formats.
387
Security-387 CSE 300 Together Architect Plug-In Turning the MAC Design-Time Checking On/Off
388
Security-388 CSE 300 Design-Time Checking Design-Time Checking: MAC Constraint Violation The Connection is Removed
389
Security-389 CSE 300 Post-Design Checking Post-Design Checking: No Constraint Violation
390
Security-390 CSE 300 Post-Design Checking Post-Design Checking - Error Case MAC Violation
391
Security-391 CSE 300 Retrospective on Work Visual/Non-Visual Modeling Extensions for RBAC, MAC, & Lifetimes in UML Extensions Integrate Security Requirements, RBAC, MAC, and Lifetimes, into Design Phase Formal Functional Model for Security/Non-Security Design Features/State Formal Functional Model Capturing the Security & Non-security Features of an Application’s Design Track the Design State Retaining Design Time As a Parameter Convenient for Time-Sensitive Applications with Lifetime Constraints “Design Once, Re-use Many Times” - Advanced Step for the Style “Write Once, Run Anywhere”
392
Security-392 CSE 300 Retrospective on Work Strong Security Assurance (on MAC/LT/RBAC) Design-time and Post-design Algorithms Against MAC, Lifetime, and RBAC Constraints Disallowed Usage and Mutual Exclusions Two Main Important Effects Immediately Expose Security Flaws of the Design in Design by Discovering the Security Violation Provide a Degree of Security Assurance for the Design Delivery to be Transferred to the Subsequent Phases Potential Result: Reducing the Cost of Repairing Errors in the Life Cycle
393
Security-393 CSE 300 Perspective 2: New UML Diagrams for Security Work of Jaime Pavlich-Mariscal, Ph.D. student Security Privileges in UML Extensions Capture Security Across the Entire Design for UML Elements However, this Information is Scattered and Not Captured into a Single, Manageable Abstraction To Transition from Design to Development … Role-Slice, User, and Delegation Diagrams are Combined Privilege Perspective Across Design Separate,Defined, Abstraction that is Created by Using the UML + Security Design and Supports Automatic Generation of Security Enforcement Code Composable Security Definitions to Customize Security on Application by Application Basis
394
Security-394 CSE 300 UML Design Tool Database Server Designer’s Input Internal UML Structures UML Diagrams Customer’s Requirements UML Diagrams Triggers Security Constraints Checking Module (Algorithm) Perspective 2: New UML Security Diagrams New UML Security Diagrams Aspect-Oriented Security Enforcement Code Generation Java
395
Security-395 CSE 300 Motivation of Perspective 2 Approach Introduces New UML Security Diagrams Preserve Separation of Security Concerns from Modeling through Implementation Provide the Tools to Integrate them at Every Level Allow a Customized Generation of Secure Code on an Application-by-Application Basis Four Dimensions to Consider: Visual Notation Benefits and Advantages Traceability of Security Requirements Customizability of Security Model/Policies Correctness of Specification w.r.t. Design Let’s Explore Each in Turn
396
Security-396 CSE 300 Visual Notation MAC, DAC, RBAC do not Provide a Mechanism to Incorporate them into a Design Model Designers need a Notation for Security Facilitate Conceptualization of Security Policies Facilitate Changes Reduce Errors UML Lacks of Support for Security Existing Approaches for UML + Security They do not address all of the Access Control Models They do not provide a Notation Separated from the Main Design Models
397
Security-397 CSE 300Traceability Ability to Identify which Parts of the Design Models and Code Realize each Requirement The Better Traceability, the Easier is to Cope with Changes in Requirements Separation of Concerns is Instrumental to achieve better Traceability
398
Security-398 CSE 300 Example of Traceability Business Rules of University Courses traceable to: Course Class at the Design Level Course Class Implementation at the Code Level When Business Rules Change for Courses, Designers/Programmers know where to perform Changes Business Rules of Courses class Course { … } Requirements Design Code
399
Security-399 CSE 300 Security is Hard to Modularize Security is Tangled with other Requirements E.g. Course must Implement Access Control in Addition to Business Rules Security is Spread across the Design/Code Other Classes in the University Application (e.g. StudentInformation) must also implement Security Therefore, Traceability of Security is Poor Designers need a Mechanism to preserve Separation of Security Concerns Requirements Design Models Code
400
Security-400 CSE 300Customizability Security Policy of the University Application Groups of Users (i.e. Teachers, Students, Assistants) can be Modeled using Roles A feature from RBAC Teachers may Need to delegate into Assistants the Task of Assigning Grades A feature from DAC
401
Security-401 CSE 300 Customizability (cont.) Applications often Need a Subset of Capabilities of Access Control Models Applications may Need Capabilities from more than One Access Control Model Designers need a Mechanism to: Select Components from Different Access Control Models Combine them into a Custom Model Add/Remove Components
402
Security-402 CSE 300Correctness The Code that Implements Security must Enforce the Policy Specified during Design To ensure that an Application is Secure: The Code must Correctly Implement the Design Models A Formal Model for Access Control and Implementation is Required to Prove Correctness
403
Security-403 CSE 300 Overview of the Process
404
Security-404 CSE 300 Security Diagrams Secure Subsystem (Subset of UML Design) Role-Slice Diagram Mandatory Access Control Features Delegation Diagram User Diagram
405
Security-405 CSE 300 Security Features Role Slice Diagram Positive Permissions (PP) Negative Permissions (NP) Runtime Permissions (RP) Selection of Features MAC Features Selection of Features Simple Security (SS) Simple Integrity (SI) Liberal-Star (LS) Strict-Star-Read (SSR) User Diagram User-Role Assignment (URA) Separation of Duty (SOD) Selection of Features Delegation Diagram Delegation Authority (DA) Pass-On Delegation Authority (PODA) Selection of Features Composition Strict-Star-Write (SSW) Positive Permissions (PP) Negative Permissions (NP) User-Delegation Assignment (UDA) Custom Access Control Model Role Hierarchy (RH)
406
Security-406 CSE 300 Mapping to Code Custom Access Control Code Delegation Diagram ------------- Selection of Features ------------- Role Slice Diagram ------------- Selection of Features ------------- User Diagram ------------- Selection of Features ------------- MAC Features ------------- Selection of Features ------------- Security Component Code Security Component Code Security Component Code Security Component Code Mapping to Code Composed Access Control Model Preservation of Properties Composition Code Composition DesignImplementation
407
Security-407 CSE 300 University Application Example Manages Course and Student Information Users: Teachers, Students, and Assistants
408
Security-408 CSE 300 Use Cases of University Application
409
Security-409 CSE 300 Security Requirements of University Appl. Requirement 1: Teachers have assigned a set of courses, they can read and write the syllabus, and read the code of each course. Teachers can see the enrolled students in each course, access their names, and access grades, but cannot see in which courses students are enrolled. Assistants can perform the same tasks as teachers, except writing the syllabus. Students can see their grades, enrolled courses, the teachers of those courses, read the syllabus and code, but cannot see students enrolled in those courses, or modify any information in the system. Any person external to the university can access catalog information. No access control is required for this information.
410
Security-410 CSE 300 Security Requirements of University Appl. Requirement 2: Security administrators must be able to authorize or deny teachers / assistants / students to perform specific tasks in the system. Requirement 3: Every teacher/assistant/student must be able to perform the same tasks when interacting the system. E.g., if a security administrator authorizes a teacher to access the grades of his/her own students, then every teacher is automatically authorized to access the grades of their own students.
411
Security-411 CSE 300 State Diagram for University Application
412
Security-412 CSE 300 Role-Slice Diagram
413
Security-413 CSE 300 User Diagram How to create the Infrastructure of Security Diagrams?
414
Security-414 CSE 300 Methodology for Secure Software Design
415
Security-415 CSE 300 Methodology for Secure Software Design Multiple Steps in the Process First Iteration Identify Security Critical Use Cases Define the Secure Subsystem Refinement and Iteration Incorporate a Security Capability in the Model Specify Concrete Policy Elements Arriving at a “Final” Security Design
416
Security-416 CSE 300 First Iteration
417
Security-417 CSE 300 Available Security Features
418
Security-418 CSE 300 Available Security Features
419
Security-419 CSE 300 Security Refinement Process
420
Security-420 CSE 300 Refinement and Iteration
421
Security-421 CSE 300 Refinement and Iteration
422
Security-422 CSE 300 Refinement and Iteration
423
Security-423 CSE 300 Refinement and Iteration
424
Security-424 CSE 300 Refinement and Iteration
425
Security-425 CSE 300 Composable Security
426
Security-426 CSE 300 A Second Example Recall Survey Management Application: A Survey Institution Performs and Manages Public Surveys The Senior Staff Person Adds a Survey Header Into the Database Staff Person (Senior or Junior Staff) Adds Questions Into that Survey, Categorize Questions and Adds a New Question Category If Needed Some Special Questions that have More Sensitive Content - Only Senior Staff Allowed to Process
427
Security-427 CSE 300 Survey Management Example
428
Security-428 CSE 300 Survey Management Class Diagram
429
Security-429 CSE 300 Simplified Class Model of the Survey Application
430
Security-430 CSE 300 Defining a Secure Subsystem We do not Want to Define Security over Every Class in the System Security is Defined over a Secure Subsystem Represents those Classes on Which Privileges will be Defined Secure Subsystem
431
Security-431 CSE 300 Integration with Doan’s work Each Use Case is Associated to a Set of Methods Secure Subsystem Defined as the Set of All Classes whose Methods are Associated to at Least One Use Case Secure Subsystem Secure Methods
432
Security-432 CSE 300 Defining Access Control Policy A Role Slice is a Specialized Class Diagram that Represents Permissions for the RBAC Model Roles are Represented as Packages Permissions are Represented as Stereotyped Methods Role Hierarchy is Represented by a Stereotyped Dependency Relation
433
Security-433 CSE 300 Integration is Automatable Recall the Transition from Use Cases to the: Classes Utilized to Realize their Functionality Methods of those Classes (Subset) Provides Definition of Secure Subsystem (Include a Class if at Least One Method is Assigned to a Use Case) Methods Identified via Actor-Use Case- Class-Method Link by Disallowed Usage Secure Subsystem
434
Security-434 CSE 300 Recall the Transition Secure Subsystem
435
Security-435 CSE 300 Role-Slice Policy
436
Security-436 CSE 300 Integration with Doan’s Work Roles and Hierarchies Roles Role Hierarchy Relation
437
Security-437 CSE 300 Integration with Doan’s work Permissions The Set of Use Cases Allowed to an Actor Defines the Methods Allowed to the Corresponding Role Authorized Methods
438
Security-438 CSE 300 Composition of Role Slices To Obtain the Final Set of Permissions Positive Permissions are Inherited by Child Role Slices from their Parents Negative Permissions are Used to Override Permissions that are Positive in Parent Role Slices
439
Security-439 CSE 300 Transitioning to Code Preserving Separation of Security Concerns At the Design Level, Security Concerns are separated from the Main Design Security Diagrams Separated from other UML Diagrams At the Code Level Security is a Crosscutting Concern, i.e. not Easy to modularize. Using Aspect Oriented Programming (AOP) to solve this Problem
440
Security-440 CSE 300 Mapping to Code Custom Access Control Code Delegation Diagram ------------- Selection of Features ------------- Role Slice Diagram ------------- Selection of Features ------------- User Diagram ------------- Selection of Features ------------- MAC Features ------------- Selection of Features ------------- Security Component Code Security Component Code Security Component Code Security Component Code Mapping to Code Composed Access Control Model Preservation of Properties Composition Code Composition DesignImplementation
441
Security-441 CSE 300 AOP Security Enforcement Code Generation Code Generator takes a Role Slice Specification as Input and Outputs: An Access Control Aspect A Policy Database AOP + Policy DB Provides Means for Changing Access Control without Recompiling Code
442
Security-442 CSE 300 Aspect-Oriented Definitions To Formalize the Mapping, it is Necessary to Define Basic Aspect-oriented Concepts Definitions are Simplified Formalizes the Ideas in Companion Presentation A Point Cut is Represented as a Record A Point Cut is Represented as a Record caller is a Method where all Invocations of callee must be Modified to Include the Aspect Code An Advice is a Record An Advice is a Record PC: a Point Cut T: Rewriting Function that Modifies the Method Invocations Specified in PC An Aspect is a Set of Advices
443
Security-443 CSE 300 Prototyping Effort - Role-slice Inspector A Plugin for Together Architect that Generates a Role Slice from the Information of an Actor Defines whether the Role is Abstract or Not Shows the Role Slice Associated to the Selected Actor
444
Security-444 CSE 300 Prototyping Effort - Role-slice Inspector Role-slice View of Actor Staff
445
Security-445 CSE 300 Prototyping Effort – Code Generator Uses the Role Slice Information to Generate Enforcement Code in AspectJ
446
Security-446 CSE 300 Prototyping Effort – Code Generator Generation of the AspectJ File AccessControl.java
447
Security-447 CSE 300 Prototyping Effort – Code Generator Generated AspectJ File
448
Security-448 CSE 300 Composition of Security Features
449
Security-449 CSE 300 Security Diagrams
450
Security-450 CSE 300 Code Generation
451
Security-451 CSE 300 Prototyping Effort – Code Generator Generated Code Obtaining the Active User public aspect AccessControl { pointcut login():call(User SecurityAdmin.logIn(..)); User around():login() { User u = proceed(); activeUser.set(u); return u; } private ThreadLocal activeUser = new ThreadLocal() { protected Object initialValue() {return null;} }; private User getActiveUser() { return (User)activeUser.get(); }... }
452
Security-452 CSE 300 Prototyping Effort – Code Generator Checking Permissions public aspect AccessControl {... pointcut externalCall() : (call(* Survey_List.*(..)) || call(* Survey_Header.*(..))) && !within(Survey_List) && !within(Survey_Header); before() : externalCall() { Role r = getActiveUser().getActiveRole(); if (!r.hasPosPermission(thisJoinPointStaticPart)) { throw new org.aspectj.lang.SoftException( new PermissionDeniedException()); }
453
Security-453 CSE 300 Retrospective on Role Slices + AOP We Presented an Approach to Preserve Separation of Security Concerns Separation of Concerns at the Model Level Role-slice Notation Helps in the Conceptualization of a Method-based Security Policy Facilitates its Evolution During the Design Process. Separation of Concerns at the Code Level Mapping from a Role-slice Diagram to AOP Enforcement Code Provides a Seamless Transition from Security Specification to Code Isolates Access Control in an Aspect.
454
Security-454 CSE 300 Object-Oriented and Programmatic Security in C++/Java Collaborative Portals Look-and-Feel Application Content Document Access Secure Software Design To Design and Write Secure Software Programs Concluding Remarks Secure Information Exchange via XML with MAC/RBAC Secure MAC/RBAC Interactions via Middleware in Distributed Setting Assurance Consistency Integrity RBAC, DAC, MAC Separation of Duty Mutual Excl. Safety Liveness
455
Security-455 CSE 300 Concluding Remarks Security is Part of an Overall Security Strategy Definition of Security Requirements Realization of Security at Application Level Integration of Security from User to OS to DB Rigorous Definition of Security Policy Dynamic Nature of Security Privileges Enforcement of Defined Privileges at Application and DB Levels Overall, Security in Today’s World Integral Part of Everyday Life - Some Key Concerns Confidentiality of an Individuals Data Identity Theft Protecting National Infrastructure
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.