APP下载

面向网络环境的SQL注入行为检测方法

2016-07-18赵宇飞熊刚贺龙涛李舟军

通信学报 2016年2期
关键词:网络流量三元组语句

赵宇飞,熊刚,贺龙涛,李舟军



面向网络环境的SQL注入行为检测方法

赵宇飞1,熊刚2,贺龙涛3,李舟军1

(1. 北京航空航天大学计算机学院,北京 100083;2. 中国科学院信息工程研究所,北京 100093; 3. 国家计算机网络应急技术处理协调中心,北京 100029)

SQL注入攻击是Web应用面临的主要威胁之一,传统的检测方法针对客户端或服务器端进行。通过对SQL注入的一般过程及其流量特征分析,发现其在请求长度、连接数以及特征串等方面,与正常流量相比有较大区别,并据此提出了基于长度、连接频率和特征串的LFF(length-frequency-feature)检测方法,首次从网络流量分析的角度检测SQL注入行为。实验结果表明,在模拟环境下,LFF检测方法召回率在95%以上,在真实环境下,该方法也取得较好的检测效果。

Web安全;SQL注入;网络流量;异常检测

1 引言

目前,大多数信息系统和商业应用都提供了基于数据库的Web服务,与此同时,针对Web服务中漏洞发起的攻击也越来越多。在OWASP发布的2013年Web安全漏洞Top10中[1],由于操作难度低、危害巨大,SQL注入漏洞名列第一,且其普遍程度呈现出逐年上升的趋势。

SQL注入是一种利用应用程序数据库漏洞的注入技术。SQL注入攻击针对的是使用后台数据库的交互式Web服务,主要通过网络应用层协议HTTP完成。SQL注入攻击的目标一般不是Web服务器本身,而是为了非法获取用户信息、数据库中的敏感数据以及服务器数据信息[2~4]。由于SQL注入利用SQL语言的特性,理论上对Oracle、MySQL、MS Server等基于SQL语言的数据库都有效。通过对SQL注入行为的检测,可及时向被注入系统报警,有效保护企业及个人数据安全,同时可作为网络取证的证据,对网络攻击行为形成震慑作用。

不同于以往基于客户端或服务器端的检测方法,本文通过分析和研究SQL注入过程及其流量特征,提出一种在网络流量上检查SQL注入行为的方法,本文方法的主要贡献和创新点如下。

1) 从某ISP获取的211 GB原始网络流量中(经人工检测不含SQL注入),详细统计并分析了HTTP请求的URI长度、实体长度、HTTP连接数以及请求特征串;并通过与4种常用SQL注入工具的注入流量相比较,发现注入流量在HTTP请求长度、连接频率以及请求特征串等方面,与正常流量相比有较大区别。这为从网络流量分析的角度来检测SQL注入行为奠定了理论基础。

2) 基于上述洞察,提出了LFF(length-frequency-feature)检测方法。对于每条HTTP请求,首先分别检测其请求长度和连接频率;然后采用特征串匹配算法,对请求语句进行匹配;最后经投票决策,确定HTTP请求中是否有SQL注入。该方法首次从网络流量分析的角度来检测SQL注入行为。

3)通过大量实验,验证了LFF检测方法的有效性。首先,使用该方法对2种新的注入工具产生的SQL注入流量进行检测,检测的召回率在95%以上。然后,在真实网络环境下,对未经任何处理的196 GB真实网络流量进行检测,实验结果表明,在真实流量中检测到SQL注入行为,且该方法的检测召回率在74%以上。这说明本文提出的方法能够有效地发现网络流量中的SQL注入行为。

2 相关工作

马小婷等[5]全面分析了SQL注入检测常用的原理和技术。大体而言,现有的SQL注入检测分为2类。

第一类是服务器端检测技术。Halfond[6,7]和Shar等[8]将注入语句的静态特征与后台运行时的动态特征相结合,通过尽可能少的前期学习,实现SQL注入检测;Shahriar等[9]采用静态代码分析,根据代码中数据库相关的API调用找出数据库查询语句,再计算出表、列、值的离散程度,从而判断是否有SQL注入发生。此外,还通过机器学习方法[10]、基于规约的方法[11]以及污点跟踪技术[12]检测SQL注入。总体来看,服务器端可以检测全部的数据库查询请求,但需要预先分析所有正常的SQL查询语句,还需要通过源码分析出注入点,前期工作量大,且检测结果依赖于关键词的提取,准确率有待提高。

