We present the first compositional, incremental static analysis for detecting memory-safety and information leakage vulnerabilities in C-like programs. To do so, we develop the first under-approximate relational program logics, including Insecurity Separation Logic (InsecSL). We show how InsecSL can be automated via back-propagating symbolic execution (BPSE) to build a bottom-up, inter-procedural and incremental analysis for detecting vulnerabilities. We prove our approach sound in Isabelle/HOL and implement it in a proof-of-concept tool, Underflow, for analysing C programs, which we apply to various case studies.
翻译:我们提出了在类似C类方案中检测记忆安全和信息渗漏脆弱性的第一个构成、渐进的静态分析。为此,我们开发了第一个近距离关系程序逻辑,包括不安全分离逻辑(InsecSL ) 。我们展示了InsecSL如何通过反反向再分析象征性执行(BPSE)实现自动化,以建立自下而上、跨程序和递增分析来检测脆弱性。我们在Isabelle/HOL中证明了我们的方法合理,并在一个概念验证工具“潜流”中加以实施,用于分析C程序,我们将其应用于各种案例研究。