摘要

Web应用程序时刻面临着来自网络空间中诸如SQL注入等代码注入式攻击的安全威胁.大多数针对SQL注入攻击的检测方法执行效率较低,检测精度也不够高,特别是实现方法不易被重用.根据注入型脆弱性特征提出了一种基于AOP(Aspect-Oriented Programming)和动态污点分析的SQL注入行为检测方法,并通过方面(aspect)模块化单元对污点分析过程进行了封装,使得安全这类典型的程序横切关注点从基层子系统中分离,提高了检测代码的可重用性.在污点汇聚点结合通知(advice)机制动态加载各类检测组件实现在运行时执行检测代码,从而应对SQL注入这类典型的针对Web应用程序的代码注入攻击方式.实验表明,该方法能够在不修改应用程序执行引擎及源码的前提下实现自保护过程,有效防御重言式(tautologies)、逻辑错误查询(logically incorrect queries)、联合查询(union query)、堆叠查询(piggy-backed queries)、存储过程(stored procedures)、推理查询(inference query)、编码转换(alternate encodings)等7种典型的SQL注入攻击类型.