Applying Formal Methods to a Certifiably Secure Software System

Abstract

A major problem in verifying the security of code is that the code's large size makes it much too costly to verify in its entirety. This paper describes a novel and practical approach to verifying the security of code which substantially reduces the cost of verification. In this approach, a compact security model containing only information needed to reason about the security properties of interest is constructed and the security properties are represented formally in terms of the model. To reduce the cost of verification, the code to be verified is partitioned into three categories and only the first category, which is less than 10 percent of the code in our application, requires formal verification. The proof of the other two categories is relatively trivial. Our approach was developed to support a Common Criteria evaluation of the separation kernel of an embedded software system. This paper describes 1) our techniques and theory for verifying the kernel code and 2) the artifacts produced, that is, a Top-Level Specification (TLS), a formal statement of the security property, a mechanized proof that the TLS satisfies the property, the partitioning of the code, and a demonstration that the code conforms to the TLS. This paper also presents the formal basis for the argument that the kernel code conforms to the TLS and consequently satisfies the security property.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Feb 01, 2008
Accession Number
ADA480033

Entities

People

  • Constance L. Heitmeyer
  • Elizabeth I. Leonard
  • John D. Mclean
  • Myla M. Archer

Organizations

  • United States Naval Research Laboratory

Tags

Communities of Interest

  • Materials and Manufacturing Processes

DTIC Thesaurus Topics

  • Artifacts
  • Automata
  • Computer Access Control
  • Computer Programming
  • Computer Programs
  • Computers
  • Data Processing
  • Demonstrations
  • Electronic Mail
  • Information Systems
  • Language
  • Natural Languages
  • Security
  • Software Development
  • Specifications
  • Test And Evaluation
  • Verification

Fields of Study

  • Computer science
  • Mathematics

Readers

  • Computer Science.
  • Cybersecurity.
  • Theoretical Analysis.