一种基于人机协同的规模化Fuzzing优化系统及方法与流程

文档序号:26705683发布日期:2021-09-18 03:54阅读:来源:国知局

技术特征:
1.一种基于人机协同的规模化fuzzing优化系统,其特征在于,包括基于知识向量空间的人机协同智能决策模块、基于注释源语的人机协同并行化fuzz模块和人在回路的混合增强模块;其中,所述基于知识向量空间的人机协同智能决策模块用于完成人类漏洞挖掘知识与机器漏洞挖掘能力这些要素的抽象化,映射到统一的向量空间,将人机知识作为任务规划的部分输入,为并行化fuzz执行提供决策指导;所述基于注释源语的人机协同并行化fuzz模块用于完成基于人机协同的fuzz流程构建,接收人机协同智能决策模块输出的决策结果<任务信息,初始推荐的漏洞挖掘模型,fuzz执行策略,人机交互数据格式>,然后通过共享机制,实现计算节点之间的数据交互,以及并行策略的动态调整;所述人在回路的混合增强模块用于通过人机交互通道,为人指导漏洞挖掘过程提供数据通路,依据基于知识向量空间的人机协同智能决策模块选择的人机交互数据格式,将专家研判和选择传递到人机协同并行化fuzz模块,实现人的智慧与漏洞挖掘过程深度结合。2.如权利要求1所述的系统,其特征在于,所述基于知识向量空间的人机协同智能决策模块具体用于将人类的漏洞挖掘知识空间转换为机器可理解的人机协同漏洞挖掘知识库向量空间,利用深度强化学习的自动探索发现与关联学习能力,主动从人机协同漏洞挖掘知识库向量空间中构建适合于目标的漏洞挖掘模型,并进行相应的最优参数决策,人机协同漏洞挖掘知识库向量空间中包含机器可理解的漏洞原理及漏洞存在的行为模型、人类挖掘漏洞的相关知识以及专家知识数据,基于知识向量空间及专家经验,通过深度强化学习技术训练策略决策模型,得出漏洞挖掘的最优策略<任务信息,初始推荐的漏洞挖掘模型,fuzz执行策略,人机交互数据格式>,并将策略结果传递给基于注释源语的人机协同并行化fuzz模块,指导机器集群执行fuzz任务。3.如权利要求2所述的系统,其特征在于,所述基于知识向量空间的人机协同智能决策模块实现的人机协同智能决策模型采用深度强化学习框架,基于知识库向量空间与目标程序的交互,通过聚合分析与关联匹配,选择出与目标程序相契合的漏洞挖掘知识,以此自动构建挖掘模型,通过模仿人类漏洞挖掘模式,采用深度强化学习框架,基于知识库和目标信息的关联程度,生成最优参数配置。4.如权利要求2所述的系统,其特征在于,所述基于注释源语的人机协同并行化fuzz模块具体用于将人的知识和经验融合到并行化漏洞挖掘过程中,指导机器的并行化任务。5.如权利要求4所述的系统,其特征在于,所述基于注释源语的人机协同并行化fuzz模块由两部分组成:服务器和机器集群,其中,服务器包含八个模块,分别为并行任务分配与启动模块、状态更新模块、数据库模块、crash分析模块、位图监控及任务调整模块、种子选择模块、异常分析模块、服务器端通讯模块;所述机器集群中每个节点地位平等,每个节点包含三个模块,分别为节点端通讯模块、状态监控模块、变异与测试模块;所述并行任务分配与启动模块用于完成对漏洞挖掘任务的拆解和切片,使任务适用于机器集群大规模并发执行,并通过服务器端通讯模块将任务划分的结果<任务描述,切片索引,任务执行指令>下发给机器集群;种子选择模块用于基于知识向量空间,结合专家的人工选择,完成fuzz的种子用力选择;异常分析模块和crash分析模块均用于针对任务执行过程中的异常进行,经专家分析判断后,若是crash属于程序或功能异常,则将异常信息传递
给状态更新模块、数据库模块、位图监控及任务调整模块,进行任务执行状态的更新、异常信息的存储和任务执行的动态调整,然后通过服务器端通讯模块将调整后的任务执行信息和指令下发到机器集群;所述机器集群中的每个节点的变异与测试模块用于具体执行针对目标对象的模糊测试任务,并通过状态监控模块完成对任务执行现场及crash信息的记录,由节点端通讯模块实现与服务器端通讯模块的信息交互。6.如权利要求5所述的系统,其特征在于,所述并行任务分配与启动模块用于实现静态分析给定的目标程序,根据静态分析结果和并行节点数量进行fuzz任务划分,执行启动命令并通过服务器端通讯模块发送给fuzz节点集群,各个节点接收分配到的任务和启动命令开始执行模糊测试;所述状态更新模块用于对服务器及节点的工作及存活状态进行监控和更新,实时检测各个节点是否发生异常或离线,并更新系统的整体运行状态;所述数据库模块用于保存各种系统运行数据,包括测试用例md5校验和、各个节点位图及总位图;所述crash分析模块用于管理漏洞挖掘过程中产生的crash的分析任务,接收来自专家的反馈结果;所述位图监控及任务调整模块用于收集所有的并行节点的位图,并且固定时间段内更新位图,同样维护着数据库中的一张表,该表保存该模块收集到的位图,并观察各个节点的负载情况,根据负载情况调整各个节点的fuzz策略,实现并行节点间的负载均衡;所述种子选择模块用于生成fuzz任务使用的种子用例,并收集来自fuzz节点集群的运行信息,包括目标程序覆盖率、执行时间,以及新产生的crash数量;所述异常分析模块用于处理各种突发状况,并确定执行何种故障处理策略;所述服务器端通讯模块用于收集来自fuzz节点集群的各种运行信息,包括导致crash的测试用例、探测到新路径的测试用例、每个新产生的测试用例的md5校验和、程序覆盖路径位图、导致新发现所经历的变异策略及变异方法、待选字符集,同时还用于与服务器中其余模块的交互,提交来自节点集群的共享信息,收集来自服务器其余模块的反馈信息,并将反馈信息发送给节点集群。7.如权利要求5所述的系统,其特征在于,所述节点端通讯模块用于收集自身节点的运行信息发送给服务器,同时负责接收服务器的反馈信息然后推送给自身节点的变异与测试模块,另外还用于与状态监控模块交互,并将状态信息发送到服务器;所述状态监控模块用于监控fuzz任务的运行状况,并将这些信息传送给节点端通讯模块,由节点端通讯模块发送到服务器进行进一步的处理和决策;所述变异与测试模块用于基于专家提供的种子文件、变异策略、变异目标,执行具体的变异工作以及测试工作,产生各种共享信息,报告任务执行情况。8.如权利要求3所述的系统,其特征在于,所述人在回路的混合增强模块具体用于选择马尔可夫决策过程作为强化学习的模型,从问题的不确定性和重要性方面进行判断,选出需要人工干预的问题集合,在漏洞挖掘过程中引入更加深入的人类智能,指导强化学习模型迭代优化。9.如权利要求8所述的系统,其特征在于,所述人在回路的混合增强模块具体用于以问
题为粒度,将需要判断的问题抛出给人工进行处理,即询问人的过程,为了确定什么样的问题需要人介入进行判断,考虑问题的两个方面,即问题的不确定性和问题的重要性:(1)不确定性:在判断两个实体之间是否存在关系时,给出属于[0,1]的概率值,并且认为当概率值更接近两端时(0或1),给出的结论更加准确,在漏洞挖掘场景下,当强化学习中的模型面对行为的选择时,给出的是选择各个行为的概率分布,最终扩展成为选择路径的概率分布,模型在进行路径选择时,其概率分布应当更加有差异性,即机器对选择或不选择某一路径更加具有把握,反之,对于各个路径的概率分布趋于平均的情况,可以认为机器难以区分其中哪一条路径为更佳选择,通过计算熵的方式来评估路径选择的概率分布情况,在路径的概率分布越平均时,熵的值越大,反之则越小;(2)重要性:除了不确定性之外,将“重要性”也作为“是否将问题抛出给人判断”的衡量维度,对于一个关系而言,在模型的学习过程中,一个问题可能会被选中多次,从而在类别预测时它将提供更大的推理权重,如果该问题能够提供的推理信息量并不能和上述权重相匹配,则可能对最终的推理结果造成影响,而且这种影响将会比小权重的路径发生匹配错误的后果更加严重,将此类重要问题抛出,交给人工判断,具体来说,给定一个关系r,通过模型获得多个推理路径t
i
∈t,重要性的评估方式为计算其中累积概率的最大值:t
selected
=max(σp(t
i
))最后,综合不确定性和重要性两个维度的考虑,选择抛出给人工判断的问题的规则为:对于每一个关系,若h(t)>c,则选择该关系推理路径中的t
selected
提供给人进行判断,其中c为常数;在人工进行判断时,人更容易理解问题和类别之间的推理关系并且给出判断,人对问题的判断通过对问题进行评分反馈给模型,该步骤即人解答问题的过程,根据不确定性和重要性判断出该推理需要人工进行判断,模型即可将该推理过程反馈给人进行判断,在获得人工判断的评分结果后,将其加入到该路径的回报函数中,并重新训练模型的参数,具体来说,对于人工判断完成的路径,在原始回报函数中加入人工反馈项r
turnman
,人工反馈项的定义如下:r
turnman
=(score

3)3式中:score表示人对于该条推理路径的评分,对于人工判断完成的路径,其回报函数的定义如下:r
ture.n
=r
sturn
+λ4r
turnman
式中:r
sturn
=λ1r
reachability
+λ2r
length
+λ3r
diversity
表示除人工反馈以外的回报函数,λ1、λ2、λ3均为预设系数,与样本特征相关,r
reachability
、r
length
、r
diversity
分别表示可达性度量、长度因素、多样性评分,如果该条路径被模型重复选中,则不再抛出给人工进行判断,而直接使用前一次的人工判断结果,最后,计算该条路径综合的回报函数,并将其用于更新模型的参数。10.一种利用权利要求1至9中任一项所述系统实现的基于人机协同的规模化fuzzing优化方法。

技术总结
本发明涉及一种基于人机协同的规模化Fuzzing优化系统及方法,涉及信息安全技术领域。本发明基于人机协同理念,面向文本编辑类软件、音视频类软件等文件解析目标对象,设计了一种基于人机协同的规模化Fuzz优化系统,构建了基于人机协同的规模化Fuzzing技术框架,研究人机协同模式的漏洞挖掘过程,实现“人算计”和“机计算”能力的有机组合,为提升整体的漏洞挖掘能力进行探索。漏洞挖掘能力进行探索。漏洞挖掘能力进行探索。


技术研发人员:赵磊 曾颖明 常承伟 王晓东 温泉 王芳鸣
受保护的技术使用者:北京计算机技术及应用研究所
技术研发日:2021.06.18
技术公布日:2021/9/17
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1