KEMBAR78
Security patterns and model driven architecture | PPT
The Beginning
The Beginning
Security Patterns
and
Model Driven Architecture
UC San Diego
CSE 294
Fall Quarter 2006
Barry Demchak
Papers to Review
 Using Security Patterns to Model and Analyze
Security Requirements (Betty Cheng et al, Michigan
State University) [~2000]
 A Study of Security Architecture Patterns
(Rosado et al, University of Castilla-La Mancha) [2006]
 Integration of Security Patterns in Software
Models based on Semantic Descriptions (Diego
Ray, University of Malaga) [2003]
The Big Problem
 Security requirements and solutions
 “The application should do blah-blah, blah-blah,
and blah-blah. It should do them like this: blah-
blah-blah.”
 And it should be fast, reliable, and secure.
 Security is a value, not an engineering goal
 Security is a non-functional requirement
 Irregular and haphazard application of
security measures leads to insecure systems
Evidence of the Problem
 “Thousands of Brits fall victim to data theft”
-- October 10, 2006 New York Times
 “Medicare and Medicaid Security Gaps Are
Found”
-- October 8, 2006 New York Times
 “U.S. and Europe Agree on Passenger Data”
-- October 6, 2006 New York Times
 Is AJAX secure?
-- October, 2006 SQL Magazine
The Context
Preview – the Players and their Parts
 Cheng – Pattern definition
 Rosado – Pattern enumeration and
evaluation
 Ray – Future directions
Patterns
 Patterns are a tool for managing complexity
 Describe technical solutions in context of business
problems
 Patterns are prescriptive – tell you what to do
 Each pattern represents a decision that must be made
and considerations that go into that decision
 Patterns facilitate communication
 Form common vocabulary among experts and non-
experts
 Patterns are a tool to capture expertise
 Patterns can increase the degree of corporate
knowledge capture and transfer
What is a Pattern?
A pattern for software architecture describes a
particular recurring design problem that arises
in specific design contexts, and presents a
well-proven generic scheme for its solution.
The solution scheme is specified by
describing its constituent components, their
responsibilities and relationships, and the
ways in which they collaborate.
[POSA96]
MVC
 Context & Problem
 Application data needs to be maintained and
presented via the user interface
 Multiple different output formats need to be supported
 Multiple different forms of input need to be supported
 How to establish consistency?
MVC
 Solution:
 Introduce separate components for storing and
processing of data (model), data presentation (view),
and for handling input (controller)
 The model represents the functional core; it registers
dependent components (views and controllers) and
notifies them about data changes
 The view retrieves data from the model and displays it
 The controller translates user input into events for the
model; it may also change the UI to mirror data
changes
MVC: Example
0
20
40
60
80
100
120
140
160
180
200
a b c
Series1
a
b
c
a b c
60 30 10
50 30 20
80 10 10
a = 63%
b = 23%
c = 14%
Model
View
Controller
adapted from [M05]
MVC
 Structure:
Model
AbstractSource
Attach(Observer)
Detach(Observer)
Notify()
GetState()
SetState()
service()
state
AbstractObserver
Update()
View
Update()
Display()
Initialize()
observers
*
model
1
Controller
Update()
HandleInput()
Initialize()
 Behavior:
MVC
:View:Model:Controller
Service()
Update()
HandleInput()
Notify()
GetState()
Display()
Update()
GetState()
 Consequences:
 Decoupling of application data from
presentation and input mechanism
 Consistency of user interface and underlying
data model
 Increase of structural and dynamic complexity
 Potential loss of performance
MVC
Pattern Information
 Analysis patterns [Fowler: Analysis Patterns]
 Design patterns [Gamma et al: Design
Patterns]
 Specification patterns [Dwyer et al: 2nd
Workshop on Formal Methods in Software
Engineering (1998)]
Cheng’s Approach – The Problem
 Security patterns lack comprehensive
structure that conveys essential information
essential to security engineering
 Security cannot be verified
The Solution
 Investigate alternate templates for security
patterns
 Enable verification of requirements by adding
formal constraints to patterns
Security Patterns
 Capture and convey information to facilitate
“security engineering”
 “Security” is subjective and environment-
