Homepage
About SEG
SEG News
SEG Seminar
Research
Tools
Internal Site
People
Publication
Curriculum
Album
Hot Link
Contact SEG
C/C++代码缺陷检测工具DetectMe参加NASAC2020原型工具竞赛并获佳绩

20201119日至1122日,第十九届全国软件与应用学术会议(NASAC2020)在重庆举行,SEG团队开发的静态分析检测工具DetectMe在该竞赛的代码缺陷检测竞赛中表现优异,获得了二等奖。

   

该工作参与同学包括本科生陈昊东、硕士生徐雯楚、博士生张弛,该工作的指导老师是王林章教授。

   

NASAC原型工具竞赛中代码缺陷检测竞赛是针对C/C++语言编写的软件系统中的程序缺陷问题开展自动化检测工具的评比,依据基准测试集实测结果和答辩汇报情况进行评分。本次竞赛针对12C/C++程序中的代码缺陷进行检测,有指针的偏移越界、除模零错、死循环、空指针解引用等。

   

该团队开发的DetectMe是一个可配置的和高可扩展的通用静态分析工具,可以检测竞赛命题中的8种类型缺陷,与商用工具fortify相比具有较高的分析速度和查全率。

   

DetectMe工具是基于MissingCheck的思想。核心思想认为有一类缺陷产生的原因是使用某个值之前缺少对这个值的合法性检查,又或者是对这个值应用了特定的运算,基于此对该类缺陷提供一般检测方法。以LLVM/Clang为底层支撑框架,使用Clang生成源码的AST文件作为分析及检测部分的输入。DetectMe的实现中修改了ClangCFG生成模块,针对分析添加了部分功能,然后基于CFG实现了一套分析框架。分析框架的中心思想是从变量使用点开始,反向遍历所有路径,查找需要检测的值所对应的特定操作是否存在。