CN109753793A - 一种热补丁方法及热补丁装置 - Google Patents

一种热补丁方法及热补丁装置 Download PDF

Info

Publication number
CN109753793A
CN109753793A CN201711087767.2A CN201711087767A CN109753793A CN 109753793 A CN109753793 A CN 109753793A CN 201711087767 A CN201711087767 A CN 201711087767A CN 109753793 A CN109753793 A CN 109753793A
Authority
CN
China
Prior art keywords
code
performing environment
side performing
patch file
patch
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
CN201711087767.2A
Other languages
English (en)
Other versions
CN109753793B (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.)
Huawei Device Co Ltd
Original Assignee
Huawei Device Dongguan Co Ltd
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 Huawei Device Dongguan Co Ltd filed Critical Huawei Device Dongguan Co Ltd
Priority to CN201711087767.2A priority Critical patent/CN109753793B/zh
Publication of CN109753793A publication Critical patent/CN109753793A/zh
Application granted granted Critical
Publication of CN109753793B publication Critical patent/CN109753793B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

一种热补丁方法及热补丁装置,用于提高补丁文件的安全性,阻止恶意代码的攻击,降低引入补丁文件的安全风险。本申请方法包括:安全侧执行环境验证补丁文件的签名;若所述补丁文件的签名通过验证,则所述安全侧执行环境对所述补丁文件进行解析,得到旧代码位置和新代码;所述安全侧执行环境根据所述旧代码位置对非安全侧执行环境的代码进行修改,以使得所述非安全执行环境执行至所述旧代码位置时跳转执行所述新代码。

Description

一种热补丁方法及热补丁装置
技术领域
本申请涉及计算机软件领域,尤其涉及一种热补丁方法及热补丁装置。
背景技术
在通信系统中,为确保通信服务的连贯,提供通信服务的程序要少重启和不中断服务,尽可能的做到不间断的运行。但是当服务程序出现bug(错误)时,需要修复的时候,传统的方法是用修复好的程序文件代替原来的程序文件来执行,这样就会不可避免的出现重启和服务中断。使用热补丁技术可以有效地避免上述问题,热补丁技术是将修正bug的代码编译成一个补丁文件,然后在不中断服务的情况下让服务程序加载补丁文件,从而用补丁文件的代码替换掉有bug的代码。
热补丁修复过程大致如下:首先,富执行环境(rich execution environment,REE)中的操作系统(如Linux操作系统)读取补丁文件,其次,Linux操作系统使用签名技术对补丁文件的签名进行验证,以确保其发行者可信(即对补丁文件执行完整性度量),再次,在补丁文件通过签名验证之后,Linux操作系统对补丁文件进行解析得到补丁修改的代码位置和用于替换的新代码,最后,Linux操作系统将上述代码位置处的指令修改为转移指令,使得访问上述代码位置处的指令时跳转至执行新代码。
在现有热补丁修复机制的系统中,RRE为非安全可执行环境容易遭到恶意代码的攻击,如果REE侧操作系统遭到恶意代码的攻击,恶意代码可以利用REE侧操作系统修改自身代码的特性将恶意代码注入进REE侧中,使得恶意代码具有内核执行权限,得以实现对系统的攻击。恶意代码还可以通过攻击REE侧操作系统,绕过对补丁文件的完整性度量操作,使得REE侧操作系统无法对补丁文件进行签名验证,进而无法保证补丁文件的安全性,从而增加了引入补丁文件的安全风险。
发明内容
本申请提供了一种热补丁方法及热补丁装置,用于提高补丁文件的安全性,阻止恶意代码的攻击,降低引入补丁文件的安全风险。
本申请第一方面提供了一种热补丁方法,包括:
首先,安全侧执行环境验证补丁文件的签名;其次,当补丁文件的签名通过验证时,安全侧执行环境对补丁文件进行解析,得到旧代码位置和新代码;最后,安全侧执行环境根据旧代码位置对非安全侧执行环境的代码进行修改,以使得所述非安全执行环境执行至所述旧代码位置时跳转执行所述新代码,从而实现用新代码替换旧代码的热补丁操作。
从以上技术方案可以看出,本申请具有以下优点:安全侧执行环境对补丁文件进行签名验证,保证补丁文件的发行方的可靠性,安全侧执行环境相对于非安全侧执行环境而言安全性更高,恶意代码难以对安全侧执行环境进行攻击并注入恶意代码,进而恶意代码很难绕过安全侧执行环境对补丁文件执行签名验证,因此,该热补丁方法能更可靠的确保补丁文件的发行方是可行的,提高了补丁文件的安全性,有效地阻止恶意代码的攻击。
结合本申请的第一方面,在第一方面的第一种可能的实现方式中,所述方法还包括:
所述安全侧执行环境将所述新代码的物理内存配置为非安全状态下不可写。
该实现方式中,将新代码的物理内存设置为非安全状态下不可写,从而使得非安全侧可执行环境无法修改新代码,实现对新代码的硬件保护进一步提高了本申请中热补丁方法的安全性。
结合本申请的第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述方法还包括:
所述安全侧执行环境对所述更新代码进行调整执行重定位操作,以使得所述新代码可以正常调用所述非安全侧执行环境中的函数。
该种实现方式中,由于非安全侧执行环境无法自主修改自身代码,因此由安全侧执行环境执行重定位操作以确保新代码可以正确调用其中引用的非安全执行环境中的现有函数。
结合本申请的第一方面、第一方面的第一种可能的实现方式、或第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述方法还包括:
所述安全侧执行环境将所述非安全侧执行环境的至少一部分物理内存配置为非安全状态不可写。
与新代码的硬件保护类似,对非安全侧执行环境也进行硬件保护,进一步提高非安全操作系统的安全性,通过硬件阻止恶意代码对非安全操作系统进行攻击。
结合本申请的第一方面、第一方面的第一种可能的实现方式、第一方面的第二种可能的实现方式,或第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,所述补丁文件由非安全可执行环境中转移至安全可执行环境中,并且所述补丁文件不具有代码修改能力。
该种实现方式中,补丁文件中不携带具有代码修改能力的可执行代码,可以有效地避免恶意代码携带于可执行代码中进入非安全操作系统造成安全隐患,从而降低引入补丁文件的安全风险。
第二方面,本申请实施例提供一种热补丁装置,该热补丁装置具有实现上述方法实施例中热补丁装置的行为功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
第三方面,本申请实施例提供一种终端,包括:处理器、存储器和总线该存储器用于存储计算机执行指令,该处理器与该存储器通过该总线连接,当该热补丁装置运行时,该处理器执行该存储器存储的该计算机执行指令,以使该终端执行如上述第一方面任意一项的热补丁方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,用于储存为上述热补丁装置所用的计算机软件指令,当其在计算机上运行时,使得计算机可以执行上述第一方面中任意一项的热补丁方法。
第五方面,本申请实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机可以执行上述第一方面中任意一项的热补丁方法。
另外,第二方面至第五方面中任一种设计方式所带来的技术效果可参见第一方面中不同设计方式所带来的技术效果,此处不再赘述。
附图说明
图1(a)为安卓系统的系统框架示意图;
图1(b)为Trust Zone的基本架构示意图;
图2为本申请中热补丁方法的一个实施例示意图;
图3(a)为本申请中热补丁方法的另一个实施例示意图;
图3(b)为本申请中安全侧执行环境重定位操作的一个示意图;
图4为本申请中热补丁装置的一个实施例示意图;
图5为本申请中热补丁装置的另一个实施例示意图;
图6为本申请中终端的一个硬件结构示意图。
具体实施方式
本申请提供了一种热补丁方法及热补丁装置,用于提高补丁文件的安全性,阻止恶意代码的攻击,降低引入补丁文件的安全风险。
下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本申请中所提及的操作系统具体可以是安卓系统等操作系统,对此本申请不做任何限制。安卓系统是目前使用最为广泛的操作系统之一,如图1(a)所示为安卓系统框架示意图,包括:应用层、应用框架层、系统运行库层和Linux内核层,其中,应用层:是用java语言编写的运行在虚拟机上的程序,比如Email客户端,SMS短消息程序,日历等;
应用框架层:这一层是编写谷歌发布的核心应用时所使用的应用程序编程接口(application programming interface,API)框架,开发人员同样可以使用这些框架来开发自己的应用,这样便简化了程序开发的结构设计,但是必须要遵守其框架的开发原则;
系统运行库(C/C++库以及安卓运行库)层:当使用安卓应用框架时,安卓系统会通过一些C/C++库来支持我们使用的各个组件,使其更好的为我们服务,比如其中的关系数据库(SQLite),Web浏览器引擎(Webkit);
Linux内核层:安卓的核心系统服务给予Linux2.6内核,如安全性、内存管理、进程管理、网络协议栈和驱动模型等都依赖于该内核。
为了便于理解,下面将结合图1(b)对Trust Zone的基本架构进行详细说明,如图1(b)所示为Trust Zone的基本架构示意图,可信执行环境(TEE,Trusted ExecutionEnvironment)是全球平台组织(GP,Global Platform)提出的概念,是基于ARM(AdvancedRISC Machines)的Trust Zone技术,且运行在设备中,提供介于富操作系统(Rich OS)和安全元素(SE,Secure Flement)之间的安全性框架。
其中,Rich OS:富操作系统,如:android的富执行环境,它可运行在智能手机、平板电脑和智能手表等移动设备上,并提供了非常丰富的功能接口,android的应用程序可通过这些功能接口实现各类需求,例如:无线通信、网上购物等。但其安全性相对较低,数据容易被窃取。
SE:安全元素,通常以芯片形式提供。为防止外部恶意解析攻击,保护数据安全,在芯片中具有加密/解密逻辑电路。
针对移动设备的开放环境,安全问题也越来越受到关注,不仅仅是终端用户,还包括服务提供者,移动运营商,以及芯片厂商。TEE(对应于Trusted OS,可信操作系统)是与设备上的REE(Rich Execution Environment,富执行环境,对应于Rich OS,通常是Android环境等)并存的运行环境,并且给Rich OS提供安全服务。它具有其自身的执行空间,比RichOS的安全级别更高,同时比SE(通常是智能卡)的成本更低,能够满足大多数应用的安全需求。
TEE与REE运行于同一个设备上时,TEE能够保证在可信的环境中进行敏感数据的存储、处理和保护,并为授权的安全软件(TA,Trusted application,可信应用)提供了安全的执行环境,通过执行保护、保密、完整和数据访问权限实现了端到端的安全。
其中,CA:客户端应用,是指第三方应用程序,运行于REE上。比较著名的应用商店有苹果的App Store,谷歌的Google Play Store,黑莓的BlackBerry App World,微软的Market place等。
TA:可信应用,是为REE中的CA提供安全服务所存在的,运行于TEE上。
TEE与Rich OS之间的接口称为TEE客户端API(application programminginterface,应用编程接口),GP于2010年对其进行了标准化,TA与Trusted OS之间的TEE内部API于2011年完成。当然,还有补充的功能性API,如:TEE功能API。
具体地,CA可通过通过位于REE中的TEE客户端API去访问TA,TEE可支持由不同提供商开发的相互独立执行的多个TA,通过TEE内部API,TA可获得对安全资源和服务的受控访问。TEE安全服务的示例包括:密钥存储和管理、加密、安全时钟、可信用户界面等。
需要说明的是,本申请中的安全侧可执行环境可以理解为上述所述的TEE或Trusted OS,也可以是其他安全性较高的执行环境,非安全侧执行环境可以理解为上述所述的REE或Rich OS,也可以是其他安全性较低的执行环境,对于上述执行环境本申请不做任何限制。
热补丁是指能够修复软件安全漏洞的一些代码,使用热补丁能快速、低成本的修复产品软件版本缺陷。为了便于理解本申请中的热补丁方法,结合以下实施例对本申请中的热补丁修复方法进行说明,具体如下:
实施例一,如图2所示,本申请热补丁方法的一个实施例包括:
201、安全侧执行环境验证补丁文件的签名。
安全侧执行环境(例如,上文中的可信执行环境TEE)利用私钥对补丁文件的签名进行核对,以验证补丁文件的发行方是否可信,若补丁文件通过签名验证,则确定该补丁文件的发行方是可信任发行方,安全侧执行环境执行步骤202;若未通过签名验证,则确定补丁文件的发行方是不可信发行方,安全侧执行环境停止对该补丁文件的加载操作。另外,补丁文件用于对非安全侧执行环境(例如,上文中的富执行环境REE)或安全侧执行环境中的代码进行安全漏洞修复。
可选的,上述补丁文件可以由非安全执行环境中传递至安全可执行环境中,或也可以预置在安全可执行环境中,对此本实施例不做任何限制。
在上述签名验证通过之后,安全侧执行环境还可以进一步对补丁文件执行完整性度量操作,以确保该补丁文件的完整性。
将补丁文件的签名验证设置在安全可执行环境中完成,由于安全侧执行环境的安全性较高,恶意代码难以攻击,可以确保补丁文件的签名验证操作不会由于恶意代码的篡改而不能执行,因此其安全性更高。
202、若补丁文件的签名通过验证,则安全侧执行环境对补丁文件进行解析,得到旧代码位置和新代码。
若补丁文件的签名验证通过,则安全侧执行环境(例如,上文中的可信执行环境TEE)对补丁文件进行解析,并得到补丁文件中携带的旧代码位置信息和新代码,其中,旧代码为存在安全漏洞,需要漏洞修复的待更新代码,新代码为对待更新中的安全漏洞进行修复后得到的更新代码,用于对待更新代码进行更新。
对补丁文件进行解析之后,直接获取存在安全漏洞的旧代码位置,以及安全漏洞修复后新代码,便可以直接根据旧代码位置,并使用新代码对安全漏洞进行修复,更加高效便捷。
203、安全侧执行环境根据旧代码位置对非安全侧执行环境的代码进行修改,以使得非安全侧执行环境执行至旧代码位置时,非安全侧执行环境跳转执行新代码。
具体的,安全侧执行环境在上述旧代码位置处新增一条转移指令,并且该转移指令的目的地址与新代码对应,使得非安全执行环境(例如,上文中的富执行环境REE)在代码执行过程中,执行至上述旧代码位置时不执行旧代码,而跳转执行新代码。
可选的,签名验证中所使用的私钥是一种常用的文件加密方式,私钥是通过非对称秘钥生成算法生成的,具体的非对称秘钥算法有很多,对此本申请不做限制,使用上述算法生成秘钥的同时,还会生成一把公钥用于发布给公众。
进一步,将上述私钥写入只能一次性写入的安全存储设备中进行保护。
由于一次性写入的安全存储设备具有只能在制造过程中执行一次写操作,制成之后之后便不可再次执行写操作,但能对该安全存储设备中的数据执行读操作,因此将私钥存储于上述安全存储设备中可以进一步提升上述安全性度量操作的安全性。
可选的,补丁文件用于对非安全侧执行环境的代码进行漏洞修复,并且该补丁文件不具有初始化代码(如module_init模块)和清除代码(如module_exit模块)等具有代码修改能力的可执行代码。可以理解的是,非安全侧执行环境对其代码进行修改需要补丁文件中携带具有代码修改能力的可执行代码才能实现,而本申请中由安全侧执行环境执行对非安全侧执行环境的代码进行修改,因此不需要非安全侧执行环境具有代码修改能力,同样,补丁文件也无需具有代码修改能力。
上述补丁文件中不携带具有代码修改能力的可执行代码,可以有效地避免恶意代码携带于可执行代码中进入非安全操作系统造成安全隐患,从而降低引入补丁文件的安全风险。
本实施例中,安全侧执行环境对补丁文件进行签名验证,保证补丁文件的安全性,安全侧执行环境进行签名验证相对于非安全侧执行环境进行签名验证而言,前者的安全性更高,恶意代码难以对安全侧执行环境进行攻击并注入恶意代码,绕过签名验证操作,从而提高了补丁文件的安全性,阻止恶意代码的攻击,降低了引入补丁文件的安全风险。
硬件产品的存储区域可根据“访问权限”的不同而划分为安全存储区域和非安全存储区域,其中,安全存储区域为通过设置“访问权限”使得其只能在安全状态下才能执行读和/或写操作的存储区域,例如安全存储区域可以是“访问权限”被设置为“安全状态可读,安全状态可写,非安全状态不可读,非安全状态不可写”的存储区域,非安全存储区域为通过访问权限的设置不仅可以在安全状态下执行读和/或写操作,也可以在非安全状态下执行读和/或写操作,例如非安全存储区域可以是将“访问权限”设置为“安全状态可读,安全状态可写,非安全状态可读,非安全状态可写”的存储区域。
实施例二,如图3(a)所示,本申请热补丁方法的另一个实施例包括:
301、非安全侧执行环境将补丁文件发送至安全可执行环境中。
当非安全侧执行环境中的代码存在安全漏洞需要修复时,非安全侧执行环境将用于修复上述安全漏洞的补丁文件发送至安全可执行环境中,以使得安全侧执行环境对补丁文件执行加载操作。具体的,Rich OS将补丁文件从REE中发送至TEE中。
302、安全侧执行环境验证补丁文件的签名。
303、若补丁文件的签名验证通过,则安全侧执行环境对补丁文件进行解析,得到旧代码位置和新代码。
步骤302和步骤303分别与上述步骤201和步骤202类似,对此此处不再赘述。
304、安全侧执行环境将新代码的物理内存配置为非安全状态不可写。
在安全侧执行环境对补丁文件进行解析得到更新代码之后,安全侧执行环境将新代码的物理内存的“访问权限”设置为“安全状态可读,安全状态可写,非安全状态不可读或可读,非安全状态不可写”,即将其配置为非安全状态下不可写。
可以理解的是,安全侧执行环境可以对新代码执行读和/或写操作;而非安全执行环境不能对新代码可以读但不可以写,可以理解非安全执行环境不能修改新代码。
用于存储并进行硬件保护的存储设备可以是内存控制器(double data ratecontroller,DDRC)硬件和动态内存子系统(dynamic memory subsystem,DMSS),当然也可以是其他具有相似功能的存储设备,对此本申请不做任何限制。具体实现方式可以是通过对DDRC硬件或DMSS硬件中存储区域的“访问权限”进行设置,具体设置方法此处不再赘述。
使用存储设备的安全存储区域对新代码进行硬件安全保护,使得非安全侧执行环境安全侧执行环境中任何修改新代码的操作均需要安全侧执行环境参与,否则非安全侧执行环境无法对更新代码做任何修改,对新代码进行硬件安全保护,进一步提高了安全性。
305、非安全侧执行环境向安全侧执行环境发送请求消息,该请求消息用于指示安全侧执行环境使能补丁文件。
非安全侧执行环境向安全侧执行环境发送请求消息,该请求消息用于指示安全侧执行环境使能补丁文件以使得补丁文件生效。
306、安全侧执行环境根据旧代码位置对非安全侧执行环境的代码进行修改,以使得非安全执行环境执行至旧代码位置时跳转执行新代码。
步骤306与上述步骤203类似,对此此处不再赘述。
可选的,安全侧执行环境将非安全侧执行环境所在的部分物理内存或全部物理内存配置为非安全状态不可写。
与上述新代码的物理内存配置方法类似,其相关描述可参见上述步骤304中的相关描述,对此此处不再赘述。
对非安全侧执行环境进行硬件保护,可以提高安全侧执行环境的安全性,使得非安全侧执行环境的相关操作均要在安全操作系统的参与,从而进一步提高非安全操作系统的安全性,通过硬件阻止恶意代码对非安全操作系统进行攻击。
可选的,安全侧执行环境对新代码执行重定位操作。
具体的,由于非安全执行环境具有地址随机化的特性,即每次加载时非安全执行环境中各个函数所在的位置不固定,热补丁提供的新代码调用非安全操作系统中的函数时,其目的地址是不确定的,需要根据加载的实际情况进行调整;
因此每次实施热补丁之前,安全执行环境对更新代码执行重定位操作,即修改热补丁新代码中的指令,将一些转移到非安全执行环境的转移指令的目的地址根据非安全执行环境加载时的实际地址进行修改,以使得对于每一次加载,新代码能够正确调用非安全执行环境的现存函数,安全操作系统可以利用以下方法进行重定位操作:
1.热补丁制作时,在补丁文件中标记所有转移到非安全侧执行环境中转移指令:标注指令的地址及期望的目的函数名;
2.非安全侧执行环境启动时,将每个函数的加载位置传递给安全侧执行环境;
3.热补丁加载时,安全操作系统根据补丁文件记录的转移到非安全侧执行环境中的转移指令列表对转移指令进行修改:从补丁文件中找到其目的函数名,根据函数名从非安全侧执行环境加载时传递过来的信息中找到函数的加载位置地址,安全侧执行环境将其目的地址修改为上述加载位置地址。
如图3(b)所示为重定位操作的一个示意图,新代码中从非安全侧执行环境中调用的函数一共有n个,其中n为不小于2的正整数,第一个函数Function1对应的调用地址为address1(ox1000,ox1100),第二个函数Function2对应的调用地址为address2(ox1300,ox1350),第N个函数FunctionN对应的调用地址为addressN(ox3000,ox3100),由于上述N个函数均位于非安全可执行环境中,addressl至addressN是非安全可执行环境中的地址,在非安全可执行环境重新加载之后,上述N个函数中的地址部分或全部发生改变,如第一个函数的地址addressl由(ox1000,ox1100)变为(ox1200,ox1300),第二个函数的地址address2由(ox1300,ox1350)变为(ox0900,ox0950),第N个函数的地址未发生改变,基于上述N个函数的实际地址改变,安全侧执行环境对新代码进行修改,具体修改为:将第一个函数Function1对应的调用地址改为addressl(ox1200,ox1300),第二个函数Function2对应的调用地址改为address2(ox1200,ox1300),第N个函数FunctionN对应的调用地址仍为(ox3000,ox3100),从而使得在非安全执行环境重新加载之后,新代码还能正确地调用非安全执行环境中的N个函数。
本实施例中,通过安全侧执行环境对补丁文件进行签名验证,当非安全侧执行环境受到恶意代码攻击时,也无法跳过上述签名验证机制,从而有效地阻止了恶意代码的攻击,提高安全性。
进一步地,利用DDRC硬件或DMSS硬件将非安全侧执行环境保护起来,消除非安全侧执行环境修改自身代码段的能力,当恶意代码攻击非安全侧执行环境时,恶意代码也不能利用非安全侧执行环境的代码修改能力对非安全侧执行环境的代码进行修改,进一步提高安全性。
再进一步地,由于本申请生成的补丁文件中没有可执行代码(如module_init模块和module_exit模块),恶意代码便不可能隐藏于补丁文件中对非安全侧执行环境的代码进行攻击,从而降低了引入补丁文件带来的新的安全风险。
上述实施例从两个方面对本申请中的热补丁方法进行了说明,下面将对本申请中的热补丁装置进行详细说明,具体如下:
实施例三,如图4所示,本申请中热补丁装置的一个实施例,包括:
完整性度量单元401,用于验证补丁文件的签名;
解析单元402,用于若上述补丁文件的签名核对通过验证,则上述安全侧执行环境对上述补丁文件进行解析,得到旧代码位置和新代码;
修改单元403,用于根据上述旧代码位置对非安全侧执行环境的代码进行修改,以使得上述非安全执行环境执行至上述旧代码位置时跳转执行上述新代码。
在一种示例中,如图5所示,上述热补丁装置还包括:
配置单元504,用于将上述更新代码的物理内存配置为非安全状态下不可写。
在一种示例中,如图5所示,上述系统还包括:
重定位单元505,用于对上述更新代码进行调整,以使得上述更新代码适应非安全侧执行环境安全侧执行环境已作出的调整。
在一种示例中,如图5所示,上述配置单元504还用于:
将上述非安全侧执行环境的至少一部分物理内存配置为非安全状态不可写。
在一种示例中,上述补丁文件由非安全可执行环境中转移至安全可执行环境中并且,上述补丁文件不具有代码修改能力。
本实施例中热补丁装置的有益效果与上述热补丁方法中相关部分的有益效果类似,可参见方法实施例部分的相关描述,对此此处不做任何限制。
综上所述,本申请提供了一种热补丁方法及热补丁装置。首先,本申请利用安全侧执行环境对补丁文件进行签名验证,保证补丁文件的安全性,安全侧执行环境相对于非安全侧执行环境而言,安全侧执行环境的安全性更高,恶意代码难以对安全侧执行环境进行攻击并注入恶意代码并绕过安全侧执行环境对补丁文件的签名验证操作;其次,使用的补丁文件中不具有初始化代码和清除代码等具有代码修改能力的可执行代码,使得补丁文件中不能隐藏恶意代码;最后,通过硬件设置对新代码进行保护,使得非安全侧执行环境中任何修改更新代码的操作均需要安全侧执行环境参与,否则非安全侧执行环境无法对更新代码做任何修改,因此,本申请中的热补丁方法及热补丁装置提高了补丁文件的安全性,阻止恶意代码的攻击,降低了引入补丁文件的安全风险。
本申请实施例中的热补丁装置可以包括手机、平板电脑、个人数字助理(PersonalDigital Assistant,PDA)、销售终端(Point of Sales,POS)、车载电脑等终端设备。
为了进一步理解热补丁装置,下面以手机终端为例,结合其硬件结构示意图对热补丁装置进行详细说明,具体如下:
实施例四,如图6所示,本申请实施例相关的终端100终端100的部分结构的框图。
终端100包括:RF(Radio Frequency,射频)电路110、存储器120、其他输入设备130、显示屏140、传感器150、音频电路160、I/O子系统170、处理器180、以及电源190等部件。本领域技术人员可以理解,图4中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。本领领域技术人员可以理解显示屏140属于用户界面(UI,User Interface),且终端100可以包括比图示或者更少的用户界面。
下面结合图4对终端100的各个构成部件进行具体的介绍:
RF电路110可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器180处理;另外,将设计上行的数据发送给基站。通常,RF电路包括但不限于天线、至少一个放大器、收发信机、耦合器、LNA(Low Noise Amplifier,低噪声放大器)、双工器等。此外,RF电路110还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于6SM(Global System of Mobilecommunication,全球移动通讯系统)、GPRS(General Packet Radio Service,通用分组无线服务)、CDMA(Code Division Multiple Access,码分多址)、WCDMA(Wideband CodeDivision Multiple Access,宽带码分多址)、LTE(Long Term Evolution,长期演进)、电子邮件、SMS(Short Messaging Service,短消息服务)等。
存储器120可用于存储软件程序以及模块,处理器180通过运行存储在存储器120的软件程序以及模块,从而执行终端100的各种功能应用以及数据处理。存储器120可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图象播放功能等)等;存储数据区可存储根据终端100的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
其他输入设备130可用于接收输入的数字或字符信息,以及产生与终端100的用户设置以及功能控制有关的键信号输入。具体地,其他输入设备130可包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆、光鼠(光鼠是不显示可视输出的触摸敏感表面,或者是由触摸屏形成的触摸敏感表面的延伸)等中的一种或多种。其他输入设备130与I/O子系统170的其他输入设备控制器171相连接,在其他设备输入控制器171的控制下与处理器180进行信号交互。
显示屏140可用于显示由用户输入的信息或提供给用户的信息以及终端100的各种菜单,还可以接受用户输入。具体的显示屏140可包括显示面板141,以及触控面板142。其中显示面板141可以采用LCD(Liquid Crystal Display,液晶显示器)、OLED(0rganicLight-Emitting Diode,有机发光二极管)等形式来配置显示面板141。触控面板142,也称为触摸屏、触敏屏等,可收集用户在其上或附近的接触或者非接触操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板142上或在触控面板142附近的操作,也可以包括体感操作;该操作包括单点控制操作、多点控制操作等操作类型。),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板142可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位、姿势,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成处理器能够处理的信息,再送给处理器180,并能接收处理器180发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板142,也可以采用未来发展的任何技术实现触控面板142。进一步的,触控面板142可覆盖显示面板141,用户可以根据显示面板141显示的内容(该显示内容包括但不限于,软键盘、虚拟鼠标、虚拟按键、图标等等),在显示面板141上覆盖的触控面板142上或者附近进行操作,触控面板142检测到在其上或附近的操作后,通过I/O子系统170传送给处理器180以确定用户输入,随后处理器180根据用户输入通过I/O子系统170在显示面板141上提供相应的视觉输出。虽然在图4中,触控面板142与显示面板141是作为两个独立的部件来实现终端100的输入和输入功能,但是在某些实施例中,可以将触控面板142与显示面板141集成而实现终端100的输入和输出功能。
终端100还可包括至少一种传感器150,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板141的亮度,接近传感器可在终端100移动到耳边时,关闭显示面板141和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于终端100还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路160、扬声器161,麦克风162可提供用户与终端100之间的音频接口。音频电路160可将接收到的音频数据转换后的信号,传输到扬声器161,由扬声器161转换为声音信号输出;另一方面,麦克风162将收集的声音信号转换为信号,由音频电路160接收后转换为音频数据,再将音频数据输出至RF电路108以发送给比如另一手机,或者将音频数据输出至存储器120以便进一步处理。
I/O子系统170用来控制输入输出的外部设备,可以包括其他设备输入控制器171、传感器控制器172、显示控制器173。可选的,一个或多个其他输入控制设备控制器171从其他输入设备130接收信号和/或者向其他输入设备130发送信号,其他输入设备130可以包括物理按钮(按压按钮、摇臂按钮等)、拨号盘、滑动开关、操纵杆、点击滚轮、光鼠(光鼠是不显示可视输出的触摸敏感表面,或者是由触摸屏形成的触摸敏感表面的延伸)。值得说明的是,其他输入控制设备控制器171可以与任一个或者多个上述设备连接。所述I/O子系统170中的显示控制器173从显示屏140接收信号和/或者向显示屏140发送信号。显示屏140检测到用户输入后,显示控制器173将检测到的用户输入转换为与显示在显示屏140上的用户界面对象的交互,即实现人机交互。传感器控制器172可以从一个或者多个传感器150接收信号和/或者向一个或者多个传感器150发送信号。
处理器180是终端100的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器120内的软件程序和/或模块,以及调用存储在存储器120内的数据,执行终端100的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器180可包括一个或多个处理单元;优选的,处理器180可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器180中。
终端100还包括给各个部件供电的电源190(比如电池),优选的,电源可以通过电源管理系统与处理器180逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗等功能。
尽管未示出,终端100还可以包括摄像头、蓝牙模块等,在此不再赘述。
存储器120用于存储计算机执行指令,当终端100运行时,处理器180执行存储器120存储的计算机执行指令,以使终端执行本申请实施例一或实施例二提供的热补丁方法。具体的调度方法可参考上文及附图中的相关描述,此处不予赘述。
本申请实施例还提供了一种计算机存储介质,用于储存为上述终端所用的计算机软件指令,当其在计算机上运行时,使得计算机可以执行上述终端所执行的热补丁方法。其中,该存储介质具体可以为上述存储器120。
本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机可以执行上述终端所执行的热补丁方法。
显然,本领域的技术人员应该明白,上述的本申请中安全操作系统的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案范围。

Claims (13)

1.一种热补丁方法,其特征在于,包括:
安全侧执行环境验证补丁文件的签名;
若所述补丁文件的签名通过验证,则所述安全侧执行环境对所述补丁文件进行解析,得到旧代码位置和新代码;
所述安全侧执行环境根据所述旧代码位置对非安全侧执行环境的代码进行修改,以使得所述非安全执行环境执行至所述旧代码位置时跳转执行所述新代码。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述安全侧执行环境将所述新代码的物理内存配置为非安全状态下不可写。
3.根据权利要求1或2所述的方法,所述方法还包括:
所述安全侧执行环境对所述新代码执行重定位操作,以使得所述新代码可以正常调用所述非安全侧执行环境中的函数。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述方法还包括:
所述安全侧执行环境将所述非安全侧执行环境的至少一部分物理内存配置为非安全状态不可写。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述补丁文件由非安全可执行环境中转移至安全可执行环境中,并且所述补丁文件不具有代码修改能力。
6.一种热补丁装置,其特征在于,包括:
完整性度量单元,用于验证补丁文件的签名;
解析单元,用于若所述补丁文件的签名通过验证,则对所述补丁文件进行解析,得到旧代码位置和新代码;
修改单元,用于根据所述旧代码位置对非安全侧执行环境的代码进行修改,以使得所述非安全执行环境执行至所述旧代码位置时跳转执行所述新代码。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
配置单元,用于将所述新代码的物理内存配置为非安全状态下不可写。
8.根据权利要求6或7所述的装置,其特征在于,所述装置还包括:
重定位单元,用于对所述新代码执行重定位操作,以使得所述新代码可以正常调用所述非安全侧执行环境中的函数。
9.根据权利要求7所述的装置,其特征在于,所述配置单元还用于:
将所述非安全侧执行环境的至少一部分物理内存配置为非安全状态不可写。
10.根据权利要求6至9中任一项所述的装置,其特征在于,所述补丁文件由非安全可执行环境中转移至安全可执行环境中,并且所述补丁文件不具有代码修改能力。
11.一种终端,其特征在于,所述终端包括:
处理器、存储器和总线;
所述总线,用于连接所述处理器和所述存储器;
所述存储器,用于存储操作指令;
所述处理器,用于通过调用所述操作指令,执行上述权利要求1至5中任一项所述的热补丁方法。
12.一种计算机可读存储介质,其特征在于,所述计算机存储介质用于存储计算机指令,当其在计算机上运行时,使得计算机可以执行上述权利要求1至5中任一项所述的热补丁方法。
13.一种计算机程序产品,其特征在于,包括计算机指令,当其在计算机上运行时,使得计算机可以执行上述权利要求1至5中任一项所述的热补丁方法。
CN201711087767.2A 2017-11-07 2017-11-07 一种热补丁方法及热补丁装置 Active CN109753793B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711087767.2A CN109753793B (zh) 2017-11-07 2017-11-07 一种热补丁方法及热补丁装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711087767.2A CN109753793B (zh) 2017-11-07 2017-11-07 一种热补丁方法及热补丁装置

