Detection of security vulnerabilities in C code using runtime verification: An experience report

Kostyantyn Vorobyov, Nikolai Kosmatov, Julien Signoles

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

Abstract

Despite significant progress made by runtime verification tools in recent years, memory errors remain one of the primary threats to software security. The present work is aimed at providing an objective up-to-date experience study on the capacity of modern online runtime verification tools to automatically detect security flaws in C programs. The reported experiments are performed using three advanced runtime verification tools (E-ACSL, Google Sanitizer and RV-Match) over 700 test cases belonging to SARD-100 test suite of the SAMATE project and Toyota ITC Benchmark, a publicly available benchmarking suite developed at the Toyota InfoTechnology Center. SARD-100 specifically targets security flaws identified by the Common Weakness Enumeration (CWE) taxonomy, while Toyota ITC Benchmark addresses more general memory defects, as well as numerical and concurrency issues. We compare tools based on different approaches – a formal semantic based tool, a formal specification verifier and a memory debugger – and evaluate their cumulative detection capacity. The results of the experiments indicate that the selected tools cumilatively detected 84% of all seeded defects. Although for several categories of errors detection rates are higher, we observed that applying several tools is beneficial for uncovering certain issues. For instance, in detecting concurrency issues of the Toyota ITC Benchmark, the highest per-tool result was 73%, whereas cumulative detection ratio of all three tools used together was 93%.

Original languageEnglish
Title of host publicationTests and Proofs - 12th International Conference, TAP 2018, Held as Part of STAF 2018, Proceedings
EditorsBurkhart Wolff, Catherine Dubois
PublisherSpringer Verlag
Pages139-156
Number of pages18
ISBN (Print)9783319929934
DOIs
Publication statusPublished - 1 Jan 2018
Externally publishedYes
Event12th International Conference on Tests and Proofs, TAP 2018 Held as Part of STAF 2018 - Toulouse, France
Duration: 27 Jun 201829 Jun 2018

Publication series

NameLecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
Volume10889 LNCS
ISSN (Print)0302-9743
ISSN (Electronic)1611-3349

Conference

Conference12th International Conference on Tests and Proofs, TAP 2018 Held as Part of STAF 2018
Country/TerritoryFrance
CityToulouse
Period27/06/1829/06/18

Keywords

  • Dynamic analysis
  • Experience report
  • Memory safety
  • Runtime verification
  • Software security

Fingerprint

Dive into the research topics of 'Detection of security vulnerabilities in C code using runtime verification: An experience report'. Together they form a unique fingerprint.

Cite this