CN109977663A - 防止Android智能终端设备被恶意root提权的方法 - Google Patents

防止Android智能终端设备被恶意root提权的方法 Download PDF

Info

Publication number
CN109977663A
CN109977663A CN201910194434.2A CN201910194434A CN109977663A CN 109977663 A CN109977663 A CN 109977663A CN 201910194434 A CN201910194434 A CN 201910194434A CN 109977663 A CN109977663 A CN 109977663A
Authority
CN
China
Prior art keywords
carry
password
subregion
remount
intelligent terminal
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
CN201910194434.2A
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.)
Sichuan Changhong Electric Co Ltd
Original Assignee
Sichuan Changhong Electric 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 Sichuan Changhong Electric Co Ltd filed Critical Sichuan Changhong Electric Co Ltd
Priority to CN201910194434.2A priority Critical patent/CN109977663A/zh
Publication of CN109977663A publication Critical patent/CN109977663A/zh
Pending legal-status Critical Current

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/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • 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/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability

Abstract

本发明公开了一种防止Android智能终端设备被恶意root提权的方法,包括以下步骤:系统启动时通过系统调用mount流程首次挂载分区,且系统启动时挂载的分区为只读属性;当用户进程发起重挂载分区时,识别出remount参数、以及挂载节点;当remount挂载节点是首次挂载的分区时,则提取重挂载携带的密码口令,进行权限校验;若重挂载密码口令校验成功,则执行挂载,否则返回重挂载权限被拒,系统的分区保持只读属性。基于Android智能终端设备系统分区启动时挂载为只读属性的特征,本发明从保护系统分区的角度,对分区remount重新挂载的操作增加权限校验,只有校验通过的重挂载才被允许,否则拒绝重新挂载,达到保护系统分区的目的。

Description

