基于循环语义学习的HCPS软件漏洞检测方法技术

技术编号:36748527 阅读:11 留言:0更新日期:2023-03-04 10:33
本发明专利技术涉及一种基于循环语义学习的HCPS软件漏洞检测方法,包括步骤:通过动态和静态分析策略对HCPS软件的无源码二进制程序进行预处理;通过AFL算法,根据预处理后的HCPS软件程序,构建程序帧,该程序帧用以集成HCPS软件程序运行时的逻辑关系和执行环境;根据程序帧,构建指令嵌入矩阵,将程序帧中的指令序列转化为向量特征值,并分为训练集和测试集,并将训练集输入构建好的C

【技术实现步骤摘要】
基于循环语义学习的HCPS软件漏洞检测方法


[0001]本专利技术涉及软件漏洞检测技术,尤其是涉及一种基于循环语义学习的HCPS软件漏洞检测方法。

技术介绍

[0002]医疗保健网络物理系统(HCPS)通过通信、计算、存储能力集成物理空间信息,利用网络实现多个软件进程与物理设备之间的交互。在HCPS软件控制的情况下,HCPS的物理层和网络层对物理实体进行远程实时操作。物理层由医疗监控设备、医生、传统医疗设备提供离散患者信息,并将其传输到软件中。随后软件管理和重组这些离散的医疗保健信息,它不仅接收信息,还集成离散医疗信息为网络层的新数据供决策使用。当治疗策略被设计出来后,该软件会按照实施计划执行治疗策略。同时网络层将医生的诊断信息与智能决策提供给学习模型进行整合,给出多种治疗方案,并根据反馈信息不断优化学习模型。
[0003]相比于通用软件,HCPS软件有自己的独特性:首先,终端上的HCPS软件计算和缓存资源有限;其次,HCPS软件的集成开发引入了多种编程语言,具有较高的代码重用率。最后,不同的物理和网络操作环境为开发人员提供了更多的API。
[0004]由于HCPS软件的内存空间容量分配不均、代码重用率高、加密认证简单等特点,攻击者能够快速发现软件的内存漏洞,以较低的代价发起较强的攻击。首先,由于HCPS多方协作,攻击者可以通过发起多个隐蔽的内存空间分配请求,更容易分析弱防御节点及其内存布局,在多个可信域并存的授权实体为中心的环境下,实现对HCPS软件的恶意操作;其次,HCPS软件的集成开发模型可以重用大量的商业代码(或多语言二进制文件),一旦一个HCPS软件被检测到存在内存漏洞,另一个HCPS软件将面临被攻击和难以被检测的风险;第三,考虑到实时需求和资源限制,HCPS软件上部署的加密认证协议相对简单,相关证书也经常被劫持,攻击者可以通过暴力破解恢复明文,从而威胁到最终用户通过HCPS软件与云数据中心进行内容交换的安全。通过深入调查,我们发现在软件漏洞检测方法中,无论是动态、静态分析方法,还是动态与静态相结合的分析方法,大多数方法都要求较高的访问权限和复杂的运行环境。但原来的动态和静态分析方法本质上是利用双方的优势来弥补各自的缺点,这种动态和静态分析的组合方法需要更多的访问权限和更复杂的操作环境。以上特征都不适合HCPS软件的漏洞检测需求。

技术实现思路

[0005]本专利技术的目的就是为了克服上述现有技术存在的缺陷而提供一种基于循环语义学习的HCPS软件漏洞检测方法,该专利技术能够实现HCPS软件漏洞的自动化检测,完整扫描目标软件,有效减少HCPS软件的攻击面。
[0006]本专利技术的目的可以通过以下技术方案来实现:
[0007]本专利技术提供一种基于循环语义学习的HCPS软件漏洞检测方法,包括如下步骤:
[0008]S1:通过动态和静态分析策略对HCPS软件的无源码二进制程序进行预处理;
[0009]S2:通过AFL算法,根据预处理后的HCPS软件程序,构建程序帧,该程序帧用以集成HCPS软件程序运行时的逻辑关系和执行环境;
[0010]S3:根据程序帧,构建指令嵌入矩阵,将程序帧中的指令序列转化为向量特征值,并分为训练集和测试集,并将训练集输入构建好的C

LSTM网络中进行训练,训练得到能够对HCPS软件漏洞类型进行分类的C

LSTM网络,其中,C

LSTM网络为长短时记忆级联网络;
[0011]S4:将HCPS软件的无源码二进制程序经过S1~S3的处理后,输入训练好的C

