[发明专利]基于深度强化学习和程序路径插桩的漏洞检测方法有效
申请号: | 201910297695.7 | 申请日: | 2019-04-15 |
公开(公告)号: | CN110008710B | 公开(公告)日: | 2022-11-18 |
发明(设计)人: | 易平;江智昊;肖天;毛伟俊;黄浩铭;杨涛 | 申请(专利权)人: | 上海交通大学;公安部第三研究所 |
主分类号: | G06F21/57 | 分类号: | G06F21/57;G06N3/04;G06N3/08;H04L9/40 |
代理公司: | 上海交达专利事务所 31201 | 代理人: | 王毓理;王锡麟 |
地址: | 200240 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 一种结合深度强化学习和程序路径插桩技术的漏洞检测方法,首先通过插桩的方式从待测程序的控制流图中得到输入所对应的路径,根据路径及控制流图中的目标节点计算得到奖励值,然后将奖励值用于训练深度强化学习的神经网络,从而用于选择变异动作,根据该变异动作对待测程序的输入进行变异后得到更新后的输入及其路径并计算更新后的奖励值并再次训练神经网络和进行输入变异处理,循环至待测程序崩溃,即得到相应的输入漏洞。本发明准确率更高,并可以更高效地获得漏洞所在路径对应输入,相较于传统的模糊测试,检测速度更快,兼具一定的代码覆盖量。 | ||
搜索关键词: | 基于 深度 强化 学习 程序 路径 漏洞 检测 方法 | ||
【主权项】:
1.一种基于深度强化学习和程序路径插桩的漏洞检测方法,其特征在于,首先通过插桩的方式从待测程序的控制流图中得到输入所对应的路径,根据路径及控制流图中的目标节点计算得到奖励值,然后将奖励值用于训练深度强化学习的神经网络,从而用于选择变异动作,根据该变异动作对待测程序的输入进行变异后得到更新后的输入及其路径并计算更新后的奖励值并再次训练神经网络和进行输入变异处理,循环至待测程序崩溃,即得到相应的输入漏洞;所述的插桩的方式是指:在保证逻辑完整性的基础上在待测程序中插入若干探针,通过探针采集运行过程中产生的特征数据,从而获得待测程序的控制流信息和数据流信息并进一步得到逻辑覆盖动态信息,从而实现测试目的的方法;所述的目标节点是指:控制流图中已经确定或疑似的漏洞代码和代码块和/或敏感函数所在的结点,该目标节点通过预先标记方式得到,例如该节点所对应的代码块包含敏感函数,则将该节点标记为目标节点;所述的奖励值是指:根据当前输入对应的路径与目标节点,根据
计算出的路径到目标节点的距离,奖励值与距离反相关,其中:ds(s,Tb)为种子文件的执行路径与目标节点的距离;s为种子文件seed;Tb为目标节点;ξb(s)为种子文件s作为输入时,待测程序的完整执行路径;m为执行路径中的某一节点,db(m,Tb)为节点m与目标节点的距离。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海交通大学;公安部第三研究所,未经上海交通大学;公安部第三研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201910297695.7/,转载请声明来源钻瓜专利网。