本发明涉及软件安全,尤其涉及应用程序的安全防护方法、装置、设备及存储介质。
背景技术:
1、随着应用程序(application,app)技术成熟,使得app的安全性能逐步提高,但是目前app在运行时还是会被攻击者利用反编译的方式进行恶意攻击,例如,对app代码的修改和增添恶意攻击代码,造成使用该app用户信息的泄露、财产的损失,目前,为避免app遭受到恶意攻击,常用的安全防护方式是对app进行签名校验的验证,即只有正确的签名才能运行该app,但是攻击者会利用hook技术对app的签名校验绕过,从而进行代码修改和恶意攻击代码的增添,还是无法防护应用程序被攻击,最终导致防护应用程序的准确性较低,造成用户隐私信息出现泄露的情况。
2、上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
技术实现思路
1、本发明的主要目的在于提供一种应用程序的安全防护方法、装置、设备及存储介质,旨在解决现有技术防护应用程序的准确性较低,造成用户隐私信息泄露的技术问题。
2、为实现上述目的,本发明提供了一种应用程序的安全防护方法,所述应用程序的安全防护方法包括以下步骤:
3、在检测到应用程序被恶意攻击时,获取hook函数结构体的体征数据;
4、在确定所述体征数据满足预设条件时,根据反射机制确定hook函数的目标后字段属性信息;
5、确定所述目标后字段属性信息中各字段属性特征信息的特征值,并根据所述特征值确定恶意攻击所述应用程序的框架类型;
6、根据所述框架类型对所述应用程序进行安全防护。
7、可选地,所述在检测到应用程序被恶意攻击时,获取hook函数结构体的体征数据,包括:
8、在检测到应用程序被恶意攻击时,获取用于运行所述应用程序的系统的版本数据;
9、根据所述版本数据确定所述系统的版本号;
10、在所述版本号小于预设类型版本号阈值时,确定所述应用程序的hook注入方式;
11、根据所述hook注入方式获取hook函数结构体的体征数据。
12、可选地,所述根据所述hook注入方式获取hook函数结构体的体征数据,包括:
13、根据所述hook注入方式控制应用程序进行hook注入;
14、在hook注入过程中,获取hook函数结构体的体征数据。
15、可选地,所述根据所述hook注入方式控制应用程序进行hook注入,包括:
16、获取hook函数的位置信息;
17、根据所述位置信息在所述hook函数所在的位置备份目标指令,并在备份的目标指令中插入预设跳转指令;
18、根据所述预设跳转指令将应用程序的运行流程转移至目标stub代码段;
19、在所述目标stub代码段调用所述hook函数,并在备份目标指令的位置获取寄存器的状态;
20、在含有寄存器的状态的位置执行所述备份的目标指令,以控制应用程序进行hook注入。
21、可选地,所述在确定所述体征数据满足预设条件时,根据反射机制确定hook函数的目标后字段属性信息,包括:
22、获取未进行hook注入的应用程序的hook函数结构体的当前体征数据;
23、在所述未进行hook注入的应用程序的hook函数结构体的当前体征数据与所述体征数据不一致时,确定所述体征数据满足预设条件;
24、在应用程序运行时,根据反射机制对目标类数据进行加载,得到对应的类完整构造数据;
25、根据所述类完整构造数据确定hook函数的目标后字段属性信息。
26、可选地,所述根据所述类完整构造数据确定hook函数的目标后字段属性信息,包括:
27、根据所述类完整构造数据生成对应的对象实体;
28、设置所述对象实体的成员唤起策略;
29、根据所述成员唤起策略确定hook函数结构体的内部字段属性信息;
30、根据hook函数的位置信息从所述内部字段属性信息中提取目标后字段属性信息。
31、可选地,所述确定所述目标后字段属性信息中各字段属性特征信息的特征值,包括:
32、对所述目标后字段属性信息进行遍历,得到各字段属性信息;
33、对所述各字段属性信息进行特征提取,得到对应的各字段属性特征信息;
34、计算所述各字段属性特征信息对应的特征值。
35、可选地,所述根据所述特征值确定恶意攻击所述应用程序的框架类型,包括:
36、获取各hook框架的特征数据;
37、根据所述特征数据确定各hook框架的特征值与类型之间的映射关系;
38、将所述特征值与所述映射关系中各hook框架的特征值进行匹配;
39、根据匹配结果确定恶意攻击所述应用程序的框架类型。
40、可选地,所述根据所述框架类型对所述应用程序进行安全防护,包括:
41、在所述框架类型为预设hook框架类型时,确定目标程序防护策略;
42、根据所述目标程序防护策略对恶意攻击所述应用程序的行为进行截获,以实现对所述应用程序的安全防护。
43、可选地,所述根据所述框架类型对所述应用程序进行安全防护之后,还包括:
44、获取所述应用程序的代码数据;
45、在所述代码数据未被篡改且所述代码数据中未存在恶意代码数据时,继续检测所述应用程序是否被其他恶意行为攻击。
46、此外,为实现上述目的,本发明还提出一种应用程序的安全防护装置,所述应用程序的安全防护装置包括:
47、获取模块,用于在检测到应用程序被恶意攻击时,获取hook函数结构体的体征数据;
48、确定模块,用于在确定所述体征数据满足预设条件时,根据反射机制确定hook函数的目标后字段属性信息;
49、所述确定模块,还用于确定所述目标后字段属性信息中各字段属性特征信息的特征值,并根据所述特征值确定恶意攻击所述应用程序的框架类型;
50、安全防护模块,用于根据所述框架类型对所述应用程序进行安全防护。
51、可选地,所述获取模块,还用于在检测到应用程序被恶意攻击时,获取用于运行所述应用程序的系统的版本数据;根据所述版本数据确定所述系统的版本号;在所述版本号小于预设类型版本号阈值时,确定所述应用程序的hook注入方式;根据所述hook注入方式获取hook函数结构体的体征数据。
52、可选地,所述获取模块,还用于根据所述hook注入方式控制应用程序进行hook注入;在hook注入过程中,获取hook函数结构体的体征数据。
53、可选地,所述确定模块,还用于获取未进行hook注入的应用程序的hook函数结构体的当前体征数据;在所述未进行hook注入的应用程序的hook函数结构体的当前体征数据与所述体征数据不一致时,确定所述体征数据满足预设条件;在应用程序运行时,根据反射机制对目标类数据进行加载,得到对应的类完整构造数据;根据所述类完整构造数据确定hook函数的目标后字段属性信息。
54、可选地,所述确定模块,还用于根据所述类完整构造数据生成对应的对象实体;设置所述对象实体的成员唤起策略;根据所述成员唤起策略确定hook函数结构体的内部字段属性信息;根据hook函数的位置信息从所述内部字段属性信息中提取目标后字段属性信息。
55、可选地,所述确定模块,还用于对所述目标后字段属性信息进行遍历,得到各字段属性信息;对所述各字段属性信息进行特征提取,得到对应的各字段属性特征信息;计算所述各字段属性特征信息对应的特征值。
56、可选地,所述确定模块,还用于获取各hook框架的特征数据;根据所述特征数据确定各hook框架的特征值与类型之间的映射关系;将所述特征值与所述映射关系中各hook框架的特征值进行匹配;根据匹配结果确定恶意攻击所述应用程序的框架类型。
57、可选地,所述安全防护模块,还用于在所述框架类型为预设hook框架类型时,确定目标程序防护策略;根据所述目标程序防护策略对恶意攻击所述应用程序的行为进行截获,以实现对所述应用程序的安全防护。
58、此外,为实现上述目的,本发明还提出一种应用程序的安全防护设备,所述应用程序的安全防护设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的应用程序的安全防护程序,所述应用程序的安全防护程序配置为实现如上文所述的应用程序的安全防护方法。
59、此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有应用程序的安全防护程序,所述应用程序的安全防护程序被处理器执行时实现如上文所述的应用程序的安全防护方法。
60、本发明提出的应用程序的安全防护方法,通过在检测到应用程序被恶意攻击时,获取hook函数结构体的体征数据;在确定所述体征数据满足预设条件时,根据反射机制确定hook函数的目标后字段属性信息;确定所述目标后字段属性信息中各字段属性特征信息的特征值,并根据所述特征值确定恶意攻击所述应用程序的框架类型;根据所述框架类型对所述应用程序进行安全防护;通过上述方式,在应用程序被恶意攻击且hook函数结构体的体征数据满足预设条件时,根据各字段属性特征信息的特征值确定恶意攻击所用的框架类型,然后根据框架类型对应用程序进行安全防护,从而能够有效提高防护应用程序的准确性,避免用户隐私信息的泄露。
1.一种应用程序的安全防护方法,其特征在于,所述应用程序的安全防护方法包括以下步骤:
2.如权利要求1所述的应用程序的安全防护方法,其特征在于,所述在检测到应用程序被恶意攻击时,获取hook函数结构体的体征数据,包括:
3.如权利要求2所述的应用程序的安全防护方法,其特征在于,所述根据所述hook注入方式获取hook函数结构体的体征数据,包括:
4.如权利要求3所述的应用程序的安全防护方法,其特征在于,所述根据所述hook注入方式控制应用程序进行hook注入,包括:
5.如权利要求1所述的应用程序的安全防护方法,其特征在于,所述在确定所述体征数据满足预设条件时,根据反射机制确定hook函数的目标后字段属性信息,包括:
6.如权利要求5所述的应用程序的安全防护方法,其特征在于,所述根据所述类完整构造数据确定hook函数的目标后字段属性信息,包括:
7.如权利要求1所述的应用程序的安全防护方法,其特征在于,所述根据所述框架类型对所述应用程序进行安全防护,包括:
8.一种应用程序的安全防护装置,其特征在于,所述应用程序的安全防护装置包括:
9.一种应用程序的安全防护设备,其特征在于,所述应用程序的安全防护设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的应用程序的安全防护程序,所述应用程序的安全防护程序配置有实现如权利要求1至7中任一项所述的应用程序的安全防护方法。
10.一种存储介质,其特征在于,所述存储介质上存储有应用程序的安全防护程序,所述应用程序的安全防护程序被处理器执行时实现如权利要求1至7中任一项所述的应用程序的安全防护方法。
