github 污点分析工具
二进制
16年,TaintAll,IDA插件:https://github.com/onura/TaintAll
源码
2016年,https://github.com/tobuer/StaticTaintAnalysis,面向软件安全的污点数据检测系统
分析node.js的https://github.com/nuprl/augur
BAP和angr的比较
论文:Using Binary Analysis Frameworks: The Case for BAP and angr
Venue: NASA Formal Methods 2019
简介:二进制分析框架是分析软件和评估其安全性的关键工具。非专业人士使用这些工具容易吗?本文比较了两个流行的开源二进制分析库:BAP和angr,这两个库是DARPA网络大挑战赛前三名中的两个团队使用的。我们描述了一些实验来评估这两个工具的功能。我们已经为每个工具实现了一个值集分析和调用图比较算法,并报告了它们的性能、可用性和实际应用程序的可扩展性。
基于BAP框架
16年,基于BAP的工具https://github.com/TJAndHisStudents/TaintFlowAnalysis
20年,基于BAP的工具 https://github.com/0xchase/r2taint
什么是BAP?
卡内基梅隆大学二进制分析平台(CMU BAP)是一套实用程序和库,用于分析机器代码表示中的程序。BAP支持x86,x86-64,ARM,MIPS,PowerPC和新的架构可以作为插件添加。
BAP的中间语言是BIL。
论文:https://link.springer.com/content/pdf/10.1007/978-3-642-22110-1_37.pdf
相关论文
2018,NDSS,Saluki: Finding Taint-style Vulnerabilities with Static Property Checking,使用静态属性检查查找污点风格的漏洞
一个基于BAP框架开发的专利:https://patentimages.storage.googleapis.com/90/d7/fd/38ba68e32ef479/CN105678169A.pdf
基于angr
Karonte
SaTC,路径选择部分是基于Ghidra库实现的
21 sec会议 基于污点类型推断的,未开源
论文:Automatic Inference of Taint Sources to Discover Vulnerabilities in SOHO Router Firmware
Venue:CCF C
19 EmTaint
Venue:未公开 arXiv
基于Ghidra
腾讯科恩实验室 BinAbsInspector
Ref: 腾讯科恩实验室官方博客
BinAbsInspector的设计思想来源于上世纪70年代诞生的经典程序分析理论“抽象解释”,在具体实现上,BinAbsInspector的分析基于Ghidra所提供的中间表示Pcode上。通过设计合适的抽象域,实现其上的多种运算,完成相关Pcode的操作语义,执行流敏感(flow-sensitive)和上下文敏感(context-sensitive)的过程间分析,同时加入静态污点分析的能力,完成对程序运行时状态的抽象估计。基于上述分析所得的抽象数据流信息对多种漏洞建模,最终实现对二进制漏洞的静态扫描。
对于程序的抽象方法,我们主要参考了经典论文[《WYSINWYX: What you see is not what you eXecute》8] 中的做法并加以改良、简化和提升。