[发明专利]用于检测SQL注入的方法和装置有效
| 申请号: | 202010221581.7 | 申请日: | 2020-03-26 |
| 公开(公告)号: | CN111314388B | 公开(公告)日: | 2022-07-15 |
| 发明(设计)人: | 赵耀东 | 申请(专利权)人: | 北京百度网讯科技有限公司 |
| 主分类号: | H04L9/40 | 分类号: | H04L9/40;G06F21/56;G06F16/242 |
| 代理公司: | 北京英赛嘉华知识产权代理有限责任公司 11204 | 代理人: | 王达佐;马晓亚 |
| 地址: | 100085 北京市*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 用于 检测 sql 注入 方法 装置 | ||
本公开的实施例公开了用于检测SQL注入的方法和装置,涉及网络安全技术领域。该方法的一具体实施方式包括:获取待检测的SQL语句;将SQL语句中的关键信息转换成相应的词法单词,并将词法单词转换成向量;基于词法单词构建抽象语法树,其中,抽象语法树的每个结点与一个向量对应;按照结点的优先级由高到低的顺序从抽象语法树中选择预定第一数目的目标结点,并基于目标结点对应的向量构造特征向量矩阵;将特征向量矩阵输入预先训练的SQL注入检测模型,输出SQL语句的类别。该实施方式提高了SQL注入的检测准确率并缩短了检测时间。
技术领域
本公开的实施例涉及网络安全技术领域,具体涉及用于检测SQL注入的方法和装置。
背景技术
SQL(structured query language,结构化查询语言)是一种用于操作数据库的语言。SQL注入是指把恶意SQL命令插入到SQL语句中,并在万维网(world wide web,Web)中的表单提交处、或者输入域名处、或者页面请求处输入插入恶意SQL命令的SQL语句,从而达到欺骗服务器执行恶意SQL命令,以窃取、篡改或者恶意删除数据库中的数据。
SQL注入检测主要是检测包含有恶意SQL命令的SQL语句。传统SQL注入检测主要依赖于匹配模型库。在一种检测方法中,匹配模型库包括合法SQL语句的抽象语法树,合法SQL语句即不包含恶意SQL命令的SQL语句;在另一种检测方法中,匹配模型库包括非法SQL语句的抽象语法树,非法SQL语句即包含恶意SQL命令的SQL语句。对一个SQL语句进行检测时,首先获取该SQL语句的抽象语法树,再对比该抽象语法树与匹配模型库中的抽象语法树,进而得出该SQL语句的检测结果。
传统SQL注入检测方法有以下缺点:
1、传统防御方式在规则缺失的情况下,导致SQL注入检测失败;
2、攻击者在攻击过程中,通过构造bypass(绕过)方法,使得传统防御方式规则集中已有规则失效;
3、在传统防御方式中,随着规则集中规则不断增多,导致SQL注入检测系统的开发和维护变得困难。
发明内容
本公开的实施例提出了用于检测SQL注入的方法和装置。
第一方面,本公开的实施例提供了一种用于检测SQL注入的方法,包括:获取待检测的SQL语句;将SQL语句中的关键信息转换成相应的词法单词,并将词法单词转换成向量;基于词法单词构建抽象语法树,其中,抽象语法树的每个结点与一个向量对应;按照结点的优先级由高到低的顺序从抽象语法树中选择预定第一数目的目标结点,并基于目标结点对应的向量构造特征向量矩阵;将特征向量矩阵输入预先训练的SQL注入检测模型,输出SQL语句的类别。
在一些实施例中,该方法还包括:获取SQL语句的注释信息;将注释信息转换成注释向量;基于目标结点对应的向量和注释向量重新构造特征向量矩阵。
在一些实施例中,注释信息包括至少一个注释块,该方法还包括:将每注释块转换成一个注释向量,得到注释向量集;从注释向量集中随机选择预定第二数目的注释向量;按照结点的优先级由高到低的顺序从抽象语法树中选择预定第三数目的目标结点,其中,第二数目与第三数目之和等于第一数目;基于所选择的预定第三数目的目标结点对应的向量和所选择的预定第二数目的注释向量重新构造特征向量矩阵。
在一些实施例中,该方法还包括:获取训练样本集,其中,训练样本包括样本SQL语句和用于表征样本SQL语句是否是SQL注入的标注信息;对训练样本集中每个训练样本构建一个样本语法树,其中,样本语法树的每个结点与一个向量对应;对于每个样本语法树,按照结点的优先级由高到低的顺序从该样本语法树中选择预定第一数目的目标样本结点,并基于目标样本结点对应的向量构造特征向量矩阵;将各样本语法树构造的特征向量矩阵组成向量空间;将向量空间和标注信息分别作为SQL注入检测模型的输入和期望输出,利用机器学习方法训练SQL注入检测模型。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京百度网讯科技有限公司,未经北京百度网讯科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010221581.7/2.html,转载请声明来源钻瓜专利网。





