一种基于android的防root方法[发明专利]

(19)中华人民共和国国家知识产权局
(12)发明专利申请
(10)申请公布号 (43)申请公布日 (21)申请号 201710327672.7
(22)申请日 2017.05.10
(71)申请人 北京海杭通讯科技有限公司
地址 100020 北京市朝阳区将台路5号院5
号楼5103室
(72)发明人 王晓华 张韵 江滨 邓永德 
(74)专利代理机构 深圳市科吉华烽知识产权事
务所(普通合伙) 44248
代理人 孙伟
(51)Int.Cl.
G06F  9/445(2006.01)
G06F  9/50(2006.01)
(54)发明名称一种基于android的防root方法(57)摘要本发明提供了一种基于android的防root方法,包括以下步骤:S1、在操作系统内核启动时,注册一个LSM模块,注册内核线程;S2、在进程空间中,调用setuid/setgid函数,判断原始程序是否存在升权行为,如果存在,则将task_struct放到全局链表中,并启动内核线程;S3、在内核线程中,在全局链表中到task_struct结构体,到进程对应的可执行文件和带有setuid权限的文件;S4、停止进程,释放进程资源,删除步骤S3中的可执行文件和带有setuid权限的文件。本发明的有益效果是:可以避免修改库和用户层程序及修改属性来隐藏文件的问题,有利于搜索非法植
入手机的隐藏文件。权利要求书1页  说明书3页  附图1页CN 107193590 A 2017.09.22
C N  107193590
A
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到的文件删除。
权 利 要 求 书1/1页CN 107193590 A
一种基于android的防root方法
技术领域
[0001]本发明涉及防root方法,尤其涉及一种基于android的防root方法。
背景技术
[0002]基于android的防root方法,传统的方案是启动一个native daemon,该程序周期性搜索/system/bin和/system/xbin下带有setuid权限标志位的文件.这种方案存在几个问题:
(1) 无法搜索非法植入手机的隐藏文件。通常隐藏文件的方法有修改文件权限;修改用户层查看文件工具,so库;通过insmod内核模块添加模块通过LSM钩子函数改变系统调用;通过insmod内核模块在现有分区上做一个特殊文件系统,将文件隐藏到伪坏块中等.而而通过搜索文件,无法到通过这几种方法隐藏的文件。
[0003](2) 无法避免非法程序将试图删除su文件的进程被杀死的风险.非法程序通过插入LMK调用内核钩子查看谁在删除su文件,然后将该进程kill掉,这样无法通过用户进程防止这种技术。
[0004](3) 为了及时发现非法可执行文件,需要尽可能搜索的间隔较短;为了避免放到非/system/bin和/system/xbin目录下,需要进行整个系统范围内搜索,占用了大量系统cpu,memory,io资源。
发明内容
[0005]为了解决现有技术中的问题,本发明提供了一种基于android的防root方法。[0006]本发明提供了一种基于android的防root方法,包括以下步骤:
S1、在操作系统内核启动时,注册一个LSM模块,注册内核线程;
S2、在进程空间中,调用setuid/setgid函数,判断原始程序是否存在升权行为,如果存在,则将task_struct放到全局链表中,并启动内核线程;
S3、在内核线程中,在全局链表中到task_struct结构体,到进程对应的可执行文件和带有setuid权限的文件;
S4、停止进程,释放进程资源,删除步骤S3中的可执行文件和带有setuid权限的文件。[0007]作为本发明的进一步改进,在步骤S1中:注册一个LSM模块checkroot,赋值security_operations中的security_task_fix_setuid、task_setpgid函数接口;注册一个kernel thread。
[0008]作为本发明的进一步改进,在步骤S2中:在security_task_fix_setuid、task_ setpgid中获取当前进程的task_struct结构体,判断原uid是否比现在的uid小,如果是则将该task_struct记录下来。
[0009]作为本发明的进一步改进,在步骤S3中:启动kernel thread,在kernel thread中通过步骤S2到的task_struct结构体,查进程打开的文件中带有setuid权限的文件对应的file_struct,根据file_struct到文件的dentry和inode结构体。
[0010]作为本发明的进一步改进,直接在内核中stop掉有非法操作的进程并将进程占用的资源释放掉,并将步骤S3到的文件删除。
[0011]本发明的有益效果是:可以避免修改库和用户层程序及修改属性来隐藏文件的问题,有利于搜索非法植入手机的隐藏文件。
附图说明
[0012]图1是本发明一种基于android的防root方法的示意图。
具体实施方式
[0013]下面结合附图说明及具体实施方式对本发明作进一步说明。
[0014]如图1所示,一种基于android的防root方法,通过内核钩子函数,内核线程相结合,在su程序setuid、setgid时(必须通过setuid、setgid等系统调用来提权),判断该进程是否在升权,具体包括以下步骤:
S1、在kernel启动时,注册一个LSM模块,注册内核线程;
S2、在进程空间中,调用setuid/setgid函数,判断原始程序是否存在升权行为,如果存在,则将task_struct放到全局链表中,并启动内核线程;
S3、在内核线程中,在全局链表中到task_struct结构体,到进程对应的可执行文件和带有setuid权限的文件;
S4、停止进程,释放进程资源,删除步骤S3中的可执行文件和带有setuid权限的文件。[0015]在步骤S1中:注册一个LSM模块checkroot,赋值security_operations中的security_task_fix_setuid、task_setpgid函数接口;注册一个kernel thread。[0016]在步骤S2中:在security_task_fix_setuid、task_setpgid中获取当前进程的task_struct结构体,判断原uid是否比现在的uid小,如果是则将该task_struct记录下来。[0017]在步骤S3中:启动kernel thread,在kernel thread中通过步骤S2到的task_ struct结构体,查进程打开的文件中带有setuid权限的文件对应的file_struct,根据file_struct到文件的dentry和inode结构体。
[0018]直接在内核中stop掉有非法操作的进程并将进程占用的资源释放掉,并将步骤S3到的文件删除。
[0019]如图1所示,首先几个空间要区分开,kernel空间包含kernel启动,进程在内核运行系统调用部分和内核线程。初始化部分是在kernel启动过程中,主要是初始化数据结构,注册security模块,注册内核线程;检测部分是在进程通过系统调用软中断方式进入kernel空间后,判断原始uid,gid和要设置的uid,gid的关系;而检测失败后的操作是放在内核线程中处理。
[0020]本发明提供的基于android的防root方法,由于机制是在kernel中作判断,这样我们可以避免修改库和用户层程序及修改属性来隐藏文件的问题;对于非法杀死程序,作判断操作的是在非法进程内部,杀死的本进程就杀掉了非法进程本身。而该内核线程在selinux权限中不容许被用户层杀死;该机制只有在进程行为确实有问题才出发,不会无端消耗系统资料。
[0021]以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定
本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

本文发布于:2024-09-20 12:12:26,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/802872.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:进程   文件   内核   程序   线程   步骤   调用
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议