掌桥专利:专业的专利平台
掌桥专利
首页

系统完整性的保护方法、装置及电子设备

文献发布时间:2024-04-18 20:02:40


系统完整性的保护方法、装置及电子设备

技术领域

本申请属于信息处理技术领域,具体涉及一种系统完整性的保护方法、装置及电子设备。

背景技术

由于电子设备的一些操作系统如安卓系统的特殊性,其承受的来自用户空间的系统攻击风险比较高,从随意安装的应用到浏览的网页内容,操作系统无时无刻不暴露在纷繁复杂的攻击之中。同时,系统开源的特性和良莠不齐的上游硬件提供商又加剧了操作系统安全的不确定性。且,电子设备的操作系统默许动态更新的特性导致操作系统的文件存在低完整性的可能性,因此,需要对操作系统的文件进行完整性保护。

发明内容

本申请实施例的目的是提供一种系统完整性的保护方法、装置及电子设备,以实现对操作系统的文件进行完整性保护。

第一方面,本申请实施例提供了一种系统完整性的保护方法,所述方法包括:

确定系统的第一主体的等级和系统的第二主体的等级;

在所述第二主体访问所述第一主体的文件的情况下,根据所述第一主体的等级和所述第二主体的等级,确定影响所述第一主体的文件完整性的第一信息流,或,确定影响所述第二主体的文件完整性的第二信息流;

根据所述第一主体的等级和所述第一信息流对所述第一主体的文件进行完整性保护,或,根据所述第二主体的等级和所述第二信息流对所述第二主体的文件进行完整性保护。

第二方面,本申请实施例提供了一种系统完整性的保护装置,所述装置包括:

第一确定模块,用于确定系统的第一主体的等级和系统的第二主体的等级;

第二确定模块,用于在所述第二主体访问所述第一主体的文件的情况下,根据所述第一主体的等级和所述第二主体的等级,确定影响所述第一主体的文件完整性的第一信息流,或,确定影响所述第二主体的文件完整性的第二信息流;

完整性保护模块,用于根据所述第一主体的等级和所述第一信息流对所述第一主体的文件进行完整性保护,或,根据所述第二主体的等级和所述第二信息流对所述第二主体的文件进行完整性保护。

第三方面,本申请实施例提供了一种电子设备,该电子设备包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如第一方面所述的系统完整性的保护方法的步骤。

第四方面,本申请实施例提供了一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如第一方面所述的系统完整性的保护方法的步骤。

第五方面,本申请实施例提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现如第一方面所述的系统完整性的保护方法的步骤。

第六方面,本申请实施例提供了一种计算机程序产品,该程序产品被存储在存储介质中,该程序产品被至少一个处理器执行以实现如第一方面所述的系统完整性的保护方法的步骤。

在本申请实施例中,通过划分系统的主体的等级,并捕获文件访问过程中影响主体的文件完整性的信息流,根据主体的等级和捕获的影响该主体的文件完整性的信息流,对该主体的文件进行完整性保护,从而实现对操作系统的文件进行完整性保护。且,由于捕获的是文件访问过程中影响主体的文件完整性的信息流,该信息流更能符合流入该主体的文件的信息流实际情况,因此,根据该信息流进行主体的文件完整性保护,可以在达到更高水平的文件完整性保护的情况下减少系统性能开销

附图说明

图1是本申请的一些实施例提供的系统完整性的保护方法的流程图;

图2是主体的层级和等级的划分示意图;

图3是BIBA模型的信息流动示意图;

图4是不同等级选取的完整性模型示意图;

图5是不同等级选取的保护机制示意图;

图6是本申请的一些实施例提供的系统完整性的保护装置的结构示意图;

图7是本申请的一些实施例提供的电子设备的结构示意图;

图8为本申请的一些实施例提供的电子设备的硬件结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员获得的所有其他实施例,都属于本申请保护的范围。

本申请的说明书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。

下面结合附图,通过具体的实施例及其应用场景对本申请实施例提供的系统完整性的保护方法进行详细地说明。

需要说明的是,本申请实施例提供的系统完整性的保护方法应用于电子设备,该电子设备可以具有操作系统,该操作系统可以为安卓(Android)操作系统,可以为ios操作系统,还可以为其他可能的操作系统,本申请实施例不作具体限定。

图1是本申请实施例提供的系统完整性的保护方法的流程图,如图1所示,包括以下步骤:

步骤101,确定系统的第一主体的等级和系统的第二主体的等级。

系统可以指的是操作系统,主体可以指的是用户或用户运行的进程,电子设备的操作系统可以部署有程序、服务、组件等,这些运行的程序、服务、组件可以称为操作系统的主体。而与主体对应的是对象,称之为客体,对象是系统中的资源或数据,操作系统的文件可以是主体操作对象,操作系统的主体可以对操作系统的文件进行访问,其中,访问可以包括修改操作即写操作和读操作。

主体不仅能对自身的客体进行管理,还能访问其他主体的文件,第一主体的等级即表征第一主体对其他主体的文件的访问等级,其是依据第一主体对其他主体的访问权限高低来进行划分的。第二主体的等级即表征第二主体对其他主体的文件的访问等级,其是依据第二主体对其他主体的访问权限高低来进行划分。

其中,第一主体和第二主体可以是操作系统的任意两个不同的主体,访问权限是主体针对对象的可能操作,主体的文件可以包括可执行文件、动态代码、配置文件、相关驱动等等。

主体的访问权限越高,主体的等级可以越高,高等级对应主体对低等级对应主体在访问上有对其的控制能力,即高等级对应主体可读写低等级对应主体的文件,如主体root可读写所有其他主体的文件,主体system可读写大部分应用主体的文件,其也可以表现为高等级对应主体对低等级对应主体有双向的信息流,因此,在一可选实施方式中,可以通过主体进行文件访问的信息流流向,来刻画判断主体的等级,以进行主体等级的划分,从而得到第一主体的等级和第二主体的等级。

在另一可选实施方式中,可以根据主体对文件的访问控制策略,对主体进行层级的划分,以基于主体的层级进行其等级的划分,从而得到第一主体的等级和第二主体的等级。可选的,所述步骤101具体包括:

根据操作系统的各主体对文件的访问控制策略,对操作系统的各主体进行层级的划分;

根据所述各主体的层级和所述各主体对文件的访问控制策略,确定所述各主体的等级。

其中,层级是主体访问控制的层级,可选的,所述根据操作系统的各主体对文件的访问控制策略,对操作系统的各主体进行层级的划分,包括:

根据所述各主体在自主访问控制中的主体标识,对所述各主体进行层级的第一划分。

即在一可选实施方式中,可以根据自主访问控制(Discretionary AccessControl,DAC)的主体标识(user id,uid)进行主体的层级的划分,分别被划分为L 0、1、2…。其中,DAC是一种访问控制方式,由客体的属主对自己的客体进行管理,由属主自己决定是否将自己的客体访问权或部分访问权授予其他主体,这种控制方式是自主的。也就是说,在自主访问控制下,用户可以按自己的意愿,有选择地与其他用户共享他的文件。

若某主体标识uid对应主体涉及较多低完整性的信息流,可选的,所述根据操作系统的各主体对文件的访问控制策略,对操作系统的各主体进行层级的划分之后,所述方法还包括:

在所述各主体中包括目标主体的情况下,根据所述目标主体在强制访问控制中的主体标识和所述第一划分得到的所述目标主体的层级,对所述目标主体进行层级的第二划分;

其中,所述各主体的层级包括所述目标主体分别经过所述第一划分和第二划分得到的层级和其他主体经过所述第一划分得到的层级,目标主体对操作系统的文件进行访问控制的目标信息流大于第一预设阈值。

即在另一可选实施方式中,若某主体标识uid对应主体涉及较多低完整性的信息流,如应用程序app、特殊服务组件等,可以使用强制访问策略(Mandatory AccessControl,MAC)/SELinux中的主体标识,在第一划分得到的目标主体的层级的基础上,对目标主体进行层级的进一步细化划分即第二划分,如目标主体在强制访问策略中的主体标识uid为system和system app,目标主体的层级L1000被进一步划分为L1000和L1000.1,带有.的层级是具有较多低完整性信息流的层级。

其中,第一预设阈值可以根据实际情况进行设置,这里不进行具体限定。

可以通过捕获主体在文件访问过程中所流入的目标信息流,也可以从系统设计角度,来判断主体对操作系统的文件进行访问控制的目标信息流是否大于第一预设阈值。比如,从系统设计角度来考虑,若主体程序上部署有很多用户网络接口,可以判定该主体可能会涉及较多低完整性的信息流,使得该主体对操作系统的文件进行访问控制的目标信息流可能会大于第一预设阈值。其中,目标信息流可以为影响主体的文件完整性的信息流,即低完整性的信息流。

可以结合主体的层级和访问控制策略进行等级的划分,其中,访问控制策略可以指示主体能够访问控制其他哪些主体。比如,主体标识uid=0时,该主体从访问控制策略来看,其可以任意读写其他层级对应主体的文件,可知,其层级显然高于其他层级,因此,可以将层级L0划入等级S0,表征访问权限最高的等级。又如,对于安卓系统,层级L1000显然高于层级L10000+,因此,可以将L1000划入等级S1,L1000.1划入等级S1.1;L10000+划入等级S2。其中,等级从高至低为S0,S1,S1.1,S2。

另外,对于没有明确高低关系的层级,则可以不进行等级的划分,其中,若访问控制策略表征一主体无访问控制的从属关系,即找不到其他主体可以访问该主体文件,以及该主体可以访问其他主体文件,则可以确定该主体是没有明确高低关系的层级。

图2是主体的层级和等级的划分示意图,如图2所示,对于安卓系统来说,采用DAC和MAC/SELinux结合的访问控制,主体标识uid=0为root的主体,其层级被划分为L0,0<主体标识uid<1000为特殊组件/服务的主体,其层级分别被划分为L1-999,主体标识uid=1000为system的主体,其层级被划分为L1000,主体标识uid=10000以上为普通应用主体,其层级被划分为L10000+。由于L1000存在很多低完整性信息流的应用,因此,存在相应的Li.1如system app为L1000.1。并且,root的主体拥有其他主体文件的读写权限,system的主体拥有普通应用主体的一些文件的读写特权,且普通应用主体的行为依赖于system的主体,因此可以分层为S(L0)=S0,S(L1000)=S1,S(L1000.1)=S1.1,S(L10000+)=S2。而对于L1-999,一方面由于其没有读写层级L1000之后的其他主体的权限,另一方面其有过多外部低完整性的信息流,因此可以将其划分为S2。

