论文部分内容阅读
SQL注入攻击是当前Web应用面临的最为严重的安全威胁之一,其作为一种代码注入式攻击,常常以Web应用的后台数据库为最终攻击目标,利用应用程序对用户输入的验证缺陷,通过构造具有攻击功能的字符串实现攻击者的目的。SQL注入攻击与正常用户请求一样都是利用HTTP协议进行访问,发出的攻击请求与合法请求并无区别,普通防火墙不能对其进行阻断拦截,当SQL注入攻击发生时,网络流量以及用户行为均不会有明显变化,通常具有很强的隐蔽性,因此往往会难以察觉。故而如何有效进行SQL注入攻击的检测及防御是当前Web安全研究中的重点与难点。本文针对SQL注入攻击的检测与防御关键技术进行深入研究,所做的主要工作及创新点如下:1、当前针对SQL注入攻击检测与防御进行的研究,通常依靠一种或简单几种方法结合的方式进行SQL注入攻击的防护,这种方式很容易造成单点失效从而导致防御失效。对于此问题,以任务为驱动,结合SQL注入攻击检测技术、代码层防御以及平台层防御等技术,从不同角度出发,设计面向SQL注入攻击的检测防御整体框架,以应对灵活多变的Web环境中的SQL注入问题,从而弥补现有检测防御技术在面对复杂环境下的SQL注入攻击问题时缺乏有效整体框架而导致的防御不全面的缺点。首先对框架的设计思想进行阐述,然后设计框架结构,并对其组成与功能进行描述,基于所设计的框架给出应用流程,最后对框架的可行性、框架中所涉及的技术及框架特点进行了分析。2、当SQL语句数据集中包含常规词与包含敏感字符的语句数量相等或相近时,基于词频逆文档频率算法(Term Frequency Inverse Document Frequency,TFIDF)向量化SQL语句所得特征向量表征性较弱从而导致SQL注入攻击检测性能变差。提出基于改进TFIDF算法(Improved TFIDF,ITFIDF)的SQL注入攻击检测方法。首先对TFIDF算法进行改进:在分词的逆文档频率计算公式中引入与该分词相关的语句数量参数,以解决TFIDF算法在某些情况下特征向量表征性较弱的问题;其次基于ITFIDF算法重新设计了SQL语句文本向量化算法;然后基于支持向量机(Support Vector Machine,SVM)算法实现SQL注入攻击检测,利用序列最小最优化算法(Sequential Minimal Optimization,SMO)具有的高效求解复杂二次规划问题的特性,将SMO和SVM相结合以解决SVM求解最佳超平面函数速率低的问题。实验结果表明,与同类别的其他方法相比,所提方法具有更高的查准率、召回率及F-score。3、结合关键字过滤与序列比对过滤技术,提出一种基于LD(Levenshtein Distance)算法的SQL注入攻击过滤方法(SQL Injection Attacks Filtration,SQLIAF)。首先利用黑名单技术,从IP角度对非法用户进行过滤,进而缩小用于过滤的流量规模。其次对用户输入进行关键字检测:若不含关键字,利用LD算法序列比对的方法对非法输入进行过滤;若包含关键字则区分用户请求方式,采用直接加入黑名单的方式或利用LD算法进行处理,以解决传统关键字过滤方法对正常请求的误报问题。实验结果表明,与传统关键字过滤方法和规则匹配过滤方法相比,所提方法能有效过滤SQL注入攻击,且误报率及漏报率更低、过滤速度更快。4、结合研究的关键技术,通过集成SQL注入漏洞复现功能、基于ITFIDF算法的SQL注入攻击检测分步实现功能、基于LD算法的SQL注入攻击过滤分步实现功能以及SQL注入攻击检测防御应用功能,基于ASP.NET.MVC框架设计了SQL注入攻击检测防御应用模块。首先对所提应用模块的设计需求、设计目标及设计原则进行分析,然后对模块的总体结构及各个子功能进行设计,并对每个功能模块的具体实现方法进行描述,最后给出具体的应用实例。