CN115879064A - 一种程序运行方法、装置、处理器、芯片及电子设备 - Google Patents
一种程序运行方法、装置、处理器、芯片及电子设备 Download PDFInfo
- Publication number
- CN115879064A CN115879064A CN202211317344.6A CN202211317344A CN115879064A CN 115879064 A CN115879064 A CN 115879064A CN 202211317344 A CN202211317344 A CN 202211317344A CN 115879064 A CN115879064 A CN 115879064A
- Authority
- CN
- China
- Prior art keywords
- program
- white list
- container
- running
- trusted
- 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.)
- Pending
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
本申请实施例提供一种程序运行方法、装置、处理器、芯片及电子设备,其中方法包括:确定待运行的程序;将所述程序的程序信息传递给安全器件,以便所述安全器件根据所述程序的程序信息,将所述程序与白名单进行匹配;接收所述安全器件传递的匹配结果;如果所述匹配结果为所述程序与白名单相匹配,运行所述程序;如果所述匹配结果为所述程序与白名单不匹配,启动安全容器,在所述安全容器中运行所述程序。本申请实施例能够在保障计算机系统的安全性的情况下,避免白名单机制的较高虚警率,提升白名单机制下计算机系统运行程序的灵活性,从而在兼顾安全性和灵活性的情况下,实现程序运行。
Description
技术领域
本申请实施例涉及可信计算技术领域,具体涉及一种程序运行方法、装置、处理器、芯片及电子设备。
背景技术
可信计算(TrustedComputing)是一项由TCG(可信计算组)推动和开发的技术。可信计算的核心目标之一是保证计算机系统和程序的完整性,从而确保计算机系统和程序运行在可信状态。
可信计算涉及到程序的运行,因此如何在运行程序时保障计算机系统的安全性,并且提升计算机系统运行程序的灵活性,成为了本领域技术人员亟需解决的技术问题。
发明内容
有鉴于此,本申请实施例提供一种程序运行方法、装置、处理器、芯片及电子设备,以在运行程序时保障计算机系统的安全性,并且提升计算机系统运行程序的灵活性。
为实现上述目的,本申请实施例提供如下技术方案。
第一方面,本申请实施例提供一种程序运行方法,包括:
确定待运行的程序;
将所述程序的程序信息传递给安全器件,以便所述安全器件根据所述程序的程序信息,将所述程序与白名单进行匹配;
接收所述安全器件传递的匹配结果;
如果所述匹配结果为所述程序与白名单相匹配,运行所述程序;
如果所述匹配结果为所述程序与白名单不匹配,启动安全容器,在所述安全容器中运行所述程序。
第二方面,本申请实施例提供一种程序运行装置,包括:
程序确定模块,用于确定待运行的程序;
程序信息传递模块,用于将所述程序的程序信息传递给安全器件,以便所述安全器件根据所述程序的程序信息,将所述程序与白名单进行匹配;
匹配结果接收模块,用于接收所述安全器件传递的匹配结果;
程序运行模块,用于如果所述匹配结果为所述程序与白名单相匹配,运行所述程序;
安全容器运行程序模块,用于如果所述匹配结果为所述程序与白名单不匹配,启动安全容器,在所述安全容器中运行所述程序。
第三方面,本申请实施例提供一种处理器,所述处理器被配置为执行如上述第一方面所述的程序运行方法。
第四方面,本申请实施例提供一种芯片,所述芯片包括如上述第三方面所述的处理器。
第五方面,本申请实施例提供一种电子设备,所述电子设备包括如上述第四方面所述的芯片。
本申请实施例提供的程序运行方法中,当处理器需要运行程序时,处理器可将待运行的程序的程序信息传递给安全器件,由安全器件根据所述程序的程序信息,将所述程序与白名单进行匹配,确定匹配结果;进而,处理器可获得安全器件传递的匹配结果;如果匹配结果为所述程序与白名单相匹配,则处理器可正常运行所述程序;如果匹配结果为所述程序与白名单不匹配,则处理器可启动安全容器,从而在所述安全容器中运行所述程序,以使得与白名单不匹配的不可信程序能够在安全容器提供的安全可信环境中执行。本申请实施例提供的程序运行方法基于白名单机制实现,区别于白名单机制针对不可信程序进行告警、阻断运行的方式,本申请实施例针对与白名单不匹配的不可信程序,可启动安全容器,在安全容器中运行不可信程序;从而避免不可信程序为非恶意程序情况下,程序的错误告警和错误阻断运行;同时,就算不可信程序为恶意程序,本申请实施例通过安全容器提供的安全可信环境,也可使得恶意程序不易从安全容器中逃逸,避免恶意程序的运行对计算机系统的安全性影响。
可见,本申请实施例提供的程序运行方法,可在白名单机制下,利用安全容器运行与白名单不匹配的不可信程序,在保障计算机系统安全性的情况下,避免不可信程序为非恶意程序时的错误告警和错误阻断运行,提高计算机系统运行程序的灵活性。因此本申请实施例能够在保障计算机系统的安全性的情况下,避免白名单机制的较高虚警率,提升白名单机制下计算机系统运行程序的灵活性,从而在兼顾安全性和灵活性的情况下,实现基于白名单机制的程序运行。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为可信计算的关键技术示例图。
图2为可信计算的架构示例图。
图3为本申请实施例提供的程序运行方法的流程图。
图4为处理器、安全器件和操作系统的关系示例图。
图5为本申请实施例提供的在安全器件中设置白名单的方法流程图。
图6为处理器、安全器件、操作系统和可信服务器的关系示例图。
图7为本申请实施例提供的程序运行方法的另一流程图。
图8为本申请实施例提供的程序运行装置的框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
可信计算的基本思想是在计算机系统中建立信任根,然后从信任根开始,对硬件平台、操作系统、程序进行逐层度量,从而将计算的信任扩展到整个计算机系统;这个过程中同时采取安全防护措施,确保计算资源的数据完整性和行为的预期性,达到提高计算机系统的可信性效果。
可信计算涵盖硬件、软件以及网络等不同技术层面,图1示例性的示出了可信计算的关键技术示例图,如图1所示,可信计算涉及的关键技术主要包括:信任根110、可信平台模块120、信任链传递技术130、可信BIOS(Basic Input Output System,基本输入输出系统)技术140、可信计算软件栈技术150、可信网络连接技术160等。
其中,信任根110是可信计算的根基,也是实施安全控制的起点。TCG定义的信任根包括负责完整性度量的RTM(Root of Trust for Measurement,可信度量根)、负责报告信任根的RTR(Root of Trust for Report,可信报告根)、和负责存储信任根的RTS(Root ofTrust for Storage,可信存储根)。信任根的核心功能是对可信软件栈进行度量和验证,以确保可信性。
可信平台模块120是可信计算的信任根的一部分,其可以是一个例如SOC(Systemon Chip,系统级芯片)的芯片形式,包括处理器、存储器、输入输出、密码协处理器、随机数产生器和嵌入式操作系统等部件。可信平台模块具有密码运算和存储能力,能够提供密钥生成和公钥签名等功能,其内部带有非易失性存储器,能够永久保存用户身份信息或秘密信息。为便于理解,以可信平台模块120分为硬件平台和操作系统为例,图2示例性的示出了可信计算的架构示例图,如图2所示,可信计算涉及硬件平台210、操作系统220和程序230。
其中,硬件平台210涉及处理器211、安全器件212、BIOS213;在一个示例中,处理器211可以视为是计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元;例如,CPU(Central Processing Unit,中央处理器)、GPU(Graphics Processing Unit,图形处理器)、ASIC(Application Specific Integrated Circuit,专用集成电路)等。安全器件212可以是专用于数据安全的器件,例如专门设置的用于数据安全的安全处理器、可信芯片等。
需要进一步说明的是,BIOS可以基于可信计算的可信BIOS技术140,对计算机系统的输入、输出设备进行硬件级控制,其是连接软件类程序和硬件设备之间的枢纽。BIOS可以负责计算机系统上电后的各种硬件设备的检测初始化、操作系统装载引导、提供中断服务及设置系统参数等操作。在可能的实现中,针对高可信计算机系统,BIOS和安全器件(例如安全芯片)可共同构成计算机系统的物理信任根。
另外需要说明的是,信任链被用于描述计算机系统的可信性;基于可信计算的信任链传递技术130,计算机系统的信任链传递可从信任根开始,然后到硬件平台加电时的BIOS执行,再然后到图2所示的操作系统220的加载,最后到操作系统启动、以及图2所示的程序230的运行等一系列过程;信任链在上述过程中从信任根开始,逐层的进行传递,从而保证计算机系统的计算环境处于可信的状态。
进一步的,信任链可通过可信度量机制来获取各种影响可信平台模块的可信性的数据,并通过将这些数据与预期数据进行比较,来判断可信平台模块的可信性。此处所指的度量可以理解为是采集操作系统或程序的状态等数据,并验证采集的数据是否和参考数据一致,如果一致,则表示验证通过,如果不一致,则表示验证失败。
回到图2所示,在信任根的逐层传递过程中,信任根可从硬件平台210传递到操作系统220。操作系统220可以涉及硬件驱动221、内核222、API(Application ProgrammingInterface,程序编程接口)223等。其中,硬件驱动221可以涉及设备驱动和驱动程序等,用于对硬件平台的器件进行驱动;内核222是操作系统的核心部分,可用于管理存储器、文件、外设和系统资源等;API223可以是对接程序230的接口。程序230可以理解为是硬件平台210中的处理器211运行的软件程序等。
在可信计算中,操作系统和程序的安全性可由基于可信计算的可信计算软件栈技术150进行增强;可信计算软件栈可以理解为是可信计算的支撑软件,用来向其它软件提供使用安全器件的接口,并通过实现安全机制来增强操作系统和程序的安全性。进一步的,可信计算软件栈通过构造层次结构的安全可信协议栈来创建信任,其可以提供基本数据的私密性保护、平台识别和认证等功能。
进一步的,如果图2所示的架构还涉及到网络连接,则可基于可信计算的可信网络连接技术160来增强网络连接的安全性。可信网络连接技术160主要解决网络环境中终端主机等计算机系统的网络可信接入问题;例如,在计算机系统接入网络之前,可信网络连接技术可以检查计算机系统是否符合网络的接入策略,从而将可疑或有问题的计算机系统隔离或限制接入网络,直到计算机系统经过修改或采取相应的安全措施,使得计算机系统符合网络接入策略为止。
通过上文介绍可以看出,可信计算涉及到上层的程序运行,而程序可能是可信程序(例如安全程序,可信任的普通程序等),也可能是恶意程序(例如带有攻击性的病毒、攻击软件等),因此在程序运行时,需要识别程序是可信程序还是恶意程序,从而避免恶意程序在计算机系统中运行,保障计算机系统的安全性。
识别程序是可信程序还是恶意程序的一种方式是利用黑名单识别恶意程序,另一种方式是利用白名单识别可信程序,下面将分别进行介绍。
黑名单可以是用于记录恶意程序的信息的名单库,例如记录病毒软件的信息的病毒库等。如果计算机系统运行的程序记录在黑名单中,则程序可以视为是恶意程序,从而计算机系统可阻止程序运行,避免计算机系统因运行恶意程序而带来的安全风险。
白名单是与黑名单对应的概念,白名单可以理解为是在可信计算的规则下,用于记录允许执行的可信程序的名单库。例如,白名单的名单库中可记录可信程序的属性、进程名称、文件名称、数字签名等程序信息。在白名单机制的实现中,与白名单匹配的程序可视为是可信程序,可信程序能够在特定环境下运行;而如果计算机系统运行的程序与白名单不匹配,则程序为不可信程序,白名单机制针对不可信程序可以进行告警处理,严重时可采取阻断或删除程序的方式,从而最大限度的保证计算机系统的安全。
对比黑名单机制和白名单机制,白名单机制的部署和管理过程虽然较为困难,但是黑名单机制存在如下缺陷:
黑名单机制对恶意程序的识别依赖于病毒库等名单库,如果病毒库等名单库更新不及时,或者恶意程序为尚未记录在黑名单中的新恶意程序,则黑名单机制识别恶意程序的有效性将较差,从而导致黑名单机制的效力有限;
另外,随着病毒、木马等恶意程序的数量增多,这导致黑名单下的名录越来越庞大,利用黑名单识别恶意程序的工作量也随之增大,耗时也随之增多,因此利用黑名单识别恶意程序的速度和效率也相应的随之降低。
基于黑名单机制存在的上述缺陷,在信息化浪潮的背景下,利用白名单机制实现程序的安全运行成为了更好的一种选择;这是因为基于可信计算的白名单机制,能够从根本上解决计算机系统的安全隐患。例如,任何不在白名单中记录的程序(例如软件或者进程)在运行时会被告警或被阻止执行,严重时甚至能够提醒用户采取安全措施。需要说明的是,在信息化浪潮下,软件安全行业的攻防技术在不断升级,新型的安全威胁出现的频率也越来越高、危害也越来越大,这对于安全策略、安全产品提出了更加丰富的需求。
然而白名单机制的性能仍然有待提升,例如白名单机制虽然能够解决计算机系统的安全隐患,但是仍然存在如下缺陷:
与白名单不匹配的程序并不一定是恶意程序,例如,随着计算机系统的升级、应用的更新、网络的变化等情况,程序的信息会相应的变化,信息变化的程序虽然未记录在白名单中,但并不一定是恶意程序(即此时并没有恶意程序在攻击计算机系统);如果白名单机制针对与白名单不匹配的程序均进行告警处理,这将造成较高的虚警率(虚警率可以认为是虚假的告警概率)。而在白名单机制较高的虚警率下,用户可能需要逐个排查告警信息,导致用户无效的工作量增加。也就是说,白名单机制针对与白名单不匹配的程序均进行告警处理的方式,可能导致与白名单不匹配的程序不为恶意程序时的较高虚警率,存在计算机系统运行程序的灵活性较差的问题。
基于此,本申请实施例在白名单机制下,提供可信计算的程序运行方案,以在运行程序时保障计算机系统的安全性,并且提升计算机系统运行程序的灵活性,从而避免白名单机制下的较高虚警率,提升可信计算的性能。本申请实施例提供的程序运行方案,可以直接运行与白名单匹配的程序,并且采用安全容器运行与白名单不匹配的程序,从而在与白名单不匹配的程序不为恶意程序时,实现程序的运行,避免非恶意程序的虚假告警或者阻断运行;进一步的,就算与白名单不匹配的程序为恶意程序,由于与白名单不匹配的程序是采用安全容器运行,因此恶意程序也不易从安全容器中逃逸;从而本申请实施例可在白名单机制下,采用安全容器运行与白名单不匹配的程序,在保障计算机系统的安全性的情况下,避免白名单机制的较高虚警率,提升白名单机制下计算机系统运行程序的灵活性。
基于上述思路,图3示例性的示出了本申请实施例提供的程序运行方法的可选流程图,该方法流程可由处理器(例如CPU、GPU、ASIC等用于运行、执行程序的处理器)和安全器件(例如安全处理器、安全芯片等专用于数据安全的器件)执行实现,参照图3,该方法流程可以包括如下步骤。
在步骤S310中,处理器确定待运行的程序。
在步骤S311中,处理器将所述程序的程序信息传递给安全器件。
处理器在需要运行程序时,可确定当前待运行的程序以及该程序的程序信息,从而将该程序的程序信息传递给安全器件,以便安全器件进行白名单匹配。在一些实施例中,程序的程序信息可以包括程序的属性、进程名称、文件名称、和数字签名等信息中的至少一项。
在步骤S312中,安全器件根据所述程序的程序信息,将所述程序与白名单进行匹配,确定匹配结果。
在步骤S313中,安全器件将所述匹配结果传递给处理器。
在本申请实施例中,白名单由专用于数据安全的安全器件进行存储,从而避免白名单被非法篡改、攻击的可能。安全器件在获得处理器传递的程序的程序信息后,可根据程序的程序信息,将程序与白名单进行匹配,以确定程序是否记录在白名单中,从而得到匹配结果。在一些实施例中,安全器件可查询白名单是否记录程序的程序信息,以实现将程序与白名单进行匹配,得出匹配结果。作为可选实现,安全器件得出的匹配结果可能为程序与白名单相匹配(即程序为可信程序),也可能为程序与白名单不匹配。在程序与白名单不匹配时,程序为不可信程序,该不可信程序可能为信息变化的非恶意程序(例如由于计算机系统的升级、应用的更新、网络的变化等导致的程序的信息变化),也可能为恶意程序。
安全器件在得到匹配结果后,可将匹配结果传递给处理器,以便处理器对程序进行后续处理。
作为可选实现,安全器件可以是安全处理器等专用安全器件,安全处理器可以与运行程序的处理器相异构。在其他可选实现中,安全器件也可以是处理器(例如CPU)的特定安全模式。本申请实施例对于安全器件的具体设置方式并不设限,只要保障安全器件处于可信状态,不受操作系统的影响即可。
在步骤S314中,处理器若确定所述匹配结果为所述程序与白名单相匹配,运行所述程序。
在步骤S315中,处理器若确定所述匹配结果为所述程序与白名单不匹配,启动安全容器,在所述安全容器中运行所述程序。
处理器在获得安全器件传递的匹配结果后,基于匹配结果的不同情况,处理器可对程序进行不同的处理。如果匹配结果为程序与白名单相匹配,则程序为可信程序,处理器可正常运行程序;例如,处理器可利用操作系统,运行所述程序。如果匹配结果为程序与白名单不匹配,则程序为不可信程序,区别于处理器对不可信程序输出告警信息、甚至阻断程序运行的方式,处理器可启动安全容器,从而在安全容器中运行所述程序,使得程序在与白名单不匹配时,能够在安全容器提供的安全环境下运行;进而就算与白名单不匹配的程序为恶意程序时,由于恶意程序不易从安全容器中逃逸,因此可避免恶意程序对于计算机系统的安全性影响;同时,在与白名单不匹配的程序为信息变化的非恶意程序时,本申请实施例能够保障非恶意程序被运行,避免非恶意程序被告警或者阻断运行,避免较高的虚警率。
在一些实施例中,安全容器可以基于硬件的TEE(Trusted ExecutionEnvironment,可信执行环境)实现,并且安全容器对应的内存空间可由单独的密钥进行数据加密,从而使得与白名单不匹配的程序就算为恶意程序时,基于安全容器的硬件TEE实现和内存空间的单独密钥加密,恶意程序在安全容器中也无法通过缓冲区溢出等漏洞来攻击计算机系统或者其它程序,从而保障计算机系统的安全性。
需要说明的是,本申请实施例提供的用于运行与白名单不匹配的程序的容器为具有安全特性的安全容器,该安全容器具有基于硬件的TEE实现和内存空间使用单独密钥加密的特性,其区别于共享操作系统和文件系统的普通容器。
为便于理解,图4示例性的示出了处理器、安全器件和操作系统(OS)的关系示例图,如图4所示,处理器和安全器件可设置于硬件平台,针对处理器待运行的程序,如果安全器件确定程序与白名单匹配,则程序为可信程序,硬件平台可利用操作系统运行可信程序;如果安全器件确定程序与白名单不匹配,则程序为不可信程序,硬件平台可启动安全容器,并利用操作系统在安全容器中运行不可信程序。在一个实现示例中,图4所示的安全器件可以为与处理器相独立设置的硬件器件(例如安全处理器)。在其他可能的实现中,安全器件可通过处理器的模式切换实现,例如处理器切换安全模式,从而处于安全可信状态,进而由安全模式的处理器实现安全器件的功能。
作为可选实现,本申请实施例所指的安全容器可以是各种形式的机密计算沙盒,其具有基于硬件的TEE实现和内存空间单独加密的特性;例如,安全容器可以为加密kata容器,加密虚拟机等。需要说明的是,加密kata容器是一种带有加密性质的kata容器形式,例如kata容器不需要共享主机的硬件资源和内核,每个kata容器运行在独立的虚拟机上,从而kata容器之间通过不同虚拟机进行隔离,解决了kata容器之间的安全性和隔离问题;在此基础上,kata容器引入密钥的加密性质(例如加密kata容器为具有密钥的加密性质的kata容器),可使得kata容器具有更高的安全性,使得运行在kata容器中的程序不易逃逸。
加密虚拟机是基于安全虚拟化技术的虚拟机,加密虚拟机的内存空间可通过加密虚拟机的虚拟机密钥进行加密,从而保障加密虚拟机的数据安全性;进一步的,加密虚拟机的内存空间可通过硬件方式进行隔离(例如内存在硬件层面隔离出安全内存空间和普通内存空间,加密虚拟机的内存空间从安全内存空间中分配),保障加密虚拟机的内存空间在硬件隔离下具有安全性,无法被主机、其他虚拟机进行访问。
当然,上述示例的安全容器的形式仅是可选的,任意的具有硬件TEE的实现特性,以及内存空间单独使用密钥加密特性的机密计算沙盒,均可作为本申请实施例用于运行不可信程序的安全容器。上述性质的机密计算沙盒在硬件TEE的实现特性和内存空间单独使用密钥加密的情况下,具有可信状态,不会受到操作系统的影响。
需要进一步说明的是,本申请的发明人曾考虑利用单独的物理机、隔离网络等方式构建隔离环境,以运行不可信程序,但是单独的物理机、隔离网络的实现方式较为复杂,实现成本较高,并且安全性仍然有待提升。因此本申请的发明人在白名单机制下,独创性的利用安全容器来运行不可信程序,从而基于安全容器的硬件TEE特性和单独密钥性质,来实现不可信程序运行时的安全环境提供,保障不可信程序运行时的计算机系统安全,以及提高计算机系统运行程序的灵活性。
本申请实施例提供的程序运行方法中,当处理器需要运行程序时,处理器可将待运行的程序的程序信息传递给安全器件,由安全器件根据所述程序的程序信息,将所述程序与白名单进行匹配,确定匹配结果;进而,处理器可获得安全器件传递的匹配结果;如果匹配结果为所述程序与白名单相匹配,则处理器可正常运行所述程序;如果匹配结果为所述程序与白名单不匹配,则处理器可启动安全容器,从而在所述安全容器中运行所述程序,以使得与白名单不匹配的不可信程序能够在安全容器提供的安全可信环境中执行。本申请实施例提供的程序运行方法基于白名单机制实现,区别于白名单机制针对不可信程序进行告警、阻断运行的方式,本申请实施例针对与白名单不匹配的不可信程序,可启动安全容器,在安全容器中运行不可信程序;从而避免不可信程序为非恶意程序情况下,程序的错误告警和错误阻断运行;同时,就算不可信程序为恶意程序,本申请实施例通过安全容器提供的安全可信环境,也可使得恶意程序不易从安全容器中逃逸,避免恶意程序的运行对计算机系统的安全性影响。
可见,本申请实施例提供的程序运行方法,可在白名单机制下,利用安全容器运行与白名单不匹配的不可信程序,在保障计算机系统安全性的情况下,避免不可信程序为非恶意程序时的错误告警和错误阻断运行,提高计算机系统运行程序的灵活性。因此本申请实施例能够在保障计算机系统的安全性的情况下,避免白名单机制的较高虚警率,提升白名单机制下计算机系统运行程序的灵活性,从而在兼顾安全性和灵活性的情况下,实现基于白名单机制的程序运行。
在进一步的一些实施例中,本申请实施例可通过与可信服务器的交互,来获得白名单,进而将白名单设置于专用于数据安全的安全器件中。作为可选实现,图5示例性的示出了本申请实施例提供的在安全器件中设置白名单的可选方法流程图,该方法流程可由处理器、可信服务器和安全器件执行实现。
参照图5,该方法流程可以包括如下步骤。
在步骤S510中,处理器进行操作系统的初始化。
在步骤S511中,处理器对可信计算在操作系统初始化涉及的要素进行度量,根据度量结果生成可信报告。
处理器可在计算机系统上电等情况下,进行操作系统的初始化;在操作系统的初始化过程中,处理器可生成计算机系统的可信报告。在一些实施例中,处理器可对可信计算在操作系统初始化涉及的要素进行度量,从而根据度量结果生成可信报告。作为可选实现,可信计算在操作系统初始化涉及的要素可以是例如BIOS、GRUB(GRand UnifiedBootloader,GRand统一引导装载程序)和Kernel(内核)等要素;其中,GRUB是一个多重启动管理器,可以在多个操作系统共存时选择引导的操作系统,GRUB可以载入操作系统的内核和初始化操作系统,或者把引导权交给操作系统来完成引导。在可选实现中,本申请实施例可对BIOS、GRUB和Kernel进行度量。
需要说明的是,操作系统初始化时涉及的度量可以理解为是,采集要素在操作系统初始化时的数据,并将采集的数据与参考数据进行比对,从而得出度量结果。例如,本申请实施例可采集BIOS、GRUB和Kernel在操作系统初始化时的数据,从而将采集的BIOS、GRUB和Kernel的数据,与BIOS、GRUB和Kernel在操作系统初始化时的参考数据进行比对,得出度量结果。
处理器在得到度量结果后,可生成操作系统初始化对应的可信报告,并将可信报告传递给可信服务器进行处理。
在步骤S512中,处理器将所述可信报告传递给可信服务器。
在步骤S513中,可信服务器对所述可信报告进行正确性反馈,并向处理器传递反馈结果。
可信服务器在获得处理器传递的可信报告后,可验证可信报告的正确性,从而对可信报告进行正确性反馈,得出反馈结果。可信服务器的反馈结果可能是可信报告正确,也可能是可信报告异常。可信服务器可将得出的反馈结果传递给处理器,以便处理器基于反馈结果的不同情况进行不同的后续处理。
在步骤S514中,处理器如果确定反馈结果为可信报告异常,则进行关机处理。
处理器在获得可信服务器传递的反馈结果后,如果反馈结果指示处理器得出的可信报告异常,则处理器可确认操作系统初始化过程出现异常,处理器可终止计算机系统的开机处理流程,从而对计算机系统进行关机处理。
在步骤S515中,处理器如果确定反馈结果为可信报告正确,向可信服务器请求白名单。
在步骤S516中,可信服务器向处理器传递白名单。
处理器在获得可信服务器传递的反馈结果后,如果反馈结果指示处理器得出的可信报告正确,则处理器可确认操作系统初始化过程正确,从而处理器可继续从可信服务器请求程序的白名单,以便本申请实施例基于白名单机制的程序运行方案能够具有实现基础。
可信服务器在接收处理器请求白名单的请求后,可将程序的白名单传递给处理器。作为可选实现,可信服务器可基于程序的可信情况,定时及时的更新白名单中的记录,以使得白名单保持最新的可信程序记录。
在步骤S517中,处理器将白名单设置于安全器件中。
在步骤S518中,处理器完成操作系统的启动。
处理器在获得可信服务器传递的白名单后,可将白名单设置于安全器件中,以使得安全器件置入白名单,以便后续安全器件能够利用白名单对处理器运行的程序进行匹配处理。处理器在将白名单置入安全器件后,可完成操作系统的启动,从而在操作系统的初始化启动过程中,实现将白名单置入安全器件中。
为便于理解,图6示例性的示出了处理器、安全器件、操作系统和可信服务器的关系示例图,结合图4、图5和图6所示,处理器在操作系统的初始化过程中,可通过可信服务器获得白名单,并将白名单设置于安全器件中;进而,处理器在完成操作系统的初始化启动后,如果存在待运行的程序,则安全器件可根据程序的程序信息,将程序与白名单进行匹配;如果程序为与白名单匹配的可信程序,则处理器可利用已启动的操作系统,正常运行程序;如果程序为与白名单不匹配的不可信程序,则处理器可启动安全容器,利用操作系统在安全容器中运行不可信程序。
在进一步的一些实施例中,如果处理器待运行的程序为不可信程序,则程序可能为恶意程序,也可能为未记录在白名单中的非恶意程序,此时,本申请实施例可进一步识别不可信程序是否为恶意程序,从而在不可信程序为恶意程序时,输出告警信息和/或阻断程序运行,以避免计算机系统不必要的执行恶意程序,进而节约计算机系统的计算资源。
作为可选实现,站在处理器的角度,图7示例性的示出了本申请实施例提供的程序运行方法的另一可选流程图,该方法流程可由处理器执行实现,参照图7,该方法流程可以包括如下步骤。
在步骤S710中,确定待运行的程序。
在步骤S711中,将所述程序的程序信息传递给安全器件,以便安全器件根据所述程序的程序信息,将所述程序与白名单进行匹配。
在步骤S712中,接收安全器件传递的匹配结果。
在步骤S713中,如果匹配结果为所述程序与白名单相匹配,运行所述程序。
作为可选实现,步骤S710至步骤S713的介绍可参照前文相应部分的描述,此处不再赘述。
在步骤S714中,如果匹配结果为所述程序与白名单不匹配,判断所述程序是否为恶意程序,若是,执行步骤S715,若否,执行步骤S716。
本申请实施例在安全器件的匹配结果为程序与白名单不匹配时,可确认程序为不可信程序,基于不可信程序可能是恶意程序,也可能是非恶意程序,本申请实施例可进一步判断处理器待运行的程序是否为恶意程序,从而在程序为恶意程序时,输出告警信息和阻断程序运行,以节约计算机系统的计算资源。
在一些实施例中,本申请实施例可结合黑名单机制,根据程序的程序信息,将程序与黑名单进行匹配,从而判断程序是否为恶意程序。作为可选实现,黑名单可设置于安全器件中,安全器件可进一步根据程序的程序信息,将程序与黑名单进行匹配,从而得出黑名单的匹配结果;安全器件可将黑名单的匹配结果反馈给处理器,以使得处理器确定程序是否为恶意程序。在一个实现示例中,安全器件在将程序与白名单进行匹配时,如果确认程序与白名单不匹配,则可进一步将程序与黑名单进行匹配,从而得出程序与黑名单的匹配结果,并反馈给处理器;进而处理器可在基于安全器件反馈的白名单的匹配结果,确认程序与白名单不匹配时,进一步通过安全器件反馈的黑名单的匹配结果,确认程序是否为恶意程序。
在另一些实施例中,本申请实施例可根据程序在安全容器中历史运行时的采样信息,识别程序是否为恶意程序,从而在识别到程序为恶意程序时,输出告警信息并阻断程序运行;进一步的,处理器可在确认程序为恶意程序时,在黑名单中记录程序的程序信息(例如,处理器可向可信服务器发送黑名单的更新请求,以请求在黑名单中记录程序的程序信息)。
在步骤S715中,输出告警信息并阻断所述程序的运行。
本申请实施例在进一步确认与白名单不匹配的程序为恶意程序时,可输出告警信息并阻断程序的运行,从而阻断恶意程序不必要的运行,在保障计算机系统安全性的情况下,节约计算机系统的计算资源。
在步骤S716中,启动安全容器,在所述安全容器中运行所述程序。
本申请实施例在进一步确认与白名单不匹配的程序不为恶意程序时,可通过安全容器运行该程序,使得不为恶意程序但未记录在白名单中的程序,能够顺利被运行,从而精准的提升计算机系统运行程序的灵活性。
需要说明的是,图7所示方法流程是在确定程序与白名单不匹配时,进一步判断程序是否为恶意程序,进而在程序不为恶意程序时,才启动安全容器,在安全容器中运行程序。作为其他可能的实现方式,本申请实施例也可在确定程序与白名单不匹配时,先启动安全容器,并在所启动的安全容器中运行程序;进而在安全容器中运行程序的过程中,本申请实施例可判断程序是否为恶意程序;如果程序不为恶意程序,则维持在安全容器中运行程序;如果程序为恶意程序,则输出告警信息并阻断程序的运行。
也就是说,在一种实现方式中,本申请实施例可在确定程序与白名单不匹配,并且程序不为恶意程序时,启动安全容器,并在安全容器中运行程序。在另一种实现方式中,本申请实施例也可在确定程序与白名单不匹配时,就启动安全容器并在所启动的安全容器中运行程序;进而在程序运行过程中,判断程序是否为恶意程序(例如在程序运行过程中,根据程序在安全容器中历史运行时的采样信息,识别程序是否为恶意程序);如果程序为恶意程序,则阻断程序在安全容器中的运行,以避免计算机系统不必要的打开恶意程序,节约计算机系统的计算资源。
在一个实现示例中,以计算机系统通过浏览器程序打开网页为例,如果网页的网址或者网页的脚本与白名单不匹配,则计算机系统可启动安全容器,在安全容器中运行浏览器程序打开的网页,从而使得网页能够正常的被打开;就算浏览器打开的网页属于病毒网页等恶意程序,本申请实施例也可通过安全容器对浏览器程序打开的网页进行隔离,使得网页的程序无法逃逸,无法进行恶意攻击。进一步的,如果借助黑名单机制或者网页的采样信息,识别到浏览器程序打开的网页属于病毒网页等恶意程序,则计算机系统可输出告警信息并阻断浏览器程序打开该网页,避免计算机系统通过浏览器程序不必要的打开恶意网页,节约计算机系统的计算资源。
在进一步的一些实施例中,本申请实施例提供的方案对于蜜罐诱捕技术可以起到有效补充作用,可以比较安全、轻量级的来部署蜜罐诱捕技术。例如,利用安全容器来部署蜜罐诱捕技术,会比传统虚拟机或者主机形式的蜜罐诱捕技术更为轻量级,并且利用安全容器的加密特性,可以使得蜜罐诱捕技术捕获的恶意程序不容易逃逸。进一步的,本申请实施例在安全容器部署蜜罐诱捕技术的基础上,进一步结合白名单机制和黑名单机制也可使得恶意程序更容易被捕捉到。需要说明的是,蜜罐诱捕技术是由传统蜜罐技术演进而来,运用仿真技术形成诱捕环境,并通过一系列引诱和伪装手段,诱使攻击者将攻击目标转移到诱捕环境中;并对其采取拦截阻断、行为分析、追踪溯源等措施,从而实现保护自身真实业务环境的目的;与传统的蜜罐技术相比,蜜罐诱捕技术最大的区别在于防御过程由被动转为主动。
本申请实施例提供的程序运行方法,可通过安全器件(例如安全处理器)设置白名单,并进行程序与白名单的匹配,从而避免由软件进行白名单的匹配处理所带来的白名单易被篡改的安全风险;同时,针对与白名单不匹配的程序,本申请实施例可利用安全容器运行程序,保障与白名单不匹配的程序不会对计算机系统造成安全性威胁,并且使得与白名单不匹配但非恶意的程序能够被运行,提升计算机系统运行程序的灵活性。因此本申请实施例能够在兼顾安全性和灵活性的情况下,实现基于可信计算的程序运行。
下面对本申请实施例提供的程序运行装置进行介绍,下文描述的装置内容可以认为是处理器为实现本申请实施例提供的程序运行方法所需设置的功能模块,该功能模块可以是处理器的硬件功能逻辑,也可以是基于软件指令实现的功能逻辑。下文描述的程序运行装置的内容可与上文描述的内容相互对应参照。
作为可选实现,图8示例性的示出了本申请实施例提供的程序运行装置的可选框图,如图8所示,该装置可以包括:
程序确定模块810,用于确定待运行的程序;
程序信息传递模块811,用于将所述程序的程序信息传递给安全器件,以便所述安全器件根据所述程序的程序信息,将所述程序与白名单进行匹配;
匹配结果接收模块812,用于接收所述安全器件传递的匹配结果;
程序运行模块813,用于如果所述匹配结果为所述程序与白名单相匹配,运行所述程序;
安全容器运行程序模块814,用于如果所述匹配结果为所述程序与白名单不匹配,启动安全容器,在所述安全容器中运行所述程序。
在一些实施例中,所述安全容器为基于硬件的TEE实现的机密计算沙盒,并且,所述安全容器对应的内存空间采用单独的密钥进行加密。
在一些实施例中,所述安全容器包括:加密kata容器,或者加密虚拟机;
所述加密kata容器为具有密钥的加密性质的kata容器,其中,kata容器不需要共享主机的硬件资源和内核,并且每个kata容器运行在独立的虚拟机上,以使得kata容器之间通过不同虚拟机进行隔离;
所述加密虚拟机为基于安全虚拟化技术的虚拟机,所述加密虚拟机的内存空间通过加密虚拟机的虚拟机密钥进行加密,并且加密虚拟机的内存空间通过硬件方式进行隔离。
在一些实施例中,该装置还可用于:
在操作系统的初始化过程中,将白名单设置于安全器件。
在一些实施例中,该装置用于在操作系统的初始化过程中,将白名单设置于安全器件包括:
进行操作系统的初始化;
对可信计算在操作系统初始化涉及的要素进行度量,根据度量结果生成可信报告;
将所述可信报告传递给可信服务器,以便所述可信服务器对所述可信报告进行正确性反馈;
接收所述可信服务器传递的反馈结果,如果所述反馈结果为可信报告正确,向可信服务器请求白名单;
将可信服务器反馈的白名单,设置于安全器件中。
在进一步的一些实施例中,该装置还可用于:如果所述反馈结果为可信报告异常,进行关机处理。
在一些实施例中,该装置用于对可信计算在操作系统初始化涉及的要素进行度量包括:
对BIOS、GRUB和内核进行度量。
在一些实施例中,安全容器运行程序模块814,用于如果所述匹配结果为所述程序与白名单不匹配,启动安全容器,在所述安全容器中运行所述程序包括:
如果所述匹配结果为所述程序与白名单不匹配,判断所述程序是否为恶意程序;
如果所述程序不为恶意程序,启动安全容器,在所述安全容器中运行所述程序。
在进一步的一些实施例中,该装置还可用于:如果所述程序为恶意程序,输出告警信息并阻断所述程序的运行。
在另一些实施例中,安全容器运行程序模块814,用于如果所述匹配结果为所述程序与白名单不匹配,启动安全容器,在所述安全容器中运行所述程序包括:
如果所述匹配结果为所述程序与白名单不匹配,启动安全容器,并在所启动的安全容器中运行所述程序;
在所述安全容器中运行所述程序的过程中,判断所述程序是否为恶意程序;
如果所述程序不为恶意程序,维持在所述安全容器中运行所述程序。
在进一步的一些实施例中,该装置还可用于:如果所述程序为恶意程序,输出告警信息并阻断所述程序的运行。
在一些实施例中,安全容器运行程序模块814,用于判断所述程序是否为恶意程序包括:
根据安全器件反馈的黑名单的匹配结果,确认所述程序是否为恶意程序;其中,安全器件在将所述程序与白名单进行匹配时,如果确认所述程序与白名单不匹配,则将所述程序与黑名单进行匹配,以得出所述程序与黑名单的匹配结果;
或者,根据所述程序在安全容器中历史运行时的采样信息,识别程序是否为恶意程序。
本申请实施例进一步提供一种处理器,该处理器可通过设置上述所述的程序运行装置,以实现本申请实施例提供的程序运行方法。作为可选实现,该处理器可以被配置为执行如本申请实施例提供的由处理器执行的程序运行方法。
本申请实施例还提供一种芯片,该芯片包括如上述本申请实施例提供的处理器。
本申请实施例还提供一种电子设备,例如终端设备或者服务器设备,该电子设备是计算机系统的设备形式,在本申请实施例中,该电子设备可以包括如上文本申请实施例提供的芯片。
上文描述了本申请实施例提供的多个实施例方案,各实施例方案介绍的各可选方式可在不冲突的情况下相互结合、交叉引用,从而延伸出多种可能的实施例方案,这些均可认为是本申请实施例披露、公开的实施例方案。
虽然本申请实施例披露如上,但本申请并非限定于此。任何本领域技术人员,在不脱离本申请的精神和范围内,均可作各种更动与修改,因此本申请的保护范围应当以权利要求所限定的范围为准。
Claims (14)
1.一种程序运行方法,其特征在于,包括:
确定待运行的程序;
将所述程序的程序信息传递给安全器件,以便所述安全器件根据所述程序的程序信息,将所述程序与白名单进行匹配;
接收所述安全器件传递的匹配结果;
如果所述匹配结果为所述程序与白名单相匹配,运行所述程序;
如果所述匹配结果为所述程序与白名单不匹配,启动安全容器,在所述安全容器中运行所述程序。
2.根据权利要求1所述的程序运行方法,其特征在于,所述安全容器为基于硬件的可信执行环境TEE实现的机密计算沙盒,并且,所述安全容器对应的内存空间采用单独的密钥进行加密。
3.根据权利要求2所述的程序运行方法,其特征在于,所述安全容器包括:加密kata容器,或者加密虚拟机;
所述加密kata容器为具有密钥的加密性质的kata容器,其中,kata容器不需要共享主机的硬件资源和内核,并且每个kata容器运行在独立的虚拟机上,以使得kata容器之间通过不同虚拟机进行隔离;
所述加密虚拟机为基于安全虚拟化技术的虚拟机,所述加密虚拟机的内存空间通过加密虚拟机的虚拟机密钥进行加密,并且加密虚拟机的内存空间通过硬件方式进行隔离。
4.根据权利要求1-3任一项所述的程序运行方法,其特征在于,还包括:
在操作系统的初始化过程中,将白名单设置于安全器件。
5.根据权利要求4所述的程序运行方法,其特征在于,所述在操作系统的初始化过程中,将白名单设置于安全器件包括:
进行操作系统的初始化;
对可信计算在操作系统初始化涉及的要素进行度量,根据度量结果生成可信报告;
将所述可信报告传递给可信服务器,以便所述可信服务器对所述可信报告进行正确性反馈;
接收所述可信服务器传递的反馈结果,如果所述反馈结果为可信报告正确,向可信服务器请求白名单;
将可信服务器反馈的白名单,设置于安全器件中。
6.根据权利要求5所述的程序运行方法,其特征在于,还包括:
如果所述反馈结果为可信报告异常,进行关机处理。
7.根据权利要求5所述的程序运行方法,其特征在于,所述对可信计算在操作系统初始化涉及的要素进行度量包括:
对基本输入输出系统BIOS、GRand统一引导装载程序GRUB和内核进行度量。
8.根据权利要求1所述的程序运行方法,其特征在于,所述如果所述匹配结果为所述程序与白名单不匹配,启动安全容器,在所述安全容器中运行所述程序包括:
如果所述匹配结果为所述程序与白名单不匹配,判断所述程序是否为恶意程序;
如果所述程序不为恶意程序,启动安全容器,在所述安全容器中运行所述程序;
所述方法还包括:
如果所述程序为恶意程序,输出告警信息并阻断所述程序的运行。
9.根据权利要求1所述的程序运行方法,其特征在于,所述如果所述匹配结果为所述程序与白名单不匹配,启动安全容器,在所述安全容器中运行所述程序包括:
如果所述匹配结果为所述程序与白名单不匹配,启动安全容器,并在所启动的安全容器中运行所述程序;
在所述安全容器中运行所述程序的过程中,判断所述程序是否为恶意程序;
如果所述程序不为恶意程序,维持在所述安全容器中运行所述程序;
所述方法还包括:
如果所述程序为恶意程序,输出告警信息并阻断所述程序的运行。
10.根据权利要求8或9所述的程序运行方法,其特征在于,所述判断所述程序是否为恶意程序包括:
根据安全器件反馈的黑名单的匹配结果,确认所述程序是否为恶意程序;其中,安全器件在将所述程序与白名单进行匹配时,如果确认所述程序与白名单不匹配,则将所述程序与黑名单进行匹配,以得出所述程序与黑名单的匹配结果;
或者,根据所述程序在安全容器中历史运行时的采样信息,识别所述程序是否为恶意程序。
11.一种程序运行装置,其特征在于,包括:
程序确定模块,用于确定待运行的程序;
程序信息传递模块,用于将所述程序的程序信息传递给安全器件,以便所述安全器件根据所述程序的程序信息,将所述程序与白名单进行匹配;
匹配结果接收模块,用于接收所述安全器件传递的匹配结果;
程序运行模块,用于如果所述匹配结果为所述程序与白名单相匹配,运行所述程序;
安全容器运行程序模块,用于如果所述匹配结果为所述程序与白名单不匹配,启动安全容器,在所述安全容器中运行所述程序。
12.一种处理器,其特征在于,所述处理器被配置为执行如权利要求1-10任一项所述的程序运行方法。
13.一种芯片,其特征在于,所述芯片包括如权利要求12所述的处理器。
14.一种电子设备,其特征在于,所述电子设备包括如权利要求13所述的芯片。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211317344.6A CN115879064A (zh) | 2022-10-26 | 2022-10-26 | 一种程序运行方法、装置、处理器、芯片及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211317344.6A CN115879064A (zh) | 2022-10-26 | 2022-10-26 | 一种程序运行方法、装置、处理器、芯片及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115879064A true CN115879064A (zh) | 2023-03-31 |
Family
ID=85758989
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211317344.6A Pending CN115879064A (zh) | 2022-10-26 | 2022-10-26 | 一种程序运行方法、装置、处理器、芯片及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115879064A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117610047A (zh) * | 2023-11-29 | 2024-02-27 | 长扬科技(北京)股份有限公司 | 一种工控终端的安全防护方法及装置 |
-
2022
- 2022-10-26 CN CN202211317344.6A patent/CN115879064A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117610047A (zh) * | 2023-11-29 | 2024-02-27 | 长扬科技(北京)股份有限公司 | 一种工控终端的安全防护方法及装置 |
CN117610047B (zh) * | 2023-11-29 | 2024-05-31 | 长扬科技(北京)股份有限公司 | 一种工控终端的安全防护方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11947688B2 (en) | Secure computing system | |
US10162975B2 (en) | Secure computing system | |
US9087199B2 (en) | System and method for providing a secured operating system execution environment | |
US11714910B2 (en) | Measuring integrity of computing system | |
US7953980B2 (en) | Signed manifest for run-time verification of software program identity and integrity | |
US9455955B2 (en) | Customizable storage controller with integrated F+ storage firewall protection | |
US8364973B2 (en) | Dynamic generation of integrity manifest for run-time verification of software program | |
US8474032B2 (en) | Firewall+ storage apparatus, method and system | |
US10956575B2 (en) | Determine malware using firmware | |
US8886929B2 (en) | Generating a chain of trust for a virtual endpoint | |
US20060026418A1 (en) | Method, apparatus, and product for providing a multi-tiered trust architecture | |
CN110334521A (zh) | 可信计算系统构建方法、装置、可信计算系统及处理器 | |
US11636214B2 (en) | Memory scan-based process monitoring | |
KR20220090537A (ko) | 정책 적용을 위한 가상 환경 유형 검증 | |
CN115879064A (zh) | 一种程序运行方法、装置、处理器、芯片及电子设备 | |
CN113641463A (zh) | 虚拟化系统可信认证方法、系统及计算机可读存储介质 | |
KR20200041639A (ko) | 차량용 소프트웨어 업데이트 장치 및 그 제어 방법 | |
Guo et al. | Building trust in container environment | |
Grizzard | Towards self-healing systems: re-establishing trust in compromised systems | |
Wang et al. | Kernel and application integrity assurance: Ensuring freedom from rootkits and malware in a computer system | |
Yalew | Mobile device security with ARM TrustZone | |
Gu et al. | Outlier: Enabling Effective Measurement of Hypervisor Code Integrity With Group Detection | |
Liu et al. | TZEAMM: An Efficient and Secure Active Measurement Method Based on TrustZone | |
Wang et al. | Coprocessor-based hierarchical trust management for software integrity and digital identity protection | |
Li | System design and verification methodologies for secure computing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |