fzxhsaj 2018-04-07
SaleemRashid 是一名来自英国的十五岁少年,而这位年少有为的同学成功地在Ledger公司所生产的加密货币硬件钱包Ledger Nano S中发现了一个严重的安全漏洞。
硬件钱包允许用户在计算机设备上通过USB端口来完成加密货币的交易活动,但是它们并不会跟主机设备共享钱包私钥,因此恶意软件就无法获取硬件钱包的密钥了。但是Saleem Rashid却发现,当Ledger Nano S硬件钱包跟目标设备完成物理连接之后,他竟然可以获取到Ledger设备中的私钥。
研究人员表示,攻击者可以利用恶意软件来更新Ledger设备,当恶意软件窃取到交易私钥之后,攻击者就可以“榨干”目标用户的加密货币账号了。
Ledger硬件钱包
在对Ledger的硬件设备进行分析时,Saleem Rashid发现这些设备中包含一个安全处理器芯片以及一个不安全的微型控制器芯片。安全处理器芯片(A)其实也是一种微型控制器,它存储了交易所需的私钥以及其他凭证数据,而另一个不安全的微型控制器(B)主要用来处理一些对安全性要求不高的任务(代理),例如在显示屏上显示文本信息、处理USB接口任务或者处理按钮事件等等。
在Ledger当前的架构中,A只能直接跟B通信,但B可以代表A来与其他外部设备通信。A可以通过进行加密认证来确保设备当前运行的是合法的Ledger固件,但B却无法进行这样的安全验证,所以现在的问题就在于,当这两块芯片在交换数据时,攻击者可以入侵Ledger设备不安全的微型控制器(B),然后以隐蔽模式运行恶意代码。
尽管Ledger设备通过某种方法实现了设备中代码运行的完整性保护控制,但是由于微型控制器B缺乏验证机制,因此研究人员仍然能够绕过这种保护机制,并在Ledger产品中运行恶意代码。
PoC代码获取:【传送门】
研究人员还表示,他们现在已经发现了三种针对Ledger设备的不同的攻击向量,但是影响最为严重的就是Rashid所谓的“供应链攻击”。在这种攻击场景中,攻击者既不需要利用额外的恶意软件来感染目标用户的计算机,也不需要去欺骗用户确认某次交易信息。
更可怕的是,由于Ledger使用的是自定义架构来实现其各种安全元素,因此攻击者就可以在用户收到设备之前,利用该漏洞入侵这台设备,或者直接在其他场景下窃取设备私钥。
Rashid表示:“攻击者可以在不安全芯片中安装任何东西,因为你从屏幕中看到的东西不一定就是真的。而且Ledger没有部署任何的反篡改保护机制,所以攻击者可以物理访问并对目标设备进行代码修改。因此,当攻击者可以控制屏幕显示内容以及硬件按钮之后,用户将很难发现自己是否受到了攻击。”
缓解方案
不过广大用户不用太过担心,因为Ledger现在已经发布了一个固件更新(1.4.1),而这个更新补丁可以修复Nano S架构中的安全缺陷。有需要的用户可以下载安装:【补丁下载】。
除此之外,Rashid还建议广大用户从供应商的官方商城直接购买设备,尽量不要从第三方购买或下载/安装固件文件,这样可以最大程度地避免“供应链攻击”。
* 参考来源:thenextweb、securityaffairs