CN107193590A - 一种基于android的防root方法 - Google Patents

一种基于android的防root方法 Download PDF

Info

Publication number
CN107193590A
CN107193590A CN201710327672.7A CN201710327672A CN107193590A CN 107193590 A CN107193590 A CN 107193590A CN 201710327672 A CN201710327672 A CN 201710327672A CN 107193590 A CN107193590 A CN 107193590A
Authority
CN
China
Prior art keywords
file
task
setuid
struct
kernel thread
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
CN201710327672.7A
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.)
Beijing Haihang Communication Technology Co Ltd
Original Assignee
Beijing Haihang Communication Technology 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 Beijing Haihang Communication Technology Co Ltd filed Critical Beijing Haihang Communication Technology Co Ltd
Priority to CN201710327672.7A priority Critical patent/CN107193590A/zh
Publication of CN107193590A publication Critical patent/CN107193590A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44594Unloading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5022Mechanisms to release resources

Landscapes

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

Abstract

本发明提供了一种基于android的防root方法,包括以下步骤:S1、在操作系统内核启动时,注册一个LSM模块,注册内核线程;S2、在进程空间中,调用setuid/setgid函数,判断原始程序是否存在升权行为,如果存在,则将task_struct放到全局链表中,并启动内核线程;S3、在内核线程中,在全局链表中找到task_struct结构体,找到进程对应的可执行文件和带有setuid权限的文件;S4、停止进程,释放进程资源,删除步骤S3中的可执行文件和带有setuid权限的文件。本发明的有益效果是:可以避免修改库和用户层程序及修改属性来隐藏文件的问题,有利于搜索非法植入手机的隐藏文件。

Description

