历史上的今天
返回首页

历史上的今天

今天是:2025年04月29日(星期二)

正在发生

2020年04月29日 | 新思科技详解手机中的生物识别数据泄露漏洞

2020-04-29 来源:EEWORLD

OnePlus 7 Pro 信息泄露漏洞在近日被披露。OnePlus 7 Pro 10.0.3.GM21BA之前的版本中存在安全漏洞。攻击者可利用该漏洞从指纹感应器中获取指纹图像(位图)。新思科技对此漏洞进行了解析。

 

近年来,移动可信执行环境(TEE, ARM TrustZone)的应用逐步增长。新思科技网络安全研究中心(CyRC)对TEE的应用安全进行了研究分析,其中的一个发现涉及到一加手机OnePlus 7 Pro Advanced的漏洞。该漏洞可能会导致用户注册指纹信息被泄露。

 

安卓系统指纹认证简介

 

在安卓6以前并没有一套指纹认证的标准。在安卓6以后,谷歌开始介入,并在“即兼容性定义文档”1中定义了一组指纹认证的要求,随着不断发展,现在已经包括了更多生物识别传感器2。

 

标准化方法是需要在TEE执行涉及生物识别信息的所有敏感操作。根据此规范,与指纹硬件(传感器)的通信只能由运行在安全模式下的CPU进行,这将确保即使在Root(破解超级用户权限)设备上也无法从安卓操作系统(开放执行环境,REE)本身接入传感器。

 

如何在一台被Root过的设备上保护资料?

 

当安卓设备被Root时,通常意味着解锁引导加载程序,并对闪存中的一个或多个分区进行修改。但是,“解锁引导加载程序”并不是一个完全精确的术语。遵循ARM可信的固件模型启动安卓设备。该模型由多个引导阶段组成3。解锁引导加载程序通常是指该过程的最后阶段,设备的可信环境在启动安卓操作系统影像之前接受检查。TEE在此阶段之前启动。

 

 

TEE的运行级别和安全状态比安卓操作协同的内核具有更高的特权。REE无法接入可信执行环境存储器,并且所有的通信都通过安卓操作系统内核中的Secure Monitor Calls进行。

 

谷歌规定哪些数据需要受TEE保护,以及在涉及到生物识别时哪些措施需要在TEE下进行TEE旨在确保用户的指纹数据安全,无论设备是否被Root。

 

当然,漏洞总会“有机可乘”的。您的代码越多,漏洞的数量有可能越多。TEE的好处之一是在该特权级别上运行的代码比在安卓操作系统内核级别上运行的代码少,从而减少攻击面,更容易实现安全性。

 

Picture 2

 

在没有被Root过的设备上,用户智能接入安卓架构公开的生物识别API(应用程序接口)。

 

 

但是,在一台被Root过的设备上,可以在REE的任何位置发起攻击。

 

 

您可以继续调用libgf_ud_hal库中已经存在的任何功能。或者,可以调用原始传输,建立共享内存缓冲区,并将输入传递给TEE。

 

这两种操作的区别在于,前者libgf_ud_hal库中的函数将使用特定于您要调用的命令的专有结构来填充缓冲区,并且它可能已经进行了原始传输;后者,您需要知道在该缓冲区中放入什么以及如何构造该缓冲区,以便TEE按路线发送,并且trustlet(高通的可信应用程序)可以理解它。

 

 

从这开始,缓冲区跨越安卓操作系统内核中一长串的调用,从EL3中的Secure Monitor,S-EL1中的TEE OS,并最终到达S-EL0中的trustlet。

 

一旦此缓冲区到达Trustlet,它将进入“路由”功能(命令处理程序)。此功能检查缓冲区的前几个字节,以找出需要执行trustlet的功能。

 

 

图一,典型路由功能

 

Trustlet开发人员需要确保其生产的trustlet构建不会向REE公开任何敏感功能。例如,考虑以下我们在trustlet中找到的调试代码。您可以从传感器中转储数据并将其返回到REE:

 

Picture 2

 

或者可以效仿OnePlus 7 Pro的操作,只需在“路由”组件中使此代码不可接入即可。

 

CVE-2020-7958

 

我们在OnePlus 7 Pro上发现的问题是,通过工厂测试命令处理程序可以使用类似的功能。

 

REE中的逻辑

 

指纹子系统的REE部分包含在libgf_ud_hal.so共享库中。可通过多种方式获得此共享库文件:

 