在划分操作系统的各主体的等级的情况下,相应可以得到第一主体的等级和第二主体的等级。比如,第一主体为system的主体,第二主体为普通应用主体,第一主体的等级可以划分为S1,第二主体的等级可以划分为S2。

步骤102,在所述第二主体访问所述第一主体的文件的情况下,根据所述第一主体的等级和所述第二主体的等级,确定影响所述第一主体的文件完整性的第一信息流,或,确定影响所述第二主体的文件完整性的第二信息流。

访问可以指的是读操作和或写操作,即第二主体修改第一主体的文件,和或第二主体读取第一主体的文件。第二主体在一时间可以仅修改第一主体的文件,或仅读取第一主体的文件,第二主体也可以在一时间同时修改和读取第一主体的文件。由于给不同主体设置了不同的等级,因此可以更准确的获取影响不同主体的文件完整性的信息流。

由于第一主体和第二主体可以为操作系统的各主体中任意两个不同主体,因此,实际情况下,在一时间也存在第一主体访问第二主体的文件的情况,也即第一主体和第二主体的访问是相互的。

第一信息流和第二信息流指的是主体和客体之间存在的影响文件完整性的数据流,在一些实施例中,第一信息流可以包括动态信息流,动态信息流指的是操作系统运行时实际出现的信息流。可选的,所述步骤102具体包括:

在所述第二主体访问所述第一主体的文件的情况下,根据所述第一主体的等级和所述第二主体的等级,获取影响所述第一主体的文件完整性的动态信息流;其中,所获取的动态信息流是由于第二主体对第一主体的文件的该访问导致的;

确定影响所述第一主体的文件完整性的第一信息流包括所述影响所述第一主体的文件完整性的动态信息流。

在信息流捕获过程中,所捕获的信息流是影响主体的文件完整性的信息流,其中,影响文件完整性的信息流的流入方式可以包括下读和上写。下读指的是读取比读控制的主体的等级低的其他等级对应主体文件,上写则是被比主体等级低的其他等级对应的主体写。需要说明的是,通常情况下,等级越高,其文件完整性越高,等级越低,其文件完整性越低,即文件高完整性的主体去读取文件低完整性的主体文件,将会引入低完整性的信息流。

可选的,所述在所述第二主体访问所述第一主体的文件的情况下,根据所述第一主体的等级和所述第二主体的等级,获取影响所述第一主体的文件完整性的动态信息流,包括:

在所述第二主体修改所述第一主体的文件的情况下,若所述第一主体的等级大于所述第二主体的等级,获取影响所述第一主体的文件完整性的动态信息流。

也就是说,其捕获的是第二主体上写第一主体的文件所导致的影响第一主体的文件完整性的动态信息流。

可选的,所述方法还包括:

在所述第一主体读取所述第二主体的文件的情况下,若所述第一主体的等级大于所述第二主体的等级,获取影响所述第一主体的文件完整性的动态信息流。

也就是说,其捕获的是第一主体下读第二主体的文件所导致的影响第一主体的文件完整性的动态信息流。

其中,第一信息流可以包括:由于第二主体上写第一主体的文件而导致的影响所述第一主体的文件完整性的动态信息流,以及由于第一主体下读第二主体的文件而导致的影响所述第一主体的文件完整性的动态信息流。

在一些实施例中,第二信息流可以包括动态信息流,可选的,所述步骤102具体包括:

在所述第二主体访问所述第一主体的文件的情况下,根据所述第一主体的等级和所述第二主体的等级,获取影响所述第二主体的文件完整性的动态信息流;

确定影响所述第二主体的文件完整性的第二信息流包括所述影响所述第二主体的文件完整性的动态信息流。

可选的,所述步骤102具体包括:

在所述第二主体读取所述第一主体的文件的情况下,若所述第一主体的等级小于所述第二主体的等级,获取影响所述第二主体的文件完整性的动态信息流;

确定影响所述第二主体的文件完整性的第二信息流包括所述影响所述第二主体的文件完整性的动态信息流。

也就是说,其捕获的是第二主体下读第一主体的文件所导致的影响第二主体的文件完整性的动态信息流。

可选的,所述方法还包括:

在所述第一主体修改所述第二主体的文件的情况下,若所述第一主体的等级小于所述第二主体的等级,获取影响所述第二主体的文件完整性的动态信息流;

也就是说,其捕获的是第一主体上写第二主体的文件所导致的影响第二主体的文件完整性的动态信息流。

其中,第二信息流可以包括:由于第二主体下读第一主体的文件而导致的影响第二主体的文件完整性的动态信息流,以及由于第一主体上写第二主体的文件而导致的影响第二主体的文件完整性的动态信息流。

由于当前操作系统的访问控制更多的是自上而下的权限管控,即更高等级特别是root往往可以读写低等级的数据,同时,访问控制策略也不一定很好地刻画了实际需求,因此,访问控制策略刻画的信息流往往不能有效地符合用于文件完整性保护的完整性模型所需的信息流状况,此时,需要更多地参考系统运行时实际地的动态信息流,对于访问控制策略的潜在静态信息流,则采取选择性纳入。即针对第一主体的等级和第二主体的等级,可以根据不同等级之间主体的访问控制,捕获第一主体的文件流入的动态信息流和静态信息流,或,捕获第二主体的文件流入的动态信息流和静态信息流,以获取不同主体间的信息流实际情况。

