Publication | Closed Access
Applying Formal Methods to a Certifiably Secure Software System
82
Citations
36
References
2008
Year
EngineeringInformation SecurityVerificationComputer-aided VerificationSoftware AnalysisFormal VerificationHardware SecurityFormal TechniqueSeparation KernelRuntime VerificationComputer EngineeringKernel CodeSecure By DesignComputer ScienceData SecurityCryptographySoftware VerificationSoftware SecurityProgram AnalysisFormal MethodsSystem SoftwareSecurity PropertyIntegrity Verification
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 article describes a novel and practical approach to verifying the security of code which substantially reduces the cost of verification. In this approach, the security property of interest is represented formally and a compact security model, containing only information needed to reason about the policy, is constructed. To reduce the cost of verification, the code to be verified is partitioned into three categories: Only the first category, less than 10% of the code, requires requires substantial effort to verify; 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 article describes 1) our techniques and theory for verifying the kernel code and 2) the artifacts produced: 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. The article also presents the formal argument that the kernel code conforms to the TLS and consequently satisfies the security property.
| Year | Citations | |
|---|---|---|
Page 1
Page 1