一种基于细粒度权限控制的SQL注入检测系统及其方法技术方案

技术编号:17541907 阅读:56 留言:0更新日期:2018-03-24 19:16
本发明专利技术公开了一种基于细粒度权限控制的SQL注入检测系统及其方法,涉及信息安全技术领域。本系统是:接收模块分别与业务代码表和权限提取模块交互,实现对用户提交的SQL语句的接收和业务代码的提取;权限提取模块分别与接收模块和权限检测模块交互,实现对权限访问信息的提取;权限检测模块分别与权限提取模块、权限控制表和告警模块交互,实现对SQL注入越权操作的检测;告警模块分别与权限检测模块和业务代码表进行交互,实现对SQL注入事件的日志、告警和SQL注入的拦截。本发明专利技术具有下列优点和积极效果:①准确性:可以准确地发现SQL注入攻击,防止用户数据泄露;②可扩展性;③适应性广:可应用于Web服务器、中间件、数据库代理服务器和数据库服务器上。

A SQL injection detection system based on fine-grained privilege control and its method

The invention discloses a SQL injection detection system based on fine grained authority control and its method, which relates to the field of information security technology. This system is: receiving module and service code table and permissions extraction module interaction, extraction of the SQL statement for the user to receive and service code; permission extraction module is respectively connected with a receiving module and access detection module interaction, to achieve the extraction of access to information; access detection module is connected with the extraction module, access control permissions table and alarm module interaction, to detect SQL injection unauthorized operation; the alarm module respectively to interact with the authority detection module and service code table, the realization of the SQL into the event log, alarm and SQL injection interception. The invention has the following advantages and positive effects: accuracy: can accurately detect SQL injection attacks, prevent the disclosure of user data; scalability; the wide adaptability: can be applied to the Web server, middleware, database proxy server and database server.

【技术实现步骤摘要】
一种基于细粒度权限控制的SQL注入检测系统及其方法
本专利技术涉及信息安全
,尤其涉及一种基于细粒度权限控制的SQL注入检测系统及其方法。
技术介绍
所谓SQL注入(SQLInjection),就是通过把SQL命令插入到Web表单、URL和HTTP头部等地方,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序,将恶意的SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入恶意SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。SQL注入危害巨大,可以在未经授权的情况下操作数据库中的数据,包括读取、篡改、添加和删除等行为。如何对SQL注入行为进行检测是信息安全中的重大课题,有着很重要的意义。当前,常见的SQL注入检测技术主要有以下几种:1)关键词识别关键词识别技术主要是对用户提交的SQL语句进行检查,如果有SQL语句关键词,则判断为SQL注入攻击;常用的关键词包括union,select,and,from等。2)正则表达式模式匹配使用正则表达式来描述SQL注入攻击,形成攻击模式特征库;用户提交的数据会与攻击模式特征库进行正则表达式匹配,若匹配成功则认为存在SQL注入攻击;相对于关键字识别技术来说,减少了误报和漏报。3)机器学习机器学习技术一般分为两个阶段:学习阶段和检测阶段;在学习阶段,在安全环境下通过统计分析和数据挖掘等方法,学习合法的SQL语句的正常流量特征,建立合法SQL语句知识库;在检测阶段,将用户提交的SQL语句与知识库中合法SQL语句进行匹配,数据特征不匹配时,则判定存在SQL注入企图。4)语法分析对HTTP请求中的各种参数进行SQL语法分析,如果存在合法的SQL语句片段,则认为存在SQL注入攻击;或者构建语法分析树,与正常的语法分析树进行对比,如果不一致,则认为存在SQL注入攻击。在这些SQL注入检测方法中,前三种都是基于特征的SQL注入检测方法;但是由于SQL语句的多样性和SQL注入的灵活性,都存在一定的误报和漏报;上述方法4)语法分析相对来说检测更加准确,不过也有一些应用场景的限制。
技术实现思路
本专利技术的目的就在于克服现有技术存在的缺点和不足,针对SQL注入攻击行为,提供一种基于细粒度权限控制的SQL注入检测系统及其方法,实现对SQL注入攻击行为的识别。实现本专利技术目的技术方案是:本专利技术通过对SQL注入攻击行为进行详细的研究,通过以下方式实现对SQL注入攻击的检测:1、对Web应用中涉及SQL语句执行的每个URL,为URL对应的每个SQL语句分配业务代码,生成业务代码表;此业务代码具有唯一性,单个业务代码对应着有且只有一条SQL语句。2、对每个业务代码,分析其对应的SQL语句,生成对应的权限控制表;所述的权限控制表是业务代码和权限的映射;所述的权限是细粒度的,包括数据库、表、字段、函数和操作等允许或禁止的列表。3、对于用户提交的SQL语句,提取权限信息,包括数据库、表、字段、函数和操作等访问信息;结合权限控制表和权限访问信息,进行权限检测,如果存在越权访问,则确认存在SQL注入漏洞。一、基于细粒度权限控制的SQL注入检测系统(简称系统)本系统包括接收模块、权限提取模块、权限检测模块、告警模块、业务代码表和权限控制表;其交互关系是:接收模块分别与业务代码表和权限提取模块交互,实现对用户提交的SQL语句的接收和业务代码的提取;权限提取模块分别与接收模块和权限检测模块交互,实现对权限访问信息的提取;权限检测模块分别与权限提取模块、权限控制表和告警模块交互,实现对SQL注入越权操作的检测;告警模块分别与权限检测模块和业务代码表进行交互,实现对SQL注入事件的日志、告警和SQL注入的拦截。二、基于细粒度权限控制的SQL注入检测方法(简称方法)本方法的研究思路是为Web应用中每个涉及SQL语句执行的URL对应的每个SQL语句生成一个唯一的业务代码;分析业务代码对应的SQL语句,生成业务代码和权限的映射表,这里的权限是细粒度的;提取用户提交的SQL语句中的权限访问信息,查询权限控制表,进行权限检测;如果存在越权访问,则确认存在SQL注入漏洞。具体地说,本方法包括如下步骤:①对于Web应用中涉及SQL语句执行的每个URL,为URL对应的每个SQL语句分配业务代码,生成业务代码表;②对每个业务代码,分析其对应的SQL语句,生成对应的权限控制表;③对于用户提交的SQL语句,提取权限信息,查询权限控制表,进行权限检测,如果存在越权访问,则确认存在SQL注入漏洞。本专利技术具有下列优点和积极效果:①准确性:本专利技术基于细粒度权限控制,可以准确地发现SQL注入攻击,防止用户数据泄露。②可扩展性:在Web应用升级时,在不对系统的结构进行修改的前提下,可以很方便地更新权限控制表,完成对应的升级;同时,针对新的SQL注入攻击手法,也可以更新权限控制表,以增加检测的准确性。③适应性广:本专利技术可应用于Web服务器、中间件、数据库代理服务器和数据库服务器上。附图说明图1为本系统的结构方框图;图2为本方法的工作流程图。其中:11—接收模块;12—权限提取模块;13—权限检测模块,14—告警模块;15—业务代码表;16—权限控制表;英译汉1、SQL:StructuredQueryLanguage,结构化查询语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。2、SQLinject:SQL注入,通过构建包含SQL语法的特殊的输入作为参数传入Web应用程序,从而执行攻击者所要的操作。3、Web:WorldWideWeb,万维网,是一个由许多互相链接的超文本组成的系统,通过互联网访问。具体实施方式下面结合附图和实施例详细说明:一、系统1、总体如图1,本系统包括接收模块11、权限提取模块12、权限检测模块13、告警模块14、业务代码表15和权限控制表16;其交互关系是:接收模块11分别与业务代码表15和权限提取模块12交互,实现对用户提交的SQL语句的接收和业务代码的提取;权限提取模块12分别与接收模块11和权限检测模块13交互,实现对权限访问信息的提取;权限检测模块13分别与权限提取模块12、权限控制表16和告警模块14交互,实现对SQL注入越权操作的检测;告警模块14分别与权限检测模块13和业务代码表15进行交互,实现对SQL注入事件的日志、告警和SQL注入的拦截。2、功能模块1)接收模块11接收模块11是一种数据采集方法;接收用户提交的SQL语句,从中提取业务代码;将业务代码和SQL语句发送给权限提取模块12进行进一步的处理。2)权限提取模块12权限提取模块12是一种数据处理方法;对SQL语句进行词法分析和语法分析,提取SQL语句中的权限访问信息。3)权限检测模块13权限检测模块13是一种数据处理方法;从权限提取模块12获取权限访问信息,从权限控制表16获取对应业务代码的权限控制信息,将两者进行匹配,如果存在越权访问,则判断存在SQL注入。4)告警模块14告警模块14是一种事件响应方法。用于接收权限检测模块13的检测结果,结合业务代码表15,对SQL注入事件的相关信息包括URL、SQL语句和违反的权限等信息进行日志,进行本文档来自技高网
...
一种基于细粒度权限控制的SQL注入检测系统及其方法

