CN103607391B - 一种基于K‑means的SQL注入攻击检测方法 - Google Patents

一种基于K‑means的SQL注入攻击检测方法 Download PDF

Info

Publication number
CN103607391B
CN103607391B CN201310585872.4A CN201310585872A CN103607391B CN 103607391 B CN103607391 B CN 103607391B CN 201310585872 A CN201310585872 A CN 201310585872A CN 103607391 B CN103607391 B CN 103607391B
Authority
CN
China
Prior art keywords
data
sql
point
cluster
sql injection
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.)
Expired - Fee Related
Application number
CN201310585872.4A
Other languages
English (en)
Other versions
CN103607391A (zh
Inventor
李晓晴
陈真勇
李清广
李超
熊璋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beihang University
Original Assignee
Beihang University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beihang University filed Critical Beihang University
Priority to CN201310585872.4A priority Critical patent/CN103607391B/zh
Publication of CN103607391A publication Critical patent/CN103607391A/zh
Application granted granted Critical
Publication of CN103607391B publication Critical patent/CN103607391B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

一种基于K‑means的SQL注入攻击检测方法,主要用以提高SQL注入攻击的检测率和实现对未知的SQL注入攻击的检测。包括如下步骤:数据处理阶段,对含有SQL注入攻击的Web访问数据包进行分析处理,根据SQL注入攻击的特点和特征提取出数据包的关键属性数据;对数据分簇阶段,使用K‑means算法对数据进行分簇,并对簇进行攻击标定,且为了使K‑means算法在检测中达到更好的效果,分簇时,针对SQL注入攻击的分类和提取数据的特征,对数据进行孤立点删除和对K‑means算法中初始中心点选取提出符合当前应用场景的改进;检测阶段,主要对Web的实时访问数据包进行数据提取,并进行按照已有的簇进行分簇,最后按照所属簇的攻击标定来判断是否为SQL注入攻击。

Description

一种基于K-means的SQL注入攻击检测方法
技术领域
本发明涉及一种SQL注入攻击检测方法,属于网络信息安全领域。
背景技术
随着网络技术的飞速发展,特别是信息化程度不断加强,网络越来越成为人们生活中必不可少的一部分,网上交友、网上购物、网上银行等等,而这些都需要有相应的平台支持,大多数都是使用基于B/S模式的动态网站(Web)来完成的,Web的存在就是对这网络时代很好的诠释。但是随着人们对Web的需求越来越多和越来越依赖的现在,Web安全问题尤其突出,保护用户的安全和Web本身的安全是网站管理人员必须考虑的问题。
当前,针对Web攻击层出不穷,其中最具危害性的就是SQL注入攻击,由于当前Web主要以交互模式,因此,当用户与Web之间进行交互时,从用户获取的数据就有可能带有攻击性,其中主要针对Web数据库的一种攻击就是SQL注入攻击,且其危害性大,可以盗取用户信息、篡改网站数据等。
应对SQL注入攻击,当前主要是从Web开发者和Web管理者两个方面入手,开发者主要是构建严谨的代码体系,提前对可能存在SQL注入漏洞的代码进行修补,但是这样并不能完全杜绝漏洞的存在,而管理者一般是使用第三方的防御检测系统进行防御。而当前主要SQL注入检测技术,主要是基于特征的匹配过滤,这样可以很好的检测出已知的SQL注入攻击,但是依赖已知攻击库,不能检测出未知攻击,而当前的SQL注入攻击技术,随着攻防的不断展开,也在不停的更新变化,能够很好的绕开检测,而且使用基于异常的检测方法,又会带来很大的误检率而不能很好应用到现实中。
发明内容
本发明的技术解决问题:克服现有技术的不足,提供一种基于K-means的SQL注入攻击检测方法,提高SQL注入攻击的检测率和实现对未知的SQL注入攻击的检测。
本发明的技术解决方案:基于K-means的SQL注入攻击检测方法,这个方法主要是引入K-means算法实现对未知的变异SQL注入攻击的检测。该方法先在安全测试环境下对一系列的SQL注入攻击进行学习分析,形成多个攻击簇和正常簇,然后在真实环境下,对所有Web访问数据包进行分簇,然后根据所在簇来识别是否为攻击行为
包括训练阶段和检测阶段。学习阶段是在安全的实验环境下,使用多种SQL注入攻击工具分别从Post注入、Get注入和Cookie注入对Web站点进行攻击,提取攻击数据包的含有攻击特性的属性进行分析,并使用K-means算法进行分簇,并进行攻击标定,同样提取正常数据包的相同属性进行分析分簇,进行正常标定。检测阶段就是在真实环境下,对每个访问Web的数据包都进行特征提取并分簇,并根据簇的标定来判断是攻击行为还是正常行为。
本发明提供一种基于K-means的SQL注入攻击检测方法,主要包括以下步骤:
一、训练阶段
(1)训练数据获取,训练数据主要分为攻击数据和正常数据,攻击数据由多种攻击工具分别对Web进行Post注入攻击、Get注入攻击和Cookie注入攻击获取,正常数据是正常的Web访问数据。
(2)提取特征,主要提取HTTP数据包的地址(URI)、数据包类型(Method)、数据包长度(Content-Length)、浏览器特征(User-Agent)、数据包Cookie、POST数据以及各属性的长度和字符出现频率。
(3)针对K-means算法进行数据处理,分三步:第一,数据标准化,为了计算方便,对提取出特征属性进行量化,并按照每个特征属性为一组求此属性的量化平均值,用此平均值与每条数据的相应属性量化数值的比值为此条数据该属性标准化数据;第二,删除孤立点,就是排除一些与其所在数据集属性平均值相差比较大的数据;第三,K-means算法初始中心点选择,主要按照数据特性和SQL注入攻击的特点(三种注入攻击方式),选出部分由代表性的数据点为初始中心点数据集,然后按照初始中心点所处位置数据点分布密度大和两两初始中心点间距离尽量大的原则选取K个初始中心点,并使攻击数据集的初始中心点满足包含三种SQL注入攻击方式。
(4)使用K-means算法进行数据分簇,分别对攻击数据集和正常数据集进行分簇,并对分簇结果进行攻击标定。
二、检测阶段
(1)一条Web访问数据,即一个HTTP数据包。
(2)提取特征,按照训练阶段提取特征方式进行提取。
(3)数据处理,数据进行量化和标准化。
(4)进行分簇,按照各特征数据求出距离各簇中心点的距离,其中该数据归于距离最小的簇中。
(5)攻击判定,按照簇的标定判定是否为攻击行为。
本发明与现有技术相比的优点在于:
(1)本发明能够检测未知的SQL注入攻击,传统的匹配检测方法仅能够检测出已知攻击,本发明根据SQL注入攻击特点提取HTTP数据包中重要特征进行分析,并采用K-means算法为核心,最终实现检测未知的SQL注入攻击行为。
(2)本发明降低了检测的误检率,传统检测方法为了实现对未知攻击的检测,会造成误检率的提高,本发明通过下面两个步骤来降低误检率:第一、根据SQL注入攻击行为特征,提取具有代表性的HTTP属性,并对属性进行标准化处理,使每个属性值充分代表HTTP数据包性质。第二、对训练数据进行优化,针对K-means算法的弱点,删除训练数据孤立点和优化初始中心点的选取方法。通过上面两个方面的处理,可以很好的降低检测阶段的误检率。
附图说明
图1为本发明的整体结构示意图;
图2为本发明的训练数据获取以及处理流程示意图;
图3为本发明的K-means算法分簇并进行标定的工作流程图;
图4为本发明的检测阶段工作流程图。
具体实施方式
下面结合附图对本发明的具体实施方式做进一步说明。
如图1所示,本发明的整体结构主要有训练阶段和检测阶段,其中训练阶段包括:训练数据获取,数据特征提取、数据标准化、孤立点删除、选取初始中心点、K-means算法分簇和簇攻击标定;检测阶段包括:待检数据特征提取、数据标准化、划分到簇和行为识别。
如图2所示,本发明的训练阶段中的训练数据的获取,数据特征提取和数据标准化的处理流程。
(1)数据获取,架设存在注入漏洞的Web站点,选取多个SQL注入工具,分别从Post注入攻击、Get注入攻击和Cookie注入攻击对Web站点进行攻击,使用侦听工具收集SQL注入攻击数据集。选取多个爬虫工具,对网站进行遍历访问,收集正常访问数据集。
(2)数据特征提取,针对收集到的训练数据,主要提取HTTP数据包的地址(URI)、数据包类型(Method)、数据包长度(Content-Length)、浏览器特征(User-Agent)、数据包Cookie、POST数据以及各属性的长度和字符出现频率。
(3)数据标准化,为了计算方便,对提取出特征属性进行量化,并按照每个特征属性为一组求此属性的量化平均值,用此平均值与每条数据的相应属性量化数值的比值为此条数据该属性标准化数据。
如图3所示,本发明的训练阶段的K-means算法应用分簇及攻击标定流程。
(1)删除孤立点,就是排除部分与其所在数据集属性平均值相差比较大的数据。
(2)K-means算法初始中心点选择,主要按照数据特性和SQL注入攻击的特点(三种注入攻击方式),选出部分由代表性的数据点为初始中心点数据集,然后按照初始中心点所处位置数据点分布密度大和两两初始中心点间距离尽量大的原则选取K个初始中心点,并使攻击数据集的初始中心点满足包含三种SQL注入攻击方式。
(3)使用K-means算法进行数据分簇,分别对攻击数据集和正常数据集进行分簇,并对分簇结果进行攻击标定。
如图4所示,本发明的检测阶段工作流程图
(1)Web访问数据,即HTTP数据包,并按照训练阶段提取特征方式进行提取。
(2)数据处理,数据进行量化和标准化。
(3)进行分簇,按照各特征数据求出距离各簇中心点的距离,其中该数据归于距离最小的簇中。
(4)攻击判定,按照簇的标定判定是否为攻击行为。
本发明未详细阐述部分属于本领域公知技术。
以上所述,仅为本发明部分具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本领域的人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。

Claims (6)

1.一种基于K-means的SQL注入攻击检测方法,其特征在于包括:
训练阶段:对训练数据进行特征提取,对提取后的数据进行标准化处理后,删除孤立点和确定初始中心点后使用K-means算法进行分簇,并对分簇结果进行攻击标定;
检测阶段:实际检测,对Web的任意访问数据进行特征提取,经过数据处理后,划分到已经分好的簇中,再根据簇的标定来判断是否为SQL注入攻击行为;
所述训练阶段的数据特征提取,包括:
(1)SQL注入攻击从HTTP数据包的特征属性上分三种攻击方式,分别是Post注入、Get注入和Cookie注入,针对这三种攻击方式进行数据包的处理,需要提取HTTP数据包的地址(URI)、数据包类型(Method)、数据包长度(Content-Length)、浏览器特征(User-Agent)、数据包Cookie、POST数据;
(2)URI的长度,内容,字符出现频率;
(3)POST数据的内容,长度,字符出现频率;
对提取出的数据特征进行量化处理。
2.根据权利要求1所述的基于K-means的SQL注入攻击检测方法,其特征在于:所述提取的数据进行标准化处理,是把数据集的相同属性数据全部相加求平均值,然后根据平均值进行标准处理。
3.根据权利要求1所述的基于K-means的SQL注入攻击检测方法,其特征在于:所述删除孤立点是指计算两两数据点之间的距离求和,删除距离之和最大的点,然后迭代删除距离次大的点直到删除M个数据点。
4.根据权利要求1所述的基于K-means的SQL注入攻击检测方法,其特征在于:所述确定初始中心点具体为:初始中心点选择主要依靠两个条件,一是要中心点处于点分布密度较大的中心,二是两两中心点之间的距离尽量大。
5.根据权利要求1所述的基于K-means的SQL注入攻击检测方法,其特征在于:所述对分簇结果进行攻击标定是:根据中心点是否为SQL注入攻击来标定这个簇是否为攻击行为簇。
6.根据权利要求1所述的基于K-means的SQL注入攻击检测方法,其特征在于:所述的划分到已知簇当中去,再根据簇的标定来判断是否为SQL注入攻击行为具体为:是根据此数据点距离哪一个簇中心最近就归于哪个簇,然后根据簇的标定来判断此数据点代表的访问是否为SQL注入攻击行为。
CN201310585872.4A 2013-11-19 2013-11-19 一种基于K‑means的SQL注入攻击检测方法 Expired - Fee Related CN103607391B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310585872.4A CN103607391B (zh) 2013-11-19 2013-11-19 一种基于K‑means的SQL注入攻击检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310585872.4A CN103607391B (zh) 2013-11-19 2013-11-19 一种基于K‑means的SQL注入攻击检测方法

Publications (2)

Publication Number Publication Date
CN103607391A CN103607391A (zh) 2014-02-26
CN103607391B true CN103607391B (zh) 2017-02-01

Family

ID=50125591

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310585872.4A Expired - Fee Related CN103607391B (zh) 2013-11-19 2013-11-19 一种基于K‑means的SQL注入攻击检测方法

Country Status (1)

Country Link
CN (1) CN103607391B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105577608B (zh) * 2014-10-08 2020-02-07 腾讯科技(深圳)有限公司 网络攻击行为检测方法和装置
CN106845241A (zh) * 2015-12-03 2017-06-13 中国电信股份有限公司 漏洞攻击的检测方法和装置
US10581915B2 (en) 2016-10-31 2020-03-03 Microsoft Technology Licensing, Llc Network attack detection
CN107392027A (zh) * 2017-07-13 2017-11-24 福建中金在线信息科技有限公司 一种网站漏洞测试方法、测试系统、电子设备及存储介质
CN107562618A (zh) * 2017-08-07 2018-01-09 北京奇安信科技有限公司 一种shellcode的检测方法和装置
CN108156131B (zh) * 2017-10-27 2020-08-04 上海观安信息技术股份有限公司 Webshell检测方法、电子设备和计算机存储介质
CN110602029B (zh) * 2019-05-15 2022-06-28 上海云盾信息技术有限公司 一种用于识别网络攻击的方法和系统
CN110557404A (zh) * 2019-09-27 2019-12-10 四川长虹电器股份有限公司 一种过滤sql注入攻击的方法
CN111291070B (zh) * 2020-01-20 2021-03-30 南京星环智能科技有限公司 一种异常sql检测方法、设备及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101267357A (zh) * 2007-03-13 2008-09-17 北京启明星辰信息技术有限公司 一种sql注入攻击检测方法及系统
CN102045357A (zh) * 2010-12-29 2011-05-04 深圳市永达电子股份有限公司 一种基于仿射聚类分析的入侵检测方法
CN103117903A (zh) * 2013-02-07 2013-05-22 中国联合网络通信集团有限公司 上网流量异常检测方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8504876B2 (en) * 2010-04-30 2013-08-06 The Mitre Corporation Anomaly detection for database systems

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101267357A (zh) * 2007-03-13 2008-09-17 北京启明星辰信息技术有限公司 一种sql注入攻击检测方法及系统
CN102045357A (zh) * 2010-12-29 2011-05-04 深圳市永达电子股份有限公司 一种基于仿射聚类分析的入侵检测方法
CN103117903A (zh) * 2013-02-07 2013-05-22 中国联合网络通信集团有限公司 上网流量异常检测方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
改进的K-means算法在入侵检测系统中的应用研究;于丽;《中国优秀硕士学位论文全文数据库 信息科技辑(2012年)》;20120315(第03期);正文第4.3.2-4.3.4节 *
数据挖掘在入侵检测中的应用;申露敏;《中国优秀硕士学位论文全文数据库 信息科技辑(2013年)》;20130615(第06期);正文第4章第4.1节-第5章第5.2.3节、图5.1 *

Also Published As

Publication number Publication date
CN103607391A (zh) 2014-02-26

Similar Documents

Publication Publication Date Title
CN103607391B (zh) 一种基于K‑means的SQL注入攻击检测方法
CN110233849B (zh) 网络安全态势分析的方法及系统
CN105306475B (zh) 一种基于关联规则分类的网络入侵检测方法
US10135788B1 (en) Using hypergraphs to determine suspicious user activities
CN106547838B (zh) 基于资金网络监测可疑资金交易的方法
CN104077396B (zh) 一种钓鱼网站检测方法及装置
CN108156131B (zh) Webshell检测方法、电子设备和计算机存储介质
CN107070943A (zh) 基于流量特征图和感知哈希的工业互联网入侵检测方法
CN107657536A (zh) 社保欺诈行为的识别方法和装置
KR20170100535A (ko) 거래 위험 검출 방법 및 장치
CN105550583A (zh) 基于随机森林分类方法的Android平台恶意应用检测方法
US8411964B2 (en) Method and apparatus for analyzing nudity of image using body part detection model, and method and apparatus for managing image database based on nudity and body parts
CN107332848A (zh) 一种基于大数据的网络流量异常实时监测系统
Wenyin et al. Phishing Web page detection
JP2014502753A (ja) ウェブページ情報の検出方法及びシステム
CN110992059B (zh) 一种基于大数据的围串标行为识别分析方法
WO2017084205A1 (zh) 一种网络用户身份认证方法及系统
CN108764943B (zh) 基于资金交易网络的可疑用户监测分析方法
CN106529233B (zh) 一种基于浏览器指纹差异度的回访用户识别算法
CN112199677A (zh) 一种数据处理方法和装置
Patil et al. Network traffic anomaly detection using PCA and BiGAN
CN115150182B (zh) 基于流量分析的信息系统网络攻击检测方法
CN110598128B (zh) 一种对抗女巫攻击的用于大规模网络的社团检测方法
CN106603538A (zh) 一种入侵检测方法及系统
Ahn et al. Using proxies for node immunization identification on large graphs

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170201

Termination date: 20171119

CF01 Termination of patent right due to non-payment of annual fee