也即在一些实施例中,第一信息流可以同时包括动态信息流和静态信息流,静态信息流指的是由访问控制策略刻画的可能存在的即推测出的信息流。可选的,所述方法还包括:

根据所述第一主体的访问控制策略,获取影响所述第一主体的文件完整性的静态信息流;

所述确定影响所述第一主体的文件完整性的第一信息流包括所述影响所述第一主体的文件完整性的动态信息流,包括:

确定影响所述第一主体的文件完整性的第一信息流包括所述影响所述第一主体的文件完整性的动态信息流和影响所述第一主体的文件完整性的静态信息流。

在一些实施例中,第二信息流可以同时包括动态信息流和静态信息流。可选的,所述方法还包括:

根据所述第二主体的访问控制策略,获取影响所述第二主体的文件完整性的静态信息流;

所述确定影响所述第二主体的文件完整性的第二信息流包括所述影响所述第二主体的文件完整性的动态信息流,包括:

确定影响所述第二主体的文件完整性的第二信息流包括所述影响所述第二主体的文件完整性的动态信息流和影响所述第二主体的文件完整性的静态信息流。

在一些实施方式中,可以基于内核扩展的伯克利包过滤器(extended BerkeleyPacket Filter,eBPF)插桩技术,在不同等级的主体之间存在文件访问的情况下,捕获由于该文件访问而导致的主体文件所流入的影响其完整性的动态信息流。在一些实施方式中,可以基于系统调用接口如stat/statvfs/statfs和程序开发库如libselinux,来查询主体对文件的访问控制策略,以模拟在访问控制策略下的静态信息流。

可以基于内核eBPF插桩技术的动态信息流捕获框架,来捕获动态信息流,可以在操作系统启用捕获框架后进行动态执行,并尽可能覆盖更多的系统状态,其主要可以在操作系统的读写函数如vfs_read/vfs_write/do_mmap等内核调试技术如kprobe中进行插桩,以捕获文件访问过程中主体文件所流入的影响其完整性的动态信息流。

可以基于系统调用接口如stat/statvfs/statfs和程序开发库如libselinux的访问控制策略下的潜在静态信息流捕获框架,来捕获静态信息流,可以通过借用该捕获框架所查询得到的访问控制策略,模拟各个主体对某文件或目录的读写权限情况以进行潜在信息流的刻画。在一些实施例中,可以针对等级下存在其他等级对应主体进行上写控制的文件和关键文件进行静态信息流的捕获,以避免动态信息流的漏捕获。其中,关键文件指的是影响操作系统运行的文件。

动态信息流捕获可以捕获系统的这种下读行为,因为系统运行时往往需要读取相关影响系统运行的文件,所以下读行为通过动态捕获就可以较好完成信息流捕获。

但是对于上写行为,则往往是上写影响其他主体行为的文件且运行时触发概率不高,可以进行静态信息流的刻画。对于安卓系统,所谓上写,则为等级S1.1对应主体上写等级S1对应文件。一般来说,低等级对应主体无法写高等级对应主体的文件,但是,通过将system app剥离出system,使其独立划分为等级S1.1,而对于较多的客体文件,将其归属为等级S1,在访问控制策略上,等级S1.1对应主体可以写一些文件,因此,存在等级S1.1对应主体上写等级S1对应客体即主体文件的情况,可以用来捕获此类上写行为潜在的静态信息流。

由于系统的不同主体的信息流状况不同,流入这些主体的低完整性的信息流情况不同,有的多有的少,通过使用动静态信息流捕获技术和等级分级对系统的不同主体进行信息流分析,可以提高影响主体的文件完整性的信息流捕获的准确性。

在动态信息流捕获过程中,可以利用内核eBPF插桩技术在读、写等信息流操作的位置进行插桩,并捕获执行该操作和操作对象的主体标识,包括uid、SElinux type等;可以根据该主体标识确定操作对象的主体所属等级,对跨等级且影响完整性的动态信息流进行捕获。部署好捕获框架后运行操作系统,并尽可能遍历操作系统的每个状态;收集所捕获的动态信息流数据,从而可以捕获得到在第一主体和第二主体之间存在文件访问时的动态信息流。

在静态信息流捕获过程中,针对一主体如第一主体,可以获取用于刻画影响第一主体的文件完整性的静态信息流的文件集合,其中,该文件集合包括第一主体的存在其他等级对应主体进行上写控制的第一文件和影响操作系统运行的第二文件中至少一项;根据主体集合的访问控制策略,模拟该主体集合对文件集合执行写控制的访问控制结果,得到静态信息流,该主体集合包括对第一文件进行上写控制的主体和对第二文件进行写控制的主体中至少一项。