防止Android智能终端设备被恶意root提权的方法
技术领域
本发明涉及计算机操作系统安全技术领域,特别是一种防止Android智能终端设备被恶意root提权的方法。
背景技术
Android智能终端设备上系统开源特性,存在的系统漏洞被广泛地发掘和利用,其中系统提权的漏洞时有爆出。如果软件系统被恶意root提权,系统文件可能存在被篡改或数据泄露等风险,影响系统的正常运行、甚至是无法实施网络差分升级,给设备厂商和用户带来权益损失。
Android智能电视在开源系统上实现了各厂商的软件定制,支持私有的运营性业务。一旦系统被恶意root提权和篡改后,将影响设备的正常运行和使用。在智能设备快速迭代和软件更新需求下,软件在开发和维护中又存在修改系统的需求,帮助快速分析和定位,促进软件开发迭代。
发明内容
为解决现有技术中存在的问题,本发明的目的是提供一种防止Android智能终端设备被恶意root提权的方法,基于Android智能终端设备系统分区启动时挂载为只读属性的特征,本发明从保护系统分区的角度,对分区remount重新挂载的操作增加权限校验,只有校验通过的重挂载才被允许,否则拒绝重新挂载,达到保护系统分区的目的。
为实现上述目的,本发明采用的技术方案是:一种防止Android智能终端设备被恶意root提权的方法,Linux内核中系统分区的挂载、分区remount重挂载处理流程,由系统调用、系统mount、remount参数识别、domount来实现,包括以下步骤:
步骤S10、系统启动时通过系统调用mount流程首次挂载system/vendor分区,且系统启动时挂载system/vendor分区为只读属性(ro);
步骤S20、当用户进程发起重挂载分区时,识别出remount参数、以及挂载节点;
步骤S30、当remount挂载节点是system/vendor分区时,则提取重挂载携带的密码口令,进行权限校验;
步骤S40、若重挂载密码口令校验成功,则执行挂载,否则返回重挂载权限被拒,系统的分区保持只读属性。
该步骤仅针对挂载为只读属性的系统分区(system/vendor)做重挂载时的权限校验,其他数据类的分区则没有校验;如果有其他本身挂载为只读属性的分区需要纳入校验,实现方式同此。
作为一种优选的实施方式,在步骤S30中,所述的密码口令为在系统分区的文件系统生成时记录文件的唯一特征的散列值。
作为另一种优选的实施方式,所述散列值的生成步骤具体如下:
步骤S31、密码口令进行第一重散列处理(hash1),得到第一散列值result(hash1);
步骤S32、将第一散列值result(hash1)进行增减变化,重组序列数据data2;
步骤S33、对重组序列数据data2进行第二重散列处理(hash2),得到第二散列值result(hash2);
步骤S34、从第二散列值result(hash2)中提取某些片段重组并保存在内核中,供系统调用remount时做校验比对。
remount重挂载时权限校验流程如上述的加密处理流程,通过将输入的密码口令转为加密字符串后,与保存在内核中的加密口令之间进行比较。
校验密码口令的加密保存以及重挂载时口令的权限校验处理流程,校验口令的加密保存可免于明文密码口令容易泄露的风险,为了防止逆向破解口令,本发明基于两重散列算法和抽取片段的方式加大破解难度,进一步提升保密性。
本发明的有益效果是:Android智能终端设备广泛基于开源Android平台定制而成,系统在不断更新的同时也无法避免系统被恶意root提权和篡改的风险,本发明针对Android智能设备上系统分区的挂载特征,通过挂载权限的校验密码口令的方式,保障了Android智能电视设备商对自己设备的可重挂载权限,也防止了非法第三方对系统的恶意root提权和篡改,达到了系统分区灵活挂载使用和安全保障的双重效果;对Android智能智能终端设备系统分区的重挂载权限实现了有效管控,既方便了开发和软件维护中的重挂载需求,又可以防止第三方的非法挂载处理;内核中保存的系统分区重挂载校验密码口令基于加密保存,可有效防止恶意窃取;对于Android智能电视的不同机芯平台,将固件信息纳入密码口令的加密处理,使得内存中保留的密码口令在不同平台是适时变化的,增加了暴力破解密码口令的难度。
附图说明
图1为本发明实施例中基于linuxkernel的remount重挂载处理流程框图;
图2为本发明实施例中重挂载系统分区校验的密码口令的加密流程框图。
具体实施方式
下面结合附图对本发明的实施例进行详细说明。
实施例:
如图1所示,一种防止Android智能终端设备被恶意root提权的方法,包括以下步骤:
步骤S10、系统启动时通过系统调用mount流程首次挂载分区,且系统启动时挂载的分区为只读属性;
步骤S20、当用户进程发起重挂载分区时,识别出remount参数、以及挂载节点;
步骤S30、当remount挂载节点是步骤S10中首次挂载的分区时,则提取重挂载携带的密码口令,进行权限校验;
步骤S40、若重挂载密码口令校验成功,则执行挂载,否则返回重挂载权限被拒,系统的分区保持只读属性。
下面对本实施例作进一步说明:
1、Android智能终端设备的root状态检测原理
Android智能设终端备的系统root状态检测可基于文件系统是否被篡改来判断。首先在系统分区的文件系统生成时记录文件的唯一特征,如各文件的散列值;然后在对系统root状态检测时,计算当前系统分区各文件的散列值,是否与预制记录的保持一致。如果出现某文件的散列值发生变化,则可判定该文件被修改过。如果系统分区文件被修改了,则显示该系统已经被root提权了。
针对Android系统的恶意root提权处理,其目的多是为了修改系统分区的文件或者数据,以达到提权目的。
2、Android智能终端设备系统分区的挂载特性
Android智能终端设备厂商依据源码工程和芯片商、厂商的业务特性,定制了很多不同的分区,如system分区、vendor分区、usedata分区等。每个分区在系统启动时通过调用内核来挂载,并设置挂载节点的读写属性,如系统分区为只读属性、用户数据分区则为可读写属性。
Android系统的root提权,其实就是对系统分区的提权和篡改。通过对系统分区的挂载特性的了解,可以看出要修改系统分区文件,必须要先更改只读分区挂载属性为可读写的,这是通过系统调用的remount处理实现的。
3、Android智能终端设备系统分区防root措施
Android智能终端设备在系统启动时,首先通过系统调用挂载分区设备到文件系统,如system/vendor分区都是挂载为只读属性。当后续需要改写系统文件时,则需要重新挂载该分区为可读写属性,然后再对分区文件实现改写操作。
再如图1所示,Linux内核中基于系统调用实现的重挂载分区的流程,在挂载分区时,通过option带入的参数来识别出remount处理,在该节点上增加remount权限校验,即可达到允许/拒绝分区挂载为可读写属性的处理,从而达到防止系统分区被root提权。
4、Android智能终端设备系统分区重挂载的校验安全性
系统分区的设备挂载是通过Linux内核的系统调用实现的,remount权限校验建立在密码口令基础上,故密码口令本身的安全性就需要得到较好的保护。
本实施例将权限密码口令基于单向散列加密方式来处理,保存在kernel内核中。首先,在正常需要重挂载只读属性的系统分区时,携带正确校验的密码口令执行挂载请求;然后内核通过系统调用进入remount流程时,识别出只读属性的系统挂载分区,校验携带的密码口令。如果校验通过,则支持系统分区的重挂载处理;否则拒绝重新挂载分区请求,系统分区保持只读属性,达到了保护分区上文件系统的目的。
具体的,内核系统调用的mount流程中增加remount系统分区时的权限校验处理如下:
在Android项目源码中找到Linux内核源码模块根目录下找到fs/namespace.c文件。
用户进程发起的系统调用,跟mount相关的为SYSCALL_DEFINE5,函数原型如下:
SYSCALL_DEFINE5(mount,char__user*,dev_name,char__user*,dir_name,
char__user*,type,unsigned long,flags,void__user*,data)
该系统调用中将用户mount的参数携带进来,调用do_mount函数,函数原型如下:
long do_mount(const char*dev_name,const char__user*dir_name,
const char*type_page,unsigned long flags,void*data_page)
该函数内实施挂载时通过flags参数判断当前是否为remount处理流程,重挂载时则判断挂载节点(dir_name)是否为系统分区(system、vendor),条件都满足时则进入重挂载密码口令权限校验。
系统分区的挂载密码口令由data_page参数携带进来,如果密码口令为空不存在、或密码口令明显不合要求,则直接拒绝重挂载该分区。密码口令字初步筛选合法后,实施加密后比较,进一步校验:如果校验通过,则执行do_remount函数;否则返回错误,提示挂载权限被拒绝,函数原型如下:
至此,内核增加重挂载系统分区的口令校验节点实现。
5、remount系统分区密码口令的加密处理
系统分区重挂载校验的密码口令的保密性需求较高,也是日常软件开发维护中经常使用的。为了不被第三方轻易破解,则融合了hash散列算法叠加和片段抽取和增加的方式来增加逆向难度。
如图2所示,密码口令具体设计如下:
1)、密码口令(data1)基于sha256算法,获取到BYTE类型的字节流(byte1);
2)、第一重散列结果(byte1)基于hex可视化转换为字符串(hex1);
3)、可视化字符串(hex1)与机芯平台类软件信息串接重组,得到新的字符串(data2);
4)、重组字符串(data2)基于md5实现二次hash处理,获取到BYTE类型的字节流(byte2);
5)、从BYTE类型的字节流(byte2)中抽取部分片段并可视化转换,获取到最终的加密字符串keys。
将计算得到的keys保存在内核中。
在do_remount函数中校验密码口令时,is_valid_code函数中将输入的密码口令实现上述同样的加密处理流程,计算得到newkeys,比较newkeys与内核中keys,从而认定该remount操作是否被允许执行。
以上所述实施例仅表达了本发明的具体实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。

Claims (4)

1.一种防止Android智能终端设备被恶意root提权的方法,其特征在于,包括以下步骤:
步骤S10、系统启动时通过系统调用mount流程首次挂载分区,且系统启动时挂载的分区为只读属性;
步骤S20、当用户进程发起重挂载分区时,识别出remount参数、以及挂载节点;
步骤S30、当remount挂载节点是步骤S10中首次挂载的分区时,则提取重挂载携带的密码口令,进行权限校验;
步骤S40、若重挂载密码口令校验成功,则执行挂载,否则返回重挂载权限被拒,系统的分区保持只读属性。
2.根据权利要求1所述的防止Android智能终端设备被恶意root提权的方法,其特征在于,在步骤S30中,所述的密码口令为在系统分区的文件系统生成时记录文件的唯一特征的散列值。
3.根据权利要求2所述的防止Android智能终端设备被恶意root提权的方法,其特征在于,所述散列值的生成步骤具体如下:
步骤S31、密码口令进行第一重散列处理,得到第一散列值;
步骤S32、将第一散列值进行增减变化,重组序列数据;
步骤S33、对重组序列数据进行第二重散列处理,得到第二散列值;
步骤S34、从第二散列值中提取某些片段重组并保存在内核中,供系统调用remount时做校验比对。
4.根据权利要求3所述的防止Android智能终端设备被恶意root提权的方法,其特征在于,在步骤S30中,进行权限校验的过程具体如下:
remount重挂载时,通过将输入的密码口令转为加密字符串后,与保存在内核中的加密口令之间进行比较。
CN201910194434.2A 2019-03-14 2019-03-14 防止Android智能终端设备被恶意root提权的方法 Pending CN109977663A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910194434.2A CN109977663A (zh) 2019-03-14 2019-03-14 防止Android智能终端设备被恶意root提权的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910194434.2A CN109977663A (zh) 2019-03-14 2019-03-14 防止Android智能终端设备被恶意root提权的方法

Publications (1)

Publication Number Publication Date
CN109977663A true CN109977663A (zh) 2019-07-05

Family

ID=67078960

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910194434.2A Pending CN109977663A (zh) 2019-03-14 2019-03-14 防止Android智能终端设备被恶意root提权的方法

Country Status (1)

