Secure System Design

Secure-System Design
Designing systems with security in mind is not a simple task. When
“security” becomes a requirement of a system’s specification then there are
many nuances of the design process that contribute to achieving that goal.
© 2007
atsec information security
Hadrian’s wall in Northern England
Fiona Pattinson
8th ICCC: Secure-System Design
1
Secure-System Design (SSD)
© 2007
atsec information security
• Definition of a “system”
– “System design is the process or art of
defining the hardware and software
architecture, components, modules,
interfaces, and data for a computer system to
satisfy specified requirements.”
• Design: not Development.
– One part of the Systems Development
Lifecycle (SDLC)
• Design: not Security Requirements
8th ICCC: Secure-System Design
2
© 2007
atsec information security
Some examples of
System and software
development models
8th ICCC: Secure-System Design
3
Maturity of security design
discipline
• Baskerville in 1993 describes
– First generation: with predefined generic checklists
and standards
© 2007
atsec information security
• E.g. BS7799-1, NIST (http://checklists.nist.gov/), DISA
(http://iase.disa.mil/stigs/checklist/)
– Second generation (mechanistic): From predefined
and generic solutions to customized systems
• E.g. ISO/IEC 27001, UMLsec, security spiral, RUP security,
CRAMM
– Third generation (Logical, transformational):
painlessly adaptable security methods
• Security patterns?
8th ICCC: Secure-System Design
4
Frameworks
Providing structure to design
• Some Frameworks for system/software
development even consider secure-system
design
© 2007
atsec information security
– Common Criteria
• Focuses on requirements and security problem definition.
Verifies design
– ISO/IEC 21827 (SSE-CMM®)
• Focuses on security engineering as a defined, mature, and
measurable discipline. Focus is on process improvement
– Security patterns
• Focus on security (Blakely, B., Heath, C. & al, e. 2004,
Security Design Patterns, The Open Group.)
8th ICCC: Secure-System Design
5
Frameworks
Providing structure to design
• Some frameworks don’t consider secure-system
design
© 2007
atsec information security
– Examples of (many) others with little focus on security
• ISO/IEC 12207.0-96 Software Lifecycle processes
• Software design has two activities: Software architectural
design, Software detailed design. No focus on security
• SWEBOK (Software Engineering Body of Knowledge):
Chapter on software design but doesn’t cover design for
security very well
• SEI CMMi – Process Improvement: Little focus on technology
• ISO/IEC 90003
• Rational Unified Process (Has some proprietary security
plugins/enhancements)
8th ICCC: Secure-System Design
6
Specifications & Standards
• Specifications: often embed “best
practices” for security design
• Technical Standards: technical building
blocks
– Crypto Primitives
– Protocol definitions
© 2007
atsec information security
– FIPS 140-2: Cryptographic Modules
8th ICCC: Secure-System Design
7
Legislation/Regulation
© 2007
atsec information security
• Can influence or even specify Design /
Requirements
• Examples
– FIPS Approved algorithms
– CC Scheme policies (e.g. Audit requirement
from NIAP)
– Federal Information Security Act / Data
Protection Directive / Electronic Signature
generation
8th ICCC: Secure-System Design
8
Levels of Abstraction
technique)
– Security-Design Guidelines
– Security-Design Principles
– Security-Design Families & Classes
– Security Primitives
© 2007
atsec information security
• Stepwise Refinement (a software engineering
8th ICCC: Secure-System Design
9
Security-Guidelines
•
Assume that Human Behavior Will Introduce
Vulnerabilities into Your System
Assume that Technology Will Contain Vulnerabilities
•
–
–
© 2007
atsec information security
–
–
–
–
–
Follow the Rules Regarding Concurrency Management
Design Configuration Subsystems Correctly and Distribute
Safe Default Configurations
Carefully Study Other Systems Before Incorporating Them into
Your System Through Delegation
If Emulation of Another System Is Necessary, Ensure that It Is
as Correct and Complete as Possible
Handle All Errors Safely
Use All Security Mechanisms Correctly
Do Not Allow Your System to Ever Use or Depend on
Language Behaviors that Are "Undefined"
8th ICCC: Secure-System Design
10
Security-Design Principles
© 2007
atsec information security
• Design principles
–
–
–
–
–
–
–
–
–
–
–
–
Securing the Weakest Link
Defense in Depth
Failing Securely
Least Privilege
Separation of Privilege
Economy of Mechanism
Least Common Mechanism
Reluctance to Trust
Never Assuming that your Secrets are Safe
Complete Mediation
Psychological Acceptability
Promoting Privacy
From “Design Principles” by Barnum and Gegick at
https://buildsecurityin.us-cert.gov/daisy/bsi/articles/knowledge/principles/358.html?branch=1&language=1
8th ICCC: Secure-System Design
11
Security-Design Techniques
© 2007
atsec information security
• Techniques
–
–
–
–
–
Threat Modeling
Risk Assessment
Evaluation Criteria
Secure Coding
Vulnerability
Assessment
– Formal Methods
– Cryptographic
Techniques
– Access Control
• MAC / DAC
– Multilevel Security
• Bell LaPadula
• Biba
– Trusted System
– Secure Operating
System
– Secure Protocol
– Static Code Analysis
– Reverse Engineering
8th ICCC: Secure-System Design
12
Security Function Classes and
examples of families
© 2007
atsec information security
• Security Audit
– Security audit automatic
response
– Security audit generation
– Security audit analysis
– Security audit review
– Security audit event
selection
– Security audit event
storage
• Communication
• Cryptographic Support
• User data protection
• Identification and
authentication
• Security Management
• Privacy
• Protection of the TSF
• Resource utilsation
• TOE Access
• Trusted Path/Channels
From Common Criteria: Part 2
8th ICCC: Secure-System Design
13
•
•
•
•
•
•
Encryption
Key exchange
Hash functions
HMAC functions
Digital signatures
Certificates and CAs
© 2007
atsec information security
Security Primitives
8th ICCC: Secure-System Design
14
Security Patterns
• A security pattern is a well-understood solution to a recurring
information security problem.
• A security pattern encapsulates security expertise in the form of
worked solutions to these recurring problems, presenting issues and
trade-offs in the usage of the pattern.
• There has been a lot of work completed on this topic. The use of
patterns seems to be particularly successful in the security domain.
• Many published security pattern catalogues cite the Common
Criteria as a source
• In Security Design Patterns by Bob Blakley, Craig Heath, and
members of The Open Group Security Forum specify a design
methodology using patterns
© 2007
atsec information security
– Procedural Patterns
– Structural Patterns
8th ICCC: Secure-System Design
15
Examples of patterns
© 2007
atsec information security
Structural patterns
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Account Lockout
Authenticated Session
Client Data Storage
Client Input Filters
Directed Session (mini-pattern)
Hidden Implementation (mini-pattern)
Encrypted Storage
Minefield
Network Address Blacklist
Partitioned Application
Password Authentication
Password Propagation
Secure Assertion
Server Sandbox
Trusted Proxy
Validated Transaction (mini-pattern)
Procedural patterns
•
•
•
•
•
•
•
•
•
•
•
•
•
Build the Server from the Ground Up
Choose the right stuff
Document the Security Goals
Document the Server Configuration
Enroll by Validating Out of Band
Enroll using Third-party Validation
Enroll with a Pre-existing Shared
Secret
Enroll without Validating
Log for Audit
Patch Pro-actively
Red team the design
Share responsibility for Security
Test on a Staging Server
From the Security Patterns Repository V1.0
At http://www.scrypt.net/~celer/securitypatterns/
8th ICCC: Secure-System Design
16
®
© 2007
atsec information security
SSE-CMM - ISO/IEC 21827:2007
• SSE-CMM® = System Security Engineering Capability
Maturity Model
• Does not specify a specific design process
• Aims to improve the design process used by an
organization
• The scope encompasses system engineering activities
including design
• Is applicable to organizations of all sizes
• PA9 – “Provide Security Input” and PA10 – “Specify
Security Needs” covers requirements capture and high
level design processes. Secure-system design is not
identified as a separate process area.
8th ICCC: Secure-System Design
17
SSD and Common Criteria
© 2007
atsec information security
• CC does not intend to specify a secure-design
methodology, tools, techniques etc.
• Some design principles are embedded in CC
– asset protection: A risk analysis paradigm
– Implies that Security functionality is separated from
other functionality by design
– Recognises the operational environment as a key
factor in security assurance
– Demands documentation of design and proof of
correspondence to implementation level
– Concept that formal definition gives more assurance
8th ICCC: Secure-System Design
18
Design Verification & Validation
© 2007
atsec information security
• To provide assurance a design should be
verifiable.
• There is a well known technique for that…
8th ICCC: Secure-System Design
19
© 2007
atsec information security
Conclusion
• The topic of secure-system design is evolving
quickly
• Specifying security requirements seems to be
reasonably well understood
• The design process & methodologies are poorly
defined and cohesion of security design with
software and system design is poorly defined
• Common Criteria provides a mature verification
and validation methodology
8th ICCC: Secure-System Design
20
Thank You
atsec Information Security Corporation
Austin, Texas, USA
Phone: +1 512 615 7382
Email: [email protected]
www.atsec.com
© 2007
atsec information security
Fiona Pattinson
8th ICCC: Secure-System Design
21
References and Bibliography
•
•
•
•
© 2007
atsec information security
•
•
•
•
•
•
•
•
•
ISO/IEC 21827:2007 "Information technology -- Systems Security Engineering -- Capability
Maturity Model (SSE-CMM®)" JTC1/SC27
Berg, C. J. 2006, High-Assurance Design: architecting secure and reliable enterprise applications,
Pearson Education Inc. ISBN 0-321-37577-7
Siponen. 2006, 'Secure-System Design Methods: Evolution and Future Directions', IT
Professional, vol. 8, no. 3, pp. 40-44.
CCMB-2006-09-01 "Common Criteria for Information Technology Security Evaluation Version 3.1:
Part 1: Introduction and general model" The Common Criteria Management Board,
Howard, M. & Lipner, S. 2006, The Security Development Lifecycle, Microsoft Press.
Blakely, B., Heath, C. & al, e. 2004, Security Design Patterns, The Open Group.
Ravi, S., Raghunathan, A., Kocher, P. & Hattangady, S. 2004, 'Security in embedded systems:
Design challenges', Trans. on Embedded Computing Sys., vol. 3, no. 3, pp. 461-491.
Siponen, M. 2002, 'Towards maturity of information security maturity criteria: Six lessons learned
from software maturity criteria', Information Management, vol. 10, no. 5, pp. 210-224.
Premkumar T. Devanbu, S. S. 2000, 'Software engineering for security - a roadmap', in ICSE,
ACM Press, Limerick, Ireland, pp. 227-239.
Baskerville, R. 1993, 'Information systems security design methods: implications for information
systems development', ACM Comput. Surv., vol. 25, no. 4, pp. 375-414.
Rushby, J. M. 1981, 'Design and verification of secure systems', in SOSP '81: Proceedings of the
eighth ACM symposium on Operating systems principles, ACM Press, pp. 12-21.
Alexander, C., Ishikawa, S. & Silverstein, M. 1977, A Pattern Language: Towns, Buildings,
Construction, Oxford University Press.
Saltzer, J. H. & Schroeder, M. D. 1975, 'The Protection of Information in Computer Systems'
8th ICCC: Secure-System Design
22