也就是说,可以筛选定义的潜在上写的主客体和关键文件,以进行后续静态信息流的刻画,其中,关键文件即第二文件可以人工筛选或系统设置,潜在上写的主客体可以包括等级S1.1对应主体和等级S1对应客体即第一文件。对于关键文件,刻画访问控制策略下所有可能写该关键文件的主体;对于上写行为,刻画上写主体和客体间可能的所有上写的第一文件。对于需要进行静态信息流绘制的文件集合利用操作系统相关系统调用接口如stat/statvfs/statfs以及程序开发库libselinux查询DAC和SELinux的访问控制策略,并模拟主体对该文件集合执行读写操作下对应的DAC和SELinux的访问控制结果,得到潜在的静态信息流。

另外,对于关键文件,也可以进行监测其流入的低完整性的动态信息流状况,主要监测不受只读分区保护(dm-verity)的关键文件。其中,dm-verity指的是设备映射器(device mapper,dm)的一个目标(target),是一个虚拟块设备,专门用于只读分区的文件的校验。

需要说明的是,在文件访问过程中,对于每个主体,均可以按照相同捕获方式或不同捕获方式进行动态信息流和静态信息流的捕获,这里不进行具体限定。

步骤103,根据所述第一主体的等级和所述第一信息流对所述第一主体的文件进行完整性保护,或,根据所述第二主体的等级和所述第二信息流对所述第二主体的文件进行完整性保护。

针对操作系统的各主体中存在文件访问的主体,比如第一主体和第二主体,可以根据主体的等级和在该主体和其他主体之间存在文件访问的情况下捕获的影响该主体的文件完整性的信息流,进行完整性建模,以对该主体的文件进行完整性保护。

可以根据该主体的等级,为该等级赋予一个完整性等级,一般来说,等级越高,完整性等级越高,即越高等级的客体文件所受的低完整性的信息流应当越少,以这一规则对等级的完整性等级进行划分,并基于完整性等级进行该主体的文件完整性建模。

可以将捕获的影响该主体的文件完整性的信息流作为根据等级进行完整性等级准确划分的一个判定条件,等级越高,越高等级的客体文件所受的低完整性的信息流应当越少,若实际情况违反该规则,比如,等级S0对应主体的信息流高于等级S1对应主体的信息流,或者,等级S0对应主体的信息流大于某一阈值,则可以说明实际情况违反该规则,可以重新考虑系统设计。对于不符合完整性要求的个别服务进行相关重构,如调整文件的等级,或者,取消通过文件进行数据交互的方式,以达到信息流完整性的要求。

对于安卓系统,等级S0的完整性等级最高,等级S1的完整性等级次之,等级S1.1的完整性等级再次之,等级S2的完整性等级最低。

在本申请实施例中,通过划分系统的主体的等级,并捕获文件访问过程中影响主体的文件完整性的信息流,根据主体的等级和捕获的影响该主体的文件完整性的信息流,对该主体的文件进行完整性保护,从而实现对操作系统的文件进行完整性保护。且,由于捕获的是文件访问过程中影响主体的文件完整性的信息流,该信息流更能符合流入该主体的文件的信息流实际情况,因此,根据该信息流进行主体的文件完整性保护,可以在达到更高水平的文件完整性保护的情况下减少系统性能开销

可选的,所述步骤103具体包括:

根据主体的等级和捕获的影响该主体的文件完整性的信息流,确定该主体的文件完整性保护规则;

根据所述文件完整性保护规则,对该主体的文件按照对应的保护机制进行完整性保护。

可选的,所述根据主体的等级和捕获的影响该主体的文件完整性的信息流,确定该主体的文件完整性保护规则,包括:

在主体的等级与捕获的影响该主体的文件完整性的信息流匹配的情况下,根据该主体的等级,确定该主体的文件完整性保护规则。

文件完整性保护规则可以包括完整性模型,完整性模型是一种理论模型,其限定了针对文件完整性的保护规则,文件完整性保护规则还可以包括完整性保护要求,比如,针对高等级如S0、S1和S1.1,可以对其文件实施完整性保护,以达到信息流完整性的要求,而针对低等级如S2,由于其有大量低完整性的信息流,可以仅保护其程序自身完整性,以达到系统自身完整性的保护要求。

其中,程序自身的完整性:一般指执行程序自身、动态代码、依赖的系统代码、内核模块、配置文件等的完整性。而信息流完整性:除了程序自身完整性,还考虑流动的数据的完整性,由于影响完整性的只有流入的信息流,因此要求流入的所有信息流也要具备一定的完整性,通过保证信息流的完整性实现系统的完整性保护。

可以采用完整性模型来进行完整性建模,以实现信息流的完整性保护,完整性模型可以有强制访问模型BIBA,Clark-Wilson(CW)模型和Clark-Wilson lite(CW-lite)模型等。

其中,BIBA模型由Kenneth J.Biba于1975年提出,是最为经典的完整性模型,主要定义了加载时完整性的定义及一系列计算机系统安全策略的状态机和相应访问控制规则,保证相应数据的完整性。BIBA完整性模型中,存在主体(subject)和数据客体,对于不同完整性等级的主体和客体,存在以下三条规则:

1)简单完整性属性:一定完整性等级的主体不能读更低完整性等级的客体数据;

2)完整性属性:一定完整性等级的主体不能写更高完整性等级的客体数据;

3)调用属性:低完整性进程不能请求访问高完整性的,只能请求访问相同或者更低完整性的。

