欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

安卓系统Trustzone降级攻击技术研究

来源:本站整理 作者:佚名 时间:2017-09-22 TAG: 我要投稿

如今人们经常在手机上进行账号登录、金钱交易等安全敏感的操作。为了维护这些操作,手机需求能把可信和不可信的程序有用阻隔开来。于是,手机厂商经过ARM TrustZone硬件阻隔技能实现了“可信履行环境”(Trusted ExecutionEnvironments)。TrustZone为手机上一切安全敏感的程序和数据提供了至关重要的一层维护,一旦TrustZone被黑客攻破,整个手机的安全性都会受到要挟。
然而,近日弗罗里达州立大学(FloridaState University)和百度安全试验室联合研讨发现,TrustZone的底层安全系统(TrustZone OS,简称TZOS)和上层安全应用(TrustZone App,简称TA或许Trustlet)都存在降级进犯的风险——进犯者在TrustZone之外,可以用低版别TZOS/Trustlet替换当时手机上运行的版别,然后利用低版别TZOS/Trustlet的缝隙攻入TrustZone。经验证,包含华为、三星、Google等厂商的多款很流行的手机都存在这一缝隙。经研讨者的不懈努力和厂商的积极合作,目前包含华为在内的几家厂商已着手进行修正。
布景
TrustZone是ARM提供的硬件安全阻隔技能 [1],它将手机阻隔成两个国际:可信国际(Secure World)和不可信国际(Normal World),两个国际经过Secure Monitor切换和通信,如图 1所示。一般人们习气直接用“TrustZone”等价指代“Secure World”。

图 1:ARM TrustZone安全阻隔示意图
以Android为例,应用程序(Apps)、Android系统、以及底层的Linux内核都运行在Normal World里,而诸如数字版权维护(Digital Rights Management,简称DRM)和一些登录、支付协议的加解密进程和数据则存在于Secure World/TrustZone里。Secure World/TrustZone里的程序可以自在拜访Normal World里的内容,但反过来是制止的。因而理论上,即便进犯者攻陷了Normal World里的组件,也无法偷盗或篡改TrustZone里的内容。
不过,Trustlet(可信国际里的安全应用程序)和TZOS(可信国际里的安全操作系统)并非固化在硬件里的。其中,Trustlet是可以运行时从Normal World动态加载的,TZOS是包含在手机ROM里跟着OTA(Over-the-air Update)晋级一起更新的。为了防止进犯者篡改或替换Trustlet和TZOS,一般手机厂商都用私钥对它们做了签名,并在手机上植入相应的公钥进行签名验证,保证Trustlet和TZOS一定都是厂商自己发布或信任的。详细而言,TZOS的签名验证发生在发动阶段,由Bootloader验证,一旦发现验签失利会拒绝继续发动进程;而Trustlet的签名验证发生在它们的动态加载阶段,由TZOS完结,一旦验签失利则不答应履行。
缝隙描绘
如前所述,一般手机厂商均对TrustZone里的Trustlet和TZOS做了签名和验签,有用地防止了它们被篡改。可是,根据弗罗里达州立大学(Florida State University)和百度安全试验室的联合研讨,干流手机厂商均没有对Trustlet和TZOS的版别号做校验。理想情况下,Trustlet和TZOS晋级时只能用新版别掩盖旧版别(版别号只能增大),但实际试验发现,包含华为、三星、GoogleNexus等厂商的多款很流行的手机并没有做这一查看。因而,只要进犯者拿到了手机Root权限(攻陷Normal World),他可以用有可利用缝隙的Trustlet/TZOS旧版别掩盖当时Trustlet/TZOS,然后经过既有缝隙的利用进一步攻陷TrustZone。虽然研讨者只在有限的机器上做了验证,但考虑到这几个干流厂商的核心机型全军覆没,研讨者估计这是一个广泛影响一切Android设备的安全问题。
缝隙实例
以Google Nexus 6为例,其旧版别的DRM Trustlet存在可以让Normal World进犯者取得TrustZone履行权限的CVE-2015-6639缝隙 [2],并且已有揭露的缝隙利用代码 [3]。经试验发现,尽管当手机晋级之后(例如更新到N6F26Y这一编号的ROM)这一缝隙得到了修正,但具有Root权限的进犯者依然可以用旧版(例如LMY48M这一编号的ROM)中提取的Trustlet掩盖新版Trustlet,并成功将其运行起来。一旦旧版Trustlet运行在了TrustZone里,进犯者即可发起既有进犯拿到TrustZone的履行权限。因而,即便手机进行了晋级和缝隙修补,依然没有阻止进犯者进入TrustZone。
相似地,针对TZOS也可以做相似的降级进犯。研讨者用旧版ROM里提取的TZOS掩盖了晋级之后的手机里TZOS所在分区,手机依然经过了Bootloader验证、可以正常发动。进犯者可以因而进犯TZOS的缝隙动态取得TrustZone里的内核权限——进犯者这样就可以取得一切藏在TrustZone里的秘密和能力。
解决方案与缝隙揭露
已然缝隙是由版别降级引起的,最直接的解决方案便是在Trustlet/TZOS晋级替换时进行版别查看,只答应新版别掩盖旧版别。弗罗里达州立大学(Florida State University)和百度安全试验室的研讨者联系了试验中验证的一切设备的厂商,在厂商的积极合作下,目前包含华为在内的几家厂商已着手进行修正。考虑到这几个干流厂商的核心机型全军覆没,研讨者估计这是一个广泛影响一切Android设备的安全问题,因而将缝隙细节予以整理和揭露 [4][5]。目前已有国内外媒体对此问题进行了关注和报导 [6][7]。Google Project Zero也独登时对这一问题进行了研讨和披露 [8]。希望各大Android厂商对这一问题引起重视,尽快进行全面地修正。此外,一些厂商逐渐在手机上引入Security Enclave处理器,相当于在TrustZone之下引入一层额外的阻隔和维护。Security Enclave如果规划或实现时考虑不当,也会面临相同的要挟,因而也希望厂商予以留意。


 

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载