摘要
内核中的引用计数缺陷会引起内存泄露、释放后使用漏洞等严重安全问题.针对这类缺陷,提出基于错误路径行为一致性分析的缺陷检测方案.相比已有工作,该方案引入错误路径的语义信息来推断合理的引用计数行为,从而检出以往难以覆盖的引用计数缺陷.具体而言,首先,该方案基于代码特征识别函数中所有的错误路径.其次,采用路径敏感的静态分析对各条错误路径上的引用计数行为进行分析汇总,以推断该函数在错误路径上引用计数操作的主流倾向.最终,基于一致性分析原理,将与主流倾向不一致的路径标识为潜在缺陷.实验表明,该方案在Linux内核版本 5.6-rc2和版本 5.17上分别发现 21个和9个引用计数缺陷,且大部分都被开发者确认;其中,在内核版本5.6-rc2上有9个缺陷是已有工作无法覆盖的.
基金项目
国家自然科学基金(U1836210)
国家自然科学基金(62172105)
上海市青年科技启明星计划(21QA1400700)
上海市基础研究特区计划(21TQ1400100:21TQ012)