一种基于android的防root方法
技术领域
本发明涉及防root方法,尤其涉及一种基于android的防root方法。
背景技术
基于android的防root方法,传统的方案是启动一个native daemon,该程序周期性搜索/system/bin和/system/xbin下带有setuid权限标志位的文件.这种方案存在几个问题:
(1) 无法搜索非法植入手机的隐藏文件。通常隐藏文件的方法有修改文件权限;修改用户层查看文件工具,so库;通过insmod内核模块添加模块通过LSM钩子函数改变系统调用;通过insmod内核模块在现有分区上做一个特殊文件系统,将文件隐藏到伪坏块中等.而而通过搜索文件,无法找到通过这几种方法隐藏的文件。
(2) 无法避免非法程序将试图删除su文件的进程被杀死的风险.非法程序通过插入LMK调用内核钩子查看谁在删除su文件,然后将该进程kill掉,这样无法通过用户进程防止这种技术。
(3) 为了及时发现非法可执行文件,需要尽可能搜索的间隔较短;为了避免放到非/system/bin和/system/xbin目录下,需要进行整个系统范围内搜索,占用了大量系统cpu,memory,io资源。
发明内容
为了解决现有技术中的问题,本发明提供了一种基于android的防root方法。
本发明提供了一种基于android的防root方法,包括以下步骤:
S1、在操作系统内核启动时,注册一个LSM模块,注册内核线程;
S2、在进程空间中,调用setuid/setgid函数,判断原始程序是否存在升权行为,如果存在,则将task_struct放到全局链表中,并启动内核线程;
S3、在内核线程中,在全局链表中找到task_struct结构体,找到进程对应的可执行文件和带有setuid权限的文件;
S4、停止进程,释放进程资源,删除步骤S3中的可执行文件和带有setuid权限的文件。
作为本发明的进一步改进,在步骤S1中:注册一个LSM模块checkroot,赋值security_operations中的security_task_fix_setuid、task_setpgid函数接口;注册一个kernel thread。
作为本发明的进一步改进,在步骤S2中:在security_task_fix_setuid、task_setpgid中获取当前进程的task_struct结构体,判断原uid是否比现在的uid小,如果是则将该task_struct记录下来。
作为本发明的进一步改进,在步骤S3中:启动kernel thread,在kernel thread中通过步骤S2找到的task_struct结构体,查找进程打开的文件中带有setuid权限的文件对应的file_struct,根据file_struct找到文件的dentry和inode结构体。
作为本发明的进一步改进,直接在内核中stop掉有非法操作的进程并将进程占用的资源释放掉,并将步骤S3找到的文件删除。
本发明的有益效果是:可以避免修改库和用户层程序及修改属性来隐藏文件的问题,有利于搜索非法植入手机的隐藏文件。
附图说明
图1是本发明一种基于android的防root方法的示意图。
具体实施方式
下面结合附图说明及具体实施方式对本发明作进一步说明。
如图1所示,一种基于android的防root方法,通过内核钩子函数,内核线程相结合,在su程序setuid、setgid时(必须通过setuid、setgid等系统调用来提权),判断该进程是否在升权,具体包括以下步骤:
S1、在kernel启动时,注册一个LSM模块,注册内核线程;
S2、在进程空间中,调用setuid/setgid函数,判断原始程序是否存在升权行为,如果存在,则将task_struct放到全局链表中,并启动内核线程;
S3、在内核线程中,在全局链表中找到task_struct结构体,找到进程对应的可执行文件和带有setuid权限的文件;
S4、停止进程,释放进程资源,删除步骤S3中的可执行文件和带有setuid权限的文件。
在步骤S1中:注册一个LSM模块checkroot,赋值security_operations中的security_task_fix_setuid、task_setpgid函数接口;注册一个kernel thread。
在步骤S2中:在security_task_fix_setuid、task_setpgid中获取当前进程的task_struct结构体,判断原uid是否比现在的uid小,如果是则将该task_struct记录下来。
在步骤S3中:启动kernel thread,在kernel thread中通过步骤S2找到的task_struct结构体,查找进程打开的文件中带有setuid权限的文件对应的file_struct,根据file_struct找到文件的dentry和inode结构体。
直接在内核中stop掉有非法操作的进程并将进程占用的资源释放掉,并将步骤S3找到的文件删除。
如图1所示,首先几个空间要区分开,kernel空间包含kernel启动,进程在内核运行系统调用部分和内核线程。初始化部分是在kernel启动过程中,主要是初始化数据结构,注册security模块,注册内核线程;检测部分是在进程通过系统调用软中断方式进入kernel空间后,判断原始uid,gid和要设置的uid,gid的关系;而检测失败后的操作是放在内核线程中处理。
本发明提供的基于android的防root方法,由于机制是在kernel中作判断,这样我们可以避免修改库和用户层程序及修改属性来隐藏文件的问题;对于非法杀死程序,作判断操作的是在非法进程内部,杀死的本进程就杀掉了非法进程本身。而该内核线程在selinux权限中不容许被用户层杀死;该机制只有在进程行为确实有问题才出发,不会无端消耗系统资料。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

Claims (5)

1.一种基于android的防root方法,其特征在于,包括以下步骤:
S1、在操作系统内核启动时,注册一个LSM模块,注册内核线程;
S2、在进程空间中,调用setuid/setgid函数,判断原始程序是否存在升权行为,如果存在,则将task_struct放到全局链表中,并启动内核线程;
S3、在内核线程中,在全局链表中找到task_struct结构体,找到进程对应的可执行文件和带有setuid权限的文件;
S4、停止进程,释放进程资源,删除步骤S3中的可执行文件和带有setuid权限的文件。
2.根据权利要求1所述的基于android的防root方法,其特征在于:在步骤S1中:注册一个LSM模块checkroot,赋值security_operations中的security_task_fix_setuid、task_setpgid函数接口;注册一个kernel thread。
3.根据权利要求2所述的基于android的防root方法,其特征在于:在步骤S2中:在security_task_fix_setuid、task_setpgid中获取当前进程的task_struct结构体,判断原uid是否比现在的uid小,如果是则将该task_struct记录下来。
4.根据权利要求3所述的基于android的防root方法,其特征在于:在步骤S3中:启动kernel thread,在kernel thread中通过步骤S2找到的task_struct结构体,查找进程打开的文件中带有setuid权限的文件对应的file_struct,根据file_struct找到文件的dentry和inode结构体。
5.根据权利要求4所述的基于android的防root方法,其特征在于:在步骤S4中:直接在内核中stop掉有非法操作的进程并将进程占用的资源释放掉,并将步骤S3找到的文件删除。
CN201710327672.7A 2017-05-10 2017-05-10 一种基于android的防root方法 Pending CN107193590A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710327672.7A CN107193590A (zh) 2017-05-10 2017-05-10 一种基于android的防root方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710327672.7A CN107193590A (zh) 2017-05-10 2017-05-10 一种基于android的防root方法