第二类是客户端SQL注入漏洞检测。一般是在无法得到网站源码的情况下进行,只能通过监控Web应用程序的行为判断是否有SQL注入漏洞。Huang等[13]提出了基于错误注入和行为监控的Web应用程序安全分析方法,将软件测试技术应用到Web 应用程序漏洞检测;Stefan等[14]设计了SecuBat,通过爬虫模块、攻击模块和分析模块的联合使用判断该页面是否存在SQL注入漏洞;APPELT[15]设计了一种高效的SQL注入工具,采用多种绕过技术,以检测网页中是否存在SQL注入漏洞。客户端检测的优点在于可以忽略不同编程语言的特性,但其最大的缺点就是容易漏检,难以覆盖所有检测点。

在网络流量检测方面,王苏南[16]优化了高速复杂网络环境下异常流量检测方法,提出了无监督的网络异常溯源算法;Zhang等[17]采用改进的最邻近算法,利用机器学习进行网络流量检测和分类,但该方法处理速度较慢;周爱平等[18]系统总结了高速网络环境中的网络测量方法,并比较了这些方法的优劣,总体而言,这些方法都有较大局限性;王鹏等[19]提出了粒度自适应的多径流量分割算法,能较好地区分不同类型的流量。

3 SQL注入过程及其特征分析

一次完整的SQL注入过程可分为3个阶段:寻找注入点、确定数据库类型、数据窃取。这3个阶段相互独立又紧密联系。

本文对从某ISP获取的211 GB原始网络流量进行分析(经人工检测不含SQL注入)。然后在服务器上搭建了有SQL注入漏洞的网站,通过4种常用注入工具向该网站实施SQL注入攻击,并获取到不同工具的注入流量,同时也对4种软件的注入流量进行了统计分析。这4种软件分别是:啊D2.32、明小子4.3、pangolin4.0[20]、sqlmap1.0[21]。下面具体分析每一个阶段的特征和统计结果。

3.1 寻找注入点

这一阶段需要寻找有注入漏洞的网页。一般的方法是通过爬虫遍历网站所有网页,对网页所提交的参数进行更改,根据服务器返回的信息,判断是否存在注入漏洞。这一过程中常用的攻击方式包括注释符攻击(添加单引号)、重言式攻击(添加“and 1=1--”)和其他SQL语言(添加drop或delete)。由于需要遍历网站及参数,客户端会多次连接服务器,故在单位时间内会产生大量连接。

由上述分析可知,对于四元组<源IP,源端口,目的IP,目的端口>,在客户端频繁连接服务器时,除源端口,其他值不会发生改变。所以,可以通过三元组<源IP,目的IP,目的端口>标记和区分主机发起的HTTP请求。本文希望通过检测单位时间内HTTP连接数(即连接频率),找出网络流量中的SQL注入行为。

在211 GB原始流量中,HTTP请求次数为712 521次,共汇聚成34 509条三元组。表1列出了总连接数前五的三元组,相应的IP已做匿名化处理。

从表1可以看出,每个三元组的平均连接次数差异很大,这是网络状况等多方面的因素造成的。经统计,所有三元组的平均连接次数为4.87次/秒。

4种注入工具HTTP连接数的统计结果如表2所示。其中,啊D2.32和sqlmap1.0注入成功,另外2种工具失败。

在表2中,啊D2.32和sqlmap1.0的平均连接次数较大,而其他2种工具的平均连接次数较少。这是因为明小子4.3和pangolin4.0注入失败,这2种工具都设置了较大的超时重传时间。

比较表2和表1,SQL注入工具的连接频率会高于正常网络流量中HTTP连接频率的平均值。因此,计算单位时间内HTTP请求的三元组次数,可以作为SQL注入检测的一个标准。虽然正常网络中平均HTTP连接频率为4.87次/秒,但大部分的连接频率远低于这个值,所以,本文将HTTP连接频率的阈值设置为3次/秒。检测时,若某三元组1 s内的连接数大于3次,则认为连接频率过大,可能存在SQL注入行为,需要进一步的检测。

