A Connector- A Connector- Centric Approach Centric Approach to - - PowerPoint PPT Presentation

a connector a connector centric approach centric approach
SMART_READER_LITE
LIVE PREVIEW

A Connector- A Connector- Centric Approach Centric Approach to - - PowerPoint PPT Presentation

A Connector- A Connector- Centric Approach Centric Approach to Architectural to Architectural Access Control Access Control Jie Ren Department of Informatics University of California, Irvine Outline Overview Architecture and


slide-1
SLIDE 1

A Connector- A Connector- Centric Approach Centric Approach to Architectural to Architectural Access Control Access Control

Jie Ren Department of Informatics University of California, Irvine

slide-2
SLIDE 2

Overview 2 January 20, 2006

Outline

Overview

– Architecture and Security – Software connectors – Hypotheses, approach, validation, contribution

Architectural Access Control

– Model: Subject, Principal, Resource, Privilege, Safeguard, Policy – Language: xADL, XACML, and Secure xADL – Contexts: neighborhood, type, container, architecture – Algorithm: interface access and privilege propagation

Advanced concepts

– RBAC, trust, content-based, architectural execution

Tool support Case studies Conclusion

slide-3
SLIDE 3

Overview 3 January 20, 2006

Security Incidents Reported to CERT

Incidents 20,000 40,000 60,000 80,000 100,000 120,000 140,000 1995 1996 1997 1998 1999 2000 2001 2002 2003

slide-4
SLIDE 4

Overview 4 January 20, 2006

Re-architecting boosts security!

Wing, IEEE Security & Privacy, 2003

slide-5
SLIDE 5

Overview 5 January 20, 2006

Problem

Architectural Access Control:

– How can we describe and check access control issues at the software architecture level?

slide-6
SLIDE 6

Overview 6 January 20, 2006

Main Goal

Integrate security and software

architecture

– Integrate – Security: integrity through access control – Architecture level: abstraction – Software engineering perspective: how to express, check, and enforce

slide-7
SLIDE 7

Overview 7 January 20, 2006

Security Overview

Security

– confidentiality, integrity, availability

Security policy, model, mechanism Reference Monitor and Trusted

Computing Base

– Anderson 1972

slide-8
SLIDE 8

Overview 8 January 20, 2006

Classic Discretionary Access Control

Lampson 1971 Subject Object Privilege

slide-9
SLIDE 9

Overview 9 January 20, 2006

Component and Architecture Security

Component-based Software Engineering

– Computer Security Contract, Khan 2001 – cTLA Contract, Herrmann 2003

Software Architecture

– ASTER, Bidan and Issarny 1997 – System Architecture Model, Deng et al. 2003 – SADL, Moriconi et al. 1997 – Law-Governed Architecture, Minsky 1998

Mostly cryptography, insufficient access

control

slide-10
SLIDE 10

Overview 10 January 20, 2006

Connectors

Why connectors

– Model the fundamental communication issue

Should they be first class citizens?

– Capture and reuse

Existing work

– Taxonomy: Mehta 2000 – Assembly Language: Mehta 2004 – Constructions: Lopes 2003 – Transformation: Spitznagel 2001

Shortcoming: insufficient access control

– Dependability: Spitznagel 2004

slide-11
SLIDE 11

Overview 11 January 20, 2006

Hypotheses

Hypothesis 1: An architectural connector may

serve as a suitable construct to model architectural access control

Hypothesis 2: The connector-centric approach

can be applied to different types of componentized and networked software systems

Hypothesis 3: With connector propagating

privileges, the access control check algorithm can check the suitability of accessing interfaces

Hypothesis 4: In an event-based architecture

style, connectors can route events in accordance with the secure delivery requirements

slide-12
SLIDE 12

Overview 12 January 20, 2006

Approach

A connector-centric approach to describe

and enforce Architectural Access Control

– Combine software architecture and security research – Adopt an integrated access control model: classic, role-based, trust management – Secure xADL, based on xADL and XACML – Architectural contexts – Architectural execution – Connector-centric description and enforcement – Tool support

