Ⅰ android安全沙箱机制是基于什么
Android顺其自然地继承了linux内核的安全机制,同时结合移动终端的具体应用特点,进行了许多有益的改进与提升。
window与unix/linux等传统操作系统以用户为中心,假设用户之间是不可信的,更多考虑如何隔离不同用户对资源(存储区域与用户文件,内存区域与用户进程,底层设备等)的访问。在Android系统中,假设应用软件之间是不可信的,甚至用户自行安装的应用程序也是不可信的,因此,首先需要限制应用程序的功能,也就是将应用程序置于“沙箱”之内,实现应用程序之间的隔离,并且设定允许或拒绝API调用的权限,控制应用程序对资源的访问,如访问文件,目录,网络,传感器等。
Android扩展了Linux内核安全模型的用户与权限机制,将多用户操作系统的用户隔离机制巧妙地移植为应用程序隔离。在linux中,一个用户标识(UID)识别一个给定用户;在Android上,一个UID则识别一个应用程序。在安装应用程序时向其分配UID。应用程序在设备上存续期间内,其UID保持不变。仅限用于允许或限制应用程序(而非用户)对设备资源的访问。如此,Android的安全机制与Linux内核的安全模型完美衔接!不同的应用程序分别属于不同的用户,因此,应用程序运行于自己独立的进程空间,与UID不同的应用程序自然形成资源隔离,如此便形成了一个操作系统级别的应用程序“沙箱”。
应用程序进程之间,应用程序与操作系统之间的安全性由Linux操作系统的标准进程级安全机制实现。在默认状态下,应用程序之间无法交互,运行在进程沙箱内的应用程序没有被分配权限,无法访问系统或资源。因此,无论是直接运行于操作系统之上的应用程序,还是运行于Dalvik虚拟机的应用程序都得到同样的安全隔离与保护,被限制在各自“沙箱”内的应用程序互不干扰,对系统与其他应用程序的损害可降至最低。Android应用程序的“沙箱”机制如下图,互相不具备信任关系的应用程序相互隔离,独自运行:
在很多情况下,源自同一开发者或同一开发机构的应用程序,相互间存在信任关系。Android系统提供一种所谓共享UID(SharedUserID)机制,使具备信任关系的应用程序可以运行于同一进程空间。通常 ,这种信任关系由应用程序的数字签名确定,并且需要应用程序在manifest文件中使用相同的UID。共享UID的应用程序进程空间
Ⅱ android系统怎样实现访问控制策略
第一类风险是滥用应用程序权限。关于这类风险有如下防范策略建议。
应用程序认证
认证是防范恶意程序的有效手段之一。在理想状态下,一个应用程序在认证之前必须经过完整的测试与代码审查,确认其权限使用的合理性,这自然对恶意软件起到了有力的防范作用。但是,认证的费用高昂,程序复杂,并不具备广泛的实用性。
选择使用应用程序权限
如果能够在安装阶段,确认某一应用程序仅使用必需的最小权限,也就是遵循最小权限原则,则受到恶意软件攻击的可能性必将大大降低!对于有经验的用户这也许是一种选择,但对于广大的普通用户,恐怕没人懂得如何验证应用程序要求的权限是否合理,在多数情况下用户会直接授予所要求的权限。因此需要开发者在申请或设定权限时,严格遵循最小权限原则。
自动静态分析与代码验证
设计一种自动分析应用程序特性的工具,分析应用程序的功能以及不同应用程序之间的差别,以判断其合法性。
第二类风险是攻击Linux内核与系统库函数的漏洞。目前,针对这种风险,采用更严格的访问控制机制,第6章介绍的限制操作系统用户权限的SE Android,是一种实际且有效的选择。最危险的攻击就是利用系统漏洞获取根用户或超级用户权限,进而控制整个系统。SE Android恰好通过控制根用户或超级用户权限实现对安全性的增强,即使攻击者获取了根用户权限,但可能的危害范围不至于无限扩大。但是,某些系统命令由于正常使用的需要,可能无法完全禁用,攻击者如果恰好获得该类命令的使用权,则SE Android的功能就十分有限了。
第三类风险是破坏私有数据的可用性、数据隐私性以及完好性。可以采取以下策略进行防范。
登录
使用登录用户口令解锁移动设备的某些功能,以防止安全威胁。这是一种常见的有效方式,尤其是用于保护隐私数据信息。但是,当设备遗失时,如果尚未使用口令解锁设备,则保护作用存在;如果解锁之后才遗失设备,则口令保护完全无效。
防火墙
防火墙可以保障用户私有信息不会经由网络连接被泄露。通常,对网络连接传输的内容使用无状态或有状态的分析,可以发现是否有私密信息正被泄露,因此可以切断传输线路。由于防火墙工作在操作系统内核中,因此无法直接为外部攻击所侵害。同时防火墙可以与SE Android提供的访问控制机制协同工作,提供更高级别的保护。但是,恶意软件并非只能通过网络接口泄露隐私信息。比如,通过短信/彩信的发送,防火墙就无作用了。
数据加密
数据加密是保护隐私数据的最佳手段。由于只有信息所有者才有密钥,因此即使设备失窃,隐私信息的安全仍然得到保障。
上下文敏感的访问控制(CAAC,Context Aware Access Control)
CAAC可以根据设备使用的内部与周边环境决定访问权限,比如设备使用的地点、所登录的移动网络、是否连接Wi-Fi等。但是,如果攻击恰好发生在允许访问的环境下,则此类方式无效。
远程管理
从安全角度,远程管理能力是必须严格限制使用的。但是,与防火墙、CAAC机制相结合,远程管理实际可以提升安全性。例如,设备遗失后,可以通过远程管理机制开启防护机制,保护数据安全。即使在日常使用中,远程管理也可能发现肆虐移动网络的蠕虫,通过启动防火墙等机制限制蠕虫的活动。但是,所有的远程管理都需要在受到攻击的过程中,或受到攻击之前有人为参与,而且需要耗费设备的资源,以及远程管理的人力资源等,费用不菲。
第四类风险是耗尽系统资源,可以采取如下的防范手段。
资源管理
系统资源管理的安全方案可以进一步降低耗尽系统资源类风险的危害。其机制是公平分配每个应用程序所需的系统资源。当然,可以根据应用程序的重要性与对资源的需求情况加以分配。比如,电话应用程序非常重要,因此需要得到更多的CPU时间。如果CPU时间、存储空间限额、网络与磁盘输入输出限流,则“拒绝服务”类型的攻击可被避免。但是,高效实现此类机制仍然十分困难,因此应用较少。
入侵检测/防护系统
基于宿主(host)的入侵检测系统可以通过资源使用的异常情况,检测各种耗尽电池、内存与CPU时间的恶意软件。但是,高级的恶意软件通常伪装为正常软件,不易检测。
第五类风险是入侵专用网络连接。建议采用如下的防范策略。
虚拟专网(VPN)
虚拟专网使用成熟的信息认证码与加密,保护通信的安全,可以防止针对网络的攻击。
远程管理
一个集中式的远程管理中心可以增强安全保护能力,但远程管理中心的人为因素可能成为另类的安全隐患。
上下文敏感的访问控制(CAAC)
在内网或虚拟专网的环境下,结合CAAC的机制,可以更好地保护数据安全。比如,当检测到外网环境时,适时启动数据传输加密机制等。
以上均为宏观上采取的防范策略,就实施细节而言,重要的是开发者需具备基本的安全意识,充分认识到安全性也是软件开发周期的一个重要环节,编写安全的代码是开发者所必须具备的一项职业技能。虽然不可能确保所编写的代码100%安全,但也要尽可能地使用户对Android系统和应用程序放心。
具体而言,无论是系统工程师还是应用工程师,在Android平台上致力于实现功能的同时,应更深入地理解所编写的应用程序将如何与Android系统或其他应用程序安全地交互;如何安全地存储数据到SQLite;如何保护用户数据尤其是敏感数据的安全,避免恶意软件的攻击;如何处理有限的内存、电池电量;如何充分理解权限机制,使用户清楚应用程序需要哪些权限。所有的这些都是开发流程中必不可少的部分。
本文节选自《Android安全机制解析与应用实践》一书。
Ⅲ 安卓手机设备提示Android的SE已禁用的处理方法
安卓手机设备提示 Android 的 SE 已禁用!Android 的 SE 是指的安卓设备自带的安全机制。当 SE 出现故障无法成功启动时,手机则会提示 Android 的 SE 已禁用,此问题出现的较多机型为“三星”、“华为”。遇到该问题可尝试一下方案处理。
故障分析: 可禁止 Android 的 SE 的软件为 安全软件、病毒软件、不兼容软件。安全软件会与 Android 的 SE “争抢”手机的控制权,从而有可能会禁止 Android 的 SE 启动;病毒软件为了能在手机正常运行,需要先禁止 Android 的 SE 安全中心,从而获得更高权限,以此来达到病毒运行目的;不兼容软件,由于软件开发过程中的问题,导致与手机系统不兼容,从而在一定程度上会影响 Android 的 SE 的`正常运行。所以手机才会提示 Android 的 SE 已禁用。
处理步骤:
1、查看你手机中是否安装手机安全卫士软件(如360手机卫士、腾讯手机管家、LEB安全大师等)如果有请卸载尝试。
2、如果手机本身没有“安全管家”类似的 自带App,请尝试下载第三方安全软件来检测手机是否中毒,如果中毒,请尝试“查杀”病毒程序。(注意:通常情况下,杀毒软件所检测出来的病毒程序,可采用卸载方式删除)
3、查看手机出现提示 “ Android 的 SE 已禁用”之前,是否有安装过软件,如有请尝试删除该软件来排除。
4、以上方案无效,对于未“Root”的手机,建议备份资料,尝试恢复出厂设置,各品牌手机请参考对应恢复出厂设置的方法。
5、恢复出厂设置后,依旧无效的,建议查看手机是否有固件升级。如有,请更新。
6、若通过以上方法问题依然存在,请带好购机发票、包修卡和机器送到手机品牌售后服务中心,由工程师检查机器并处理。
Ⅳ 什么是android系统安全机制
所有安装到Android系统中的应用程序都必须拥有一个数字证书,此数字证书用于标识应用程序的作者和应用程序之间的信任关系。Android系统不会安装一个没有数字证书的应用程序,如果一个权限的保护级别为signature,只有当应用程序所用数字签名与声明此权限的应用程序所用数字签名相同时,Android系统才会授权。如果一个权限的保护级别为signatureOrSystem,Android系统会将该权限授予具有相同数字签名的应用程序或Android包类。
Ⅳ 详解Android 11正式版:更安全,更值得期待
在先后经历了七个版本(DP1~4,Beta1~3)的测试后,Android 11终于在2020年9月9日正式上线了第一个稳定版。或许是因为此前在发布测试版时,谷歌方面已经召开过了规模不小的线上发布会,因此最终正式版反而是选择了相当“低调”的上线方式。
当然,如果你是一位谷歌Pixel系列机型的用户,那么这种低调的正式版发布方式其实并不会有太大的影响,毕竟就在今天的凌晨,全球的Pixel用户就已经收到了包含详细功能说明的系统推送。而在我们三易生活撰写这篇文章的时候,这部分用户可能早就已经玩上新系统好几个小时了。
但是“谷歌亲儿子”在当今Android手机的阵营中,毕竟只占很小的一部分,因此对于绝大多数的智能手机用户来说,正式版Android 11说到底还是一个有点遥远的概念。甚至可能相当一部分用户都要靠未来购买新机才有可能真正用上新版Android系统。正因为如此,提前熟悉一下新系统的界面与功能,自然也就变得很有必要了。
通知栏大变样,聊天软件获得“特权”地位
众所周知,如今智能手机的APP出于各种目的,普遍都非常喜欢给用户推送通知。体现在用户感受上,往往就是一会不看手机,系统的通知栏,信息就已经多到了甚至能滚动好几页的地步。
有鉴于此,在Android 10时代谷歌首次对通知栏信息进行了优先级的划分。通过提供“无声通知”功能,Android 10允许用户自行屏蔽不想要看到的通知信息,同时也不会触发相应APP的通知检测功能(也就是软件不会发现自己被屏蔽)。而这一功能到了国内的深度定制系统上,更是被发展为便利的通知自动折叠功能,AI会自动判断哪些应用的通知“不重要”,从而有效减少通知栏的杂乱现象。
但是从用户体验的角度上来说,一味地“精简”通知栏实际上也会造成不便。比如对于那些流行的社交软件而言,如果它们的通知被折叠、被隐藏,或者延迟显示的话,那后果可能就不仅仅是简单的“不方便”了。
正因如此,在Android 11上,谷歌对于通知栏的策略进行了一些“纠偏”式的修改。其中最显着的改动,就是专门针对短信以及社交软件增加了两个全新的通知样式,“优先对话(Priority conversations)”和“对话气泡(Bubbles)”。
所谓优先对话,简单来说就是在通知栏上为短信和社交软件开辟了一块“专用区域”,所有的社交信息都会在这块区域集中显示,并位于其他大多数APP通知信息的上方。如此一来,社交软件的对话信息就会更为显眼,更不容易错过,也不会被系统“折叠”了。
不仅如此,Android 11甚至还原生支持了专供聊天软件使用的“气泡通知”效果。当有新信息到来时,屏幕边上就会显示气泡通知,点按即可弹出一个悬浮式的聊天窗口,从而实现无需退出当前APP,直接回复聊天内容的便捷功能。
媒体控制功能增强,蓝牙耳机和智能音箱受益
可只要是用过蓝牙耳机的用户就知道,在此前的Android版本上,虽然系统本身对于各大蓝牙协议的支持非常全面,但是在一个很常用的细节上,过往的Android系统表现得却堪称糟糕。这,就是多个音频输出设备之间的快速切换功能。
试想一下,当我们正戴着蓝牙耳机的时候,突然有事需要启用手机的外放扬声器,亦或是当手机正同时连接到蓝牙耳机、智能手表,以及智能音箱等多个设备的情况下,需要在不同的设备间迅速切换输出。此时,有些手机会通过一根独立的音频管理程序,在通知栏的最下方提供一个切换的快捷按钮,但大部分没有考虑到这一点的机型,就只能进入“设置”菜单,然后再点进蓝牙设备列表,进行手动切换。
很显然,这非常的不方便,因此它也很自然的成为了谷歌在开发新系统时必须要解决的问题之一。在Android 11上,用户现在就可以直接在通知栏的媒体控制卡片里看到当前所使用的输出设备(扬声器、耳机,或是蓝牙音箱等等),只需轻轻点一下就能进行切换了。
很显然,这比过去的体验可方便多了,只不过它也确实来得太慢了一些,而且怎么看都很像是谷歌从隔壁的iOS系统上汲取了“灵感”。当然从另一个角度上来说,提供更为便利的音频输出切换功能,实际上也可以看作是谷歌方面认可了蓝牙耳机和智能音箱等无线音频输出设备的重要性。从此手机厂商或许就更有理由,不再保留3.5mm有线耳机孔了。
更严格的权限控制,让流氓软件无处可藏
很久很久以前,当玩家朋友说起“原生安卓”时,他们通常会感叹这套系统那极简和无广告的系统界面,但同时也对其糟糕的权限控制功能扼腕叹息。可以说正是由于早期的Android系统无法有效限制大量流氓软件的自启动和后台行为,这才让各类“深度定制”系统迅速赢得了消费者的欢迎。
好在自从Android 6.0之后,谷歌就一直在加强原生Android的权限控制功能。从最初在系统中加入权限管理器,到后来一步步收紧系统权限本身,在经历了多次改进后,如今的Android 11正有望成为史上最安全,“对流氓软件最不友好”的移动操作系统。
谷歌做了什么?首先,如果大家平时有留意一些软件在请求系统权限时弹出的选项,就会知道在以往的Android版本里,用户的选择基本上可以概括为三类,即“始终允许”、“仅在该软件运行时允许”,和“不允许”。其中最危险的是“始终允许”,因为这意味着流氓软件哪怕是在后台偷偷自启时也能获取到敏感的系统权限,显然是很不安全的。
因此在Android 11里,谷歌彻底取消了“始终允许”这一选项。新的权限选择选项被更改为了“只允许一次”、“只在运行时允许”和“不允许”。如此一来,那些喜欢后台自启动,偷偷驻留后台的软件,如今便不再能够背着用户去偷拍、偷听、偷看联系人信息了。
不仅如此,考虑到可能有许多用户并不理解权限管理功能对于保护个人隐私的重要性,谷歌这次还引入了一个新的“权限重置”机制。它指的是当一个软件在一段时间里未被打开时,它原本已经申请过的系统关键权限就会被收回。而当用户再点开这一软件时,系统会重新提示软件的权限申请信息,要求用户重新手动开启某些权限。
这样做有什么好处?一方面来说,它相当于更频繁的提醒用户“您现在使用的APP有这样这样这样一些敏感权限,可能侵害您的个人隐私”,从而大幅增加了用户主动限制应用权限的可能性,让流氓软件无法再只靠第一次启动时申请的权限,就一直“作恶”下去;另一方面来说,这种机制本身实际上也可以用于发现流氓软件,试想一下,如果在Android 11上某个你时隔许久都没有使用的APP,再次点开时却没有重新弹出权限申请信息,那么这可能就只意味着一件事,那就是它平时就经常偷偷自启。
更快的更新速度,让这届Android更有盼头
最后,我们不得不提一下此次Android 11的更新情况。虽然从整体上来看,Android如今每一次新的大版本发布之后的更新普及速度距离苹果的iOS系统还差得很远,但不可否认的是,随着越来越多的手机厂商积极且深入的参与到Android的共同开发与测试工作,我们也可以看到大量的第三方品牌Android机型在系统更新方面表现得越来越好。
比如说就在今天早上,除了谷歌自家的Pixel系列机型获得官方的Android 11正式版系统推送之外,包括一加、小米、OPPO和realme在内的多个国内品牌也“不约而同”的推出了新版固件。虽然它们之中的大多数名义上还标注着“测试版”,但实际上在这些系统的底层,都已经是全部用上了最新的正式版Android 11。
这意味着什么?首先我们完全有理由期待,以上的这些国内手机品牌将有望在很短的时间里推出他们基于Android 11的“正式版”系统更新。对于消费者而言,这很显然是一件令人兴奋的好事。
其次,从目前外媒对于Android 11的相关报道来看,除了以上的四家国内手机品牌,我们似乎并没有发现其他厂商做到了“第一时间提供系统更新”。哪怕这几家品牌目前基于Android 11正式版代码的系统,还多半都打着“测试版”的旗号,但它至少也已经给我们传达了两个很关键的信息。
一是中国手机企业目前已经积极的参与到了Android系统的早期开发与测试工作,二是中国品牌的智能手机如今已经相当重视“系统更新”对于提升用户体验的作用。很显然,无论是从行业地位的层面、还是从消费者利益的层面上来说,这个事实都值得我们为之而欢呼。
Ⅵ android的安全机制有哪些
• 进程沙箱隔离机制。
• 应用程序签名机制。
• 权限声明机制。
• 访问控制机制。
• 进程通信机制。
• 内存管理机制。
• SELinux