软件安全防护方法、装置、电子设备及计算机存储介质制造方法及图纸

技术编号:19545575 阅读:29 留言:0更新日期:2018-11-24 20:55
本申请涉及互联网安全领域,公开了一种软件安全防护方法、装置、电子设备及计算机可读存储介质,其中,软件安全防护方法包括:将构成目标软件的各个函数的源码文件分别编译成相应的至少两个二进制函数文件;当满足预定更新条件时,将当前运行的目标软件中的预设个数的原始二进制函数文件分别更新为相应的目标二进制函数文件,原始二进制函数文件与目标二进制函数文件是基于相同源码文件编译生成且用不同指令序列表示的。本申请实施例的方法,实现了目标软件的多态效果,有效增加逆向攻击难度,极大提高各级各类网络及终端设备的安全性,而且无需目标软件停止对外服务,就可以随时更新,极大增强了用户体验。

Software Safety Protection Methods, Devices, Electronic Equipment and Computer Storage Media

This application relates to the field of Internet security, and discloses a software security protection method, device, electronic equipment and computer readable storage medium, in which the software security protection method includes: compiling the source code files of each function constituting the target software into at least two corresponding binary function files respectively; when satisfied; When the update condition is predefined, the original binary function files of the preset number in the current running target software are updated to the corresponding target binary function files. The original binary function files and the target binary function files are compiled and generated based on the same source code files and expressed in different instruction sequences. The method of the embodiment of this application realizes the polymorphic effect of the target software, effectively increases the difficulty of reverse attack, greatly improves the security of all kinds of networks and terminal devices at all levels, and can be updated at any time without stopping the external service of the target software, thus greatly enhancing the user experience.

【技术实现步骤摘要】
软件安全防护方法、装置、电子设备及计算机存储介质
本申请涉及互联网安全领域,具体而言,本申请涉及一种软件安全防护方法、装置、电子设备及计算机存储介质。
技术介绍
近年来,移动互联网领域面临的环境日益复杂,对于移动设备的威胁也是多种多样。APT(AdvancedPersistentThreat,高级持续性威胁)是各级各类网络及终端设备所面临的主要安全威胁,它使得安全威胁从随机攻击变成有目的、有组织、有预谋的群体式攻击。其中,逆向工程是APT攻击的一种常用的基础手段,大部分的攻击都以逆向工程为基础。逆向工程简单的讲就是根据二进制程序和运行实体,推导出程序的运行逻辑,或者是根据二进制程序的运性特点和规律通过篡改原始运行逻辑而达到攻击的目的。传统的采用高强度防护软件和防卫系统的静态防护措施,例如安装A安全卫士、B毒霸、修复漏洞补丁等,虽然能够在一定程度上阻止攻击,但是难免有疏漏,而且即使堵住了大部分的漏洞,一旦一个漏洞疏忽没有妥善处理,也将会造成全部系统的崩溃,导致之前的努力随之付诸东流。另外,由于攻击者和防守者处于不对等的地位,防守者在明处,且系统的运行状态完全可以被攻击者掌握或观察到,导致无论多么先进的防护技术,多么先进的防护软件和系统,都经不起攻击者长期的观察、分析和反复攻击,而且一旦被攻击者得手,将会引起大面积的攻击蔓延。
技术实现思路
为克服上述技术问题或者至少部分地解决上述技术问题,特提出以下技术方案:第一方面,提供了一种软件安全防护方法,包括:将构成目标软件的各个函数的源码文件分别编译成相应的至少两个二进制函数文件;当满足预定更新条件时,将当前运行的目标软件中的预设个数的原始二进制函数文件分别更新为相应的目标二进制函数文件,原始二进制函数文件与目标二进制函数文件是基于相同源码文件编译生成且用不同指令序列表示的。第二方面,提供了一种软件安全防护装置,包括:编译模块,用于将构成目标软件的各个函数的源码文件分别编译成相应的至少两个二进制函数文件;更新模块,用于当满足预定更新条件时,将当前运行的目标软件中的预设个数的原始二进制函数文件分别更新为相应的目标二进制函数文件,原始二进制函数文件与目标二进制函数文件是基于相同源码文件编译生成且用不同指令序列表示的。第三方面,提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行所述程序时实现上述的软件安全防护方法。第四方面,提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现上述的软件安全防护方法。本申请实施提供的软件安全防护方法,将构成目标软件的各个函数的源码文件分别编译成相应的至少两个二进制函数文件,为后续运行过程中的目标软件的动态变化奠定必要基础;当满足预定更新条件时,将当前运行的目标软件中的预设个数的原始二进制函数文件分别更新为相应的目标二进制函数文件,原始二进制函数文件与目标二进制函数文件是基于相同源码文件编译生成且用不同指令序列表示的,从而在满足预定更新条件时,即可利用热补丁原理,在目标软件运行过程中将原始二进制函数文件动态更新为相应的目标二进制函数文件,不仅实现了目标软件的多态效果,令攻击者难以寻找攻击规律而放弃,且即使攻击者获得某一二进制函数文件并采用逆向工程进行攻破成功,针对同一目标软件的其他二进制函数文件却不能进行参考,避免相同的攻击方法蔓延,有效增加逆向攻击难度,极大提高各级各类网络及终端设备的安全性,而且无需目标软件停止对外服务,就可以随时更新,极大增强了用户体验。本申请附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本申请的实践了解到。附图说明本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:图1为现有的模块替换法的基本示意图;图2为本申请实施例的软件安全防护方法的流程示意图;图3为本申请实施例的二进制函数库文件替换技术的基本示意图;图4为本申请实施例的软件安全防护装置的基本结构示意图;图5为本申请实施例的软件安全防护装置的详细结构示意图;图6为本申请实施例的电子设备的结构示意图。具体实施方式下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本申请的限制。本
技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。下面先对下述描述中会用到的一些相关技术信息进行统一描述,具体如下所示:A:热补丁技术热补丁技术一般是指软件系统在不停止运行或者重新启动的情况下,对正在运行的软件实施修改或增强,因为是在软件运行时对软件的修改,所以称之为热补丁或者“HotPatch”,热补丁的好处是不需要软件系统停止对外服务,就可以随时更新或者修复问题,极大增强了用户体验。在移动设备领域,热补丁应用较少,毕竟,移动设备大多属于个人设备,重启系统的升级方式都可以接受,不一定非要“热修复”。热补丁的具体技术也有很多,本申请实施例中用到的是一种适用于C/C++语言软件的基于函数的热修复技术,后面实施例将具体介绍。B:软件多态的概念与原理移动互联网领域环境复杂,对于移动设备的威胁也是多种多样,基于传统的静态防护措施,难免有疏漏,即使堵住了大部分的漏洞,一旦一个漏洞疏忽没有处理,也将会造成全部系统的崩溃,导致之前的努力随之付诸东流。之所以出现这方面的问题,主要是由于攻击者和防守者处于不对等的地位,防守者在明处,且系统的运行状态完全可以被攻击者掌握或观察到,攻击者通过不断的尝试,反复的试错,总能找到系统的漏洞。为了改变这种不对等的地位,防守方的思路发生了改变,由原来的一成不变的系统改变成动态变换的系统,这样的系统总在变化中,攻击者不能通过反复试验找到漏洞,即使找到了部分攻击成果,但是由于系统的改变,导致部分攻击成果也可能无法继续使用,从而使防守方变被动为主动。多变的系统有很多具体的技术,变化的主体也是不一样的,例如,网络系统,变化的可以是网络拓扑结构,又例如,移动终端系统,变化的可以是软件本身的结构。虽然系统是多变的,但是原有的运行逻辑和对外提供的功能是不变的,如果功能也变了,那就不是原来的系统了。软件多态就是本地系统多变的一种方法,基本思想可以概括为:系统本身运行逻辑不变的情况下,改变系统中各个软件组件的二进制程序结构。由于二进制程序本身的内容就是运行的指令代码,所以攻击者通常本文档来自技高网
...

