[发明专利]一种SQL注入攻击防御组件及方法在审
申请号: | 201710507364.2 | 申请日: | 2017-06-28 |
公开(公告)号: | CN107222494A | 公开(公告)日: | 2017-09-29 |
发明(设计)人: | 张铮;邬江兴;罗兴国;谢光伟;庞建民;王晓梅;马博林;李卫超;王立群;韩首魁;张高举 | 申请(专利权)人: | 上海红阵信息科技有限公司 |
主分类号: | H04L29/06 | 分类号: | H04L29/06;G06F21/56 |
代理公司: | 上海智信专利代理有限公司31002 | 代理人: | 邓琪 |
地址: | 201112 上海市闵*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 sql 注入 攻击 防御 组件 方法 | ||
技术领域
本发明涉及信息安全领域,具体而言,本发明涉及一种SQL注入攻击防御组件及方法。
背景技术
在当今网络环境下,数据库作为重要的存储工具,经常存储着大量有价值的数据,这些数据包含用户信息、企业数据、金融财政、商业机密、知识产权、客户订单信息等内容,其重要程度不言而喻。因此,数据库往往会成为网络黑客的主要攻击对象。网络黑客利用各种途径、各种攻击工具、各种欺骗手段来获取其想得到的信息,因此,保证数据库安全变得非常重要。
最常见的数据库安全威胁是结构化查询语言(Structured Query Language,简称SQL)注入攻击,SQL注入攻击指的是通过构建特殊的输入语句传入Web应用服务器,而这些输入语句包含SQL语法里的一些关键词,通过使Web应用执行SQL语句进而执行攻击者所要的操作。这是由于系统应用未对客户端输入语句进行合法性检查,攻击者可以通过提交一段数据库查询代码,根据应用返回的结果,获得某些想得知的数据。
针对SQL注入攻击,传统解决方案绝大多数是在系统被攻击之后的“亡羊补牢”式防护,但在系统出现新的注入攻击点时,仍然束手无策。具体来说,传统防御技术都是基于黑名单对客户端输入语句进行合法性检查,当发现客户端的输入语句在黑名单内,则对其进行拦截,进而实现基于已知注入漏洞的SQL注入防御。该方案存在以下两方面的严重问题:1)对于未知注入漏洞无能为力;2)黑名单过多会产生高误报问题,进而影响正常用户使用。
针对数据库SQL注入攻击威胁,申请号为200910206715.1的中国发明专利公开了一种SQL注入攻击检测方法及其装置,该专利是基于恶意人员进行SQL注入攻击的行为特征,对用户发送的请求访问动态网页的请求消息中携带的SQL注入关键字进行累计计数,规定时间长度内,当与该用户发送该请求消息时使用的访问属性信息相应的SQL注入累计值达到限定值时,认定该用户正在对网站实施SQL注入攻击,虽然在一定程度上克服了传统SQL检测机制的缺陷,缓解了传统SQL注入攻击检测方法中存在高误报率的问题,但其对未知攻击行为的防御能力仍然无能为力。
申请号为200710121668.1的中国发明专利公开了一种支持多种数据库类型的SQL注入攻击检测系统,其通过使用SQL注入命令的内在语法结构来定义SQL注入攻击检测规则,而不是基于传统入侵检测系统的攻击特征签名来定义SQL注入攻击检测规则,有效克服了SQL注入攻击事件的攻击特征签名不易提取和易被欺骗等缺点,但是该发明仍然是一种基于已知攻击行为特征的防御手段,对含有未知特征SQL注入攻击无效。
发明内容
为了解决现有对于含有未知特征的SQL注入攻击无效的问题,本发明提供了一种SQL注入攻击防御组件及方法。
为了本实现上述目的,本发明一方面提供一种SQL注入攻击防御组件,其与一应用服务器相连,该SQL注入攻击防御组件包括:
SQL语句预处理模块,其设置为使应用服务器输出的SQL语句中的所有SQL关键词分别带上预生成的标签;
用户输入参数处理模块,其设置为将用户输入的参数添加到经过所述SQL语句预处理模块处理后的SQL语句中;
注入攻击检测模块,其设置为检测经过所述用户输入参数处理模块处理后的SQL语句中的所有关键字是否均带有合法的标签,合法是指与SQL语句预处理模块中添加的标签相同;以及
注入检测结果生成模块,其设置为根据所述注入攻击检测模块的检测结果返回相应的信息,若所述注入攻击检测模块检测到SQL语句中的所有关键词均带有合法的标签,则将该SQL语中的标签去除后返回至应用服务器,否则,返回指令错误信息。
优选地,所述SQL语句预处理模块还设置为对应用服务器输出的SQL语句进行复制,以生成至少两条相同的SQL语句,并将复制生成的至少两条SQL语句作为子语句拼接成一条组合的SQL语句,然后使所述组合的SQL语句中的所有关键词均带上预生成的标签,其中相同子语句中的关键词带有相同的标签,不同子语句中的关键词带有不同的标签。
优选地,所述注入攻击检测模块还设置为检测组合的SQL语句的每条子语句中的标签是否与所述SQL语句预处理模块添加的标签一致,若一致,则所述注入检测结果生成模块选择任意一条子语句将其中的标签去除后返回至应用服务器,否则,返回所述指令错误信息。
优选地,所述预生成的标签随机生成。
优选地,所述预生成的标签根据用户的指纹信息生成。
优选地,所述预生成的标签按周期变化。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海红阵信息科技有限公司,未经上海红阵信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710507364.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种棉质面料的染色方法
- 下一篇:活性染料小浴比染特浅色的无盐染色方法