表1 211 GB原始流量中总连接数前五的三元组

表2 4种注入工具注入流量的HTTP连接数

3.2 确定数据库类型

这一阶段对数据库中的表做select操作,根据数据库返回信息判断数据库类型。这个过程中需要向URI(或HTTP实体)拼接SQL查询语句,故URI长度(或HTTP实体长度)与正常网络流量相比会发生很大变化。

HTTP协议主要有GET和POST 2种交互方式,不同的方式检测HTTP请求的不同部分。GET方式检测URI长度,POST方式检测HTTP实体长度。因为这一阶段中URI长度(或HTTP实体)变化明显,本文试图通过检测URI长度(或HTTP实体长度),在发生SQL注入时找出异常的HTTP请求。

3.2.1 URI长度统计

从211 GB原始流量中,共提取到712 516条URI长度大于零的HTTP请求,对每条请求计算URI长度并进行统计。结果显示,正常网络流量中,平均URI长度为78.3 byte,加权平均URI长度为103.1 byte,其中长度小于100 byte的URI占到总量的80.69%。URI统计结果如图1所示,长度小于100 byte的URI长度频率分布直方图如图2所示。4种SQL注入工具的注入流量中URI长度频数分布直方图如图3所示。

表3比较了正常流量和注入流量URI长度的相关统计值。表3表明,有3种工具的URI平均值大于正常流量平均值;但4种工具的加权平均值均小于正常流量的加权平均值;4种注入工具URI长度的众数都大于正常流量众数;正常流量URI长度的标准差是5种中最大的,说明该数据离散程度高,具有较强的代表性。由图1可知,80%以上的URI长度小于100 byte,但由于其余20%的URI长度较大,导致正常流量URI加权平均值偏大。从表2中可以发现,明小子4.3HTTP请求个数偏少,导致其URI统计值偏低,但从图3(b)中可以看出,仍有大量的URI长度集中在80~90 byte的范围内。综上所述,可以认为当HTTP请求的URI长度超过某个阈值时,该请求可能包含异常行为,需要进行进一步的判断。

由图2可知,大部分HTTP请求的URI长度在5~70 byte之间,故本文设置URI长度阈值为70 byte,当长度大于70时,认为该请求存在异常。

表3 URI长度统计值

3.2.2 HTTP实体长度统计

首先对211 GB原始流量中POST请求的实体长度进行统计,结果如图4所示,横坐标表示以前一个坐标为下限、当前坐标为上限的区间。

在211GB原始流量中共提取到190 938条POST请求,其实体长度分布呈现出“两头大,中间小”的情况,这是因为通常用POST方式向服务器输入数据,比如提交HTML表单。浏览网页时,登录、评论等行为都会产生POST请求;向网站服务器传输图片等文件时,采用POST方式会有较大载荷,这样就造成图3的情况。由于并不是所有注入工具都支持POST方式,本文挑选支持该方式的sqlmap1.0,对该工具HTTP请求实体长度也进行了统计,结果如图5所示。

表4 实体长度统计值

图5和图4的对比结果如表4所示。可以看出,正常流量的实体长度分布呈现出两极化趋势,POST注入方式并没有在实体长度上表现出明显的特征。将图5与图3(d)比较,不论是POST还是GET,其请求长度值都集中在60~80 byte的范围;但POST请求的总次数要远小于GET方式的总次数,说明POST注入有更强的隐蔽性。因此对于这种类型的注入需要采取其他的检测方法。

3.3 数据窃取阶段

确定数据库类型后,一般会根据字典猜测表名和列名,再通过二分查找等方法确定列中数据个数和内容。由于需要猜测内容,注入时会向URI(或HTTP实体)拼接SQL查询语句,拼接的语句中含有大量SQL函数。可以将SQL查询语句或SQL函数作为特征串进行匹配和检测。

