当前位置: 首页 > 专利查询>刘士刚专利>正文

自动化人工智能漏洞检测系统技术方案

技术编号:21851277 阅读:32 留言:0更新日期:2019-08-14 00:29
本系统涉及计算机软件安全领域,针对计算机软件漏洞检测公开了一种直接在二进制语言(即机器语言)上基于人工智能的自动化漏洞检测方法,命名为自动化人工智能漏洞检测系统,其中,自动化人工智能漏洞检测系统包括在二进制语言上基于人工智能的函数识别;在函数在二进制语言上被识别的前提下,应用基于人工智能的方法检测漏洞。本申请实施例的方法,用户能够在拿不到源码的前提下,对购买的软件进行漏洞检测,从而解决了对闭源软件快速的进行漏洞检测的问题。同时自动化人工智能漏洞检测系统能否离线训练模型,然后利用训练好的模型在线检测,尤其是针对大的软件进行快速的检测,从而避免了现存的一些软件面对大的软件效率非常底下的问题。

Automatic Artificial Intelligence Vulnerability Detection System

【技术实现步骤摘要】
自动化人工智能漏洞检测系统
本系统涉及计算机软件安全领域,针对计算机软件漏洞检测研发了一种直接在二进制语言(即机器语言)上基于人工智能的漏洞检测方法,命名为自动化人工智能漏洞检测系统。
技术介绍
随着计算机的发展,计算机软件呈现了爆发式的增长,计算机软件的漏洞和计算机软件的发展呈现了正相关性。研究表明网络空间安全事件的一个主要原因是软件中难以发现的漏洞和难以实现的漏洞检测。统计表明到2019年,网络犯罪的全球成本将达到2万亿美元,是2015年估计的5000亿美元的三倍。今年全球打击网络犯罪的支出将达到800亿美元。同时,网上的闭源软件也给漏洞的检测带来了很大的挑战。目前静态分析的技术主要是基于源码进行分析的,比如形式化验证,符号验证和污点分析等都需要源码来进行漏洞的挖掘,基于目前很多软件都不是开源软件,这就给目前的静态分析技术带来了很大的挑战。同时目前也有动态检测技术可以对基于二进制语言的软件进行检测,但是常用的系统比如fuzzing会因为输入问题导致测试崩溃,改进的fuzzing系统也面临各种问题,比如符号执行支持的fuzzing依然会面临路径爆炸问题,也就是随着软件的代码越来越多,测试的路径就会越来越多,最终导致测试崩溃。最重要的是辅助的fuzzing对机器要求特别高,Driller在我们的32线程,64G内存的机器上运行一周也没有检测到漏洞,后面我们了解到。Driller战队用的是计算功能强大的计算机运行的比赛数据。再者,虽然有商用软件可以进行漏洞分析,但是根据我们的经验,商用软件比如IDAPro检测所消耗的时间比较久,一旦遇到大的软件,检测周期太长,并且效果不是很好。IDAPro在美国国防部主导的CGC数据上检测的结果很不理想。
技术实现思路
为克服在闭源软件上大规模有效的检测漏洞的技术问题,特提出以下技术方案:第一方面,提供了一种基于人工智能的在二进制语言上的函数识别方法,包括:给定任意二进制语言的计算机软件,网页APP,手机APP,自动化人工智能漏洞检测系统能够识别函数,包括函数的开头,函数的结尾,函数的范围。同时能够快速有效的处理大的软件,包括:在不同运行环境下编译的软件,比如Linux,Windows,Mac,在不同的编译器上运行的软件,比如O0,O1,O2等等。其中所包含的技术是我们研发定制的基于注意力模型机制的深度学习模型(Bi-LSTM)。给定收集的大数据,函数识别过程先利用专家系统知识和反汇编工具识别函数的开头,结尾和范围。然后利用收集到的大数据训练人工智能模型,最后训练好的人工智能模型用来识别测试软件的函数范围。第二方面,提供了一种基于人工智能的在二进制语言基础上进行漏洞检测的系统,包括:给定任意二进制语言的计算机软件,网页APP,手机APP,包括在不同运行环境下编译的软件,比如Linux,Windows,Mac,和在不同的编译器上运行的软件,比如O0,O1,O2等等。自动化人工智能漏洞检测系统能够大批量的有效的预测该软件可能存在的漏洞的类型和漏洞的位置。其中所包含的技术是我们研发定制的基于注意力模型机制的深度学习模型(Bi-GRU)。给定要检测的计算机软件,自动化人工智能漏洞检测系统能够在剥离出来的函数级别上找到重要的注意力二进制词条。然后根据注意力词条的类型和属性判断漏洞的类型和漏洞可能所在的位置。第三方面,本申请提供了一种应用最新的人工智能来检测漏洞的方法,一旦完成第一批训练数据的提取,后面的所有过程都将是一个自动化的检测过程。解决了人工提取特征的复杂性和不确定性,同时也大大降低了人工成本。第四方面,本申请在前三个阶段中用到了以下技术:·利用定制的人工智能技术自动在二进制语言上快速有效的识别函数(图2)。·利用定制的人工智能技术对识别的函数自动化提取重要的特征(图3,训练阶段)。·利用定制的人工智能技术对提取的特征进行二次学习和提取,从而最大化漏洞函数和非漏洞函数的区别(图2步骤5,图3训练阶段)。·利用定制的模糊信息处理技术对二次学习的重要特征进行分析,对数据分布进行初步拟合,从而对数据的整体分布进行和学习,最终“平衡数据的分布”(图3)。·利用定制的人工智能技术关联“平衡后的数据分别样本”和漏洞函数的关系(图3注意力模型)。·利用定制的人工智能技术定位漏洞的位置,从而在函数粒度预报漏洞(图3注意力模型)。本专利技术的实施方式相对于现有技术而言,我们解决了利用人工智能在二进制语言上来自动化扫描漏洞的技术瓶颈。另外,我们的系统可以在函数级别上预报漏洞所在的位置。另外,因为我们的系统是基于人工智能的自动化扫描,所以我们的系统能够通过学习变得更加智能,从而能够通过不断地迭代升级,完善和检测的准确性。另外,我们自主研发的基于人工智能的漏洞扫描系统针对大量的二进制语言实现大规模的漏洞扫描。另外,我们的系统在漏洞检测上不需要源码,即可实现二进制语言(机器语言)自动漏洞检测。免除了源代码敏感企业的后顾之忧,大大降低了应用门槛,拓展了应用领域。附图说明本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:图1为本申请实施例的总体实施方法的流程示意图;图2为本申请实施例的二进制函数识别方法的流程示意图;图3为本申请实施例的漏洞检测模型训练的示意图;具体实施方式下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的功能。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本申请的限制。本
技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、训练和测试,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、训练和测试。应该理解,当我们成函数识别模型训练或者漏洞检测模型训练的时候,它可以理解为单独训练一个模型,也可以理解为把两个模型组成一个系统,先后完成整个系统模型的训练。本申请说明书中所用的措辞“二进制语言”和“机器语言”为同一语言。为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。本
技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本专利技术所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。本申请提供的自动化人工智能漏洞检测系统,旨在解决现有技术的一下问题:1)静态分析方法不能针对二进制语言进行漏洞检测分析;2)现有的动态分析不能高效的解决漏洞分析的问题,尤其是面对大规模的代码或者大的软件,现有的动态分析或遇到各种问题,比如符号执行会有路径爆炸的问题。下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。本申请使用的人工智本文档来自技高网
...

【技术保护点】
1.一种基于人工智能的漏洞检测系统,该检测系统的后台包括两个阶段:离线模型训练和在线漏洞扫描。其特征包括:根据从漏洞平台收集的训练数据,训练预定函数识别模型和预定漏洞扫描模型,从而完成第一个阶段的离线模型训练,训练数据至少包括以下一项:NVD(美国国家漏洞数据库)、CWE(通用漏洞库),和GitHub(控制和协作的软件项目托管平台)上的数据;对测试软件发出的漏洞扫描请求进行漏洞扫描,当所上传的软件通过初步检查后,通过预训练的函数识别模型对该上传的测试软件进行函数识别,然后漏洞扫描模型对已经识别的函数进行漏洞扫描,并输出扫描结果。

【技术特征摘要】
1.一种基于人工智能的漏洞检测系统,该检测系统的后台包括两个阶段:离线模型训练和在线漏洞扫描。其特征包括:根据从漏洞平台收集的训练数据,训练预定函数识别模型和预定漏洞扫描模型,从而完成第一个阶段的离线模型训练,训练数据至少包括以下一项:NVD(美国国家漏洞数据库)、CWE(通用漏洞库),和GitHub(控制和协作的软件项目托管平台)上的数据;对测试软件发出的漏洞扫描请求进行漏洞扫描,当所上传的软件通过初步检查后,通过预训练的函数识别模型对该上传的测试软件进行函数识别,然后漏洞扫描模型对已经识别的函数进行漏洞扫描,并输出扫描结果。2.根据权利要求1所述的方法,离线训练阶段包括基于人工智能的函数识别模型的建立,其特征在于:基于收集的二进制语言语言上的函数,利用objdump对函数的范围进行识别,分别对识别的函数标注类别,标注为为函数的起始点和函数结束点;同时通过对比训练的数据库NVD、CWE、和GitHub,对识别的函数标注类别,分别为有漏洞的函数和正常的函数;在此基础上利用模糊信息处理技术对训练的数据进行重要特征的提取和学习,然后双向长短记忆模型在提取的特征上进一步训练,输出位训练好的函数识别模型,最后在后台系统中嵌入该函数识别模型,用于函数识别;并将处理的函数数据的信息存储至第一预设数据库中。3.根据权利要求2所述的方法,其特征在于,对训练数据采用长短记忆注意力模型进行学习,包括:基于二进制语言的训练数据,利用长短记忆力模型对数据进行编码,学习重要的特征,建立函数识别的模型,然后长短记忆力模型对函数进行解码,识别函数的位置。4.根据权利要求1所述的方法,离线训练阶段包括基于人工智能的漏洞检测模型的建立,其特征在于:先用模糊信息处理技术对标记好的训练数据进行“样本的分布均衡化”,然后双向GRU神经网络模型在数据上学习,输出为训练好的漏洞检测模型,后台系统中嵌入该模型,用于漏洞扫描;并将处理的函数数据的信息存储至第二预设数据库中。5.根据权利要求2或4所述的方法,其特征在于,利用离线训练的函数识别模型和漏洞扫描模型...

【专利技术属性】
技术研发人员:刘士刚
申请(专利权)人:刘士刚
类型:发明
国别省市:陕西,61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1