CN113419960B - 用于可信操作***内核模糊测试的种子生成方法及*** - Google Patents

用于可信操作***内核模糊测试的种子生成方法及*** Download PDF

Info

Publication number
CN113419960B
CN113419960B CN202110749360.1A CN202110749360A CN113419960B CN 113419960 B CN113419960 B CN 113419960B CN 202110749360 A CN202110749360 A CN 202110749360A CN 113419960 B CN113419960 B CN 113419960B
Authority
CN
China
Prior art keywords
call
system call
kernel
operating system
dependency
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
CN202110749360.1A
Other languages
English (en)
Other versions
CN113419960A (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.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
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 National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN202110749360.1A priority Critical patent/CN113419960B/zh
Publication of CN113419960A publication Critical patent/CN113419960A/zh
Application granted granted Critical
Publication of CN113419960B publication Critical patent/CN113419960B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种用于可信操作***内核模糊测试的种子生成方法及***,本发明方法包括:针对输入的***调用文件L获取其中***调用之间的依赖关系;根据***调用之间的依赖关系生成用于可信操作***内核模糊测试的种子;其中,***调用之间的依赖关系包括显式依赖关系和隐式依赖关系,显式依赖关系是指一个***调用的参数是另一个***调用的结果;隐式依赖关系是指两个***调用共同使用操作***内核的某个共享区域。本发明能够有效提高对可信操作***内核模糊测试的效率,保证可信操作***的安全性和可靠性,一方面可以为漏洞分析提供依据;另一方面从网络攻防的角度考虑,有助于帮助维护者先于攻击者发现并及时修补漏洞。

Description

用于可信操作***内核模糊测试的种子生成方法及***
技术领域
本发明涉及可信操作***测试技术,具体涉及一种用于可信操作***内核模糊测试的种子生成方法及***。
背景技术
当前可信操作***已成为预防敏感数据泄露、防止敏感数据被篡改的重要方法,而内核是操作***中最重要的组成部分,因此对内核的安全研究就极为重要。模糊测试作为一种高效的漏洞挖掘方法,在操作***内核安全领域得到了广泛的应用。模糊测试是一种通过向目标***提供非预期输入并监控异常结果来发现软件漏洞的方法,具有自动化程度高、可用性好、误报率低、对目标程序源码没有依赖等优点。
进行模糊测试的首要条件就是大量的测试用例,这些测试用例也被称为初始种子。初始种子的质量很大程度地影响模糊测试的效果。现阶段的种子生成方法主要分为两种:基于变异的种子生成方法和基于随机的种子生成方法。基于随机的方法在对目标软件输入格式的基础上,自动生成一些不满足数据规约的测试样本;基于变异的方法从一个合法的样本出发,通过算法修改其中一些数据,生成畸形的样本。在生成测试用例过程中,一些启发式的生成策略往往能收到较好的效果。但是,传统的测试种子生成方法以手动编码为主,存在效率低、难度大的弊端。
发明内容
本发明要解决的技术问题:针对现有技术的上述问题,以及目前对可信操作***内核安全分析的迫切性,提供一种用于可信操作***内核模糊测试的种子生成方法及***,本发明能够有效提高对可信操作***内核模糊测试的效率,保证可信操作***的安全性和可靠性,一方面可以为漏洞分析提供依据;另一方面从网络攻防的角度考虑,有助于帮助维护者先于攻击者发现并及时修补漏洞。
为了解决上述技术问题,本发明采用的技术方案为:
一种用于可信操作***内核模糊测试的种子生成方法,包括:
1)基于可信操作***内核程序W建立依赖图并获取各个***调用之间的显式依赖关系,所述显式依赖关系是指一个***调用的参数是另一个***调用的结果;基于***调用文件L进行控制流分析获取各个***调用之间的隐式依赖关系,所述隐式依赖关系是指两个***调用共同使用操作***内核的某个共享区域;
2)根据各个***调用之间的显式和隐式依赖关系生成并提取可信操作***内核模糊测试种子。
可选地,步骤1)中基于可信操作***内核程序W建立依赖图的步骤包括:针对可信操作***内核程序W的***调用集合进行遍历,每遍历一个***调用,则首先将该***调用移入已处理集合中,然后在该***调用所在程序中查找其上游调用,最后遍历选取该***调用的参数,如果上游调用的结果或其结果经过计算后作为了当前参数,那么将上游调用作为结果节点、当前调用作为参数节点加入依赖图,并在这两个节点之间建立一条边,从而得到依赖图,所述依赖图为由顶点的有穷集合和顶点之间边的集合组成的图G(V,E),其中V是图G中顶点的集合,E是图G中边的集合,顶点集合V分为结果节点和参数节点,分别表示***调用的返回值和参数,如果两个节点含有显式依赖关系则那么这两个节点之间存在一条边。
可选地,步骤1)中获取各个***调用之间的显式依赖关系的步骤包括:针对图G(V,E)中的每一个待检测的***调用,首先找到其在图G(V,E)中对应的参数节点,然后查找所有与该参数节点存在边的结果节点,结果节点所表示的***调用为与待检测***调用存在显式依赖关系的调用,最终得到所有的***调用之间的显式依赖关系。
可选地,步骤1)中进行控制流分析获取各个***调用之间的隐式依赖关系的步骤包括:
1.1)对***调用文件L通过词法分析、语法分析最终生成一个抽象语法树;
1.2)基于抽象语法树获取***调用之间的隐式依赖关系。
可选地,步骤1.1)包括:
1.1.1)读取***调用文件L并顺序扫描***调用文件L中的***调用,将***调用分割成一个个的词,所述词是源文件中不可再进一步分割的一串字符;
1.1.2)获取词法分析得到的词序列,判断词序列是否符合可信操作***内核定义的***调用文法产生,并将所有符合可信操作***内核定义的***调用文法产生的词序列生成抽象语法树。
可选地,步骤1.2)包括:将解析***调用得到的抽象语法树加载到内存中,遍历抽象语法树来进行控制流分析,通过如下规则进行控制流分析,当条件表达式或其子表达式中出现资源解引用操作,表明该表达式位置包含读、写操作,则将包含该表达式的***调用加入到隐式依赖集合中,最终得到表包含所有隐式依赖关系的隐式依赖集合。
可选地,步骤2)包括:
2.1)依据各个***调用之间的显式和隐式依赖关系,生成批量的随机种子;
2.2)针对随机种子根据***调用的代码覆盖率进行排序;
2.3)从排序后的随机种子中选取代码覆盖范围最大的***调用,如果该***调用触发了新的代码覆盖区域,则递归地查找与它存在依赖关系的***调用,且与任意选取的***调用A存在依赖关系的***调用包括:***调用A的显式依赖关系集合u、以及显式依赖关系集合u中调用的隐式依赖项;***调用A的隐式依赖项,以及隐式依赖项上游的显式依赖项;
2.4)将选取的***调用及与它存在依赖关系的***调用加入到初始种子SEED中,将初始种子SEED作为最终生成的可信操作***内核模糊测试种子。
可选地,步骤2.4)之后还包括将初始种子SEED中的有效种子存储为二进制文件的步骤,且存储为二进制文件的规则包括:①一个二进制文件存储一个种子,该种子可以被解析为多条***调用,***调用的排列顺序为在内核中的执行顺序;②一个***调用包含一个序列号、多个参数的类型以及他们对应的参数值。
此外,本发明还提供一种用于可信操作***内核模糊测试的种子生成***,包括相互连接的微处理器和存储器,该微处理器被编程或配置以执行所述用于可信操作***内核模糊测试的种子生成方法的步骤。
此外,本发明还提供一种计算机可读存储介质,该计算机可读存储介质中存储有被编程或配置以执行所述用于可信操作***内核模糊测试的种子生成方法的计算机程序。
和现有技术相比,本发明具有下述优点:针对目前对可信操作***内核安全分析的迫切性,面向模糊测试技术,本发明方法包括基于可信操作***内核程序W建立依赖图并获取各个***调用之间的显式依赖关系,根据各个***调用之间的显式和隐式依赖关系生成并提取可信操作***内核模糊测试种子;本发明能够生成调用重复率低、覆盖范围广、有效比例高的测试种子,可实现自动生成初始种子以提高对可信操作***内核模糊测试的效率,一方面可以为漏洞分析提供依据;另一方面从网络攻防的角度考虑,有助于帮助维护者先于攻击者发现并及时修补漏洞。
附图说明
图1为本发明实施例方法的基本流程示意图。
图2为本发明实施例中显式依赖关系分析流程示意图。
图3为本发明实施例中显式依赖关系的查找流程示意图。
图4为本发明实施例中隐式依赖关系的查找流程示意图。
图5为本发明实施例方法中可信操作***内核模糊测试***的结构示意图。
具体实施方式
本实施例中的硬件环境主要是一台PC主机。其中,PC主机的CPU为Intel(R)Core(TM)i5-4570,3.20GHz,内存为4GB RAM,64位操作***。本实施例中的软件实现以Ubuntu1604为平台,使用C语言开发,控制流分析工具为Smatch。实验数据为OPTEE OS,OPTEE OS是一个开源的可信操作***,由Linaro公司维护。
如图1所示,本实施例用于可信操作***内核模糊测试的种子生成方法包括:
1)基于可信操作***内核程序W建立依赖图并获取各个***调用之间的显式依赖关系,所述显式依赖关系是指一个***调用的参数是另一个***调用的结果;基于***调用文件L进行控制流分析获取各个***调用之间的隐式依赖关系,所述隐式依赖关系是指两个***调用共同使用操作***内核的某个共享区域;
2)根据各个***调用之间的显式和隐式依赖关系生成并提取可信操作***内核模糊测试种子。
模糊测试通过变异初始种子来生成大量输入测试程序,如果没有有效的种子,模糊测试的性能会显著下降。要保证种子的有效性,就要保留***调用之间的依赖关系。***调用之间的依赖关系分为显式依赖和隐式依赖,当一个***调用A的参数是另一个***调用B的结果时,称A与B之间存在显式依赖关系;当一个***调用A与***调用B共同使用操作***内核的某个共享区域时,称A与B之间存在隐式依赖关系。
本实施例中,***调用文件L由***调用序列构成,***调用是用户态的程序与操作***内核交互的主要接口,***调用序列由多个***调用按其执行顺序组成。在获取依赖关系之前需要收集***调用序列,以此作为分析依赖的依据,通过跟踪真实程序的执行收集***调用序列,将收集的***调用序列存储为***调用文件L以作为***调用序列库。
显式依赖关系的本质就是一个或多个***调用的参数和返回值之间的调用关系,可以通过构建依赖图的方法获取这种调用关系。参见图2,构建依赖图以获取显式依赖关系包含依赖图生成和依赖关系检测两个部分。
本实施例中,步骤1)中基于可信操作***内核程序W建立依赖图的步骤包括:针对可信操作***内核程序W的***调用集合进行遍历,每遍历一个***调用,则首先将该***调用移入已处理集合中,然后在该***调用所在程序中查找其上游调用,最后遍历选取该***调用的参数,如果上游调用的结果或其结果经过计算后作为了当前参数,那么将上游调用作为结果节点、当前调用作为参数节点加入依赖图,并在这两个节点之间建立一条边,从而得到依赖图,所述依赖图为由顶点的有穷集合和顶点之间边的集合组成的图G(V,E),其中V是图G中顶点的集合,E是图G中边的集合,顶点集合V分为结果节点和参数节点,分别表示***调用的返回值和参数,如果两个节点含有显式依赖关系则那么这两个节点之间存在一条边。
本实施例中,步骤1)中获取各个***调用之间的显式依赖关系的步骤包括:针对图G(V,E)中的每一个待检测的***调用,首先找到其在图G(V,E)中对应的参数节点,然后查找所有与该参数节点存在边的结果节点,结果节点所表示的***调用为与待检测***调用存在显式依赖关系的调用,最终得到所有的***调用之间的显式依赖关系。
***调用文件L不能直接被内存识别,因此,需要通过词法分析、语法分析将***调用文件解析成内存可以识别的结构。本实施例中,步骤1)中进行控制流分析获取各个***调用之间的隐式依赖关系的步骤包括:
1.1)对***调用文件L通过词法分析、语法分析最终生成一个抽象语法树;
1.2)基于抽象语法树获取***调用之间的隐式依赖关系。
本实施例中,步骤1.1)包括:
1.1.1)读取***调用文件L并顺序扫描***调用文件L中的***调用,将***调用分割成一个个的词(token),所述词是源文件中不可再进一步分割的一串字符;
1.1.2)获取词法分析得到的词序列,判断词序列是否符合可信操作***内核定义的***调用文法产生,并将所有符合可信操作***内核定义的***调用文法产生的词序列生成抽象语法树。抽象语法树即内存可以识别的结构,它将无意义的字节流转换成具有代码结构的数据结构定义。
本实施例使用控制流分析方法检测隐式依赖关系,控制流分析是一种确认程序控制流程的静态代码分析技术。本实施例中,步骤1.2)包括:将解析***调用得到的抽象语法树加载到内存中,遍历抽象语法树来进行控制流分析,通过如下规则进行控制流分析,当条件表达式或其子表达式中出现资源解引用操作,表明该表达式位置包含读、写操作,则将包含该表达式的***调用加入到隐式依赖集合中,最终得到表包含所有隐式依赖关系的隐式依赖集合。
本实施例中,步骤2)包括:
2.1)依据各个***调用之间的显式和隐式依赖关系,生成批量的随机种子;
2.2)针对随机种子根据***调用的代码覆盖率进行排序;
2.3)从排序后的随机种子中选取代码覆盖范围最大的***调用,如果该***调用触发了新的代码覆盖区域,则递归地查找与它存在依赖关系的***调用,且与任意选取的***调用A存在依赖关系的***调用包括:如图3所示,***调用A的显式依赖关系集合u、以及显式依赖关系集合u中调用的隐式依赖项;如图4所示,***调用A的隐式依赖项,以及隐式依赖项上游的显式依赖项;显示查找策略如图3所示,假如获得了***调用A的显式依赖关系集合u,则不仅要将集合u添加到初始种子SEED中,还要添加u中调用的隐式依赖,直到所有存在依赖关系的***调用都被加入初始种子SEED中;类似地,隐式查找策略如图4所示,在发现一个调用的隐式依赖项时,需要将隐式依赖项上游的显式依赖添加到初始种子SEED中。
2.4)将选取的***调用及与它存在依赖关系的***调用加入到初始种子SEED中,将初始种子SEED作为最终生成的可信操作***内核模糊测试种子。
本实施例中,步骤2.4)之后还包括将初始种子SEED中的有效种子存储为二进制文件的步骤,且存储为二进制文件的规则包括:①一个二进制文件存储一个种子,该种子可以被解析为多条***调用,***调用的排列顺序为在内核中的执行顺序;②一个***调用包含一个序列号、多个参数的类型以及他们对应的参数值,本实施例中最多包含8个参数。一个序列号对应一个独特的***调用,用32比特表示,每个参数类型用4比特表示,每个参数值用32比特表示。通过制定种子存储格式,并将***调用的依赖关系作为约束条件、使用随机算法可生成大量的有效种子。与其他文件格式相比,二进制文件节约空间,读取和写入速度快。步骤2.2)~2.3)用于精简种子,精简种子即在保证***调用依赖关系的前提下,删除其中对代码覆盖率无贡献的调用,其目标是保证最大的代码覆盖范围和最小的种子数目。为了精简种子,首先需要根据***调用的代码覆盖率对其排序。其次,每次选取代码覆盖范围最大的***调用,如果该***调用触发了新的代码覆盖区域,则递归地查找与它存在显式依赖和隐式依赖关系的***调用,并将具有依赖关系的调用合并后加入到初始种子SEED中。
综上所述,本实施例方法能够生成调用重复率低、覆盖范围广、有效比例高的测试种子,可实现自动生成初始种子以提高对可信操作***内核模糊测试的效率,一方面可以为漏洞分析提供依据;另一方面从网络攻防的角度考虑,有助于帮助维护者先于攻击者发现并及时修补漏洞。
参见图5,本实施例方法在可信操作***内核模糊测试中时作为测试种子生成模块来提供初始种子SEED以参与可信操作***内核模糊测试的。本实施例中步骤2)之后还包括将初始种子SEED进行可信操作***内核模糊测试的步骤:
S1)将初始种子SEED进行变异以生成更多种子基于参数变异、序列变异、***调用***、***调用删除等方法进行变异;
S2)将将初始种子SEED、变异产生的合法种子发送到模糊测试器,模糊测试器将接收到的种子添加到执行队列中依次执行;
S3)模糊测试器通过调用普通世界NW中的***调用,普通应用CA首先调用与安全应用TA间的接口,根据相应的参数寻找到相对的可信驱动,之后通过监视器SMC操作,在监视器SMC的控制下,将上下文contex从普通世界NW切换到安全世界SW状态,从而实现了进入安全世界SW中的可信操作***Trusted OS;
S4)安全世界SW中的可信操作***Trusted OS会接管后续的操作,首先处理相应的传入参数,加载相应的安全应用TA,命名(command)参数调用TEE Internal API(可信执行环境内部APU)实现具体的操作;在执行测试的同时,覆盖率收集模块会收集内核中覆盖率范围并实时反馈到模糊测试器中,以指导测试用例的变异过程。
此外,本实施例还提供一种用于可信操作***内核模糊测试的种子生成***,包括相互连接的微处理器和存储器,该微处理器被编程或配置以执行前述用于可信操作***内核模糊测试的种子生成方法的步骤。
此外,本实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有被编程或配置以执行前述用于可信操作***内核模糊测试的种子生成方法的计算机程序。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可读存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (7)