【技术保护点】
1.一种软件安全防护方法,其特征在于,包括:将构成目标软件的各个函数的源码文件分别编译成相应的至少两个二进制函数文件;当满足预定更新条件时,将当前运行的目标软件中的预设个数的原始二进制函数文件分别更新为相应的目标二进制函数文件,所述原始二进制函数文件与所述目标二进制函数文件是基于相同源码文件编译生成且用不同指令序列表示的。

【技术特征摘要】
1.一种软件安全防护方法,其特征在于,包括:将构成目标软件的各个函数的源码文件分别编译成相应的至少两个二进制函数文件;当满足预定更新条件时,将当前运行的目标软件中的预设个数的原始二进制函数文件分别更新为相应的目标二进制函数文件,所述原始二进制函数文件与所述目标二进制函数文件是基于相同源码文件编译生成且用不同指令序列表示的。2.根据权利要求1所述的方法,其特征在于,将当前运行的目标软件中的预设个数的原始二进制函数文件分别更新为相应的目标二进制函数文件,包括:基于以下至少一种方式,从当前运行的目标软件中确定预设个数的原始二进制函数文件:随机选取;依据各个原始二进制函数文件的逻辑执行顺序依次选取;依据各个原始二进制函数文件的优先级别依次选取。3.根据权利要求1所述的方法,其特征在于,将当前运行的目标软件中的预设个数的原始二进制函数文件分别更新为相应的目标二进制函数文件,包括:加载替换模块,所述替换模块包括多个目标二进制函数文件;从所述替换模块中确定所述预设个数的原始二进制函数文件分别对应的至少一个目标二进制函数文件;将任一原始二进制函数文件更新为与其对应的任一目标二进制函数文件。4.根据权利要求3所述的方法,其特征在于,将任一原始二进制函数文件更新为与其对应的任一目标二进制函数文件,包括:通过总控程序调用预设系统调用函数;根据所述预设系统调用函数的第一预设参数,跟踪所述任一原始二进制函数文件;根据所述预设系统调用函数的第二预设参数,将被跟踪的所述任一原始二进制函数文件的执行入口处的指令修改为绝对跳转指令;其中,所述绝对跳转指令指向与所述任一原始二进制函数文件对应的任一目标二进制函数文件。5.根...

【专利技术属性】
技术研发人员:高连凯
申请(专利权)人:北京元心科技有限公司
类型:发明
国别省市:北京,11

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

1