CN111177726A - 一种系统漏洞检测方法、装置、设备及介质 - Google Patents

一种系统漏洞检测方法、装置、设备及介质 Download PDF

Info

Publication number
CN111177726A
CN111177726A CN201910809152.9A CN201910809152A CN111177726A CN 111177726 A CN111177726 A CN 111177726A CN 201910809152 A CN201910809152 A CN 201910809152A CN 111177726 A CN111177726 A CN 111177726A
Authority
CN
China
Prior art keywords
memory
address
request
memory block
sensitive information
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
CN201910809152.9A
Other languages
English (en)
Other versions
CN111177726B (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201910809152.9A priority Critical patent/CN111177726B/zh
Publication of CN111177726A publication Critical patent/CN111177726A/zh
Application granted granted Critical
Publication of CN111177726B publication Critical patent/CN111177726B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

本申请提供一种系统漏洞检测方法,包括:获取对系统内存进行读取的读取请求;提取所述读取请求所请求访问的第一内存地址;当第一内存地址为不可读的地址时,判断第一内存地址是否为陷阱页内存块所在的地址;若是,判定读取请求为异常请求;当第一内存地址为可读的地址时,判断第一内存地址是否为敏感信息内存块所在的地址;若第一内存地址是敏感信息内存块所在的地址,判断读取请求是否为系统自身的调用请求;若否,判定读取请求为异常请求。本申请还提供一种系统漏洞检测装置、设备及介质,具有很好的隐蔽性,很难被攻击者探查,从而具有很高的检测力,可以有效的防止攻击者对操作系统的破坏;也无需重新编译内核,提升了使用效率。

Description

一种系统漏洞检测方法、装置、设备及介质
技术领域
本发明涉及计算机技术领域,更具体地说,涉及一种系统漏洞检测方法、装置、设备及介质。
背景技术
内核是操作系统的核心部分,内核信息泄露漏洞关系着整个操作系统的安全。内核任意地址可读漏洞作为内核信息泄露漏洞的一种,攻击者通过分析内核文件特征,然后进一步扫描内核的虚拟地址空间获取内核信息。因此,攻击者可以通过内核任意地址可读漏洞获取到计算机内核机密信息,极大地威胁击者可以通过内核任意地址可读漏洞获取到计算机内核机密信息,极大地威胁到操作系统的安全性。
现有技术中,通过在内核所在的虚拟地址空间中插入干扰分页,在内核初始化阶段,从干扰分页中选取部分或全部干扰分页,并使选取的干扰分页不存在映射的物理地址,使得攻击者在利用内核任意地址可读漏洞时,扫描到不存在映射的物理地址的干扰分页时,返回异常,从而难以稳定地扫描内核虚拟地址空间,但是该方案需要重新编译内核,其稳定性和灵活性大打折扣,并且由于其干扰分页的固定性,很容易被攻击者发现和绕过。
因此,上述技术问题还有待于解决。
发明内容
有鉴于此,为解决上述问题,本发明提供的技术方案如下:
一种系统漏洞检测方法,包括:
获取对系统内存进行读取的读取请求;
提取所述读取请求所请求访问的第一内存地址;
当所述第一内存地址为不可读的地址时,判断所述第一内存地址是否为陷阱页内存块所在的地址,所述陷阱页内存块为所述系统内存中预设的属性为不可读的内存块;
若是,判定所述读取请求为异常请求;
当所述第一内存地址为可读的地址时,判断所述第一内存地址是否为敏感信息内存块所在的地址,所述敏感信息内存块为所述系统内存中预设的用于存储系统敏感信息的内存块;
若所述第一内存地址是敏感信息内存块所在的地址,判断所述读取请求是否为系统自身的调用请求;
若否,判定所述读取请求为异常请求。
一种系统漏洞检测装置,包括:
获取单元,所述获取单元用于获取对系统内存进行读取的读取请求;
提取单元,所述提取单元用于提取所述获取单元获取的所述读取请求所请求访问的第一内存地址;
第一判定单元,所述第一判定单元用于:
当所述第一内存地址为不可读的地址时,判断所述第一内存地址是否为陷阱页内存块所在的地址,所述陷阱页内存块为所述系统内存中预设的属性为不可读的内存块;
若是,判定所述读取请求为异常请求;
第二判定单元,所述第二判定单元用于:
当所述第一内存地址为可读的地址时,判断所述第一内存地址是否为敏感信息内存块所在的地址,所述敏感信息内存块为所述系统内存中预设的用于存储系统敏感信息的内存块;
若所述第一内存地址是敏感信息内存块所在的地址,判断所述读取请求是否为系统自身的调用请求;
若否,判定所述读取请求为异常请求。
可选地,所述装置还包括:
报警单元,所述报警单元用于向安全服务器发送报警信息,所述报警信息用于告知所述安全服务器系统中存在漏洞。
可选地,所述报警装置还用于:
向所述安全服务器发送系统状态、第一调用栈以及调用进程,以使所述安全服务器知晓所述系统内存中的系统漏洞的详情。
可选地,所述装置还包括第一创建模块,所述第一创建模块用于:
从所述系统内存的内核空间中随机获取至少一个第一内存块;
通过虚拟化内存将所述第一内存块设置为不可读状态,从而得到所述陷阱页内存块。
可选地所述第一创建模块还用于:当所述第一内存块的数量为多个时,所述多个第一内存块之间的间隔不一致,且所述间隔的距离大于预设值。
可选地,所述装置还包括第二创建模块,所述第二创建模块用于:
选取系统中需要保护的第一敏感信息;
通过虚拟化内存将存储有所述第一敏感信息的第二内存块设置为不可读状态,从而得到所述敏感信息内存块。
可选地,所述第二判定单元,还用于:
通过栈回溯技术得到所述读取请求的第二调用栈;
通过所述第二调用栈判断所述读取请求是否为系统自身的调用请求。
一种计算机设备,所述计算机设备包括:交互装置、输入/输出(I/O)接口、处理器和存储器,所述存储器中存储有程序指令;
所述交互装置用于获取用户输入的操作指令;
所述处理器用于执行存储器中存储的程序指令,执行上述任意一项所述的方法。
一种计算机可读存储介质,包括指令,当所述指令在计算机设备上运行时,使得所述计算机设备执行上述任意一项所述的方法。
本申请所提供的一种系统漏洞检测方法,包括:获取对系统内存进行读取的读取请求;提取所述读取请求所请求访问的第一内存地址;当所述第一内存地址为陷阱页内存块所在的地址时,判定所述读取请求为异常请求,其中,所述陷阱页内存块为所述系统内存中属性为不可读的内存块;当所述第一内存地址为所述敏感信息内存块所在的地址,且所述读取请求不具备读取所述敏感信息内存块的读取权限时,判定所述读取请求为异常请求,其中,所述敏感信息内存块为所述系统内存中存储系统敏感信息的内存块。本方法具有很高的检测力,可以有效的防止攻击者对操作系统的破坏;同时具有很好的隐蔽性,很难被攻击者探查;也无需重新编译内核,提升了使用效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例所提供的系统漏洞检测方法的执行主体架构图;
图2为本申请实施例提供的系统漏洞检测方法的一个实施例的流程图;
图3为本申请实施例提供的系统漏洞检测方法的另一个实施例的流程图;
图4为本申请实施例提供的系统漏洞检测方法的另一个实施例的流程图;
图5A为本申请实施例提供的系统漏洞检测方法的另一个实施例的流程图;
图5B为本申请实施例提供的系统漏洞检测方法的另一个实施例的流程图;
图6为本申请实施例所提供的计算机设备的示意图;
图7为本申请实施例所提供的系统漏洞检测装置的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
内核是操作系统的核心部分,内核信息泄露漏洞关系着整个操作系统的安全。内核任意地址可读漏洞作为内核信息泄露漏洞的一种,攻击者通过分析内核文件特征,然后进一步扫描内核的虚拟地址空间获取内核信息。因此,攻击者可以通过内核任意地址可读漏洞获取到计算机内核机密信息,极大地威胁击者可以通过内核任意地址可读漏洞获取到计算机内核机密信息,极大地威胁到操作系统的安全性。
为解决此问题,当前主要是通过在内核所在的虚拟地址空间中插入干扰分页,在内核初始化阶段,从干扰分页中选取部分或全部干扰分页,并使选取的干扰分页不存在映射的物理地址,使得攻击者在利用内核任意地址可读漏洞时,扫描到不存在映射的物理地址的干扰分页时,返回异常,从而难以稳定地扫描内核虚拟地址空间,但是该方案需要重新编译内核,其稳定性和灵活性大打折扣,并且由于其干扰分页的固定性,很容易被攻击者发现和绕过。
因此,针对上述问题,本申请实施例提供了一种系统漏洞检测方法,为便于理解,以下结合附图,对本申请实施例所提供的方法进行详细说明。
首先,对本申请中所涉及的概念进行说明。
漏洞:漏洞是在硬件、软件、协议的具体实现或系统安全策略上存在的缺陷,从而可以使攻击者能够在未授权的情况下访问或破坏系统。
虚拟化技术:虚拟化(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以比原本的组态更好的方式来应用这些资源。这些资源的新虚拟部分是不受现有资源的架设方式,地域或物理组态所限制。一般所指的虚拟化资源包括计算能力和资料存储。
请参阅图1,如图1所示,本申请实施例所提供的系统漏洞检测方法由如图1所示的架构来实现,具体包括:
物理硬件层101,该物理硬件层101即为物理的硬件设备,操作系统在该物理硬件层101中运行。
虚拟化层102,该层主要利用硬件虚拟化技术,比如Intel-VT或AMD-V,将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以比原本的组态更好的方式来应用这些资源。这些资源的新虚拟部分是不受现有资源的架设方式,地域或物理组态所限制。一般所指的虚拟化资源包括计算能力和资料存储。
需要说明的是,在虚拟化层102的基础上,利用虚拟化技术,通过内核信息泄漏检测装置执行本申请实施例所提供的系统漏洞检测方法,该内核信息泄漏检测装置主要分为以下4个模块。
陷阱页生成模块1021,该模块通过虚拟化内存技术(EPT)随机的在操作系统内核空间中创建出陷阱页,具体创建方法在后续进行详细说明。
敏感信息监控模块1022,该模块通过虚拟化内存技术(EPT),读取系统内核的敏感数据内存区,当攻击者要读取这些敏感数据时就会触发异常,具体创建方法在后续进行详细说明。
信息泄漏检测模块1023,当陷阱页和敏感信息触发异常后,信息泄漏检测模块会进行当前的系统状态检测,具体工作方式在后续进行详细说明。
报警模块1024,当信息泄漏检测模块确认系统受到了漏洞攻击,则进行报警,将系统信息发送给安全服务器上。
操作系统层103,系统操作层具体包括用户层1031与内核层1032,其中,用户通过用户层1031操作所述内核层的内容,从而操作该操作系统,该操作系统层103根据用户的命令对虚拟化层102进行操作。
请参阅图2,如图2所示,基于上述架构,本申请实施例所提供的系统漏洞检测方法,包括以下步骤。
201、获取对系统内存进行读取的读取请求。
本实施例中,本步骤由操作系统层来执行,系统内存根据读取请求接受进程对系统内存的读取,这些读取请求有可能是用户或系统自身的读取请求,也有可能是黑客等攻击者利用系统漏洞发起的攻击,因此需要对读取请求的合法性进行鉴别。
202、提取读取请求所请求访问的第一内存地址。
本实施例中,由上述信息泄漏检测模块来提取读取请求所请求访问的第一内存地址,并做出判断,该第一地址是否为陷阱页内存块所在的地址或敏感信息内存块所在的地址。
203、当第一内存地址为不可读的地址时,判断第一内存地址是否为陷阱页内存块所在的地址。
204、若是,判定所述读取请求为异常请求。
本实施例中,陷阱页内存块为系统内存中预设的属性为不可读的内存块,可选地,陷阱页内存块的数量为多个,由于事先预设为不可读,正常操作系统代码并不会访问这些陷阱页内存块,因此,当信息泄漏检测模块检测到当前进程的访问请求访问了陷阱页内存块时,即可判定当前访问请求为异常请求。
205、当第一内存地址为可读的地址时,判断第一内存地址是否为敏感信息内存块所在的地址。
本实施例中,敏感信息内存块为系统内存中预设的存储系统敏感信息的内存块,例如,存储了Windows用户凭证,和/或,进程token的内存块,当第一内存地址为敏感信息内存块所在的地址时,信息泄漏检测模块会进行当前的系统状态检测,利用调用栈以及其他系统状态信息,进一步判断该读取请求是否具备读取敏感信息内存块的读取权限,若具备读取权限,说明读取请求为系统内部的请求,为合法请求,若不具备读取权限,说明该读取请求为异常请求。
206、若所述第一内存地址是敏感信息内存块所在的地址,判断读取请求是否为系统自身的调用请求。
本实施例中,读取请求是否为系统自身的调用请求,即读取请求具备了第一读取权限,在第一内存地址为敏感信息内存块所在的地址时,信息泄漏检测模块判断读取请求权限的方式,具体包括以下步骤:
通过栈回溯技术得到读取请求的第二调用栈。
本实施例中,该调用栈为计算机科学中存储有关正在运行的子程序的消息的栈。
判断第二调用栈是否为系统自身的调用。
本实施例中,调用的不同,决定了当前读取请求是否具备读取敏感信息的权限。
若否,判断读取请求不具备所述第一读取权限。
207、若否,判定读取请求为异常请求。
本实施例中,若读取请求不具备第一读取权限,即可判定该读取请求为异常请求。
本实施例中,通过栈回溯技术得到读取请求的调用栈,从而通过调用栈是否为系统本身的调用,来判断当前读取请求是否具备读取敏感信息的权限。
需要说明的是,在上述步骤204之后,对于异常请求,可以采用以下措施:
向安全服务器发送报警信息。
本实施例中,由上述报警模块来执行上述报警操作,该报警信息用于告知安全服务器系统中存在漏洞,从而安全服务器可以针对该异常请求采用相应的措施,具体措施的实施方式本申请实施例并不进行限定。
进一步地,该报警信息可以包括:系统状态、第一调用栈以及调用进程,从而使得安全服务器可以根据系统状态、第一调用栈以及调用进程执行系统漏洞的详情,以便采取更加精准的措施,来应对系统漏洞的情况。
本实施例中,通过设置陷阱页内存块,来对异常访问请求进行识别,由于陷阱页内存块是预设的状态为不可读的内存块,因此不需要对系统的内核进行编译即可实现,方便操作,同时,具有很好的隐蔽性,不容易被攻击者探查,从而无法绕过,提高了检测力,能够有效地防止攻击者对操作系统的破坏。
需要说明的是,在上述步骤201之前,需要预设上述陷阱页内存块和敏感信息内存块,之后才能进行后续201至204的步骤,为便于理解,以下结合附图,对生成陷阱页内存块和敏感信息内存块的具体步骤分别进行详细说明。
一、陷阱页内存块的生成。
请参阅图3,如图3所示,在上述步骤201至207之前,本申请实施例所提供的系统漏洞检测方法还包括以下步骤:
301、从系统内存的内核空间中随机获取至少一个第一内存块。
本实施例中,优选地,该第一内存块的数量为多个,且多个第一内存块之间的间隔不一致,间隔的距离大于预设值,从而多个第一内存块能够更容易被异常请求访问,从而捕获异常请求,第一内存块之间的间隔不一致,使得异常请求无法根据间隔的规律性绕过第一内存块,间隔的距离大于预设值使得第一内存块之间具有更广的分布,更好地对系统内存进行保护。
302、通过虚拟化内存将第一内存块设置为不可读状态,从而得到陷阱页内存块。
本实施例中,利用虚拟化内存(EPT)将第一内存块设置为不可读状态。具体实现方式是设置EPT页表的第0位为0值。然后将这些陷阱页交给信息泄漏检测模块,以便异常发生时能够进行检测判断。
步骤303至309可参阅上述步骤201至207,此处不再赘述。
本实施例中,通过选取间隔不一致,且分布较广的内存块作为陷阱页内存块,从而在不改写内核的情况下实现对异常访问的监控。
二、敏感信息内存块的生成。
请参阅图4,如图4所示,在上述步骤201至207之前,本申请实施例所提供的系统漏洞检测方法还包括以下步骤:
401、选取系统中需要保护的第一敏感信息。
本实施例中,操作系统中有很多敏感信息,因此将敏感信息所在内存区域保护起来很有必要,例如,第一敏感信息可以是Windows用户凭证或进程token等。
402、通过虚拟化内存将存储有所述第一敏感信息的第二内存块设置为不可读状态,从而得到所述敏感信息内存块。
本实施例中,利用虚拟化内存(EPT)将储存有敏感信息的第二内存块设置为不可读状态。具体做法是这是EPT页表的第0位标记值为0。然后将这些内存块交给信息泄漏检测模块,当异常发生时进行判断。
步骤403至409可参阅上述步骤201至207,此处不再赘述。
本实施例中,通过设置不可读状态,对系统的敏感信息进行主动的保护,一方面可以用于保护系统敏感数据不被读取,另一方面,当异常进程读取敏感信息内存块时,能够被及时发现,从而起到了检测异常请求的作用。
上述对本申请实施例所提供的系统漏洞检测方法进行了介绍,为便于理解,以下结合实际使用场景,对本申请所提供的系统漏洞检测方法的具体实施方式做详细说明。
请参阅图5A,如图5A所示,本申请实施例所提供的系统漏洞检测方法的具体实施方式包括以下步骤。
501、对虚拟化层进行初始化处理。
本实施例中,利用硬件虚拟化技术VT,构建虚拟化层,初始化过程包括设置VT相关参数,初始化虚拟化设备,调用操作系统引导程序等。
502、向操作系统发送启动指令,以使得操作系统开始工作流程。
本实施例中,该过程是操作系统的正常启动过程,它无法感知下层的虚拟化层,就像在运行在物理硬件之上。
503、向内核信息泄漏检测装置发送启动指令,以使得内核信息泄漏检测装置开始工作流程。
本实施例中,当操作系统启动完成后,开启内存信息泄漏检测装置,该装置会首先检查CPU是否支持内存只运行模式,如果不支持则无法进行后续的设置不可读陷阱页。接着收集操作系统的版本,内核的内存布局等,随后进入陷阱页生成模块。
504、从系统内存的内核空间中随机获取至少一个第一内存块。
本实施例中,陷阱页是指对内核空间随机的取出若干内存块,主要目标是内核中的代码段,在检测装置启动时,内核的内存布局已经收集,在代码段中,随机的选取若干个内存区块,每个内存区块的间隔要不一致,并且区块的分布要广,然后将区块信息进行保存,供下一步使用。
需要说明的是,本步骤的具体实现方式可参阅上述步骤301,此处不再赘述。
505、通过虚拟化内存将第一内存块设置为不可读状态,从而得到陷阱页内存块。
本实施例中,获取到随机的内存区块后,利用虚拟化内存(EPT)将所有的区块设置为不可读状态。具体是设置EPT页表的第0位为0值。然后将这些陷阱页交给信息泄漏检测模块,当异常发生时进行检测判断。
需要说明的是,本步骤的具体实现方式可参阅上述步骤302,此处不再赘述。
506、选取系统中需要保护的第一敏感信息。
本实施例中,操作系统中有很多敏感信息,因此将敏感信息所在内存区域保护起来很有必要,比如Windows用户凭证,进程token等,然后将敏感信息发送给监控模块。
需要说明的是,本步骤的具体实现方式可参阅上述步骤401,此处不再赘述。
507、通过虚拟化内存将存储有第一敏感信息的第二内存块设置为不可读状态。
本实施例中,监控敏感信息和陷阱页类似,同样利用虚拟化内存(EPT)将所有的敏感信息内存区块设置为不可读状态。具体做法是这是EPT页表的第0位标记值为0。然后将这些内存块交给信息泄漏检测模块,当异常发生时进行判断。
需要说明的是,本步骤的具体实现方式可参阅上述步骤402,此处不再赘述。
508、判断系统是否受到漏洞攻击。
本实施例中,由信息泄露检测模块来执行信息泄漏检测,该模块主要的功能是判断是否受到了漏洞攻击,请参阅图5B,如图5B所示,步骤508的具体流程如下:
5081、捕获读取系统内存的读取请求。
5082、提取读取请求中所要求访问的内存地址。
5083、判断该地址是否属于陷阱页内存块或敏感信息内存块。
本实施例中,读取请求中包含其请求访问的内存地址,信息泄露检测模块通过获取该地址,即可知晓读取请求请求访问的内存块。
5084、若读取请求请求读取陷阱页区块内存,则认为受到了黑客的漏洞攻击。
本实施例中是,前期在生成陷阱页时,确保了正常的操作系统代码不会读取陷阱页区块的内存,因此,只要读取请求申请读取陷阱页,即可立即判断该读取请求为异常请求。
5085、若读取请求请求读取敏感信息内存块,则利用栈回溯技术得到调用栈。
5086、判断该调用栈是否为系统自身的调用。
5087、若读取请求不是系统自身的调用,判定为受到了黑客的漏洞攻击。
本实施例中,栈回溯技术得到调用栈的方式可以是x86下通过EBP所指向的栈帧进行回溯,得到调用栈;判断该调用栈是否为系统自身的调用的具体方式可以是:判断当前调用进程的权限,如果是系统权限,则认为是系统自身的调用,否则受到了黑客的漏洞攻击。
5088、如果确认受到了漏洞攻击,则将操作系统状态,调用栈,调用进程等信息传输给报警模块。
本实施例中,操作系统状态,调用栈,调用进程等信息用于表示当前系统的漏洞状态,以便报警模块了解报警的详情。
509、执行报警操作。
本实施例中,报警模块将攻击现场发送给安全服务器进行预警,其中,该攻击现场可以包括上述操作系统状态,调用栈,调用进程等信息;然后提示用户发现了漏洞攻击的行为,以便用户采取相关补救措施。
上述对本申请所提供的一种系统漏洞检测方法进行了介绍,本方法包括:获取对系统内存进行读取的读取请求;提取所述读取请求所请求访问的第一内存地址;当所述第一内存地址为陷阱页内存块所在的地址时,判定所述读取请求为异常请求,其中,所述陷阱页内存块为所述系统内存中属性为不可读的内存块;当所述第一内存地址为所述敏感信息内存块所在的地址,且所述读取请求不具备读取所述敏感信息内存块的读取权限时,判定所述读取请求为异常请求,其中,所述敏感信息内存块为所述系统内存中存储系统敏感信息的内存块。本方法具有很高的检测力,可以有效的防止攻击者对操作系统的破坏;同时具有很好的隐蔽性,很难被攻击者探查;也无需重新编译内核,提升了使用效率。
上述对本申请实施例提供的方案进行了介绍。可以理解的是,计算机设备为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
从硬件结构上来描述,上述方法可以由一个实体设备实现,也可以由多个实体设备共同实现,还可以是一个实体设备内的一个逻辑功能模块,本申请实施例对此不作具体限定。
例如,上述方法均可以通过图6中的计算机设备来实现。图6为本申请实施例提供的计算机设备的硬件结构示意图。该计算机设备包括至少一个处理器601,通信线路602,存储器603以及至少一个通信接口604。
处理器601可以是一个通用中央处理器(central processing unit,CPU),微处理器,特定应用集成电路(application-specific integrated circuit,服务器IC),或一个或多个用于控制本申请方案程序执行的集成电路。
通信线路602可包括一通路,在上述组件之间传送信息。
通信接口604,使用任何收发器一类的装置,用于与其他设备或通信网络通信,如以太网,无线接入网(radio access network,RAN),无线局域网(wireless local areanetworks,WLAN)等。
存储器603可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electricallyer服务器able programmable read-only memory,EEPROM)、只读光盘(compact disc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过通信线路602与处理器相连接。存储器也可以和处理器集成在一起。
其中,存储器603用于存储执行本申请方案的计算机执行指令,并由处理器601来控制执行。处理器601用于执行存储器603中存储的计算机执行指令,从而实现本申请上述实施例提供的方法。
可选的,本申请实施例中的计算机执行指令也可以称之为应用程序代码,本申请实施例对此不作具体限定。
在具体实现中,作为一种实施例,处理器601可以包括一个或多个CPU,例如图6中的CPU0和CPU1。
在具体实现中,作为一种实施例,计算机设备可以包括多个处理器,例如图6中的处理器601和处理器607。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
在具体实现中,作为一种实施例,计算机设备还可以包括输出设备605和输入设备606。输出设备605和处理器601通信,可以以多种方式来显示信息。例如,输出设备605可以是液晶显示器(liquid crystal display,LCD),发光二级管(light emitting diode,LED)显示设备,阴极射线管(cathode ray tube,CRT)显示设备,或投影仪(projector)等。输入设备606和处理器601通信,可以以多种方式接收用户的输入。例如,输入设备606可以是鼠标、键盘、触摸屏设备或传感设备等。
上述的计算机设备可以是一个通用设备或者是一个专用设备。在具体实现中,计算机设备可以是台式机、便携式电脑、网络服务器、掌上电脑(personal digitalassistant,PDA)、移动手机、平板电脑、无线终端设备、嵌入式设备或有图6中类似结构的设备。本申请实施例不限定计算机设备的类型。
本申请实施例可以根据上述方法示例对存储设备进行功能单元的划分,例如,可以对应各个功能划分各个功能单元,也可以将两个或两个以上的功能集成在一个处理单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
比如,以采用集成的方式划分各个功能单元的情况下,图7示出了一种系统漏洞检测装置的示意图。
如图7所示,本申请实施例提供的装置,包括:
获取单元701,所述获取单元701用于获取对系统内存进行读取的读取请求;
提取单元702,所述提取单元702用于提取所述获取单元701获取的所述读取请求所请求访问的第一内存地址;
第一判定单元703,所述第一判定单元703用于:
当所述第一内存地址为不可读的地址时,判断所述第一内存地址是否为陷阱页内存块所在的地址,所述陷阱页内存块为所述系统内存中预设的属性为不可读的内存块;
若是,判定所述读取请求为异常请求;
第二判定单元704,所述第二判定单元704用于:
当所述第一内存地址为可读的地址时,判断所述第一内存地址是否为敏感信息内存块所在的地址,所述敏感信息内存块为所述系统内存中预设的用于存储系统敏感信息的内存块;
若所述第一内存地址是敏感信息内存块所在的地址,判断所述读取请求是否为系统自身的调用请求;
若否,判定所述读取请求为异常请求。
可选地,所述装置还包括:
报警单元705,所述报警单元705用于向安全服务器发送报警信息,所述报警信息用于告知所述安全服务器系统中存在漏洞。
可选地,所述报警单元705还用于:
向所述安全服务器发送系统状态、第一调用栈以及调用进程,以使所述安全服务器知晓所述系统内存中的系统漏洞的详情。
可选地,所述装置还包括第一创建单元706,所述第一创建单元706用于:
从所述系统内存的内核空间中随机获取至少一个第一内存块;
通过虚拟化内存将所述第一内存块设置为不可读状态,从而得到所述陷阱页内存块。
可选地所述第一创建单元706还用于:当所述第一内存块的数量为多个时,所述多个第一内存块之间的间隔不一致,且所述间隔的距离大于预设值。
可选地,所述装置还包括第二创建单元707,所述第二创建单元707用于:
选取系统中需要保护的第一敏感信息;
通过虚拟化内存将存储有所述第一敏感信息的第二内存块设置为不可读状态,从而得到所述敏感信息内存块。
可选地,所述第二判定单元704,还用于:
通过栈回溯技术得到所述读取请求的第二调用栈;
判断所述第二调用栈是否为系统自身的调用;
若否,判断所述读取请求不具备所述第一读取权限。
进一步的,本发明实施例还提供一种计算机存储介质,包括指令,当该指令在计算机设备上运行时,使得该计算机设备执行上述方法。
有关本申请实施例提供的计算机存储介质中存储的程序的详细描述可参照上述实施例,在此不做赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的核心思想或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种系统漏洞检测方法,其特征在于,包括:
获取对系统内存进行读取的读取请求;
提取所述读取请求所请求访问的第一内存地址;
当所述第一内存地址为不可读的地址时,判断所述第一内存地址是否为陷阱页内存块所在的地址,所述陷阱页内存块为所述系统内存中预设的属性为不可读的内存块;
若是,判定所述读取请求为异常请求;
当所述第一内存地址为可读的地址时,判断所述第一内存地址是否为敏感信息内存块所在的地址,所述敏感信息内存块为所述系统内存中预设的用于存储系统敏感信息的内存块;
若所述第一内存地址是敏感信息内存块所在的地址,判断所述读取请求是否为系统自身的调用请求;
若否,判定所述读取请求为异常请求。
2.根据权利要求1所述的方法,其特征在于,所述判定所述读取请求为异常请求之后,还包括:
向安全服务器发送报警信息,所述报警信息用于告知所述安全服务器系统中存在漏洞。
3.根据权利要求2所述的方法,其特征在于,所述向安全服务器发送报警信息,包括:
向所述安全服务器发送系统状态、第一调用栈以及调用进程,以使所述安全服务器知晓所述系统内存中的系统漏洞的详情。
4.根据权利要求1所述的方法,其特征在于,所述获取对系统内存进行读取的读取请求之前,还包括:
从所述系统内存的内核空间中随机获取至少一个第一内存块;
通过虚拟化内存将所述第一内存块设置为不可读状态,从而得到所述陷阱页内存块。
5.根据权利要求4所述的方法,其特征在于,当所述第一内存块的数量为多个时,所述多个第一内存块之间的间隔不一致,且所述间隔的距离大于预设值。
6.根据权利要求1所述的方法,其特征在于,所述获取对系统内存进行读取的读取请求之前,还包括:
选取系统中需要保护的第一敏感信息;
通过虚拟化内存将存储有所述第一敏感信息的第二内存块设置为不可读状态,从而得到所述敏感信息内存块。
7.根据权利要求1所述的方法,其特征在于,所述若所述第一内存地址是敏感信息内存块所在的地址,判断所述读取请求是否为系统自身的调用请求,包括:
通过栈回溯技术得到所述读取请求的第二调用栈;
通过所述第二调用栈判断所述读取请求是否为系统自身的调用请求。
8.一种系统漏洞检测装置,其特征在于,包括:
获取单元,所述获取单元用于获取对系统内存进行读取的读取请求;
提取单元,所述提取单元用于提取所述获取单元获取的所述读取请求所请求访问的第一内存地址;
第一判定单元,所述第一判定单元用于:
当所述第一内存地址为不可读的地址时,判断所述第一内存地址是否为陷阱页内存块所在的地址,所述陷阱页内存块为所述系统内存中预设的属性为不可读的内存块;
若是,判定所述读取请求为异常请求;
第二判定单元,所述第二判定单元用于:
当所述第一内存地址为可读的地址时,判断所述第一内存地址是否为敏感信息内存块所在的地址,所述敏感信息内存块为所述系统内存中预设的用于存储系统敏感信息的内存块;
若所述第一内存地址是敏感信息内存块所在的地址,判断所述读取请求是否为系统自身的调用请求;
若否,判定所述读取请求为异常请求。
9.一种计算机设备,其特征在于,所述计算机设备包括:交互装置、输入/输出(I/O)接口、处理器和存储器,所述存储器中存储有程序指令;
所述交互装置用于获取用户输入的操作指令;
所述处理器用于执行存储器中存储的程序指令,执行如权利要求1-7中任意一项所述的方法。
10.一种计算机可读存储介质,包括指令,其特征在于,当所述指令在计算机设备上运行时,使得所述计算机设备执行如权利要求1-7中任意一项所述的方法。
CN201910809152.9A 2019-08-29 2019-08-29 一种系统漏洞检测方法、装置、设备及介质 Active CN111177726B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910809152.9A CN111177726B (zh) 2019-08-29 2019-08-29 一种系统漏洞检测方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910809152.9A CN111177726B (zh) 2019-08-29 2019-08-29 一种系统漏洞检测方法、装置、设备及介质

Publications (2)

Publication Number Publication Date
CN111177726A true CN111177726A (zh) 2020-05-19
CN111177726B CN111177726B (zh) 2024-02-06

Family

ID=70646092

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910809152.9A Active CN111177726B (zh) 2019-08-29 2019-08-29 一种系统漏洞检测方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN111177726B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112269716A (zh) * 2020-06-01 2021-01-26 中国科学院信息工程研究所 灵活定义的处理器异常访问实时监测方法及电子装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103197915A (zh) * 2013-03-01 2013-07-10 华为技术有限公司 一种处理敏感指令的方法、装置以及物理机
CN104899157A (zh) * 2015-05-28 2015-09-09 北京北信源软件股份有限公司 一种内存溢出检测方法和系统
CN106502926A (zh) * 2016-09-26 2017-03-15 华为技术有限公司 一种内存监控方法、内存访问控制器及SoC系统
CN107479946A (zh) * 2017-08-16 2017-12-15 南京大学 一种内核模块的交互行为监控方案
CN107797895A (zh) * 2017-05-08 2018-03-13 中国人民解放军国防科学技术大学 一种虚拟机安全监控方法及系统
CN108388517A (zh) * 2018-03-14 2018-08-10 深圳怡化电脑股份有限公司 一种内存检测方法、装置、设备及存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103197915A (zh) * 2013-03-01 2013-07-10 华为技术有限公司 一种处理敏感指令的方法、装置以及物理机
CN104899157A (zh) * 2015-05-28 2015-09-09 北京北信源软件股份有限公司 一种内存溢出检测方法和系统
CN106502926A (zh) * 2016-09-26 2017-03-15 华为技术有限公司 一种内存监控方法、内存访问控制器及SoC系统
CN107797895A (zh) * 2017-05-08 2018-03-13 中国人民解放军国防科学技术大学 一种虚拟机安全监控方法及系统
CN107479946A (zh) * 2017-08-16 2017-12-15 南京大学 一种内核模块的交互行为监控方案
CN108388517A (zh) * 2018-03-14 2018-08-10 深圳怡化电脑股份有限公司 一种内存检测方法、装置、设备及存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112269716A (zh) * 2020-06-01 2021-01-26 中国科学院信息工程研究所 灵活定义的处理器异常访问实时监测方法及电子装置

Also Published As

Publication number Publication date
CN111177726B (zh) 2024-02-06

Similar Documents

Publication Publication Date Title
CN107111715B (zh) 将可信执行环境用于代码和数据的安全性
US10893068B1 (en) Ransomware file modification prevention technique
RU2522019C1 (ru) Система и способ обнаружения угроз в коде, исполняемом виртуальной машиной
Kil et al. Remote attestation to dynamic system properties: Towards providing complete system integrity evidence
KR101700552B1 (ko) 보안 운영 체제 환경으로의 콘텍스트 기반 전환
Malik et al. CREDROID: Android malware detection by network traffic analysis
US7665139B1 (en) Method and apparatus to detect and prevent malicious changes to tokens
CN110383256B (zh) 一种内核完整性保护方法及装置
EP3270319B1 (en) Method and apparatus for generating dynamic security module
WO2012173906A2 (en) Threat level assessment of applications
US10771477B2 (en) Mitigating communications and control attempts
GB2485622A (en) Server detecting malware in user device.
JP6293133B2 (ja) 被保護データー集合のネットワーク・ベース管理
US11706251B2 (en) Simulating user interactions for malware analysis
US20160314297A1 (en) Method and Apparatus for Implementing Virtual Machine Introspection
CN111177727A (zh) 漏洞检测方法及装置
Yang et al. {Iframes/Popups} Are Dangerous in Mobile {WebView}: Studying and Mitigating Differential Context Vulnerabilities
CN110505246B (zh) 客户端网络通讯检测方法、装置及存储介质
Wang et al. One Size Does Not Fit All: Uncovering and Exploiting Cross Platform Discrepant {APIs} in {WeChat}
US11251976B2 (en) Data security processing method and terminal thereof, and server
CN110659478B (zh) 在隔离的环境中检测阻止分析的恶意文件的方法
CN111177726B (zh) 一种系统漏洞检测方法、装置、设备及介质
CN109495436B (zh) 一种可信云平台度量系统及方法
CN114095227A (zh) 一种数据通信网关可信认证方法、系统及电子设备
US20200244461A1 (en) Data Processing Method and Apparatus

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
GR01 Patent grant
GR01 Patent grant