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

09/02/2021
by   Kyriakos Georgiou, et al.
0

This white paper demonstrates how the assurance, reliability, and security of an existing professional-grade, open-source embedded TCP/IP stack implementation written in the C programming language is significantly enhanced by adopting the SPARK technology. A multifaceted approach achieves this. Firstly, the TCP layer's C code is being replaced with formally verified SPARK, a subset of the Ada programming language supported by formal verification tools. Then the lower layers, still written in C and on which the TCP layer depends, are modeled using SPARK contracts and validated using symbolic execution with KLEE. Finally, formal contracts for the upper layers are defined to call the TCP layer. The work allowed the detection and correction of two bugs in the TCP layer. In an increasingly connected world, where Cyber Security is of paramount importance, the powerful approach detailed in this work can be applied to any existing critical C library to harden their reliability and security significantly.

READ FULL TEXT
research
02/23/2019

A Hybrid Formal Verification System in Coq for Ensuring the Reliability and Security of Ethereum-based Service Smart Contracts

This paper reports on the development of a formal symbolic process virtu...
research
05/01/2018

Formal Process Virtual Machine for Smart Contracts Verification

This paper reports on the development and verification of a novel formal...
research
08/26/2018

Optimization of Executable Formal Interpreters developed in Higher-order Theorem Proving Systems

In recent publications, we presented a novel formal symbolic process vir...
research
10/15/2021

Fast and Reliable Formal Verification of Smart Contracts with the Move Prover

The Move Prover (MVP) is a formal verifier for smart contracts written i...
research
07/31/2023

Towards Formal Verification of a TPM Software Stack

The Trusted Platform Module (TPM) is a cryptoprocessor designed to prote...
research
03/17/2016

An Implementation and Analysis of a Kernel Network Stack in Go with the CSP Style

Modern operating system kernels are written in lower-level languages suc...
research
10/03/2021

Fieldable Cross-Layer Optimized Embedded Software Defined Radio is Finally Here!

The concept of cross-layer optimization has been around for several year...

Please sign up or login with your details

Forgot password? Click here to reset