改进的Web注入型脆弱性检测方法
2013-11-30吕庆伟曾庆凯
计算机工程与设计 2013年12期
吕庆伟,曾庆凯
(1.南京大学 计算机软件新技术国家重点实验室,江苏 南京210093;2.南京大学 计算机科学与技术系,江苏 南京210093)
0 引 言
输入验证作为一种常见且有效的安全措施[1],目的在于保证到达安全敏感点的数据的正确性和安全性。很多Web应用程序由于缺少对外来输入数据进行有效安全检查而存在安全缺陷[1]。
Web注入型脆弱性便是因为缺乏对外来输入作安全验证而引发的一类普遍存在且危害巨大的脆弱性。目前关于注入型脆弱性分析的方案大多基于污点分析[1-4]、字符串分析[5,6]等技术实现。污点分析通过标记污染数据、提取从数据输入点到安全敏感点的污染依赖关系来检测脆弱性,但不能分析以控制语句形式出现的验证,可能引入误报和降低分析的准确性。字符串分析经常与污点分析等结合来检测注入型脆弱性,分析字符串操作的过滤能力能增强分析的准确性,依然无法处理以控制语句形式出现的验证。基于系统依赖图的信息流控制分析[7,8]可用于提取这种验证,然而系统依赖图的构造非常复杂,且需要事先收集程序中所有依赖信息,用于注入型脆弱性检测时存在冗余。
针对现有工作的不足,本文使用污染驱动的切片方法,有效提取程序中所有验证操作并生成验证图,随后使用分步的、攻击者视角的字符串分析方法评价验证图中操作的验证能力,根据评价结果自动生成安全补丁和对应的增强型攻击模式。最后实现了原型系统Valer,实验表明本文方法在检测注入型脆弱性时能有效减少分析中的误报。……
登录APP查看全文
