CN109688137A - 一种sql注入攻击的检测方法、系统及相关组件 - Google Patents
一种sql注入攻击的检测方法、系统及相关组件 Download PDFInfo
- Publication number
- CN109688137A CN109688137A CN201811612088.7A CN201811612088A CN109688137A CN 109688137 A CN109688137 A CN 109688137A CN 201811612088 A CN201811612088 A CN 201811612088A CN 109688137 A CN109688137 A CN 109688137A
- Authority
- CN
- China
- Prior art keywords
- fingerprint
- attack
- string
- sql injection
- checked
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/102—Entity profiles
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1425—Traffic logging, e.g. anomaly detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1466—Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请公开了一种SQL注入攻击的检测方法,所述检测方法包括获取网络流量中的攻击串并确定所述攻击串对应的待检指纹;当所述待检指纹为黑指纹库中的指纹时,判断所述攻击串对应的统一资源定位符URL和所述待检指纹是否均在白名单中;其中,所述黑指纹库存储有SQL注入攻击样本对应的指纹;若是,则判定所述攻击串不为所述SQL注入攻击对应的攻击串;若否,则判定检测到所述SQL注入攻击。本方法能够可以提高对于SQL注入攻击的检测准确率,避免出现因误判导致的业务中断。本申请还公开了一种SQL注入攻击的检测系统、一种计算机可读存储介质及一种电子设备,具有以上有益效果。
Description
技术领域
本申请涉及信息安全技术领域,特别涉及一种SQL注入攻击的检测方法、系统、一种计算机可读存储介质及一种电子设备。
背景技术
SQL注入攻击是使用SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。SQL注入攻击会导致数据库信息泄露、网页被篡改或服务器被控制,甚至会导致数据被删除和整个数据系统瘫痪。
由于客户业务系统的多样化,存在使用SQL语句提交数据给服务器处理以及某些静态页面存在SQL关键词的场景。现有的SQL注入攻击检测会直接将某些正常的业务数据检测为SQL注入或者在发现为业务SQL时直接将整条规则关闭或者甚至将整个SQL注入检测功能关闭,导致该业务中断无法访问。
因此,如何提高对于SQL注入攻击的检测准确率,避免出现因误判导致的业务中断是本领域技术人员目前需要解决的技术问题。
发明内容
本申请的目的是提供一种SQL注入攻击的检测方法、系统、一种计算机可读存储介质及一种电子设备,能够提高对于SQL注入攻击的检测准确率,避免出现因误判导致的业务中断。
为解决上述技术问题,本申请提供一种SQL注入攻击的检测方法,该检测方法包括:
获取网络流量中的攻击串并确定攻击串对应的待检指纹;
当待检指纹为黑指纹库中的指纹时,判断攻击串对应的统一资源定位符URL和待检指纹是否均在白名单中;其中,黑指纹库存储有SQL注入攻击样本对应的指纹;
若是,则判定攻击串不为SQL注入攻击对应的攻击串;
若否,则判定检测到SQL注入攻击。
可选的,在获取网络流量中的攻击串之前,还包括:
根据SQL语法语句数据库构建原黑指纹库和白指纹库;其中,SQL语法语句数据库包括SQL注入攻击对应的语法语句和非SQL注入攻击对应的语法语句;
剔除原黑指纹库中与白指纹库中相同的指纹得到黑指纹库。
可选的,还包括:
判断业务指纹库中是否包括待检指纹;若是,则判定攻击串为待检业务SQL语句;
判断攻击串对应的统一资源定位符URL和待检指纹是否均在白名单中;若是,则判定攻击串为业务SQL语句;若否,则判定检测到SQL注入攻击并生成业务语句误检提示。
可选的,获取网络流量中的攻击串并确定攻击串对应的待检指纹包括:
根据SQL注入关键词对攻击串进行词法分析得到N类特征信息,生成每一类特征信息对应的token信息;
对token信息进行语法重组得到语法特征,生成语法特征对应的待检指纹。
可选的,在判定检测到SQL注入攻击之后,还包括:
将攻击串推送至前台页面进行误判检测处理;
当误判检测处理的结果为误判时,将攻击串对应的URL和待检指纹添加至白名单。
本申请还提供了一种SQL注入攻击的检测系统,该检测系统包括:
指纹确定模块,用于获取网络流量中的攻击串并确定攻击串对应的待检指纹;
攻击误检判断模块,用于当待检指纹为黑指纹库中的指纹时,判断攻击串对应的统一资源定位符URL和待检指纹是否均在白名单中;若是,则判定攻击串不为SQL注入攻击对应的攻击串;若否,则判定检测到SQL注入攻击;
其中,黑指纹库存储有SQL注入攻击样本对应的指纹。
可选的,还包括:
黑指纹库构建模块,用于根据SQL语法语句数据库构建原黑指纹库和白指纹库;还用于剔除原黑指纹库中与白指纹库中相同的指纹得到黑指纹库;其中,SQL语法语句数据库包括SQL注入攻击对应的语法语句和非SQL注入攻击对应的语法语句。
可选的,还包括:
业务语句检测模块,用于判断业务指纹库中是否包括待检指纹;若是,则判定攻击串为待检业务SQL语句;
业务误检判断模块,用于判断攻击串对应的统一资源定位符URL和待检指纹是否均在白名单中;若是,则判定攻击串为业务SQL语句;若否,则判定检测到SQL注入攻击并生成业务语句误检提示。
可选的,指纹确定模块包括:
词法分析单元,用于获取网络流量中的攻击串并根据SQL注入关键词对攻击串进行词法分析得到N类特征信息,生成每一类特征信息对应的token信息;
语法分析单元,用于对token信息进行语法重组得到语法特征,生成语法特征对应的待检指纹。
可选的,还包括:
前台页面排除模块,用于将攻击串推送至前台页面进行误判检测处理;还用于当误判检测处理的结果为误判时,将攻击串对应的URL和待检指纹添加至白名单。
本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序执行时实现上述SQL注入攻击的检测方法执行的步骤。
本申请还提供了一种电子设备,包括存储器和处理器,存储器中存储有计算机程序,处理器调用存储器中的计算机程序时实现上述SQL注入攻击的检测方法执行的步骤。
本申请提供了一种SQL注入攻击的检测方法,包括获取网络流量中的攻击串并确定攻击串对应的待检指纹;当待检指纹为黑指纹库中的指纹时,判断攻击串对应的统一资源定位符URL和待检指纹是否均在白名单中;其中,黑指纹库存储有SQL注入攻击样本对应的指纹;若是,则判定攻击串不为SQL注入攻击对应的攻击串;若否,则判定检测到SQL注入攻击。
本申请生成网络流量中的攻击串的待检指纹,本申请默认预先设置好存有多个SQL注入攻击样本对应的指纹的黑指纹库,通过将待检指纹与黑指纹库中的指纹进行比对,若待检指纹为黑指纹库中的指纹则说明该攻击串存在未SQL注入攻击的嫌疑。进一步的,本申请通过判断攻击串对应的统一资源定位符URL和待检指纹是否均在白名单中来检测黑指纹库比对的结果是否为误检。本申请默认存在有URL+白指纹形式的白名单,白名单中的URL和白指纹可以由用户灵活配置,因此在利用黑指纹库比对之后使用白名单过滤可以有效的避免现有技术中SQL注入攻击的问题。本申请可以提高对于SQL注入攻击的检测准确率,避免出现因误判导致的业务中断。本申请同时还提供了一种SQL注入攻击的检测系统、一种计算机可读存储介质和一种电子设备,具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例所提供的一种SQL注入攻击的检测方法的流程图;
图2为本申请实施例所提供的一种攻击串的指纹信息生成方法的流程图;
图3为本申请实施例所提供的一种黑指纹库构建方法的流程图;
图4为本申请实施例所提供的一种SQL注入攻击的检测系统的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
SQL注入攻击是指使用SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。由于当前的客户业务系统日趋多样化,往往会存在使用SQL语句提交数据给服务器处理以及某些静态页面存在SQL关键词的场景,导致正常的业务数据提交也被识别为SQL注入攻击从而被防火墙拦截无法正常访问。进一步的,在现有技术中若将业务SQL语句误检为SQL注入攻击,只能关闭相关的SQL注入攻击检测规则甚至是关闭全部的SQL注入攻击检测规则才能使被误检的业务SQL语句对应的业务正常启动。但是,现有技术中对于SQL注入攻击误检的处理方法往往存在由于排除的粒度较大导致真正的SQL注入攻击也被绕过。针对上述提到的当前SQL注入攻击检测技术的种种缺陷,本文通过以下几个实施例提出解决上述技术问题的解决方案,实现对于SQL注入攻击的精准且灵活的检测。
下面请参见图1,图1为本申请实施例所提供的一种SQL注入攻击的检测方法的流程图。
具体步骤可以包括:
S101:获取网络流量中的攻击串并确定攻击串对应的待检指纹;
其中,本步骤的目的在于获取网络流量中的攻击串对应的待检指纹,待检指纹具体是指该攻击串的指纹信息,待检指纹具体为描述攻击串特征的语义特征指纹。在获取网络流量中的攻击串后,可以通过多种方法确定待检指纹,此处不进行限定。
可以理解的是,在本步骤中并不限定网络流量中的攻击串的数量,由于每一种攻击串对应的指纹信息并不相同,因此本实施例默认S101中获取多少种攻击串便确定相应数量的待检指纹。若存在多个待检指纹。本实施例可以批量执行相关的SQL注入攻击的检测操作。
S102:当待检指纹为黑指纹库中的指纹时,判断攻击串对应的统一资源定位符URL和待检指纹是否均在白名单中;若是,则进入S103;若否,则进入S104;
其中,本步骤中执行判断攻击串对应的统一资源定位符URL和待检指纹是否均在白名单中的操作的前提为:待检指纹为黑指纹库中的指纹。本实施例默认在S102之前存在构建黑指纹库的操作,黑指纹库中可以存储有多个SQL注入攻击样本对应的指纹。可以理解的是,SQL注入攻击样本可以是经过大数据统计或经验总结的具有SQL注入攻击明显特征的样本,黑指纹库中包括的SQL注入攻击样本的指纹越多,SQL注入攻击检测的效果越好。
本实施例默认存在以下步骤:判断待检指纹是否与任一黑指纹库中的指纹一致,若是,则执行后续的检测步骤,若否,则可以结束本实施例的流程。上述默认的关于黑指纹库的判断流程,相当于对待检指纹进行常规的基于预设的数据库进行比对的SQL注入攻击检测流程。
现有技术中通常仅通过黑指纹库检测攻击串的待检指纹,若发现待检指纹与黑指纹库中的任一指纹匹配成功则直接判定检测到SQL注入攻击,但是由于SQL注入攻击的实际检测场景复杂多变,极易出现利用黑指纹库检测的结果存在误检的状况。因此,本实施例中在待检指纹为黑指纹库中的指纹的前提下,本步骤进一步判断攻击串对应的统一资源定位符和待检指纹是否均在白名单中。
需要说明的是,本实施例默认在本步骤之前存在设置白名单的操作,白名单可以由用户根据业务需求及实际应用场景灵活设定。其中,白名单包括多个URL和多个白指纹,本步骤中“判断攻击串对应的统一资源定位符URL和待检指纹是否均在白名单中”的操作可以包括以下步骤:
步骤1、判断攻击串对应的统一资源定位符URL是否在白名单中;若是,则进入步骤2;若否,则判定检测到SQL注入攻击;
步骤2、判断待检指纹是否在白名单中;若是,则判定攻击串不为SQL注入攻击对应的攻击串;若否,则判定检测到SQL注入攻击。
S103:判定攻击串不为SQL注入攻击对应的攻击串;
其中,当通过黑指纹库检测到攻击串存在SQL注入攻击的嫌疑且通过白名单确定该攻击串不存在问题时,说明黑指纹库检测的相关操作属于误检,可以判定SQL注入攻击。在本步骤之后可以生成关于黑指纹库误检SQL注入攻击的提示信息。
S104:判定检测到SQL注入攻击。
其中,本实施例中利用黑指纹库检测来确定存在SQL注入攻击嫌疑的攻击串后,再利用白名单对存在嫌疑的攻击串进行反向过滤,若经过黑指纹库匹配和白名单过滤后判定攻击串依旧具有SQL注入攻击嫌疑,则可以判定检测到SQL注入攻击。
本实施例生成网络流量中的攻击串的待检指纹,本实施例默认预先设置好存有多个SQL注入攻击样本对应的指纹的黑指纹库,通过将待检指纹与黑指纹库中的指纹进行比对,若待检指纹为黑指纹库中的指纹则说明该攻击串存在未SQL注入攻击的嫌疑。进一步的,本实施例通过判断攻击串对应的统一资源定位符URL和待检指纹是否均在白名单中来检测黑指纹库比对的结果是否为误检。本申请默认存在有URL+白指纹形式的白名单,白名单中的URL和白指纹可以由用户灵活配置,因此在利用黑指纹库比对之后使用白名单过滤可以有效的避免现有技术中SQL注入攻击的问题。
下面请参见图2,图2为本申请实施例所提供的一种攻击串的指纹信息生成方法的流程图;本实施例是对图1对应的实施例中所提到的待检指纹的生成过程的具体介绍,可以将本实施例与图1对应的实施例结合以便得到更为优选的实施方式。
本实施例的具体步骤可以包括:
S201:根据SQL注入关键词对攻击串进行词法分析得到N类特征信息,生成每一类特征信息对应的token信息;
S202:对token信息进行语法重组得到语法特征,生成语法特征对应的待检指纹。
本实施例中词法分析的过程主要是对获取的攻击串根据SQL注入关键词进行词法分割,并将分割的内容分为N类特征,生成相应的token信息;可选的N的数值可以为9。本实施例中语法分析的过程主要是对词法分析后的token集合进行语法重组,对重组后的语法特征生成相应的指纹信息,该指纹信息便是唯一描述该攻击特征,此处得到的指纹信息为上述提到的待检指纹。
下面请参见图3,图3为本申请实施例所提供的一种黑指纹库构建方法的流程图;本实施例是对图1对应的实施例中所提到的黑指纹库的构建过程的具体介绍,可以将本实施例与图1对应的实施例结合以便得到更为优选的实施方式。
本实施例的具体步骤可以包括:
S301:根据SQL语法语句数据库构建原黑指纹库和白指纹库;
其中,本步骤中提到的SQL语法语句数据库包括SQL注入攻击对应的语法语句和非SQL注入攻击对应的语法语句。具体的构建原黑指纹库和白指纹库的过程同样需要对SQL语法语句数据库中的语法语句进行指纹信息提取操作。作为一种可行的实施方式,可以使用图2对应的实施例中提到的词法分析和语法重组操作得到相关的指纹信息。可以理解的是,对SQL注入攻击对应的语法语句提取的指纹可以用于构建原黑指纹库,对非SQL注入攻击对应的语法语句提取的指纹可以用于白指纹库。
需要说明的是,本实施例中提到的白指纹库与图1对应实施例中提到的白名单不为同一概念,白指纹库指构建黑指纹库过程中所用到的白指纹的集合;白名单是用于在利用黑指纹库匹配到存在SQL攻击嫌疑的攻击串后对攻击串进行反向过滤,以便排除黑指纹库误检的状况,白名单为URL和白指纹的集合。由于白指纹库中的白指纹是由SQL语法语句数据库中的样本得到,白名单中的白指纹由相关人员自行设置,因此白指纹库中的白指纹与白名单中的白指纹可以不一致。
S302:剔除原黑指纹库中与白指纹库中相同的指纹得到黑指纹库。
其中,本步骤中提到的剔除操作的目的在于,避免原黑指纹库与白指纹库中存在相同的指纹的状况。举例说明该过程,当检测到原黑指纹库中存在指纹A1与白指纹库中的A2为同一指纹时,删除原黑指纹库中的A1并保留白指纹库中的A2。
作为一种优选的实施方式,在图3对应实施例的基础上还可以存在生成业务数据库的操作,具体过程可以包括:对业务SQL语法语句样本进行基于词法分析和语法分析的指纹信息提取构建业务指纹库。
在本实施例默认存在业务指纹库的前提下,还可以包括业务SQL语句的检测操作:
步骤1、判断业务指纹库中是否包括待检指纹;若是,则判定攻击串为待检业务SQL语句,并进入步骤2;若否,则判定攻击串为非SQL注入攻击对应的攻击串并结束流程;
步骤2、判断攻击串对应的统一资源定位符URL和待检指纹是否均在白名单中;若是,则进入步骤3;若否,则进入步骤4;
步骤3、判定攻击串为业务SQL语句;
步骤4、判定检测到SQL注入攻击并生成业务语句误检提示。
上述检测业务SQL语句的过程中,首先利用预先设置好的业务指纹库检测判断业务指纹库中是否有与待检指纹一致的指纹,若有则可以初步推测该攻击串为业务SQL语句。当然,由于SQL注入攻击检测的应用场景较为复杂,极有可能出现误判的可能,因此上述检测业务SQL语句的过程在判定攻击串为待检业务SQL语句之后,进行白名单过滤操作,即:判断攻击串对应的统一资源定位符URL和待检指纹是否均在白名单中。若通过白名单过滤,则可以判定攻击串为业务SQL语句,不存在误判;若未通过白名单过滤,可以判定攻击串为SQL注入攻击对应的攻击串,并生成业务语句误检提示。
在图1、图2和图3对应的实施例中若最终判定检测到SQL注入攻击之后还可以存在以下操作:
A、指纹归并操作
对于检测为SQL注入攻击的待检指纹进行指纹归并,主要是对具有相似SQL语法特征的进行归类,对于归成一类的在页面只推送一条信息,这样能减少日志推送量。根据指纹进行聚类将相同的指纹归并成一类,可以在前台页面排除时能将该一类全部排除,加速误判收敛。
B、自适应频率统计
根据客户业务流量中URL被检查为攻击的次数进行统计,以ip为大类,将ip下攻击次数以y=50x+50(x为攻击次数,y为该ip下的总攻击次数)的算出该ip最佳的攻击次数,并将大于该攻击次数的日志推送给用户排除。
C、前台误判排除
将攻击串推送至前台页面进行误判检测处理;当误判检测处理的结果为误判时,将攻击串对应的URL和待检指纹添加至白名单。
其中,上述操作的目的在于对推送过来的SQL攻击日志进行人工业务误判排除,并将排除的信息写回白名单,形成一个正反馈的排除机制。对于判定为SQL注入攻击的攻击串,可以进一步将该攻击串推送前台给用户确认,如果用户确认为真正的业务误判SQL,则将该日志的URL和指纹信息写进白名单中,在下次SQL注入攻击检测该请求时就会直接放过不会拦截。
下面通过在实际应用中的实施例说明上述实施例描述的流程。
步骤1、构建指纹库
根据SQL语法语句数据库构建原黑指纹库、业务指纹库和白指纹库;其中,SQL语法语句数据库包括SQL注入攻击对应的语法语句、业务SQL语法语句和非SQL注入攻击对应的语法语句;剔除原黑指纹库中与白指纹库中相同的指纹得到黑指纹库。
步骤2、词法分析
获取网络流量中的攻击串,对攻击串根据SQL注入关键词进行词法分割,并将分割的内容分为9类特征,生成相应的token信息。
步骤3、语法分析
对词法分析后的token集合进行语法重组,对重组后的语法特征生成相应的指纹信息(即待检指纹),该指纹信息为唯一描述该攻击串的攻击特征。
步骤4、指纹查询
通过上述的语法词法分析生成一串指纹信息,将该指纹信息查询相应的指纹库,主要有以下几点检测标准:
(1)查询业务指纹库中是否存在与待检指纹相同的指纹,如果存在,则标记该攻击串为业务SQL语句;
(2)查询黑指纹库中是否存在与待检指纹相同的指纹,如果存在,则认为该攻击串为SQL注入攻击对应的攻击串;
(3)当业务指纹库和业务指纹库均不存在与待检指纹相同的指纹,则认为该攻击串不为SQL注入攻击对应的攻击串。
步骤5、白名单过滤
白名单的形式是URL+白指纹,对于上述识别为SQL注入攻击的攻击串会进行白名单过滤,主要是通过URL和白指纹结合的形式进行过滤,即对于攻击串的URL,如果存在白名单中,会进行上述生成待检指纹和白指纹匹配,如果匹配上,则认为该攻击串不是攻击。
步骤6、指纹归并
对于检测为业务SQL语句和/或SQL注入攻击对应的多个待检指纹进行指纹归并,即对具有相似SQL语法特征的进行归类,对于归成一类的在页面只推送一条信息,这样能减少日志推送量。
步骤7、自适应频率统计
根据业务流量中URL被检查为SQL注入攻击的次数进行统计,以ip为大类,将ip下攻击次数以y=50x+50(x为攻击次数,y为该ip下的总攻击次数)的算出该ip最佳的攻击次数,并将大于该攻击次数的日志推送给用户排除。
步骤8、误判排除
对于判定为业务SQL注入攻击的攻击串,可以进一步推送前台给用户确认,如果用户确认为真正的业务误判SQL,则可以将该日志的URL和指纹信息写进白名单中,以便在下次引擎识别该请求时就会直接放过不会拦截。
上述实际应用中的实施例通过基于词法语法分析的SQL注入检测,可以准确识别某些非SQL攻击数据,进一步使用指纹聚类后推送前台误判排除,可以达到快速误判收敛效果。由于该实施例结合白指纹和URL进行业务SQL注入攻击误判排除,可以实现精准减少攻击绕过。上述自适应频率统计展示的操作可以减少业务误判排除的工作量。
请参见图4,图4为本申请实施例所提供的一种SQL注入攻击的检测系统的结构示意图;
该系统可以包括:
指纹确定模块100,用于获取网络流量中的攻击串并确定攻击串对应的待检指纹;
攻击误检判断模块200,用于当待检指纹为黑指纹库中的指纹时,判断攻击串对应的统一资源定位符URL和待检指纹是否均在白名单中;若是,则判定攻击串不为SQL注入攻击对应的攻击串;若否,则判定检测到SQL注入攻击;
其中,黑指纹库存储有SQL注入攻击样本对应的指纹。
本实施例生成网络流量中的攻击串的待检指纹,本实施例默认预先设置好存有多个SQL注入攻击样本对应的指纹的黑指纹库,通过将待检指纹与黑指纹库中的指纹进行比对,若待检指纹为黑指纹库中的指纹则说明该攻击串存在未SQL注入攻击的嫌疑。进一步的,本实施例通过判断攻击串对应的统一资源定位符URL和待检指纹是否均在白名单中来检测黑指纹库比对的结果是否为误检。本申请默认存在有URL+白指纹形式的白名单,白名单中的URL和白指纹可以由用户灵活配置,因此在利用黑指纹库比对之后使用白名单过滤可以有效的避免现有技术中SQL注入攻击的问题。
进一步的,还包括:
黑指纹库构建模块,用于根据SQL语法语句数据库构建原黑指纹库和白指纹库;还用于剔除原黑指纹库中与白指纹库中相同的指纹得到黑指纹库;其中,SQL语法语句数据库包括SQL注入攻击对应的语法语句和非SQL注入攻击对应的语法语句。
进一步的,还包括:
业务语句检测模块,用于判断业务指纹库中是否包括待检指纹;若是,则判定攻击串为待检业务SQL语句;
业务误检判断模块,用于判断攻击串对应的统一资源定位符URL和待检指纹是否均在白名单中;若是,则判定攻击串为业务SQL语句;若否,则判定检测到SQL注入攻击并生成业务语句误检提示。
进一步的,指纹确定模块100包括:
词法分析单元,用于获取网络流量中的攻击串并根据SQL注入关键词对攻击串进行词法分析得到N类特征信息,生成每一类特征信息对应的token信息;
语法分析单元,用于对token信息进行语法重组得到语法特征,生成语法特征对应的待检指纹。
进一步的,还包括:
前台页面排除模块,用于将攻击串推送至前台页面进行误判检测处理;还用于当误判检测处理的结果为误判时,将攻击串对应的URL和待检指纹添加至白名单。
由于系统部分的实施例与方法部分的实施例相互对应,因此系统部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
本申请还提供了一种计算机可读存储介质,其上存有计算机程序,该计算机程序被执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请还提供了一种电子设备,可以包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时,可以实现上述实施例所提供的步骤。当然所述电子设备还可以包括各种网络接口,电源等组件。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的状况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (12)
1.一种SQL注入攻击的检测方法,其特征在于,包括:
获取网络流量中的攻击串并确定所述攻击串对应的待检指纹;
当所述待检指纹为黑指纹库中的指纹时,判断所述攻击串对应的统一资源定位符URL和所述待检指纹是否均在白名单中;其中,所述黑指纹库存储有SQL注入攻击样本对应的指纹;
若是,则判定所述攻击串不为SQL注入攻击对应的攻击串;
若否,则判定检测到所述SQL注入攻击。
2.根据权利要求1所述检测方法,其特征在于,在获取网络流量中的攻击串之前,还包括:
根据SQL语法语句数据库构建原黑指纹库和白指纹库;其中,所述SQL语法语句数据库包括SQL注入攻击对应的语法语句和非SQL注入攻击对应的语法语句;
剔除所述原黑指纹库中与所述白指纹库中相同的指纹得到所述黑指纹库。
3.根据权利要求1所述检测方法,其特征在于,还包括:
判断业务指纹库中是否包括所述待检指纹;若是,则判定所述攻击串为待检业务SQL语句;
判断所述攻击串对应的统一资源定位符URL和所述待检指纹是否均在白名单中;若是,则判定所述攻击串为业务SQL语句;若否,则判定检测到所述SQL注入攻击并生成业务语句误检提示。
4.根据权利要求1所述检测方法,其特征在于,所述获取网络流量中的攻击串并确定所述攻击串对应的待检指纹包括:
根据SQL注入关键词对所述攻击串进行词法分析得到N类特征信息,生成每一类特征信息对应的token信息;
对所述token信息进行语法重组得到语法特征,生成所述语法特征对应的待检指纹。
5.根据权利要求1至4任一项所述检测方法,其特征在于,在判定检测到SQL注入攻击之后,还包括:
将所述攻击串推送至前台页面进行误判检测处理;
当所述误判检测处理的结果为误判时,将所述攻击串对应的URL和所述待检指纹添加至所述白名单。
6.一种SQL注入攻击的检测系统,其特征在于,包括:
指纹确定模块,用于获取网络流量中的攻击串并确定所述攻击串对应的待检指纹;
攻击误检判断模块,用于当所述待检指纹为黑指纹库中的指纹时,判断所述攻击串对应的统一资源定位符URL和所述待检指纹是否均在白名单中;若是,则判定所述攻击串不为SQL注入攻击对应的攻击串;若否,则判定检测到所述SQL注入攻击;
其中,所述黑指纹库存储有SQL注入攻击样本对应的指纹。
7.根据权利要求6所述检测系统,其特征在于,还包括:
黑指纹库构建模块,用于根据SQL语法语句数据库构建原黑指纹库和白指纹库;还用于剔除所述原黑指纹库中与所述白指纹库中相同的指纹得到所述黑指纹库;其中,所述SQL语法语句数据库包括SQL注入攻击对应的语法语句和非SQL注入攻击对应的语法语句。
8.根据权利要求6所述检测系统,其特征在于,还包括:
业务语句检测模块,用于判断业务指纹库中是否包括所述待检指纹;若是,则判定所述攻击串为待检业务SQL语句;
业务误检判断模块,用于判断所述攻击串对应的统一资源定位符URL和所述待检指纹是否均在白名单中;若是,则判定所述攻击串为业务SQL语句;若否,则判定检测到所述SQL注入攻击并生成业务语句误检提示。
9.根据权利要求6所述检测系统,其特征在于,所述指纹确定模块包括:
词法分析单元,用于获取网络流量中的攻击串并根据SQL注入关键词对所述攻击串进行词法分析得到N类特征信息,生成每一类特征信息对应的token信息;
语法分析单元,用于对所述token信息进行语法重组得到语法特征,生成所述语法特征对应的待检指纹。
10.根据权利要求6至9任一项所述检测系统,其特征在于,还包括:
前台页面排除模块,用于将所述攻击串推送至前台页面进行误判检测处理;还用于当所述误判检测处理的结果为误判时,将所述攻击串对应的URL和所述待检指纹添加至所述白名单。
11.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至5任一项所述SQL注入攻击的检测方法的步骤。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述SQL注入攻击的检测方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811612088.7A CN109688137A (zh) | 2018-12-27 | 2018-12-27 | 一种sql注入攻击的检测方法、系统及相关组件 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811612088.7A CN109688137A (zh) | 2018-12-27 | 2018-12-27 | 一种sql注入攻击的检测方法、系统及相关组件 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109688137A true CN109688137A (zh) | 2019-04-26 |
Family
ID=66190457
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811612088.7A Pending CN109688137A (zh) | 2018-12-27 | 2018-12-27 | 一种sql注入攻击的检测方法、系统及相关组件 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109688137A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110210231A (zh) * | 2019-06-04 | 2019-09-06 | 深信服科技股份有限公司 | 一种安全防护方法、系统、设备及计算机可读存储介质 |
CN110460606A (zh) * | 2019-08-16 | 2019-11-15 | 中国银行股份有限公司 | 一种二阶sql注入漏洞检测方法、装置及设备 |
CN111193714A (zh) * | 2019-12-06 | 2020-05-22 | 武汉极意网络科技有限公司 | 一种验证码打码平台自动化追踪方法及系统 |
CN111585974A (zh) * | 2020-04-17 | 2020-08-25 | 上海中通吉网络技术有限公司 | 注入类漏洞检测方法及装置、可读存储介质及终端 |
CN111901318A (zh) * | 2020-07-15 | 2020-11-06 | 杭州安恒信息技术股份有限公司 | 一种命令注入攻击检测的方法、系统及设备 |
CN111984970A (zh) * | 2019-05-22 | 2020-11-24 | 深信服科技股份有限公司 | 一种sql注入检测方法、系统及电子设备和存储介质 |
CN112583774A (zh) * | 2019-09-30 | 2021-03-30 | 北京观成科技有限公司 | 一种攻击流量检测的方法、装置、存储介质及电子设备 |
CN113067792A (zh) * | 2020-01-02 | 2021-07-02 | 深信服科技股份有限公司 | 一种xss攻击识别方法、装置、设备及介质 |
CN113111345A (zh) * | 2020-01-13 | 2021-07-13 | 深信服科技股份有限公司 | 一种xxe攻击检测方法、系统、设备及计算机存储介质 |
CN113469366A (zh) * | 2020-03-31 | 2021-10-01 | 北京观成科技有限公司 | 一种加密流量的识别方法、装置及设备 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102045319A (zh) * | 2009-10-21 | 2011-05-04 | 中国移动通信集团山东有限公司 | Sql注入攻击检测方法及其装置 |
CN102567546A (zh) * | 2012-01-18 | 2012-07-11 | 北京神州绿盟信息安全科技股份有限公司 | 一种sql注入检测方法及装置 |
CN102833270A (zh) * | 2012-09-18 | 2012-12-19 | 山石网科通信技术(北京)有限公司 | Sql注入攻击的检测方法、装置和具有该装置的防火墙 |
CN103559444A (zh) * | 2013-11-05 | 2014-02-05 | 星云融创(北京)信息技术有限公司 | 一种sql注入检测方法及装置 |
EP2882159A1 (en) * | 2013-12-06 | 2015-06-10 | Cyberlytic Limited | Profiling cyber threats detected in a target environment and automatically generating one or more rule bases for an expert system usable to profile cyber threats detected in a target environment |
CN105160252A (zh) * | 2015-08-10 | 2015-12-16 | 北京神州绿盟信息安全科技股份有限公司 | 一种结构化查询语言注入攻击的检测方法及装置 |
CN107483502A (zh) * | 2017-09-28 | 2017-12-15 | 深信服科技股份有限公司 | 一种检测残余攻击的方法及装置 |
CN107657174A (zh) * | 2016-07-26 | 2018-02-02 | 北京计算机技术及应用研究所 | 一种基于协议指纹的数据库入侵检测方法 |
CN107784228A (zh) * | 2016-08-31 | 2018-03-09 | 百度在线网络技术(北京)有限公司 | Sql注入攻击检测方法及装置 |
CN108959926A (zh) * | 2018-06-27 | 2018-12-07 | 杭州安恒信息技术股份有限公司 | 一种sql注入攻击的检测方法 |
CN108989355A (zh) * | 2018-09-07 | 2018-12-11 | 郑州云海信息技术有限公司 | 一种漏洞检测方法和装置 |
-
2018
- 2018-12-27 CN CN201811612088.7A patent/CN109688137A/zh active Pending
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102045319A (zh) * | 2009-10-21 | 2011-05-04 | 中国移动通信集团山东有限公司 | Sql注入攻击检测方法及其装置 |
CN102567546A (zh) * | 2012-01-18 | 2012-07-11 | 北京神州绿盟信息安全科技股份有限公司 | 一种sql注入检测方法及装置 |
CN102833270A (zh) * | 2012-09-18 | 2012-12-19 | 山石网科通信技术(北京)有限公司 | Sql注入攻击的检测方法、装置和具有该装置的防火墙 |
CN103559444A (zh) * | 2013-11-05 | 2014-02-05 | 星云融创(北京)信息技术有限公司 | 一种sql注入检测方法及装置 |
EP2882159A1 (en) * | 2013-12-06 | 2015-06-10 | Cyberlytic Limited | Profiling cyber threats detected in a target environment and automatically generating one or more rule bases for an expert system usable to profile cyber threats detected in a target environment |
CN105160252A (zh) * | 2015-08-10 | 2015-12-16 | 北京神州绿盟信息安全科技股份有限公司 | 一种结构化查询语言注入攻击的检测方法及装置 |
CN107657174A (zh) * | 2016-07-26 | 2018-02-02 | 北京计算机技术及应用研究所 | 一种基于协议指纹的数据库入侵检测方法 |
CN107784228A (zh) * | 2016-08-31 | 2018-03-09 | 百度在线网络技术(北京)有限公司 | Sql注入攻击检测方法及装置 |
CN107483502A (zh) * | 2017-09-28 | 2017-12-15 | 深信服科技股份有限公司 | 一种检测残余攻击的方法及装置 |
CN108959926A (zh) * | 2018-06-27 | 2018-12-07 | 杭州安恒信息技术股份有限公司 | 一种sql注入攻击的检测方法 |
CN108989355A (zh) * | 2018-09-07 | 2018-12-11 | 郑州云海信息技术有限公司 | 一种漏洞检测方法和装置 |
Non-Patent Citations (1)
Title |
---|
周学广,孙艳,任延珍: "《信息内容安全》", 30 November 2012 * |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111984970B (zh) * | 2019-05-22 | 2023-11-07 | 深信服科技股份有限公司 | 一种sql注入检测方法、系统及电子设备和存储介质 |
CN111984970A (zh) * | 2019-05-22 | 2020-11-24 | 深信服科技股份有限公司 | 一种sql注入检测方法、系统及电子设备和存储介质 |
CN110210231B (zh) * | 2019-06-04 | 2023-07-14 | 深信服科技股份有限公司 | 一种安全防护方法、系统、设备及计算机可读存储介质 |
CN110210231A (zh) * | 2019-06-04 | 2019-09-06 | 深信服科技股份有限公司 | 一种安全防护方法、系统、设备及计算机可读存储介质 |
CN110460606A (zh) * | 2019-08-16 | 2019-11-15 | 中国银行股份有限公司 | 一种二阶sql注入漏洞检测方法、装置及设备 |
CN110460606B (zh) * | 2019-08-16 | 2021-10-12 | 中国银行股份有限公司 | 一种二阶sql注入漏洞检测方法、装置及设备 |
CN112583774A (zh) * | 2019-09-30 | 2021-03-30 | 北京观成科技有限公司 | 一种攻击流量检测的方法、装置、存储介质及电子设备 |
CN111193714A (zh) * | 2019-12-06 | 2020-05-22 | 武汉极意网络科技有限公司 | 一种验证码打码平台自动化追踪方法及系统 |
CN113067792A (zh) * | 2020-01-02 | 2021-07-02 | 深信服科技股份有限公司 | 一种xss攻击识别方法、装置、设备及介质 |
CN113111345B (zh) * | 2020-01-13 | 2024-05-24 | 深信服科技股份有限公司 | 一种xxe攻击检测方法、系统、设备及计算机存储介质 |
CN113111345A (zh) * | 2020-01-13 | 2021-07-13 | 深信服科技股份有限公司 | 一种xxe攻击检测方法、系统、设备及计算机存储介质 |
CN113469366A (zh) * | 2020-03-31 | 2021-10-01 | 北京观成科技有限公司 | 一种加密流量的识别方法、装置及设备 |
CN111585974A (zh) * | 2020-04-17 | 2020-08-25 | 上海中通吉网络技术有限公司 | 注入类漏洞检测方法及装置、可读存储介质及终端 |
CN111901318A (zh) * | 2020-07-15 | 2020-11-06 | 杭州安恒信息技术股份有限公司 | 一种命令注入攻击检测的方法、系统及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109688137A (zh) | 一种sql注入攻击的检测方法、系统及相关组件 | |
CN109510737B (zh) | 协议接口测试方法、装置、计算机设备和存储介质 | |
CN105825138B (zh) | 一种敏感数据识别的方法和装置 | |
CN110602029B (zh) | 一种用于识别网络攻击的方法和系统 | |
US11848913B2 (en) | Pattern-based malicious URL detection | |
CN105956180B (zh) | 一种敏感词过滤方法 | |
CN112866023B (zh) | 网络检测、模型训练方法、装置、设备及存储介质 | |
CN111104521A (zh) | 一种基于图分析的反欺诈检测方法及检测系统 | |
CN110113315B (zh) | 一种业务数据的处理方法及设备 | |
CN111767573A (zh) | 数据库安全管理方法、装置、电子设备及可读存储介质 | |
CN112487208A (zh) | 一种网络安全数据关联分析方法、装置、设备及存储介质 | |
CN109409113B (zh) | 一种电网数据安全防护方法和分布式电网数据安全防护系统 | |
CN111338692A (zh) | 基于漏洞代码的漏洞分类方法、装置及电子设备 | |
CN112559776A (zh) | 一种敏感信息的定位方法及系统 | |
CN114650176A (zh) | 钓鱼网站的检测方法、装置、计算机设备及存储介质 | |
CN108733543B (zh) | 一种日志分析的方法、装置、电子设备和可读存储介质 | |
CN109672586A (zh) | 一种dpi业务流量识别方法、装置与计算机可读存储介质 | |
US20120136652A1 (en) | Method, a computer program and apparatus for analyzing symbols in a computer | |
CN107222494A (zh) | 一种sql注入攻击防御组件及方法 | |
CN112016317A (zh) | 基于人工智能的敏感词识别方法、装置及计算机设备 | |
CN110866700A (zh) | 确定企业员工信息泄露源的方法及装置 | |
CN107730021B (zh) | 一种业务指标优化方法和装置 | |
AU2021105619A4 (en) | A method for identification of duplicate security vulnerabilities using machine learning | |
CN114969450A (zh) | 一种用户行为分析方法、装置、设备及存储介质 | |
CN109995605A (zh) | 一种流量识别方法及装置、以及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190426 |
|
RJ01 | Rejection of invention patent application after publication |