一种基于神经网络的程序控制流混淆方法及系统技术方案

技术编号:25184599 阅读:50 留言:0更新日期:2020-08-07 21:12
本发明专利技术属于程序控制流混淆技术领域,公开了一种基于神经网络的程序控制流混淆方法及系统,将原始程序中分支语句的判断条件进行隐藏,并将所述分支语句的判断条件转换为第一自定义函数,获得混淆后程序;再根据标准化判断条件训练对应的神经网络二分类模型,并利用所述第一自定义函数调用神经网络推理计算替代原始程序中的条件。本发明专利技术避免了应用程序逻辑被恶意攻击者获取和篡改;构造和插入伪分支语句,将程序的控制流图复杂化,增大了恶意攻击者阅读和理解程序逻辑的难度。本发明专利技术结合云计算场景,通过转换每个分支语句的条件,并利用神经网络推理替代分支语句的判断条件,从而保证高控制流机密性。

【技术实现步骤摘要】
一种基于神经网络的程序控制流混淆方法及系统
本专利技术属于程序控制流混淆
,尤其涉及一种基于神经网络的程序控制流混淆方法及系统。
技术介绍
目前,随着互联网的飞速发展和大数据时代的到来,云端计算服务越来越流行,在云计算环境能够给用户带来更强的计算能力和更好的扩展性的同时,也导致了用户重要算法泄露的安全问题。因此,在云计算场景下,当远程环境不可信时,保护程序逻辑的机密性成为重要的安全要求。程序代码的安全保护是计算机安全领域的一个重点研究内容,控制流混淆是保护程序逻辑的直接方法。程序代码的控制流决定要执行的指令序列,直接反映了程序的逻辑,而控制流混淆将程序的控制流转换为无法理解的形式,可以有效保护程序逻辑的机密性。然而,现有的控制流混淆工作存在普适性不足的问题,严格符合安全定义的混淆方法往往会产生巨大的时间消耗,无法满足云计算环境下程序保护的需要。现有技术应用中没有利用神经网络实现控制流混淆的方法,人工神经网络(ANN)模仿生物神经网络的行为特征,由大量的神经元连接组成,各个神经元之间用可变权值的有向弧连接,通过调节权值使处理结果逼近设定的值,人工神经网络具有极高的容错性以及极强的非线性函数逼近能力,能够很好地近似分支语句的判断条件。通过上述分析,现有技术存在的问题及缺陷为:(1)借助可信硬件保护的方法是过于依赖可信硬件,并且云端服务器与可信环境的交互会产生巨大的时间开销。(2)现有的代码混淆方法适用性不高,不能很好的兼顾安全性、耐受性以及时间开销三方面。解决以上问题及缺陷的难度为:针对公有云下用户程序安全性问题,基于神经网络自身的不可解释性去设计程序控制流混淆方法,其实是极具挑战性的。(1)应用软件属于数字资产,一旦发布之后,恶意攻击者就可以通过逆向工程对软件进行破解和重组,对核心算法进或关键功能进行剽窃牟利,而控制流混淆是保护用户程序逻辑的最直接方法。(2)用户将程序上传到云端执行,云端的环境是不可信的,用户程序逻辑和算法面临被窃取的风险。在此场景下,控制流混淆方法要同时兼顾安全性以及时间开销。解决以上问题及缺陷的意义为:本专利技术结合程序转换技术和神经网络,通过隐藏程序中分支语句中的判断条件,并插入伪分支语句,保证高控制流机密性。本专利技术的主要思想是利用神经网络二分类模型隐藏分支语句中判断条件的逻辑,所以需要保证神经网络在输入空间的二分类正确率为100%。研究基于神经网络的程序控制流混淆方法及系统具有深远的实践意义。
技术实现思路
为了解决现有技术存在的问题,本专利技术提供了一种基于神经网络的程序控制流混淆方法及系统。具体涉及一种面向云计算场景下的的控制流混淆方法及系统,本专利技术能够隐藏每个分支语句条件的逻辑信息,有效地保护云计算场景中远程执行的应用程序逻辑,避免了程序逻辑被恶意攻击者获取和篡改。本专利技术是这样实现的,一种基于神经网络的程序控制流混淆方法包括:将原始程序中分支语句的判断条件进行隐藏,并将所述分支语句的判断条件转换为第一自定义函数,获得混淆后程序;再根据标准化判断条件训练对应的神经网络二分类模型,并利用所述第一自定义函数调用神经网络推理计算替代原始程序中的条件。进一步,所述第一自定义函数的一参数表示标准化判断条件的左操作数,另一参数表示当前转换的分支语句在源程序的唯一标识,对应神经网络模型权重的唯一标识;所述标准化判断条件表示根据不等式原则,将右操作数中所有变量移到左操作数,左右操作数分别加一个随机常数后的标准化不等式;所述第一自定义函数表示如下:NNQuery(L(s),i(s));其中,L(s)表示当前转换的分支语句的标准化判断条件的左操作数,i(s)表示当前转换的分支语句在源程序的唯一标识,对应神经网络模型权值的唯一标识。进一步,所述根据标准化判断条件训练神经网络二分类模型的方法包括:标准化判断条件的左操作数作为神经网络的输入样本,根据左操作数在标准化判断条件中的评估结果,标记输入样本的类别,制作神经网络的训练集;使训练的神经网络获取神经网络模型权值,模拟条件分支语句的逻辑;所述神经网络模型权值W以多元组的形式表示如下:W={i(s),w(s)}其中,i(s)表示转换的分支语句在原程序中的唯一标识,w(s)表示对应分支语句的神经网络模型权值;训练伪分支神经网络二分类模型的方法包括:输入空间中的最大值为一类,剩余输入样本全为同一类别,制作神经网络的训练集;使训练的神经网络模型始终流向语句s。进一步,所述将原始程序中分支语句的判断条件进行隐藏前,需进行:在原始语句s之前构造并插入伪分支语句,所述伪分支语句流向s,使程序原本的控制流程不被篡改;并将伪分支语句的判断条件转换为第二自定义函数,获得混淆后程序和伪分支神经网络模型;所述第二自定义函数表示如下:NNQuery(L(s),i(s))其中,L(s)表示当前语句s可达变量的随机线性表达式,i(s)表示当前转换的分支语句在源程序的唯一标识,对应神经网络模型权重的唯一标识;所述第二自定义函数的一参数表示当前语句s可达变量的随机线性表达式,另一参数表示当前转换的分支语句在源程序的唯一标识,对应神经网络模型权重的唯一标识。本专利技术的另一目的在于提供一种基于神经网络的程序控制流混淆系统,包括:伪分支语句插入模块,在原始语句s之前构造并插入伪分支语句,这些伪分支语句最终将流向s,使程序原本的控制流程不被篡改;变量隐藏模块,将真伪分支语句的判断条件进行转换替代成控制流查询函数,并根据判断条件训练神经网络,获得转换程序和神经网络模型。本专利技术的另一目的在于提供一种面向云计算场景下的控制流混淆方法,包含所述的基于神经网络程序控制流混淆方法,还包括:将所述转换程序和神经网络模型发送至云端远程计算单元,所述转换程序和神经网络模型存储在所述远程计算单元的不可信环境中;基于所述神经网络模型,在所述远程计算单元中执行所述转换程序。进一步,所述远程计算单元执行到分支语句时,转换后的分支语句会通过自定义函数调用神经网络模型,神经网络模型根据输入值推理计算出和原始程序相同的执行路径。本专利技术的另一目的在于提供一种面向云计算场景下的程序控制流混淆系统包括:伪分支语句插入模块,在原始语句s之前构造并插入伪分支语句,这些伪分支语句最终将流向s,使程序原本的控制流程不被篡改;变量隐藏模块,将真伪分支语句的判断条件进行转换替代成控制流查询函数,并根据判断条件训练神经网络,获得转换程序和神经网络模型;程序发送模块,将所述转换程序和神经网络模型发送至远程计算单元所述转换程序和神经网络模型存储在所述远程计算单元的不可信环境中;程序执行模块,基于所述神经网络模型,在所述远程计算单元中执行所述转换程序。本专利技术的另一目的在于提供一种接收用户输入程序存储介质,所存储的计算机程序使电子设备执行所述基于神经网络的程序控制流混淆方法,包括下列步本文档来自技高网
...

【技术保护点】
1.一种基于神经网络的程序控制流混淆方法,其特征在于,所述基于神经网络的程序控制流混淆方法包括:/n将原始程序中分支语句的判断条件进行隐藏,并将所述分支语句的判断条件转换为第一自定义函数,获得混淆后程序;再根据标准化判断条件训练对应的神经网络二分类模型,并利用所述第一自定义函数调用神经网络推理计算替代原始程序中的条件。/n

【技术特征摘要】
1.一种基于神经网络的程序控制流混淆方法,其特征在于,所述基于神经网络的程序控制流混淆方法包括:
将原始程序中分支语句的判断条件进行隐藏,并将所述分支语句的判断条件转换为第一自定义函数,获得混淆后程序;再根据标准化判断条件训练对应的神经网络二分类模型,并利用所述第一自定义函数调用神经网络推理计算替代原始程序中的条件。


2.如权利要求1所述的基于神经网络的程序控制流混淆方法,其特征在于,所述第一自定义函数的一参数表示标准化判断条件的左操作数,另一参数表示当前转换的分支语句在源程序的唯一标识,对应神经网络模型权重的唯一标识;所述标准化判断条件表示根据不等式原则,将右操作数中所有变量移到左操作数,左右操作数分别加一个随机常数后的标准化不等式;
所述第一自定义函数表示如下:
NNQuery(L(s),i(s));
其中,L(s)表示当前转换的分支语句的标准化判断条件的左操作数,i(s)表示当前转换的分支语句在源程序的唯一标识,对应神经网络模型权值的唯一标识。


3.如权利要求1所述的基于神经网络的程序控制流混淆方法,其特征在于,所述根据标准化判断条件训练神经网络二分类模型的方法包括:
标准化判断条件的左操作数作为神经网络的输入样本,根据左操作数在标准化判断条件中的评估结果,标记输入样本的类别,制作神经网络的训练集;
使训练的神经网络获取神经网络模型权值,模拟条件分支语句的逻辑;
所述神经网络模型权值W以多元组的形式表示如下:
W={i(s),w(s)}
其中,i(s)表示转换的分支语句在原程序中的唯一标识,w(s)表示对应分支语句的神经网络模型权值;
训练伪分支神经网络二分类模型的方法包括:
输入空间中的最大值为一类,剩余输入样本全为同一类别,制作神经网络的训练集;使训练的神经网络模型始终流向语句s。


4.如权利要求1所述的基于神经网络的程序控制流混淆方法,其特征在于,所述将原始程序中分支语句的判断条件进行隐藏前,需进行:在原始语句s之前构造并插入伪分支语句,所述伪分支语句流向s,使程序原本的控制流程不被篡改;并将伪分支语句的判断条件转换为第二自定义函数,获得混淆后程序和伪分支神经网络模型;
所述第二自定义函数表示如下:
NNQuery(L(s),i(s))
其中,L(s)表示当前语句s可达变量的随机线性表达式,i(s)表示当前转换的分支语句在源程序的唯一标识,对应神经网络模型权重的唯一标识;
所述第二自定义函数的一参数表示当前语句s可达变量的随机线性表达式,另一参数表示当前转换的分支语句在源程序的唯一标识,对应神经网络模型权重的唯一标识。


5...

【专利技术属性】
技术研发人员:王永智王博沈玉龙何昶辉赵迪邹宇苟旭春
申请(专利权)人:西安电子科技大学
类型:发明
国别省市:陕西;61

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

1