基于N-Gram和TFIDF的SQL注入检测方法∗
2021-06-29苏林萍刘小倩崔文超
苏林萍 刘小倩 陈 飞 李 为 崔文超
(华北电力大学控制与计算机工程学院 北京 102206)
1 引言
随着互联网服务的广泛使用,Web应用也日渐复杂,而且Web的安全问题也因其易用性和开放性日益显著[1~2]。根据开发式Web应用程序安全项目(OWASP)的发布数据显示,SQL注入漏洞是网络信息安全的主要漏洞[3]。在过去的一些年里,许多专家学者对SQL注入问题做了大量研究,提出了许多防御方法和检测技术。但是随着攻击者攻击手段的不断变化,现有的SQL注入防御与检测方法依然存在一些不足。因此,如何防御与检测SQL注入一直是安全领域的热点研究问题。
国内外学者已经针对SQL注入攻击做了大量研究。文献[4~5]使用事先定义好的特征向量对SQL语句进行文本向量化及类别检测,准确率有所提高,但是忽略了词与词之间的联系;文献[6]从恶意代码中提取有效的N-gram特征的方法,并利用支持向量机(SVM)作为机器学习分类器,将可执行代码分类为恶意代码或良性代码。但是该方法存在一些不足之处,使用SVM进行分类时不能够为不同的特征子序列赋予不同的权重;A.Joshi和V.Geetha结合朴素贝叶斯机器学习算法和基于角色的访问控制机制对SQL语句进行检测,但此方法的测试用例具有局限性[7];文献[8]提出一种基于Simhash算法的SQL注入检测方法,首先通过自学习过程生成初始的Simhash指纹库构建具有索引结构的指纹库,再结合强白名单策略来判断每条SQL语句的合法性,具有抵御未知SQL注入攻击的能力。
针对目前存在的一些缺陷,本文结合N-gram和TFIDF进行文本向量化,利用N-gram提取关键字,然后在所提取的关键字的基础上计算TFIDF矩阵,使用SVM算法进行模型训练。……