特征串检测适用于SQL注入的全过程,尤其适用于这一阶段。因为SQL注入攻击会利用常见数据库信息进行注入。分析4种工具的注入流量,本文归纳出SQL注入语句的如下特征。

1) 利用SQL语言注释符截断原有语句,通过“and”或“or”添加查询条件。

2) 含有select、union、from和where等SQL语言关键词。

3) 含有SQL函数,包括chr、exists、ascw、count等。

4) 注入语句使用字母大小写替换等方式绕过检测。

可以发现,特征1)和特征2)具有很强的局限性,在正常的HTTP请求中,也会有相似关键词,若只以特征1)和特征2)作为特征串,会导致误报率较高。特征3)具有一定特异性,其缺点是需要大量SQL函数作为匹配的集合,由于SQL函数众多,不可能全部包括。特征4)导致特征串集合规模成指数增长,故必须采用其他处理方法。

通过上述分析,本文认为用于检测的特征串应具备以下特点:特征串不是简单的SQL关键词或函数名,而是SQL语句片段;特征串不仅包括SQL语言,还应包括常见数据库信息;特征串应包括注入工具所使用的字典;特征串尽可能多的覆盖注入语句的绕过方式。为了构造符合上述特点的特征串集合,本文采用2种方法,分别在下面详细介绍。

表5 最长公共子串重复次数前五

表6 常见注入语句的正则表示

3.3.1 基于序列对比的Needle-Wunsch算法

Needle-Wunsch算法最早用于生物序列分析,适用于整体相似性度较高的2个序列。本文采用改进的Needle-Wunsch算法进行逆向匹配,从而找出注入语句的最长公共子串。对表2中1 408条SQL注入语句两两互求最长公共子串,共得到161 820条不同的子串。去除没有意义的部分,根据重复次数排序,结果如表5所示。

可以看出,得到的公共子串不是分散的关键词,而是基本完整的SQL语句,有利于进一步匹配;同时,公共子串中含有admin等字典内容,有利于SQL注入语句的查找。但该算法得到的结果对字母大小写敏感,故本文又采用正则表达式方法,作为对绕过方式的检验。

3.3.2 特征串的正则表示

虽然通过NW算法,解决了特征串的选取问题,但仍可能通过字母大小写替换等方式绕过特征串检测。为了解决这个问题,以更加完备地描述SQL注入语句的特征,本文对上述获取的特征串使用正则表达式进行表示。表6给出一些常见注入语句及其正则表示。

用于检测的特征串集合由3部分组成,第1部分由NW算法得到的公共子串的正则表示组成;第2部分是常用数据库信息,包括数据库系统表等;第3部分是注入工具使用的猜测字典。

综上所述,通过寻找注入点、确定数据库类型以及数据窃取,构成了一次完整的SQL注入攻击。本文分析了每个阶段的流量特征,并据此对每个阶段都提出了一种检测方法。为了综合利用这些方法,本文提出了基于长度、连接频率和特征串的LFF检测方法。

4 基于LFF的SQL注入检测方法

4.1 检测方法描述

针对SQL注入不同阶段的特征,以及前文得出的相关参数的阈值,本文提出了LFF (length-frequency-feature)检测方法,其步骤如下。

1) 判断HTTP请求是GET还是POST。若是GET方式,提取URI后进入步骤2),若是POST方式,提取实体后进入步骤3)。

2) 对URI进行长度检测,若长度大于70 byte,则发出警告后进入步骤3),否则直接进入步骤3)。

3) 提取当前HTTP请求的三元组,判断其是否存在于三元组表中;若存在,相应三元组连接数加1,若不存在,则创建该三元组;对各组进行连接频率检测,若连接频率大于3次/秒,则发出警告后进入步骤4),否则直接进入步骤4)。

4) 对步骤1)提取出的结果进行特征串匹配。匹配的方法是找出特征串集合中每一项在该结果中首次出现的位置,若返回值不为空,则表明匹配成功,匹配检测发出警告后进入步骤5),否则直接进入步骤5)。

