本发明属于计算机软件安全、软件保护、以及软件运维相结合的,具体涉及一种云场景应用软件安全防护和高效运维方法。
背景技术:
1、近年来,随着云计算、大数据和物联网的发展,越来越多的信息系统部署在云上,platform-as-a-service(paas)就是其中一种广受欢迎的部署方式。在paas场景中,paas提供者提供了包括硬件架构、操作系统、必需的软件组件等云运行时环境,而应用程序提供者则通过前者提供的环境能以较低廉的开销在云上运行自己的应用程序。然而,在这一合作方式提供极大的便利的同时,安全问题却也不可小觑。一方面,部署在云上的应用程序天然暴露在错综复杂的互联网环境中,攻击者可以在不亲身接触到服务器的情况下通过各种管理维护的接口对其进行攻击;另一方面,paas中单个服务器会常常运行来自多个不同应用提供商的程序,一旦攻击者成功伪装成应用提供商的身份并上传恶意程序,便可能攻击到同个环境下甚至同个局域网下的其它应用程序。
2、通过可信硬件(例如trusted platform module)和可信启动机制的引入,由paas提供者掌控的系统及运行时环境的安全较容易得到保证,而用户应用软件的安全则具有更大的挑战。在应用程序内容和行为逻辑不可控的情况下,paas提供者一方面需要为用户的应用程序防护来自外部攻击者的攻击,另一方面也需要防止恶意攻击者以应用程序提供者的身份向系统中上传运行恶意程序进而攻破系统和同个节点上运行的其它应用程序。目前一种极为广泛的攻击方式是通过构造应用程序的输入,例如构造命令、代码、数据等,触发程序内的特定漏洞,进而达成攻击效果。在防护这一类攻击上,paas提供者选用的机制一方面需要保证足够的有效性,另一方面也要兼顾效率以免引入过大的开销。
3、针对这一类攻击的防御,一大主流思路是进行输入数据检查,代表性的技术是防火墙。然而,防火墙并不能真正分析出输入数据对程序内部逻辑的影响,难以区分并防御能够触发程序内零日漏洞的输入。另一大技术是嵌入程序内部的控制流完整性技术,通过控制流的保证来防御攻击。但在云场景下,多数应用程序是以java、python等高级语言开发,漏洞触发并不体现在控制流上,这一技术在云场景的适用性不高。
技术实现思路
1、在上述的场景需求和安全目标下,本发明的目的是提供了一种云场景的应用软件安全防护和高效运维方法,通过嵌入程序逻辑和安全管理组件对应用程序行为的合作验证来保护应用程序和系统的安全完整性,并通过引入可信度模型和分级验证策略的来提升多应用场景下的验证效率,高效地保障云场景下应用的运行时安全。
2、为实现上述发明目的,实施例提供的一种云场景的应用软件安全防护和高效运维方法,实现该方法的系统包括硬件可信根、常规功能组件、安全管理组件、以及远端安全运维中心,所述方法包括以下步骤:
3、基于硬件可信根并通过可信启动机制启动常规功能组件和安全管理组件以保证运行的完整性,安全管理组件向远端安全运维中心进行身份揭露后,安全管理组件与远端安全运维中心建立安全通信信道,安全运维中心通过安全通信信道下发最新的安全策略至安全管理组件以使其配置就绪;
4、用户应用程序启动运行时,安全管理组件将安全检查逻辑插入到用户应用程序的关键运行位置并作为检查逻辑位置,当用户应用程序运行到检查逻辑位置时触发验证操作,安全检查逻辑将相关运行信息打包到验证请求中一起发送到安全管理组件,安全管理组件根据验证请求中的相关运行信息并基于最新安全策略做出验证,返回验证结果决定是否允许程序进行后续操作。
5、优选地,安全管理组件向远端安全运维中心进行身份揭露,包括:通过在分发安全管理组件中往程序包中预装独一的身份id和揭露密钥,在安全管理组件运行后用揭露密钥加密id后再向远端安全运维中心揭露自身,从而实现安全管理组件的身份认证和节点绑定;
6、安全管理组件与远端安全运维中心建立安全通信信道,包括:安全管理组件完成身份揭露后,与远端安全运维中心协商达成会话密钥,并通过会话密钥加密信息来防止信息仿冒,以构建安全通信信道。
7、优选地,下发的最新安全策略,以黑白名单的形式,包括系统和程序异常行为的判定策略、异常行为对应的处理策略和报告策略,其中,判定策略包括异常的接口调用参数特征、异常文件访问行为特征,异常行为对应的处理策略和报告策略包括仅记录进日志、向远端安全运维中心发送警告、终止异常程序。
8、优选地,关键运行位置分为三类:代码/类装载器,这一位置是代码进入程序运行的入口,安全检查逻辑插入到此位置,能够阻止部分高风险代码/类的装载和运行;程序内部函数,安全检查逻辑插入到此位置,能够阻止一个大库/大类中的部分函数运行或阻止部分高风险的函数内逻辑;程序外调接口,安全检查逻辑插入到此位置,能够根据应用程序调用行为而区分并阻止高危的外调行为。
9、优选地,相关运行信息是安全管理组件进行验证所必需的上下文信息,包括调用栈、重要全局变量、以及调用参数,还可包括其它在应用程序中收集的自定义信息。
10、优选地,安全管理组件根据验证请求中的相关运行信息并基于最新安全策略做出验证,返回验证结果决定是否允许程序进行后续操作,包括:
11、安全管理组件使用验证请求中的相关运行信息,与最新安全策略进行匹配,判定是否验证通过并根据最新安全策略采取进一步行动,具体包括:验证通过时,应用程序中的安全检查逻辑在收到验证结果前会阻塞程序,在收到验证结果后才继续运行;对于验证不通过的情况,安全检测逻辑直接终止后续操作并返回,安全管理组件也可以向远端安全运维中心告警或通过系统信号直接终止应用程序。
12、优选地,所述方法还包括:安全管理组件根据预定义策略对同一节点上运行的多个应用程序维护各自的实时可信度,在验证操作中根据应用程序的实时可信度基于最新安全策略包含的多个等级策略进行验证。
13、优选地,可信度是在应用运行过程中衡量应用程序可信状态的一个实时的值,介于一个预定义的最大值和最小值之间;在运行过程中,应用程序被攻击者攻破的概率会逐渐增大,因此可信度随运行时间下降;不同应用程序由于其代码体量、逻辑复杂度因素有不同的可信度下降率,容易被攻破的应用程序可信度下降快;与之相应地,引入了可信度阈值,以该可信度阈值将应用程序划分为可信状态与不可信状态,兼容现有的二元概念;
14、最新安全策略包含的多级策略是指将安全策略规则根据其重要性和必要性分成两组或更多,对于实时可信度高的应用程序,可以仅使用其中的严格规则集进行验证,而实时可信度低的应用程序,使用其中的广泛规则集或完整规则集进行验证,在高并发验证请求的情况下减少规则匹配和验证过程的时间,提升机制的验证效率。
15、优选地,所述方法还包括:安全管理组件定期进行环境检查以保障软件运行环境的完整性和安全性,主要检查与应用程序并行运行的应用程序和系统的重要文件,前者通过进程扫描并检查进程路径、资源使用特征来识别恶意进程,后者则通过文件哈希校验来保证重要可执行文件、配置文件未被篡改。
16、优选地,所述方法还包括:安全管理组件定期与远端安全运维中心通信以进行记录上报,其中,记录包括安全管理组件自身相关状态与重要配置的信息、与用户应用程序交互进行验证的信息,也包括环境内重要文件、其它进程扫描结果的信息;该记录在文件系统中和在上报的通信会话中均被加密以防止信息伪造,同时每条新纪录的哈希摘要值也会扩展到tpm寄存器中,并通过tpm远程认证证明纪录的真实性。
17、与现有技术相比,本发明具有的有益效果至少包括:
18、(1)本发明通过应用行为判定,实现了更为有效的运行时安全检测机制,且具备一定防御零日漏洞和绕过攻击的能力。
19、(2)本发明通过多级安全策略和可信度更新,提升了多应用高负载场景下的验证效率,能够保证应用程序运行时度量的低开销和实时性。
20、(3)本发明实现的应用防御机制具有良好的通用性,能够适用于不同类型不同逻辑的应用程序,还可以与其它防御机制进行结合。
1.一种云场景的应用软件安全防护和高效运维方法,其特征在于,实现该方法的系统包括硬件可信根、常规功能组件、安全管理组件、以及远端安全运维中心,所述方法包括以下步骤:
2.根据权利要求1所述的云场景的应用软件安全防护和高效运维方法,其特征在于,安全管理组件向远端安全运维中心进行身份揭露,包括:通过在分发安全管理组件中往程序包中预装独一的身份id和揭露密钥,在安全管理组件运行后用揭露密钥加密id后再向远端安全运维中心揭露自身,从而实现安全管理组件的身份认证和节点绑定;
3.根据权利要求1所述的云场景的应用软件安全防护和高效运维方法,其特征在于,下发的最新安全策略,以黑白名单的形式,包括系统和程序异常行为的判定策略、异常行为对应的处理策略和报告策略,其中,判定策略包括异常的接口调用参数特征、异常文件访问行为特征,异常行为对应的处理策略和报告策略包括仅记录进日志、向远端安全运维中心发送警告、终止异常程序。
4.根据权利要求1所述的云场景的应用软件安全防护和高效运维方法,其特征在于,关键运行位置分为三类:代码/类装载器,这一位置是代码进入程序运行的入口,安全检查逻辑插入到此位置,能够阻止部分高风险代码/类的装载和运行;程序内部函数,安全检查逻辑插入到此位置,能够阻止一个大库/大类中的部分函数运行或阻止部分高风险的函数内逻辑;程序外调接口,安全检查逻辑插入到此位置,能够根据应用程序调用行为而区分并阻止高危的外调行为。
5.根据权利要求1所述的云场景的应用软件安全防护和高效运维方法,其特征在于,相关运行信息是安全管理组件进行验证所必需的上下文信息,包括调用栈、重要全局变量、以及调用参数,还可包括其它在应用程序中收集的自定义信息。
6.根据权利要求1所述的云场景的应用软件安全防护和高效运维方法,其特征在于,安全管理组件根据验证请求中的相关运行信息并基于最新安全策略做出验证,返回验证结果决定是否允许程序进行后续操作,包括:
7.根据权利要求1所述的云场景的应用软件安全防护和高效运维方法,其特征在于,还包括:安全管理组件根据预定义策略对同一节点上运行的多个应用程序维护各自的实时可信度,在验证操作中根据应用程序的实时可信度基于最新安全策略包含的多个等级策略进行验证。
8.根据权利要求7所述的云场景的应用软件安全防护和高效运维方法,其特征在于,可信度是在应用运行过程中衡量应用程序可信状态的一个实时的值,介于一个预定义的最大值和最小值之间;在运行过程中,应用程序被攻击者攻破的概率会逐渐增大,因此可信度随运行时间下降;不同应用程序由于其代码体量、逻辑复杂度因素有不同的可信度下降率,容易被攻破的应用程序可信度下降快;与之相应地,引入了可信度阈值,以该可信度阈值将应用程序划分为可信状态与不可信状态,兼容现有的二元概念;
9.根据权利要求1所述的云场景的应用软件安全防护和高效运维方法,其特征在于,还包括:安全管理组件定期进行环境检查以保障软件运行环境的完整性和安全性,主要检查与应用程序并行运行的应用程序和系统的重要文件,前者通过进程扫描并检查进程路径、资源使用特征来识别恶意进程,后者则通过文件哈希校验来保证重要可执行文件、配置文件未被篡改。
10.根据权利要求1所述的云场景的应用软件安全防护和高效运维方法,其特征在于,还包括:安全管理组件定期与远端安全运维中心通信以进行记录上报,其中,记录包括安全管理组件自身相关状态与重要配置的信息、与用户应用程序交互进行验证的信息,也包括环境内重要文件、其它进程扫描结果的信息;该记录在文件系统中和在上报的通信会话中均被加密以防止信息伪造,同时每条新纪录的哈希摘要值也会扩展到tpm寄存器中,并通过tpm远程认证证明纪录的真实性。
