一种基于GPU并行字典破解托库中的加密数据方法与流程

文档序号:12819262阅读:327来源:国知局
一种基于GPU并行字典破解托库中的加密数据方法与流程

本发明涉及web安全中sql注入行为分析方法,尤其涉及一种基于gpu并行字典破解托库中的加密数据方法。



背景技术:

目前,主流的入侵检测系统(intrusiondetectionsystems,简称ids)、入侵防御系统(intrusionpreventionsystem,简称ips)等各种系统,在进行系统防护过程中,主要侧重于流量数据的单方向分析,特别是入侵检测系统,重点关注于请求流量中是否存在sql注入攻击行为,如存在sql注入攻击行为,就进行拦截,但在处理没有检测到的sql注入攻击行为,就把请求行为发给应用程序,但这请求行为却是sql注入攻击,主要是由于入侵检测系统ids并没有检测到流量数据中sql注入特征,从而使得sql注入攻击请求被执行,入侵检测系统并不拦截服务器应用程序发给请求客户端的数据,执行以后的结果直接返回给请求客户端了,造成了敏感信息的泄漏。除此之外,传统主流的入侵检测系统或入侵防御系统,在intel没有开源高效的正则表示匹配引擎hyperscan工具,以及大流量数据处理结构dpdk之前,高效处理大流量数据,借助于自定义操作系统网络协议栈的方式来处理。这种自定义处理方式由于个性定制化方面,使得传统的主流入侵防御系统或者入侵检测系统可移植性变弱,通用性更差。特别是在intel的处理器上面,更是不如intel本身推出的dpdk处理架构。

传统的入侵检测系统或入侵防御系统主要是负责检测请求中是否存在攻击行为,只是单纯地拦截或截断存在异常的请求流量数据,并没有针对请求客户端和应答服务器端的数据,进行合理的验证处理,不能够分析出,攻击行为给被攻击应用程序,造成了哪些危害,以及整个危害的变化趋势。同时,一般主流的入侵检测系统或入侵防御系统也不能够提取出攻击回话过程中数据流量中包含的敏感而特殊的信息。

传统的入侵检测系统或入侵防御系统在处理大流量的攻击数据时,以及应对攻击流浪的后续分析,明显存在以下几个方面的不足:其一,目前主流的入侵检测系统或入侵防御系统,在应对sql注入攻击流量的时候,大多数就是利用有限的关键字进行过滤分析,然后将防火墙系统认为是攻击的流量数据,统统的进行拦截。但对于能够绕过防火墙的sql注入行为的流量,却很少关注,应对能力明显不足。其次,目前的主流入侵检测系统或入侵防御系统在应对泄漏数据处理方面的能力明显不足,主要表现在,不能将服务器端的应用程序数据敏感信息,进行有效过滤。特别是本身请求就是sql注入攻击行为,使得被攻击的应用程序的数据存在大面积的泄漏情况,未能及时有效的应对处理。也不能将服务器和客户端之间的敏感信息提取出来,应便于进一步分析被攻击应用程序的泄漏数据根本原因。再则,针对常见的加密数据,并没有进行还原处理分析。不能够分析出攻击应用程序的关键核心数据,以及主流的防火墙,特别是入侵检测和入侵防御系统,在应对大规模攻击数据任务分析时,利用多进程或多线程模式多级层级结构模式,进行网络安全防御。

由于传统的主流防火墙在应对大规模sql注入攻击存在方法和技术上面的缺陷和不足,已经在应对常用加密数据分析时,传统的破解数据效率低,代价高等明显劣势,由此可知传统的方法和技术存在巨大的缺陷和不足,存在很大的改进空间。

我们的改进方面能够很好地解决传统方法的一些劣势和不足。提高了处理的性能和效率,精确度也得到了极大地提高。

因此,本领域的技术人员致力于开发一种基于gpu并行字典破解托库中的加密数据方法,以新的角度很好地解决了传统的一些劣势和不足,提高了处理的性能和效率,以及精确度。



技术实现要素:

有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是开发一种基于gpu并行字典破解托库中的加密数据方法,以新的角度很好地解决了传统的一些劣势和不足,提高了处理的性能和效率,以及精确度。

为实现上述目的,本发明提供了一种基于gpu并行字典破解托库中的加密数据方法,包括以下步骤:

