BadUSB攻击:USB线缆如何变成键盘
你包里最危险的东西可能就是你最不信任的那根数据线。一根USB数据线、一个备用U盘、或者别人留在会议室里的“免费”充电器,它们看起来都无害。但是,一旦你插上其中一根,如果它已经被改造成了“BadUSB”设备,你的电脑会在最初的半秒钟内做出奇怪的反应:它会把这根数据线识别成键盘,并允许它开始输入。
这就是它的诡计所在。BadUSB 不是病毒,你无法通过扫描来检测。它是一种网络攻击,利用 USB 默认的权限进行攻击,这是网络安全领域最隐蔽的攻击手段之一。对于任何持有加密货币的人来说,这种无声的输入可能会悄无声息地让你损失钱包。以下将解释它的工作原理、难以阻止的原因,以及为什么加密货币用户会成为其主要攻击目标。
什么是 BadUSB 攻击?它为何如此危险?
从3美元的U盘到网络摄像头,所有USB设备都运行在一个带有固件的微型控制器上。这个固件会告诉你的电脑“我是键盘”或“我是存储设备”。BadUSB攻击会篡改固件,使设备“说谎”。你以为只是存储设备的U盘会悄悄地将自己重新声明为键盘或网卡,而操作系统会信以为真。没有任何提示,也没有任何警告。
为什么这一点如此重要?因为计算机对待键盘的方式。键盘是人机接口设备(HID),所有操作系统都完全信任HID输入。它假定有一个真人坐在那里,按下真实的按键。因此,伪装成键盘的恶意USB设备会继承这种信任,并以机器速度开始输入命令。
2014年的警钟
这个想法在2014年的美国黑帽大会上首次公开,当时SR Labs的两名研究员Karsten Nohl和Jakob Lell登台展示了他们的成果。他们的演讲题目非常精彩:“BadUSB——关于那些会变坏的配件”。这是一个外观普通的U盘,经过重新编程后可以充当键盘,在用户毫无察觉的情况下劫持电脑。几周后,Adam Caudill和Brandon Wilson在DerbyCon大会上发布了可用的漏洞利用代码。这成为了一个转折点。BadUSB不再是实验室里的秘密武器,而是任何人只要有一个空闲的周末就能搭建出来的东西。
为什么你不能直接打补丁?
安全专家们仍然对这一点感到担忧。大多数 USB 控制器接受新固件时既没有代码签名,也没有任何身份验证。没有任何机制来验证更新是否来自可信来源。因此,漏洞并非出在某个可以修补的程序缺陷上,而是存在于 USB 信任模型本身。
你的杀毒软件会扫描文件。但 BadUSB 不需要文件。恶意行为被内置在固件中,攻击本身只是简单的键盘输入。没有任何内容会写入磁盘,因此不会被标记。这就是为什么一台打了所有补丁、防护措施齐全的笔记本电脑仍然会被一根价值 200 美元的线缆攻破的原因。

