基于完整性验证的Android权限提升攻击安全防御方法和装置与流程

文档序号:11620863阅读:208来源:国知局
基于完整性验证的Android权限提升攻击安全防御方法和装置与流程
本发明涉及信息安全
技术领域
,具体涉及一种基于完整性验证的android权限提升攻击安全防御方法和装置。
背景技术
:本部分向读者介绍可能与本发明的各个方面相关的
背景技术
,相信能够向读者提供有用的背景信息,从而有助于读者更好地理解本发明的各个方面。因此,可以理解,本部分的说明是用于上述目的,而并非构成对现有技术的承认。权限提升攻击是一种利用android系统漏洞非法提升应用程序运行权限的攻击方式。利用android系统中的权限提升漏洞,恶意程序可以绕过android平台的权限保护机制,将应用程序的运行权限从普通用户权限非法提升到更高级别的权限——系统用户权限或root用户权限。通过权限提升攻击,恶意程序可以进一步实施恶意行为,例如窃取隐私、恶意扣费、远程控制等,严重威胁了用户的隐私与财产安全。现有的权限提升攻击防御技术主要有如下几种:源代码恶意特征匹配和基于策略的内核级防御机制。源代码恶意特征匹配防御方法过程是这样的:对应用程序进行反编译,获得程序源代码,与已知的权限提升攻击源码进行相似度计算,判断该应用程序是否存在权限提升攻击行为。源代码恶意特征匹配防御方法需要反编译以还原程序源代码。如果应用程序采用了混淆技术对源代码进行混淆,或者采用应用加固技术来对抗反编译,都会对该方法的实现产生干扰和影响。依赖于已知的权限提升攻击源码,不能防御新出现的、未知的权限提升攻击。基于策略的内核级防御机制过程是这样的:在android内核层引入新的安全策略,设置root特权程序白名单和关键资源列表。在android系统运行期间,监视进程与服务对系统资源的访问请求,并根据安全策略选择拦截或放行:只允许root特权程序白名单中的进程对关键资源列表内指定的资源进行操作,其余的一律拦截。由此限制非法获得root权限的恶意进程访问受保护的系统资源,从而约束该进程的其它恶意行为。上述方法是在恶意进程已经非法获得root权限后、试图访问关键资源时进行防御,而不是在进程尝试获得root权限的过程中进行防御,因此防御效果具有一定的滞后性,不够及时。技术实现要素:要解决的技术问题是如何提供一种基于完整性验证的android权限提升攻击安全防御方法和装置。针对现有技术中的缺陷,本发明提供一种基于完整性验证的android权限提升攻击安全防御方法和装置,可以增强内核层和整个android系统的安全性。第一方面,本发明提供了一种基于完整性验证的android权限提升攻击安全防御方法,包括:实时检测应用程序是否正在执行与敏感内核函数相关的系统调用;对系统调用要执行的敏感内核函数进行完整性验证;检测所述敏感内核函数相对应的内核函数指针的准确性和可靠性;判断所述内核函数指针所指向的内存区域是否存在具备权限提升攻击特征的指令;对检测到的应用程序权限提升攻击行为进行告警和拦截。可选地,所述对系统调用要执行的敏感内核函数进行完整性验证包括:获取敏感内核函数对应的内核函数指针,然后进行空值判断;如果内核函数指针为空,则通过完整性验证,允许直接执行内核函数,访问硬件设备;否则,将内核函数指针作为参数,检测该内核函数指针的准确性和可靠性,实现完整性验证。可选地,所述检测敏感内核函数相对应的内核函数指针的准确性和可靠性包括:按照攻击特征库进行匹配,判断该内核函数指针所指向的内存区域是否存在具备权限提升攻击特征的指令,并将判断结果返回。可选地,所述判断内核函数指针所指向的内存区域是否存在具备权限提升攻击特征的指令包括:如果内核函数指针指向了用户空间,说明该指针遭遇非法篡改,应用程序存在权限提升攻击行为;或如果内核函数指针指向了堆内存空间,说明该指针遭遇非法篡改,应用程序存在权限提升攻击行为;或如果内核函数指针指向的内存区域包含修改进程权限证书的指令,应用程序存在权限提升攻击行为。可选地,还包括:新的权限提升攻击行为出现时,提取新的攻击特征,添加到特征库中更新攻击特征库。另一方面,本发明还提供一种基于完整性验证的android权限提升攻击安全防御装置,包括:系统调用实时监测单元,用于实时检测应用程序是否正在执行与敏感内核函数相关的系统调用;完整性验证单元,对系统调用要执行的敏感内核函数进行完整性验证;攻击检测单元,用于检测敏感内核函数相对应的内核函数指针的准确性和完整性;判断该内核函数指针所指向的内存区域是否存在具备权限提升攻击特征的指令;告警与拦截单元,用于对检测到的应用程序权限提升攻击行为进行告警和拦截。可选地,所述完整性验证单元包括:空值验证模块,用于获取敏感内核函数对应的内核函数指针,然后进行空值判断;如果内核函数指针为空,则通过完整性验证,允许直接执行内核函数,访问硬件设备;否则,将内核函数指针作为参数,检测该内核函数指针的准确性和可靠性,实现完整性验证。可选地,所述攻击检测单元,包括:特征匹配单元,用于按照攻击特征库进行匹配,判断该内核函数指针所指向的内存区域是否存在具备权限提升攻击特征的指令,并将判断结果返回。可选地,所述特征匹配单元包括:权限提升攻击特征判断单元,用于,在内核函数指针指向了用户空间时,判定应用程序存在权限提升攻击行为;或在内核函数指针指向了堆内存空间时,判定应用程序存在权限提升攻击行为;或在内核函数指针指向的内存区域包含修改进程权限证书的指令时,判定应用程序存在权限提升攻击行为。可选地,还包括:攻击特征库更新单元,用于在新的权限提升攻击行为出现时,提取新的攻击特征,添加到特征库中更新攻击特征库。由上述技术方案可知,本发明提供的基于完整性验证的android权限提升攻击安全防御方法,实时检测恶意程序的权限提升攻击行为并进行告警和拦截,防止攻击行为对android系统造成的破坏,有效保护了应用和数据的安全。本发明降低了权限提升漏洞给android系统带来的安全威胁,提升了android系统的安全性。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为现有技术中android系统调用流程示意图;图2为本发明一个实施例中一种基于完整性验证的android权限提升攻击安全防御方法流程示意图;图3为本发明另一个实施例中一种基于完整性验证的android权限提升攻击安全防御方法流程示意图;图4为本发明一个实施例中一种基于完整性验证的android权限提升攻击安全防御装置示意图。具体实施方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。通过修改内核函数指针来劫持内核控制流是一种常见的权限提升攻击模式。恶意程序首先在内存空间中注入一段权限提升攻击代码;然后利用android系统的权限提升漏洞定位并修改内核函数指针,使其指向攻击代码;接着通过相关的系统调用执行与内核函数指针相对应的内核函数,触发攻击代码,达到提升权限的目的;最后复位内核函数指针,避免引发其它异常。通过系统调用执行内核函数是触发权限提升攻击代码的关键步骤。系统调用是android系统内核层提供的一套标准接口,用于用户空间与内核空间进行交互。它允许用户空间的应用程序受限地访问内核中的硬件设备。android应用程序属于用户空间程序,它通过android系统库封装好的系统调用接口执行内核层的系统调用,系统调用再执行相应的内核函数,完成对硬件设备的访问。android恶意程序利用权限提升漏洞修改内核函数指针后,需要通过系统调用执行内核函数来触发权限提升攻击代码。如图1所示,该恶意程序通过android系统库的系统调用接口执行内核层的系统调用时,无法直接执行内核函数访问硬件设备,而是首先进入本发明的安全防御方法进行完整性验证。当应用程序正在执行系统调用时,判定正在执行的系统调用是否与敏感内核函数相关:如果不相关,允许该系统调用直接执行内核函数,访问硬件设备;否则,获取这个敏感内核函数对应的内核函数指针,判断是否为空值:如果是空值,允许该系统调用直接执行内核函数,访问硬件设备;否则,匹配攻击特征库,判断这个内核函数指针所指向的内存区域是否存在具备权限提升攻击特征的指令:如果不存在攻击特征,允许该系统调用直接执行内核函数,访问硬件设备;否则,对检测到的应用程序权限提升攻击行为进行告警,并拦截这个系统调用,不允许它执行内核函数。恶意程序将无法触发权限提升攻击代码的执行,攻击行为遭到有效拦截。本发明对android系统的内核层进行修改和扩展,添加一个安全防御方法,在系统调用执行内核函数之前进行完整性验证,检查内核函数指针的准确性和可靠性,以实现对权限提升攻击行为的实时检测、告警和拦截。如图1所示,本发明提供一种基于完整性验证的android权限提升攻击安全防御方法,包括:实时检测应用程序是否正在执行与敏感内核函数相关的系统调用;对系统调用要执行的敏感内核函数进行完整性验证;检测所述敏感内核函数相对应的内核函数指针的准确性和可靠性;判断所述内核函数指针所指向的内存区域是否存在具备权限提升攻击特征的指令;对检测到的应用程序权限提升攻击行为进行告警和拦截。下面对本发明提供的基于完整性验证的android权限提升攻击安全防御方法展开详细的说明。首先,介绍实时检测应用程序是否正在执行与敏感内核函数相关的系统调用。通过分析典型的android权限提升攻击行为,本发明定义了与ptmx硬件设备相关的内核函数为敏感内核函数。ptmx是android系统内核提供的一个伪终端驱动设备。内核全局数据结构ptxm_fops定义了该驱动设备支持的多种操作方法,由多个内核函数指针组成。这些敏感内核函数指针是恶意程序实现权限提升攻击的主要利用目标,因为它们大多被默认设置为空值,这就导致了篡改指针后很容易还原指针值,只需写回空值即可复位指针。本发明定义的敏感内核函数及其对应的内核函数指针如表1所示。表1本发明定义的敏感内核函数集合敏感内核函数内核函数指针ptmx_fops->llseek()ptmx_fops.lseekptmx_fops->read()ptmx_fops.readptmx_fops->write()ptmx_fops.writeptmx_fops->ioctl()ptmx_fops.ioctlptmx_fops->fsync()ptmx_fops.fsync本发明实时检测应用程序是否正在执行与敏感内核函数相关的系统调用,具体地,本发明利用hook技术拦截与敏感内核函数相关的系统调用,实时监测应用程序是否正在执行这些敏感内核函数相关的系统调用。其次,对系统调用要执行的敏感内核函数进行完整性验证;在本发明中,所述对系统调用要执行的敏感内核函数进行完整性验证包括:获取敏感内核函数对应的内核函数指针,然后进行空值判断;如果内核函数指针为空,则通过完整性验证,允许直接执行内核函数,访问硬件设备;否则,将内核函数指针作为参数,检测该内核函数指针的准确性和可靠性,实现完整性验证。具体地,首先获取敏感内核函数对应的内核函数指针,然后进行空值判断:如果内核函数指针为空(0值或null值),则通过完整性验证,允许直接执行内核函数,访问硬件设备;否则,将内核函数指针作为参数进一步检测该内核函数指针的准确性和可靠性,实现完整性验证。再次,检测所述敏感内核函数相对应的内核函数指针的准确性和可靠性;在本发明中,所述检测敏感内核函数相对应的内核函数指针的准确性和可靠性包括:按照攻击特征库进行匹配,判断该内核函数指针所指向的内存区域是否存在具备权限提升攻击特征的指令,并将判断结果返回。所述判断该内核函数指针所指向的内存区域是否存在具备权限提升攻击特征的指令包括:如果内核函数指针指向了用户空间,说明该指针遭遇非法篡改,应用程序存在权限提升攻击行为;或如果内核函数指针指向了堆内存空间,说明该指针遭遇非法篡改,应用程序存在权限提升攻击行为;或如果内核函数指针指向的内存区域包含修改进程权限证书的指令,应用程序存在权限提升攻击行为。具体地,接收内核函数指针,检测该内核函数指针的准确性和可靠性。按照攻击特征库进行匹配,判断该内核函数指针所指向的内存区域是否存在具备权限提升攻击特征的指令,并将返回判断结果。本发明定义的攻击特征库如下:内核函数指针指向了用户空间。由于android系统保护机制的限制,内核函数指针只允许指向内核空间,不可能指向用户空间。如果内核函数指针指向了用户空间,说明该指针遭遇非法篡改,认为存在权限提升攻击行为。具体的,android系统定义了用户空间的地址区间为[0x00000000,0xbfffffff)。内核函数指针指向了堆内存空间。由于android系统保护机制的限制,堆内存空间通常不具有可执行权限,因此内核函数指针不可能指向不可执行的堆内存空间。如果内核函数指针指向了堆内存空间,说明该指针遭遇非法篡改,则认为存在权限提升攻击行为。内核函数指针所指向的内存区域包含修改进程权限证书的指令。进程的权限证书由内核进行统一分配和管理,恶意程序通过非法途径修改当前进程的权限证书,以此获得权限提升。如果内核函数指针指向了修改进程权限证书的指令片段,则认为存在权限提升攻击行为。当新的权限提升攻击行为出现时,本发明会提取新的攻击特征,添加到特征库中,以增强本发明方法的有效性和准确性。最后,对检测到的应用程序权限提升攻击行为进行告警和拦截。本发明对检测到的权限提升攻击行为进行告警和拦截。当完整性验证不通过时,该模块发出告警信息,并对系统调用进行拦截,及时阻断当前发生的权限提升攻击行为。同时,该模块会记录事件信息,输出安全日志,供系统安全人员进行分析,以进一步优化该防御方法,提升防御效果。为了进一步体现本发明提供的一种基于完整性验证的android权限提升攻击安全防御方法的优越性,本发明还提供一种应用上述方法的基于完整性验证的android权限提升攻击安全防御装置,如图4所示,该装置包括:系统调用实时监测单元,用于实时检测应用程序是否正在执行与敏感内核函数相关的系统调用;完整性验证单元,对系统调用要执行的敏感内核函数进行完整性验证;攻击检测单元,用于检测敏感内核函数相对应的内核函数指针的准确性和可靠性;判断该内核函数指针所指向的内存区域是否存在具备权限提升攻击特征的指令;告警与拦截单元,用于对检测到的应用程序权限提升攻击行为进行告警和拦截。下面对本发明提供的基于完整性验证的android权限提升攻击安全防御装置展开详细的说明。本发明提供的基于完整性验证的android权限提升攻击安全防御装置的工作过程与上述基于完整性验证的android权限提升攻击安全防御方法类似,具体可以参照上述方法执行,在此不再赘述。在本发明中,通过分析典型的android权限提升攻击行为,本发明定义了与ptmx硬件设备相关的内核函数为敏感内核函数。ptmx是android系统内核提供的一个伪终端驱动设备。内核全局数据结构ptxm_fops定义了该驱动设备支持的多种操作方法,由多个内核函数指针组成。这些敏感内核函数指针是恶意程序实现权限提升攻击的主要利用目标,因为它们大多被默认设置为空值,这就导致了篡改指针后很容易还原指针值,只需写回空值即可复位指针。本发明定义的敏感内核函数及其对应的内核函数指针如表1所示。在本发明中,所述完整性验证单元包括:空值验证模块,用于获取敏感内核函数对应的内核函数指针,然后进行空值判断;如果内核函数指针为空,则通过完整性验证,允许直接执行内核函数,访问硬件设备;否则,将内核函数指针作为参数,检测该内核函数指针的准确性和可靠性,实现完整性验证。完整性验证单元负责对当前系统调用要执行的敏感内核函数进行完整性验证。首先获取敏感函数对应的内核函数指针,然后进行空值判断:如果内核函数指针为空(0值或null值),则通过完整性验证,允许直接执行内核函数,访问硬件设备;否则,将内核函数指针作为参数传递给攻击检测单元,检测该内核函数指针的准确性和可靠性,实现完整性验证。完整性验证单元接收攻击检测单元的返回结果:如果检测到攻击,则完整性验证不通过,交给告警与拦截单元处理;否则,通过完整性验证,允许直接执行内核函数,访问硬件设备。在本发明中,所述攻击检测单元,包括:特征匹配单元,用于按照攻击特征库进行匹配,判断该内核函数指针所指向的内存区域是否存在具备权限提升攻击特征的指令,并将判断结果返回。所述特征匹配单元包括:权限提升攻击特征判断单元,用于:在内核函数指针指向了用户空间时(说明该指针遭遇非法篡改),判定应用程序存在权限提升攻击行为;或在内核函数指针指向了堆内存空间时(说明该指针遭遇非法篡改),判定应用程序存在权限提升攻击行为;或在内核函数指针指向的内存区域包含修改进程权限证书的指令时,判定应用程序存在权限提升攻击行为。攻击检测单元接收完整性验证单元传递的内核函数指针,负责检测该内核函数指针的准确性和可靠性。攻击检测单元按照攻击特征库进行匹配,判断该内核函数指针所指向的内存区域是否存在具备权限提升攻击特征的指令,并将判断结果返回给完整性验证单元。本发明中定义的攻击特征库如下:1)内核函数指针指向了用户空间。由于android系统保护机制的限制,内核函数指针只允许指向内核空间,不可能指向用户空间。如果内核函数指针指向了用户空间,说明该指针遭遇非法篡改,认为存在权限提升攻击行为。具体的,android系统定义了用户空间的地址区间为[0x00000000,0xbfffffff)。2)内核函数指针指向了堆内存空间。由于android系统保护机制的限制,堆内存空间通常不具有可执行权限,因此内核函数指针不可能指向不可执行的堆内存空间。如果内核函数指针指向了堆内存空间,说明该指针遭遇非法篡改,则认为存在权限提升攻击行为。3)内核函数指针所指向的内存区域包含修改进程权限证书的指令。进程的权限证书由内核进行统一分配和管理,恶意程序通过非法途径修改当前进程的权限证书,以此获得权限提升。如果内核函数指针指向了修改进程权限证书的指令片段,则认为存在权限提升攻击行为。本发明提供的基于完整性验证的android权限提升攻击安全防御还包括:攻击特征库更新单元,用于在新的权限提升攻击行为出现时,提取新的攻击特征,添加到特征库中更新攻击特征库,以增强本发明方法的有效性和准确性。本发明中,告警与拦截单元,对检测到的权限提升攻击行为进行告警和拦截。当完整性验证不通过时,该单元发出告警信息,并对系统调用进行拦截,及时阻断当前发生的权限提升攻击行为。同时,该单元会记录事件信息,输出安全日志,供系统安全人员进行分析,以进一步优化该防御方法,提升防御效果。综上所述,本发明提供的基于完整性验证的android权限提升攻击安全防御方法,实时检测恶意程序的权限提升攻击行为并进行告警和拦截,防止攻击行为对android系统造成的破坏,有效保护了应用和数据的安全。本发明降低了权限提升漏洞给android系统带来的安全威胁,提升了android系统的安全性。本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。术语“上”、“下”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。本发明的说明书中,说明了大量具体细节。然而能够理解的是,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。类似地,应当理解,为了精简本发明公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释呈反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。本发明并不局限于任何单一的方面,也不局限于任何单一的实施例,也不局限于这些方面和/或实施例的任意组合和/或置换。而且,可以单独使用本发明的每个方面和/或实施例或者与一个或更多其他方面和/或其实施例结合使用。最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1