5) 对步骤2)到步骤4)中的检测结果进行投票决策。若有2种及以上的检测方法发出警告,则判定当前HTTP请求存在SQL注入行为;若只有一种检测发出警告,则记录该请求,由人工进一步判断;若都没有发出警告,则认为当前HTTP请求不是SQL注入语句,进入步骤6)。

6) 获取下一条HTTP请求,重复步骤1)至步骤5)。

LFF检测方法流程如图6所示。

表7 HTTP连接数检测验证

4.2 方法有效性验证

为了验证LFF检测方法的有效性,本文使用2个新的注入工具Havij1.7pro和safe3,对搭建在服务器上的网站进行SQL注入攻击,并获取注入时的流量。其中,Havij1.7pro注入失败,safe3注入成功。连同之前的4个注入工具,对这6个注入工具的检测结果如下。

4.2.1 连接频率检测验证

根据3.1节所述,将连接频率阈值设置为3次/秒,对超过阈值的HTTP请求发出警报。6个注入工具的检测结果如表7所示,连接频率检测并没有检测到Havij1.7pro的注入行为。这是因为该工具注入失败,其等待时间设置为0.5 s,当服务器没有返回信息时,该工具每隔0.5 s会再进行一次尝试,所以连接数较低。但对于其他注入工具,该方法有较好的检测结果。

4.2.2 长度检测验证

根据3.2节所述,将请求长度阈值设置为70 byte,对超过阈值的HTTP请求发出警报。结果表明,长度检测产生警报的HTTP请求都是SQL注入语句,误检率为0。6个注入工具的检测结果如表8所示。除工具sqlmap1.0,该检测方法对其他工具都有较好的检测效果。通过对注入工具的分析,认为长度检测结果与注入工具的设计有关,sqlmap1.0产生的注入语句长度较短,故检测效果较差。但从总体效果看,该检测已经起到一定的作用。为了提高检测召回率,可以适当减少阈值。

4.2.3 特征串检测验证

根据3.3中提取出的特征串,对6种工具的注入行为进行检测,检测结果如表9所示。可以看出,6种注入工具检测召回率都在95%以上,有很好的检测结果。但仍有部分注入语句没有检测出。这是因为还有一些语句采用了其他的绕过手段,比如,对注入点的参数进行算术运算;或是对注入语句进行ASCII编码。这些问题需要在未来的工作中解决。

表8 长度检测模块验证结果

表9 6种注入工具特征串检测结果

表10 LFF投票决策结果验证

4.2.4 投票决策验证

上面各节只是对各检测方法的验证,本节将对投票决策的结果进行验证和分析。根据表7~表9的结果,横向来看,各检测模块都有一定的局限性,不能只根据一种检测方法的结果就认为存在SQL注入行为;纵向来看,每种工具都至少被2种方法检测出,即各检测方法之间具有互补性。因此,投票决策模块的原则是:若有2种及以上的检测方法发出警报,就认为是SQL注入行为;若只有一种检测发出警报,则记录相关信息,由人工做进一步判断;若都没有发出警报,则认为是正常HTTP请求。

本文对投票决策的结果进行人工验证,结果如表10所示。结果表明,对各注入工具的召回率在95%以上。表10与表9相比,检测正确有所上升。这是因为,虽然有些语句的特征串并没有发现,但仍然能通过单位时间连接次数和请求长度发现其异常。

5 真实网络环境下的实验验证

从相同ISP又获得196GB原始网络流量,这些流量事先未经过任何处理和标记,利用LLF检测方法对其进行检测,作为真实网络环境下的验证,并希望从中发现SQL注入行为。检测结果如表11所示。

表11 196 GB真实流量检测结果

LFF检测完成后,由人工对196 GB流量进行标记和验证。其中,共有3 033条注入语句,LFF方法检测出2 268条注入语句,召回率为74.77%,误报率为0。部分注入语句未被发现的原因是:一些语句采用了ASCII编码等方式进行绕过;检测所用的特征串集合没有覆盖所有的特征串。结果表明,该方法没有产生误报,没有将搜索引擎产生的相似流量标记为SQL注入流量。

经过核查,3 033条注入语句中,有90%以上来自同一IP地址,该IP地址为218.30.117.72,属于北京市某公司数据中心,可能为租用云服务器实施SQL注入攻击。