BadUSB攻击如何在几秒钟内完成
想象一下这个过程。你插入连接线。连接线进行枚举,告诉电脑这是一台键盘,一两秒钟之内,它就开始根据操作员预先加载的数据进行按键输入。没有人能打字这么快。根本没人能接近。
典型的恶意代码会打开一个隐藏的命令窗口或 PowerShell 提示符(通常位于你看不到的地方),从互联网下载脚本并运行它。数据线负责输入命令,互联网提供恶意软件。等你瞥见屏幕时,一切已经完成了。
两秒钟的敲击就能造成巨大影响。打开终端。关闭安全提示。下载远程访问工具并将其添加到启动项中,使其在重启后仍然运行。在 Windows 系统中,只需一行 PowerShell 命令就能从攻击者控制的服务器上窃取代码并运行。而且,脚本可以非常耐心。它可以等待一天中的特定时间,或者只在屏幕解锁时执行,因此,这突如其来的敲击声会融入你正在进行的操作中。你的杀毒软件不会发出任何警报,因为没有任何文件以文件的形式传入,而是以输入的形式传入。
为什么这种方法一直有效?很简单。你可以锁定软件、限制安装,运行市面上所有的扫描程序。但键盘操作默认就是你本人。这一个假设就足以说明一切,而 BadUSB 从根本上就打破了这种假设。
BadUSB 工具推荐:Rubber Ducky 到 Flipper
多年来,这感觉就像是间谍电影里的情节。但现在并非如此。现成的设备就能直接实现按键注入,而且价格也相当正常。
Hak5 出品的 USB Rubber Ducky 堪称经典:它外形酷似 U 盘,采用名为 DuckyScript 的简单语言编写,专为此而设计。Flipper Zero 是一款风靡网络的口袋多功能工具,内置BadUSB 功能,售价约为 169 美元。而 O.MG Cable 则最令人担忧,因为它根本不是 U 盘,而是一根数据线。
O.MG 数据线外观与普通的苹果数据线或 USB-C 数据线完全相同。其内部隐藏着一个无线芯片和一个可通过 Wi-Fi 连接的小型网页界面。精英版每秒可发出高达 890 次的按键信号,并内置一个可存储多达 65 万条按键记录的键盘记录器。闲置时,它像普通数据线一样为手机充电和传输数据。你根本察觉不到它的存在。这正是它的目的所在。
| 工具 | 外形尺寸 | 喷射速度 | 无线控制 | 大约价格 |
|---|---|---|---|---|
| USB橡皮鸭 | U盘 | 快速(脚本化) | 不 | 约60美元 |
| Flipper Zero | 袖珍多功能工具 | 快速(脚本化) | 有限的 | 约169美元 |
| O.MG Cable(精英版) | 外观普通的电缆 | 最高可达每秒 890 个按键 | 是的(Wi-Fi) | 约200美元 |
为了让大家更直观地了解这一点,过去类似的植入式设备,据说是由情报机构制造的那种,价格高达数万美元。而 O.MG Cable 仅需一顿丰盛晚餐的价格,就能恢复大部分类似的功能。准入门槛几乎已经消失。
为什么加密货币持有者是 BadUSB 的主要目标
大多数文章都止步于企业IT角度。我想深入探讨他们未曾触及的领域,因为如果你持有加密货币,你的威胁模型就截然不同,而且说实话,情况可能更糟。
剪贴板交换
BadUSB攻击无需破解你的钱包。它只需要改变一件事:你的剪贴板。注入的有效载荷会在几秒钟内植入剪贴板劫持程序。之后,每次你复制加密货币地址进行转账时,恶意软件都会悄悄地将地址替换成攻击者的地址。你粘贴看起来正确的地址,确认后,钱就进入了陌生人的钱包。
这并非纸上谈兵。一名剪贴板劫持者被发现监视着超过两百万个比特币地址,并能随时替换攻击者的钱包地址。在2024年一场名为“GitVenom”的攻击活动中,攻击者通过伪造的代码库传播地址替换恶意软件,窃取了价值约48.5万美元的比特币。这种伎俩非常阴险,因为加密货币地址是一长串随机字符串,没有人会逐个字符地阅读。你只需检查前四个字符,再检查后四个字符,如果匹配,就点击发送。地址替换就隐藏在中间,而这正是你永远不会注意到的地方。而且,损失巨大: 据Chainalysis统计,2024年约有22亿美元的加密货币被盗,其中43.8%的损失是由于私钥泄露造成的。
硬件钱包真的能帮到你吗?
基本上是这样,而且有必要解释一下原因。Ledger 或 Trezor 会将你的助记词锁定在安全元件 (Secure Element) 中。私钥就存在于那里,永远不会离开。只有经过签名的交易才会通过 USB 线缆传输。因此,即使是 BadUSB 设备也无法通过随意输入命令来窃取硬件钱包中的助记词。整个架构的设计目的就是为了防止这种情况发生。
但其中存在两个真正的漏洞。第一个是社会工程学。2021年,诈骗分子向那些在Ledger 2020年数据泄露事件中家庭住址被泄露的人邮寄了假冒的Ledger设备。 据CoinDesk报道,这些假冒硬件附带一张纸条,指示受害者在捆绑的应用程序中输入他们的24个单词的助记词。无需任何漏洞利用,只需一个极具迷惑性的包装和一点恐惧即可。第二个漏洞是供应链。Kraken的研究人员发现,硬件钱包上处理USB的芯片(与安全元件分离的那个芯片)在设备到达买家手中之前就可能被篡改。
这并非意味着“硬件钱包毫无用处”。它们恰恰是正确的工具,毋庸置疑。关键在于,安全漏洞转移到了你身上:你复制的内容、你输入的内容,以及你的设备最初的来源。

