high confidence software and systems hcmdss workshop brad martin june 2, 2005
TRANSCRIPT
High Confidence Software and SystemsHigh Confidence Software and Systems
HCMDSS WorkshopHCMDSS Workshop
Brad Martin
June 2, 2005
The UniverseThe Universe
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
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.
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.
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
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
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
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
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
Backup SlidesBackup Slides
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
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?)
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