dependent
 Extending normal patterns to security comes
up short: behavior, security constraints, etc
 Check essential security properties
Objectives
 Communication of security-specific
knowledge in context of concrete application
 Verification using UML formalization
framework (Hydra) -> Promela (SPIN) ->
Minerva
Design Patterns – a launching point
 Pattern Name and Classification
 Intent
 Also Known As
 Motivation
 Applicability – altered
 Consequences - altered
 Structure
 Participants
 Collaborations
Changed Fields
 Applicability – added application-level, host-
level, or network-level security
 Consequences – added set of consequences:
accountability, confidentiality, integrity,
availability, performance, cost, manageability,
usability
New Fields
 Behavior – illustrate behavior and interaction
using UML state and sequence diagrams
 Constraints – global conditions that have to
apply
 Related Security Patterns – how it relates to
other security patterns
 Supported Security Principles – how it relates
to each of the ten principles identified by
Viega and McGraw
Viega and McGraw Principles (aside)
1. Secure weakest link
2. Practice defense in depth
3. Fail securely
4. Principle of least privilege
5. Compartmentalize
6. Keep it simple
7. Promote privacy
8. Hiding secrets is hard
9. Be reluctant to trust
10. Use community resources
Patterns, Classifications & Principles
Process for Using Security Patterns
Example – Faulty UML State Diagram
Example - eBiz
 Requirement: Unauthorized access to system
should not be possible, and it triggers a
counter-measure
Example - eBiz
Example – eBiz
Analysis of Security Properties
 Checked Authorization, Check Point, and
Single Access Point
 Instantiated constraints using LTL -> SPIN
 Iteratively verified/improved – errors
visualized using Minerva as UML showing
counterexamples
Checkpoint Properties
 CHK1 – unauthorized access leads to counter-
measure: □(p→(◊q))
 (CP.grantaccess == 2)→(CM.triggered == 1)
 CHK2 – integrity or confidentiality are
