/StaticTaintAnalysis

面向软件安全的污点数据检测系统

Primary LanguageC++

StaticTaintAnalysis

面向软件安全的污点数据检测系统

许多重要软件,如系统软件(如操作系统、编译器)、支撑软件(如开发环境、数据库管理工具、中间件)、应用软件(如文字处理软件、面向领域的应用软件、嵌入式软件),很大部分是用C/C++语言实现的,C/C++语言为了提高效率,为程序员提供了多种机制和API(应用程序接口),当C/C++程序使用外部数据来源,包括文件、网络、环境变量、命令行参数,通过任务的入口函数入参、任意API函数返回值、任意API函数的出参等途径形成污染源,程序中使用这些来自污染源的数据时,需要程序员做出关键决定,如输入合法性检查。程序员的失误或能导致程序的关键部分存在缺陷,在互联网运行场景下,这样的缺陷成为安全漏洞,容易为黑客利用并攻击。

本项目的目标是,针对任意C/C++程序,通过静态分析,能够自动检查、识别出工程中的污染源、污点数据,并对使用污点数据作为输入的函数形成污染池,检查程序是否已对这些输入的合法性进行长度、范围的检查。