CN114519186A - 一种数据保护的方法、装置、存储介质和计算机设备 - Google Patents

一种数据保护的方法、装置、存储介质和计算机设备 Download PDF

Info

Publication number
CN114519186A
CN114519186A CN202111290201.6A CN202111290201A CN114519186A CN 114519186 A CN114519186 A CN 114519186A CN 202111290201 A CN202111290201 A CN 202111290201A CN 114519186 A CN114519186 A CN 114519186A
Authority
CN
China
Prior art keywords
data
protected
access
module
abnormal
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
Application number
CN202111290201.6A
Other languages
English (en)
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 Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN114519186A publication Critical patent/CN114519186A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/563Static detection by source code analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/565Static detection by checking file integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Databases & Information Systems (AREA)
  • Virology (AREA)
  • Storage Device Security (AREA)

Abstract

公开了一种数据保护的方法、装置、存储介质和计算机设备。该数据保护的方法包括:确定需要被保护数据,禁止对需要被保护数据直接访问;如果访问的数据为需要被保护数据,触发中断以判断访问是否异常;当访问是异常的时候,限制访问;或当访问是正常的时候,允许访问。通过本申请实施例提供的技术方案,可以有效的防止操作系统中对数据的异常访问,对数据的篡改和窃取,保护操作系统中数据的安全。

Description

