Exploiting the SAT Revolution for Automated Software Verification: Report from an Industrial Case Study

L. Cordeiro
{"title":"Exploiting the SAT Revolution for Automated Software Verification: Report from an Industrial Case Study","authors":"L. Cordeiro","doi":"10.5753/ladc.2021.18531","DOIUrl":null,"url":null,"abstract":"In the last three decades, Boolean Satisfiability (SAT) solvers experienced a dramatic performance revolution; they are now used as the backend of various industrial verification engines. SAT solvers can now check logical formulas that contain millions of propositional variables. In Satisfiability Modulo Theories (SMT) solvers, predicates from various theories are not encoded using propositional variables as in SAT but remain in the problem formulation. Thus, SMT solvers can be used as backends for solving the generated verification conditions to cope with increasing software complexity from industrial applications. This talk will overview automated software verification techniques that rely on sophisticated SMT solvers built over efficient SAT solvers. I will discuss challenges, problems, and recent advances to ensure safety and security in open-source and embedded software applications. I will describe novel algorithms that exploit fuzzing, explicit-state, and SMT-based symbolic model checking for verifying single- and multi-threaded software. These algorithms were the first to verify multi-threaded C/Posix software based on shared-memory synchronization and communication symbolically. They are implemented in industrial-strength software verification tools, now considered state-of-the-art in the software testing and verification community, receiving 28 medals at SV-COMP and Test-COMP. This achievement enabled industrial research collaborations with Intel and Nokia. Software engineers applied these tools to find real security vulnerabilities in large-scale software systems (e.g., memory safety in firmware for Intel and arithmetic overflow in telecommunication software for Nokia, neither of which had been found before).","PeriodicalId":404669,"journal":{"name":"Latin-American Symposium on Dependable Computing","volume":"54 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2021-11-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"1","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Latin-American Symposium on Dependable Computing","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.5753/ladc.2021.18531","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 1

Abstract

In the last three decades, Boolean Satisfiability (SAT) solvers experienced a dramatic performance revolution; they are now used as the backend of various industrial verification engines. SAT solvers can now check logical formulas that contain millions of propositional variables. In Satisfiability Modulo Theories (SMT) solvers, predicates from various theories are not encoded using propositional variables as in SAT but remain in the problem formulation. Thus, SMT solvers can be used as backends for solving the generated verification conditions to cope with increasing software complexity from industrial applications. This talk will overview automated software verification techniques that rely on sophisticated SMT solvers built over efficient SAT solvers. I will discuss challenges, problems, and recent advances to ensure safety and security in open-source and embedded software applications. I will describe novel algorithms that exploit fuzzing, explicit-state, and SMT-based symbolic model checking for verifying single- and multi-threaded software. These algorithms were the first to verify multi-threaded C/Posix software based on shared-memory synchronization and communication symbolically. They are implemented in industrial-strength software verification tools, now considered state-of-the-art in the software testing and verification community, receiving 28 medals at SV-COMP and Test-COMP. This achievement enabled industrial research collaborations with Intel and Nokia. Software engineers applied these tools to find real security vulnerabilities in large-scale software systems (e.g., memory safety in firmware for Intel and arithmetic overflow in telecommunication software for Nokia, neither of which had been found before).
利用自动化软件验证的SAT革命:来自一个工业案例研究的报告
在过去的三十年里,布尔可满足性(SAT)求解器经历了一场戏剧性的性能革命;他们现在使用的后端各种工业验证引擎。SAT解算器现在可以检查包含数百万命题变量的逻辑公式。在可满足模理论(SMT)解算器中,来自各种理论的谓词不像在SAT中那样使用命题变量进行编码,而是保留在问题表述中。因此,SMT求解器可以用作解决生成的验证条件的后端,以应对工业应用中不断增加的软件复杂性。本次演讲将概述自动化软件验证技术,该技术依赖于基于高效SAT求解器构建的复杂SMT求解器。我将讨论挑战、问题和最近的进展,以确保开源和嵌入式软件应用程序的安全性。我将描述利用模糊、显式状态和基于smt的符号模型检查来验证单线程和多线程软件的新算法。这些算法首次象征性地验证了基于共享内存同步和通信的多线程C/Posix软件。它们在工业强度的软件验证工具中实现,现在被认为是软件测试和验证社区的最先进的工具,在SV-COMP和Test-COMP中获得了28个奖章。这一成就促成了与英特尔和诺基亚的工业研究合作。软件工程师利用这些工具在大型软件系统中发现真正的安全漏洞(例如,英特尔固件中的内存安全性和诺基亚电信软件中的算术溢出,这两个问题之前都没有发现过)。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信