slide-13
SLIDE 13

Overview 13 January 20, 2006

Validation

Algorithm analysis

– Based on graph reachability

Four case studies

– Development of secure coalition

Connector for secure message delivery

– Development of Impromptu

Composite connector among heterogeneous

components

– Modeling of Firefox component security

Algorithm to check critical path with the connector

– Modeling of DCOM security

Connectors for networked components

slide-14
SLIDE 14

Overview 14 January 20, 2006

Contributions

A novel approach to the design and

analysis of the access control property for software architectures

A usable formalism for modeling and

reasoning about architectural access control

An algorithm for checking whether the

architectural model maintains proper access control at design-time

A suite of usable tools to design and

analyze secure software

slide-15
SLIDE 15

Architectural Access Control 15 January 20, 2006

Architectural Access Control

Basic concepts, applied in architecture

– Subject, Principal, Resource, Permission/Privilege/Safeguard, Policy

Secure xADL

– xADL – XACML – Language design

Contexts

– Neighborhood, type, container, architecture

Check algorithm Central role of connectors

slide-16
SLIDE 16

Architectural Access Control 16 January 20, 2006

Running Example: Coalition

Message from US Message from France

slide-17
SLIDE 17

Architectural Access Control 17 January 20, 2006

Concepts: Subject

A subject is the user on whose behalf

software executes

Missing from traditional software

architecture:

– All of its components and connectors execute under the same subject – The subject can be determined at design-time – It generally will not change during runtime, either inadvertently or intentionally – Even if there is a change, it has no impact on the software architecture

slide-18
SLIDE 18

Architectural Access Control 18 January 20, 2006

Concepts: Principal

A subject can take multiple

principals, which encapsulate the credentials that a subject possesses to acquire permissions

Different types of principals Summary credentials and concrete

credentials

Missing from previous architectures

slide-19
SLIDE 19

Architectural Access Control 19 January 20, 2006

Concepts: Resource

A resource is an entity whose

access should be protected

Passive: files, sockets, etc. Active: components, connectors,

interfaces

– Relevant to architecture

slide-20
SLIDE 20

Architectural Access Control 20 January 20, 2006

Concepts: Privilege

Permissions describe a possible

  • peration on an object

Privilege describes what permissions a

component possesses depending on the executing subject

Privilege escalation vulnerabilities Two types of privileges:

– Traditional: read file, open sockets, etc. – Architectural: access, instantiation, connection, message routing, introspection, etc.

slide-21
SLIDE 21

Architectural Access Control 21 January 20, 2006

Concepts: Safeguard

Safeguards are permissions that are

required to access the interfaces of the protected components and connectors

Architectural access control check

slide-22
SLIDE 22

Architectural Access Control 22 January 20, 2006

Concepts: Policy

A policy specifies what privileges a

subject, with a given set of principals, should have to access resources protected by safeguards

Numerous existing studies in the

security community

We focus on software engineering

applicability for architectural modeling

slide-23
SLIDE 23

Architectural Access Control 23 January 20, 2006

Overview of xADL

XML-based extensible architecture

description language

Component and connector Types Signatures and interfaces Sub-architecture Design-time and run-time Tool support: ArchStudio Extensible: configuration, execution

slide-24
SLIDE 24

Architectural Access Control 24 January 20, 2006

Overview of XACML

Conceptual framework for access control models

– Based on set theory and first order logic

Extensible Formal semantics Matching rule for request

– Policy Enforcement Point (PEP) and Policy Decision Point (PDP) – PolicySet, Policy, Rule – Match on Subject, Resource, Action

Combining algorithms Open Standard from OASIS

slide-25
SLIDE 25

Architectural Access Control 25 January 20, 2006

Secure xADL

The first effort to model these security

concepts directly in an architectural description language

Viewed from XACML: a profile for the

software architecture domain

Viewed from xADL: a new schema

with elements necessary for access control

slide-26
SLIDE 26