1.一种用于可信操作***内核模糊测试的种子生成方法,其特征在于,包括:
1)基于可信操作***内核程序W建立依赖图并获取各个***调用之间的显式依赖关系,所述显式依赖关系是指一个***调用的参数是另一个***调用的结果;基于***调用文件L进行控制流分析获取各个***调用之间的隐式依赖关系,所述隐式依赖关系是指两个***调用共同使用操作***内核的某个共享区域;
2)根据各个***调用之间的显式和隐式依赖关系生成并提取可信操作***内核模糊测试种子;
步骤1)中进行控制流分析获取各个***调用之间的隐式依赖关系的步骤包括:
1.1)对***调用文件L通过词法分析、语法分析最终生成一个抽象语法树;
1.2)基于抽象语法树获取***调用之间的隐式依赖关系,包括:将解析***调用得到的抽象语法树加载到内存中,遍历抽象语法树来进行控制流分析,通过如下规则进行控制流分析,当条件表达式或其子表达式中出现资源解引用操作,表明该表达式位置包含读、写操作,则将包含该表达式的***调用加入到隐式依赖集合中,最终得到表包含所有隐式依赖关系的隐式依赖集合;
步骤2)包括:
2.1)依据各个***调用之间的显式和隐式依赖关系,生成批量的随机种子;
2.2)针对随机种子根据***调用的代码覆盖率进行排序;
2.3)从排序后的随机种子中选取代码覆盖范围最大的***调用,如果该***调用触发了新的代码覆盖区域,则递归地查找与它存在依赖关系的***调用,且与任意选取的***调用A存在依赖关系的***调用包括:***调用A的显式依赖关系集合u、以及显式依赖关系集合u中调用的隐式依赖项;***调用A的隐式依赖项,以及隐式依赖项上游的显式依赖项;
2.4)将选取的***调用及与它存在依赖关系的***调用加入到初始种子SEED中,将初始种子SEED作为最终生成的可信操作***内核模糊测试种子。
2.根据权利要求1所述的用于可信操作***内核模糊测试的种子生成方法,其特征在于,步骤1)中基于可信操作***内核程序W建立依赖图的步骤包括:针对可信操作***内核程序W的***调用集合进行遍历,每遍历一个***调用,则首先将该***调用移入已处理集合中,然后在该***调用所在程序中查找其上游调用,最后遍历选取该***调用的参数,如果上游调用的结果或其结果经过计算后作为了当前参数,那么将上游调用作为结果节点、当前调用作为参数节点加入依赖图,并在这两个节点之间建立一条边,从而得到依赖图,所述依赖图为由顶点的有穷集合和顶点之间边的集合组成的图G(V,E),其中V是图G中顶点的集合,E是图G中边的集合,顶点集合V分为结果节点和参数节点,分别表示***调用的返回值和参数,如果两个节点含有显式依赖关系则那么这两个节点之间存在一条边。
3.根据权利要求2所述的用于可信操作***内核模糊测试的种子生成方法,其特征在于,步骤1)中获取各个***调用之间的显式依赖关系的步骤包括:针对图G(V,E)中的每一个待检测的***调用,首先找到其在图G(V,E)中对应的参数节点,然后查找所有与该参数节点存在边的结果节点,结果节点所表示的***调用为与待检测***调用存在显式依赖关系的调用,最终得到所有的***调用之间的显式依赖关系。
4.根据权利要求1所述的用于可信操作***内核模糊测试的种子生成方法,其特征在于,步骤1.1)包括:
1.1.1)读取***调用文件L并顺序扫描***调用文件L中的***调用,将***调用分割成一个个的词,所述词是源文件中不可再进一步分割的一串字符;
1.1.2)获取词法分析得到的词序列,判断词序列是否符合可信操作***内核定义的***调用文法产生,并将所有符合可信操作***内核定义的***调用文法产生的词序列生成抽象语法树。
5.根据权利要求1所述的用于可信操作***内核模糊测试的种子生成方法,其特征在于,步骤2.4)之后还包括将初始种子SEED中的有效种子存储为二进制文件的步骤,且存储为二进制文件的规则包括:①一个二进制文件存储一个种子,该种子可以被解析为多条***调用,***调用的排列顺序为在内核中的执行顺序;②一个***调用包含一个序列号、多个参数的类型以及他们对应的参数值。
6.一种用于可信操作***内核模糊测试的种子生成***,包括相互连接的微处理器和存储器,其特征在于,该微处理器被编程或配置以执行权利要求1~5中任意一项所述用于可信操作***内核模糊测试的种子生成方法的步骤。
7.一种计算机可读存储介质,其特征在于,该计算机可读存储介质中存储有被编程或配置以执行权利要求1~5中任意一项所述用于可信操作***内核模糊测试的种子生成方法的计算机程序。
CN202110749360.1A 2021-07-01 2021-07-01 用于可信操作***内核模糊测试的种子生成方法及*** Active CN113419960B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110749360.1A CN113419960B (zh) 2021-07-01 2021-07-01 用于可信操作***内核模糊测试的种子生成方法及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110749360.1A CN113419960B (zh) 2021-07-01 2021-07-01 用于可信操作***内核模糊测试的种子生成方法及***

Publications (2)

Publication Number Publication Date
CN113419960A CN113419960A (zh) 2021-09-21
CN113419960B true CN113419960B (zh) 2022-06-14

Family

ID=77720083

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110749360.1A Active CN113419960B (zh) 2021-07-01 2021-07-01 用于可信操作***内核模糊测试的种子生成方法及***

Country Status (1)

Country Link
CN (1) CN113419960B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114840437B (zh) * 2022-05-24 2023-04-07 中南大学 一种操作***内核模糊测试种子评估分配方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101873323A (zh) * 2010-06-21 2010-10-27 南京邮电大学 基于程序切片技术的Web服务平台
CN109739755A (zh) * 2018-12-27 2019-05-10 北京理工大学 一种基于程序追踪和混合执行的模糊测试***
CN110554965A (zh) * 2019-09-05 2019-12-10 腾讯科技(深圳)有限公司 自动化模糊测试方法及相关设备、计算机可读存储介质
CN111382067A (zh) * 2020-02-27 2020-07-07 中国科学院信息工程研究所 一种模糊测试中高质量种子生成方法及***
CN111694746A (zh) * 2020-06-15 2020-09-22 荆门汇易佳信息科技有限公司 面向编译型语言AS3的Flash缺陷模糊测评工具
CN111797405A (zh) * 2020-07-01 2020-10-20 北京华昱卓程软件有限公司 一种序列导向的混合模糊测试方法及装置
CN112559367A (zh) * 2020-12-23 2021-03-26 南京大学 基于***调用依赖图的内核模糊测试用例生成方法
CN112948257A (zh) * 2021-03-23 2021-06-11 北京鸿腾智能科技有限公司 内核模糊测试用例生成方法、装置、设备及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10452526B2 (en) * 2017-06-15 2019-10-22 Microsoft Technology Licensing, Llc Machine learning for constrained mutation-based fuzz testing

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101873323A (zh) * 2010-06-21 2010-10-27 南京邮电大学 基于程序切片技术的Web服务平台
CN109739755A (zh) * 2018-12-27 2019-05-10 北京理工大学 一种基于程序追踪和混合执行的模糊测试***
CN110554965A (zh) * 2019-09-05 2019-12-10 腾讯科技(深圳)有限公司 自动化模糊测试方法及相关设备、计算机可读存储介质
CN111382067A (zh) * 2020-02-27 2020-07-07 中国科学院信息工程研究所 一种模糊测试中高质量种子生成方法及***
CN111694746A (zh) * 2020-06-15 2020-09-22 荆门汇易佳信息科技有限公司 面向编译型语言AS3的Flash缺陷模糊测评工具
CN111797405A (zh) * 2020-07-01 2020-10-20 北京华昱卓程软件有限公司 一种序列导向的混合模糊测试方法及装置
CN112559367A (zh) * 2020-12-23 2021-03-26 南京大学 基于***调用依赖图的内核模糊测试用例生成方法
CN112948257A (zh) * 2021-03-23 2021-06-11 北京鸿腾智能科技有限公司 内核模糊测试用例生成方法、装置、设备及存储介质

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Moonshine论文阅读;Dawuge;《https://daguge.github.io/2019/10/09/2019-10-09-moonshine/》;20191009;全文 *
基于重点变异区域智能识别的模糊测试技术;董雨良等;《计算机技术与发展》;20190424;全文 *
最新顶会fuzz论文分享;bsauce等;《https://github.com/bsauce/Some-papers-About-Fuzzing》;20191028;全文 *

