Applying formal methods to a certifiably secure software system

被引:48
|
作者
Heitmeyer, Constance L. [1 ]
Archer, Myla M. [1 ]
Leonard, Elizabeth I. [1 ]
McLean, John D. [1 ]
机构
[1] USN, Res Lab, Div Informat Technol, Washington, DC 20375 USA
关键词
security; verification; specification; security kernels; tools; formal methods; software; software verification;
D O I
10.1109/TSE.2007.70772
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
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.
引用
收藏
页码:82 / 98
页数:17
相关论文
共 50 条
  • [1] A survey: Applying formal methods to a software intensive system
    de Groot, A
    Hooman, J
    Kordon, F
    Paviot-Adet, E
    Mounier, I
    Lemoine, M
    Gaudiere, G
    Winter, VL
    Kapur, D
    [J]. SIXTH IEEE INTERNATIONAL SYMPOSIUM ON HIGH ASSURANCE SYSTEMS ENGINEERING, 2001, : 55 - 64
  • [2] Applying formal methods to software reuse
    Houhamdi, Z
    [J]. 1st International Industrial Simulation Conference 2003, 2003, : 62 - 67
  • [3] CERTIFIABLY SECURE IoT
    Pesce, Mark
    [J]. IEEE SPECTRUM, 2020, 57 (10) : 19 - 19
  • [4] APPLYING FORMAL SOFTWARE SYNTHESIS
    JULLIG, RK
    [J]. IEEE SOFTWARE, 1993, 10 (03) : 11 - 22
  • [5] Formal Methods for Robotic System Control Software
    Kouskoulas, Yanni
    Platzer, Andre
    Kazanzides, Peter
    [J]. JOHNS HOPKINS APL TECHNICAL DIGEST, 2013, 32 (02): : 490 - 498
  • [6] Applying Formal Methods to Design of Migrator Component of Data Masking Software
    Kulkarni, Aniket
    [J]. ISEC'18: PROCEEDINGS OF THE 11TH INNOVATIONS IN SOFTWARE ENGINEERING CONFERENCE, 2018,
  • [7] Formal methods for robotic system control software
    Kouskoulas, Yanni
    Platzer, André
    Kazanzides, Peter
    [J]. Johns Hopkins APL Technical Digest (Applied Physics Laboratory), 2013, 32 (02): : 490 - 498
  • [8] Formal methods software engineering for the CARA system
    Martin J.C.
    [J]. International Journal on Software Tools for Technology Transfer, 2004, 5 (4) : 301 - 307
  • [9] Software (Formal methods)
    [J]. NZ Eng, 5 (18):
  • [10] Applying Formal Methods in the Large
    Bolignano, Dominique
    [J]. INTERACTIVE THEOREM PROVING, ITP 2013, 2013, 7998 : 1 - 1