以上公理定义了标准的BIBA模型,可以用一句话来总结为:上读、下写,信息自上而下流动,且信息流不能从低完整性的流向高完整性,如图3所示,定义了BIBA模型的信息流流向。

在Clark-Wilson完整性模型中,定义了受约束的数据对象(Constrained DataItem,CDI)、不受约束的数据对象(Unconstrained Data Item,UDI)、转换过程(Transformation Procedure,TP)和完整性验证过程(Integrity VerificationProcedure,IVP)。CDI指的通常是可信任的数据对象,UDI则对应外部输入的低完整性信息流。通常用三元组描述信息流的传输行为,即主体—程序—对象(UDI/CDI)。任何从外部传入的UDI都要经过TP的转换,使其成为CDI。除此以外,IVP确保所有的CDI在系统的某个状态都是合法即完整的。

Clark-Wilson完整性模型定义了9条公理规则来对三元组进行约束,这里不详细展开。Clark-Wilson完整性模型为商业系统提供了更具现实价值的完整性体系。由于Clark-Wilson完整性模型对TP即程序有严格的形式化验证要求,同时所有的信息流都需要抽象为三元组,但实际上,对所有TP进行形式化验证是不现实的并且只有少数信息流是低完整性到高完整性的。

由此,Umesh Shankar等人提出了Clark-Wilson Lite完整性模型,提出只需要使用过滤器对来自低完整性的数据流进行验证,并分析SELinux进行信息流的刻画,同时应用MAC/SELinux保证信息流的合法性,简化整个实施。可以有由低到高的数据流动,但是要对低完整性的数据流进行验证或者转换过,以保证数据完整性,也即把低完整性的数据流转变成高完整性的数据流后使用。

可以根据主体的等级和捕获的影响该主体的文件完整性的信息流,确定该主体的完整性等级,并选取与该主体的完整性等级匹配的文件完整性保护规则。

在一可选实施方式中,如图4所示,对于等级S0,基本不存在低完整性的信息流,完整性等级最高,因此,可以直接采用BIBA完整性模型进行完整性建模,以进行该等级的信息流的完整性保护。而对于等级S1,由于存在部分低完整性的信息流,因此,可以采用CW-lite完整性模型进行完整性建模,对这些文件实施完整性校验等,以达到信息流完整性的要求。而对于等级S1.1和S2,由于其有大量低完整性的信息流,完整性等级最低,可以仅保护其程序自身完整性,以达到系统自身完整性的保护要求。

上述完整性模型的选取和完整性保护要求的选取只是一种举例,针对不同等级,也可以采用其他完整性模型进行完整性建模,这里不进行具体限定。

在选取文件完整性保护规则的情况下,可以根据所述文件完整性保护规则,对该主体的文件按照对应的保护机制进行完整性保护。其中,保护机制可以由采用dm-verity这类分区级的只读文件保护机制、基于文件签名的完整性保护机制等,基于文件签名的完整性保护机制主要是利用云端文件签名后进行文件下发,实现便捷度量范围修改及文件内容修改的完整性度量与保护。也可以采用其他的保护机制对文件进行完整性保护,这里不进行具体限定。

可以对该主体的所有文件均按照同一保护机制进行完整性保护,也可以根据该主体的文件性质,分别按照不同的保护机制进行完整性保护,这里不进行具体限定。

在一些实施例中,在该主体的等级为第一目标等级的情况下,可以根据文件完整性保护规则,对该主体的各文件,利用第一完整性保护机制进行完整性保护,所述第一完整性保护机制用于只读分区的文件的校验;

在一些实施例中,在该主体的等级为第二目标等级的情况下,可以根据文件完整性保护规则,对该主体的第一类型的文件,利用第一完整性保护机制进行完整性保护,以及对该主体的第二类型的文件,利用第二完整性保护机制进行完整性保护,所述第二完整性保护机制为基于文件签名的完整性保护机制,所述第一类型的文件为控制主体程序行为的文件,所述第二类型的文件为主体的各文件中除第一类型的文件之外的其他文件;

在一些实施例中,在该主体的等级为第三目标等级的情况下,可以根据文件完整性保护规则,对该主体的第一类型的文件,利用第二完整性保护机制进行完整性保护;

其中,第一目标等级为系统的各主体的等级中最高的等级,第三目标等级为系统的各主体的等级中最低的等级,第二目标等级介于所述第一目标等级与第三目标等级之间。

可以根据不同的完整性模型和完整性保护要求,对不同的完整性等级按照不同的保护机制进行文件完整性保护。具体来说,对于不同的完整性模型和完整性保护要求,可以分别采用不同的保护机制,以追求最小的系统性能开销。

比如,如图5所示,对于等级S0选取的BIBA模型,可以采用第一完整性保护机制如dm-verity这类分区级的只读文件保护机制,将等级S0的相关文件纳入其中。对于等级S1选取的CW-lite模型,可以将第一类型的文件如不需变化的主体部分纳入分区级的完整性保护dm-verity之中,而对于第二类型的文件如一些需要变化的关键文件,则利用第二完整性保护机制进行完整性保护,如由定制化/非定制化的基于文件签名的完整性保护机制进行文件级的保护。对于等级S2,则应用定制化/非定制化的基于签名的完整性保护机制对其主体的程序文件、代码文件、配置文件等进行加载时签名校验,同时,可以对其执行文件、getshell状况进行监测,保证其主体自身完整性。