Publications (2)

Publication Number Publication Date
CN109753793A true CN109753793A (zh) 2019-05-14
CN109753793B CN109753793B (zh) 2021-05-18

Family

ID=66400880

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711087767.2A Active CN109753793B (zh) 2017-11-07 2017-11-07 一种热补丁方法及热补丁装置

Country Status (1)

Country Link
CN (1) CN109753793B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110231953A (zh) * 2019-05-24 2019-09-13 厦门美柚信息科技有限公司 一种app执行远程代码的方法及系统
CN110543323A (zh) * 2019-09-11 2019-12-06 北京搜狐新动力信息技术有限公司 一种应用程序修复方法及装置
CN111562934A (zh) * 2020-04-03 2020-08-21 深圳震有科技股份有限公司 一种基于热补丁的软件系统升级方法、终端及存储介质
CN112286562A (zh) * 2020-10-28 2021-01-29 天津飞腾信息技术有限公司 一种可信操作系统调试更新方法及系统
CN116070219A (zh) * 2023-04-06 2023-05-05 北京紫光青藤微系统有限公司 用于写补丁的方法及系统、电子设备、存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7810159B2 (en) * 2005-06-14 2010-10-05 At&T Intellectual Property I, L.P. Methods, computer networks and computer program products for reducing the vulnerability of user devices
CN103885808A (zh) * 2014-04-08 2014-06-25 北京奇虎科技有限公司 热补丁处理方法及装置
CN103942073A (zh) * 2014-04-08 2014-07-23 北京奇虎科技有限公司 实现系统热补丁的方法及装置
CN105429760A (zh) * 2015-12-01 2016-03-23 神州融安科技(北京)有限公司 一种基于tee的数字证书的身份验证方法及系统
CN107301105A (zh) * 2016-04-14 2017-10-27 华为技术有限公司 校验热补丁或者动态库的方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7810159B2 (en) * 2005-06-14 2010-10-05 At&T Intellectual Property I, L.P. Methods, computer networks and computer program products for reducing the vulnerability of user devices
CN103885808A (zh) * 2014-04-08 2014-06-25 北京奇虎科技有限公司 热补丁处理方法及装置
CN103942073A (zh) * 2014-04-08 2014-07-23 北京奇虎科技有限公司 实现系统热补丁的方法及装置
CN105429760A (zh) * 2015-12-01 2016-03-23 神州融安科技(北京)有限公司 一种基于tee的数字证书的身份验证方法及系统
CN107301105A (zh) * 2016-04-14 2017-10-27 华为技术有限公司 校验热补丁或者动态库的方法及装置

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110231953A (zh) * 2019-05-24 2019-09-13 厦门美柚信息科技有限公司 一种app执行远程代码的方法及系统
CN110543323A (zh) * 2019-09-11 2019-12-06 北京搜狐新动力信息技术有限公司 一种应用程序修复方法及装置
CN111562934A (zh) * 2020-04-03 2020-08-21 深圳震有科技股份有限公司 一种基于热补丁的软件系统升级方法、终端及存储介质
CN111562934B (zh) * 2020-04-03 2023-08-11 深圳震有科技股份有限公司 一种基于热补丁的软件系统升级方法、终端及存储介质
CN112286562A (zh) * 2020-10-28 2021-01-29 天津飞腾信息技术有限公司 一种可信操作系统调试更新方法及系统
CN112286562B (zh) * 2020-10-28 2021-09-10 飞腾信息技术有限公司 一种可信操作系统调试更新方法及系统
CN116070219A (zh) * 2023-04-06 2023-05-05 北京紫光青藤微系统有限公司 用于写补丁的方法及系统、电子设备、存储介质

