CN107016283B - 基于完整性验证的Android权限提升攻击安全防御方法和装置 - Google Patents

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

Info

Publication number
CN107016283B
CN107016283B CN201710082058.9A CN201710082058A CN107016283B CN 107016283 B CN107016283 B CN 107016283B CN 201710082058 A CN201710082058 A CN 201710082058A CN 107016283 B CN107016283 B CN 107016283B
Authority
CN
China
Prior art keywords
kernel function
privilege
escalation
attack
function pointer
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.)
Active
Application number
CN201710082058.9A
Other languages
English (en)
Other versions
CN107016283A (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.)
Institute of Information Engineering of CAS
Original Assignee
Institute of Information Engineering of CAS
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 Institute of Information Engineering of CAS filed Critical Institute of Information Engineering of CAS
Priority to CN201710082058.9A priority Critical patent/CN107016283B/zh
Publication of CN107016283A publication Critical patent/CN107016283A/zh
Application granted granted Critical
Publication of CN107016283B publication Critical patent/CN107016283B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • 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

Landscapes

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

Abstract

本发明涉及一种基于完整性验证的Android权限提升攻击安全防御方法和装置,该方法包括:实时检测应用程序是否正在执行与敏感内核函数相关的***调用;对***调用要执行的敏感内核函数进行完整性验证;检测所述敏感内核函数相对应的内核函数指针的准确性和可靠性;判断所述内核函数指针所指向的内存区域是否存在具备权限提升攻击特征的指令;对检测到的应用程序权限提升攻击行为进行告警和拦截。本发明实时检测恶意程序的权限提升攻击行为并进行告警和拦截,防止攻击行为对Android***造成的破坏,有效保护了应用和数据的安全。本发明降低了权限提升漏洞给Android***带来的安全威胁,提升了Android***的安全性。

Description

基于完整性验证的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.lseek
ptmx_fops->read() ptmx_fops.read
ptmx_fops->write() ptmx_fops.write
ptmx_fops->ioctl() ptmx_fops.ioctl
ptmx_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、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。术语“上”、“下”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
本发明的说明书中,说明了大量具体细节。然而能够理解的是,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。类似地,应当理解,为了精简本发明公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释呈反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。本发明并不局限于任何单一的方面,也不局限于任何单一的实施例,也不局限于这些方面和/或实施例的任意组合和/或置换。而且,可以单独使用本发明的每个方面和/或实施例或者与一个或更多其他方面和/或其实施例结合使用。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。

Claims (6)