一种数据保护的方法、装置、存储介质和计算机设备
技术领域
本申请涉及计算机领域,尤其涉及一种数据保护的方法、装置、存储介质和计算机设备。
背景技术
操作系统(operating system,OS)通过利用两种执行模式来实现多任务处理的权限隔离:用户模式(如Windows的普通用户模式)和内核模式(如Windows的管理员用户模式)。在内核模式下运行的代码具有更高权限,能够访问系统内存中的内核内存区域,而用户模式下运行的代码则有许多限制,只能访问系统内存中的用户内存区域,而禁止访问内核内存区域。代码执行模式的这种区别有助于将用户代码与内核代码隔离,对内核内存区域进行了保护。然而,内核模式下的内核代码因为其更高等级的权限,往往成为黑客青睐的攻击目标。
在内核模式下运行的内核代码对操作系统的内核内存区域的任何部分都具有不受限制的读写访问权限。一般的内存保护不足以应对异常访问内核内存区域的情况。
发明内容
本申请公开了一种数据保护的方法、装置、存储介质和计算机设备,通过判断对需要被保护数据的访问是否异常,限制异常访问,可以有效的防止操作系统中对数据的篡改和窃取,保护操作系统中数据的安全。
第一方面,本申请提供了一种数据保护的方法,方法包括:确定需要被保护数据,禁止对需要被保护数据直接访问;
如果访问的数据为需要被保护数据,触发中断以判断访问是否异常;
当访问是异常的时候,限制访问。
通过判断对需要被保护数据的访问是否异常,限制异常访问,可以有效的防止操作系统中对数据的篡改和窃取,保护操作系统中数据的安全。
一种可行的实现方式中,判断访问是否异常包括:验证访问的来源和/或目的是否异常。
一种可行的实现方式中,方法还包括:将需要被保护数据和不需要被保护数据的存储区块分开,以使至少一个存储区块中只存在被保护数据或至少一个存储区块中只存在不需要被保护数据。通过该方案,避免需要被保护数据和不需要被保护数据混在一个存储区块中,从而导致需要判断处理的次数增加,可以只对存储有需要被保护数据的存储区域进行判断,中断,并处理,提高判断处理的效率。
一种可行的实现方式中,方法还包括:对每个数据的存储区块的页表条目设置标志位,以指示对应数据是否为需要被保护数据。通过简单判断标志位的值,可以迅速判断访问的对象是否为需要被保护数据,提高处理效率。
一种可行的实现方式中,方法还包括:更新需要被保护数据的列表。更新该列表,可以保证列表的实时性,确保需要被保护的数据及时被识别出来,得到及时的保护。
一种可行的实现方式中,对需要被保护数据的列表更新,包括:根据从操作系统的实时事件,更新列表。
一种可行的实现方式中,触发中断以判断访问是否异常,包括:根据中断从中断描述符表中确定所要运行的中断处理程序。
一种可行的实现方式中,方法还包括:设置看门狗以防止列表、中断描述符表、标志位中任意一个或多个的状态被篡改。看门狗可以实时保护本申请中各个组件不被攻击者篡改,从而降低被绕过该保护机制的可能性。
一种可行的实现方式中,确定需要被保护数据,包括:根据已有被攻击数据的类型和/或功能,确认需要被保护数据。
一种可行的实现方式中,方法还包括:确定需要被保护数据被访问频率,当频率高于等于阈值的时候,则取消对需要被保护数据的保护。访问频率很高的时候,被访问的数据被验证的次数也就会增加,则被攻击和篡改的概率就较低,为了提高保护的效率,当需要被保护数据被访问频率很高的时候,即可以从列表中删除。
第二方面,本申请提供了一种数据保护的装置,装置包括:判断模块、处理模块、存储模块和分类模块,
分类模块用于从存储模块存储的数据中确定需要被保护数据;
判断模块用于禁止对需要被保护数据直接访问,如果访问数据为需要被保护数据,触发中断;
处理模块用于判断访问是否异常,当访问是异常的时候,限制访问。
通过判断对需要被保护数据的访问是否异常,限制异常访问,可以有效的防止操作系统中对数据的篡改和窃取,保护操作系统中数据的安全。
一种可行的实现方式中,处理模块用于判断访问是否异常包括:验证访问的来源和/或目的是否异常。
一种可行的实现方式中,分类模块还用于将需要被保护数据和不需要被保护数据存储的区域分开,使至少存在一个存储区块中只存在被保护数据或不需要被保护数据。通过该方案,避免需要被保护数据和不需要被保护数据混在一个存储区块中,从而导致需要判断处理的次数增加,可以只对存储有需要被保护数据的存储区域进行判断,中断,并处理,提高判断处理的效率。
一种可行的实现方式中,装置还包括更新模块,更新模块用于对每个数据的存储区块的页表条目设置标志位,以指示对应数据是否为需要被保护数据。通过简单判断标志位的值,可以迅速判断访问的对象是否为需要被保护数据,提高处理效率。
一种可行的实现方式中,更新模块还用于更新需要被保护数据的列表。更新该列表,可以保证列表的实时性,确保需要被保护的数据及时被识别出来,得到及时的保护。
一种可行的实现方式中,更新模块还用于对需要被保护数据的列表更新,包括:更新模块根据操作系统的实时事件,对列表更新。
一种可行的实现方式中,处理模块用于判断访问是否异常,包括:处理模块根据中断从中断描述符表中确定所要运行的中断处理程序。
一种可行的实现方式中,装置还包括监督模块,监督模块用于防止列表、中断描述符表、标志位中任意一个或多个的状态被篡改。监督模块可以实时保护本申请中各个组件不被攻击者篡改,从而降低被绕过该保护机制的可能性。
一种可行的实现方式中,分类模块用于从存储模块存储的数据中确定需要被保护数据,包括:分类模块用于根据已有被攻击数据的类型和/或功能,确认需要被保护数据。
一种可行的实现方式中,更新模块还用于确定需要被保护数据被访问频率,当频率高于等于阈值的时候,则判断模块取消对需要被保护数据进行保护。访问频率很高的时候,被访问的数据被验证的次数也就会增加,则被攻击和篡改的概率就较低,为了提高保护的效率,当需要被保护数据被访问频率很高的时候,即可以从列表中删除。
第三方面,提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机指令,当计算机可读存储介质中的计算机指令被计算机设备执行时,使得计算机设备执行第一方面中任一种可行的实现方式中的方法。
第四方面,提供了一种计算机设备,计算机设备包括处理器和存储器,其中:
存储器中存储有计算机指令;
处理器执行计算机指令,以使计算机设备执行第一方面中任一种可行的实现方式中的方法。
附图说明
为了更清楚地说明本申请实施例的技术方法,下面将对实施例中所需使用的附图作以简单地介绍。
图1为有恶意内核代码的操作系统结构示意图;
图2为本申请实施例的有恶意内核代码的操作系统结构示意图;
图3为页表访问结构示意图;
图4为本申请实施例提供的一种数据分类方案示意图;
图5为本申请实施例提供的一种敏感数据保护方案示意图;
图6为本申请实施例提供的另一种敏感数据保护方案示意图;
图7为本申请实施例提供的一种敏感数据保护方案流程示意图;
图8为本申请实施例提供的一种中断处理方案流程示意图;
图9A为本申请实施例提供的一种数据保护装置的结构图;
图9B为本申请实施例提供的另一种数据保护装置的结构图;
图9C为本申请实施例提供的另一种数据保护装置的结构图;
图10为本申请实施例提供的一种计算机设备的结构图。
具体实施方式
以图1中的计算机100为例,计算机100包括正常内核代码106、设备驱动代码108、恶意用户代码a 114、正常用户代码b 118和系统内存122。根据权限高低和/或安全要求不同,将系统内存112分为了两个区域,一个区域是内核模式下的代码才能访问的内核内存区域110,包括驱动内存区域112,另外一个区域是用户模式下用户代码访问的用户内存区域120。
其中用户代码不能访问内核内存区域,例如正常用户程序b 118无法访问内核内存区域110,不能对内核内存区域110内的数据进行读写操作。而正常内核代码106和设备驱动代码108之类的内核模式下运行的代码具有高权限,可以直接访问包括内核内存区域110和用户内存区域120在内的整个系统内存122。这里直接访问是指不经过判断或确认的访问内核内存区域中的数据。
然而,内核模式的高权限一直是黑客攻击的主要目标。常见的攻击方式包括恶意的用户模式的用户代码通过提权漏洞或者其他相关漏洞,提升自身代码的权限,注入恶意内核代码。当系统被注入恶意内核代码,该代码拥有了和正常内核代码同等的权限,就可以对包括内核内存区域里的数据进行篡改和窃取,并且进一步注入木马、后门等恶意代码。
例如图1中,恶意的用户代码a 114,利用操作系统的漏洞,注入恶意内核代码104,恶意内核代码104拥有了访问内核内存区域110的权限,能够对其中的敏感数据进行读写操作。进一步,恶意的用户代码a 114也拥有了访问内内存区域110的权限。
本申请实施例利用内存系统的访问机制,提供保护内核内存区域的技术方案。如图2所示,对恶意内核代码104对内核内存区域110的访问进行防护,判断访问是否异常,如果异常,则对访问进行限制202。这里需要说明的是驱动内存区域112可以是属于内核内存区域110,也可以是不属于内核内存区域110。
在使用虚拟内存的操作系统中,页表是用来存储虚拟地址(linear address,又称逻辑地址等)和物理地址之间的映射关系的数据结构。将内存空间以内存页作为单元进行分割管理,页表通过虚拟地址的方式,使得每个计算机代码都认为自己获得了大而连续的内存空间。从物理上讲,每个计算机代码的实际物理内存可能分散在物理内存空间的不同区域,或者该计算机代码访问的数据可能已移动到另一个存储器,通常是硬盘。
为了提升页表的性能,CPU的内存管理单元(Memory Management Unit,MMU)会存储最近使用的页表条目作为高速缓存,这称为页表缓冲区(Translation LookasideBuffer,TLB)。TLB在系统内存结构中与页表的相对位置和逻辑关系如下图3所示。图3中包括:计算机代码302,TLB 304,页表306,和硬盘308。
当将虚拟地址转换为物理地址时,首先搜索TLB 304,如果找到匹配项,为TLB命中,则返回物理地址,并且可以继续进行内存访问。但是,如果没有匹配项,为TLB未命中,则MMU或TLB未命中,通常将在页表中查找对应的页表条目,如果存在,则将其写回到TLB。如果页表中也不存在对应有效的页表条目,则触发缺页中断(Page Fault,PF),处理器通过中断描述符表(Interrupt Descriptor Table,IDT)找到对应的中断处理程序,进行进一步操作,如去硬盘读取数据,更新页表中的页表条目等等。
页表作为现代OS的核心数据结构之一,实现了页级的安全控制和防护技术,比如对用户模式和内核模式的权限进行区分,内存读写权限的控制,如可读、可运行、不可写、管理模式执行保护(supervisor mode execution protection,SMEP)和模式访问保护(supervisor mode access protection,SMAP)等等。
在现有的页表方案中,操作系统并没有对同样权限级别下的代码访问内存区域进行区分,比如,同为内核模式下的内核代码、设备驱动代码以及操作系统的内核代码,对内存空间访问的区域没有进行进一步区分和细颗粒管理。
这就导致恶意的设备驱动代码和恶意内核代码拥有等同于正常内核代码对内核内存区域访问的权限,而一些敏感数据的内存页和非敏感数据的内存页也没有被区分,可以存在于一个内存页中,恶意内核代码只要访问页表,敏感数据就可以被访问。入侵者可以通过注入恶意驱动代码和恶意内核代码,定位和修改内核内存区域的数据,窃取敏感数据,并且在受害计算机系统上安装永久和不可检测的木马和后门。
本申请实施例提供一种可行的技术方案,如图4所示,页表404中存放着至少一个页表条目,页表条目中存储着内存虚拟地址和物理地址的映射关系,正常内核代码402要访问内存空间406里面的数据的时候,首先会根据虚拟地址,在页表404中找到对应的页表条目,例如页表条目412,根据页表条目412内的映射关系,找到内存对应的物理地址,最后访问到内存空间406中的内存页422,并对存储其中的数据进行读写操作。在内存空间中,将敏感数据和非敏感数据所存储的区域进行区分,例如,在本实施例中,内存页420和421中,只存储着敏感数据,内存页422和423中,只存储着非敏感数据。不会出现一个内存页中既存有敏感数据,又存有非敏感数据。这样做的原因是,以内存页为单位,通过控制对某个内存页的访问进行保护和限制,从而达到对该内存页中存储的数据进行保护的目的。
保存着敏感数据的内存页对应的页表条目,为敏感数据的页表条目;保存着非敏感数据的内存页对应的页表条目,称为非敏感数据的页表条目。
接下来将介绍如何做到控制对某个内存页的访问进行保护和限制。随着操作系统的发展,页表中逐渐加入了许多标志位,用以对每个页表条目提供辅助信息,表示对应内存页的一些状态。这些标志位中,有的是专门为系统安全设计的,例如区分用户模式和内核模式,有的是为了系统功能和性能,例如表示内存页是否存在于内存空间的当前存在标志Present,又被称为P位,和表示该内存页是否能被访问的ACCESSED标志等。在页表遍历的过程中,如果对内存页的操作与这些标志位的信息产生冲突,则会触发异常中断。
如图4中,以当前存在标志位P为例,当遍历到页表条目414的时候,确认标志位P的值是0,表示页表条目414对应的内存页421中的数据并不在内存空间406中,或内存页421中的数据并非是有效的,此时会触发一个PF,通过对中断描述符表408查询,找到对应的中断处理程序进行进一步的处理,例如从硬盘中读到需要访问的数据,并刷新对应的页表条目。
当遍历到页表条目416的时候,确认标志位P的值是1的,表示该页表条目对应的内存页422中的数据在内存空间406中,通过页表条目416中存储的虚拟地址和物理地址的映射关系,可以直接对内存页422中的数据进行访问,进行读写操作。
但是,当被注入恶意内核代码后,恶意内核代码424同样可以对敏感数据的页表条目412进行访问,当标志位P位的值是1的时候,根据页表条目中的虚拟地址到物理地址的映射关系,恶意内核代码424能够对内存空间406中敏感数据页420中的敏感数据进行访问,读写操作。因此需要防护措施,对需要进行保护的敏感数据,对其内存页进行监控以及访问进行限制。
但是,操作系统内核模式下有大量的内存空间,对所有的内存空间进行同等的实时安全监控是不现实的。因此,如上述所说,需要找到关键敏感数据,对敏感数据和非敏感数据进行区别对待,一个内存页中,只存储有敏感数据,对这种敏感数据页进行统一管理和保护,变得十分重要。为了实现这一目标,本申请实施例利用了页表中已有的中断机制,对敏感数据页的任何访问操作都会触发中断,进而进入本实施例技术方案设计的新的中断处理程序。
本申请实施例提出了一种技术方案,如图5所示,将敏感数据和非敏感数据进行区分,例如页表条目510和页表条目512对应的内存页528和526中,存储着非敏感数据,而页表条目514和页表条目516对应的内存页522和524中存储着敏感数据。利用标志位,例如P位,将所有敏感数据页对应的页表条目作标记,将其P位标志位的值设置为0,意味着,只要有访问敏感数据的页表条目,则必然触发中断,例如,当恶意内核代码504访问敏感数据页524的时候,需要先访问页表506中的敏感数据的页表条目516,而页表条目516的P位的值为0,则必然触发中断,而触发中断后,会到中断描述符表518中寻找对应的中断处理程序520,对敏感数据的页表条目进行保护,中断处理程序520判断该访问是否正常,当判定该访问是异常的时候,则会禁止恶意内核代码504对敏感数据页524的访问。另外,会针对该异常访问进行告警,提示出现异常访问的操作。可以通过该提示,进一步判断系统中是否有恶意内核代码504,从而清除恶意内核代码504。
当访问是正常的时候,例如正常内核代码502对敏感数据页522进行访问,则需要先访问敏感数据页的页表条目514,因为P位的值为0,所以依然会触发中断,到中断描述符表518里面去寻找对应的中断处理程序,中断处理程序520需要判断该访问是否正常,当判定该访问是正常的时候,则会允许对敏感数据页522的访问,从而完成正常内核代码502对敏感数据页522的访问。中断处理程序520可以是PF处理程序,也可以是其他标志位对应的中断的处理程序,本申请不对此做出限制。从这里可以看到,将敏感数据集中在一些内存页中,而将非敏感数据集中在另外一些内存页中的好处在于,避免只要一个内存页中有部分的敏感数据,就触发中断,这样可以防止对操作系统性能消耗过大。从而在系统性能消耗和操作系统安全性上达到一个平衡。
当访问非敏感数据的页表条目512和页表条目510的时候,P位的值为1,则不会触发中断,可以从页表条目中直接得到映射关系,从而对非敏感数据页进行访问,读写操作。当然存在非敏感数据的页表条目的P位值为0,触发PF中断,经过中断处理程序判断,访问对象为非敏感数据,因此,也不会对该访问进行限制。
容易理解,在本申请实施例中,这个标志位可以使用已有的标志位,如上述所说的标志位P位,也可以是其他已有的标志位,还可以是新增加的标志位。针对不同情况下的标志位,可以使用对应的中断,另外,刷新中断描述符表,以触发正确的中断处理程序,进行对敏感数据页进行访问是否正常的判断。
进一步说明的是,在其他实施例中,可以用其他的技术方案对敏感数据进行保护,例如通过判断数据的属性或权限,来确定数据是否为敏感数据。
对访问是否正常的判断,可以是判断访问的来源是否正常,例如,是否来自于经过安全验证的内核代码,是否来自经过确认访问权限的内核代码。另外,可以是判断访问的目的是否正常,例如该访问是否对一些安全设置进行修改,对一些安全机制进行禁用等。在一种可行的实施方式中,如果访问的来源和访问的目的均正常,可以判断该访问是正常的。
为了保证本申请实施例所提供技术方案的实时可用性和高可靠性,如图6所示,我们加入了实时更新程序626和敏感数据列表628,从正常内核代码602获取操作系统OS实时事件,根据操作系统OS实时事件,如新建和/或移除一个内存空间区域,载入和/或卸载一个内核代码等,或者系统补丁更新中包含的最新攻击方式和最新攻击的数据类型,对敏感数据列表628进行实时同步与更新,使其始终包括最新敏感数据的信息,不会因为敏感数据列表628过时,而被恶意内核代码604绕过,从而对敏感数据页进行异常访问,进行读写操作。其中正常内核代码602包括OS内核代码,驱动程序代码等等。OS实时事件可以
当恶意内核代码604尝试访问敏感数据页624的时候,恶意内核代码604先访问敏感数据的页表条目616,确定标志位P=0后,触发了PF中断,从而从中断描述符表618中找到对应的中断处理程序620,中断处理程序620在敏感数据列表中进行对比,确认访问的目标内存页是敏感数据页,则触发中断处理程序620对该访问判断是否异常,当发现该访问是异常的时候,拒绝了恶意内核代码604的访问。
进一步,为了保证该保护机制不被攻击者篡改和绕过,本申请实施例还加入了看门狗630,对关键组件进行检测。其中,主要检测的关键组件包括:敏感数据的页表条目(例如敏感数据的页表条目614和页表条目616)及其辅助标志位(例如标志位P位),中断描述符表618,实时更新程序626,敏感数据列表628等等。看门狗630会对上述关键组件进行周期性的验证校验,如果验证校验通过,则表明上述关键组件没有被篡改,如果验证校验失败,则表明上述关键组件被篡改。如果被篡改,则进行告警,提示用户对设备进行检查。
需要说明的是,本申请实施例中提到的看门狗630可以是软件形式的看门狗,也可以是硬件形式的看门狗。本申请对此不做限制。
本申请另一个实施例中,在页表条目中加入专用的标志位,用于表示该页表条目对应的内存页中存储的数据是敏感数据还是非敏感数据,例如1表示对应的内存页中存储的是敏感数据,0表示对应的内存页中存储的是非敏感数据,本申请实施例不对标志位的值进行限制。此时实时更新程序,根据操作系统OS实时数据,对该专用标志位进行刷新维护,而当访问敏感数据页的时候,即会根据该标志位触发中断,中断处理程序直接判断该访问是否异常,异常则对访问进行限制,如果正常则允许访问。从中可以看到,该实施例提供的技术方案中,不再需要敏感数据列表。
本申请的实施例包括两个主要阶段,第一阶段为初始化阶段,第二阶段为实时运行阶段。初始化阶段主要负责对各个组件进行必须的配置和更新,一般在操作系统启动时完成。实时运行阶段一般在有敏感数据访问或者操作系统OS实时事件时激活,主要负责对数据访问进行判断是否异常,敏感数据列表更新进行响应,看门狗触发进行报警等。
图7所示为操作系统初始化阶段的流程图。操作系统启动后需按以下步骤进行初始化:
依据流程702,操作系统开始初始化。
依据流程704,确定内核敏感数据。这可以通过两种方式完成:第一种方式是基于目前内核攻击频率较高的数据;第二种方式是根据数据的类型、定义,用法和/或功能来识别敏感的数据。与此同时,确定访问这些数据的频率也很重要,数据的访问频率越低,则在此实施例中带来的性能开销就越少,当访问频率越高的时候,如果将这些数据当做内核敏感数据来保护,则带来的性能开销就越高。因此当访问频率高于等于阈值的时候,可以将该数据从被保护的对象中剔除,一方面是为了防止带来的性能开销太大,另外一方面,经常被访问的数据因为经常被使用,验证校验,即使被恶意内核代码攻击篡改,也较为容易被识别到,这类数据被攻击的可能性较低。
常见的敏感数据包括:安全相关的配置和状态标志,如SELinux(Security-Enhanced Linux)中的“selinux_enforcing”,“selinux_enabled”等数据;一些已经载入内存中的内核代码;一些黑客常用的内核句柄等等。
需要注意的是,不同的操作系统下,所需要保护的敏感信息也不一样,需要根据具体的操作系统进行选取和配置。即使是同样的操作系统,敏感信息也不是一成不变的,需要根据对操作系统内核内存的最新攻击进行更新和扩展。而这些最新攻击方式可以以操作系统的补丁更新的方式获取,也可以从互联网上下载的方式获取,也可以通过存储介质上传到操作系统中,在这里,对获取方式不做限定,容易理解,均在本申请所需要保护的范围内。
依据流程706,保存敏感数据的标识到敏感数据列表。之后的中断处理程序可以利用这个列表鉴别访问的对象是否是敏感数据,实时更新程序根据操作系统实时事件,也会实时更新这个列表。该标识可以是敏感数据的名字,可以是页表条目,也可以是页表条目的序号,或者其他可以代表该敏感数据的标识。
依据流程708,在专门的内存空间区域存放敏感数据。根据敏感数据的大小,可以使用4KB,2MB和4MB内存页存放辨认出的敏感数据,在内存空间中定位出敏感数据,排除敏感数据和非敏感数据位于同一内存页上的情况。因为监控的颗粒度是以页表条目为单位,所以只要一个内存页中有敏感数据,那对应的这一个页表条目,就要被监控,被监控就意味着每次访问这个页表条目的时候,都会触发中断。如果敏感数据分散在每一个内存页中,则每个页表条目的每次访问都要中断,会非常影响操作系统的性能。因此将敏感数据存放的内存页和非敏感数据存放的内存页做区分,敏感数据集中存放在一起,访问非敏感数据对应的页表条目即可不触发中断,可以减少因为监控和中断导致的操作系统性能的损失。这可以通过修改相应的操作系统内核代码来实现帮助。
依据流程710,更改敏感数据页的标志位。访问限制可以根据不同的情景以及在性能和安全性之间进行权衡考虑的需要进行配置。例如,访问限制可以包括读取限制和写入限制中的任意一种或包括读写限制。限制越少,性能越好,限制越多,越安全,但性能影响越大。在本实施例中,我们使用当前存在标志位P位作为控制,并用它触发缺页中断PF,然后跳转到对应的中断处理程序。如上述所说,可以以标志位P位来标记敏感数据的页表条目和非敏感数据的页表条目,也可以以其他的标志位来实现该功能,在此不做赘述。
依据流程712,更新改进后的中断处理程序。可以通过多种方式安装,例如,通过覆盖中断描述符表中的地址,指向新的中断处理程序,或者覆盖原有的中断处理程序。这可以帮助捕获所有缺页中断PF或其他本申请实施例所描述的相同功能的中断,跳转到中断处理程序,并实现内存中敏感数据保护的操作。
依据流程714,实时更新程序和看门狗启动。实时更新程序监控敏感数据的新建和释放,一旦检测到变更,就对敏感数据的页表条目标志位和敏感数据列表进行相应的更新。
看门狗的主要责任是防止攻击者禁用和绕过本申请实施例中的内存敏感数据保护机制,防止实时更新程序、敏感数据列表、中断描述符表和页表条目标志位等等被篡改。
例如,恶意软件可以通过故意修改相应页表条目中的访问控制标志位,例如图6中页表条目614的P位,设置为1,来允许恶意内核代码604对内存敏感数据页622中敏感数据的访问。为了防止这种攻击,看门狗将在循环监测访问控制标志位的完整性。
操作系统初始化完成后,进入正常运转,在触发以下三个事件时,本申请实施例提到的技术方案会被唤起进行响应,这三个事件包括:敏感数据访问;操作系统实时事件对敏感数据列表进行更改;看门狗触发。下面将对这三种事件进行分别描述。
当被保护的敏感数据被访问时,因为其对应的页表条目被标志位P位标志为当前无效,会触发缺页中断PF,中断处理程序就会运行。需要注意的是,因为本申请实施例复用了已有的P位,当正常的非敏感数据当前不存在页表中时,缺页中断也会触发。因此,我们的改进中断处理程序需要按照图8所示的流程对缺页中断进行处理,后面会进行详细描述。
当一个中断被触发的时候,中断处理程序首先判断这是非敏感数据的正常中断还是敏感数据访问,如果是正常中断,则跳转到正常的中断处理按正常处理流程处理。如果是敏感数据访问,则对访问进行判断,根据判断结果决定是否允许数据访问。如果是疑似异常访问,则限制访问并告警。
在系统的运行过程中,实时更新程序会对操作系统的事件进行实时监测,当操作系统分配新的敏感数据或者释放旧的敏感数据时。它对敏感数据列表和页表条目的控制标志位的值也做相应更新。
一个具体实现案例可以通过注册回调通知程序并通过钩子实时监测新的操作系统的事件的信息,例如启动或终止新进程,加载或卸载新的动态可加载内核模块(Loadablekernel module,LKM),创建或关闭新文件或目录,从而进一步确定如何对敏感数据列表进行变更。
恶意软件可以故意删除回调通知程序并取消注册回调,通过这种方式,攻击者有可能绕过本申请实施例提出的技术方案。为了防止此类攻击,我们提出了一种自我保护看门狗机制进行保护,防御此类攻击。
看门狗旨在防止攻击者停止和/或禁用申请实施例提出的技术方案,以及防止一些组件被篡改,上文已提及,此次不做赘述。看门狗设定周期,循环监测这些组件不被篡改。
以缺页中断为例,接下来将对本申请实施例中对中断处理流程进行详细描述,如图8所示。
依据流程802,访问敏感数据的页表条目后,触发中断。
依据流程804,判断该中断的产生,是因为要访问敏感数据,还是访问非敏感数据。
如果只是访问的非敏感数据,是因为非敏感数据的不在内存页中,而触发的缺页中断,则跳转到流程806。如果是访问敏感数据,则跳转到流程808。
依据流程806,对缺页中断正常处理,例如,到硬盘中寻找需要访问的非敏感数据。
依据流程808,该中断指向中断处理程序,根据异常访问检测算法,中断处理程序判断上述对敏感数据的访问是否异常。
依据流程810,判断上述对敏感数据的访问是正常的还是异常的。当是正常的,则跳转到流程812,当是异常的,则跳转到流程814。
依据流程812,当对敏感数据的访问是正常的,则允许对敏感数据进行访问。
依据流程814,当对敏感数据的访问是异常的,则限制对敏感数据进行访问,并告警。
相对于现有技术周期性对内核代码进行完整性检查,从而带来检测时间上的延时,本申请实施例能实时监测到对敏感数据的访问,具有实时性。并提供了看门狗自我保护技术方案,该技术方案可防止一些组件被停止或禁用或篡改,并可对攻击者隐藏看门狗自身。
自我保护看门狗机制对于提供长期可信的异常检测,尤其是高级持续性威胁(advanced pers istent threat,APT)异常检测至关重要。
本申请实施例提供的技术方案可以不需要任何硬件扩展,例如硬件虚拟化技术,甚至可以针对轻量级操作系统实施。相对于业界许多基于虚拟化硬件的监控技术,本申请更加灵活。或者进行硬件扩展,例如增加新定义的页表条目标志位,来增强安全性,提高防护效率。
图9A展示本申请实施例提供的一种可行的装置结构图,其中包括:访问模块902、判断模块904、翻译模块906、存储模块908、处理模块912和分类模块914。用户通过访问模块902请求对存储模块908中的数据进行访问,判断模块904对该访问进行判断,判断是否访问的是需要被保护的数据。如果不是需要被保护的数据,则直接走到翻译模块906;如果是需要被保护的数据,则跳转到处理模块912。处理模块912判断该访问是否异常,如果异常,则限制访问,告警给用户有异常访问,如果是正常的,则允许访问,跳转到906翻译模块。翻译模块906将虚拟地址翻译成物理地址,根据物理地址,访问模块902最终访问到存储模块908中存储的需要被保护的数据,需要说明的是本申请提到的翻译的操作可以有其他称呼,例如映射等等,表达相同含义。另外分类模块914,将存储模块中需要被保护的数据和不需要被保护的数据进行区分,让同一个存储区块内只有需要被保护的数据或不需要被保护的数据。该存储区块可以是内存页,或者其他表示存储区域范围的形式。需要被保护的数据包括:敏感数据和其他有保护需求的数据;不需要被保护的数据包括:非敏感数据或其他没有保护需求的数据。
图9B展示了本申请另一实施例提供的一种可行的装置结构图,相比图9A所示的装置,新增加了更新模块910。更新模块910通过操作系统实时事件,如新建和/或移除一个内存空间区域,载入和/或卸载一个内核代码等,或者系统补丁更新中包含的最新攻击方式和最新攻击的数据类型,来对判断模块904、处理模块912和分类模块914进行更新。保证整个装置可以有效的拦截异常访问。
图9C展示了本申请另一实施例提供的一种可行的装置结构图,相比图9B所示的装置,新增加了监督模块916,监督模块916用于监督判断模块904、更新模块910和处理模块912中任意一个或多个的模块被恶意访问绕过或篡改的情况。如果监督模块916发现任意模块被绕过或篡改,则进行告警。
在本申请的一种可行实施例中,图6中的页表606可以实现图9C中的判断模块904和翻译模块906的功能;图6中的中断描述符表618、中断处理程序620、敏感数据列表628可以实现图9C中的处理模块912的功能;图6中的实时更新程序626可以实现图9C中的更新模块910的功能;图6中的看门狗630可以实现图9C中的监督模块916的功能;图6中的内存空间可以实现图9C中的存储模块908的功能;图9C中的分类模块914的功能由操作系统完成。对应的,图9C中的各个模块可以实现图6中各个组件的功能。容易理解,更新模块910对判断模块904、处理模块912和分类模块914的更新,即是对图6中各对应组件的更新。
本申请还提供了一种如图10所示的计算机设备,计算机设备包含处理器1002、存储器1006、通信接口1008和通信总线1004,处理器1002从存储器1006读取一组计算机指令以执行前述的数据保护的方法。
本申请实施例所描述的访问模块、判断模块、翻译模块、存储模块、更新模块、处理模块、分类模块和监督模块,可以通过图10所示的计算机设备执行计算机指令,实现各个模块所描述的功能。
本申请实施例提供了一种计算机存储介质,该计算机存储介质内存储有计算机程序,该计算机程序被处理器执行时实现前述的数据聚类方法的全部或部分步骤。
本申请实施例提供了一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行时实现前述的数据保护方法的全部或部分步骤。
需要解释的是,本申请实施例中敏感数据只是需要被保护数据中的一种,非敏感数据只是不需要被保护数据中的一种,本申请不对需要被保护数据和不需要被保护数据的种类进行限制,其他需要被保护数据和不需要被保护数据的种类相关的实施方式,也在本申请的保护范围之类。
应该理解,在本申请各个实施例中的各功能模块可以集成在一个模块中,也可以是各个模块单独功能模块存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件的形式实现,也可以采用硬件加软件功能模块的形式实现。
上述以软件功能模块的形式实现的模块的计算机指令,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的部分步骤。而前述的存储介质可以为可读取的非易失性存储介质,包括:移动硬盘、只读存储器(英文:Read-Only Memory,简称ROM)、随机存取存储器(英文:Random AccessMemory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案脱离权利要求的保护范围。

Claims (22)

1.一种数据保护的方法,其特征在于,所述方法包括:确定需要被保护数据,禁止对所述需要被保护数据直接访问;
如果访问的数据为所述需要被保护数据,触发中断以判断所述访问是否异常;
当所述访问是异常的时候,限制所述访问。
2.根据权利要求1所述的方法,其特征在于,所述判断所述访问是否异常包括:验证所述访问的来源和/或目的是否异常。
3.根据权利要求1-2任一项所述方法,其特征在于,所述方法还包括:将所述需要被保护数据和不需要被保护数据的存储区块分开,以使至少一个存储区块中只存在所述被保护数据或至少一个存储区块中只存在所述不需要被保护数据。
4.根据权利要求3任一项所述方法,其特征在于,所述方法还包括:对每个数据的存储区块的页表条目设置标志位,以指示对应数据是否为所述需要被保护数据。
5.根据权利要求1-4任一项所述方法,其特征在于,所述方法还包括:更新所述需要被保护数据的列表。
6.根据权利要求5所述的方法,其特征在于,所述对所述需要被保护数据的列表更新,包括:根据从操作系统的实时事件,更新所述列表。
7.根据权利要求1-6任一项所述方法,其特征在于,所述触发中断以判断所述访问是否异常,包括:根据所述中断从中断描述符表中确定所要运行的中断处理程序。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:设置看门狗以防止所述列表、所述中断描述符表、所述标志位中任意一个或多个的状态被篡改。
9.根据权利要求1-8任一项所述的方法,其特征在于,所述确定需要被保护数据,包括:根据已有被攻击数据的类型和/或功能,确认所述需要被保护数据。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:确定所述需要被保护数据被访问频率,当所述频率高于等于阈值的时候,则取消对所述需要被保护数据的保护。
11.一种数据保护的装置,其特征在于,所述装置包括:判断模块、处理模块、存储模块和分类模块,
所述分类模块用于从所述存储模块存储的数据中确定需要被保护数据;
所述判断模块用于禁止对所述需要被保护数据直接访问,如果访问数据为所述需要被保护数据,触发中断;
所述处理模块用于判断所述访问是否异常,当所述访问是异常的时候,限制所述访问。
12.根据权利要求11所述的装置,其特征在于,所述处理模块用于判断所述访问是否异常包括:验证所述访问的来源和/或目的是否异常。
13.根据权利要求11-12任一项所述装置,其特征在于,所述分类模块还用于将所述需要被保护数据和不需要被保护数据存储的区域分开,使至少存在一个存储区块中只存在所述被保护数据或所述不需要被保护数据。
14.根据权利要求13任一项所述装置,其特征在于,所述装置还包括更新模块,所述更新模块用于对每个数据的存储区块的页表条目设置标志位,以指示对应数据是否为所述需要被保护数据。
15.根据权利要求11-14任一项所述装置,其特征在于,所述更新模块还用于更新所述需要被保护数据的列表。
16.根据权利要求15所述的装置,其特征在于,所述更新模块还用于对所述需要被保护数据的列表更新,包括:所述更新模块根据操作系统的实时事件,对所述列表更新。
17.根据权利要求11-16任一项所述装置,其特征在于,所述处理模块用于判断所述访问是否异常,包括:所述处理模块根据所述中断从中断描述符表中确定所要运行的中断处理程序。
18.根据权利要求17所述的装置,其特征在于,所述装置还包括监督模块,所述监督模块用于防止所述列表、所述中断描述符表、所述标志位中任意一个或多个的状态被篡改。
19.根据权利要求11-18任一项所述装置,其特征在于,所述分类模块用于从所述存储模块存储的数据中确定需要被保护数据,包括:所述分类模块用于根据已有被攻击数据的类型和/或功能,确认所述需要被保护数据。
20.根据权利要求19所述的装置,其特征在于,所述更新模块还用于确定所述需要被保护数据被访问频率,当所述频率高于等于阈值的时候,则所述判断模块取消对所述需要被保护数据进行保护。
21.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,当所述计算机可读存储介质中的计算机指令被计算机设备执行时,使得所述计算机设备执行所述权利要求1-10中任一项权利要求所述的方法。
22.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,其中:
所述存储器中存储有计算机指令;
所述处理器执行所述计算机指令,以使所述计算机设备执行所述权利要求1-10中任一项权利要求所述的方法。
CN202111290201.6A 2020-11-20 2021-11-02 一种数据保护的方法、装置、存储介质和计算机设备 Pending CN114519186A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
RU2020138023 2020-11-20
RURU2020138023 2020-11-20

Publications (1)

Publication Number Publication Date
CN114519186A true CN114519186A (zh) 2022-05-20

Family

ID=81594156

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111290201.6A Pending CN114519186A (zh) 2020-11-20 2021-11-02 一种数据保护的方法、装置、存储介质和计算机设备

Country Status (4)

Country Link
US (1) US20230289465A1 (zh)
EP (1) EP4231181A4 (zh)
CN (1) CN114519186A (zh)
WO (1) WO2022105610A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114741338A (zh) * 2022-06-06 2022-07-12 飞腾信息技术有限公司 旁路转换缓存器、数据更新方法、内存管理单元及芯片

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8621620B2 (en) * 2011-03-29 2013-12-31 Mcafee, Inc. System and method for protecting and securing storage devices using below-operating system trapping
US9213828B2 (en) * 2012-02-08 2015-12-15 Arm Limited Data processing apparatus and method for protecting secure data and program code from non-secure access when switching between secure and less secure domains
KR20160069280A (ko) * 2014-12-08 2016-06-16 주식회사 탑코믹스 웹 컨텐츠로의 불법 접근 차단 장치 및 방법
KR20170105353A (ko) * 2016-03-09 2017-09-19 삼성전자주식회사 전자장치 및 그 제어방법
CN106778243B (zh) * 2016-11-28 2020-06-09 北京奇虎科技有限公司 基于虚拟机的内核漏洞检测文件保护方法及装置
CN107220189A (zh) * 2017-03-14 2017-09-29 晨星半导体股份有限公司 内存空间管理及内存访问控制方法及装置
CN107066311B (zh) * 2017-03-20 2020-11-20 中国科学院软件研究所 一种内核数据访问控制方法与系统
EP3726390B1 (en) * 2018-02-02 2024-04-24 Huawei Technologies Co., Ltd. Method and device for protecting kernel integrity
CN110688650B (zh) * 2019-08-15 2024-03-08 奇安信安全技术(珠海)有限公司 访问请求的监测方法及装置、存储介质、计算机设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114741338A (zh) * 2022-06-06 2022-07-12 飞腾信息技术有限公司 旁路转换缓存器、数据更新方法、内存管理单元及芯片
CN114741338B (zh) * 2022-06-06 2022-09-13 飞腾信息技术有限公司 旁路转换缓存器、数据更新方法、内存管理单元及芯片

Also Published As

Publication number Publication date
US20230289465A1 (en) 2023-09-14
WO2022105610A1 (zh) 2022-05-27
EP4231181A4 (en) 2024-04-03
EP4231181A1 (en) 2023-08-23

Similar Documents

Publication Publication Date Title
CA2990343C (en) Computer security systems and methods using asynchronous introspection exceptions
CN107066311B (zh) 一种内核数据访问控制方法与系统
US20160232347A1 (en) Mitigating malware code injections using stack unwinding
US8689007B2 (en) Integrity protection in data processing systems
US9384349B2 (en) Negative light-weight rules
US8966629B2 (en) System and method for below-operating system trapping of driver loading and unloading
CN104520867B (zh) 用于目标装置的主动监测、存储器保护和完整性验证的方法、系统和计算机可读介质
US20120216281A1 (en) Systems and Methods for Providing a Computing Device Having a Secure Operating System Kernel
US20120255013A1 (en) System and method for below-operating system modification of malicious code on an electronic device
CN108154032B (zh) 具有内存完整性保障功能的计算机系统信任根构建方法
WO2014149624A1 (en) Linear address mapping protection
KR20140033349A (ko) 가상 머신 모니터 기반 안티 악성 소프트웨어 보안 시스템 및 방법
WO2011076464A1 (en) Method and system for protecting an operating system against unauthorized modification
CN111400702A (zh) 一种虚拟化的操作系统内核保护方法
US20230289465A1 (en) Data Protection Method and Apparatus, Storage Medium, and Computer Device
KR100745640B1 (ko) 커널 메모리를 보호하는 방법 및 그 장치
KR100666562B1 (ko) 커널 드라이버 및 프로세스 보호 방법
KR20200041639A (ko) 차량용 소프트웨어 업데이트 장치 및 그 제어 방법
Shi et al. Vanguard: A cache-level sensitive file integrity monitoring system in virtual machine environment
Kuzuno et al. KMO: kernel memory observer to identify memory corruption by secret inspection mechanism
KR102344966B1 (ko) 파일 기반 기만 기술을 이용한 공격 탐지 장치 및 방법
CN116910768B (zh) 一种防御攻击方法、系统、装置及介质
Kuzuno et al. Identification of kernel memory corruption using kernel memory secret observation mechanism
Velten et al. Active File Integrity Monitoring Using Paravirtualized Filesystems
US20220342984A1 (en) Integrity monitor

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