Publications (1)

Publication Number Publication Date
CN107193590A true CN107193590A (zh) 2017-09-22

Family

ID=59872917

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710327672.7A Pending CN107193590A (zh) 2017-05-10 2017-05-10 一种基于android的防root方法

Country Status (1)

Country Link
CN (1) CN107193590A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019237849A1 (zh) * 2018-06-12 2019-12-19 杨力祥 一种形式化的发现可能引发攻击风险的代码漏洞的分析方法
CN114691220A (zh) * 2020-12-30 2022-07-01 网神信息技术(北京)股份有限公司 保护进程的方法、装置、电子设备、介质和程序产品
CN117908993A (zh) * 2024-03-18 2024-04-19 麒麟软件有限公司 进程的limit修改方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030172109A1 (en) * 2001-01-31 2003-09-11 Dalton Christoper I. Trusted operating system
CN103699839A (zh) * 2013-12-09 2014-04-02 Tcl集团股份有限公司 一种内核级rootkit检测处理方法及系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030172109A1 (en) * 2001-01-31 2003-09-11 Dalton Christoper I. Trusted operating system
CN103699839A (zh) * 2013-12-09 2014-04-02 Tcl集团股份有限公司 一种内核级rootkit检测处理方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
左玉丹: "基于SELinux的内核提权攻击防御技术研究", 《中国优秀硕士学位论文全文数据库》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019237849A1 (zh) * 2018-06-12 2019-12-19 杨力祥 一种形式化的发现可能引发攻击风险的代码漏洞的分析方法
CN114691220A (zh) * 2020-12-30 2022-07-01 网神信息技术(北京)股份有限公司 保护进程的方法、装置、电子设备、介质和程序产品
CN117908993A (zh) * 2024-03-18 2024-04-19 麒麟软件有限公司 进程的limit修改方法
CN117908993B (zh) * 2024-03-18 2024-05-17 麒麟软件有限公司 进程的limit修改方法

Similar Documents

Publication Publication Date Title
CN102902909B (zh) 一种防止文件被篡改的系统和方法
US7673324B2 (en) Method and system for tracking an operating performed on an information asset with metadata associated therewith
CN102930205A (zh) 一种监测单元及方法
CN102202062B (zh) 一种实现访问控制的方法和装置
CN103473501B (zh) 一种基于云安全的恶意软件追踪方法
CN102236764B (zh) 用于Android系统的抵御桌面信息攻击的方法和监控系统
CN107480527A (zh) 勒索软件的防范方法及系统
CN102495989A (zh) 一种基于主体标记的访问控制方法及系统
CN104112089A (zh) 基于多策略融合的强制访问控制方法
CN103699839A (zh) 一种内核级rootkit检测处理方法及系统
CN103294950A (zh) 一种基于反向追踪的高威窃密恶意代码检测方法及系统
CN107193590A (zh) 一种基于android的防root方法
CN102654864A (zh) 一种面向实时数据库的独立透明型安全审计保护的方法
US9418232B1 (en) Providing data loss prevention for copying data to unauthorized media
CN106228067A (zh) 恶意代码动态检测方法及装置
CN102194079B (zh) 文件访问过滤方法
CN106548070A (zh) 一种在待机时间防御勒索者病毒的方法及系统
CN104063669A (zh) 一种实时监测文件完整性的方法
US20080300900A1 (en) Systems and methods for distributed sequestration in electronic evidence management
CN103218561A (zh) 一种保护浏览器的防篡改方法和装置
CN102819717B (zh) 一种文件保护处理的方法和装置
US20100162349A1 (en) Content protection device, content protection method, and computer readable medium
CN105550573B (zh) 拦截捆绑软件的方法和装置
WO2019037521A1 (zh) 安全检测的方法、装置、系统以及服务器
CN107045605A (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
AD01 Patent right deemed abandoned

Effective date of abandoning: 20210312

AD01 Patent right deemed abandoned