1.一种基于完整性验证的Android权限提升攻击安全防御方法,其特征在于,包括:
实时检测应用程序是否正在执行与敏感内核函数相关的***调用;
对***调用要执行的敏感内核函数进行完整性验证;
检测所述敏感内核函数相对应的内核函数指针的准确性和可靠性;
判断所述内核函数指针所指向的内存区域是否存在具备权限提升攻击特征的指令;
对检测到的应用程序权限提升攻击行为进行告警和拦截;
其中,所述对***调用要执行的敏感内核函数进行完整性验证包括:
获取敏感内核函数对应的内核函数指针,然后进行空值判断;
如果内核函数指针为空,则通过完整性验证,允许直接执行内核函数,访问硬件设备;
否则,将内核函数指针作为参数,检测该内核函数指针的准确性和可靠性,实现完整性验证;
其中,所述检测敏感内核函数相对应的内核函数指针的准确性和可靠性包括:
按照攻击特征库进行匹配,判断该内核函数指针所指向的内存区域是否存在具备权限提升攻击特征的指令,并将判断结果返回。
2.根据权利要求1所述的方法,其特征在于,所述判断该内核函数指针所指向的内存区域是否存在具备权限提升攻击特征的指令包括:
如果内核函数指针指向了用户空间,说明该指针遭遇非法篡改,应用程序存在权限提升攻击行为;或
如果内核函数指针指向了堆内存空间,说明该指针遭遇非法篡改,应用程序存在权限提升攻击行为;或
如果内核函数指针指向的内存区域包含修改进程权限证书的指令,应用程序存在权限提升攻击行为。
3.根据权利要求1所述的方法,其特征在于,还包括:新的权限提升攻击行为出现时,提取新的攻击特征,添加到特征库中更新攻击特征库。
4.一种基于完整性验证的Android权限提升攻击安全防御装置,其特征在于,包括:
***调用实时监测单元,用于实时检测应用程序是否正在执行与敏感内核函数相关的***调用;
完整性验证单元,对***调用要执行的敏感内核函数进行完整性验证;
攻击检测单元,用于检测敏感内核函数相对应的内核函数指针的准确性和可靠性;判断该内核函数指针所指向的内存区域是否存在具备权限提升攻击特征的指令;
告警与拦截单元,用于对检测到的应用程序权限提升攻击行为进行告警和拦截;
其中,所述完整性验证单元包括:
空值验证模块,用于获取敏感内核函数对应的内核函数指针,然后进行空值判断;
如果内核函数指针为空,则通过完整性验证,允许直接执行内核函数,访问硬件设备;
否则,将内核函数指针作为参数,检测该内核函数指针的准确性和可靠性,实现完整性验证;
其中,所述攻击检测单元,包括:
特征匹配单元,用于按照攻击特征库进行匹配,判断该内核函数指针所指向的内存区域是否存在具备权限提升攻击特征的指令,并将判断结果返回。
5.根据权利要求4所述的装置,其特征在于,所述特征匹配单元包括:
权限提升攻击特征判断单元,用于,
在内核函数指针指向了用户空间时,判定应用程序存在权限提升攻击行为;或
在内核函数指针指向了堆内存空间时,判定应用程序存在权限提升攻击行为;或
在内核函数指针指向的内存区域包含修改进程权限证书的指令时,判定应用程序存在权限提升攻击行为。
6.根据权利要求4所述的装置,其特征在于,还包括:攻击特征库更新单元,用于在新的权限提升攻击行为出现时,提取新的攻击特征,添加到特征库中更新攻击特征库。
CN201710082058.9A 2017-02-15 2017-02-15 基于完整性验证的Android权限提升攻击安全防御方法和装置 Active CN107016283B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710082058.9A CN107016283B (zh) 2017-02-15 2017-02-15 基于完整性验证的Android权限提升攻击安全防御方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710082058.9A CN107016283B (zh) 2017-02-15 2017-02-15 基于完整性验证的Android权限提升攻击安全防御方法和装置

Publications (2)

Publication Number Publication Date
CN107016283A CN107016283A (zh) 2017-08-04
CN107016283B true CN107016283B (zh) 2019-09-10

Family

ID=59440395

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710082058.9A Active CN107016283B (zh) 2017-02-15 2017-02-15 基于完整性验证的Android权限提升攻击安全防御方法和装置

Country Status (1)

