[发明专利]一种动态监测SQL注入的方法及系统有效
申请号: | 202010663405.9 | 申请日: | 2020-07-10 |
公开(公告)号: | CN111814143B | 公开(公告)日: | 2021-07-09 |
发明(设计)人: | 刘佛福;李辉;林友钦 | 申请(专利权)人: | 厦门靠谱云股份有限公司 |
主分类号: | G06F21/55 | 分类号: | G06F21/55;G06F21/62 |
代理公司: | 北京律远专利代理事务所(普通合伙) 11574 | 代理人: | 王冠宇 |
地址: | 360100 福建省厦门市火*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 动态 监测 sql 注入 方法 系统 | ||
本发明公开了一种动态监测SQL注入的方法及系统,本发明的主要目的在于提出一种动态监测SQL注入的方法及系统,在Agent端设计两套同时进行安全检测的方案,当检测出异常SQL时采取积极的策略处理相应的SQL注入威胁,旨在提高整个系统的安全性。
技术领域
本发明涉及信息安全技术领域,具体涉及针对结构化查询语言SQL的攻击检测。
背景技术
结构化查询语言SQL注入漏洞攻击是目前互联网最为流行最为热门的黑客攻击方法之一。攻击者通过把SQL命令插入到Web表单提交或者页面请求的查询字符串中欺骗服务器执行恶意的SQL命令,从而获取数据库的管理用户权限,通过将数据库用户权限提升至操作系统管理权限,控制服务器才做系统,获取重要信息或者机密文件。
随着SQL注入越来越普遍的发生,针对SQL注入攻击的检测方法成为业内研究的热点。为了实现对SQL注入有效检测,单一的检测技术并不能满足要求,因此目前研究人员也提出了很多综合性的SQL注入检测技术。“WAVES”作为一种黑盒技术,能够利用网络爬虫识别Web应用中哪些方面可能成为潜在的攻击目标,但并不能保证涵盖所有的SQL注入攻击类型。“JDBC-Checker”是一种静态代码检测技术,其优点在于能够定位到代码中潜存的SQL注入漏洞风险,但是同样也不能保证覆盖所有的SQL注入攻击类型。基于污点跟踪技术在检测和防范SQL注入方面具有更高的可信度,但是对于模块化程度较高的Web应用中识别的准确性有待提高。
发明内容
针对现有静态分析和动态分析中存在的问题,本发明提出一种动态监测SQL注入的方法及系统,由Agent端和WebServer端分别执行相应的检测和交互操作实现。
该SQL注入检测方法具体如下:
由Agent端读取Web日志文件路径,监控日志文件的变化;所述日志文件执行SQL注入检测,判断日志文件中的网页IP地址否在预设黑名单中;
若是,则禁止访问所有请求的URL地址;
若否,则基于预设的SQL注入检测算法检测是否存在非法异常的SQL语句,所述预设的SQL注入检测算法为静态分析和动态分析相结合的检测算法;
若检测结果为合法,则允许正常访问网站;若检测结果为非法,则禁止访问所有请求的URL地址,并更新黑名单,将所述IP地址添加至黑名单;
将检测执行结果返回给WebServer;
由WebServer接收Agent返回的检测执行结果,并将SQL注入检测结果进行统计分析,将统计分析结果推送给系统管理人员和项目管理人员。
为了进一步提高对SQL注入检测的准确性和及时性,优选地,本发明在Agent端进一步设计了对数据库定时监控的检测流程:在Agent读取Web日志文件的同时,启动数据库监控进程,每隔预设时间请求数据库实例,检测是否存在“User Sleep”状态,如果存在则发起Kill操作,并通过上报机制反馈给WebServer。
进一步地,当数据库实例未开启SQL安全保护机制时,用户可以通过WebServer自主开启SQL审计功能。
进一步地,所述基于预设的SQL注入检测算法检测是否存在非法异常的SQL语句进一步包括:在Web应用程序运行过程中,遍历该Web应用程序中所有固定SQL查询语句,对于每一条固定SQL查询语句FIX_SQLi删除其中的属性值,得到对应的动态SQL查询语句DYN_SQLi;通过对FIX_SQLi和DYN_SQLi进行逻辑异或操作,判断数据是否存在非法异常情况。
判断所述逻辑异或操作结果是否为零,若结果为零,则说明数据正常,否则说明数据存在异常。
附图说明
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于厦门靠谱云股份有限公司,未经厦门靠谱云股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010663405.9/2.html,转载请声明来源钻瓜专利网。