本申请涉及计算机程序安全领域,尤其涉及一种程序加固方法、装置、电子设备、存储介质及计算机产品。
背景技术:
1、随着信息技术的快速发展,软件系统在社会生活的各个领域得到广泛应用。软件安全问题日益突出,各类针对软件漏洞的攻击手段层出不穷,如堆栈溢出、返回导向编程等攻击方式。这些攻击可能导致程序控制流被劫持,造成信息泄露、系统崩溃等严重后果。因此,如何有效保护软件系统免受恶意攻击,成为当前亟需解决的重要问题。
2、目前,常见的软件保护方案主要采用静态加固的方式。例如,在编译阶段通过插入安全检查代码来防御堆栈溢出攻击;或者在二进制程序中填充随机指令以防范返回导向编程攻击。这些方案通过在程序中植入固定的防护措施来提升软件安全性。
3、然而,现有的软件保护方案往往采用统一的加固策略,无法根据程序的具体应用场景动态调整防护强度。这导致在高安全需求场景下防护不足,而在对性能要求较高的场景下又会因过度防护造成明显的性能损失。
技术实现思路
1、本申请提供一种程序加固方法、装置、电子设备、存储介质及计算机产品,可以在高安全需求场景下通过提高随机化系数来增强防护强度,在高性能需求场景下通过降低随机化系数来减少性能开销,有效解决了现有技术无法平衡程序安全性和运行性能的技术问题。
2、在本申请的第一方面,提供了一种程序加固方法,包括:
3、获取待加固的目标程序,所述目标程序包括有源程序,和/或,无源程序;
4、获取所述目标程序的随机化系数,所述随机化系数用于平衡所述目标程序在应用场景下运行时的安全指标和性能指标;
5、在所述目标程序包括有源程序的情况下,基于所述有源程序对应的随机化系数对所述有源程序进行编译,得到加固后的第一目标程序;
6、在所述目标程序包括无源程序的情况下,基于所述无源程序对应的随机化系数对所述无源程序进行二进制重写,得到加固后的第二目标程序。
7、本申请还提供一种程序加固装置,包括:
8、目标程序获取模块,用于获取待加固的目标程序,所述目标程序包括有源程序,和/或,无源程序;
9、随机化系数获取模块,用于获取所述目标程序的随机化系数,所述随机化系数用于平衡所述目标程序在应用场景下运行时的安全指标和性能指标;
10、有源程序加固模块,用于在所述目标程序包括有源程序的情况下,基于所述有源程序对应的随机化系数对所述有源程序进行编译,得到加固后的第一目标程序;
11、无源程序加固模块,用于在所述目标程序包括无源程序的情况下,基于所述无源程序对应的随机化系数对所述无源程序进行二进制重写,得到加固后的第二目标程序。
12、在本申请的第二方面,提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述任一种所述程序加固方法。
13、在本申请的第三方面,提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述程序加固方法。
14、在本申请的第四方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述程序加固方法。
15、综上所述,本申请中提供的一个或多个技术方案,至少具有如下技术效果或优点:
16、通过引入随机化系数来动态平衡目标程序在不同应用场景下的安全指标和性能指标,并基于该随机化系数分别对有源程序进行编译加固和对无源程序进行二进制重写加固,从而实现了根据具体应用场景灵活调整程序防护强度的目的。与现有技术采用统一加固策略相比,本申请能够在高安全需求场景下通过提高随机化系数来增强防护强度,在高性能需求场景下通过降低随机化系数来减少性能开销,有效解决了现有技术无法平衡程序安全性和运行性能的技术问题。
1.一种程序加固方法,其特征在于,包括:
2.根据权利要求1所述的程序加固方法,其特征在于,所述基于所述有源程序对应的随机化系数对所述有源程序进行编译,得到加固后的第一目标程序,包括:
3.根据权利要求1所述的程序加固方法,其特征在于,所述基于所述无源程序对应的随机化系数对所述无源程序进行二进制重写,得到加固后的第二目标程序,包括:
4.根据权利要求1所述的程序加固方法,其特征在于,所述方法还包括:
5.根据权利要求1至4中任一项所述的程序加固方法,其特征在于,所述获取所述目标程序的随机化系数,包括:
6.根据权利要求5所述的程序加固方法,其特征在于,所述获取所述目标程序的随机化系数之后,还包括:
7.一种程序加固装置,其特征在于,包括:
8.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至6中任一项所述程序加固方法。
9.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6中任一项所述程序加固方法。
10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6中任一项所述程序加固方法。