Windows 为设备加载驱动程序,而不是来自它。加载的驱动程序基于设备提供的硬件 ID (VEN_ & DEV_)。这些是从受信任的位置(System32 或 Windows 更新)加载的,并且必须使用受信任的证书进行签名,以便为较新版本的 Windows 完全加载。
USB 设备上的控制器可能带有恶意软件。对于普通用户来说,它的固件基本上是不可能验证的。您真正希望的最好结果是成为信誉良好的供应商和信誉良好的商店的名牌闪存,并相信您对于定制固件来说太小了。此外,USB设备的控制器是否可以用恶意固件重新刷新基本上是随机的,很难找到一个不能被恶意攻击者轻易刷新的设备。
更有可能的情况是,通过草率的编码将看似可否认的后门写入控制器固件。从您的角度来看,这些将是针对随机供应商的,而且很难找到。受影响的供应商可能并不多,因为它很难实现,因此成本很高。
较新版本的 Windows 在您首次插入设备时询问您想对可移动媒体做什么,从而大大缓解了 autorun.inf 漏洞。
一些防病毒程序(如卡巴斯基)也会阻止 USB 键盘,直到通过强制您从设备输入一串文本来确认它们在您的控制之下。不过,这只能防止假键盘。
主板上的大多数硬件设备都是 DMA(可以直接读取或写入内存,绕过大多数安全措施),USB 没有直接内存访问,但还有很多其他攻击媒介,因为 USB 旨在连接任何类型的设备。
例如,Stuxnet 的 .lnk 漏洞攻击了一个资源管理器(图形外壳)漏洞。
PC 硬件、固件和软件存在大量攻击面。
这是一个不错的已知攻击列表:https :
//www.bleepingcomputer.com/news/security/heres-a-list-of-29-different-types-of-usb-attacks/
代码中总会有可以被利用的错误,理解这一点,但也知道一般来说,对于普通用户而言,恶意软件感染将来自自动来源,而不是有针对性的攻击,这极大地限制了许多漏洞被使用的可能性,因为如果没有针对性的攻击,其中许多几乎是不可能的。
您实际上可以做的最好的事情是(按照从最少到最有效的顺序): 1. 从信誉良好的来源购买信誉良好的硬件,并且永远不要在您无法控制的计算机上使用 USB 外围设备。2. 使用虚拟机将外围设备与物理主机分开。3. 使用 QubesOS,只有在操作系统完成加载后才能插入 USB 外围设备。