根据选取主体的等级匹配的完整性模型和完整性保护要求,以及捕获的信息流状况,对不同主体采取不同的保护机制进行有针对性地保护,使用dm-verity这类分区级的只读文件保护机制和基于签名的完整性保护机制,在尽量进行信息流完整性保护的同时,也对应用进行应用的系统完整性度量与保护,以最小化性能开销,最大化完整性保护效果。

需要说明的是,本申请实施例提供的系统完整性的保护方法,执行主体可以为系统完整性的保护装置,或者系统完整性的保护装置中的用于执行系统完整性的保护方法的控制模块。本申请实施例中以系统完整性的保护装置执行系统完整性的保护方法为例,说明本申请实施例提供的系统完整性的保护装置。

参见图6,图6是本申请实施例提供的系统完整性的保护装置的结构示意图,所述系统完整性的保护装置600包括:

第一确定模块601,用于确定系统的第一主体的等级和系统的第二主体的等级;

第二确定模块602,用于在所述第二主体访问所述第一主体的文件的情况下,根据所述第一主体的等级和所述第二主体的等级,确定影响所述第一主体的文件完整性的第一信息流,或,确定影响所述第二主体的文件完整性的第二信息流;

完整性保护模块603,用于根据所述第一主体的等级和所述第一信息流对所述第一主体的文件进行完整性保护,或,根据所述第二主体的等级和所述第二信息流对所述第二主体的文件进行完整性保护。

可选的,所述第二确定模块602包括:

第一获取单元,用于在所述第二主体访问所述第一主体的文件的情况下,根据所述第一主体的等级和所述第二主体的等级,获取影响所述第一主体的文件完整性的动态信息流;

第一确定单元,用于确定影响所述第一主体的文件完整性的第一信息流包括所述影响所述第一主体的文件完整性的动态信息流。

可选的,所述第一获取单元,具体用于:

在所述第二主体修改所述第一主体的文件的情况下,若所述第一主体的等级大于所述第二主体的等级,获取影响所述第一主体的文件完整性的动态信息流。

可选的,所述装置还包括:

静态信息流获取模块,用于根据所述第一主体的访问控制策略,获取影响所述第一主体的文件完整性的静态信息流;

所述第一确定单元,具体用于确定影响所述第一主体的文件完整性的第一信息流包括所述影响所述第一主体的文件完整性的动态信息流和影响所述第一主体的文件完整性的静态信息流。

可选的,所述第二确定模块602,包括:

第二获取单元,用于在所述第二主体读取所述第一主体的文件的情况下,若所述第一主体的等级小于所述第二主体的等级,获取影响所述第二主体的文件完整性的动态信息流;

第二确定单元,用于确定影响所述第二主体的文件完整性的第二信息流包括所述影响所述第二主体的文件完整性的动态信息流。

在本申请实施例中,通过划分系统的主体的等级,并捕获文件访问过程中影响主体的文件完整性的信息流,根据主体的等级和捕获的影响该主体的文件完整性的信息流,对该主体的文件进行完整性保护,从而实现对操作系统的文件进行完整性保护。且,由于捕获的是文件访问过程中影响主体的文件完整性的信息流,该信息流更能符合流入该主体的文件的信息流实际情况,因此,根据该信息流进行主体的文件完整性保护,可以在达到更高水平的文件完整性保护的情况下减少系统性能开销

本申请实施例中的系统完整性的保护装置可以是装置,也可以是系统完整性的保护装置中的部件、集成电路、或芯片。该系统完整性的保护装置可以是移动电子设备,也可以为非移动电子设备。示例性的,移动电子设备可以为手机、平板电脑、笔记本电脑、掌上电脑、车载电子设备、可穿戴设备、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本或者个人数字助理(personal digital assistant,PDA)等,非移动电子设备可以为服务器、网络附属存储器(Network Attached Storage,NAS)、个人计算机(personalcomputer,PC)、电视机(television,TV)、柜员机或者自助机等,本申请实施例不作具体限定。

本申请实施例中的系统完整性的保护装置可以为具有操作系统的装置。该操作系统可以为安卓(Android)操作系统,可以为ios操作系统,还可以为其他可能的操作系统,本申请实施例不作具体限定。

本申请实施例提供的系统完整性的保护装置能够实现图1的方法实施例实现的各个过程,达到相同的技术效果,为避免重复,这里不再赘述。

可选地,如图7所示,本申请实施例还提供一种电子设备700,包括处理器701,存储器702,存储在存储器702上并可在所述处理器701上运行的程序或指令,该程序或指令被处理器701执行时实现上述系统完整性的保护方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。

需要说明的是,本申请实施例中的电子设备包括上述所述的移动电子设备和非移动电子设备。

图8为实现本申请实施例的一种电子设备的硬件结构示意图。

该电子设备800包括但不限于:射频单元801、网络模块802、音频输出单元803、输入单元804、传感器805、显示单元806、用户输入单元807、接口单元808、存储器809、以及处理器810等部件。所述电子设备800还设有屏下指纹感应区域。

本领域技术人员可以理解,电子设备800还可以包括给各个部件供电的电源(比如电池),电源可以通过电源管理系统与处理器810逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。图8中示出的电子设备结构并不构成对电子设备的限定,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,在此不再赘述。

处理器810,用于:

确定系统的第一主体的等级和系统的第二主体的等级;

在所述第二主体访问所述第一主体的文件的情况下,根据所述第一主体的等级和所述第二主体的等级,确定影响所述第一主体的文件完整性的第一信息流,或,确定影响所述第二主体的文件完整性的第二信息流;

根据所述第一主体的等级和所述第一信息流对所述第一主体的文件进行完整性保护,或,根据所述第二主体的等级和所述第二信息流对所述第二主体的文件进行完整性保护。

在本申请实施例中,通过划分系统的主体的等级,并捕获文件访问过程中影响主体的文件完整性的信息流,根据主体的等级和捕获的影响该主体的文件完整性的信息流,对该主体的文件进行完整性保护,从而实现对操作系统的文件进行完整性保护。且,由于捕获的是文件访问过程中影响主体的文件完整性的信息流,该信息流更能符合流入该主体的文件的信息流实际情况,因此,根据该信息流进行主体的文件完整性保护,可以在达到更高水平的文件完整性保护的情况下减少系统性能开销。

可选的,处理器810,还用于:

在所述第二主体访问所述第一主体的文件的情况下,根据所述第一主体的等级和所述第二主体的等级,获取影响所述第一主体的文件完整性的动态信息流;

确定影响所述第一主体的文件完整性的第一信息流包括所述影响所述第一主体的文件完整性的动态信息流。

可选的,处理器810,还用于:

在所述第二主体修改所述第一主体的文件的情况下,若所述第一主体的等级大于所述第二主体的等级,获取影响所述第一主体的文件完整性的动态信息流。

可选的,处理器810,还用于:

根据所述第一主体的访问控制策略,获取影响所述第一主体的文件完整性的静态信息流;

确定影响所述第一主体的文件完整性的第一信息流包括所述影响所述第一主体的文件完整性的动态信息流和影响所述第一主体的文件完整性的静态信息流。

可选的,处理器810,还用于:

在所述第二主体读取所述第一主体的文件的情况下,若所述第一主体的等级小于所述第二主体的等级,获取影响所述第二主体的文件完整性的动态信息流;

确定影响所述第二主体的文件完整性的第二信息流包括所述影响所述第二主体的文件完整性的动态信息流。

应理解的是,本申请实施例中,输入单元804可以包括图形处理器(GraphicsProcessing Unit,GPU)8041和麦克风8042,图形处理器8041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。显示单元806可包括显示面板8061,可以采用液晶显示器、有机发光二极管等形式来配置显示面板8061。用户输入单元807包括触控面板8071以及其他输入设备8072中的至少一种。触控面板8071,也称为触摸屏。触控面板8071可包括触摸检测装置和触摸控制器两个部分。其他输入设备8072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。

存储器809可用于存储软件程序以及各种数据。存储器809可主要包括存储程序或指令的第一存储区和存储数据的第二存储区,其中,第一存储区可存储操作系统、至少一个功能所需的应用程序或指令(比如声音播放功能、图像播放功能等)等。此外,存储器809可以包括易失性存储器或非易失性存储器,或者,存储器809可以包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data Rate SDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DRRAM)。本申请实施例中的存储器809包括但不限于这些和任意其它适合类型的存储器。

处理器810可包括一个或多个处理单元;在一些实施例中,处理器810集成应用处理器和调制解调处理器,其中,应用处理器主要处理涉及操作系统、用户界面和应用程序等的操作,调制解调处理器主要处理无线通信信号,如基带处理器。可以理解的是,上述调制解调处理器也可以不集成到处理器810中。

本申请实施例还提供一种可读存储介质,所述可读存储介质上存储有程序或指令,该程序或指令被处理器执行时实现上述系统完整性的保护方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。

其中,所述处理器为上述实施例中所述的电子设备中的处理器。所述可读存储介质,包括计算机可读存储介质,如计算机只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等。

本申请实施例另提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现上述系统完整性的保护方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。

应理解,本申请实施例提到的芯片还可以称为系统级芯片、系统芯片、芯片系统或片上系统芯片等。

本申请实施例提供一种计算机程序产品,该程序产品被存储在存储介质中,该程序产品被至少一个处理器执行以实现如上述系统完整性的保护方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。此外,需要指出的是,本申请实施方式中的方法和装置的范围不限按示出或讨论的顺序来执行功能,还可包括根据所涉及的功能按基本同时的方式或按相反的顺序来执行功能,例如,可以按不同于所描述的次序来执行所描述的方法,并且还可以添加、省去、或组合各种步骤。另外,参照某些示例所描述的特征可在其他示例中被组合。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以计算机软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台电子设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。

上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。

相关技术
  • 可弯曲电子设备、可弯曲电子设备的控制方法、装置及电子设备
  • 图片保护方法、装置、介质及电子设备
  • 电子设备显示屏驱动芯片驱动方法、装置及电子设备
  • 天线结构及电子设备的信号接收方法、装置、电子设备
  • 一种电子设备的输入方法、输入装置及电子设备
  • 一种实现操作系统完整性保护的方法和装置
  • 一种实现操作系统完整性保护的方法和装置
技术分类

06120116587131