问题简介

腾讯安全玄武实验室在部分快速充电(以下简称快充)产品中发现了一种新型安全问题,并将其命名为“BadPower”。

利用BadPower,攻击者可入侵支持快充技术的充电器等设备,使被入侵的设备在对外供电时输出过高电压,从而导致受电设备的元器件击穿、烧毁, 甚至可能进一步对受电设备所在物理环境产生安全隐患。

技术背景

快充技术是近几年刚刚兴起的一类通过USB接口充电的技术。

早期USB接口的充电器仅能输出较小功率,给手机充满电需要数小时。而目前的快充技术已至少可提供最高20V电压和100W功率。支持快充技术的充电设备几十分钟就能完成手机充电,甚至还可以对笔记本电脑、台式机显示器等较大功率的用电设备供电。所以快充技术在短短两三年的时间里就成为了行业热点。新上市的手机、平板电脑、笔记本电脑等数码产品几乎都支持快充技术。市场上也出现了大量支持快充技术的充电器、充电宝、车载充电器等产品。

快充操作由供电端、充电线缆和受电端共同完成。当供电端和受电端通过充电线缆进行连接,会先进行电力协商通信。待协商出一个双方都支持的功率,供电端会以此功率向受电端供电。

供电端和受电端内均运行着一套程序用来完成电力协商,并控制充电过程。这套程序通常存放于供电端和受电端的快充管理芯片的固件中。

问题描述

快充协议不仅包含电力传输功能,也可进行数据传输。一些厂商在数据通道里设计了可读写内置固件的接口,却并未对读写行为进行有效的安全校验,或校验过程存在问题,或快充协议实现存在某些内存破坏类问题。攻击者利用这些问题就可能改写快充设备的固件,从而控制设备的供电行为。

正常情况下,对不支持快充的受电设备,快充设备会默认对其提供5V的供电电压。但通过改写快充设备内控制供电行为的代码,就可以让快充设备对这些仅能接受5V电压的受电设备输入最高20V电压,从而导致功率过载。

即使对支持快充的受电设备,被控制后的恶意充电设备也可以在电力协商中告诉受电设备自己将会提供5V电压,但实际却提供20V电压。

所有存在BadPower问题的产品都可通过特制硬件进行攻击,其中有相当一部分也可通过支持快充协议的手机、平板电脑、笔记本电脑等普通终端进行攻击。

一次典型的通过特制硬件发起的BadPower攻击过程如下:

1、 攻击者用伪装成手机的特制设备连接充电器的充电口,入侵充电器内部固件。

2、 当用户使用被入侵的充电器给其它设备充电时,充电器对受电设备进行功率过载攻击。

一次典型的通过普通终端进行的BadPower攻击过程如下:

1、 攻击者通过某种方式入侵用户的手机、笔记本电脑等终端设备,在其中植入具有BadPower攻击能力的恶意程序,使该终端设备成为BadPower的攻击代理。

2、 当用户将终端设备连接充电器时,终端设备里的恶意程序入侵充电器内部固件。

3、 当用户再次使用被入侵的充电器给设备充电时,充电器会对被受电设备进行功率过载攻击。

影响后果

BadPower并不像传统传统网络安全问题那样会导致数据隐私泄露,但可以实现通过数字空间破坏物理世界。

玄武实验室在研究中测试了多种不同的受电设备,发现BadPower产生的功率过载的后果与过载时的电压、电流,以及受电设备的电路布局、元器件选择、乃至外壳材质、内部结构等均有关系。少数过载保护做的较好的受电设备可不受BadPower功率过载攻击的影响。但大部分情况下,功率过载会导致受电设备内相关芯片击穿、烧毁,从而造成不可逆的物理损坏。极少数情况下,BadPower攻击还可能影响设备周围物理环境的安全。

badpower_2
(某受电设备遭BadPower攻击时芯片烧毁的情况)

由于功率过载对芯片的破坏情况无法控制和预测。所以芯片被破坏后还可能导致其它继发后果。我们在测试中曾观察到某款设备在受到攻击后,被击穿的芯片连接内置锂电池正负极的两个引脚间电阻由无穷大变成了几十欧姆。

影响范围

快充产品价格低廉,用户需求大。同时,目前越来越多支持快充技术的产品上市,并配备支持快充技术的充电器。所以BadPower问题影响的用户数量很大,且如果问题得不到解决,受影响的用户数还将越来越多。

玄武实验室在调研中发现市场上至少存在234款快充设备。玄武实验室实际测试了其中35款,发现至少18款存在BadPower问题,涉及8个品牌。18款中可通过支持快充的数码终端进行攻击的有11款。

同时,玄武实验室调研了34个快充芯片厂商,发现至少有18家芯片厂商生产具备成品后更新固件功能的芯片。使用这些芯片设计制造产品时如未充分考虑安全问题,就可能导致BadPower。

安全建议

大部分BadPower问题可通过更新设备固件进行修复。设备厂商可根据情况,采取措施修复已销售产品中的BadPower问题,例如通过维修网点帮助用户更新充电设备中的固件,或通过网络向手机等支持快充技术的终端设备下发安全更新,升级充电设备中的固件。

在未来设计和制造快充产品时应注意:

1、对通过USB口更新固件的行为进行严格的合法性校验,或不提供该功能;

2、对设备固件代码进行严格安全检查,防止常见软件漏洞。

同时我们也建议在快速充电技术相关国家标准中增加固件更新时安全校验的技术要求。建议在使用USB接口供电的非快充受电设备中增加类似贴片保险丝这样的元器件,或至少能耐受20V电压的过压保护电路。建议支持快充的受电设备在电力协商后仍持续对输入电压和电流进行检查,以确认符合所协商的范围。

普通用户也可采取一些措施减轻BadPower的威胁。例如不要轻易把自己的充电器、充电宝等给别人使用。同时建议不要用Type-C转其它USB接口的线缆让快充设备给不支持快充的受电设备供电。因为支持快充技术的受电设备过载保护通常好于不支持快充技术的受电设备。在遭受功率过载时,有更好过载保护的设备可能导致的后果更轻,甚至可能不受影响。

玄武实验室已于2020年3月27日将此安全问题报告给CNVD,并积极地和相关厂商一起推动行业采取措施处理BadPower问题,同时将协同行业力量加速相关安全标准的制定推广。由于我们无法测试整个市场上的所有产品,所以也呼吁更多生态链上的厂商关注这一问题。玄武实验室会持续对有关问题进行研究,寻找更好的解决方案。

演示视频