技术摘要:
本发明实施例公开一种注入类漏洞检测方法、装置、可读存储介质及终端。属于网络安全技术领域,包括,接收用户请求的至少一条流量信息;对用户请求的至少一条流量信息进行解码;根据解码操作完成后的结果得到用户请求的参数值中的SQL语句;提取用户请求的参数值中的SQL 全部
背景技术:
随着网络技术和数字经济的发展,网络安全问题也日益突出,全球范围内大规模 的敏感数据泄露事件也频繁发生,各种安全渗透攻击技术也层出不穷,更新换代,相应的安 全渗透防御技术也必须与时俱进,才能应对愈演愈烈的网络安全挑战。 SQL(Structured Query Language-结构化查询语言)注入类攻击是一种黑客屡试 不爽的攻击手法,SQL注入漏洞至今盛行于互联网上的。SQL注入即是指web应用程序对用户 输入数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中事先定义好的查询 语句的结尾上添加额外的SQL语句,在管理员不知情的情况下实现非法操作,以此来实现欺 骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息。 针对SQL注入这一存在了多年的安全问题,传统检测方法是waf会对用户输入的语 句进行解码再通过匹配关键字的方法判断是否为一次黑客攻击行为。如果匹配到恶意的关 键字则认为存在攻击行为,这一方法存在太高的误报,会将很多正常的用户行为判定为黑 客攻击,这会严重影响到用户体验。如果对正则规则写细,那么就无法绕过黑客混淆恶意请 求造成的攻击。 现有技术主要缺点有两点:一是误报率高,由于正则本身存在一定的局限性,如果 正则规则写的过于宽松,那么则会将很多正常的用户请求当作黑客攻击,这一点会严重影 响到一个企业的信誉和形象,同时会对一些公司业务造成影响,这个损失无法估量。二是漏 报率高,如果正则规则写的过死,面对简单的黑客攻击可以拦截,但是黑客攻击稍微混淆之 后便很难识别。这样对于黑客而已,这种waf(web应用防火墙)形同虚设,无疑增加了企业应 用被黑客入侵的风险。 针对上文提到的现有技术存在的检测SQL注入式漏洞误报率及漏报率高的缺陷, 分析其根本原因是正则无法真正的理解SQL语句行为。因此,如何降低检测SQL注入式漏洞 的误报率以及漏报率。是现今亟待解决的问题。
技术实现要素:
为了解决现有技术存在检测SQL注入式漏洞误报率及漏报率高的问题,本发明实 施例提供以下技术方案: 第一方面,一种注入类漏洞检测方法,包括: 接收用户请求的至少一条流量信息; 对所述用户请求的至少一条流量信息进行解码; 根据解码操作完成后的结果,对所述用户请求的参数值进行词法分析,得到用户 请求的参数值中的SQL语句; 4 CN 111585974 A 说 明 书 2/7 页 提取所述用户请求的参数值中的SQL语句,得到不少于一串的分析结果; 判断所述不少于一串的分析结果,根据所述不少于一串的分析结果得到所述请求 的参数值是否存在注入类漏洞的检测结果。 进一步地,在所述接收用户请求的至少一条流量信息之前,还包括: 设置DNS解析,设置被防护域名DNS地址为防火墙分析计算平台ip地址,其中,所述 web应用防火墙分析计算平台用于获取所述用户请求的至少一条流量信息。 进一步地,所述web应用防火墙分析计算平台用于获取所述用户请求的至少一条 流量信息,所述用户请求的流量信息包括正常用户流量信息,和/或,黑客攻击流量信息; 所述用户请求的至少一条流量信息包含用户所要请求的对应的数据库标识、ip地 址以及用户请求的内容。 进一步地,所述根据解码操作完成后的结果,对所述用户请求的参数值进行词法 分析包括: 根据所述用户请求组的至少一条流量信息所包含的数据库标识,确定所述用户请 求的流量信息对应的数据库; 在所述用户请求的流量信息对应的数据库中,逐条对所述用户请求的参数值进行 词法分析。 进一步地,所述提取所述用户请求的参数值中的SQL语句,得到不少于一串的分析 结果包括: 根据数据库的词法解析器,提取所述用户请求的参数值中的SQL语句; 根据提取的所述用户请求的参数值中的SQL语句,判断所述SQL语句的词法是否正 确。 进一步地,所述判断所述不少于一串的分析结果,根据所述不少于一串的分析结 果得到所述请求的参数值是否存在注入类漏洞的检测结果,还包括: 若所述不少于一串的分析结果得到的所述请求的参数值与用户请求的流量信息 对应的数据库中词法结构不同,则判断所述请求的参数值存在注入类漏洞,并拦截所述用 户请求; 若所述不少于一串的分析结果得到的所述请求的参数值与用户请求的流量信息 对应的数据库中词法结构相同,则判断所述请求的参数值不存在注入类漏洞,并执行所述 用户请求。 进一步地,所述对所述用户请求的至少一条流量信息进行解码,包括: 对所述用户请求的流量信息的语句、字母以及特殊字符进行解码; 根据所述语句、字母以及特殊字符进行解码完成后的结果,对所述用户请求的参 数值进行词法分析。 第二方面,一种注入类漏洞检测装置,包括: 接收模块,用于接收用户请求的至少一条流量信息; 解码模块,用于对所述用户请求的至少一条流量信息进行解码; 词法分析模块,用于根据解码操作完成后的结果,对所述用户请求的参数值进行 词法分析; SQL语句提取模块,用于提取所述用户请求的参数值中的SQL语句,得到不少于一 5 CN 111585974 A 说 明 书 3/7 页 串的分析结果; 判断模块,用于判断所述不少于一串的分析结果,根据所述不少于一串的分析结 果得到所述请求的参数值是否存在注入类漏洞的检测结果。 第三方面,一种可读存储介质,其上存储有程序,该程序被处理器执行时实现权利 要求1-7任一项所述方法的步骤。 第四方面,一种终端,其特征在于,包括: 存储器,其上存储有可执行程序; 处理器,用于执行所述存储器中的所述可执行程序,以实现权利要求1-7中任一项 所述方法的步骤。 本发明实施例提供的一种注入类漏洞检测方法、装置、可读存储介质及终端,包 括,接收用户请求的至少一条流量信息;对所述用户请求的至少一条流量信息进行解码;根 据解码操作完成后的结果,对所述用户请求的参数值进行词法分析,得到用户请求的参数 值中的SQL语句;提取所述用户请求的参数值中的SQL语句,得到不少于一串的分析结果;判 断所述不少于一串的分析结果,根据所述不少于一串的分析结果得到所述请求的参数值是 否存在注入类漏洞的检测结果。本发明实施例通过词法分析sql语句比现有的基于正则解 析sql更灵活,具有有助于降低误报率,漏报率的特点,能够极大的提高用户体验和企业网 站安全性。 附图说明 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以 根据这些附图获得其他的附图。 图1是本发明实施例中一种注入类漏洞检测方法的流程示意图。 图2是本发明另一个实施例中一种注入类漏洞检测方法的流程示意图。 图3是本发明另一个实施例中一种注入类漏洞检测装置结构图。 图4是本发明另一个实施例中一种注入类漏洞检测方法的流程示意图。 附图标记: 1-接收模块;2-解码模块;3-SQL语句提取模块;4-判断模块。