Architectural Access Control 26 January 20, 2006

Syntax of Secure xADL

<complexType name="SecurityPropertyType"> <sequence> <element name="subject" type="Subject"/> <element name="principals" type="Principals"/> <element name="privileges" type="Privileges"/> <element name="policies" type="Policies"/> </sequence> <complexType> <complexType name="SecureConnectorType"> <complexContent> <extension base="ConnectorType"> <sequence> <element mame="security" type="SecurityPropertyType"/> </sequence> </extension> <!-- similar constructs for component, structure, and instance -->

slide-27
SLIDE 27

Architectural Access Control 27 January 20, 2006

Rationales for Language Design

Concepts

– Architecture, access control

Extensibility

– xADL, XACML

XACML flexible in combining policies Tool support

– ArchStudio – Evaluation engine and editor

slide-28
SLIDE 28

Architectural Access Control 28 January 20, 2006

The Larger Contexts

Access control decisions might be

based on entities other than the decision maker and the protected

  • resource. These relationships are the

contexts.

XACML’s combining algorithms

supply a framework to combine these contexts

slide-29
SLIDE 29

Architectural Access Control 29 January 20, 2006

Neighborhood Context

slide-30
SLIDE 30

Architectural Access Control 30 January 20, 2006

Four Types of Contexts

1.

The nearby components and connectors of the component and the connector

2.

The type of the component and the connector

3.

The explicitly modeled sub- architecture that contains the component and the connector

4.

The global architecture

slide-31
SLIDE 31

Architectural Access Control 31 January 20, 2006

Coalition w ith Tw o Connectors

Same Type Same Type

slide-32
SLIDE 32

32 January 20, 2006 <connectorType id="SecureC2Connector_type" xsi:type="SecureConnectorType"> <principal>NATO</principal> <PolicySet PolicySetId="InstantiateConnectorType" PolicyCombiningAlgId="deny-overrides"> <Policy RuleCombiningAlgId="deny-overrides"> <Rule Effect="Deny"> <SubjectMatch MatchId="string-equal"> <AttributeValue>SecureManagedSystem <AttributeDesignator>subject-id <ActionMatch MatchId="string-equal"> <AttributeValue>AddBrick<AttributeDesignator>action-id <Condition FunctionId="not"> <Apply FunctionId="string-is-in"> <AttributeValue>NATO</AttributeValue> <AttributeDesignator>principal

Type Policy

<connector id="UStoFranceConnector" xsi:type="SecureConnector"> <principal>US</principal> <PolicySet PolicyCombiningAlgId="deny-overrides"> <Policy RuleCombiningAlgId="deny-overrides"> <Rule Effect="Deny"> <SubjectMatch MatchId="string-equal"> <AttributeValue>SecureManagedSystem <ActionMatch MatchId="string-equal"> <AttributeValue>AddBrick<AttributeDesignator>action-id <Condition FunctionId="not"> <Apply FunctionId="string-is-in"> <AttributeValue>US</AttributeValue> <AttributeDesignator>principal <PolicySetIdReference>InstantiateConnectorType

Instance Policy

slide-33
SLIDE 33

Architectural Access Control 33 January 20, 2006

Algorithm to Check Architectural Access

Given a secure software architecture

description written in Secure xADL, if a component A wants to access another component B, should the access be allowed?

Applying situations

– Currently design-time, possibly run-time – Global, not local – Connector propagates privileges

slide-34
SLIDE 34

Architectural Access Control 34 January 20, 2006

Algorithm 1

Input: an outgoing interface, Accessing, and an incoming interface, Accessed Output: grant if the Accessing can access the Accessed, deny if the Accessing cannot access the Accessed Begin if (there is no path between Accessing and Accessed) return deny; if (Accessing and Accessed are connected directly) DirectAccessing = Accessing; else DirectAccessing = the constituent nearest to Accessed in the path; Get AccumulatedPrivileges for DirectAccessing from the owning component, the type, the containing sub-architecture, the complete architecture, and the connected constituents; Get AccumulatedSafeguards for Accessed from the owning constituent, the type, the containing sub-architecture, and the complete architecture; Get AccumulatedPolicy for Accessed from similar sources; if (AccumulatedPolicy exists) if (AccumulatedPolicy grants access) return grant; else return deny; else if (AccumulatedPrivileges contains AccumulatedSafeguards) return grant; else return deny; End

slide-35
SLIDE 35

Architectural Access Control 35 January 20, 2006

Applying Algorithm: Firefox

Accessing Accessed

  • 1. Find path

betw een accessing and accessed

slide-36
SLIDE 36

Architectural Access Control 36 January 20, 2006

Applying Algorithm: Firefox

Privilege: Content

  • 2. Get privileges

for accessing

slide-37
SLIDE 37

Architectural Access Control 37 January 20, 2006

Applying Algorithm: Firefox

Privilege: Content

  • 3. Propagate privileges

along the path

slide-38
SLIDE 38

Architectural Access Control 38 January 20, 2006

Applying Algorithm: Firefox

Privilege: Content

  • 4. Propagation is

subject to connector policy

slide-39
SLIDE 39

Architectural Access Control 39 January 20, 2006

Applying Algorithm: Firefox

Privilege: Content

slide-40
SLIDE 40

Architectural Access Control 40 January 20, 2006

Applying Algorithm: Firefox

Privilege: Content Safeguard: Chrome

  • 5. Decide w hether

privileges are sufficient for safeguards

slide-41
SLIDE 41

Architectural Access Control 41 January 20, 2006

Algorithm 2

Input: an outgoing interface, Accessing, and an incoming interface, Accessed Output: grant if the Accessing can access the Accessed, deny if the Accessing cannot access the Accessed Begin if (Accessing and Accessed belong to the same architecture structure) container = the architecture structure else if (use top level architecture) container = top level architecture else container = least common container if (container contains other architecture structures) { replace constituents of subarchitectured types with the sub-architecture; rename the constituents of the sub-architectures if there are multiple instances of them; connect the outer signatures and the inner interfaces as privilege preserving } calculate the reachability closure of the expanded container interface graph return Algorithm1(Accessing, Accessed) End;

slide-42
SLIDE 42

Architectural Access Control 42 January 20, 2006

Check w ith Subarchitecture

Accessing Accessed

  • Find container
  • Flatten and rename
  • Privilege preserving
slide-43
SLIDE 43

Architectural Access Control 43 January 20, 2006

Validity of the Algorithm

Reachability of a privilege graph

– A privilege of an outgoing interface – A safeguard of an incoming interface – Connectors decide edges

Sources of privileges and safeguards

– Architectural contexts

Assumptions

– A single, loop-free path between the interfaces – Need manual help from architects in other cases

slide-44
SLIDE 44

Advanced Modeling Concepts 44 January 20, 2006

Advanced Modeling Concepts

Four areas:

– Handling large scale access through roles – Handling heterogeneous access through trust management – Handling content-based access – Handling architectural execution

All can be modeled with the language

and checked with the algorithm

slide-45
SLIDE 45

Advanced Modeling Concepts 45 January 20, 2006

Role-based Access Control

slide-46
SLIDE 46

Advanced Modeling Concepts 46 January 20, 2006

Roles in Secure xADL

Roles as in the XACML RBAC Profile

– Role Policy Set: restrict subject – Permission Policy Set: restrict resource and action – PolicySetIdReference

Roles as principals

– RPS and PPS – UA

slide-47
SLIDE 47

Advanced Modeling Concepts 47 January 20, 2006

Trust Management

Handle authentication and authorization in

a decentralized environment

PolicyMaker, KeyNote, SD3 A local decision maker makes a decision

based on a credential presented by a remote party

The credential is generally a certificate

signed by the local decision maker

A local policy is uniformly treated as a

signed credential

slide-48
SLIDE 48

Advanced Modeling Concepts 48 January 20, 2006

Role-based Trust Management

Ninghui Li 2003 Based on set theory and logic Basic rule: R1.D1 R2.D2 Trust as Roles

– A foreign role can behave like a local role

A natural extension to RBAC

– Role equivalence similar to role inheritance

slide-49
SLIDE 49

Advanced Modeling Concepts 49 January 20, 2006

An Integrated Access Control Model

Classic Access Control

– Subject, object, privilege

Role-based Access Control

– Use a role as an indirection

Role-based Trust Management

– Trust relationship between roles of different domains

slide-50
SLIDE 50

Advanced Modeling Concepts 50 January 20, 2006

Content-based Access

Interface-level access does not

always provide enough information

Inspecting content passing through

interfaces could be necessary

Event-based interfaces

– Top and bottom – Request and notification

slide-51
SLIDE 51

Advanced Modeling Concepts 51 January 20, 2006

Architectural Execution

Architectural Instantiation

– Style neutral

Architectural Connection

– Style neutral

Message Routing

– Style specific

slide-52
SLIDE 52

Advanced Modeling Concepts 52 January 20, 2006

Coalition w ith One Connector

slide-53
SLIDE 53

Advanced Modeling Concepts 53 January 20, 2006 <connector id="USFranceConnector" xsi:type="SecureConnector"> <principal>France</principal> <principal>US</principal> <policies> <PolicySet PolicySetId="InternalRouting" PolicyCombiningAlgId="permit-overrides"> <Policy RuleCombiningAlgId="permit-overrides"> <Rule Effect="Deny" /> <PolicySet PolicySetId="PPS:France" PolicyCombiningAlgId="permit-overrides"> <Policy RuleCombiningAlgId="permit-overrides"> <Rule Effect="Permit"> <SubjectMatch MatchId="string-equal"> <AttributeValue>USFranceConnector <AttributeDesignator>subject-id <ResourceMatch MatchId="string-equal"> <AttributeValue>RouteMessage <AttributeDesignator>resource-id <ActionMatch MatchId="string-equal"> <AttributeValue>xadl:action:RouteMessage <AttributeDesignator>action-id <Condition FunctionId="string-equal"> <AttributeValue>Air Defense Missile <AttributeSelector RequestContextPath= "//context:ResourceContent/security:routeMessage/ messages:namedProperty[messages:name='type']/ messages:value/text()"/> <PolicySet PolicySetId="PPS:US" PolicyCombiningAlgId="permit-overrides">

Content-based Routing Role-based Access Control

slide-54
SLIDE 54

Advanced Modeling Concepts 54 January 20, 2006

Central Role of Connectors

Propagate privileges in architectural access check Route messages according to established policies Participate in deciding architectural connections Decide what subjects the connected components

are executing for

Regulate whether components have sufficient

privileges to communicate through the connectors

Provide secure interaction between insecure

components

slide-55
SLIDE 55

Tool Support 55 January 20, 2006

Tool Support

Evaluation Engines Extending ArchStudio

– Design-time support

Editors Analyzer

– Run-time support

PDP and PEP c2.fw.secure Secure Architecture Controller Instantiation, connection, messaging

slide-56
SLIDE 56

Tool Support 56 January 20, 2006

Policy Editor

slide-57
SLIDE 57

Tool Support 57 January 20, 2006

Static Analysis

slide-58
SLIDE 58

Tool Support 58 January 20, 2006

Instantiation and Connection Exceptions

slide-59
SLIDE 59

Case Studies 59 January 20, 2006

Case Studies

Coalition

– Developed, fully supported by ArchStudio

Impromptu

– Developed, reusing third party components

Firefox Component Security DCOM Security

slide-60
SLIDE 60

Case Studies 60 January 20, 2006

Case Study: Impromptu

slide-61
SLIDE 61

Case Studies 61 January 20, 2006

Impromptu Components and Connectors

slide-62
SLIDE 62

Case Studies 62 January 20, 2006

First Secure Connector

Roles: me, other WebDAV connector Use IP address to separate me from

  • ther
slide-63
SLIDE 63

Case Studies 63 January 20, 2006

Second Composite Connector

Standard compliant Composite

– HTTP Digest Authentication – web.xml authorization on HTTP methods – WebDAV ACL authorization on permissions

Enable all types of files, with the

WebDAV file system driver support

slide-64
SLIDE 64

Case Studies 64 January 20, 2006

Case Study: Firefox

slide-65
SLIDE 65

Case Studies 65 January 20, 2006

Firefox Platform

XPCOM

– Cross platform component model

JavaScript

– Browser and extension

XPConnect

– Bidirectional bridge between XPCOM components and JavaScript objects

slide-66
SLIDE 66

Case Studies 66 January 20, 2006

Trust Boundaries

The boundary between chrome and

content

The boundary between contents from

different origins

– Same origin: scheme, host, port

slide-67
SLIDE 67

Case Studies 67 January 20, 2006

Principals

Subject principal and object principal System principal, null principal

slide-68
SLIDE 68

Case Studies 68 January 20, 2006

Container and Node

Document Object Model Document and Frame

– Principal based on origin

Node

– Inherit principal

Components collection

slide-69
SLIDE 69

Case Studies 69 January 20, 2006

Script Security Manager

Part of XPConnect Discover object principals and

subject principals

Architectural Access Control

– DOM access

Check subject principal and object principal

– Instantiation by Creation – Instantiation by LoadURI

slide-70
SLIDE 70

70 <component id="ChromeCode"> <subject>ChromeCode</subject> <principal>Chrome</principal> <component id="ContentCode"> <subject>URI</subject> <principal>Content</principal> <component id="SignedContentCode"> <subject>SignedURI</subject> <principal>Chrome</principal> <connector id="XPConnectSecurityManager" xsi:type="SecureConnector"> <PolicySet PolicySetId="PPS:Chrome" PolicyCombiningAlgId="permit-overrides"> <Policy RuleCombiningAlgId="permit-overrides"> <Rule Effect="Permit"> <Subjects> <Subject><SubjectMatch MatchId="string-equal"> <AttributeValue>ChromeCode<AttributeDesignator>subject-id <Subject><SubjectMatch MatchId="string-equal"> <AttributeValue>SignedURI<AttributeDesignator>subject-id <AnyResource /> <AnyAction /> <PolicySet PolicySetId="PPS:Content" PolicyCombiningAlgId="deny-overrides"> <Policy RuleCombiningAlgId="deny-overrides"> <Rule Effect="Permit"> <SubjectMatch MatchId="string-equal"><AttributeValue>URI <AttributeDesignator>subject-id <ResourceMatch MatchId="string-equal"><AttributeValue>URI <AttributeDesignator>resource-id <ActionMatch MatchId="string-equal"><AttributeValue>AccessDOM <AttributeDesignator>action-id <Rule Effect="Deny">

Firefox Security Policy

slide-71
SLIDE 71

Case Studies 71 January 20, 2006

XPConnect: Architectural Connector

slide-72
SLIDE 72

Conclusion 72 January 20, 2006

Summary

Problem: Architectural Access Control

– How can we describe and check access control issues at the software architecture level?

Approach:

– A unified access control model: classic, role, trust – Subject, Principal, Resource, Privilege, Safeguard, and Policy – Contexts – Algorithm to check access control – Content-based access – Architectural execution – Connector-centric: propagation, connection, messaging – Tool support

slide-73
SLIDE 73

Conclusion 73 January 20, 2006

Contributions

A novel approach to the design and

analysis of the access control property for software architectures

A usable formalism for modeling and

reasoning about architectural access control

An algorithm for checking whether the

architectural model maintains proper access control at design-time

A suite of usable tools to design and

analyze secure software

slide-74
SLIDE 74

Conclusion 74 January 20, 2006

Future Work

Different types of connectors Different mechanisms to construct

connectors

Security as an aspect Reflective architectural model Dynamic architecture Policy conflict resolution