CN111506313B - 一种基于神经网络的程序控制流混淆方法及系统 - Google Patents
一种基于神经网络的程序控制流混淆方法及系统 Download PDFInfo
- Publication number
- CN111506313B CN111506313B CN202010145056.1A CN202010145056A CN111506313B CN 111506313 B CN111506313 B CN 111506313B CN 202010145056 A CN202010145056 A CN 202010145056A CN 111506313 B CN111506313 B CN 111506313B
- Authority
- CN
- China
- Prior art keywords
- neural network
- program
- branch
- control flow
- statement
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 77
- 238000000034 method Methods 0.000 title claims abstract description 47
- 238000012549 training Methods 0.000 claims abstract description 23
- 238000004364 calculation method Methods 0.000 claims abstract description 3
- 238000003062 neural network model Methods 0.000 claims description 76
- 238000006243 chemical reaction Methods 0.000 claims description 9
- 238000013145 classification model Methods 0.000 claims description 5
- 238000004519 manufacturing process Methods 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims description 3
- 238000011156 evaluation Methods 0.000 claims description 3
- 238000010276 construction Methods 0.000 abstract description 6
- 238000003780 insertion Methods 0.000 abstract description 5
- 230000037431 insertion Effects 0.000 abstract description 5
- 230000006870 function Effects 0.000 description 35
- 238000010586 diagram Methods 0.000 description 8
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000007547 defect Effects 0.000 description 3
- 210000002569 neuron Anatomy 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000013529 biological neural network Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008092 positive effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/43—Checking; Contextual analysis
- G06F8/433—Dependency analysis; Data or control flow analysis
- G06F8/434—Pointers; Aliasing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/14—Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Multimedia (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Technology Law (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Stored Programmes (AREA)
Abstract
本发明属于程序控制流混淆技术领域,公开了一种基于神经网络的程序控制流混淆方法及系统,将原始程序中分支语句的判断条件进行隐藏,并将所述分支语句的判断条件转换为第一自定义函数,获得混淆后程序;再根据标准化判断条件训练对应的神经网络二分类模型,并利用所述第一自定义函数调用神经网络推理计算替代原始程序中的条件。本发明避免了应用程序逻辑被恶意攻击者获取和篡改;构造和插入伪分支语句,将程序的控制流图复杂化,增大了恶意攻击者阅读和理解程序逻辑的难度。本发明结合云计算场景,通过转换每个分支语句的条件,并利用神经网络推理替代分支语句的判断条件,从而保证高控制流机密性。
Description
技术领域
本发明属于程序控制流混淆技术领域,尤其涉及一种基于神经网络的程序控制流混淆方法及系统。
背景技术
目前,随着互联网的飞速发展和大数据时代的到来,云端计算服务越来越流行,在云计算环境能够给用户带来更强的计算能力和更好的扩展性的同时,也导致了用户重要算法泄露的安全问题。因此,在云计算场景下,当远程环境不可信时,保护程序逻辑的机密性成为重要的安全要求。
程序代码的安全保护是计算机安全领域的一个重点研究内容,控制流混淆是保护程序逻辑的直接方法。程序代码的控制流决定要执行的指令序列,直接反映了程序的逻辑,而控制流混淆将程序的控制流转换为无法理解的形式,可以有效保护程序逻辑的机密性。然而,现有的控制流混淆工作存在普适性不足的问题,严格符合安全定义的混淆方法往往会产生巨大的时间消耗,无法满足云计算环境下程序保护的需要。
现有技术应用中没有利用神经网络实现控制流混淆的方法,人工神经网络 (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,使程序原本的控制流程不被篡改;
变量隐藏模块,将真伪分支语句的判断条件进行转换替代成控制流查询函数,并根据判断条件训练神经网络,获得转换程序和神经网络模型;
程序发送模块,将所述转换程序和神经网络模型发送至远程计算单元所述转换程序和神经网络模型存储在所述远程计算单元的不可信环境中;
程序执行模块,基于所述神经网络模型,在所述远程计算单元中执行所述转换程序。
本发明的另一目的在于提供一种接收用户输入程序存储介质,所存储的计算机程序使电子设备执行所述基于神经网络的程序控制流混淆方法,包括下列步骤:
步骤一,伪分支语句构造与插入,在原始语句s之前构造并插入伪分支语句,这些伪分支语句最终将流向s,以保证程序原本的控制流程不被篡改;
步骤二,分支语句以及伪分支语句隐藏,将原始程序中分支语句以及插入的伪分支语句进行隐藏,将其转换为控制流查询函数,并根据分支语句逻辑训练神经网络,获得转换程序和神经网络模型。
本发明的另一目的在于提供一种存储在计算机可读介质上的计算机程序产品,包括计算机可读程序,供于电子装置上执行时,提供用户输入接口以实施所述基于神经网络的程序控制流混淆方法。本发明提供一种基于神经网络的工具集(输入接口)以实施所述基于神经网络的程序控制流混淆方法。
结合上述的所有技术方案,本发明所具备的优点及积极效果为:
精准抽取程序敏感的分支信息,根据分支信息训练神经网络,用神经网络调用函数替代分支语句的判断条件,神经网络权值的不可解释性有效地隐藏了程序逻辑;通过在程序中插入伪分支语句进一步混淆控制流,将程序的控制流图复杂化,增大了恶意攻击者阅读和理解程序逻辑的难度;将所述转换程序与神经网络模型权重发送至不可信的远程计算单元,基于所述神经网络模型,在所述远程计算单元运行所述转换程序。本发明利用了神经网络权值的不可解释性,将程序的重要逻辑信息隐藏在神经网络,插入伪分支语句,保证高控制流机密性。
相比于现有技术,本发明的优点进一步包括:
本发明利用神经网络权值的不可解释性有效地隐藏了程序逻辑,避免了应用程序逻辑被恶意攻击者获取和篡改;构造和插入伪分支语句,将程序的控制流图复杂化,增大了恶意攻击者阅读和理解程序逻辑的难度。在保证高控制流机密性的同时,具有较小的性能消耗
本发明结合云计算场景,通过转换每个分支语句的条件,并利用神经网络推理替代分支语句的判断条件,从而保证高控制流机密性。
结合实验或试验数据和现有技术对比得到的效果和优点:
本发明的实验平台选择如图10所示的云计算平台,申请了具有三个节点的计算集群,计算集群中的计算机安装了Ubuntu14.04系统,8g内存和500g硬盘。针对CPU密集型应用程序,实验结果如图11所示,基于神经网络的程序混淆方法的单次调用函数平均耗时为5.01us,是使用λ表达式替代分支语句的平均耗时的13.11%,是使用可信环境保护分支语句的平均耗时的7.14%。本发明兼顾安全性的同时,具有较小的时间开销,可以高效的保护用户程序逻辑机密性。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图做简单的介绍,显而易见地,下面所描述的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的基于神经网络的程序控制流混淆方法程序混淆方法流程图。
图2是本发明实施例的分支语句的判断条件训练神经网络图。
图3是本发明实施例的分支语句判断条件的程序变换图。
图4是本发明实施例的伪分支语句的判断条件训练神经网络图。
图5是本发明实施例的伪分支语句构造与插入的程序变换图。
图6是本发明实施例的基于神经网络的程序控制流混淆系统结构图。
图中:1、伪分支语句构造与插入模块;2、分支语句逻辑隐藏模块。
图7是本发明实施例的面向云计算场景下的控制流混淆方法流程图。
图8是本发明实施例的面向云计算场景下的控制流混淆方法体系结构图。
图9是本发明实施例的面向云计算场景下的控制流混淆系统结构图。
图中:3、程序发送模块;4、程序执行模块。
图10是本发明实施例的云计算平台。
图11是本发明实施例与现阶段混淆方法性能消耗对比。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
现有技术中没有利用神经网络权值的不可解释性有效地隐藏程序逻辑,造成应用程序逻辑被恶意攻击者获取和篡改;而且没有利用构造和插入伪分支语句,将程序的控制流图复杂化,造成恶意攻击者很容易阅读和理解程序逻辑,从而不能提高控制流机密性。
针对现有技术存在的问题,本发明提供了一种基于神经网络的程序控制流混淆方法及系统,下面结合附图对本发明作详细的描述。
如图1所示,本发明实施例提供的基于神经网络的程序控制流混淆方法可以在用户主机上实现,所述的原程序可以是基于Soot框架的三地址码的程序;具体包括:
S101,伪分支语句构造与插入,在原始语句s之前构造并插入伪分支语句,这些伪分支语句最终将流向s,以保证程序原本的控制流程不被篡改。
S102,分支语句以及伪分支语句隐藏,将原始程序中分支语句以及插入的伪分支语句进行隐藏,将其转换为控制流查询函数,并根据分支语句逻辑训练神经网络,获得转换程序和神经网络模型。
步骤S102中,将原始程序中分支语句判断条件进行隐藏,将分支语句的判断条件转换为第一自定义函数;所述第一自定义函数的一参数表示标准化判断条件的左操作数,另一参数表示当前转换的分支语句在源程序的唯一标识,对应神经网络模型权重的唯一标识。
具体的,所述第一自定义函数可以表示如下:
NNQuery(L(s),i(s))。
其中,L(s)表示当前转换的分支语句的标准化判断条件的左操作数,i(s)表示当前转换的分支语句在源程序的唯一标识,对应神经网络模型权值的唯一标识。标准化判断条件表示根据不等式原则,将右操作数中所有变量移到左操作数,左右操作数分别加一个随机常数后的标准化不等式。需要说明的是所述函数名NNQuery只代表一个实例,具体实现时可以是其他函数名。
如图2所示,标准化判断条件的左操作数作为神经网络的输入样本,根据左操作数在标准化判断条件中的评估结果,标记输入样本的类别,制作神经网络的训练集;训练神经网络达到100%的正确率,获取神经网络模型权值,使其能够模拟条件分支语句的逻辑。
所述的神经网络模型权值W可以以多元组的形式表示如下:
W={i(s),w(s)}
其中,i(s)表示转换的分支语句在原程序中的唯一标识,w(s)表示对应分支语句的神经网络模型权值。本实施例中,转换的程序语句在原程序中的唯一标识用转换的程序语句在原程序中的行号表示。
如图3所示,如下以原程序中包括分支语句if(NNQuery(x-y+3,B1))goto L2 进行具体说明。通过标准化判断条件,原始判断条件由x>y转换为x-y+3>3,根据标准化判断条件构造训练集训练神经网络模型,将比较操作符和右操作数隐藏在不可解释的神经网络模型权值中,此第一自定义函数返回值为x-y+3>3。
构造与插入伪分支语句,在原始语句s之前构造并插入伪分支语句,这些伪分支语句最终将流向s,以保证程序原本的控制流程不被篡改;将伪分支语句的判断条件转换为第二自定义函数,获得混淆后程序和伪分支神经网络模型;所述第二自定义函数的一参数表示当前语句s可达变量的随机线性表达式,另一参数表示当前转换的分支语句在源程序的唯一标识,对应神经网络模型权重的唯一标识。
具体的,所述第二自定义函数可以表示如下:
NNQuery(L(s),i(s))
其中,L(s)表示当前语句s可达变量的随机线性表达式,i(s)表示当前转换的分支语句在源程序的唯一标识,对应神经网络模型权重的唯一标识。需要说明的是所述函数名NNQuery只代表一个实例,具体实现时可以是其他函数名。
如图4所示,令输入空间中的最大值为一类,剩余输入样本全为同一类别,制作神经网络的训练集;训练神经网络模型达到100%正确率,获取神经网络模型权值,使其能够始终流向语句s。
所述的神经网络模型权值W可以以多元组的形式表示如下:
W={i(s),w(s)}
其中,i(s)表示转换的分支语句在原程序中的唯一标识,w(s)表示对应分支语句的神经网络模型权值。本实施例中,转换的程序语句在原程序中的唯一标识用转换的程序语句在原程序中的行号表示。
如图5所示,如下以原程序中包括分支语句if(NNQuery(3*x+a-b+7,B2))goto L1进行具体说明。可达变量的随机线性表达式为3*x+a-b+7,令max为输入空间最大值,此伪分支语句最终应流向L2,所以构造伪分支语句判断条件为3*x+a-b+7>max,根据伪分支语句判断条件构造训练集训练神经网络模型,为此第二自定义函数返回值为false。
如图6所示,本发明提供一种基于神经网络的程序控制流混淆系统,包括:
伪分支语句构造与插入模块1,在原始语句s之前构造并插入伪分支语句,这些伪分支语句最终将流向s,以保证程序原本的控制流程不被篡改。
分支语句逻辑隐藏模块2,将真伪分支语句的判断条件进行转换替代成控制流查询函数,根据分支语句逻辑训练神经网络,获得转换程序和神经网络模型。
如图7所示,本发明实施例提供一种面向云计算场景下的控制流混淆方法,包括:
S201,伪分支语句构造与插入,在原始语句s之前构造并插入伪分支语句,这些伪分支语句最终将流向s,以保证程序原本的控制流程不被篡改。
S202,分支语句逻辑隐藏,将真伪分支语句的判断条件进行转换替代成控制流查询函数,根据分支语句逻辑训练神经网络,获得转换程序和神经网络模型。
S203,将所述转换程序和神经网络模型发送至云端远程计算单元,所述转换程序和神经网络模型存储在所述远程计算单元的不可信环境中。
S204,远程计算单元在执行所述转换程序时,转换后的分支语句会通过自定义函数调用神经网络模型,神经网络模型根据输入值推理计算出和原始程序相同的执行路径。
上述的步骤S 201与S 202可以在用户主机上实现,所述的源程序可以是基于Soot框架的三地址码的程序。
所述的神经网络模型权值W可以以多元组的形式表示如下:
W={i(s),w(s)}。
其中,i(s)表示转换的分支语句在原程序中的唯一标识,w(s)表示对应分支语句的神经网络模型权值。本实施例中,转换的程序语句在原程序中的唯一标识用转换的程序语句在原程序中的行号表示。
如图8所示,对于用户想要在公有云上执行的原始程序P,伪分支语句构造与插入模块在原始语句s之前构造并插入伪分支语句,这些伪分支语句最终将流向s,以保证程序原本的控制流程不被篡改.分支语句逻辑隐藏模块将真伪分支语句的判断条件进行转换替代成控制流查询函数,根据分支语句逻辑训练神经网络,获得转换程序P'和神经网络模型W。P'与P的不同之处在于每个分支语句的条件逻辑被隐藏到神经网络模型W中。转换后,P'与W将被上传到不可信的公有云环境。远程计算单元在执行P'期间,转换后的分支语句会通过自定义函数调用神经网络模型W,神经网络模型W根据输入值推理计算出和原始程序相同的执行路径。
如图9所示,本发明实施例提供一种面向云计算场景下的程序控制流混淆系统,包括:
伪分支语句构造与插入模块1,在原始语句s之前构造并插入伪分支语句,这些伪分支语句最终将流向s,以保证程序原本的控制流程不被篡改。
分支语句逻辑隐藏模块2,将真伪分支语句的判断条件进行转换替代成控制流查询函数,根据分支语句逻辑训练神经网络,获得转换程序和神经网络模型。
程序发送模块3,将所述转换程序和神经网络模型发送至远程计算单元,所述转换程序和神经网络模型存储在所述远程计算单元的不可信环境中;
程序执行模块4,远程计算单元在执行所述转换程序时,转换后的分支语句会通过自定义函数调用神经网络模型,神经网络模型根据输入值推理计算出和原始程序相同的执行路径。
本发明的实验平台选择如图10所示的云计算平台,申请了具有三个节点的计算集群,计算集群中的计算机安装了Ubuntu14.04系统,8g内存和500g硬盘。针对CPU密集型应用程序,实验结果如图11所示,基于神经网络的程序混淆方法的单次调用函数平均耗时为5.01us,是使用λ表达式替代分支语句的平均耗时的13.11%,是使用可信环境保护分支语句的平均耗时的7.14%。本发明兼顾安全性的同时,具有较小的时间开销,可以高效的保护用户程序逻辑机密性。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的硬件平台的方式来实现,当然也可以全部通过硬件来实施。基于这样的理解,本发明的技术方案对背景技术做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如 ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,都应涵盖在本发明的保护范围之内。
Claims (7)
1.一种基于神经网络的程序控制流混淆方法,其特征在于,所述基于神经网络的程序控制流混淆方法包括:
将原始程序中分支语句的判断条件进行隐藏,并将所述分支语句的判断条件转换为第一自定义函数,获得混淆后程序;再根据标准化判断条件训练对应的神经网络二分类模型,并利用所述第一自定义函数调用神经网络推理计算替代原始程序中的条件;
所述第一自定义函数的一参数表示标准化判断条件的左操作数,另一参数表示当前转换的分支语句在源程序的唯一标识,对应神经网络模型权重的唯一标识;
所述标准化判断条件表示根据不等式原则,将右操作数中所有变量移到左操作数,左右操作数分别加一个随机常数后的标准化不等式;
所述第一自定义函数表示如下:
NNQuery(L(s),i(s));
其中,L(s)表示当前转换的分支语句的标准化判断条件的左操作数,i(s)表示当前转换的分支语句在源程序的唯一标识,对应神经网络模型权值的唯一标识;
所述根据标准化判断条件训练神经网络二分类模型的方法包括:
标准化判断条件的左操作数作为神经网络的输入样本,根据左操作数在标准化判断条件中的评估结果,标记输入样本的类别,制作神经网络的训练集;
使训练的神经网络获取神经网络模型权值,模拟条件分支语句的逻辑;
所述神经网络模型权值W以多元组的形式表示如下:
W={i(s),w(s) }
其中,i(s)表示转换的分支语句在原程序中的唯一标识,w(s)表示对应分支语句的神经网络模型权值;
训练伪分支神经网络二分类模型的方法包括:
输入空间中的最大值为一类,剩余输入样本全为同一类别,制作神经网络的训练集;使训练的神经网络模型始终流向语句s。
2.如权利要求1所述的基于神经网络的程序控制流混淆方法,其特征在于,所述将原始程序中分支语句的判断条件进行隐藏前,需进行:在原始语句s之前构造并插入伪分支语句,所述伪分支语句流向s,使程序原本的控制流程不被篡改;并将伪分支语句的判断条件转换为第二自定义函数,获得混淆后程序和伪分支神经网络模型;
所述第二自定义函数表示如下:
NNQuery(L(s),i(s))
其中,L(s)表示当前语句s可达变量的随机线性表达式,i(s)表示当前转换的分支语句在源程序的唯一标识,对应神经网络模型权重的唯一标识;
所述第二自定义函数的一参数表示当前语句s可达变量的随机线性表达式,另一参数表示当前转换的分支语句在源程序的唯一标识,对应神经网络模型权重的唯一标识。
3.一种实施权利要求1~2任意一项所述基于神经网络的程序控制流混淆方法的基于神经网络的程序控制流混淆系统,其特征在于,所述基于神经网络的程序控制流混淆系统,包括:
伪分支语句插入模块,在原始语句s之前构造并插入伪分支语句,这些伪分支语句最终将流向s,使程序原本的控制流程不被篡改;
变量隐藏模块,将真伪分支语句的判断条件进行转换替代成控制流查询函数,并根据判断条件训练神经网络,获得转换程序和神经网络模型。
4.一种面向云计算场景下的控制流混淆方法,其特征在于,所述面向云计算场景下的控制流混淆方法包含权利要求1~2任意一项所述的基于神经网络的程序控制流混淆方法,还包括:
将所述转换程序和神经网络模型发送至云端远程计算单元,所述转换程序和神经网络模型存储在所述远程计算单元的不可信环境中;
基于所述神经网络模型,在所述远程计算单元中执行所述转换程序。
5.如权利要求4所述的面向云计算场景下的控制流混淆方法,其特征在于,所述远程计算单元执行到分支语句时,转换后的分支语句会通过自定义函数调用神经网络模型,神经网络模型根据输入值推理计算出和原始程序相同的执行路径。
6.一种实施权利要求4~5任意一项所述面向云计算场景下的控制流混淆方法的面向云计算场景下的程序控制流混淆系统,其特征在于,所述面向云计算场景下的程序控制流混淆系统包括:
伪分支语句插入模块,在原始语句s之前构造并插入伪分支语句,这些伪分支语句最终将流向s,使程序原本的控制流程不被篡改;
变量隐藏模块,将真伪分支语句的判断条件进行转换替代成控制流查询函数,并根据判断条件训练神经网络,获得转换程序和神经网络模型;
程序发送模块,将所述转换程序和神经网络模型发送至远程计算单元所述转换程序和神经网络模型存储在所述远程计算单元的不可信环境中;
程序执行模块,基于所述神经网络模型,在所述远程计算单元中执行所述转换程序。
7.一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,所存储的计算机程序使电子设备执行权利要求1~2任意一项所述基于神经网络的程序控制流混淆方法,包括下列步骤:
步骤一,伪分支语句构造与插入,在原始语句s之前构造并插入伪分支语句,这些伪分支语句最终将流向s,以保证程序原本的控制流程不被篡改;
步骤二,分支语句以及伪分支语句隐藏,将原始程序中分支语句以及插入的伪分支语句进行隐藏,将其转换为控制流查询函数,并根据分支语句逻辑训练神经网络,获得转换程序和神经网络模型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010145056.1A CN111506313B (zh) | 2020-03-04 | 2020-03-04 | 一种基于神经网络的程序控制流混淆方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010145056.1A CN111506313B (zh) | 2020-03-04 | 2020-03-04 | 一种基于神经网络的程序控制流混淆方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111506313A CN111506313A (zh) | 2020-08-07 |
CN111506313B true CN111506313B (zh) | 2024-01-23 |
Family
ID=71875733
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010145056.1A Active CN111506313B (zh) | 2020-03-04 | 2020-03-04 | 一种基于神经网络的程序控制流混淆方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111506313B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112527307B (zh) * | 2020-11-18 | 2023-06-20 | 西安电子科技大学 | 程序控制流隐藏方法、系统及应用 |
CN112599211B (zh) * | 2020-12-25 | 2023-03-21 | 中电云脑(天津)科技有限公司 | 一种医疗实体关系抽取方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101359352A (zh) * | 2008-09-25 | 2009-02-04 | 中国人民解放军信息工程大学 | 分层协同的混淆后api调用行为发现及其恶意性判定方法 |
WO2018113642A1 (zh) * | 2016-12-20 | 2018-06-28 | 西安电子科技大学 | 一种面向远程计算的控制流隐藏方法及系统 |
CN108710787A (zh) * | 2018-03-26 | 2018-10-26 | 江苏通付盾信息安全技术有限公司 | 代码混淆方法及装置、计算设备、计算机存储介质 |
CN109614774A (zh) * | 2018-11-23 | 2019-04-12 | 西安电子科技大学 | 一种基于sgx的程序控制流混淆方法及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8589897B2 (en) * | 2008-08-26 | 2013-11-19 | Apple Inc. | System and method for branch extraction obfuscation |
GB201405754D0 (en) * | 2014-03-31 | 2014-05-14 | Irdeto Bv | Protecting an item of software comprising conditional code |
-
2020
- 2020-03-04 CN CN202010145056.1A patent/CN111506313B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101359352A (zh) * | 2008-09-25 | 2009-02-04 | 中国人民解放军信息工程大学 | 分层协同的混淆后api调用行为发现及其恶意性判定方法 |
WO2018113642A1 (zh) * | 2016-12-20 | 2018-06-28 | 西安电子科技大学 | 一种面向远程计算的控制流隐藏方法及系统 |
CN108710787A (zh) * | 2018-03-26 | 2018-10-26 | 江苏通付盾信息安全技术有限公司 | 代码混淆方法及装置、计算设备、计算机存储介质 |
CN109614774A (zh) * | 2018-11-23 | 2019-04-12 | 西安电子科技大学 | 一种基于sgx的程序控制流混淆方法及系统 |
Non-Patent Citations (2)
Title |
---|
"Control flow obfuscation using neural network to fight concolic testing";MA H等;《International Conference on Security & Privacy in Communication Systems. 2014》;20140926;第1-20页 * |
MA H等."Control flow obfuscation using neural network to fight concolic testing".《International Conference on Security & Privacy in Communication Systems. 2014》.2014,第1-20页. * |
Also Published As
Publication number | Publication date |
---|---|
CN111506313A (zh) | 2020-08-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Wang et al. | A survey on ChatGPT: AI-generated contents, challenges, and solutions | |
Xu et al. | Hadm: Hybrid analysis for detection of malware | |
Li et al. | Deeppayload: Black-box backdoor attack on deep learning models through neural payload injection | |
Cho et al. | Security assessment of code obfuscation based on dynamic monitoring in android things | |
CN106874253A (zh) | 识别敏感信息的方法及装置 | |
CN111506313B (zh) | 一种基于神经网络的程序控制流混淆方法及系统 | |
EP3028203A1 (en) | Signal tokens indicative of malware | |
Zhai et al. | Text-to-image diffusion models can be easily backdoored through multimodal data poisoning | |
CN110109888B (zh) | 一种文件处理方法及装置 | |
CN113779355A (zh) | 基于区块链的网络谣言溯源取证方法及系统 | |
Ameur-Boulifa et al. | Sysml model transformation for safety and security analysis | |
Baror et al. | A defined digital forensic criteria for cybercrime reporting | |
Fan et al. | On the trustworthiness landscape of state-of-the-art generative models: A comprehensive survey | |
Yampolskiy | AI‐Complete CAPTCHAs as Zero Knowledge Proofs of Access to an Artificially Intelligent System | |
CN117034263A (zh) | 一种智能合约在无人机集群中的应用方法 | |
Kotenko et al. | Attacks against artificial intelligence systems: classification, the threat model and the approach to protection | |
Yu et al. | Efficient Classification of Malicious URLs: M-BERT-A Modified BERT Variant for Enhanced Semantic Understanding | |
Zhou et al. | A hardware-based architecture-neutral framework for real-time iot workload forensics | |
ur Rehman et al. | Blockchain-based approach for proving the source of digital media | |
Stahl et al. | Intelligence Techniques in Computer Security and Forensics: at the boundaries of ethics and law | |
CN113420293A (zh) | 一种基于深度学习的安卓恶意应用检测方法及系统 | |
Patel et al. | Master course selection prediction model using modify hybrid neuro-fuzzy inference system | |
Peng et al. | A Survey of Security Protection Methods for Deep Learning Model | |
US20230359903A1 (en) | Mitigation for Prompt Injection in A.I. Models Capable of Accepting Text Input | |
CN108959959B (zh) | 一种对计算透明的数据隐私保护方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |