[发明专利]一种基于概率预测的嵌入式可变粒度控制流验证方法及系统有效
申请号: | 201910513155.8 | 申请日: | 2019-06-14 |
公开(公告)号: | CN110276198B | 公开(公告)日: | 2021-04-20 |
发明(设计)人: | 霍冬冬;胡建行;李宇;田琛;王瑜;王雅哲 | 申请(专利权)人: | 中国科学院信息工程研究所 |
主分类号: | G06F21/56 | 分类号: | G06F21/56 |
代理公司: | 北京科迪生专利代理有限责任公司 11251 | 代理人: | 安丽;邓治平 |
地址: | 100093 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 概率 预测 嵌入式 可变 粒度 控制 验证 方法 系统 | ||
1.一种基于概率预测的嵌入式可变粒度控制流验证方法,其特征在于,包括如下步骤:
步骤1、可信路径特征集构建,对目标源程序中的函数进行概率预测,然后对不同概率的函数进行粗细粒度的插桩预处理,再在验证端中利用不同的输入
步骤2、动态路径收集,验证端发送指令请求给证明端,证明端在接受请求
步骤3、动态路径检验,证明端将步骤2得到的签名发送给验证端,验证端在接收到签名后利用已知的密钥
所述步骤1中,对目标源程序中的每个函数进行概率预测,然后对不同概率的函数进行粗细粒度的插桩预处理具体包含如下步骤:
步骤1.1、概率预测,使用有漏洞的函数和正常函数作为数据,函数特征作为特征训练得到一个机器学习模型,该机器学习模型会对目标程序中的所有函数进行漏洞的概率预测,得到目标程序中所有函数的漏洞概率;
步骤1.2、粗细粒度插桩,基于步骤1.1中得到的目标程序中所有函数的漏洞概率,在验证端指定一个概率阈值
步骤1.3、可信路径特征集安全存储,经过处理的目标程序在所可能的输入
所述步骤2中,动态路径收集具体包含如下步骤:
步骤2.1、动态路径收集时,当嵌入式平台接收到验证端发来的请求
步骤2.2、哈希值签名,为了防止哈希值被破坏或者篡改,证明端利用存储在安全域的密钥
所述步骤3,动态路径检验具体包含如下步骤:
步骤3.1、签名解密,验证端从证明端接收签名
步骤3.2、将步骤3.1中得到的哈希值
2.一种实现权利要求1所述基于概率预测的嵌入式可变粒度控制流验证方法的系统,其特征在于,包括:可信路径特征集构建、动态路径收集模块和动态路径检验模块,其中:
可信路径特征集构建模块,对目标源程序中的每个函数进行概率预测,然后对不同概率的函数进行粗细粒度的插桩预处理,再在验证端中利用不同的输入获取目标程序所有可能的动态控制流图,控制流图使用
动态路径收集模块,验证端发送请求
动态路径检验模块,证明端将得到的签名通过一定的协议发送给验证端,验证端接收到签名后用密钥
所述对目标源程序中的每个函数进行概率预测,然后对不同概率的函数进行粗细粒度的插桩预处理具体包含如下步骤:
步骤1.1、概率预测,使用有漏洞的函数和正常函数作为数据,函数特征作为特征训练得到一个机器学习模型,该机器学习模型会对目标程序中的所有函数进行漏洞的概率预测,得到目标程序中所有函数的漏洞概率;
步骤1.2、粗细粒度插桩,基于步骤1.1中得到的目标程序中所有函数的漏洞概率,在验证端指定一个概率阈值
步骤1.3、可信路径特征集安全存储,经过处理的目标程序在所可能的输入
动态路径收集具体包含如下步骤:
步骤1.4、动态路径收集时,当嵌入式平台接收到验证端发来的请求
步骤1.5、哈希值签名,为了防止哈希值被破坏或者篡改,证明端利用存储在安全域的密钥
动态路径检验具体包含如下步骤:
步骤1.6、签名解密,验证端从证明端接收签名
步骤1.7、将步骤1.6中得到的哈希值
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院信息工程研究所,未经中国科学院信息工程研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910513155.8/1.html,转载请声明来源钻瓜专利网。