掌握Android装置安全性的四大要点

嵌入式操作系统

57人已加入

描述

  2012年1月中旬,美国国家安全局(National Security Agency,NSA)正式发佈第一版 Android 作业系统安全强化套件(Security Enhanced Android,SE Android)【註一】,并随之释出一些相关原始码;此举被许多人誉为是Android装置安全性向上提升的重要一大步。

  事实上,美国国家安全局近来所发佈的程式码丛辑(Code Base),对Wind River这类Android专家而言是再孰悉也不过的事物,因为Wind River多年来均持续为类型广泛的各式Android装置设计并导入复杂的软体安全层(Security Layer)。只不过,现在这些有助强化安全性的开发成果,在媒体描绘下似乎已被媲美为可解决所有安全疑虑的全方位解决方案,我认为如此看待这些成果稍显粗略,而且也过度简化了Android安全性相关议题的复杂程度。

  简单来说,这套SE Android程式码丛辑并非万灵丹,即使将其编译并重新安装至您的Nexus S装置,也无法确保您的装置就百分之百地「安全」。Wind River支援Android装置至今已将近五年时间。这段期间的经验累积,加上在行动Linux装置领域身为技术先驱超过十年所沉淀的心得,让Wind River得以归纳出以下四项最为关键的Android安全性议题要点:

  (一) Android的安全性议题就好比一块高难度的拼图,是由许多困难的零碎片段构成,必须费心组装才能开发出真正安全的Android装置。

  (二) 安全性其实是一个以使用案例(Use Case)为基础所推演出的概念。举例来说,一部军用行动通讯终端装置对安全性的定义及软硬体需求,就完全不同于运行于车载资讯娱乐应用(In-Vehicle Infotainment,IVI)系统上的Android软体堆叠(Software Stack)。

  (三) 安全机制的建置,并非「一次性(Fire-and-Forget)」的做法 。务必费心建立一套可长可久的系统,不但要足以抵挡新型态的攻击,还要可以现地升级至最新的Android版本(必要的话,最好还能针对特定安全防护面向持续更新),同时又能继续维持或进一步强化其先前的安全层级设定。

  (四) 最后,光是宣称一套软体的建置与导入是「安全的」仍有所不足,必须要有一套测试框架(Framework)以及全自动测试脚本,可以让待测装置(DUT,Device Under Test)接受耐压测试,或是对其模拟各类攻击并提供可供量测的证明要点(Proof Points),以确保这些类型的攻击不会影响我们赋予目标装置的主要使用案例。这套测试框架必须具备扩充能力,可以快速针对已安装最新版本Android平台的装置进行验证;此外也必须具备足够弹性,以便纳入最新攻击的脚本。


  接下来,我们再深入些探讨这四大要点。

  根据我们的分析,Wind River已经可以区隔出十几项领域各异的Android安全性议题,其中包括了使用者身分辨识及验证、横跨多重记忆体位置(Memory Locations)的使用者资料保护、如何分别过滤接收及传送之资料、执行事件纪录(Event Recording)以利远端稽核(Remote Audit)进行、各类密码技术(Cryptography)的选用及导入、可信赖路径(Trusted Paths)、资料保护之版权管理(Rights Management)技术、虚拟化技术以及空(间)域/时(间)域(Spatial/Temporal Domain)区隔、可信赖开机(Trusted Boot)、恶意软体(Malware)防制、韧体(Firmware)更新保护、应用程式安装管理等等,族繁不及备载。

  这边有个例子,或许能让您对上述内容有更鲜明的理解。最近因探亲之便,我刚好有机会参观一艘旧式苏联潜艇,这艘潜艇内建数百个控制阀门,加以熟练操作便可顺利管控艇上各式系统。要顺利操控这艘船,很明显得具备两方面的专业,首先是对各控制阀门功能的明确掌握,另外则是该如何善加管控这些阀门的知识。

  掌控Android系统就好比操控这艘潜水艇,必须了解在什么时点下需要开启哪个「阀门」,以及需要将它开启到何种程度。此外,对应用处理器(Application Processor)技术(例如ARM架构或英特尔IA架构)的选用,也将对使用方式有所影响,Wind River Hypervisor这类嵌入式虚拟化技术就是一例。

  由于Wind River多年来已针对广泛类型的各式装置设计并导入Android安全机制,故可充份满足上述第二要点之需求。Wind River服务过的装置包罗万象,从客製化开发的企业用平板电脑(Tablet)、多媒体话机(Media Phone)、智慧型手机、通用型平板电脑、车载资讯娱乐应用(IVI)系统,乃至于公共安全应用或是医疗用途的装置。

  有趣的是,纵观所有已发佈的Android计画,当中有一项共通之处,那就是若要真正确保Android安全性无虞,面对不同类型的装置便得採取几乎完全不同的方法才有效果,并无可供一体适用的单一作法。换言之,在导入安全技术的过程中,不同装置的使用案例具有不同程度的影响力,也因此必须对Android做出不同的客製化调整,甚至连软体验证的概念也会因而各异。

  对此,若您希望有个具体範例可供了解,不妨参考McAfee和Wind River共同完成的一份技术白皮书【註二】,其中针对车载资讯娱乐应用列出了一系列安全考量要点。总之,关键在于必须了解各类装置的使用案例,并将其与Android安全性相关的专业知识紧密结合。

  至于韧体管理,在行动应用领域可说是再寻常也不过的概念。以OMA-DM (Open Mobile Alliance Device Management)为例,这项标準不但行之有年,更已被应用至全球亿万台行动终端装置中。对Android装置来说,现阶段浮现的挑战主要来自于智慧型手机世界之外;因为在除行动应用外的其他应用领域中,这类以营运商为出发点的装置、使用者、服务、以及策略管理(Policy Management)的相关基础建设,可说几乎一概欠缺。

  为满足此项需求,我们开发出一整套Android解决方案加速开发软体「Wind River Solution Accelerators for Android」,可提供韧体管理功能,使Android装置得以持续升级至最新版本Android安全性软体。另一方面,众多Wind River伙伴厂商也已开发出多款以提升安全性为主轴的策略管理解决方案,可用以因应特定使用案例。

  最后,请务必借助专业的测试方案来确认Android安全机制是否已顺利导入目标装置。当然,某些测试内容是可以手动完成的,但是若能善用业界领先的自动化测试工具,例如Wind River针对Android的自动化软体测试框架(Framework for Automated Software Testing,FAST)解决方案,即可大幅提升测试效率并取得更具意义的测试结果。

  尤其当Android待测装置(DUT)需要被置于超载的环境下测试时,善用工具的助益将更为显着:例如您可能因为疲劳测试(Soak Test)的需要,而正在执行一个加速的每日测试情境,此时您还可以同步执行一连串预设的攻击脚本,以模拟待测装置的反应,而如此庞大的测试负载量,就需要好的工具来助您一臂之力。

  所以,若要真正确保Android装置安全无虞,事实上并没有任何一体通用或一成不变的单一作法。新推出的Android作业系统安全强化套件(SE Android)可被视为一个新的元件,能协助我们开发出实用且合乎市场需要的软体解决方案,以进一步提升Android软体叠层的安全性。

  由于各类技术选择五花八门,各类装置衍生出的使用案例也包罗万象,选择实在过多之下,借助专家的智慧通常仍是必要之举。如果您对于开发安全的Android装置有任何疑问或顾虑,请不吝求助专业团队,向外寻求资源通常是解决问题的最佳途径!

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分