Android智能手机安全解决方案
1. 终端安全解决方案全景
1.1. Android系统框架预览
此外,鉴于许多硬件厂商不希望公开其设备驱动程序,GOOGLE在运行时库层对下屏蔽实现细节,对上提供统一接口增加了硬件抽象层.
1.2. Android本身安全机制
Android系统不仅提供了开放的生态,而且针对自身特点在系统各层都提供安全机制,确保Android终端能有一个相对安全的环境.
进程沙箱隔离机制:Android系统为每个应用提供独特且永久的UID,使得应用能独立的运行在独立的虚拟机当中,与其他应用隔离开来.
应用签名机制:所有应用都必须有数字签名,否则不能被系统安装,确保应用不被替换.
组件封装机制: 通过组件封装保证应用的安全运行,如组件被设置成“私有组件”,则只能被应用程序本身或者同一UID的应用使用,若希望被其他应用使用则可以将组件设置成“公开组件”.
应用权限机制:为框架层各系统调用接口、设备接口增加权限控制,应用如果没有得到授权是不能使用系统或者设备功能的.
访问控制机制:提供一套完整的强制访问控制功能---SEAndroid,系统所有文件、进程、设备的行为都受它控制.
进程安全通信机制:提供一套完整且独特的ipc机制---binder模块,保障系统进程通信效率和安全.
内存管理单元(MMU):为进程分配不同的地址空间(虚拟内存),进程只能访问自己的内存页,不能访问其他进程的内存页,是一种有效的进程隔离方法.
移动电话通讯MODULE:电话系统通用设计框架是识别用户、监督使用和收费;一个更通用的术语是”AAA”:认证(Authentication)、授权(Authorization)、记账(Accounting);Android手机借鉴了这些典型的安全特征,认证、授权通过SIM卡及其协议完成,SIM卡中保存使用者的秘钥.
1.3. Android安全问题的现状
1、 ROOT账户篡夺
在Android 4.x时代,往往可以使用一些用户态的漏洞即可将手机ROOT,Android5.x以后则主要依赖内核漏洞才能窃取ROOT账户,即使Android7.X时代,也有不少高端开发者利用已公开的CVE漏洞,篡夺了ROOT权限;非法用户得到ROOT账户以后,手机基本被劫持了.
2、 内核漏洞挖掘
Android为Linux内核引入了新的内核模块,以及不同厂商的驱动方案;这就为系统内核引入了新的安全隐患,无论是高通、MTK还是三星猎户座,或者华为海思的芯片,多少都出现过一些内核漏洞,这是Android平台内核的一个主要攻击点;随着Google将SE Linux引入Android,攻击面有所减小,但不能完全解决内核漏洞利用的问题;从防御角度来说,同样面临着挑战;一些APT攻击如果利用内核漏洞,将能拿到系统的完全控制权;Android平台内核漏洞长期以来一直都在持续曝光,漏洞利用与防范依然是持续的热点.
3、 系统框架层、应用层漏洞挖掘
Android应用的安全,一般都是应用自身的逻辑问题,如信息泄露、身份认证绕过;虽然有进程沙箱保护机制,但应用质量参差不齐,难于管理,很大程度可能会引起框架层的安全。框架层漏洞也是逻辑漏洞居多,但危害往往要比应用更大;比较著名的高危漏洞有Master Key签名绕过、WebView远程代码执行等.
4、 粗粒度授权
Android的权限机制是粗粒度的,即要么授权、要么拒绝,当某个应用申请了不当权限或者过多权限时,多数用户会授权的,很多安全问题由此而来;因此研究者提出了很多细粒度的授权体系结构.
5、 关键信息泄露
系统、应用数据明文保存;公私钥外露;证书存储位置不当等都给不法者以可乘之机;如中间人攻击(MITM),由于应用开发者警惕性不高自行实现证书校验程序或者根本不做校验,这导致MITM攻击可行性很高.
6、 支付安全
手机支付功能很重要,但支付过程没有保护机制,密码或者认证信息经常被窃取,随着使用频率的增加,个人财产损失的风险也越来越高.
7、 应用重打包
即使有应用签名机制,但应用被篡改、被反编译、被注入代码是常有的事,因为应用数字签名可以被替换,应用签名机制形同虚设.
8、 恶意应用攻击
Android系统允许不明来源的应用安装,使得恶意软件得以在Android生态中滋生;隐私窃取软件、钓鱼软件、僵尸软件、跟踪软件、广告软件、高仿冒牌支付应用等等都是极具破坏性的恶意软件,目前还发现了linux层的恶意程序,对系统进行更深层次的攻击;虽然市场上有较为完善的安全应用提供应用层的防护,但对于系统原生层的防御还不够成熟,而且对于一些APT级别的新型攻击手段更是无从下手.
1.4. Android热点防御措施
1、 TEE环境
TrustZone是arm公司针对消费类电子设备提出的TEE架构,TrustZone提供系统运行时的环境隔离,它将运行时的系统环境从硬件层一分为二:安全区域和普通区域,安全区域可以访问所有资源,而普通区域必须进入特权模式才能访问受限资源,安全区域搭载一颗专用安全内核,全方位的监控整个系统的运行状态,为普通区域提供安全服务,阻挡系统级别的攻击。因此敏感服务如支付服务、身份认证,度量服务等功能可运行于TrustZone的安全环境当中.
2、 安全芯片
安全芯片可以给终端提供安全的基石,基于密码学和物理防护来营造共同的可信观,从硬件出发,经过一环套一环的可信传递构造整个系统的可信体系;物理级的密码算法提升了系统处理数据的能力和效率,而且担当了加解密过程、认证过程防护的重任;完全封闭的物理存储空间,极大的提高了窃取敏感数据的难度,是系统安全的最后堡垒.
3、 系统可信体系
基于硬件可信度量根,引导系统建立完整的可信生态,从系统上电、bios引导、内核运行到最后应用的启动,信任在这个过程中一层一层的被传递,最后扩展到系统的各个角落.可以利用HMAC等哈希算法,提取bios、bootloader的摘要信息,作为bootloader的度量值,验证bootloader的完整性,如果被篡改可以阻挡也可以上报审计信息,通过该手法依次验证内核、init、system_server、zygote等终端启动所需的核心资源,保障系统完整性;而且会动态的度量用户或者系统启动的应用程序,保证应用程序的可信性.
4、 应用加固
应用加固包括病毒扫描、防注入、防调试、防篡改四个模块,目前行业内已经出现了很多的应用加固解决方案.
5、 应用市场
为终端提供可靠的应用来源,目前市面上有很多优秀的应用市场,也可以根据自身终端特点定制自己的应用市场.
6、 安全BYOD
BYOD通常的方案是将手机系统隔离出两个环境:一个公用,一个私用,两者互不影响;目前流行的有从android运行时库层进行隔离的双Android系统,有从Android框架层开始隔离的双域Android系统,它们共同的特点是能把办公等特殊应用从其他应用中隔离出来,为特殊应用提供系统级的隔离.
2. Android终端安全解决方案
2.1. 终端安全方案提出的基础:
1、尽量使用经过国家认证的方案,来建设自己终端设备的安全,这样走出去才有说服力.
2、尽量整合已有的安全框架,省时省力而且安全.
3、尽量优化已有的安全框架,进行改进、创新.
4、针对自身产品进行个性化、差异化、标准化定制.
2.2. 终端安全方案的技术实现思路:
基于安全领域常用的静态分析方法和动态分析方法,提出以下安全方案技术基点:
1、采用安全芯片,利用其物理隔离特性,保障系统敏感资源如公私钥、证书、可信根的安全,并且提供硬件级加解密服务,最后为系统提供一定量的物理存储空间.
2、采用TrustZone,利用其运行时环境隔离特性,保障系统敏感服务如可信引导、应用度量、系统审计等服务的安全运行.
3、给系统各层增加层资源管理模块,控制各层资源的使用;裁剪系统各层模块,给系统瘦身,避免系统资源的浪费.
2.3. Android终端安全方案框架
以Android自身安全机制为基础,通过增加物理隔离区域和运行时隔离区域为系统核心,来营造终端的安全生态,并且在系统各层优化原有安全机制、增加新的可靠的安全办法,来解决已知的安全问题和构造防御罩,特提出以下安全策略:
针对信息安全和数据安全等问题,采用自主研发的安全芯片.
针对支付安全等问题,采用TrustZone技术 ,在其中植入认证服务.
针对系统完整性、应用可信性、系统监控等功能的需要,在TrustZone环境中植入可信引导、应用度量、系统审计等服务.
针对网络攻击等问题,采用在内核层植入一个网络管理模块.
针对ROOT账户被篡夺等问题,采用ROOT加固策略.
针对内核漏洞等问题,采用优化DAC、MAC的策略.
针对linux层的程序攻击等问题,采用在运行时库层增加一个组件管理和外设管理.
针对框架层漏洞等问题,采用多因子认证登录,增加权限管理、设备管理.
针对恶意软件攻击等问题,采用国网应用市场作为唯一应用来源.
针对应用重打包等问题,采用应用度量机制.
3. 系统各层防护策略全景
3.1.Hardware层:
为终端提供一个物理防护环境,增加一个安全芯片,该安全芯片具有以下特性:
1、 提供主动可信机制,独立于已有架构的实现,保证系统兼容且便于自主控制.
2、 提供物理存储空间,与系统隔离,保证系统敏感、核心资源的安全.
3、 提供数据加解密、公私钥生成、证书校验、哈希算法、可信根等涉密服务,保障系统有硬件级数据保护功能可用,而且提供数据迁移保护.
3.2.TrustZone:
为终端提供一个可信的运行时环境,增加一个TrustZone模块,作为终端的TEE环境,该模块运行系统监控类、涉密类服务:
1、 可信引导服务:利用安全芯片的可信根,一步一环的引导系统建立一个完整的可信生态.
2、 应用度量服务:为系统提供安全的度量方法,建立可信的基准库,实时度量用户启动的应用.
3、 系统审计服务:实时监控系统行为、用户行为、应用行为,建立审计报告并向后台推送.
4、 系统备份及恢复服务:备份与恢复用户及系统的敏感数据.
3.3.内核层:
为终端提供一个安全的内核环境,保障系统文件、设备、账户、安全芯片等资源的安全,增强DAC,增强MAC,加固ROOT账户:
1、 DAC:梳理linux自主访问控制模块,排查已公布的内核漏洞,修补安全漏洞.
2、 MAC:细化策略配置,优化HOOK框架,利用安全芯片固化策略配置文件.
3、 加固ROOT账户:利用安全芯片的身份验证功能,严格限制ROOT账户的授权.
为终端提供一个安全的网络环境,增加网络管理模块,该模块具有以下特性:
1、 防火墙设置,为终端设置简易防火墙,阻挡网络攻击.
2、 包过滤,控制终端数据流入与流出符合管理配置.
3、 专用网络直通,提升专用网络的质量和安全性.
3.4.C/C++/HAL层:
为终端提供 系统服务的防护,增加外设管理、组件管理:
1、 外设管理:增加外设的禁用、启用、受限使用功能.
2、 组件管理:增加系统服务、模块的禁用、启动、受限使用功能.
3.5.Frameworks层:
为终端提供安全的虚拟机环境,增加多因子身份验证服务、权限管理服务、终端管理服务:
1、 多因子身份验证服务:提供多层密码防护策略,保存用户登录日志,上报登录信息.
2、 权限管理服务:对应用权限进行分组管理,敏感权限询问用户,重要权限推送警告.
3、 终端管理服务:与后台对接,实时监控系统应用的安装、卸载与使用,配置用户使用外设的策略,管理用户的登入与登出;可以引入MDM等终端访问控制模块.
3.6.应用市场:
为终端提供安全可靠的应用,增加国网应用市场,限制不明来源应用的安装:
1、国网应用市场:增加应用签名功能,增加应用度量功能,确保应用的可信来源.
Android智能手机安全解决方案相关推荐
- android重新启动_如何重新启动Android智能手机或平板电脑
android重新启动 If you occasionally restart your Android device, it clears its memory and speeds things ...
- Android智能手机网络防火墙开发的经验心得
首届 Google 暑期大学生博客分享大赛--2010 Andriod 篇 Android 智能手机网络防火墙开发的经验心得 这篇博客主要讲述我实现一款Android手机上网防火墙的一个经验心得分享. ...
- android设置布局高度自适应,4种Android屏幕自适应解决方案
Android支持多屏幕机制即用为当前设备屏幕提供一种合适的方式来共同管理并解析应用资源.本文就介绍了4中Android屏幕自适应解决方案. 一.细说layout_weight 目前最为推荐的Andr ...
- android系统开发实验,基于Android智能手机的实验管理系统的设计与实现
摘要: 移动互联时代已经全面向我们走来,渗透到高校学习,生活的每一个角落.智能手机可以随时随地使用的特性,给人们的生活带来了很大的方便.高校实验室建设一直对培养学生的动手能力,增强科研意识和提高独立分 ...
- Android 系统(186)---最易懂的Android屏幕适配解决方案--总结版
最易懂的Android屏幕适配解决方案--总结版 本文参考自: Google的官方权威适配文档 郭霖:Android官方提供的支持不同屏幕大小的全部方法 Stormzhang:Android 屏幕适配 ...
- 对于Android11无法访问Android/data的解决方案 还在为你的大姐姐找不到而担心吗?还在为你的学习资料找不到而发愁吗?2021-03-11
原本发在吾爱上,但不知什么原因,许多网友无法访问,故此重新编辑了一下发到了CSDN 对于Android11无法访问Android/data的解决方案 说在前面:其实Android11早早更新,但我却一 ...
- 一个基于场景感应的android智能手机防丢失系
本系统旨在开发一个基于场景感应的android智能手机防丢失系统. 主要目标如下 (1)当用户外出时.用户可以选择场景,主要有公交.购物.就餐三 ...
- 适用于Android智能手机的6大数据保护应用
如今,每个人都拥有智能手机,几乎所有设备都受到各种威胁,如病毒,广告甚至身份盗用.下面列出了智能手机的数据保护应用程序. 适用于Android的Adguard 此应用程序用于阻止受保护的Androi ...
- android 读取手机存储数据恢复,Android智能手机数据恢复方法浅析
曾琪 罗慧瑜 摘要:根据数据丢失的原因,Android智能手机数据恢复方法分为两大类:物理恢复和软件恢复.物理恢复一般是由于手机进水.摔坏等无法开机情况下的芯片级恢复,而软件恢复则大多因为逻辑损坏.该 ...
最新文章
- H5移动端网页标签模板
- 高斯白噪声的Verilog实现
- 风口再起:数据中心建设
- pytorch自定义卷积核权值参数
- python 自动化测试
- Cesium基础使用介绍
- 你的IE一路顺风吗?
- Atitit 视图参数解决方案 oracle版和mysql版本 attilax总结.docx
- xshell修改字体大小
- 数据分析师岗位需求分析
- 锂电池健康状态估计(一)
- 科比投篮选择——数据采集
- 【计算机网络】集线器、网桥、交换机、路由器、网关大解析
- linux压缩包解压
- Visio 2016去掉页边距(图形四周的空白区域)的解决办法 (适用于适应绘图)
- Eureka自我保护模式——难点重点
- linux格式化4t硬盘分区,详解:Linux 硬盘,格式化,分区 详解
- java中类变量和实例变量
- 【每日一读】Large Scale Network Embedding: A Separable Approach
- ntoskrnl.exe损坏或丢失的解决方案
热门文章
- 智慧医院从建设智慧病房开始
- 赠与今年的大学毕业生,胡适
- VMD确定分解个数K(matlab)
- Linux netfilter 学习笔记 之十五 netfilter模块添加一个match
- HTML中支持qlv文件格式吗,qlv格式怎么播放,格式工厂不支持qlv
- 花开花落又是一度春秋,聚散离别见证一场青春。
- java自定义标签库的开发
- 计算机音乐谱童话镇,《童话镇》歌曲简谱
- # linux下openssl版本问题 /lib64/libcrypto.so.10: version `OPENSSL_1.0.2‘ not found
- 单目标多目标优化算法的测试函数与解