一种基于遗传算法的混合兼容式SQL注入检测方法及系统与流程

文档序号:22685637发布日期:2020-10-28 12:52阅读:339来源:国知局
一种基于遗传算法的混合兼容式SQL注入检测方法及系统与流程

本发明涉及信息安全技术领域,具体涉及针对结构化查询语言sql的攻击检测。



背景技术:

在基于internet的通信中使用不同类型的网络为用户提供服务,网络攻击的威胁日益增加,有可能使系统受到内部或外部入侵。单个计算机系统由多个用户共享,用户通过创建自己的帐户来使用多用户系统,该帐户受唯一的id和密码保护。有时,授权用户出于某些恶意目的攻击系统。内部攻击包括删除一些重要文件或数据,更改一些重要数据。对于任何入侵检测系统,很难识别授权的内部入侵者。为了保护个人计算机免受这些未经批准的攻击,应该使用可行的入侵检测系统(ids)。传统的入侵检测系统只能基于已经学习到的规则策略来识别已知的入侵,对于未知的新的入侵并不能及时检测到。

入侵检测系统(ids)是一种监视网络或整个系统活动是否存在恶意和有害活动或违反策略并生成报告的系统到管理站。入侵检测系统有多种类型和方法,用于以不同的方式检测可疑流量。有基于网络的(nids)和基于主机的(hids)入侵检测系统。nids是一个网络安全系统,专注于来自网络内部的攻击。某些系统可能会尝试停止入侵尝试,但这并不是监视系统所必需的。为了克服防火墙的这些缺点,利用独特的信息挖掘程序来处理从关联内部发生的中断。信息挖掘系统已被有效地用于中断发现,作为生物信息学,证券交易,网络检查等独特应用区域的一部分。许多研究人员已经在研究用于检测sql注入攻击的模式匹配算法。大多数研究人员专注于使用kddcup99数据集创建规则的遗传算法,几种遗传算法(ga)和遗传编程(gp)也已被用于检测不同场景下不同种类的入侵检测,或者使用遗传算法来推导分类规则。目前也已经有研究使用ahocorasick模式匹配算法检测和预防sql注入攻击的解决方案,使用决策树算法来实现对内部攻击的检测。



技术实现要素:

由于目前存在的sql注入攻击包括内部攻击和外部攻击两种形式,而现有的研究主要专注于针对某一种攻击类型的检测,本发明提出一种基于遗传算法的混合兼容式sql注入检测方法及系统。

所述混合兼容式的sql注入检测方法包含两种检测入侵的算法,以集成方式检测内部和外部攻击。在提出的系统中,当多台计算机相互连接时,每个系统都有其内部入侵检测机制,首先使用模糊遗传算法进行外部入侵检测,然后使用签名匹配算法进行内部入侵检测。

所述系统包括一个agent和至少两个终端;所述agent作为所述至少两个终端的统一agent,负责接收发送给所述多终端中任一终端的数据包,基于模糊遗传算法进行外部攻击检测;当检测结果无异常时,所述agent将数据包发送给指定的终端;所述至少两个终端均具有各自的内部入侵检测机制;当任一终端接收到由agent发送的数据包后,在数据库上触发查询时,使用签名匹配算法进行内部入侵检测。

进一步地,每个终端均存储有恶意查询的标准签名,当用户触发查询时,会将其与存储的标准签名进行比较,进行相似度计算;如果相似度超过预设值,则将该查询识别为异常查询。

进一步地,上述签名匹配算法将sql注入检测分为静态检测和动态检测两种类型;

对于静态sql注入检测,将整个sql查询与存储的标准签名进行匹配,根据是否匹配成功,将查询分类为正常或者异常;

对于动态sql注入检测,计算sql查询与存储的标准签名的相似度,如果相似度超过预设值,则将该查询分类为异常。

进一步地,所述agent存储有ip地址黑名单;在基于模糊遗传算法进行外部攻击检测之前,进一步包括:

agent判断接收到的数据包的源ip地址是否在所述ip地址黑名单中;当所述源ip地址在所述ip地址黑名单中,则结束检测,禁止来自所述源ip地址数据包的访问;

在基于模糊遗传算法进行外部攻击检测之后,进一步包括:对于识别结果为异常的数据包,提取数据包源ip地址;将该源ip地址加入到所述ip地址黑名单中;用户可以通过手动配置的方式将所述ip地址黑名单中的源ip地址删除。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是目前常见的sql注入攻击流程图;

图2是根据本发明实施例所述的sql注入检测系统。

有益效果

针对不同类型的sql注入攻击类型,本发明提出了一种混合兼容式的检测方法,可以应用在多终端系统中,采用代理-终端的方式由代理拦截可能出现的外部攻击,在每个终端内部设置了内部入侵检测机制,能够进一步提高对sql注入攻击拦截的有效性,对于外部和内部攻击类型均能够兼容,无论是检测精度还是对于攻击类型的兼容度都优于现有系统。

此外,利用黑名单机制筛查明显恶意网站,并动态更新该黑名单列表,当黑名单机制筛查通过后进一步利用sql注入检测算法进行检测,不仅减少了不必要的恶意检测步骤,也进一步提高了对sql注入检测的准确性。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。

对于系统的内部攻击者是指系统的授权用户,但出于某些自私的目的而执行恶意活动。攻击者可以窃取授权用户的id和密码,并出于恶意目的进入系统。内部攻击包括删除一些重要文件或数据,更改一些私有文件。sql注入(sqlinjection)漏洞攻击是目前网上最流行最热门的黑客攻击方法之一。在sql注入中,攻击者使用授权的id和密码进入系统,并在数据库上触发恶意查询。数据库包含有关特定组织的非常重要的数据。通过触发这些恶意查询,数据库中的数据被更改或删除。远程攻击是外部攻击,在网络中,外部攻击者会将不需要的数据包发送到网络中的合法计算机。由于攻击者创建的流量,合法用户的预期服务被拒绝。攻击者通过伪造数据包的源ip地址将非法数据包发送给合法用户。

本发明提出的系统包括内部和外部入侵检测机制。如图2所示,系统以集成方式检测内部和外部攻击,该系统包含一个agent和多台计算机设备。当多台计算机相互连接时,每台计算机都有其内部入侵检测机制。对于外部入侵检测,使用模糊遗传算法,在内部入侵检测系统中使用签名匹配算法。当用户在数据库上触发查询时,将使用算法对其进行检查。在算法处理中,将触发查询与恶意查询的存储签名进行比较。如果相似性索引超过定义的阈值,则将其分类为异常查询,并通知管理员以采取进一步的措施。

基于上述系统中执行的sql注入检测方法包括如下步骤:

由多终端系统中统一的agent接收发送给所述多终端中任一终端的数据包;由所述agent基于模糊遗传算法进行外部攻击检测;

当检测结果无异常时,则由agent将数据包发送给指定的终端;

所述多终端系统中的任一终端均具有各自的内部入侵检测机制;当终端接收到由agent发送的数据包后,在数据库上触发查询时,使用签名匹配算法进行内部入侵检测。

进一步地,所述基于使用签名匹配算法进行内部入侵检测进一步包括:每个终端均存储有恶意查询的标准签名,当用户触发查询时,会将其与存储的标准签名进行比较,进行相似度计算;如果相似度超过预设值,则将该查询识别为异常查询。上述内部入侵检测分为静态检测和动态检测两种类型;

对于静态sql注入检测,将整个sql查询与存储的标准签名进行匹配,根据是否匹配成功,将查询分类为正常或者异常;对于动态sql注入检测,计算sql查询与存储的标准签名的相似度,如果相似度超过预设值,则将该查询分类为异常。

签名匹配算法进行内部入侵检测示例的伪代码如下:

进一步地,所述基于模糊遗传算法进行外部攻击检测过程为:利用种群的数量和迭代次数来完成对于外部攻击类型匹配规则的选择;从初始种群中随机选择,经过交叉变异,选择最优概率属性生成匹配规则;通过与生成的匹配规则的对比分析,将数据包分为正常类型或者异常类型。

基于模糊遗传算法进行外部攻击检测的伪代码示例如下:

input:规则池中数据和规则,返回值为0到1.0之间double数值的模糊函数fuzzy

output:记录的攻击类型

为了检测内部入侵,在触发查询时将其分类为正常或异常。对于外部入侵检测,当接收到数据包时,将其分为正常数据包和异常数据包。

进一步地,所述agent存储有ip地址黑名单;在基于模糊遗传算法进行外部攻击检测之前,进一步包括:agent判断接收到的数据包的源ip地址是否在所述ip地址黑名单中;当所述源ip地址在所述ip地址黑名单中,则结束检测,禁止来自所述源ip地址数据包的访问;

在基于模糊遗传算法进行外部攻击检测之后,进一步包括:

对于识别结果为异常的数据包,提取数据包源ip地址;将该源ip地址加入到所述ip地址黑名单中;用户可以通过手动配置的方式将所述ip地址黑名单中的源ip地址删除。

最后应说明的是:显然,上述实施例仅仅是为清楚地说明本申请所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引申出的显而易见的变化或变动仍处于本申请型的保护范围之中。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1