论文部分内容阅读
互联网技术的高速发展,让Web应用程序逐渐成为互联网用户日常生活中非常重要的一部分。Web应用程序常常受到攻击,因此,用户在享受Web应用程序服务的同时,也面临着个人隐私信息泄露、财产遭受损失的风险。其中SQL注入攻击(Structured Query Language Injection Attack)是Web安全中最常见,同时也是对用户危害程度最大的攻击手段之一。因此,如何对SQL注入攻击进行准确有效地检测,是Web应用发展的重要前提,也是Web安全领域研究中重要的课题。目前,对于SQL注入攻击的主要检测方案包括用户输入过滤、解析树分析、指令集随机化以及参数查询等,但是这些方案存在对Web应用程序源代码的改动较大、开发周期长、部署难度高等问题。针对上述问题,本文对SQL注入攻击进行深入研究,提出一种工作在HTTP应用层,在不修改后台应用程序情况下的SQL注入检测方法。该方法通过对输入的SQL语句进行检测,将其分为正常SQL语句和SQL注入攻击语句两类。以此判断用户输入是否存在SQL注入攻击。本文的主要研究工作和成果如下:(1)针对词频-逆文本频率(Term Frequency-Inverse Document Frequency,TF-IDF)算法忽略特征词在SQL语句中位置与重要性的关系的不足,提出一种基于改进TF-IDF算法的SQL注入攻击检测方法。改进方案通过增加特征词的位置权重来修正TF-IDF。其中特征词的位置关系通过SQL语句的抽象语法树体现。并且在利用改进TF-IDF算法计算出SQL语句中特征词的权重后,按照降序排序,提取出满足任务要求的前K个特征词,达到对特征空间降维的目的,避免维数灾难的发生。其中,在SQL语句分词处理上,保留了 SQL注入攻击中容易出现的敏感符号,进一步保证了 SQL注入攻击检测特征词选取的完备性。通过与其他方法进行实验对比,结果表明基于改进TF-IDF算法的SQL注入攻击检测方法在数据集上的准确率,召回率,F1分数均提高了 10%以上。(2)提出一种基于AT-BiGRU-AdaBoost模型的SQL注入攻击检测方法。该方法采用双向门控循环单元(Bidirectional Gated Recurrent Unit,BiGRU)神经网络模型提取特征。另外,在BiGRU对SQL语句进行特征提取的同时,加入Attention机制加强对SQL语句的理解,提高重要部分的权重,降低非重要部分的权重,解决噪声的干扰问题。并且针对Softmax作为BiGRU神经网络分类器泛化能力不足的问题,在BiGRU神经网络提取特征后使用AdaBoost进行训练预测。AdaBoost的基分类器具有低方差高偏差等优势,使得集成模型更具稳定性,在一定程度上弥补了 Softmax作为BiGRU神经网络分类器泛化能力不足的问题。最后实验表明,在SQL注入攻击检测中,AT-BiGRU-AdaBoost模型相比BiGRU模型,在数据集上准确率和F1分数上均提高了 1.2%以上。