LSTM网络中,对软件漏洞类型进行检测。
[0012]2.根据权利要求1所述的一种基于循环语义学习的HCPS软件漏洞检测方法,其特征在于,所述S1具体包括如下步骤:
[0013]删除和修改HCPS软件程序中混乱的指令序列,链接HCPS软件程序中所有必需的函数,补充函数信息,并将补充的函数信息映射到函数中,进而完成预处理。
[0014]优选地,所述函数信息包括函数名、函数地址和程序中各函数之间的关系。
[0015]优选地,所述S2具体包括如下步骤:
[0016]S201:通过AFL算法,对HCPS软件代码进行完整扫描,获取能够覆盖程序大部分代码的执行路径的指令序列;
[0017]S202:对S201得到的指令序列进行优化并以函数为基本单位划分指令。
[0018]优选地,所述S202中对指令序列进行优化的过程具体为:
[0019]将指令序列中的特殊元素替换为标签,该标签能够使得神经网络提取程序执行过程中的程序逻辑特征信息,所述特殊元素包括:常数、字符串、函数调用点和符号常量。
[0020]优选地,所述S3具体包括如下步骤:
[0021]S301:将程序帧中的指令视为单词,将函数视为句子,构建指令嵌入矩阵,该指令嵌入矩阵将程序帧中有逻辑意义的指令序列转化为向量特征值,随后将向量特征值分为训练样本和测试样本;
[0022]S302:将训练样本通过数据加载器迭代输入构建好的C

LSTM网络中进行训练,训练得到能够对HCPS软件漏洞类型进行分类的C

LSTM网络。
[0023]优选地,所述指令嵌入矩阵描述训练样本的维度包括:漏洞类型、函数、指令和指令特征空间;
[0024]如下式所示:
[0025][0026]式中,P
m
为被测试程序的一条执行路径,为指令向量嵌入之后得到的矩阵,N代表某一条执行路径,M表示该路径中被分析的函数个数。
[0027]优选地,C

LSTM网络包括两个独立的LSTM网络,每个LSTM网络均只有一个隐层,两个LSTM网络之间通过ReLU激活函数连接;训练样本经过两个LSTM网络处理后,生成特征向量,该特征向量依次经过ReLU激活函数和Reshape操作处理后,通过全连接层输入分类器。
[0028]优选地,描述C

LSTM网络的公式具体如下:
[0029][0030]式中,是第一层LSTM学习完成后的输出层,i为LSTM输出矩阵序号,j为该矩
阵的列;
[0031][0032]式中,为使用ReLU函数的结果,I为ReLU输出的矩阵序号,J为该矩阵的列;
[0033][0034]式中,是第二层LSTM的输出层,h为第二层LSTM输出矩阵序号,l为该矩阵的列。
[0035]优选地,S302中,训练样本每次迭代需要结合训练前模型生成输入训练样本的指令嵌入矩阵W,同时标记相应的训练样本标签;输入训练样本为一个三维矩阵W
I*J*H
,,H为嵌入指令的特征数,根据训练前模型确定;J是一个函数的指令数。
[0036]与现有技术相比,本专利技术具有以如下有益效果:
[0037]1、本专利技术通过构建用以集成HCPS软件程序运行时的逻辑关系和执行环境的程序本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于循环语义学习的HCPS软件漏洞检测方法,其特征在于,包括如下步骤:S1:通过动态和静态分析策略对HCPS软件的无源码二进制程序进行预处理;S2:通过AFL算法,根据预处理后的HCPS软件程序,构建程序帧,该程序帧用以集成HCPS软件程序运行时的逻辑关系和执行环境;S3:根据程序帧,构建指令嵌入矩阵,将程序帧中的指令序列转化为向量特征值,并分为训练集和测试集,并将训练集输入构建好的C

LSTM网络中进行训练,训练得到能够对HCPS软件漏洞类型进行分类的C

LSTM网络,其中,C

LSTM网络为长短时记忆级联网络;S4:将HCPS软件的无源码二进制程序经过S1~S3的处理后,输入训练好的C

LSTM网络中,对软件漏洞类型进行检测。2.根据权利要求1所述的一种基于循环语义学习的HCPS软件漏洞检测方法,其特征在于,所述S1具体包括如下步骤:删除和修改HCPS软件程序中混乱的指令序列,链接HCPS软件程序中所有必需的函数,补充函数信息,并将补充的函数信息映射到函数中,进而完成预处理。3.根据权利要求2所述的一种基于循环语义学习的HCPS软件漏洞检测方法,其特征在于,所述函数信息包括函数名、函数地址和程序中各函数之间的关系。4.根据权利要求1所述的一种基于循环语义学习的HCPS软件漏洞检测方法,其特征在于,所述S2具体包括如下步骤:S201:通过AFL算法,对HCPS软件代码进行完整扫描,获取能够覆盖程序大部分代码的执行路径的指令序列;S202:对S201得到的指令序列进行优化并以函数为基本单位划分指令。5.根据权利要求4所述的一种基于循环语义学习的HCPS软件漏洞检测方法,其特征在于,所述S202中对指令序列进行优化的过程具体为:将指令序列中的特殊元素替换为标签,该标签能够使得神经网络提取程序执行过程中的程序逻辑特征信息,所述特殊元素包括:常数、字符串、函数调用点和符号常量。6.根据权利要求5所述的一种基于循环语义学习的HCPS软件漏洞检测方法,其特征在于,所述S3具体包...

【专利技术属性】
技术研发人员:李高磊伍军易啸宇陈黎兴杨武玄世昌
申请(专利权)人:上海交通大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1