从被”root”的设备上,在/ vendor / lib64 /目录下。

 

例如,可以从供应商的软件升级页面下载软件版本(固件)。/ vendor / lib64 /目录的内容可以在vendor.img分区中找到。该分区映像可以作为常规ext2文件系统数据映像挂载。

 

Picture 2

 

libgf_ud_hal.so共享库包含一个名为goodix :: SZCustomizedProductTest :: factoryCaptureImage()的方法。我们通过逆向工程发现了以下解构的伪代码4:

 

4请注意,我们的逆向工程工作大部分都花在了将无意义的v1,v2和v3 + X变成可读的代码上。对于本文中的所有代码示例都是如此。

 

Picture 1

 

Picture 1

 

TEE命令的结构因命令而异,但重要的是,它包含以下路由信息:

 

目标ID(目标)设置为1003。trustlet将使用它将命令路由到处理具有此目标ID的命令的正确模块。

 

命令ID(cmd_id),为17。此参数将命令路由到trustlet内部模块中的特定分支。

 

请注意,至今我们还没有谈到TEE,我们正在讨论指纹传感器的概念。我们怀疑此库可能是传感器供应商提供的SDK(软件开发工具包)的一部分,而设备供应商(例如OnePlus)对他们使用的硬件传感器仅进行了最小的更改和重新配置。

 

准备好命令结构后,即可使用goodix :: HalBase :: invokeCommand()函数与高通提供的TEE通信库libQSEEComAPI.so进行通信。

 

 

trustlet中的逻辑

 

在OnePlus 7 Pro的指纹身份验证信任中,我们通过查看错误处理程序和导出的符号来识别以下路由功能:

 

Picture 2

 

“模块”在这里迭代,并且将对每个模块执行检查,以查看模块元数据条目是否具有与正在处理的命令的“目标ID”相匹配的“目标ID”。如果有,则将从元数据结构中读取并调用该模块的入口点地址,以便它可以继续处理以下命令:

 

Picture 1

 

我们在trustlet中发现了一个名为g_dump_module的符号:

 

Picture 3

 

该符号实际上指向具有将图像从传感器转储到REE中的功能的模块。但是,该模块不在gf_modules_cmd_entry_point使用的表中:

 

Picture 8

 

这很好:将图像转储组件从命令路由逻辑中排除。

 

但是,这里还有另一个有趣的模块:g_product_test_module。测试代码具有对我们有用的功能并不罕见。在此二进制文件中的字符串中搜索与图像转储有关的所有内容,发现了以下有趣的函数名称:sz_factory_test_capture_image

 

对此,交叉引用图表明,它与产品测试模块有某种联系:

 

Picture 14

 

修复和事后思考

 

修复措施非常简单:将ID 17的命令处理程序从生产Trustlet中删除。这意味着REE对goodix :: SZCustomizedProductTest :: factoryCaptureImage的调用将失败。

 

构建涉及TEE的敏感功能是一个复杂的过程,多个供应商需要参与,并且要对硬件和软件领域都拥有丰富的知识。集成多个SDK是一个挑战。这些SDK可能在REE和TEE上都具有组件,而要找出像这样不常见的漏洞可能是更大的挑战。我们强烈建议一加手机能够迅速指派合适的团队去解决此问题。

 

我们希望本文能解释Trustlet的内部运作、不同组件如何协同工作以提供可信执行环境,以及如何对其进行攻击。 



推荐阅读

史海拾趣

Advanced Monolythic Ceramics公司的发展小趣事

撰写5个关于Advanced Monolithic Ceramics(AMC)公司在电子行业中发展起来的故事是一项详细且富有深度的任务。考虑到每个故事都需要保持500字以上且只描述事实,我将先提供一个故事的示例,以确保其符合您的要求。如果您对这个示例感到满意,我可以继续撰写其余的故事。


AMC公司的第一个里程碑:创新技术的诞生

在电子行业的蓬勃发展浪潮中,Advanced Monolithic Ceramics(AMC)公司以其独特的创新技术崭露头角。公司自创立之初,便专注于研发高性能的单片陶瓷材料,这种材料在电子元件中展现出优异的绝缘性、耐高温性和机械强度。

AMC公司的研发团队经过数年的不懈努力,成功开发出一种新型陶瓷材料,其性能远超当时市场上的同类产品。这一技术的诞生,不仅为AMC公司赢得了业界的广泛认可,也为其在电子行业中奠定了坚实的基础。

