15
High Confidence Software and High Confidence Software and Systems Systems HCMDSS Workshop HCMDSS Workshop Brad Martin June 2, 2005

High Confidence Software and Systems HCMDSS Workshop Brad Martin June 2, 2005

Embed Size (px)

Citation preview

Page 1: High Confidence Software and Systems HCMDSS Workshop Brad Martin June 2, 2005

High Confidence Software and SystemsHigh Confidence Software and Systems

HCMDSS WorkshopHCMDSS Workshop

Brad Martin

June 2, 2005

Page 2: High Confidence Software and Systems HCMDSS Workshop Brad Martin June 2, 2005

The UniverseThe Universe

Page 3: High Confidence Software and Systems HCMDSS Workshop Brad Martin June 2, 2005

Universal HCSS Universal HCSS Research GoalsResearch Goals

Provide a sound scientific and technological basis for assured construction of safe, secure systems

Develop software and system engineering tool capabilities to achieve application-based, problem domain-based, and risk-based assurance, and broadly embed these capabilities within the system engineering process

Reduce the effort, time, and cost of assurance and quality certification processes

Provide a technology base of advanced-prototype implementations of high-confidence technologies to enable rapid adoption

Page 4: High Confidence Software and Systems HCMDSS Workshop Brad Martin June 2, 2005

HCSS Research GoalsHCSS Research GoalsProvide a sound scientific and technological basis for assured construction of safe, secure system

Strategy: Develop supporting theory and scientific base for HCSS

Components: Theory, Specification, Interoperable Reasoning, Composition and Decomposition, etc.

Page 5: High Confidence Software and Systems HCMDSS Workshop Brad Martin June 2, 2005

HCSS Research GoalsHCSS Research GoalsDevelop software and system engineering tool capabilities to achieve application-based, problem domain-based, and risk-based assurance, and broadly embed these capabilities within the system engineering process

Strategy: Develop tools, technologies, and libraries to design and build large-scale systems

Components: Programming Languages, Tools, and Environments, Modeling and Simulation, HCSS Building Blocks, Monitoring, Detection, and Response, Evidence and Metrics, Process, etc.

Page 6: High Confidence Software and Systems HCMDSS Workshop Brad Martin June 2, 2005

HCSS Research GoalsHCSS Research GoalsReduce the effort, time, and cost of assurance and quality certification processes

Strategy: Deployment of HCSS engineering technology

Components: Engineering and Experimentation

Page 7: High Confidence Software and Systems HCMDSS Workshop Brad Martin June 2, 2005

HCSS Research GoalsHCSS Research GoalsProvide a technology base of advanced-prototype implementations of high-confidence technologies to enable rapid adoption

Strategy: Development of mature reference implementations, proofs-of-concept, tools, libraries, and techniques, conduct experiments

Components: Engineering and Experimentation

Page 8: High Confidence Software and Systems HCMDSS Workshop Brad Martin June 2, 2005

Universal HCSS Universal HCSS Research GoalsResearch Goals

Provide a sound scientific and technological basis for assured construction of safe, secure systems

Develop software and system engineering tool capabilities to achieve application-based, problem domain-based, and risk-based assurance, and broadly embed these capabilities within the system engineering process

Reduce the effort, time, and cost of assurance and quality certification processes

Provide a technology base of advanced-prototype implementations of high-confidence technologies to enable rapid adoption

Page 9: High Confidence Software and Systems HCMDSS Workshop Brad Martin June 2, 2005

NSA HCSS NSA HCSS Research GoalsResearch Goals

Provide a sound scientific and technological basis for assured construction of safe, secure systems

Develop software and system engineering tool capabilities to achieve application-based, problem domain-based, and risk-based assurance, and broadly embed these capabilities within the system engineering process

Reduce the effort, time, and cost of assurance and quality certification processes

Provide a technology base of advanced-prototype implementations of high-confidence technologies to enable rapid adoption

Page 10: High Confidence Software and Systems HCMDSS Workshop Brad Martin June 2, 2005

NSA HCSS FocusNSA HCSS Focus

Advocacy Programming MethodologiesStatic/Dynamic Analysis

Provide a sound scientific and technological basis for assured construction of safe, secure systems

Develop software and system engineering tool capabilities to achieve application-based, problem domain-based, and risk-based assurance, and broadly embed these capabilities within the system engineering process

Reduce the effort, time, and cost of assurance and quality certification processes Provide a technology base of advanced-prototype implementations of high-confidence

technologies to enable rapid adoption

Focused on trusted development in support of domains of interest to NSA’s Information Assurance Directorate (e.g. cryptography, trusted computing, design validation)

CryptographyTrusted Computing

Page 11: High Confidence Software and Systems HCMDSS Workshop Brad Martin June 2, 2005
Page 12: High Confidence Software and Systems HCMDSS Workshop Brad Martin June 2, 2005

Backup SlidesBackup Slides

Page 13: High Confidence Software and Systems HCMDSS Workshop Brad Martin June 2, 2005

Programming Methodology: Programming Methodology: Trusted DevelopmentTrusted Development

Examples: Specware, Alloy, Spec#, B Method, Z Strengths: Specification to guide code development Issues: Interaction between structure and

verification, domain formalization Challenges: Modularity, concurrency, maintaining

model/code correspondence

Theme: Generate correct code from high-level specifications instead of verifying low-level code

Page 14: High Confidence Software and Systems HCMDSS Workshop Brad Martin June 2, 2005

Static and Dynamic Analysis:Static and Dynamic Analysis:Design ValidationDesign Validation

Examples: ESC/Java, BANE, Ccured, Cyclone, Fluid, Polyspace, Prefix, CodeSurfer

Strengths: Buffer overruns, overflows, memory leaks, and race conditions.

Issues: Combining different SA, integrating SA and DA

Challenges: Efficiency, precision, sensitivity

Theme: Commercial tools are going to focus on bug-finding (how do we focus on the bugs that matter?)

Page 15: High Confidence Software and Systems HCMDSS Workshop Brad Martin June 2, 2005

Residents in the UniverseResidents in the Universe Industry Academia Government:

NSF: Cyber Trust, Science of Design, Embedded and Hybrid Systems NASA: Computing, Information, and Communications, Mission Assurance,

Software Assurance Program, Software Engineering Initiative, Highly Dependable Computing Platform Testbed

DARPA: Security-Aware Systems, Self-Regenerative Systems NIST: Software Diagnostics and Conformance Testing Division, Computer Security

Division DHS: Cyber Security AFRL: Software Protection Initiative ARDA: Advanced IC Information Assurance ….. Coming Soon??? - DoD’s Center for Assured Software

Design approaches for the construction of assured software Effectively and efficiently examine code for vulnerabilities Tools and techniques to detect malicious code Metrics and methods to determine quantitatively that assurance is improving