USB威胁究竟有多普遍?
人们很容易将 BadUSB 归类为“有趣但罕见”。但数据表明并非如此,至少就更广泛的 USB 威胁而言是如此。
安全公司霍尼韦尔追踪工业场所发现的恶意软件。在其2024年报告中, 霍尼韦尔发现,其捕获的恶意软件中有51%是通过USB传播的,而2019年这一比例仅为9%。在这些通过USB传播的恶意软件中,82%可能扰乱工业运营。USB并非一个安全的攻击面,而是一个日益增长的攻击面。
而人性因素是最容易被利用的部分。在一项著名的研究中, 伊利诺伊大学的研究人员在校园内散布了297个U盘。人们捡起它们并插入电脑,第一个U盘几分钟内就被插入了。好奇心为攻击者提供了可乘之机。
| 寻找 | 数字 | 来源 | 年 |
|---|---|---|---|
| 通过 USB 传播的 OT 站点恶意软件 | 51%(高于2019年的9%) | 霍尼韦尔 | 2024 |
| 这种USB恶意软件能够干扰操作。 | 82% | 霍尼韦尔 | 2024 |
| 加密货币被盗,私钥泄露导致共享 | 22亿美元 / 43.8% | 链分析 | 2024 |
| 掉落的U盘插入 | 大约一半,几分钟内。 | 伊利诺伊大学 | 2016 |
这里需要坦诚地说明一点。2023年,FBI和FCC都曾发布公开警告,提醒公众注意机场和商场充电站的“充电劫持”风险。这些警告是预防性的,目前还没有出现任何公开的重大案例。然而,他们指出的漏洞——充电端口也能传输数据——恰恰是BadUSB利用的漏洞。问题的关键不在于每个机场都潜伏着一根被植入陷阱的充电线,而在于同一个USB端口的同一引脚同时传输电力和数据,因此,你无法检查的端口就无法完全信任。
如何防止 BadUSB 攻击并保护加密安全
好消息是?预防 BadUSB 攻击大多成本低廉,而且只需养成一种新的习惯。你不需要花哨的软件,只需要一个新习惯。
- 不要插入任何你未购买或无法完全信任的USB设备或线缆。会议赠品、停车场捡到的U盘、借用的数据线,这些都可能存在安全隐患。对待它们要像对待陌生人的针头一样谨慎。
- 随身携带一个USB数据阻断器,有时也叫“USB安全套”,以便在公共场所充电。它会物理切断数据引脚,只允许电源通过,从而防止通过该USB端口进行窃听和键盘输入攻击。
- 对于加密货币交易,务必在批准任何交易前,先在硬件钱包屏幕上核对完整的接收地址。养成这个习惯就能有效防止剪贴板地址交换,因为受信任设备上的地址与恶意软件植入的地址并不匹配。
- 务必直接从制造商处购买硬件钱包,切勿从第三方经销商或陌生人处购买,也切勿相信未经通知就突然出现的设备。
- 在终端端,USB 设备控制、HID 白名单和终端管理工具可以完全阻止未识别的键盘连接。在个人设备上,诸如苹果的“允许配件连接”提示或安卓的“锁定时关闭 USB”设置等功能也能起到同样的作用。
这些都不算什么稀奇古怪的事。这就好比在街上拒绝陌生人递过来的食物一样。
关于 BadUSB 和 USB 安全性的要点
BadUSB之所以令人不安,恰恰是因为它如此普通。无需零日漏洞,也无需天才般的技术,只需要一个价值5美元的假设:数据线就是数据线,键盘就是你。这个假设是错误的,而现在用来证明它错误的设备价格几乎和你正在充电的手机一样贵。
对于加密货币持有者来说,解决办法并非杞人忧天,而是自律。在设备屏幕上验证地址,而不是在电脑上。直接从商家购买硬件。下次有人给你一根你没带的线缆时,不妨问问自己,它可能会输入什么?今天你会毫不犹豫地插上什么设备?