步骤1、分析sql注入攻击行为,处理海量数据分析,获取精确度高的sql注入行为攻击流量数据,为后续步骤做基础铺垫;

步骤2、提取基于特殊关键字的数据,利用数据敏感信息中存在的特殊关键词,获取敏感信息,确定被攻击系统泄露的数据情况;

步骤3、破解基于gpu的并行化字典,并行化处理算法,提高处理性能和效率。

进一步地,步骤1被设置为利用上下文无关文法的多级层级结构正则表达式,结合intel高效的正则表达式匹配引擎hyperscan,以及intel高效的处理大流量数据分析工作的dpdk架构来分析sql注入攻击行为。

进一步地,利用多级层级结构正则表达式的sql语句的特征,进行真实网络数据抓取分析,构建一个多级层次结构的模型。

进一步地,多级层级结构正则表达式的sql语句包括第一级和第二级,第一级被设置为粗略的sql语法关键字,第二级被设置为细化的sql语句关键字。

进一步地,多级层级结构正则表达式的sql语句还包括sql注入类型,sql注入类型包括基于boolean盲注、基于时间的盲注、基于错误回显注入、基于union联合注入中的一种。

进一步地,步骤1被设置为适用于分析mysql、oracle、sqlserver、sqlite、db2、postgresql、access中的一种或多种数据的多级层级结构正则表达式。

进一步地,步骤2被设置为结合流量中的请求数据和响应数据来分析整个sql注入攻击过程、被攻击应用程序数据泄露的关键点、及数据库丢失的敏感信息。

进一步地,步骤2的具体方法被设置为结合大数据处理分析mapreduce思想,以及利用intel大流量数据处理结构dpdk和hyperscan正则表达式匹配引擎。

进一步地,步骤3的具体方法被设置为基于cuda架构,利用gpu的超大计算单元来并行化字典分析加密数据。

进一步地,加密数据包括md5、sha-0、sha-1中的一种或多种。

技术效果

1、利用高性能gpu进行字典破解分析敏感信息数据的方法,能够很好的将以前基于cpu的多线程多进程处理算法进行很好的并行化分析,在gpu上面进行高性能并行处理加密敏感数据还原工作,能够极大地提高对被攻击应用程序的数据库泄漏情况进行甄别和探查;

2、提高了处理的性能和效率,以及精确度;

3、提高了敏感信息字典破解分析,降低了系统分析时间,提高了效率,也降低了整个回话的延迟时间,不会对系统的性能造成比较大的损耗。

以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本发明的目的、特征和效果。

附图说明

图1是本发明的一个较佳实施例的一种基于gpu并行字典破解托库中的加密数据方法的流程示意图。

图2是本发明的一个较佳实施例的一种基于gpu并行字典破解托库中的加密数据方法的sql注入特征正则表达式示例图。

图3是本发明的一个较佳实施例的一种基于gpu并行字典破解托库中的加密数据方法的详细分析sql注入攻击检测伪代码图。

图4是本发明的一个较佳实施例的一种基于gpu并行字典破解托库中的加密数据方法的利用cuda平台的gpu字典分析常用加密数据伪代码图。

具体实施方式

本发明的一较佳实施例提供了一种基于gpu并行字典破解托库中的加密数据方法主要分成两部分:第一部分,利用intel推出的dpdk(全称dataplanedevelopmentkit)架构和hyperscan正则表达式匹配引擎,以及部分大数据处理思想。主要是应对分析拦截和分析真实网络中大规模的流量数据,尽最大可能性地提取出sql注入攻击中的数据、以及攻击行为状态分析;第二部分,主要是结合cuda架构,利用gpu的simt特性,对常用加密数据的字典进行分析,尽最大可能性地获取到攻击回话整个过程中的敏感数据信息,便于分析人员的后期处理,以及和其他系统进行融合。

本发明的一较佳实施例提供了一种基于gpu并行字典破解托库中的加密数据方法,包括以下步骤:

步骤1、分析sql注入攻击行为,处理海量数据分析,获取精确度高的sql注入行为攻击流量数据,为后续步骤做基础铺垫;

步骤2、提取基于特殊关键字的数据,利用数据敏感信息中存在的特殊关键词,获取敏感信息,确定被攻击系统泄露的数据情况;

步骤3、破解基于gpu的并行化字典,并行化处理算法,提高处理性能和效率。

其中,步骤1被设置为利用上下文无关文法的多级层级结构正则表达式,结合intel高效的正则表达式匹配引擎hyperscan,以及intel高效的处理大流量数据分析工作的dpdk架构来分析sql注入攻击行为。

利用多级层级结构正则表达式的sql语句的特征,进行真实网络数据抓取分析,构建一个多级层次结构的模型。多级层级结构正则表达式的sql语句包括第一级和第二级,第一级被设置为粗略的sql语法关键字,第二级被设置为细化的sql语句关键字。多级层级结构正则表达式的sql语句还包括sql注入类型,sql注入类型包括基于boolean盲注、基于时间的盲注、基于错误回显注入、基于union联合注入中的一种。本发明的步骤1被设置为适用于分析mysql、oracle、sqlserver、sqlite、db2、postgresql、access中的一种或多种数据的多级层级结构正则表达式。

步骤2是基于sql注入特征分析以后,结合常用的sql注入工具技术,并利用和结合mysql、oracle、sqlserver、sqlite、db2、postgresql、access等数据库特征信息,获取到sql注入攻击回话过程中的特殊敏感信息,提出了一种利用攻击过程中,特殊关键字来获取敏感信息。具体的,步骤2被设置为结合流量中的请求数据和响应数据来分析整个sql注入攻击过程、被攻击应用程序数据泄露的关键点、及数据库丢失的敏感信息。步骤2的具体方法被设置为结合大数据处理分析mapreduce思想,以及利用intel大流量数据处理结构dpdk和hyperscan正则表达式匹配引擎。步骤2能够以极低的时间代价,得到敏感信息。

步骤3的具体方法被设置为基于cuda架构,利用gpu的超大计算单元来并行字典分析加密数据。加密数据包括md5、sha-0、sha-1中的一种或多种。步骤3能够很好的解决传统在cpu上面进行字典分析的代价高、效率低等不足之处。提高了处理分析的速度和效率,解决了常见密码通过md5、sha-0、sha-1系列加密以后的还原工作。

如图1所示,本发明的一较佳实施例提供了一种基于gpu并行字典破解托库中的加密数据方法的整个过程可以简化为四个阶段。第一阶段,真实网络数据抓取分析,利用粗略的sql语法正则表达式,结合intel推出的dpdk架构,和高效的hyperscan正则表达式匹配引擎,抓取到真实网络中存在sql注入攻击行为的流量数据。将不属于sql注入的流量数据进行过滤掉,留下疑似sql注入攻击行为的数据流量,减少后续分析的复杂度,提高后续分析的精确度,以及系统的健壮性。粗略的正则表达式根据数据库的内在特性不同,而存在特别多的分类,本发明主要支持mysql、oracle、sqlserver、postgresql、sqlite、access、db2等数据库,支持基于boolean盲注方式、基于错误回显方式、基于时间延迟注入方式、基于union联合注入方式。第二阶段,sql注入攻击行为分析,主要是通过精细化的正则表达式进行匹配,集合sql注入攻击过程中的整个回话流量数据,分析sql注入攻击行为是否,对被攻击应用程序造成了损害,以及攻击者是否和利用被攻击应用程序的漏洞来进行攻击的,捕获到被攻击应用程序的攻击点或脆弱点。利用大数据mapreduce思维,结合一定的spark架构思想,有效地分析大流量攻击数据,本发明提出的模型和架构,能够很好地应对处理真实网络中大规模流量数据。从而得出,疑似sql注入攻击行为数据流量对于被攻击应用程序的危害。第三阶段,通过结合主流的自动化注入工具,譬如sqlmap等sql注入软件,分析其攻击和鉴别敏感信息数据的技术和方法,改进已有的方法和技术,提取出敏感信息,将敏感信息分文别类的处理,方便后续算法进行分析处理,最终能够得到一个比较好的结果。第四阶段,针对常用加密算法处理敏感信息的分析,利用超级巨大的字典数据,结合cuda平台架构,利用gpu高性能并行处理优势,字典分析常用的加密数据,还原敏感信息的真实面目。除此之外,本阶段也利用收集到的webshell验证数据,进行webshell密码字典分析破解工作,结合hadoop的mapreduce思想,处理常用敏感信息,以及常用加密算法进行分析处理,极大地提高了本发明的适应性和精确度。

如图2中正则表达式图所示,利用了多级层级的正则表达式,结合intel开源的hyerscan正则表达式匹配引擎,将sql注入攻击流量进行层次结构分析,便于我们对大流量情况下进行数据分析。如图2所示,列举出了针对sql注入攻击的粗略正则表达式,主要通过结合了bsqlhacker、pangolin、sqlmap、havij、enemasqli、sqlninja、safe3sqlinjector等自动化注入工具,以及自动化注入方式的特殊关键字,而列出这些正则表达式,用于前台程序进行真实网络中的流量数据匹配以及过滤操作。主要包含了4中注入方式的正则表达式,分别是基于boolean盲注、基于错误回显注入、基于时间延迟注入、基于union注入等方式攻击的。本发明提供的正则表达式主要支持mysql、oracle、sqlserver、postgresql、db2、access、sqlite数据库,针对每种数据库,本发明均可以提取大量的sql语句正则表达式,结合sql语句对数据的危害程度,进行了细分正则表达式,便于分析sql注入流量中的行为,判断sql注入流量中的行为是否对被攻击应用程序造成了危害,以及被攻击应用程序是否存在大规模的数据泄漏情况。

如图3中伪代码攻击检测图所示,本伪代码主要是检测流量中的sql注入行为,结合mapreduce的大数据分析思想和intel推出的dpdk架构,应对大流量的sql注入攻击平台分析,结合python语言的特性,分析疑似的sql注入攻击行为,从而判断sql注入攻击是否对被攻击应用程序造成了危害,并适当地提取出sql注入攻击成功的数据信息,便于系统的后期处理。如图3所示,伪代码主要是用于检测已经由前台程序进行了粗略过滤流量数据以后,用于检测流量数据中是否包含sql注入攻击,以及流量数据中是否有成功的sql注入攻击行为。本代码主要分成四函数,第一个函数用于提供粗略的正则表达式,提供给前台程序使用;第二个函数用于获取流量数据中的url信息,提取出url信息,以便于用于后期其他系统进行分析和统计;第三个函数检测单次回话中,是否存在sql注入行为和攻击是否成功,以及提取出攻击特征信息;第四个函数用于循环话单中包含的多次回话流量数据信息。一个话单包含多个回话流量数据信息,以便对于每次回话的状态进行分析,将所有的回话状态信息进行分析,得到最后的话单状态信息,从而得到话单是否存在sql注入,以及是否成功攻击了应用程序,获取到了被攻击应用程序的数据信息。本检测代码主要进行分布式部署,能够大规模的数据流量,提高了本发明提出的方法应对问题的处理能力。通过对sql注入攻击成功的数据截取,将加密的数据进行后续分析,便于还原加密数据,统计被攻击应用程序丢失了哪些敏感信息。

如图4中gpu字典分析伪代码图所示,本伪代码图主要是简略的gpu分析代码函数,分别包含了针对于md5、sha-1、sha-256等散列哈希加密系列算法的gpu并行字典分析核心代码。以及多线程实现的相应算法的函数。本阶段的核心主要是通过分析和对比gpu并行字典分析和cpu多线程模式的字典分析方法,从而可以以比较快的速度获取到加密的明文数据信息,以及凸显出gpu的优势,和本专利提出的工作对比于cpu模式的分析方法有明显的改进优势。本阶段处理的数据来源主要是来自两方面,分别是sql注入攻击过程中的加密敏感信息,以及webshell的漏洞验证加密数据信息。通过对两种数据来源的数据分析,最终能够还原常用加密中的常用数据,便于后续分析者的分析处理。本阶段主要是结合cuda架构,利用gpu的计算单元巨大的独特优势,解决字典分析破解的难题,提高了系统处理效率,降低了成本代价,可以在有限的时间内,最终分析出结果。

本发明利用现有的sql注入技术,以及自动化sql注入工具,两者结合起来,做到sql注入攻击特征提取的全面分析,并利用hadoop中mapreduce思想,加快处理真实流量的拦截和分析,以及敏感信息提取。结合cuda平台架构,利用gpu大量的计算单元结构,进行后期的字典分析,提高了敏感信息字典破解分析,降低了系统分析时间,提高了效率,也降低了整个回话的延迟时间,不会对系统的性能造成比较大的损耗。

以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。

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