Also Published As

Publication number Publication date
CN109753793B (zh) 2021-05-18

Similar Documents

Publication Publication Date Title
US11120130B2 (en) Method and apparatus for protecting kernel control-flow integrity using static binary instrumentation
CN109753793A (zh) 一种热补丁方法及热补丁装置
CN104125216B (zh) 一种提升可信执行环境安全性的方法、系统及终端
Miller et al. iOS Hacker's Handbook
US9183606B1 (en) Trusted processing location within a graphics processing unit
CN106598584B (zh) 一种处理资源文件的方法、装置和系统
KR102327782B1 (ko) 전자 장치 및 커널 데이터 접근 방법
CN109614798B (zh) 安全启动方法、装置及终端设备
WO2018090818A1 (zh) 一种版本校验方法、装置及终端设备
CN107103211B (zh) Sdk发送、应用发布、应用运行方法及装置
CN109558734A (zh) 一种堆栈安全性的检测方法及装置、移动设备
CN104102500B (zh) 一种应用程序的进程启动方法及计算机系统
CN106663018A (zh) 在容器化工作空间环境中修改android应用生命周期以控制其执行的方法
US20130024930A1 (en) Executing Functions of a Secure Program in Unprivileged Mode
CN104965722B (zh) 一种显示信息的方法及装置
CN106709282B (zh) 资源文件解密方法及装置
WO2013159632A1 (zh) 实现安全防护的方法、防火墙、终端及可读存储介质
CN114327688B (zh) 基于微前端的数据处理方法、框架、存储介质及终端设备
Misra et al. Android security: attacks and defenses
CN107590397A (zh) 一种显示内嵌网页的方法和装置
US10650159B1 (en) Electronic device security through boot cycles
CN110147186A (zh) 一种应用的控制方法及终端设备
CN110457935A (zh) 一种权限配置方法及终端设备
CN106708555B (zh) 一种加载插件的方法和装置
CN106713319A (zh) 终端间的远程控制方法、装置、系统及移动终端

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 523808 Southern Factory Building (Phase I) Project B2 Production Plant-5, New Town Avenue, Songshan Lake High-tech Industrial Development Zone, Dongguan City, Guangdong Province

Applicant after: Huawei Device Co., Ltd.

Address before: 523808 Southern Factory Building (Phase I) Project B2 Production Plant-5, New Town Avenue, Songshan Lake High-tech Industrial Development Zone, Dongguan City, Guangdong Province

Applicant before: HUAWEI terminal (Dongguan) Co., Ltd.

SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant