A Points-to-Sensitive Model Checker for C Programs in IoT Firmware

Yinbo Yu, Jiajia Liu, Dejun Mu

Research output: Contribution to journalArticlepeer-review

2 Scopus citations

Abstract

The Internet of Things (IoT) provides convenience for our daily lives via a huge number of devices. However, due to low-resource and poor computing capability, these devices have a high number of firmware vulnerabilities. Software verification is a powerful solution to ensure the correctness and security of IoT firmware programs. Unfortunately, due to the complex semantics and syntax of program languages (typically C), applying software verification in IoT firmware faces the tradeoff between efficiency and accuracy. One of the fundamental reasons is that verification methods cannot support verifying state transitions on the memory space caused by pointer operations well. To this end, by combining sparse value flow (SVF) analysis into model checking and optimizing computational redundancy among them, we design a novel points-to-sensitive model checker, called PCHECKER, which can provide a highly precise and efficient verification for IoT firmware programs. We first design a spatial flow model to effectively describe state behaviors of a C program both on the symbolic and memory space. We then propose a counterexample-guided model checking algorithm that can dynamically refine abstract precisions and update nondeterministic points-to relations. With a set of C benchmarks containing a variety of pointer operations and other complex C features, our experiments have shown that compared with state of the art (SOTA), PCHECKER can achieve outstanding results in the verification tasks of C programs that its verification accuracy is 95.9%, and its average verification time of each line of code is 1.27 ms, which are both better than existing model checkers.

Original languageEnglish
Pages (from-to)18998-19011
Number of pages14
JournalIEEE Internet of Things Journal
Volume9
Issue number19
DOIs
StatePublished - 1 Oct 2022

Keywords

  • Model checking
  • pointer analysis
  • software verification
  • spare value flow analysis

Fingerprint

Dive into the research topics of 'A Points-to-Sensitive Model Checker for C Programs in IoT Firmware'. Together they form a unique fingerprint.

Cite this