【技术保护点】
一种基于细粒度权限控制的SQL注入检测系统,其特征在于:包括接收模块(11)、权限提取模块(12)、权限检测模块(13)、告警模块(14)、业务代码表(15)和权限控制表(16);其交互关系是:接收模块(11)分别与业务代码表(15)和权限提取模块(12)交互,实现对用户提交的SQL语句的接收和业务代码的提取;权限提取模块(12)分别与接收模块(11)和权限检测模块(13)交互,实现对权限访问信息的提取;权限检测模块(13)分别与权限提取模块(12)、权限控制表(16)和告警模块(14)交互,实现对SQL注入越权操作的检测;告警模块(14)分别与权限检测模块(13)和业务代码表(15)进行交互,实现对SQL注入事件的日志、告警和SQL注入的拦截。

【技术特征摘要】
1.一种基于细粒度权限控制的SQL注入检测系统,其特征在于:包括接收模块(11)、权限提取模块(12)、权限检测模块(13)、告警模块(14)、业务代码表(15)和权限控制表(16);其交互关系是:接收模块(11)分别与业务代码表(15)和权限提取模块(12)交互,实现对用户提交的SQL语句的接收和业务代码的提取;权限提取模块(12)分别与接收模块(11)和权限检测模块(13)交互,实现对权限访问信息的提取;权限检测模块(13)分别与权限提取模块(12)、权限控制表(16)和告警模块(14)交互,实现对SQL注入越权操作的检测;告警模块(14)分别与权限检测模块(13)和业务代码表(15)进行交互,实现对SQL注入事件的日志、告警和SQL注入的拦截。2.按权利要求1所述系统的SQL注入检测方法,其特征在于包括下述步骤:①对于Web应用中涉及SQL语句执行的每个URL,为URL对应的每个SQL语句分配业务代码,生成业务代码表;②对每个业务代码,分析其对应的SQL语句,生成对应的权限控制表;③对于用户提交的SQL语句,提取权限信息,查询权限控制表,进行权限检测,如果存在越权访问,则确认存在SQL注入漏洞。3.按权利要求2所述的SQL注入检测方法,其特征在于所述的步骤①:A、对于Web应用中涉及SQL语句执行的每个URL,为URL对应的每个SQL语句分配业务代码,生成业务代码表;B、所述业务代码是Web应用中SQL语句的标识,其分配具有唯一性;在Web应用的所有URL对应的所有SQL语句中,单个业务代码对应着有且只有一条SQL语句;C、所述业务代码表,是一种数据存储结构;包括业务代码、URL、SQL语句模板和业务代码识别标识;D、所述的业务代码识别标识,是一个或多个关键词,可以从用户提...

【专利技术属性】
技术研发人员:罗蛟保永武叶猛
申请(专利权)人:武汉虹旭信息技术有限责任公司
类型:发明
国别省市:湖北,42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1