Country Link
CN (1) CN109977663A (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102508791A (zh) * 2011-09-28 2012-06-20 梁守龙 一种对硬盘分区进行加密的方法及装置
CN103365685A (zh) * 2013-06-03 2013-10-23 深圳创维无线技术有限公司 一种基于android超级权限方法和装置
CN103488956A (zh) * 2012-06-07 2014-01-01 亚旭电脑股份有限公司 可携式电子装置的数据保护方法及其计算机程序产品
CN104484611A (zh) * 2014-11-10 2015-04-01 福建联迪商用设备有限公司 一种Android系统的分区挂载管控方法及装置
CN105809055A (zh) * 2016-02-26 2016-07-27 深圳天珑无线科技有限公司 访问控制方法、装置及相关设备
CN106528145A (zh) * 2016-10-28 2017-03-22 北京海誉动想科技股份有限公司 实例系统及实例系统代理的版本管理方法
WO2017092671A1 (zh) * 2015-12-04 2017-06-08 华为技术有限公司 虚拟机管理的方法、装置和系统
CN108228215A (zh) * 2018-01-02 2018-06-29 青岛海信移动通信技术股份有限公司 终端设备的ota升级包的推送方法及装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102508791A (zh) * 2011-09-28 2012-06-20 梁守龙 一种对硬盘分区进行加密的方法及装置
CN103488956A (zh) * 2012-06-07 2014-01-01 亚旭电脑股份有限公司 可携式电子装置的数据保护方法及其计算机程序产品
CN103365685A (zh) * 2013-06-03 2013-10-23 深圳创维无线技术有限公司 一种基于android超级权限方法和装置
CN104484611A (zh) * 2014-11-10 2015-04-01 福建联迪商用设备有限公司 一种Android系统的分区挂载管控方法及装置
WO2017092671A1 (zh) * 2015-12-04 2017-06-08 华为技术有限公司 虚拟机管理的方法、装置和系统
CN105809055A (zh) * 2016-02-26 2016-07-27 深圳天珑无线科技有限公司 访问控制方法、装置及相关设备
CN106528145A (zh) * 2016-10-28 2017-03-22 北京海誉动想科技股份有限公司 实例系统及实例系统代理的版本管理方法
CN108228215A (zh) * 2018-01-02 2018-06-29 青岛海信移动通信技术股份有限公司 终端设备的ota升级包的推送方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
杨天泉: "Android终端安全机制分析及安全防护技术研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *
陈最: "基于Android平台移动终端透明加密系统的研究与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Similar Documents

Publication Publication Date Title
CN107679393B (zh) 基于可信执行环境的Android完整性验证方法和装置
CN103403669B (zh) 使app变得安全的方法和防止app损坏设备的方法
US9515832B2 (en) Process authentication and resource permissions
CN105453102B (zh) 用于识别已泄漏的私有密钥的系统和方法
CN106133743B (zh) 用于优化预安装应用程序的扫描的系统和方法
US20140075502A1 (en) Resource management of execution environments
AU2013308905A1 (en) Protecting assets on a device
US20210352097A1 (en) Third-party application risk assessment in an authorization service
CN105141614B (zh) 一种移动存储设备的访问权限控制方法及装置
KR101441581B1 (ko) 클라우드 컴퓨팅 환경을 위한 다계층 보안 장치 및 다계층 보안 방법
CN105184167A (zh) 基于TPM细粒度权限的Android系统安全增强系统及方法
CN108228353A (zh) 资源访问控制方法、装置及相应终端
CN107305606A (zh) 应用文件的处理方法及装置和文件的访问方法及装置
KR102542213B1 (ko) 네트워크 기반 스토리지의 데이터 실시간 암복호화 보안 시스템 및 방법
CN113544665A (zh) 利用工作证明对资源受限环境中的可信代理的测量的执行
CN109977663A (zh) 防止Android智能终端设备被恶意root提权的方法
CN110472423A (zh) 一种核电站文件权限管理方法、装置及设备
EP4338076A1 (en) A computerized charging/interface device with malware detection and backup capabilities
CN110543769B (zh) 一种基于加密tf卡的可信启动方法
KR20210053844A (ko) 인공지능형 개인 정보 보안 시스템의 서버
KR101349807B1 (ko) 이동식 저장매체 보안시스템 및 그 방법
US10116438B1 (en) Managing use of security keys
Paul et al. Practical attacks on security and privacy through a low-cost android device
Sivakumaran et al. Uncovering Vulnerabilities of Bluetooth Low Energy IoT from Companion Mobile Apps with Ble-Guuide
CN112131612B (zh) 一种cf卡数据防篡改方法、装置、设备及介质

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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20190705