首页 / 专利库 / 企业组织 / 流程图 / 人工智能和模糊测试漏洞扫描系统(AIFuzz)

人工智能和模糊测试漏洞扫描系统(AIFuzz)

阅读:713发布:2020-05-11

专利汇可以提供人工智能和模糊测试漏洞扫描系统(AIFuzz)专利检索,专利查询,专利分析的服务。并且本系统涉及计算机 软件 安全领域,针对计算机软件漏洞扫描公开了一种既可以在机器语言也可以直接在二进制语言(即机器语言)上基于 人工智能 的自动化漏洞扫描系统,命名为AIFuzz漏洞扫描系统,其中,AIFuzz漏洞扫描系统是在自动化人工智能漏洞扫描系统 基础 上开发的漏洞扫描系统,它包括基于人工智能的漏洞扫描;在人工智能已经是别的漏洞的前提下,利用 强化学习 和人工智能技术引导模糊测试工具,进一步测试可能存在的漏洞,从而减少误报率。本 申请 实施例 的方法,用户即能够扫描源码,也可以在拿不到源码的前提下,对购买的软件进行漏洞扫描,从而解决了对闭源软件快速的进行漏洞扫描的问题。同时我们是在自动化人工智能漏洞扫描系统的基础上开发的,既可以扫描大的软件,也可以引导模糊测试模型,对扫描出来的漏洞进行二次扫描,减少误报率,从而避免了现存的一些软件面对大的软件效率非常底下的问题。,下面是人工智能和模糊测试漏洞扫描系统(AIFuzz)专利的具体信息内容。

1.人工智能和模糊测试漏洞扫描系统(AIFuzz),其特征包括:
根据人工智能漏洞检测系统检测的结果,本文中称为目标函数,处理并清洗目标函数;
利用强化学习来学习目标函数,结合种子数据产生输入数据,作为模糊测试的输入数据;
并将目标函数存储至第一预设数据库中,强化学习产生的输入数据存储至第二预设数据库中。
2.根据权利要求1所述的方法,运行模糊测试工具,有针对性的对目标函数进行扫描;
如果目标函数被扫描后显示没有漏洞,该函数被标记为误报,如果目标函数被检测出有漏洞,我们标记为漏洞函数,如果因为模糊测试的输入问题,导致目标函数没有通过扫描或者说模糊测试没有成功扫描到该目标函数,该函数被标记为漏扫函数;
并将处理的漏洞函数和漏扫函数的信息分别存储至第三和第四预设数据库中。
3.根据权利要求2所述的方法,其特征在于,对漏扫的函数进行分析,包括:
利用angr(angr是一个基于符号执行和模拟执行的二进制框架)或者相应的工具提取该漏扫函数的控制流程图,利用长短记忆模型对数据进行编码,学习重要的特征,最终从长短记忆力模型的倒数第二层提出特征,利用我们研发的公式计算种子输入和目标函数的距离,并将处理后的该被扫描的软件信息存储至第五预设数据库中。
4.根据权利要求3所述的方法,在长短记忆力模型的帮助下,计算距离并重新运行模糊测试工具,其特征在于:
先用我们研发的公式计算距离,然后利用模糊测试工具针对性的扫描目标函数的位置,如果距离偏大,函数返回强化学习模型重新产生输入数据,输出结果为检测完的函数,标记为误报函数或者漏扫函数;
并将处理的函数数据的信息存储至相应的数据库中。
5.根据权利要求1,2或3所述的方法,其特征在于,该漏洞扫描系统不仅可以对源码进行漏洞扫描也可以对二进制语言进行漏洞扫描,包括:
获取预测试的软件的漏洞扫描请求
对请求的软件进行初步检查,如果该软件是二进制语言,通过请求,允许上传二进制文件进行漏洞扫描;
并将要扫描的软件信息存储至相应的设数据库中;
如果被检测的数据为计算机源码,通过请求,允许上传源码文件进行扫描,并将扫描的结果存储至相应的数据库中。
6.根据权利要求1所述的方法,其特征在于,对上传的源码或者二进制文件的扫描,包括:利用人工智能漏洞扫描工具对上传的文件进行扫描,然后针对扫描的漏洞函数利用强化学习和种子输入进行建模,该强化学习和模糊测试是一个互相合作的关系,如果产生的输入能够被模糊测试正确的应用,则得到一个奖励,否则强化学习的过程则得不到奖励,强化学习的目的是为了得到更多的奖励,从而产生更有效的输入数据。
7.根据权利要求3所述的方法,其特征在于,
利用长短记忆力模型对漏扫函数进行编码和特征提取,为了学习更好的特征和训练一个好的学习模型,整个被测试的软件都将作为输入数据,然后从第四预设数据库中读取漏扫的函数的信息喂给训练好的模型最终从模型的倒数第二层提取出特征,用来计算种子输入和目标函数的距离。
8.根据权利要求1,2,3或4所述的方法,其特征在于,自动化漏洞识别模型能够对Java、C、C++、Visual Basic、PHP、Perl、Python、C#、JavaScript、Delphi、SAS、Ruby、PL/SQL、D、ABAP、Lisp/Scheme、COBOL、Ada、Pascal、及Visual FoxPro中的任一种编程语言的二进制文件进行漏洞扫描,其中,输出结果为漏洞函数的信息和漏洞的位置。

