• Corpus ID: 237593003

Security-Hardening Software Libraries with Ada and SPARK - A TCP Stack Use Case

  title={Security-Hardening Software Libraries with Ada and SPARK - A TCP Stack Use Case},
  author={Kyriakos Georgiou and Guillaume Cluzel and Paul Butcher and Yannick Moy},
The work is part of a series of white papers to demonstrate how the SPARK technology, a subset of the Ada programming language supported by formal verification tools, can be applied for the securityhardening of Software libraries. The first white paper of this series, [8], introduced the SPARK technology through the conversion of a C benchmark suite to SPARK. The work demonstrated how the use of the SPARK technology could guarantee the absence of runtime errors without significantly impacting… 

Figures and Tables from this paper



RecordFlux: Formal Message Specification and Generation of Verifiable Binary Parsers

A model and a corresponding domain-specific language to formally specify message formats of existing real-world binary protocols and a technique to derive verifiable parsers based on the model, generate efficient code for their implementation, and automatically prove the absence of runtime errors is presented.

Symbolic Execution and Quantitative Reasoning: Applications to Software Safety and Security

  • C. Pasareanu
  • Computer Science
    Symbolic Execution and Quantitative Reasoning
  • 2020
Abstract This book reviews recent advances in symbolic execution and its probabilistic variant and discusses how they can be used to ensure the safety and security of software systems. Symbolic exe...

Model(Sock) = (Model(Sock)'Old with delta S_State => TCP_STATE_CLOSED

    S_Reset_Flag => True) or else (if Sock.S_State'Old = TCP_STATE_CLOSE_WAIT then

      Old or else elsif Sock.S_State'Old = TCP_STATE_ESTABLISHED then Model(Sock) = Model(Sock)'Old or else Model(Sock) = (Model(Sock)'Old with delta

      • S_State => TCP_STATE_CLOSE_WAIT))))

      Security-Hardening Software Libraries with Ada and SPARK