CN108647516A - 一种防御漏洞非法提权方法及装置 - Google Patents
一种防御漏洞非法提权方法及装置 Download PDFInfo
- Publication number
- CN108647516A CN108647516A CN201810428981.8A CN201810428981A CN108647516A CN 108647516 A CN108647516 A CN 108647516A CN 201810428981 A CN201810428981 A CN 201810428981A CN 108647516 A CN108647516 A CN 108647516A
- Authority
- CN
- China
- Prior art keywords
- information
- initial mark
- preset
- blip
- recalls
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Storage Device Security (AREA)
Abstract
本发明实施例提供的一种防御漏洞非法提权方法及装置,属于网络安全技术领域。该方法包括获取用户态的调用信息;获取调用信息所对应的当前进程中的第一初始标志信息和第二初始标志信息;基于原始参数执行预设调度函数,并再次获取当前进程中的第一目标标志信息和第二目标标志信息;判断第一目标标志信息与第一初始标志信息及第二目标标志信息与第二初始标志信息是否匹配;若否,判定调用信息为提权操作,判断是否执行第一预设策略或第二预设策略;若执行第一预设策略时,记录提权操作所对应的进程并将预设调度函数的执行结果返回至用户态;若执行第二预设策略,修改第一目标标志信息和第二目标标志信息,将预设调度函数的执行结果返回至用户态。
Description
技术领域
本发明涉及网络安全技术领域,具体而言,涉及一种防御漏洞非法提权方法及装置。
背景技术
当前市面存在大量的针对Android系统进行ROOT的程序和工具,Android手机系统被ROOT后,用户可以进行在没有ROOT前的更高级操作,包括注入模块到其他进程,HOOK系统函数,读写操作系统核心文件等等。通常ROOT工具采集用户手机的操作系统信息包括并不限于内核版本号,芯片型号等信息上传至服务端,服务端通过这些信息匹配相应的驱动组件漏洞或者系统内核漏洞利用程序,匹配成功后下发至用户手机执行。
目前针对Android系统的提权攻击一般是通过公开或者未公开的漏洞进行提权,通常会利用1~2个漏洞实现攻击。一种是内核漏洞直接提权到root权限,另一种是先通过用户态漏洞从user/shell权限提升到较高的设备权限/SYSTEM权限,然后再通过设备驱动漏洞提权到root权限。
用户手机执行完漏洞利用程序并获取root权限后,用户便可以以root身份执行各种操作。对于用户手机来说,获取ROOT权限是一件危险的事情,因为恶意程序也可以调用漏洞利用程序得到ROOT权限,并进行更高级的恶意操作,比如安装系统无法删除或卸载的恶意程序。然而当前针对系统被非法root提权,一般是由硬件厂商或者操作系统厂商在获知漏洞细节后,修补设备驱动或者内核代码中的漏洞,然后通过OTA的方式下发到操作系统更新,操作系统更新完成后便不受这些漏洞的破坏。但是互联网存在一些厂商未知的系统漏洞,也俗称0DAY,对于这种厂商未知的漏洞,厂商因为不知道这些漏洞的存在,因此无法针对性的修补,所以便无法防御这种未公开的漏洞。因此,如何解决上述技术问题是目前亟需解决的难题。
发明内容
本发明提供的一种防御漏洞非法提权方法及装置,旨在改善上述问题。
本发明提供的一种防御漏洞非法提权方法,包括:获取用户态的调用信息;获取所述调用信息所对应的当前进程中的第一初始标志信息和第二初始标志信息;基于原始参数执行预设调度函数,并再次获取当前所述进程中的第一目标标志信息和第二目标标志信息;判断所述第一目标标志信息与所述第一初始标志信息以及所述第二目标标志信息与所述第二初始标志信息是否匹配;若否,判定所述调用信息为提权操作,并判断是否执行第一预设策略或第二预设策略;若执行所述第一预设策略时,记录所述提权操作所对应的所述进程并将所述预设调度函数的执行结果返回至所述用户态,以使正常提权能够执行;若执行所述第二预设策略时,记录所述提权操作所对应的所述进程后,并定位到当前所述进程的上下文,将所述第一初始标志信息和所述第二初始标志信息所对应的值分别写入所述第一目标标志信息和所述第二目标标志信息中,以及将所述预设调度函数的执行结果返回至所述用户态,以使非法提权失败。
可选地,所述的获取用户态的调用信息,包括:基于预设调度函数拦截用户态的调用信息。
可选地,所述的基于原始参数执行预设调度函数,并再次获取当前所述进程中的第一目标标志信息和第二目标标志信息,包括:获取当前所述进程调用预设调度函数所对应的调用参数;基于所述调用参数执行所述预设调度函数,并获取执行了所述预设调度函数后的目标进程中的第一目标标志信息和第二目标标志信息。
可选地,所述的若否,判定所述调用信息为提权操作,并判断是否执行第一预设策略或第二预设策略,包括:若所述第一目标标志信息与所述第一初始标志信息以及所述第二目标标志信息与所述第二初始标志信息不匹配,判定所述调用信息为提权操作;获取当前所述进程的全路径信息;并基于所述全路径信息判断是否执行第一预设策略或第二预设策略。
可选地,所述的获取所述调用信息所对应的当前进程中的第一初始标志信息和第二初始标志信息,之后还包括:将所述第一初始标志信息和所述第二初始标志信息进行存储。
本发明提供的一种防御漏洞非法提权装置,包括:第一数据获取单元,用于获取用户态的调用信息;第二数据获取单元,用于获取所述调用信息所对应的当前进程中的第一初始标志信息和第二初始标志信息;第三数据获取单元,用于基于原始参数执行预设调度函数,并再次获取当前所述进程中的第一目标标志信息和第二目标标志信息;第一数据处理单元,用于判断所述第一目标标志信息与所述第一初始标志信息以及所述第二目标标志信息与所述第二初始标志信息是否匹配;第二数据处理单元,用于若否,判定所述调用信息为提权操作,并判断是否执行第一预设策略或第二预设策略;第一执行单元,用于若执行所述第一预设策略时,记录所述提权操作所对应的所述进程并将所述预设调度函数的执行结果返回至所述用户态,以使正常提权能够执行;第二执行单元,用于若执行所述第二预设策略时,记录所述提权操作所对应的所述进程后,并定位到当前所述进程的上下文,将所述第一初始标志信息和所述第二初始标志信息所对应的值分别写入所述第一目标标志信息和所述第二目标标志信息中,以及将所述预设调度函数的执行结果返回至所述用户态,以使非法提权失败。
可选地,所述第一数据获取单元具体用于:基于预设调度函数拦截用户态的调用信息。
可选地,所述第三数据获取单元具体用于:获取当前所述进程调用预设调度函数所对应的调用参数;基于所述调用参数执行所述预设调度函数,并获取执行了所述预设调度函数后的目标进程中的第一目标标志信息和第二目标标志信息。
可选地,所述第二数据处理单元具体用于:若所述第一目标标志信息与所述第一初始标志信息以及所述第二目标标志信息与所述第二初始标志信息不匹配,判定所述调用信息为提权操作;获取当前所述进程的全路径信息;并基于所述全路径信息判断是否执行第一预设策略或第二预设策略。
可选地,所述第二数据获取单元之后还包括:存储单元,用于将所述第一初始标志信息和所述第二初始标志信息进行存储。
上述本发明提供的一种防御漏洞非法提权方法及装置,通过先获取用户态的调用信息,再获取所述调用信息所对应的当前进程中的第一初始标志信息和第二初始标志信息,然后基于原始参数执行预设调度函数,并再次获取当前所述进程中的第一目标标志信息和第二目标标志信息,接着再判断所述第一目标标志信息与所述第一初始标志信息以及所述第二目标标志信息与所述第二初始标志信息是否匹配,从而通过判断是否匹配来判断进程是否为提权操作,以使在提权操作后通过第一预设策略或第二预设策略来判断该提权操作是否非法,并执行相应操作,进而有效阻止了非法提权操作,以使得无论是已知漏洞还是未知漏洞均能够防止非法提权。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明实施例提供的一种电子设备的结构框图;
图2为本发明第一实施例提供的防御漏洞非法提权方法的流程图;
图3为本发明第二实施例提供的防御漏洞非法提权方法的流程图;
图4为本发明第三实施例提供的防御漏洞非法提权装置的功能模块示意图;
图5为本发明第四实施例提供的防御漏洞非法提权装置的功能模块示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,为本发明实施例提供的一种电子设备的结构框图。所述电子设备300包括防御漏洞非法提权装置、存储器302、存储控制器303、处理器304及外设接口305。
所述存储器302、存储控制器303、处理器304及外设接口305各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。所述防御漏洞非法提权装置包括至少一个可以软件或固件(firmware)的形式存储于所述存储器302中或固化在所述电子设备300的操作系统(operating system,OS)中的软件功能模块。所述处理器304用于执行存储器302中存储的可执行模块,例如所述防御漏洞非法提权装置包括的软件功能模块或计算机程序。
其中,存储器302可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-Only Memory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。其中,存储器302用于存储程序,所述处理器304在接收到执行指令后,执行所述程序,或者由处理器304实现。
处理器304可能是一种集成电路芯片,具有信号的处理能力。上述的处理器304可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述外设接口305将各种输入/输入装置耦合至处理器304以及存储器302。在一些实施例中,外设接口305、处理器304以及存储控制器303可以在单个芯片中实现。在其他一些实例中,他们可以分别由独立的芯片实现。
请参阅图2,是本发明第一实施例提供的防御漏洞非法提权方法的流程图。下面将对图2所示的具体流程进行详细阐述。
步骤S101,获取用户态的调用信息。
其中,所述调用信息是指系统调用操作。
作为一种实施方式,基于预设调度函数拦截用户态的调用信息。例如,通过对内核的系统调用入口调度函数system_call进行拦截,从而抓取用户态的所有的系统调用操作。
步骤S102,获取所述调用信息所对应的当前进程中的第一初始标志信息和第二初始标志信息。
其中,第一初始标志信息为用来标识每个用户的唯一标识信息(uid,User Id),第二初始标志信息用来标识用户组的唯一标识信息(gid,Group Id)。
作为一种实施方式,获取当前所在进程上下文的task_struct里的cred结构中的uid和gid。其中,cred(Credential)表示在TASK_STRUCT结构里存在CRED数据结构,用于描述进程的凭证信息,如uid和gid等信息。
其中,task_struct是Linux内核的一种数据结构,它会被装载到RAM中并且包含着进程的信息。每个进程都把它的信息放在task_struct这个数据结构体。例如,task_struct包括标示符、状态、优先级等信息。
步骤S103,基于原始参数执行预设调度函数,并再次获取当前所述进程中的第一目标标志信息和第二目标标志信息。
其中,所述原始参数是指进程所述预设调度函数时提供的参数。其中,具体的参数可以根据实际需求进行设置,在此,不作具体限定。
所述第一目标标志信息为执行了所述预设调度函数后,该当前进程的uid,同理,所述第二目标标志信息为执行了所述预设调度函数后,该当前进程的gid。
其中,预设调度函数为system_call,该system_call为系统调用入口调度函数。
在本实施例中,可以通过绑定的程序调用接口来调用该预设调度函数,或者是将该预设调度函数写入到软件中。在此,不作具体限定。
作为一种实施方式,获取当前所述进程调用预设调度函数所对应的调用参数;基于所述调用参数执行所述预设调度函数,并获取执行了所述预设调度函数后的目标进程中的第一目标标志信息和第二目标标志信息。例如,通过该调用参数调用该system_call函数,当system_call函数执行完毕后,再次获取当前进程上下文中的task_struct里的cred结构中的uid和gid信息。
其中,所述目标进程为执行了该调度函数后的进程。
步骤S104,判断所述第一目标标志信息与所述第一初始标志信息以及所述第二目标标志信息与所述第二初始标志信息是否匹配。
其中,匹配是指该第一目标标志信息与所述第一初始标志信息所携带的信息或值一致,以及所述第二目标标志信息与所述第二初始标志信息所携带的信息或值一致时,才被判定为匹配,反之,则不匹配。
步骤S105,若否,判定所述调用信息为提权操作,并判断是否执行第一预设策略或第二预设策略。
其中,提权操作是指修改用户的权限。第一预设策略为用于放行提权操作并记录提权进程的策略。第二预设策略为阻止提权并记录提权进程的策略。
作为一种实施方式,若所述第一目标标志信息与所述第一初始标志信息以及所述第二目标标志信息与所述第二初始标志信息不匹配,判定所述调用信息为提权操作;获取当前所述进程的全路径信息;并基于所述全路径信息判断是否执行第一预设策略或第二预设策略。具体地,所述全路径信息通过基于第一初始标志信息和第二初始标志信息获取该进程所对应的第三标志信息(pid),然后基于第三标志信息获取该全路径信息。其中,所述pid为用于描述本进程的唯一标识符,用来区别其他进程。
在本实施例中,优选地,将第三标志信息存储至预设位置,如网络数据库或者是本地数据库等。
其中,可以通过将该全路径信息分别与第一预设策略或第二预设策略中预设的目标全路径信息进行匹配,当该全路径信息与第一预设策略或第二预设策略中任意一个目标全路径信息匹配时,则执行与该全路径信息匹配的策略。如,该全路径信息与第一预设策略中的目标全路径信息匹配时,则执行该第一预设策略,反之,当全路径信息与第二预设策略中的目标全路径信息匹配时,则执行该第二预设策略。其中,第一预设策略和第二预设策略中均存储有至少一个目标全路径信息。
步骤S106,若执行所述第一预设策略时,记录所述提权操作所对应的所述进程并将所述预设调度函数的执行结果返回至所述用户态,以使正常提权能够执行。
其中,所述执行结果是指进程调用system_call函数之后,该函数的返回结果。
步骤S107,若执行所述第二预设策略时,记录所述提权操作所对应的所述进程后,并定位到当前所述进程的上下文,将所述第一初始标志信息和所述第二初始标志信息所对应的值分别写入所述第一目标标志信息和所述第二目标标志信息中,以及将所述预设调度函数的执行结果返回至所述用户态,以使非法提权失败。
通过将所述第一初始标志信息所对应的数据或值写入所述第一目标标志信息以及将所述第二初始标志信息所对应的数据或值写入所述第二目标标志信息中,以恢复调用该调度函数前该进程的uid和gid信息,最后将system_call函数的执行结果返回给用户态,从而使得非法提权操作失败。
请参阅图3,是本发明第二实施例提供的防御漏洞非法提权方法的流程图。下面将对图3所示的具体流程进行详细阐述。
步骤S201,获取用户态的调用信息。
步骤S202,获取所述调用信息所对应的当前进程中的第一初始标志信息和第二初始标志信息。
步骤S201至步骤S202的具体实施方式请参照第一实施例中所对应的步骤,在此,不再赘述。
步骤S203将所述第一初始标志信息和所述第二初始标志信息进行存储。
通过将该第一初始标志信息和所述第二初始标志信息进行存储,以便于后期调用该第一初始标志信息和所述第二初始标志信息。
作为一种实施方式,将所述第一初始标志信息和所述第二初始标志信息存储至预设位置,如网络数据库或者是本地数据库等。在此,不作具体限定。
步骤S204,基于原始参数执行预设调度函数,并再次获取当前所述进程中的第一目标标志信息和第二目标标志信息。
步骤S205,判断所述第一目标标志信息与所述第一初始标志信息以及所述第二目标标志信息与所述第二初始标志信息是否匹配。
步骤S206,若否,判定所述调用信息为提权操作,并判断是否执行第一预设策略或第二预设策略。
步骤S207,若执行所述第一预设策略时,记录所述提权操作所对应的所述进程并将所述预设调度函数的执行结果返回至所述用户态,以使正常提权能够执行。
步骤S208,若执行所述第二预设策略时,记录所述提权操作所对应的所述进程后,并定位到当前所述进程的上下文,将所述第一初始标志信息和所述第二初始标志信息所对应的值分别写入所述第一目标标志信息和所述第二目标标志信息中,以及将所述预设调度函数的执行结果返回至所述用户态,以使非法提权失败。
步骤S204至步骤S208的具体实施方式请参照第一实施例中所对应的步骤,在此,不再赘述。
请参阅图4,是本发明第三实施例提供的防御漏洞非法提权装置的功能模块示意图。所述防御漏洞非法提权装置400包括第一数据获取单元410、第二数据获取单元420、第三数据获取单元430、第一数据处理单元440、第二数据处理单元450、第一执行单元460和第二执行单元470。
第一数据获取单元410,用于获取用户态的调用信息。
作为一种实施方式,所述第一数据获取单元410具体用于:基于预设调度函数拦截用户态的调用信息。
第二数据获取单元420,用于获取所述调用信息所对应的当前进程中的第一初始标志信息和第二初始标志信息。
第三数据获取单元430,用于基于原始参数执行预设调度函数,并再次获取当前所述进程中的第一目标标志信息和第二目标标志信息。
作为一种实施方式,所述第三数据获取单元430具体用于:获取当前所述进程调用预设调度函数所对应的调用参数;基于所述调用参数执行所述预设调度函数,并获取执行了所述预设调度函数后的目标进程中的第一目标标志信息和第二目标标志信息。
第一数据处理单元440,用于判断所述第一目标标志信息与所述第一初始标志信息以及所述第二目标标志信息与所述第二初始标志信息是否匹配。
第二数据处理单元450,用于若否,判定所述调用信息为提权操作,并判断是否执行第一预设策略或第二预设策略。
作为一种实施方式,所述第二数据处理单元450具体用于:若所述第一目标标志信息与所述第一初始标志信息以及所述第二目标标志信息与所述第二初始标志信息不匹配,判定所述调用信息为提权操作;获取当前所述进程的全路径信息;并基于所述全路径信息判断是否执行第一预设策略或第二预设策略。
第一执行单元460,用于若执行所述第一预设策略时,记录所述提权操作所对应的所述进程并将所述预设调度函数的执行结果返回至所述用户态,以使正常提权能够执行。
第二执行单元470,用于若执行所述第二预设策略时,记录所述提权操作所对应的所述进程后,并定位到当前所述进程的上下文,将所述第一初始标志信息和所述第二初始标志信息所对应的值分别写入所述第一目标标志信息和所述第二目标标志信息中,以及将所述预设调度函数的执行结果返回至所述用户态,以使非法提权失败。
请参阅图5,是本发明第四实施例提供的防御漏洞非法提权装置的功能模块示意图。所述防御漏洞非法提权装置500包括第一数据获取单元510、第二数据获取单元520、存储单元530、第三数据获取单元540、第一数据处理单元550、第二数据处理单元560、第一执行单元570和第二执行单元580。
第一数据获取单元510,用于获取用户态的调用信息。
作为一种实施方式,所述第一数据获取单元510具体用于:基于预设调度函数拦截用户态的调用信息。
第二数据获取单元520,用于获取所述调用信息所对应的当前进程中的第一初始标志信息和第二初始标志信息。
存储单元530,用于将所述第一初始标志信息和所述第二初始标志信息进行存储。
第三数据获取单元540,用于基于原始参数执行预设调度函数,并再次获取当前所述进程中的第一目标标志信息和第二目标标志信息。
作为一种实施方式,所述第三数据获取单元540具体用于:获取当前所述进程调用预设调度函数所对应的调用参数;基于所述调用参数执行所述预设调度函数,并获取执行了所述预设调度函数后的目标进程中的第一目标标志信息和第二目标标志信息。
第一数据处理单元550,用于判断所述第一目标标志信息与所述第一初始标志信息以及所述第二目标标志信息与所述第二初始标志信息是否匹配。
第二数据处理单元560,用于若否,判定所述调用信息为提权操作,并判断是否执行第一预设策略或第二预设策略。
作为一种实施方式,所述第二数据处理单元560具体用于:若所述第一目标标志信息与所述第一初始标志信息以及所述第二目标标志信息与所述第二初始标志信息不匹配,判定所述调用信息为提权操作;获取当前所述进程的全路径信息;并基于所述全路径信息判断是否执行第一预设策略或第二预设策略。
第一执行单元570,用于若执行所述第一预设策略时,记录所述提权操作所对应的所述进程并将所述预设调度函数的执行结果返回至所述用户态,以使正常提权能够执行。
第二执行单元580,用于若执行所述第二预设策略时,记录所述提权操作所对应的所述进程后,并定位到当前所述进程的上下文,将所述第一初始标志信息和所述第二初始标志信息所对应的值分别写入所述第一目标标志信息和所述第二目标标志信息中,以及将所述预设调度函数的执行结果返回至所述用户态,以使非法提权失败。
综上所述,本发明提供的一种防御漏洞非法提权方法及装置,通过先获取用户态的调用信息,再获取所述调用信息所对应的当前进程中的第一初始标志信息和第二初始标志信息,然后基于原始参数执行预设调度函数,并再次获取当前所述进程中的第一目标标志信息和第二目标标志信息,接着再判断所述第一目标标志信息与所述第一初始标志信息以及所述第二目标标志信息与所述第二初始标志信息是否匹配,从而通过判断是否匹配来判断进程是否为提权操作,以使在提权操作后通过第一预设策略或第二预设策略来判断该提权操作是否非法,并执行相应操作,进而有效阻止了非法提权操作,以使得无论是已知漏洞还是未知漏洞均能够防止非法提权。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
Claims (10)
1.一种防御漏洞非法提权方法,其特征在于,包括:
获取用户态的调用信息;
获取所述调用信息所对应的当前进程中的第一初始标志信息和第二初始标志信息;
基于原始参数执行预设调度函数,并再次获取当前所述进程中的第一目标标志信息和第二目标标志信息;
判断所述第一目标标志信息与所述第一初始标志信息以及所述第二目标标志信息与所述第二初始标志信息是否匹配;
若否,判定所述调用信息为提权操作,并判断是否执行第一预设策略或第二预设策略;
若执行所述第一预设策略时,记录所述提权操作所对应的所述进程并将所述预设调度函数的执行结果返回至所述用户态,以使正常提权能够执行;
若执行所述第二预设策略时,记录所述提权操作所对应的所述进程后,并定位到当前所述进程的上下文,将所述第一初始标志信息和所述第二初始标志信息所对应的值分别写入所述第一目标标志信息和所述第二目标标志信息中,以及将所述预设调度函数的执行结果返回至所述用户态,以使非法提权失败。
2.根据权利要求1所述的方法,其特征在于,所述的获取用户态的调用信息,包括:
基于预设调度函数拦截用户态的调用信息。
3.根据权利要求1所述的方法,其特征在于,所述的基于原始参数执行预设调度函数,并再次获取当前所述进程中的第一目标标志信息和第二目标标志信息,包括:
获取当前所述进程调用预设调度函数所对应的调用参数;
基于所述调用参数执行所述预设调度函数,并获取执行了所述预设调度函数后的目标进程中的第一目标标志信息和第二目标标志信息。
4.根据权利要求1所述的方法,其特征在于,所述的若否,判定所述调用信息为提权操作,并判断是否执行第一预设策略或第二预设策略,包括:
若所述第一目标标志信息与所述第一初始标志信息以及所述第二目标标志信息与所述第二初始标志信息不匹配,判定所述调用信息为提权操作;
获取当前所述进程的全路径信息;
并基于所述全路径信息判断是否执行第一预设策略或第二预设策略。
5.根据权利要求1所述的方法,其特征在于,所述的获取所述调用信息所对应的当前进程中的第一初始标志信息和第二初始标志信息,之后还包括:
将所述第一初始标志信息和所述第二初始标志信息进行存储。
6.一种防御漏洞非法提权装置,其特征在于,包括:
第一数据获取单元,用于获取用户态的调用信息;
第二数据获取单元,用于获取所述调用信息所对应的当前进程中的第一初始标志信息和第二初始标志信息;
第三数据获取单元,用于基于原始参数执行预设调度函数,并再次获取当前所述进程中的第一目标标志信息和第二目标标志信息;
第一数据处理单元,用于判断所述第一目标标志信息与所述第一初始标志信息以及所述第二目标标志信息与所述第二初始标志信息是否匹配;
第二数据处理单元,用于若否,判定所述调用信息为提权操作,并判断是否执行第一预设策略或第二预设策略;
第一执行单元,用于若执行所述第一预设策略时,记录所述提权操作所对应的所述进程并将所述预设调度函数的执行结果返回至所述用户态,以使正常提权能够执行;
第二执行单元,用于若执行所述第二预设策略时,记录所述提权操作所对应的所述进程后,并定位到当前所述进程的上下文,将所述第一初始标志信息和所述第二初始标志信息所对应的值分别写入所述第一目标标志信息和所述第二目标标志信息中,以及将所述预设调度函数的执行结果返回至所述用户态,以使非法提权失败。
7.根据权利要求6所述的装置,其特征在于,所述第一数据获取单元具体用于:
基于预设调度函数拦截用户态的调用信息。
8.根据权利要求6所述的装置,其特征在于,所述第三数据获取单元具体用于:
获取当前所述进程调用预设调度函数所对应的调用参数;
基于所述调用参数执行所述预设调度函数,并获取执行了所述预设调度函数后的目标进程中的第一目标标志信息和第二目标标志信息。
9.根据权利要求6所述的装置,其特征在于,所述第二数据处理单元具体用于:
若所述第一目标标志信息与所述第一初始标志信息以及所述第二目标标志信息与所述第二初始标志信息不匹配,判定所述调用信息为提权操作;
获取当前所述进程的全路径信息;
并基于所述全路径信息判断是否执行第一预设策略或第二预设策略。
10.根据权利要求6所述的装置,其特征在于,所述第二数据获取单元之后还包括:
存储单元,用于将所述第一初始标志信息和所述第二初始标志信息进行存储。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810428981.8A CN108647516B (zh) | 2018-05-07 | 2018-05-07 | 一种防御漏洞非法提权方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810428981.8A CN108647516B (zh) | 2018-05-07 | 2018-05-07 | 一种防御漏洞非法提权方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108647516A true CN108647516A (zh) | 2018-10-12 |
CN108647516B CN108647516B (zh) | 2020-08-14 |
Family
ID=63749598
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810428981.8A Active CN108647516B (zh) | 2018-05-07 | 2018-05-07 | 一种防御漏洞非法提权方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108647516B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109656576A (zh) * | 2018-12-06 | 2019-04-19 | 深圳市网心科技有限公司 | 操作系统安装包提权运行方法、电子设备、系统及介质 |
CN111783082A (zh) * | 2020-06-08 | 2020-10-16 | Oppo广东移动通信有限公司 | 进程的追溯方法、装置、终端和计算机可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102651060A (zh) * | 2012-03-31 | 2012-08-29 | 北京奇虎科技有限公司 | 一种漏洞检测的方法和系统 |
WO2015137235A1 (ja) * | 2014-03-13 | 2015-09-17 | 日本電信電話株式会社 | 特定装置、特定方法および特定プログラム |
-
2018
- 2018-05-07 CN CN201810428981.8A patent/CN108647516B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102651060A (zh) * | 2012-03-31 | 2012-08-29 | 北京奇虎科技有限公司 | 一种漏洞检测的方法和系统 |
WO2015137235A1 (ja) * | 2014-03-13 | 2015-09-17 | 日本電信電話株式会社 | 特定装置、特定方法および特定プログラム |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109656576A (zh) * | 2018-12-06 | 2019-04-19 | 深圳市网心科技有限公司 | 操作系统安装包提权运行方法、电子设备、系统及介质 |
CN109656576B (zh) * | 2018-12-06 | 2022-08-12 | 深圳市网心科技有限公司 | 操作系统安装包提权运行方法、电子设备、系统及介质 |
CN111783082A (zh) * | 2020-06-08 | 2020-10-16 | Oppo广东移动通信有限公司 | 进程的追溯方法、装置、终端和计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108647516B (zh) | 2020-08-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106325915A (zh) | 更新计算机固件的系统、方法与计算机可读取储存媒体 | |
CN109600441B (zh) | 联盟链信息发布控制方法及终端设备 | |
US11893114B2 (en) | Memory layout based monitoring | |
US20090193211A1 (en) | Software authentication for computer systems | |
CN102736978A (zh) | 一种检测应用程序的安装状态的方法及装置 | |
CN108763951B (zh) | 一种数据的保护方法及装置 | |
CN111737106A (zh) | 测试场景生成装置、测试场景生成方法、测试场景生成程序 | |
CN105637521B (zh) | 一种数据处理方法及智能终端 | |
CN104036194B (zh) | 一种应用程序中泄露隐私数据的漏洞检测方法及装置 | |
CN115292172B (zh) | 一种提高智能合约检测覆盖率的方法、电子设备及存储介质 | |
CN105335197A (zh) | 终端中应用程序的启动控制方法和装置 | |
CN104657636A (zh) | 产生结构的方法和相应的结构 | |
EP3682332A1 (en) | Method and apparatus for erasing or writing flash data | |
CN108647516A (zh) | 一种防御漏洞非法提权方法及装置 | |
CN104363112A (zh) | 一种参数管理方法及装置 | |
CN107341074B (zh) | 一种升级异常修复方法、升级异常修复装置及智能终端 | |
CN106548065A (zh) | 应用程序安装检测方法及装置 | |
KR20140048094A (ko) | 이동 단말 장치 칩 프로그래밍을 위한 방법 | |
CN104915594A (zh) | 应用程序运行方法及装置 | |
CN115729568A (zh) | 程序烧录保护方法、装置、烧录器及板卡 | |
CN104021340A (zh) | 一种恶意应用安装的检测方法和装置 | |
CN107368738B (zh) | 一种智能设备的防Root方法及装置 | |
CN105844156A (zh) | 一种进程信息获取方法、装置及电子设备 | |
US20120011083A1 (en) | Product-Centric Automatic Software Identification in z/OS Systems | |
CN103685259A (zh) | 账户登录的方法及其装置 |
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 |