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

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

Info

Publication number
CN110990843B
CN110990843B CN201911359002.9A CN201911359002A CN110990843B CN 110990843 B CN110990843 B CN 110990843B CN 201911359002 A CN201911359002 A CN 201911359002A CN 110990843 B CN110990843 B CN 110990843B
Authority
CN
China
Prior art keywords
function
vulnerability
artificial intelligence
software
vulnerability scanning
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.)
Active
Application number
CN201911359002.9A
Other languages
English (en)
Other versions
CN110990843A (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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to CN201911359002.9A priority Critical patent/CN110990843B/zh
Publication of CN110990843A publication Critical patent/CN110990843A/zh
Application granted granted Critical
Publication of CN110990843B publication Critical patent/CN110990843B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

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

Description

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

Claims (2)

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

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911359002.9A CN110990843B (zh) 2019-12-25 2019-12-25 人工智能和模糊测试漏洞扫描系统(AIFuzz)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911359002.9A CN110990843B (zh) 2019-12-25 2019-12-25 人工智能和模糊测试漏洞扫描系统(AIFuzz)

Publications (2)

Publication Number Publication Date
CN110990843A CN110990843A (zh) 2020-04-10
CN110990843B true CN110990843B (zh) 2024-02-02

Family

ID=70075585

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911359002.9A Active CN110990843B (zh) 2019-12-25 2019-12-25 人工智能和模糊测试漏洞扫描系统(AIFuzz)

Country Status (1)

Country Link
CN (1) CN110990843B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113206849B (zh) * 2021-04-29 2022-12-20 杭州安恒信息安全技术有限公司 一种基于ghidra的漏洞扫描方法、装置及相关设备
CN113204498B (zh) * 2021-06-07 2023-04-07 支付宝(杭州)信息技术有限公司 针对闭源函数库生成模糊测试驱动器的方法和装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110119627A (zh) * 2019-05-22 2019-08-13 刘士刚 自动化人工智能漏洞检测系统
CN110175120A (zh) * 2019-05-20 2019-08-27 北京理工大学 一种基于强化学习的模糊测试用例自适应变异方法和装置
CN110399730A (zh) * 2019-07-24 2019-11-01 上海交通大学 智能合约漏洞的检查方法、系统及介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8839441B2 (en) * 2010-06-28 2014-09-16 Infosys Limited Method and system for adaptive vulnerability scanning of an application
US10983853B2 (en) * 2017-03-31 2021-04-20 Microsoft Technology Licensing, Llc Machine learning for input fuzzing

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110175120A (zh) * 2019-05-20 2019-08-27 北京理工大学 一种基于强化学习的模糊测试用例自适应变异方法和装置
CN110119627A (zh) * 2019-05-22 2019-08-13 刘士刚 自动化人工智能漏洞检测系统
CN110399730A (zh) * 2019-07-24 2019-11-01 上海交通大学 智能合约漏洞的检查方法、系统及介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
周鹏 ; 倪昀泽 ; .一种评估漏洞扫描工具效果的测试集生成方法.科技视界.2018,(18),全文. *
汪洁 ; 杨力立 ; 杨珉 ; .基于集成分类器的恶意网络流量检测.通信学报.2018,(10),全文. *

Also Published As

Publication number Publication date
CN110990843A (zh) 2020-04-10

Similar Documents

Publication Publication Date Title
CN108647520B (zh) 一种基于脆弱性学习的智能模糊测试方法与系统
Tann et al. Towards safer smart contracts: A sequence learning approach to detecting security threats
TWI553503B (zh) 產生候選鈎點以偵測惡意程式之方法及其系統
CN110990843B (zh) 人工智能和模糊测试漏洞扫描系统(AIFuzz)
Murtaza et al. A host-based anomaly detection approach by representing system calls as states of kernel modules
CN106411921B (zh) 基于因果贝叶斯网络的多步攻击预测方法
CN116049831A (zh) 一种基于静态分析和动态分析的软件漏洞检测方法
CN112307473A (zh) 一种基于Bi-LSTM网络和注意力机制的恶意JavaScript代码检测模型
CN109271782A (zh) 检测攻击行为的方法、介质、系统和计算设备
Aineto et al. Model recognition as planning
CN110119627A (zh) 自动化人工智能漏洞检测系统
CN113326187A (zh) 数据驱动的内存泄漏智能化检测方法及系统
US20230281317A1 (en) False positive vulnerability detection using neural transformers
CN111177731A (zh) 一种基于人工神经网络的软件源代码漏洞检测方法
CN112989363A (zh) 漏洞定位方法、装置、电子设备和存储介质
Tian et al. Stealthy backdoors as compression artifacts
CN113742205A (zh) 一种基于人机协同的代码漏洞智能检测方法
CN111160797A (zh) 风控模型的构建方法、装置、存储介质及终端
Maddireddy et al. Automating Malware Detection: A Study on the Efficacy of AI-Driven Solutions
CN114285587A (zh) 域名鉴别方法和装置、域名分类模型的获取方法和装置
CN113918936A (zh) Sql注入攻击检测的方法以及装置
CN116663018A (zh) 一种基于代码可执行路径的漏洞检测方法及装置
CN115955329A (zh) 一种网络安全防护方法、终端及存储介质
US20230205883A1 (en) Integrated static and dynamic analysis for malware detection
CN112330312B (zh) 基于区块链支付和面部识别的数据处理方法及大数据平台

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant