CN111506313A - 一种基于神经网络的程序控制流混淆方法及系统 - Google Patents

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

Info

Publication number
CN111506313A
CN111506313A CN202010145056.1A CN202010145056A CN111506313A CN 111506313 A CN111506313 A CN 111506313A CN 202010145056 A CN202010145056 A CN 202010145056A CN 111506313 A CN111506313 A CN 111506313A
Authority
CN
China
Prior art keywords
neural network
program
control flow
branch
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.)
Granted
Application number
CN202010145056.1A
Other languages
English (en)
Other versions
CN111506313B (zh
Inventor
王永智
王博
沈玉龙
何昶辉
赵迪
邹宇
苟旭春
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xidian University
Original Assignee
Xidian University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xidian University filed Critical Xidian University
Priority to CN202010145056.1A priority Critical patent/CN111506313B/zh
Publication of CN111506313A publication Critical patent/CN111506313A/zh
Application granted granted Critical
Publication of CN111506313B publication Critical patent/CN111506313B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/43Checking; Contextual analysis
    • G06F8/433Dependency analysis; Data or control flow analysis
    • G06F8/434Pointers; Aliasing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference 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 (10)

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.一种实施权利要求1~4任意一项所述基于神经网络的程序控制流混淆方法的基于神经网络的程序控制流混淆系统,其特征在于,所述基于神经网络的程序控制流混淆系统,包括:
伪分支语句插入模块,在原始语句s之前构造并插入伪分支语句,这些伪分支语句最终将流向s,使程序原本的控制流程不被篡改;
变量隐藏模块,将真伪分支语句的判断条件进行转换替代成控制流查询函数,并根据判断条件训练神经网络,获得转换程序和神经网络模型。
6.一种面向云计算场景下的控制流混淆方法,其特征在于,所述面向云计算场景下的控制流混淆方法包含所述的基于神经网络程序控制流混淆方法,还包括:
将所述转换程序和神经网络模型发送至云端远程计算单元,所述转换程序和神经网络模型存储在所述远程计算单元的不可信环境中;
基于所述神经网络模型,在所述远程计算单元中执行所述转换程序。
7.如权利要求6所述的面向云计算场景下的控制流混淆方法,其特征在于,所述远程计算单元执行到分支语句时,转换后的分支语句会通过自定义函数调用神经网络模型,神经网络模型根据输入值推理计算出和原始程序相同的执行路径。
8.一种实施权利要求6~8任意一项所述面向云计算场景下的控制流混淆方法的面向云计算场景下的程序控制流混淆系统,其特征在于,所述面向云计算场景下的程序控制流混淆系统包括:
伪分支语句插入模块,在原始语句s之前构造并插入伪分支语句,这些伪分支语句最终将流向s,使程序原本的控制流程不被篡改;
变量隐藏模块,将真伪分支语句的判断条件进行转换替代成控制流查询函数,并根据判断条件训练神经网络,获得转换程序和神经网络模型;
程序发送模块,将所述转换程序和神经网络模型发送至远程计算单元所述转换程序和神经网络模型存储在所述远程计算单元的不可信环境中;
程序执行模块,基于所述神经网络模型,在所述远程计算单元中执行所述转换程序。
9.一种接收用户输入程序存储介质,所存储的计算机程序使电子设备执行权利要求1~4任意一项所述基于神经网络的程序控制流混淆方法,包括下列步骤:
步骤一,伪分支语句构造与插入,在原始语句s之前构造并插入伪分支语句,这些伪分支语句最终将流向s,以保证程序原本的控制流程不被篡改;
步骤二,分支语句以及伪分支语句隐藏,将原始程序中分支语句以及插入的伪分支语句进行隐藏,将其转换为控制流查询函数,并根据分支语句逻辑训练神经网络,获得转换程序和神经网络模型。
10.一种存储在计算机可读介质上的计算机程序产品,包括计算机可读程序,供于电子装置上执行时,提供用户输入接口以实施如权利要求1~4任意一项所述基于神经网络的程序控制流混淆方法。
CN202010145056.1A 2020-03-04 2020-03-04 一种基于神经网络的程序控制流混淆方法及系统 Active CN111506313B (zh)

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 true CN111506313A (zh) 2020-08-07
CN111506313B 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)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112527307A (zh) * 2020-11-18 2021-03-19 西安电子科技大学 程序控制流隐藏方法、系统及应用
CN112599211A (zh) * 2020-12-25 2021-04-02 中电云脑(天津)科技有限公司 一种医疗实体关系抽取方法及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101359352A (zh) * 2008-09-25 2009-02-04 中国人民解放军信息工程大学 分层协同的混淆后api调用行为发现及其恶意性判定方法
US20100058301A1 (en) * 2008-08-26 2010-03-04 Apple Inc. System and method for branch extraction obfuscation
US20170213027A1 (en) * 2014-03-31 2017-07-27 Irdeto B.V. Protecting an item of software
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的程序控制流混淆方法及系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100058301A1 (en) * 2008-08-26 2010-03-04 Apple Inc. System and method for branch extraction obfuscation
CN101359352A (zh) * 2008-09-25 2009-02-04 中国人民解放军信息工程大学 分层协同的混淆后api调用行为发现及其恶意性判定方法
US20170213027A1 (en) * 2014-03-31 2017-07-27 Irdeto B.V. Protecting an item of software
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 (1)

* Cited by examiner, † Cited by third party
Title
MA H等: ""Control flow obfuscation using neural network to fight concolic testing"", 《INTERNATIONAL CONFERENCE ON SECURITY & PRIVACY IN COMMUNICATION SYSTEMS. 2014》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112527307A (zh) * 2020-11-18 2021-03-19 西安电子科技大学 程序控制流隐藏方法、系统及应用
CN112527307B (zh) * 2020-11-18 2023-06-20 西安电子科技大学 程序控制流隐藏方法、系统及应用
CN112599211A (zh) * 2020-12-25 2021-04-02 中电云脑(天津)科技有限公司 一种医疗实体关系抽取方法及装置
CN112599211B (zh) * 2020-12-25 2023-03-21 中电云脑(天津)科技有限公司 一种医疗实体关系抽取方法及装置

Also Published As

Publication number Publication date
CN111506313B (zh) 2024-01-23

Similar Documents

Publication Publication Date Title
Vinayakumar et al. Robust intelligent malware detection using deep learning
Xu et al. Hadm: Hybrid analysis for detection of malware
Kong et al. A survey on adversarial attack in the age of artificial intelligence
CN107180200B (zh) 数据文件可定制化脱敏方法和系统
Cho et al. Security assessment of code obfuscation based on dynamic monitoring in android things
Li et al. CNN-based malware variants detection method for internet of things
Zhu et al. Android malware detection based on multi-head squeeze-and-excitation residual network
EP3028203A1 (en) Signal tokens indicative of malware
Yang et al. An enhanced intrusion detection system for IoT networks based on deep learning and knowledge graph
Yan et al. A survey of adversarial attack and defense methods for malware classification in cyber security
CN103577323A (zh) 基于动态关键指令序列胎记的软件抄袭检测方法
CN111475838A (zh) 基于深度神经网络的图数据匿名方法、装置、存储介质
CN111506313A (zh) 一种基于神经网络的程序控制流混淆方法及系统
CN115730313A (zh) 一种恶意文档检测方法、装置、存储介质及设备
CN115883261A (zh) 一种基于att和ck的电力系统apt攻击建模方法
Gao et al. MaliCage: A packed malware family classification framework based on DNN and GAN
Wei et al. Toward identifying APT malware through API system calls
Wu et al. Detection of fake IoT app based on multidimensional similarity
Wu et al. Abnormal detection of wireless power terminals in untrusted environment based on double hidden Markov model
Wang et al. Gvd-net: Graph embedding-based machine learning model for smart contract vulnerability detection
CN117478403A (zh) 一种全场景网络安全威胁关联分析方法及系统
Wu et al. Graphguard: Detecting and counteracting training data misuse in graph neural networks
CN117034263A (zh) 一种智能合约在无人机集群中的应用方法
WO2023072002A1 (zh) 开源组件包的安全检测方法及装置
CN116668095A (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