Also Published As

Publication number Publication date
CN113419960A (zh) 2021-09-21

Similar Documents

Publication Publication Date Title
US20040205411A1 (en) Method of detecting malicious scripts using code insertion technique
US20120072988A1 (en) Detection of global metamorphic malware variants using control and data flow analysis
CN109635568B (zh) 一种基于静态分析和模糊测试相结合的并发漏洞检测方法
Liao et al. SmartDagger: a bytecode-based static analysis approach for detecting cross-contract vulnerability
He et al. Sofi: Reflection-augmented fuzzing for javascript engines
US20210334371A1 (en) Malicious File Detection Technology Based on Random Forest Algorithm
CN113468525A (zh) 针对二进制程序的相似漏洞检测方法及装置
Yesir et al. Malware detection and classification using fasttext and bert
CN113297580A (zh) 基于代码语义分析的电力信息***安全防护方法及装置
US9600644B2 (en) Method, a computer program and apparatus for analyzing symbols in a computer
CN113419960B (zh) 用于可信操作***内核模糊测试的种子生成方法及***
Sadeghi et al. Mining the categorized software repositories to improve the analysis of security vulnerabilities
Zuo Defense of Computer Network Viruses Based on Data Mining Technology.
CN113935041A (zh) 面向实时操作***设备的漏洞检测***及方法
CN116305131B (zh) 脚本静态去混淆方法及***
CN113468524A (zh) 基于rasp的机器学习模型安全检测方法
CN112445706A (zh) 程序异常代码获取方法、装置、电子设备以及存储介质
US11307962B2 (en) Method for semantic preserving transform mutation discovery and vetting
CN113138797A (zh) 面向Intel SGX的程序自动化移植***
CN113626823B (zh) 一种基于可达性分析的组件间交互威胁检测方法及装置
CN114840418A (zh) 模糊测试方法及装置
Kargén et al. Speeding up bug finding using focused fuzzing
Peng Attack surface analysis and code coverage improvement for fuzzing
Zhang et al. Machine Learning-based Fuzz Testing Techniques: A Survey
Quante Online construction of dynamic object process graphs

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