Country Link
CN (1) CN107016283B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11106491B2 (en) * 2018-04-06 2021-08-31 Beijing Didi Infinity Technology And Development Co., Ltd. Method and system for kernel routine callbacks
CN109766699B (zh) * 2018-05-04 2022-02-15 奇安信安全技术(珠海)有限公司 操作行为的拦截方法及装置、存储介质、电子装置
CN109446759B (zh) * 2018-10-29 2021-02-09 大唐高鸿信安(浙江)信息科技有限公司 一种软件接口保护方法及装置
CN111259386A (zh) * 2018-12-03 2020-06-09 阿里巴巴集团控股有限公司 内核安全检测方法、装置、设备及存储介质
CN110516444B (zh) * 2019-07-23 2023-04-07 成都理工大学 基于kernel的跨终端跨版本Root攻击检测与防护***
CN112307470A (zh) * 2019-07-29 2021-02-02 北京奇虎科技有限公司 入侵内核的检测方法及装置、计算设备、计算机存储介质
CN112307469A (zh) * 2019-07-29 2021-02-02 北京奇虎科技有限公司 入侵内核的防御方法及装置、计算设备、计算机存储介质
CN111259389B (zh) * 2020-01-09 2022-08-05 青岛海尔科技有限公司 操作***防护方法、装置及存储介质
CN113918955A (zh) * 2021-09-29 2022-01-11 杭州默安科技有限公司 一种linux内核漏洞权限提升检测阻断方法和***
CN114327879B (zh) * 2021-12-23 2023-10-27 中汽创智科技有限公司 一种os内核数据对象的提取方法、装置及存储介质
CN115795462B (zh) * 2022-12-07 2023-06-16 安芯网盾(北京)科技有限公司 Linux内核模块执行进程的检测方法及装置
CN116910768B (zh) * 2023-09-08 2024-01-23 苏州浪潮智能科技有限公司 一种防御攻击方法、***、装置及介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101571828A (zh) * 2009-06-11 2009-11-04 北京航空航天大学 基于约束分析和模型检验的代码安全漏洞检测方法
CN103473508A (zh) * 2013-09-17 2013-12-25 肖楠 操作***内核运行时安全验证方法
CN103514402A (zh) * 2013-09-30 2014-01-15 广州华多网络科技有限公司 入侵检测方法及装置
CN104102880A (zh) * 2014-06-30 2014-10-15 华中科技大学 一种检测Android权限提升攻击的应用程序重写方法和***
CN104809401A (zh) * 2015-05-08 2015-07-29 南京大学 一种操作***内核完整性保护方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10331881B2 (en) * 2015-08-05 2019-06-25 Crowdstrike, Inc. User-mode component injection techniques

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101571828A (zh) * 2009-06-11 2009-11-04 北京航空航天大学 基于约束分析和模型检验的代码安全漏洞检测方法
CN103473508A (zh) * 2013-09-17 2013-12-25 肖楠 操作***内核运行时安全验证方法
CN103514402A (zh) * 2013-09-30 2014-01-15 广州华多网络科技有限公司 入侵检测方法及装置
CN104102880A (zh) * 2014-06-30 2014-10-15 华中科技大学 一种检测Android权限提升攻击的应用程序重写方法和***
CN104809401A (zh) * 2015-05-08 2015-07-29 南京大学 一种操作***内核完整性保护方法

Also Published As

Publication number Publication date
CN107016283A (zh) 2017-08-04

Similar Documents

Publication Publication Date Title
CN107016283B (zh) 基于完整性验证的Android权限提升攻击安全防御方法和装置
Gruss et al. Another flip in the wall of rowhammer defenses
US9565214B2 (en) Real-time module protection
CA2990343C (en) Computer security systems and methods using asynchronous introspection exceptions
EP3039608B1 (en) Hardware and software execution profiling
EP2973194B1 (en) Linear address mapping protection
CA2990313C (en) Systems and methods for tracking malicious behavior across multiple software entities
US9384349B2 (en) Negative light-weight rules
US8959638B2 (en) System and method for below-operating system trapping and securing of interdriver communication
US20120255018A1 (en) System and method for securing memory and storage of an electronic device with a below-operating system security agent
US20120255031A1 (en) System and method for securing memory using below-operating system trapping
US9251378B2 (en) Security protection of software libraries in a data processing apparatus
CN103164643A (zh) 一种通过硬件进行反调试的方法和装置
KR100745640B1 (ko) 커널 메모리를 보호하는 방법 및 그 장치
US20230289465A1 (en) Data Protection Method and Apparatus, Storage Medium, and Computer Device
KR102344966B1 (ko) 파일 기반 기만 기술을 이용한 공격 탐지 장치 및 방법
Wu et al. The Instruction Separation Framework against Man-At-The-End Attacks: Protect What is Mattered On-the-Fly
Healey et al. Dynamic Tracking of Information Flow Signatures for Security Checking

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