说明书全文

人工智能和模糊测试漏洞扫描系统(AIFuzz)

技术领域

[0001] 本系统涉及计算机软件安全领域,针对计算机软件漏洞扫描研发了一种既可以在源码也可以直接在二进制语言(即机器语言)上进行漏洞扫描系统,命名为AIFuzz漏洞扫描系统。

背景技术

[0002] 近年来,计算机软件呈现了爆发式的增长,计算机软件的漏洞和计算机软件的发展呈现了正相关性。研究表明网络空间安全事件的一个主要原因是软件中难以发现的漏洞和难以实现的漏洞扫描。统计表明到2019年,网络犯罪的全球成本将达到2万亿美元,是2015年估计的5000亿美元的三倍。今年全球打击网络犯罪的支出将达到800亿美元。同时,闭源软件也给漏洞的扫描带来了很大的挑战。目前静态分析的技术主要是基于源码进行分析的,比如形式化验证,符号验证和污点分析等都需要源码来进行漏洞的挖掘,基于目前很多软件都不是开源软件,这就给目前的静态分析技术带来了很大的挑战。同时目前也有动态扫描技术可以对基于二进制语言的软件进行扫描,但是常用的系统比如fuzzing会因为输入问题导致测试崩溃,改进的fuzzing系统也面临各种问题,比如符号执行支持的fuzzing依然会面临路径爆炸问题,也就是随着软件的代码越来越多,测试的路径就会越来越多,最终导致测试崩溃。再者,虽然有商用软件可以进行漏洞分析,但是根据我们的经验,商用软件比如IDA Pro扫描所消耗的时间比较久,一旦遇到大的软件,扫描周期太长,并且效果不是很好。IDA Pro在美国国防部主导的CGC数据上扫描的结果很不理想。目前有基于人工智能的漏洞扫描系统,这无疑大大提高了检测的效率和速度。但是我们认识到基于人工智能的漏洞检测系统有误报的情况出现。目前也有开发的辅助的fuzzing漏洞扫描工具,但是目前开发的导向的fuzzing依然难以克服效率低的问题,比如Driller和AFLgo一方面入级别特别高,另一方面这些工具依然难以克服面对大的系统和软件时效率低的问题。
鉴于此,该专利研发了结合人工智能漏洞扫描系统和模糊测试的自动化漏洞扫描工具。
发明内容
[0003] 为克服人工智能漏洞扫描系统误报的情况,特提出以下技术方案:
[0004] 第一方面,提供了一种结合人工智能和模糊测试的漏洞扫描的方法,包括:
[0005] 在不同运行环境下的软件,比如Linux,Windows,Mac,在不同的编译器上运行的软件,比如O0,O1,O2等等。
[0006] 其中所包含的技术是我们研发的基于注意模型机制的强化学习算法(Reinforcement Learning)。在我们的大数据库里,利用强化学习产生模糊测试的输入数据。引导模糊测试工具针对性的扫描。
[0007] 第二方面,提供了一种基于人工智能模糊测试的漏洞扫描的系统,包括:
[0008] 给定任意语言的计算机软件,网页APP,手机APP,包括在不同运行环境下编译的软件,比如Linux,Windows,Mac,和在不同的编译器上运行的软件,比如O0,O1,O2等等。
[0009] AIfuzz能够大批量的有效的预测该软件可能存在的漏洞的类型和漏洞的具体信息。
[0010] 其中所包含的技术是我们研发的基于长短记忆力模型的引导模糊测试的模型。
[0011] 给定要扫描的计算机软件,我们研发的基于长短记忆力模型用来提取目标函数的特征,该特征用于下一步计算种子输入到某函数的距离,以判断模糊测试是否覆盖该函数。
[0012] 第三方面,本申请提供了一种应用人工智能和模糊测试的漏洞扫描的方法,在提取的特征的基础上,利用研发的距离公式计算种子输入到某函数的距离。如果距离偏大,则调整模糊测试的输入数据。
[0013] 第四方面,本申请在前三个阶段中用到了以下技术:
[0014] ·利用定制的人工智能技术自动在源码或者二进制语言上快速有效的检测有漏洞的函数 (图2)。
[0015] ·利用定制的强化学习来产生模糊测试的输入数据(图3)。
[0016] ·利用定制的长短记忆力模型来学习控制流的特征并提取特征。
[0017] ·利用定制的距离公式来计算种子输入到目标函数的距离大小(图3)。
[0018] ·结合各个模型调整输入数据,做到结合强化学习,长短记忆力模型和定制的距离公式,双重引导模糊测试扫描特定的函数。
[0019] ·利用定制的人工智能技术和模糊测试技术定位函数的信息,从而在函数粒度准确的预报漏洞(图3)。
[0020] 本发明的实施方式相对于现有技术而言,第一我们解决了结合人工智能和模糊测试在源码和二进制语言上来自动化扫描漏洞的技术瓶颈
[0021] 另外,我们的系统可以在函数级别上预报漏洞所在的位置和具体详细的信息。
[0022] 另外,因为我们的系统是结合了人工智能和模糊测试的自动化扫描,所以一方面我们的系统兼容性更强,误报率更低,第二我们的系统能够通过学习变得更加智能,从而能够通过不断地迭代升级,完善和扫描的准确性。
[0023] 另外,我们自主研发的基于人工智能和模糊测试的的漏洞扫描系统针对大规模的软件和计算机系统进行漏洞扫描。
[0024] 另外,我们的系统在漏洞扫描上既可以在源码也可以在机器语言上进行扫描。免除了源代码敏感企业的后顾之忧,大大降低了应用门槛,拓展了应用领域。附图说明
[0025] 本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
[0026] 图1为本申请实施例的总体实施方法的流程示意图;
[0027] 图2为本申请实施例的人工智能识别方法的流程示意图;
[0028] 图3为本申请实施例的漏洞扫描模型内部结构互相合作的示意图。

具体实施方式

[0029] 下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的功能。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本申请的限制。
[0030] 本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、训练和测试,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、训练和测试。应该理解,当我们成函数识别模型训练或者漏洞扫描模型训练的时候,它可以理解为单独训练一个模型,也可以理解为把两个模型组成一个系统,先后完成整个系统模型的训练和调试。本申请说明书中所用的措辞“二进制语言”和“机器语言”为同一语言。本系统同时可以应用到汇编语言和计算机源码。
[0031] 为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
[0032] 本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
[0033] 本申请提供的结合自动化人工智能和模糊测试漏洞扫描系统,旨在解决现有技术的一下问题: 1)静态分析方法不能有效的针对二进制语言进行漏洞扫描分析;2)现有的动态分析不能高效的解决漏洞分析的问题,尤其是面对大规模的代码或者大的软件,现有的动态分析或遇到各种问题,比如符号执行会有路径爆炸的问题。
[0034] 下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
[0035] 本申请使用的AIfuzz漏洞检测系统如图1、图2和图3所示,包括:自动化漏洞扫描整体示意图,人工智能漏洞扫描示意图和模型内部互动示意图。
[0036] 图1,首先启动系统,然后上传要进行漏洞扫描的软件,利用自动化人工智能漏洞检测系统进行扫描,如果没有漏洞,结束整个扫描过程。如果有漏洞,收集检测到的存在漏洞的函数极其信息(目标函数)。利用研发的强化学习,学习目标函数在模糊测试下的输入。
[0037] 图1,在强化学习完成后,一方面在目标函数上利用深度学习学习其特征,另一方面计算模糊测试的覆盖的路径和目标函数的距离,如果距离偏大则舍弃该种子输入,如果距离偏小,则反馈给强化学习,产生更多类似的输入数据。最后预报出函数的漏洞极其信息。
[0038] 图2,给出了人工智能漏洞监测系统在该系统中的作用,开启系统,上传要扫描的软件。人工智能漏洞检测系统则利用预先训练好的模型进行漏洞检测,预报出有漏洞的函数及其位置,并将该信息保存至后台数据库。
[0039] 图3,在人工智能漏洞检测系统检测到目标函数之后。系统启动预先训练好的长短记忆里模型对目标函数中的控制流程图进行学习,把控制流程图里面的信息转化为特征向量
[0040] 图3,在收集到目标函数之后,启动预先训练好的记忆力模型,对目标函数的模糊测试阶段的输入数据进行学习,并产生输入数据。
[0041] 图3,在完成长短记忆里模型的学习和强化学习的模型的学习阶段之后。启动模糊测试,在定向研发的距离公式的引导下,定向的对目标函数进行测试。测试阶段同时和长短记忆力模型下的距离大小和强化学习产生的输入数据互动。如果距离偏大在移除种子数据,如果强化学习产生的输入数据有效,则奖励强化学习模型,使之能够产生更多帮助模糊测试定向检测目标函数的输入数据。
[0042] 图3,在模糊测试完成对所有的目标函数测试之后,把第二次验证的信息存入数据库,同时把人工智能漏洞检测系统产生的漏洞信息一并存入数据库。
[0043] 本申请实施例提供了一种基于人工智能和模糊测试的的自动化漏洞扫描系统,与现有技术相比,一方面利用了人工智能效率高的优势,另一方面利用研发的长短记忆力模型和强化学习可以针对性的引导模糊测试的优势对软件的源码和二进制语言进行漏洞扫描。该系统不但克服了人工智能扫描漏洞存在误报的问题,另一方面也克服了模糊测试覆盖率低的问题。做到了对软件和系统的双重检测。大大提高了效率和准确性。
[0044] 本申请实施例提供了另一种可能的实现方式,其中,人工智能包括很多技术,我们的技术包括深度学习,监督学习,强化学习,特征提取,特征学习,模糊测试。我们的系统能够平移到汇编语言上上进行漏洞扫描。
[0045] 以上所述仅是本申请的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对人工智能的模型,强化学习的模型,模糊测试的模型等做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
[0046] 同时本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