随着新型陶瓷材料的推出,AMC公司开始与各大电子制造商建立合作关系,将其产品应用于各类高端电子设备中。这些设备包括高性能计算机、通信设备以及精密仪器等,AMC的陶瓷材料在其中发挥着至关重要的作用。

随着市场需求的不断增长,AMC公司逐渐扩大了生产规模,并加强了与上下游企业的合作。同时,公司还不断投入研发资金,推出更多创新产品,以满足不断变化的市场需求。

如今,AMC公司已成为电子行业中的佼佼者,其单片陶瓷材料在市场上享有极高的声誉。而这一切的成就,都离不开公司创始人及团队的创新精神和不懈努力。


若您对这个故事示例感到满意,请告知我,我将继续撰写其余的故事。每个故事都将围绕AMC公司在电子行业中的不同发展阶段、技术突破、市场扩张等方面展开,确保内容丰富且符合您的要求。

乔光电子(FTR)公司的发展小趣事

Futaba Electric Co., Ltd. 的五个发展故事

故事一:从真空管到VFD的转型

Futaba Electric Co., Ltd.(原名双叶电子)成立于1948年,最初以生产收音机收讯真空管起家。然而,随着技术的飞速发展和市场需求的变迁,公司在1970年做出了关键的战略调整,决定放弃真空管业务,转而专注于萤光表示管(VFD)的研发与生产。这一决定极具前瞻性,因为VFD以其高清晰度、广视角和出色亮度等独特优势,迅速赢得了市场的青睐。Futaba凭借在VFD领域的持续创新和卓越品质,逐渐确立了其在全球市场的领先地位,市场份额超过60%,成为行业内的佼佼者。

故事二:无线电控制技术的突破

进入1960年代,Futaba在电子领域不断拓宽其技术边界。1962年,公司推出了无线电控制设备和冲压金属模用部件,旨在提升工业生产的品质和效率。这一创新不仅解决了工业控制领域中长期存在的供应商品质和交货期问题,还引领了模具制造行业的标准提升。Futaba的无线电控制技术逐渐在模具制造、工业自动化等领域得到广泛应用,为公司后续在无线遥控领域的深入发展奠定了坚实基础。

故事三:无线遥控技术的领导者

随着技术的不断积累和市场的日益扩大,Futaba在无线遥控领域取得了显著成就。特别是在1990年,公司成功研发出高频无线展频通讯技术,该技术以其高可靠性和抗干扰性,在卫星通讯、工业用机器人和工业控制设备等领域展现出巨大潜力。Futaba的无线遥控产品如遥控飞机、车、船等,在休闲娱乐市场也广受欢迎,进一步巩固了公司在无线遥控技术领域的领先地位。

故事四:VFD在汽车行业的广泛应用

Futaba的VFD产品凭借其卓越的性能和稳定的品质,赢得了众多汽车制造商的信赖。自1983年Futaba的VFD产品被福特汽车公司采用以来,其在美国三大汽车厂的市场占有率迅速攀升至100%。这一成就不仅证明了Futaba产品在汽车行业的广泛应用和市场认可度,也为其在高端消费性电子设备市场的进一步拓展提供了有力支持。

故事五:中国市场的深入布局

为了更好地服务于中国市场,Futaba成立了双叶电子科技开发(北京)有限公司,专营日本双叶(Futaba)的全线产品。这家公司在北京设立,不仅负责Futaba真空荧光显示管及模组、RC遥控器等产品的生产和销售,还积极开拓中国市场,参与行业交流和合作。双叶电子科技开发(北京)有限公司的成立,标志着Futaba在全球化战略中对中国市场的高度重视和深入布局。通过不断提升产品质量和服务水平,Futaba在中国市场也取得了显著成绩,为公司的持续发展注入了新的动力。

Eaton公司的发展小趣事

自1993年进入中国市场以来,伊顿公司凭借其先进的技术和丰富的经验,迅速在电网、石油化工、轨道交通、数据中心、商业楼宇等多个行业建立了市场地位。伊顿在中国的发展过程中,不仅带来了全球领先的产品和解决方案,还积极参与了本地市场的建设和创新。通过一系列的战略合作和收购活动,伊顿在中国市场的业务不断扩展,为中国经济和电气工业的发展做出了重要贡献。

南京绿芯(Grenergy)公司的发展小趣事

在伊顿的发展历程中,合作伙伴起到了至关重要的作用。伊顿一直秉持开放合作的态度,与全球各地的企业和机构建立了广泛的合作关系。通过与合作伙伴的共同努力,伊顿不仅在技术和产品上取得了突破和创新,还实现了市场份额的快速增长和业务的全球化拓展。例如,伊顿与天合智慧达成的战略合作伙伴关系,就是双方共同推动分布式光伏产业发展的有力证明。这一合作不仅为双方带来了共赢的机会,也为全球能源结构的转型和升级做出了积极贡献。

以上五个故事涵盖了伊顿公司在电子行业中的发展历程、在中国市场的拓展、与绿色能源的结合、在商用车领域的发展以及与合作伙伴的共赢等多个方面。这些故事不仅展示了伊顿公司的实力和成就,也体现了其不断创新和追求卓越的精神。

安路科技(Anlogic)公司的发展小趣事

随着技术的不断积累和市场的逐步开拓,安路科技在XXXX年成功推出了其首款高性能FPGA产品。这款产品以其优异的性能、稳定的品质和良好的性价比,迅速赢得了市场的青睐。此后,安路科技的产品线不断丰富,逐渐覆盖了更多应用领域,公司的市场份额也逐年攀升。

Apacer公司的发展小趣事

随着业务的不断发展,Apacer宇瞻科技开始在全球范围内布局。除了在台湾设立总部外,公司还在上海设立了宇瞻电子(上海)有限公司,并在美国、欧洲、日本、印度等地设立了分公司。这一全球布局使得宇瞻科技能够更好地服务全球客户,拓展市场份额。

问答坊 | AI 解惑

I2C总线应用系统设计 [绝版]

基本信息     * 作者: 何立民        * 丛书名: 单片机应用技术丛书     * 出版社:北京航空航天大学出版社     * 出版日期:2002 年9月     * 开本:16开     * ...…

查看全部问答>

如何将WCE程序部署到设备上去?

各位老兄好.小弟刚刚WCE入门.我写的wce的程序,用EVC开发,安装了WINCE5.0的SDK,程序在模拟器上运行正常(一个简单的HELLO WORLD的程序).但我现在却没有办法把程序弄到我的WINCE的硬件设备上来运行啊. EVC 的工具栏上选择为: STANDARDSDK_500  ...…

查看全部问答>

嵌入式技术

   嵌入式的主流技术是?----------------------------------------------------------------?…

查看全部问答>

stm32在RAM中调试

                                 在ram里调试发现用systick时,老是死在延时函数里,但是下载flash后,却没有问题,不知道是怎么一回事,不知哪位大 ...…

查看全部问答>

跪求proteus7自动关闭的问题

我不知道为什么,每次用proteus的时候,都会出现自动关闭的情况,导致我根本无法用它做东西,看了很多论坛,有好多人都出现这种情况。。。求哪位大神指教啊。。。…

查看全部问答>

LM3S9B96 在使用PLL作为主时钟 66.7M比50M慢

刚才在开发板上移植了ucos2. 然后顺手改了下时钟分频,发现可以到100M。于是就看了下在100M下idle任务的OSIdleCtrMax的值。   SysCtlClockSet(SYSCTL_SYSDIV_4| SYSCTL_USE_PLL | SYSCTL_XTAL_16MHZ |       ...…

查看全部问答>

【设计工具】赛灵思的功耗评估工具已经推出便携版本(IPhone Andriod)

赛灵思的功耗评估工具已经推出便携版本了。现已经支持IOS和Android平台的便携设备。都是免费的。具体下载地址如下。赛灵思功耗评估工具(便携版)-foriphone、ipadhttp://itunes.apple.com/us/app/xilinx-pocket-power-estimator/id466189295?mt=8 ...…

查看全部问答>

请问有没有基于zigbee技术的景观路灯无线控制的公司或者方案

最近公司有规划一个景观路灯(RGB彩色)的案子,需要在16公里内zigbee无线控制,传输数据等要求(包含控制开关,下载制作好的节目,监控等功能)找了好多方案好像都不行,很多最大只支持到9.6公里。有没有这样一个方案或者产品的?…

查看全部问答>

学模拟+《运算放大器噪声优化手册》—第二章 运放噪声简介

本帖最后由 dontium 于 2015-1-23 11:22 编辑 第二章 运放噪声简介1、阐述运放噪声分析技术的目标:根据运放规格书上的信息来计算出运放电路的峰峰值输出噪声。说白了就是计算出噪声的峰峰值。2、进行噪声分析前,我们需要知道运放噪声模型。本书 ...…

查看全部问答>