Title: Intrusion Tolerant Software Architectures
1Intrusion Tolerant Software Architectures
- Victoria Stavridou
- System Design Laboratory
- SRI International
- victoria_at_sdl.sri.com
- (650) 859 4590
2The team
- Victoria Stavridou, Bruno Dutertre, Hassen Saidi,
Bob Riemenschneider - Dependable System Architecture Group,
- System Design Lab
- SRI International
- Jan Filsinger
- NAI Labs
3Topics
- Intrusion tolerance
- Software architectures
- Intrusion tolerant software architectures
- Noninterference and intrusion tolerance
- Summary
4Design for Security Assurance
- Dependability impairments (IFIP WG 10.4)
- fault error
failure
5Design for Security Assurance
Removal
Prevention
Tolerance
Avoidance
Avoid introducing vulnerabilities (good system
and s/w engineering, security engineering, SEI/CMM
, SSE-CMM, formal methods)
Numerous potential vulnerabilities
Tolerate unknown/too expensive to
fix vulnerabilities
Remove known vulnerabilities (Test, analysis,
VV)
6Intrusion Prevention/Detection/Tolerance
- Intrusion prevention is reactive
- Statically deploys firewalls and anti-virus
software to stop the exploitation of known
vulnerabilities - Intrusion detection is reactive
- Builds mechanisms to detect and alert
- Intrusion tolerance is proactive
- Design/engineering focus
- Borrows concepts from the software and safety
engineering communities - Helps with those unforseen little difficulties
7Intrusion Tolerance Objectives
- After an intrusion detection mechanism has
located an intrusion, maintain an acceptable (but
possibly degraded) level of service - Contain and expel intruder
- Minimize impact of penetration on system
integrity - Determine and report the vulnerability exploited,
so that it can be removed or blocked - Collaborate with IDS to produce more
sensitive/intelligent detection - Provide measured response
8Intrusion/fault tolerance mechanisms
- Intrusion detection /location (IDS sensor
correlation, byzantine agreement with
authentication algorithms, trigger deployment) - Intrusion containment (secure compartments,
reconfigure architecture to isolate bad guy, eg
IDIP/Schnackenberg) - Intrusion mitigation (reconfigure architecture to
minimize stolen resources and disable
inappropriate information flows) - Intrusion recovery (extended/distributed recovery
regions, reconfigure architecture with backwards
or forwards roll to eliminate the impact of the
bad guy)
But redundancy management, tradeoffs and
independence are open issues On the other hand
its much easier to deal with consequences of
faults!
9Topics
- Intrusion tolerance
- Software architectures
- Intrusion tolerant software architectures
- Noninterference and intrusion tolerance
- Summary
10Security in theory and practice
- Research community has emphasized mathematical
modeling of security properties which can be
hard to relate to actual systems - Commercially available systems not formally
linked to security theory so its hard to
determine whether they actually have the desired
properties - We replace the abstract mathematical models by
structured architectural models that still
emphasize formal analysis but are easier to
relate to actual systems. - We advocate lightweight formal methods Design a
lot, specify some and prove a little
11Software architectures
- Bridge the gap between requirements and
implementation - Support composition and evolution at the design
level - Characterize families of applications with shared
characteristics - Provide design-level abstractions, patterns and
styles - Provide generic, reusable solutions with
guaranteed benefits
12Architectural description concepts
- Languages Specification languages for
architectures - Components Loci of computation and storage
- Connectors Communication mechanisms
- Constraints Configuration, other properties
- Styles Collections of constraints (ontologies)
- Dataflow, client-server, blackboard
- Patterns
- Hierarchies
13Software architecture hierarchies
- Manage complexity
- Explore design options
- Support incremental rearchitecting
- Exploit and support modularity
Hierarchies bridge the gap between abstract
architecture and concrete code
14Security assurance by construction
Abstract architecture
Architecture Hierarchy
Security Preserving Transformations
Implementations
Example X/Open Secure Distributed Transaction
Processing A provably secure implementation
15Security assurance by construction
- Means that
- A security vulnerability that does not exist in
the abstract - architecture cannot be introduced into any
intermediate - concrete architecture in the hierarchy
- Benefits
- Eliminate whole classes of concerns
- Focus security analysis at the highest level
- Higher quality, higher security assurance result
16Structural Architecture Description LanguageSADL
- Specific and generic architectures
- Architectural styles, mappings,implementation
patterns - Architecture alternatives thru hierarchies
- Interoperability with other ADLs (ACME)
- Interfaces with PVS for theorem proving
17SADL Toolkit
PVS
ACME Studio
AST to SADL object
ADL parsers
SADL object base
SADL object to AST
ADL printers
TOOL n
18Topics
- Intrusion tolerance
- Designing for security assurance
- Software architectures
- Intrusion tolerant software architectures
- Noninterference and intrusion tolerance
- Summary
19Designed-In Intrusion Tolerance
Abstract architectural specification that
guarantees required intrusion tolerance
properties
Refinement step that preserves required intrusion
tolerance properties
Further intrusion tolerance property-preserving
refinement steps
Result Concrete implementation of architectural
specification has required intrusion tolerance
properties
20Intrusion Tolerant Software Architectures
The project goal To enable the creation and
evolution of intrusion tolerant, software
architecture hierarchies
21Example X/Open Secure Distributed Transaction
Processing
A provably secure implementation
Validated refinement step replace secure
channels by ordinary ones security filter
Level 0
Additional validated refinement steps leading to
implementation level architecture
Level 2
Level 1
Validated refinement step decompose security
filter
22Intrusion Tolerant Software Architectures
- Tasks
- Develop an IT ontology
- Develop a risk based set of IT levels
- Develop an approach to the creation and evolution
of IT - software architectures
- Develop an approach to the creation of IT s/w
components - Refine by applying to a realistic architecture
- (GENOA)
23Approach
- Define abstract architectural intrusion tolerance
properties (types and levels) - Non interference, secure composition, node data
integrity, stability, - Define mechanisms for ensuring those properties
- IT triggers, integrity marks, bounded
reconfiguration, - Prove abstract architectural specification has
required intrusion tolerance properties - Prove architecture refinement steps that lead to
the implementation instrumented with IT
mechanisms preserve required intrusion tolerance
properties - Apply this approach to an IA architecture (GENOA)
24Topics
- Intrusion tolerance
- Software architectures
- Intrusion tolerant software architectures
- Noninterference and intrusion tolerance
- Summary
25Noninterference as an IT property
- From security to safety and back
- Can be used in two distinct ways
- as a characterization of secure compartments
- as a characterization of intrusion tolerance
- Hypothesis Can be captured as an emergent system
property that can be preserved through an
architecture hierarchy - Key idea Tolerate deviations from required
behavior within specified limits
26Application level IT
Application nodes
Network
External nodes
27Model
- Labeled transition systems
- Communication network
- Application nodes
- Fault model
- Intrusion tolerance is observational equivalence
(within predefined tolerances) of healthy vs
compromised system wrt a set of critical events
28Topics
- Intrusion tolerance
- Software architectures
- Intrusion tolerant software architectures
- Noninterference and intrusion tolerance
- Summary
29Summary
- Problem
- Systems will always contain unexpected
vulnerabilities - This is exacerbated by complexity and acquisition
trends (COTS, mobile code) - Solution
- Tackle the problem at the design level
- Use measured response and software architectures
30Backup
31How do we get there?
- Focus on GENOA as the experimentation target
- Rich problem set
- Information assurance investment
- There is still time to influence the design
- Define intrusion tolerance properties
- Focus on integrity and availability requirements
- Work out the tradeoffs
- Use software architecture models
32Outcomes
- An intrusion tolerance ontology
- A risk-based approach to intrusion tolerance
level definition - Technology for developing, evolving, and
maintaining intrusion tolerant software
architectures - Architectural style definitions that make
specification of intrusion tolerant architectures
more straightforward - A library of refinement patterns known to
preserve key intrusion tolerance properties - Easy-to-apply lightweight techniques for
verifying that patterns preserve intrusion
tolerance - Technology for developing, evolving, and
maintaining intrusion tolerant components - An analysis of intrusion tolerance requirements
for a demanding IA application
33Intrusion tolerance is the ability of a system to
continue providing adequate service after a
penetration
Intrusion tolerance by design and construction
Intrusion tolerance design is proactive, not a
passive extra feature after developing the
system
34Intrusion Tolerance vs Intrusion Detection
- Intrusion tolerance is pro-active
- Design/engineering focus
- Borrows concepts from the software and safety
- engineering communities
- Intrusion detection is re-active
- Build mechanisms to prevent and detect
35Proof-Carrying ArchitecturesArchitecture and
Proofs Refined in Parallel
m (
a
)
m (m (
a
))
a
1
1
2
m (m (
C
))
m (
C
)
C
1
2
1
- Link abstract architecture descriptions to simple
proofs of desired properties (e.g., security) - Apply architecture transformations to proofs as
well as architecture descriptions - Check that result is a gappy-but-essentially-corre
ct proof
36Objectives
Question Are intrusion tolerance properties the
same for every architecture?
- Define intrusion tolerance levels (ITLs)
- Risk based approach
- Balanced protection
37Objectives (Cont.)
Question How can we build intrusion tolerant
architectures?
- Create and evolve intrusion tolerant, software
architecture hierarchies - Start from architectural IT properties
- Define appropriate architectural styles involving
IT mechanisms for the target architecture - Develop refinement patterns
- Develop intrusion tolerance preserving
transformations
38Objectives (Cont.)
Question How can we transition these ideas to
real systems?
- Apply to GENOA
- Evaluate impact of intrusion tolerance
requirements - Introduce intrusion tolerance dimension to the
security architecture framework - Propose intrusion tolerance techniques
- Propose intrusion tolerance design processes
Concepts developed with reference to a specific
system
39Design for Security Assurance
Numerous potential vulnerabilities
40Design for Security Assurance
Avoidance
Avoid introducing vulnerabilities (good system
and s/w engineering, security engineering, SEI/CMM
, SSE-CMM, formal methods etc)
Numerous potential vulnerabilities
41Design for Security Assurance
Avoidance
Avoid introducing vulnerabilities (good system
and s/w engineering, security engineering, SEI/CMM
, SSE-CMM, formal methods)
Numerous potential vulnerabilities
Remove known vulnerabilities (Test, analysis, VV)
42Design for Security Assurance
Avoidance
Removal
Prevention
Avoid introducing vulnerabilities (good system
and s/w engineering, security engineering, SEI/CMM
, SSE-CMM, formal methods)
Numerous potential vulnerabilities
Remove known vulnerabilities (Test, analysis, VV)