6 结束语

本文从网络流量检测的角度,提出了针对SQL注入的LFF检测方法。LFF检测包括长度检测、连接频率检测和特征串检测。3种检测方法以SQL注入各阶段特征为依据,并以大量正常流量作为分析基础,其结果具有一定的普遍性和代表性。在模拟环境下,该方法检测召回率在95%以上;在真实网络环境中,检测召回率在74%以上,能够较准确地发现网络中的SQL注入行为。未来的工作包括2个方面:1) 深入分析SQL注入的其他特征,以检测出有绕过形式的注入语句;2) 拓展该方法的应用范围,检测XSS等其他类型的攻击。

[1] OWASP 2013 top 10 risks[EB/OL]. https://www.owasp.org/index.php/ Top_10_2013-Top_10, 2015-3-12.

[2] MCDONALD, S. SQL Injection: modes of attack, defense, and why it matters[EB/OL]. http://www.governmentsecurity.org/articles/SQLInjectionModesofAttackDefence and Why It Matters. php, 2015-3-11.

[3] ORSO A, HALFOND W G J, VIEGAS J. A classification of SQL injection attacks and countermeasures[C]//The International Symposium on Secure Software Engineering. c2006.

[4] APPELT D, NGUYEN D C, BRIAND L. Behind an application firewall, are we safe from SQL injection attacks[C]//IEEE International Conference on Software Testing, Verification and Validation (ICST). c2015:1-10.

[5] 马小婷,胡国平,李舟军.SQL注入漏洞检测与防御技术研究[J].计算机安全,2010, (11):18-24.

MA X T, HU G P, LI Z J. Research on detection and prevention technologies for SQL injection vulnerability[J]. Computer Security, 2010, (11):18-24.

[6] HALFOND W G J, ORSO A. AMNESIA: analysis and monitoring for NEutralizing SQL-injection attacks[C]//20th IEEE/ACM International Conference on Automated Software Engineering. ACM, c2005: 174-183.

[7] HALFOND W G J, ORSO A. Detection and prevention of SQL injection attacks[J]. Malware Detection, 2006, (27): 85-109.

[8] SHAR L K, TAN H B K, BRIAND L C. Mining SQL injection and cross site scripting vulnerabilities using hybrid program analysis[C]//2013 International Conference on Software Engineering. IEEE Press, c2013:642-651.

[9] SHAHRIAR H,NORTH S,CHEN W C. Early detection of SQL injection attacks[J]. International Journal of Network Security & Its Applications, 2013, 5(4):53-65.

[10] VALEUR F,MUTZ D,VIGNA G. A learning-based approach to the detection of SQL attacks[M]. Detection of Intrusions and Malware, and Vulnerability Assessment. Springer Berlin Heidelberg, 2005: 123-140.

[11] KEMALIS K,TZOURAMANIS T.SQL-IDS: a specification-based approach for SQL-injection detection[C]//2008 ACM Symposium on Applied Computing. ACM, c2008:2153-2158.

[12] 陆开奎.基于动态污点分析的漏洞攻击检测技术研究与实现[D].成都: 电子科技大学,2013.

LU K K. The Research and realization of dynamic taint analysis based security attack detection technology[D]. Chengdu: University of Electronic Science and Technology of China, 2013.

[13] HUANG Y W,HUANG S K,TSAI C H. Web application security assessment by fault injection and behavior monitoring[C]//WWW’03 International Conference on World Wide Web. c2003:148-159.

[14] KALS S, KIRDA E, KRUEGEL C, et al. SecuBat: a Web vulnerability scanner[C]//International Conference on World Wide Web. c2006: 247-256.

[15] APPELT D, NGUYEN C D, BRIAND L C, et al. Automated testing for SQL injection vulnerabilities: an input mutation approach[C]//International Symposium on Software Testing & Analysis, c2014: 259-269.

[16] 王苏南. 高速复杂网络环境下异常流量检测技术研究[D]. 郑州: 解放军信息工程大学,2012.

WANG S N. Research on anomaly detection technology in high-speed complex network environment[D]. Zhengzhou: PLA Information Engineering University,2012.