uncompromised after denial: □(p→(qUr))
 (CP.grantaccess == 2) →((ERG.success == 0) U
(ERG.waiting == 0)
 CHK3 – granted access leads to notify: □(p→(◊q)Ur)
 (CP.grantaccess == 1) →((ERG.success == 1) U
(ERG.waiting == 0)
UML for Check Point Pattern
Cheng Summary
 Proposed revised template for security
 Combine previous UML formalizations with
security patterns to produce rigorous analysis
 Result: Reduction of error-prone post-design
security modifications
Cheng Futures
 Incorporate security beliefs into templates
 Investigate how application domain affects
security patterns
 Use of timing information in specifying
security patterns
Rosado’s Approach -- The Problem
 Unsecure systems are everywhere, and are
especially acute with connected systems
 Security should be considered at all stages of
system design and at all architectural levels
 There is no comprehensive methodology for
designing security-sensitive systems
 Requirements difficult to model
 Secure development expertise is rare
The Solution
 Security patterns encapsulate accumulated
knowledge of secure systems design
 Can be understood and used by non-security
professionals
 Degree of security in a pattern can be
measured
The Security Pattern Template
 Intent
 Context
 Problem
 Description
 Solution
 Consequences
 Known Uses
 Related Patterns
The Security Pattern Template
(vs Cheng et al)
 Intent
 Context
 Problem
 Description
 Solution
 Consequences
 Known Uses
 Related Patterns
 Also known as
 Structure
 Participants
 Collaborations
 Supported security
principles
Patterns Presented
 Authorization
 Role-Based Access Control
 Multi-level Security
 Reference Monitor
 Virtual Address Space Access Control
 Execution Domain
 Single Access Point
 Check Point
 Session
Patterns Presented
Authorization
Role-Based Access Control
Multi-level Security
 Reference Monitor
 Virtual Address Space Access Control
 Execution Domain
Single Access Point
Check Point
Session Limited View
Full View with Errors
Authorization Pattern
 Intent: Who is authorized to access resource
 Context: Active entities request resources
whose access must be controlled
 Problem: Access to secure objects needs to
be explicitly protected
Authorization Pattern – cont’d
 Description: distinguish between active
entities (subjects) and passive resources
(protection objects)
 Solution: Subject class, Object class, Rights
class, and the relationship between them
Authorization Pattern – cont’d
 Consequences
 Solution is independent of resources to be protected
 Subjects: processes, users, roles, groups
 Objects: transactions, memory, devices, files …
 Access: reading, writing, execution, methods
Authorization Pattern – cont’d
 Known uses: access control in Unix,
Windows, Oracle
 Related patterns: RBAC is a specialization
Role-Based Access Control Pattern
 Intent: Control access based on role
 Context: Access based on job or task
 Solution: Extends Authorization so users are
assigned roles, and roles have rights
Multilevel Security Pattern
 Intent: Access under multiple levels of security class
 Solution: Each subject ∈ some class, each resource ∈ some
class, instances used to add levels of security
 Consequences: Facilitates admin work for classification,
maintenance of classification can be costly
Reference Monitor Pattern
 Intent: All authorizations are fulfilled when process needs
resource
 Context: Multiprocess environment petitioning resources
 Consequences: If all petitions are intercepted, rules can be
observed. Implementation depends on resource, and
performance suffers
Virtual Address Space Access Control Pattern
 Intent: Control access by processes to specific memory using
predefined access types
 Context: Processes must share memory in controlled way;
each process executes in own address space
 Solution: Divide memory into segments, assign descriptors and
allowed access types
Execution Domain Pattern
 Intent: Define process environment indicating accessible
resources the resource access privileges
 Problem: Restrict process to use specific resources to prevent
destruction that could interfere with other processes
 Consequences: Resource mapped into address space, domain
implementation not restricted, complex and needs hardware
Session Pattern
 Intent: Provide environment where user rights can be restricted
and controlled
 Description: Repository for global information access
 Consequences: Session has privileges necessary to perform
task, but insufficient to cause collateral damage
Single Access Point Pattern
 Intent: Simple interface for communications with external
entities
 Solution: Single point of control (mediator) can coordinate
policy implementation through Check Point pattern
 Consequences: Can capture information, carry out
authorization, and prevent undesirable data modification
Check Point Pattern
 Intent: Check requests and take countermeasures
 Solution: Analyze requests and messages, combines with
Single Access Point pattern, applies current security policy
 Consequences: Benefits confidentiality if operating properly
and attacks can be detected. Complex checking slows system.
Comparing Security Criteria
Comparing Performance
Comparing Cost and Security
Rosado’s Futures
 Define method to specify flexible security
architectures that can be easily adapted to
systems with different security requirements
 Guarantee security using security patterns
Ray’s Approach – The Problem
 Security and reliability not considered during
initial stages of software development
 Not part of standard procedures in
development or maintenance of software
The Solution
 Create framework for semantic description
and management of security properties and
patterns
 Given security requirements, define
mechanisms to automate analysis of security-
enhanced models
 Define mechanism to guarantee that
subsequent changes preserve security
properties and patterns
Security Awareness
 25 Years Ago: What is Security??
 15 Years Ago: Security is a value-added
service
 Lately: Security must be built in
Development Processes
 Security requirements are often identified
independently for each system component
 Interdependencies are poorly understood
 Big trouble
 Pervasive computing
 Ambient intelligence
 Mobile services
 Deploy isolated countermeasures (PKI, IDS, firewalls,
symmetric encryption, etc)
 No development process identifies security
requirements apriori
The Causes
 Security is a non-functional requirement
 Security is both technical and social
 Developers often lack background or interest
in security
 No consistent way of representing security at
different levels of software description
Add-on Security
 Usually a point solution
 Different implementations of the add-on
security cannot be compared (as to security
properties)
 Security mechanisms not congruent with
system security requirements
Where Are We Now?
 UML-based
 Business process engineering
 SecureUML integrates role-based access
control policies into model-driven software
development process
 UMLsec proposes extending UML for security
modeling, but addresses only a few security
issues
 Integrate UML into Tropos (ERP) methodology
More UML …
 Use cases can describe special scenarios, but abuse
cases are more instructive
 UML Precise Group (PUML) investigating improving
semantics
 SEMPER (Secure Electronic Marketplace in Europe)
studying e-commerce frameworks
 COPS (Commercial Protocols and Services) studying
infrastructure for market transactions
 CASENET design and analysis of security protocols
studying requirements specification during application
development
Where Next?
 Use of formal methods in software
engineering process
 Develop formally proven solutions
 Assist software engineers regarding gathering
security requirements, integrating proven
solutions, and validating against requirements
Where Next?
Basic Boehm Spiral Model
Integrated Security Engineering
 Security solution
 Adaptation to
context
 Analysis of
consequences
 Coherence
Semantic Modeling
 Security protocol as a series of semantic properties
to be fulfilled
 Level of security: confidential
 Authentication is needed
 … etc
 Enables
 Semantic categorization of patterns and libraries
 Fitting patterns and libraries to context
 Ferret out unhealthy interactions
 Validate correctness of new patterns
Automated Tools Support
Comparison of Approaches
 Cheng et al
 Improvement of attribute classifications of security
patterns
 UML + security patterns = rigorous analysis
 Rosado
 Exposing security patterns for common use
 Classifying characteristics of security patterns
 Ray
 Semantic description of security patterns
 Full development cycle supported by automation
 Guarantee that protocols are maintained across
development cycle
Other Threads
 Dr. Dobbs Journal
 Scott Ambler on difficulty of marrying agile
with security
 Microsoft Systems Journal
 November edition has 6 major stories
 Threat modeling
 Extending SDL – Documenting and Evaluating
the Security Guarantees of Your Apps
Bottom Line
 Are today’s security patterns sufficient to
guarantee secure systems?
 Is security a cross-cutting issue?
 How do we create secure-by-architecture
designs?
“For interesting research, head towards chaos”
– Ingolf Krueger, 2005
The Beginning

Security patterns and model driven architecture

  • 1.
  • 2.
  • 3.
    Security Patterns and Model DrivenArchitecture UC San Diego CSE 294 Fall Quarter 2006 Barry Demchak
  • 4.
    Papers to Review Using Security Patterns to Model and Analyze Security Requirements (Betty Cheng et al, Michigan State University) [~2000]  A Study of Security Architecture Patterns (Rosado et al, University of Castilla-La Mancha) [2006]  Integration of Security Patterns in Software Models based on Semantic Descriptions (Diego Ray, University of Malaga) [2003]
  • 5.
    The Big Problem Security requirements and solutions  “The application should do blah-blah, blah-blah, and blah-blah. It should do them like this: blah- blah-blah.”  And it should be fast, reliable, and secure.  Security is a value, not an engineering goal  Security is a non-functional requirement  Irregular and haphazard application of security measures leads to insecure systems
  • 6.
    Evidence of theProblem  “Thousands of Brits fall victim to data theft” -- October 10, 2006 New York Times  “Medicare and Medicaid Security Gaps Are Found” -- October 8, 2006 New York Times  “U.S. and Europe Agree on Passenger Data” -- October 6, 2006 New York Times  Is AJAX secure? -- October, 2006 SQL Magazine
  • 7.
  • 8.
    Preview – thePlayers and their Parts  Cheng – Pattern definition  Rosado – Pattern enumeration and evaluation  Ray – Future directions
  • 9.
    Patterns  Patterns area tool for managing complexity  Describe technical solutions in context of business problems  Patterns are prescriptive – tell you what to do  Each pattern represents a decision that must be made and considerations that go into that decision  Patterns facilitate communication  Form common vocabulary among experts and non- experts  Patterns are a tool to capture expertise  Patterns can increase the degree of corporate knowledge capture and transfer
  • 10.
    What is aPattern? A pattern for software architecture describes a particular recurring design problem that arises in specific design contexts, and presents a well-proven generic scheme for its solution. The solution scheme is specified by describing its constituent components, their responsibilities and relationships, and the ways in which they collaborate. [POSA96]
  • 11.
    MVC  Context &Problem  Application data needs to be maintained and presented via the user interface  Multiple different output formats need to be supported  Multiple different forms of input need to be supported  How to establish consistency?
  • 12.
    MVC  Solution:  Introduceseparate components for storing and processing of data (model), data presentation (view), and for handling input (controller)  The model represents the functional core; it registers dependent components (views and controllers) and notifies them about data changes  The view retrieves data from the model and displays it  The controller translates user input into events for the model; it may also change the UI to mirror data changes
  • 13.
    MVC: Example 0 20 40 60 80 100 120 140 160 180 200 a bc Series1 a b c a b c 60 30 10 50 30 20 80 10 10 a = 63% b = 23% c = 14% Model View Controller adapted from [M05]
  • 14.
  • 15.
  • 16.
     Consequences:  Decouplingof application data from presentation and input mechanism  Consistency of user interface and underlying data model  Increase of structural and dynamic complexity  Potential loss of performance MVC
  • 17.
    Pattern Information  Analysispatterns [Fowler: Analysis Patterns]  Design patterns [Gamma et al: Design Patterns]  Specification patterns [Dwyer et al: 2nd Workshop on Formal Methods in Software Engineering (1998)]
  • 18.
    Cheng’s Approach –The Problem  Security patterns lack comprehensive structure that conveys essential information essential to security engineering  Security cannot be verified
  • 19.
    The Solution  Investigatealternate templates for security patterns  Enable verification of requirements by adding formal constraints to patterns
  • 20.
    Security Patterns  Captureand convey information to facilitate “security engineering”  “Security” is subjective and environment- dependent  Extending normal patterns to security comes up short: behavior, security constraints, etc  Check essential security properties
  • 21.
    Objectives  Communication ofsecurity-specific knowledge in context of concrete application  Verification using UML formalization framework (Hydra) -> Promela (SPIN) -> Minerva
  • 22.
    Design Patterns –a launching point  Pattern Name and Classification  Intent  Also Known As  Motivation  Applicability – altered  Consequences - altered  Structure  Participants  Collaborations
  • 23.
    Changed Fields  Applicability– added application-level, host- level, or network-level security  Consequences – added set of consequences: accountability, confidentiality, integrity, availability, performance, cost, manageability, usability
  • 24.
    New Fields  Behavior– illustrate behavior and interaction using UML state and sequence diagrams  Constraints – global conditions that have to apply  Related Security Patterns – how it relates to other security patterns  Supported Security Principles – how it relates to each of the ten principles identified by Viega and McGraw
  • 25.
    Viega and McGrawPrinciples (aside) 1. Secure weakest link 2. Practice defense in depth 3. Fail securely 4. Principle of least privilege 5. Compartmentalize 6. Keep it simple 7. Promote privacy 8. Hiding secrets is hard 9. Be reluctant to trust 10. Use community resources
  • 26.
  • 27.
    Process for UsingSecurity Patterns
  • 28.
    Example – FaultyUML State Diagram
  • 29.
    Example - eBiz Requirement: Unauthorized access to system should not be possible, and it triggers a counter-measure
  • 30.
  • 31.
  • 32.
    Analysis of SecurityProperties  Checked Authorization, Check Point, and Single Access Point  Instantiated constraints using LTL -> SPIN  Iteratively verified/improved – errors visualized using Minerva as UML showing counterexamples
  • 33.
    Checkpoint Properties  CHK1– unauthorized access leads to counter- measure: □(p→(◊q))  (CP.grantaccess == 2)→(CM.triggered == 1)  CHK2 – integrity or confidentiality are uncompromised after denial: □(p→(qUr))  (CP.grantaccess == 2) →((ERG.success == 0) U (ERG.waiting == 0)  CHK3 – granted access leads to notify: □(p→(◊q)Ur)  (CP.grantaccess == 1) →((ERG.success == 1) U (ERG.waiting == 0)
  • 34.
    UML for CheckPoint Pattern
  • 35.
    Cheng Summary  Proposedrevised template for security  Combine previous UML formalizations with security patterns to produce rigorous analysis  Result: Reduction of error-prone post-design security modifications
  • 36.
    Cheng Futures  Incorporatesecurity beliefs into templates  Investigate how application domain affects security patterns  Use of timing information in specifying security patterns
  • 37.
    Rosado’s Approach --The Problem  Unsecure systems are everywhere, and are especially acute with connected systems  Security should be considered at all stages of system design and at all architectural levels  There is no comprehensive methodology for designing security-sensitive systems  Requirements difficult to model  Secure development expertise is rare
  • 38.
    The Solution  Securitypatterns encapsulate accumulated knowledge of secure systems design  Can be understood and used by non-security professionals  Degree of security in a pattern can be measured
  • 39.
    The Security PatternTemplate  Intent  Context  Problem  Description  Solution  Consequences  Known Uses  Related Patterns
  • 40.
    The Security PatternTemplate (vs Cheng et al)  Intent  Context  Problem  Description  Solution  Consequences  Known Uses  Related Patterns  Also known as  Structure  Participants  Collaborations  Supported security principles
  • 41.
    Patterns Presented  Authorization Role-Based Access Control  Multi-level Security  Reference Monitor  Virtual Address Space Access Control  Execution Domain  Single Access Point  Check Point  Session
  • 42.
    Patterns Presented Authorization Role-Based AccessControl Multi-level Security  Reference Monitor  Virtual Address Space Access Control  Execution Domain Single Access Point Check Point Session Limited View Full View with Errors
  • 43.
    Authorization Pattern  Intent:Who is authorized to access resource  Context: Active entities request resources whose access must be controlled  Problem: Access to secure objects needs to be explicitly protected
  • 44.
    Authorization Pattern –cont’d  Description: distinguish between active entities (subjects) and passive resources (protection objects)  Solution: Subject class, Object class, Rights class, and the relationship between them
  • 45.
    Authorization Pattern –cont’d  Consequences  Solution is independent of resources to be protected  Subjects: processes, users, roles, groups  Objects: transactions, memory, devices, files …  Access: reading, writing, execution, methods
  • 46.
    Authorization Pattern –cont’d  Known uses: access control in Unix, Windows, Oracle  Related patterns: RBAC is a specialization
  • 47.
    Role-Based Access ControlPattern  Intent: Control access based on role  Context: Access based on job or task  Solution: Extends Authorization so users are assigned roles, and roles have rights
  • 48.
    Multilevel Security Pattern Intent: Access under multiple levels of security class  Solution: Each subject ∈ some class, each resource ∈ some class, instances used to add levels of security  Consequences: Facilitates admin work for classification, maintenance of classification can be costly
  • 49.
    Reference Monitor Pattern Intent: All authorizations are fulfilled when process needs resource  Context: Multiprocess environment petitioning resources  Consequences: If all petitions are intercepted, rules can be observed. Implementation depends on resource, and performance suffers
  • 50.
    Virtual Address SpaceAccess Control Pattern  Intent: Control access by processes to specific memory using predefined access types  Context: Processes must share memory in controlled way; each process executes in own address space  Solution: Divide memory into segments, assign descriptors and allowed access types
  • 51.
    Execution Domain Pattern Intent: Define process environment indicating accessible resources the resource access privileges  Problem: Restrict process to use specific resources to prevent destruction that could interfere with other processes  Consequences: Resource mapped into address space, domain implementation not restricted, complex and needs hardware
  • 52.
    Session Pattern  Intent:Provide environment where user rights can be restricted and controlled  Description: Repository for global information access  Consequences: Session has privileges necessary to perform task, but insufficient to cause collateral damage
  • 53.
    Single Access PointPattern  Intent: Simple interface for communications with external entities  Solution: Single point of control (mediator) can coordinate policy implementation through Check Point pattern  Consequences: Can capture information, carry out authorization, and prevent undesirable data modification
  • 54.
    Check Point Pattern Intent: Check requests and take countermeasures  Solution: Analyze requests and messages, combines with Single Access Point pattern, applies current security policy  Consequences: Benefits confidentiality if operating properly and attacks can be detected. Complex checking slows system.
  • 55.
  • 56.
  • 57.
  • 58.
    Rosado’s Futures  Definemethod to specify flexible security architectures that can be easily adapted to systems with different security requirements  Guarantee security using security patterns
  • 59.
    Ray’s Approach –The Problem  Security and reliability not considered during initial stages of software development  Not part of standard procedures in development or maintenance of software
  • 60.
    The Solution  Createframework for semantic description and management of security properties and patterns  Given security requirements, define mechanisms to automate analysis of security- enhanced models  Define mechanism to guarantee that subsequent changes preserve security properties and patterns
  • 61.
    Security Awareness  25Years Ago: What is Security??  15 Years Ago: Security is a value-added service  Lately: Security must be built in
  • 62.
    Development Processes  Securityrequirements are often identified independently for each system component  Interdependencies are poorly understood  Big trouble  Pervasive computing  Ambient intelligence  Mobile services  Deploy isolated countermeasures (PKI, IDS, firewalls, symmetric encryption, etc)  No development process identifies security requirements apriori
  • 63.
    The Causes  Securityis a non-functional requirement  Security is both technical and social  Developers often lack background or interest in security  No consistent way of representing security at different levels of software description
  • 64.
    Add-on Security  Usuallya point solution  Different implementations of the add-on security cannot be compared (as to security properties)  Security mechanisms not congruent with system security requirements
  • 65.
    Where Are WeNow?  UML-based  Business process engineering  SecureUML integrates role-based access control policies into model-driven software development process  UMLsec proposes extending UML for security modeling, but addresses only a few security issues  Integrate UML into Tropos (ERP) methodology
  • 66.
    More UML … Use cases can describe special scenarios, but abuse cases are more instructive  UML Precise Group (PUML) investigating improving semantics  SEMPER (Secure Electronic Marketplace in Europe) studying e-commerce frameworks  COPS (Commercial Protocols and Services) studying infrastructure for market transactions  CASENET design and analysis of security protocols studying requirements specification during application development
  • 67.
    Where Next?  Useof formal methods in software engineering process  Develop formally proven solutions  Assist software engineers regarding gathering security requirements, integrating proven solutions, and validating against requirements
  • 68.
  • 69.
  • 70.
    Integrated Security Engineering Security solution  Adaptation to context  Analysis of consequences  Coherence
  • 71.
    Semantic Modeling  Securityprotocol as a series of semantic properties to be fulfilled  Level of security: confidential  Authentication is needed  … etc  Enables  Semantic categorization of patterns and libraries  Fitting patterns and libraries to context  Ferret out unhealthy interactions  Validate correctness of new patterns
  • 72.
  • 73.
    Comparison of Approaches Cheng et al  Improvement of attribute classifications of security patterns  UML + security patterns = rigorous analysis  Rosado  Exposing security patterns for common use  Classifying characteristics of security patterns  Ray  Semantic description of security patterns  Full development cycle supported by automation  Guarantee that protocols are maintained across development cycle
  • 74.
    Other Threads  Dr.Dobbs Journal  Scott Ambler on difficulty of marrying agile with security  Microsoft Systems Journal  November edition has 6 major stories  Threat modeling  Extending SDL – Documenting and Evaluating the Security Guarantees of Your Apps
  • 75.
    Bottom Line  Aretoday’s security patterns sufficient to guarantee secure systems?  Is security a cross-cutting issue?  How do we create secure-by-architecture designs? “For interesting research, head towards chaos” – Ingolf Krueger, 2005
  • 76.

Editor's Notes

  • #4 Define Model Driven Architecture: software design approach officially launched by the OMG in 2001 structures specifications as models define model as platform-independent Tie to a specific platform model to achieve a particular implementation OMG hopes it will be used for “forward engineering” Implies tools like UML, creation, analysis, transformations, testing, etc.
  • #8 Today’s problem is secure software …. IE?? … Firefox??? … Operating Systems??
  • #10 Give credit to Ingolf … refer to his Pattern lecture
  • #11 Give credit to Ingolf
  • #12 <number>
  • #13 <number>
  • #14 <number>
  • #15 <number>
  • #16 <number>
  • #17 <number>
  • #23 ² Applicability (Altered) : The Applicability field is important in determining if a pattern is applicable to a system; it describes circumstances and identifies assumptions under which the pattern should be applied or when an application is not beneficial. This field also indicates whether it addresses application-level, host-level, or network-level security. ² Behavior (Added) : To illustrate behavior and interaction more rigorously, UML state and sequence diagrams depict the behavioral aspects of a pattern. ² Constraints (Added) : The Constraints field contains global conditions that have to apply in order for the security pattern to achieve its intended goal. For example, the Single Access Point Pattern constraints describe that access to internal entities must be only possible through the single access points. If those constraints are violated, such as by a user using a dial-up connection from within the system to external entities, then the Single Access Point Pattern can no longer achieve its intended functionality, and therefore security. Additionally, it contains LTL constraints in the spirit of the specification patterns by Dwyer et al. [3] that should be satisfied after a pattern was applied. ² Consequences (Altered) : Altered to convey a set of possible consequences, defined in terms of security properties, including accountability, confidentiality, integrity, availability, performance, cost, manageability, and usability. (The identification of these properties were based on a set of properties identified by Kienzle [8]. For each security pattern, we describe how the pattern affects these properties.) ² Related Security Patterns (Added) : Describes a pattern’s relationships to other security patterns. ² Supported Principles (Added) : The Supported Principles field refers to the ten principles identified by Viega and McGraw [12] as being fundamental to the development of secure systems.1 Therefore, as a guide to the developer, we include a list of principles that are supported for each security pattern. Sample principles include, “secure the weakest link,” “practice defense in depth,” “fail securely,” etc.
  • #25 An example of a constraint: Single Access Point should fail if accessor is dialup
  • #27 To be noted: Pattern list, 10 principles, Purpose category, Abstraction level
  • #28 A: Construct a basic foundation in UML B: Use Hydra to perform consistency checks E: Specify Constraints for security patterns in LTL. Determine which parts of the system are relevant and should be checked. C: Generate Promela code and put it through SPIN D: Use Minerva to visualize counterexamples E: Specify Constraints for security patterns in LTL. Determine which parts of the system are relevant and should be checked.
  • #29 This is the Authorization class, run through SPIN, then visualized using Minerva. The fault was fixed, then class was rerun. Diagram shows that they inadvertently defined the wrong recipient (see highlighted transitions). Sender 3 should have specified recipient ==2 and recipient != 2. Instead it specified “1”, which had the effect of granting unauthorized access if sender 3 requested read access to recipient 1 … and sender 3 was not able to read from recipient 2 even though it had authorization.
  • #30 Single Point Access is protecting some particular resource Requests are generated and sent to Single Access Point class Single Access Point sends the request to the log and forwards the request to Checkpoint class Checkpoint class authorizes the request and accesses internal entity If authorization fails, it takes some countermeasure
  • #31 Checkpoint state machine in UML
  • #32 Explain equivalence classes and how they play into analysis
  • #34 Chk1: p then eventually q Chk2: p infers q until r Chk3: p infers eventually q until r
  • #44 The Authorization Pattern slides show all of the attributes. Subsequent slides show just a few.
  • #52 Danger in creating pattern descriptions: limiting it (hardware support), contradicting (Known uses: Java VM)
  • #53 Danger in creating pattern descriptions: limiting it (hardware support), contradicting (Known uses: Java VM)
  • #54 Danger in creating pattern descriptions: limiting it (hardware support), contradicting (Known uses: Java VM)
  • #56 Get crib notes showing each property meaning The patterns are good at access control, confidentiality. Some are OK at integrity and reliability. Fall down on error management, flexibility, and maintenance
  • #61 This is a manifesto Still requires semantic description of security properties
  • #63 Pile on top of that the issues of social context, IT environments, physical protection Ad-hoc approaches cannot support complete and rigorous treatment of security beginning from elicitation to implementation to maintenance It’s easy to see why system have security holes
  • #64 Hard to capture security with standard software design techniques
  • #65 Efficacy of point solution can’t be confirmed since the system isn’t fully described in the first place
  • #66 No comprehensive methodology in existence
  • #67 No winners … no consensus … not converging
  • #69 Provide methodologies and tools for a generation of systems with fully configured security infrastructures … starting as early as possible in the business process model Reusability is promoted through libraries and security service repositories Consistent with model-driven development
  • #71 Automated tools will support selection of a security solution, adaptation of solution to context, analysis of consequences of change, verification of coherence up and down the architecture stack Sees existing pattern descriptions as un-rigorous … wants to develop a rigorous pattern language
  • #72 Rich and precise semantic descriptions of patterns The result would be a library of security patterns … better than “best practices” Well-defined, automated-processing-enabled repository of security mechanisms
  • #74 Cheng is trying to reduce post-design errors by preventing them in the first place