[17] ZHANG J, XIANG Y, WANG Y, et al. Network traffic classification using correlation information[J]. IEEE Transactions on Parallel & Distributed Systems, 2013, 24(1):104 - 117.

[18] 周爱平, 程光, 郭晓军. 高速网络流量测量方法[J]. 软件学报,2014, 25(1):135-153.

ZHOU A P, CHENG G, GUO X J. High-speed network traffic measurement method[J]. Journal of Software, 2014, 25(1):135-153.

[19] 王鹏, 兰巨龙, 陈庶樵. 粒度自适应的多径流量分割算法[J]. 通信学报, 2015, 36(1):211-217.

WANG P, LAN J L, CHEN S Q. Multipath traffic splitting algorithm based on adaptive granularity[J].Journal on Communications , 2015, 36(1):211-217.

[20] Pangolin-SQLinjection tools [EB/OL]. http://nosec.org/cn/productservice/pangolin, 2014-12-22.

[21] Sqlmap-Automatic SQL injection and databasetakeover tool[EB/OL]. http://sqlmap.org/, 2015-3-5.

Approach to detecting SQL injection behaviors in network environment

ZHAO Yu-fei1, XIONG Gang2, HE Long-tao3, LI Zhou-jun1

(1. School of Computer Science, Beihang University, Beijing 100083, China; 2. Institute of Information Engineering, Chinese Academy of Sciences, Beijing 100093, China; 3. National Computer Network Emergency Response Technical Team/Coordination Center of China, Beijing 100029, China)

SQL injection attack is one of the main threats that many Web applications faced with. The traditional detection method depended on the clients or servers. Firstly the process of SQL injection attack was analyzed, and then the differences between attack traffic and normal traffic in HTTP request length, HTTP connections and feature string were discovered. Based on the request length, request frequency and feature string, a new method, LFF (length-frequency-feature), was proposed to detect SQL injection behaviors from network traffic. The results of experiments indicated that in simulation environments the recall of LFF approach reach up to 95%, and in real network traffic the LFF approach also get a good detection result.

Web security, SQL injection, network traffic, outlier detection

TP393

A

10.11959/j.issn.1000-436x.2016034

2015-04-08;

2015-07-15

熊刚,xionggang@iie.ac.cn

国家高技术研究发展计划(“863”计划)基金资助项目(No.2015AA016004);国家自然科学基金资助项目(No.61170189, No.61370126);教育部博士点基金资助项目(No.20111102130003);国家科技支撑计划基金资助项目(No.2012BAH46B02, No.2012BAH46B04);中国科学院战略性先导科技专项课题基金资助项目(No.XDA06030200)

The National High Technology Research and Development Program of China (863 Program) (No.2015AA016004), The National Natural Science Foundation of China (No.61170189, No.61370126), Ph.D. Programs Foundation of Ministry of Education of China (No.20111102130003), The National Key Technology R&D Program (No.2012BAH46B02, No.2012BAH46B04), The Strategic Priority Research Program of the Chinese Academy of Sciences (No.XDA06030200)

赵宇飞(1990-),男,山西太原人,北京航空航天大学博士生,主要研究方向为网络安全。

熊刚(1977-),男,湖北汉川人,博士,中国科学院信息工程研究所正高级工程师、博士生导师,主要研究方向为网络测量、信息对抗、信息安全等。

贺龙涛(1974-),男,贵州遵义人,博士,国家计算机网络应急技术处理协调中心正高级工程师、博士生导师,主要研究方向为信息安全。

李舟军(1963-),男,湖南湘乡人,博士,北京航空航天大学教授、博士生导师,主要研究方向为网络与信息安全、数据挖掘与人工智能。

猜你喜欢

网络流量三元组语句
基于多元高斯分布的网络流量异常识别方法
大数据驱动和分析的舰船通信网络流量智能估计
特征标三元组的本原诱导子
重点:语句衔接
关于余挠三元组的periodic-模
一个时态RDF存储系统的设计与实现
AVB网络流量整形帧模型端到端延迟计算
我喜欢
三元组辐射场的建模与仿真
3月CERNET网络流量同比略高