我是否在 Windows 7 上免受 USB 自动运行恶意软件的侵害?

信息安全 视窗 操作系统 恶意软件 病毒 USB驱动器
2021-08-26 10:48:26

据我所知,autorun.inf问题(插入 USB 记忆棒时自动执行代码的可能性)已通过 XP 的 Windows 更新解决,而在 7 上则根本不可能。

但是,当插入 USB 记忆棒时,仍然会弹出一些自动播放对话框。

这可以被利用吗,是否有可能以某种方式执行代码?

(假定)

资产:包含个人信息、财务记录、网站密码、亲友联系信息的单台家用台式机。

曝光:位于个人住宅中,几乎没有未知的个人交通。

威胁:个人认识非经济动机或有经济动机的服务人员。

4个回答

当您插入 USB 密钥时,会发生很多事情。操作系统首先与 USB 设备对话以了解它是什么类型的设备以及它可以做什么。然后,如果设备说它是一种磁盘,操作系统将在其上查找文件系统,然后挂载它,并探索一些文件。根据找到的文件及其名称,操作系统会建议用户选择操作(即您看到的弹出窗口)。该过程的任何阶段都可能存在可利用的错误,而且历史上确实发生过许多这样的例子(例如,PS3 越狱 从去年开始是一个 USB 设备,它在内部宣称自己是四个设备的集线器,其中一个设备在 USB 总线上杂乱无章,从而触发了 OS USB 驱动程序中的缓冲区溢出)。

因此,尽管 Windows 上的当前状态是操作系统不会自动运行恶意代码,但它仍然可能会误操作据我所知,目前还没有发布的漏洞利用可以做到这一点,但所有这些代码都没有错误是难以置信的。

附带说明一下,看起来像普通 USB 记忆棒的东西在内部可能会表现得完全不同,并且(例如)将自己显示为操作系统的键盘——并立即开始“打字”。可能性几乎是无穷无尽的。而且有点吓人。

根据维基百科:

  • Windows 7的

    对于所有驱动器类型,除了 DRIVE_CDROM,[autorun] 部分中唯一可用的键是标签和图标。本节中的任何其他键都将被忽略。因此,只有 CD 和 DVD 媒体类型可以指定自动运行任务或影响双击和右键单击行为。

    有一个适用于 Windows XP 及更高版本的补丁 KB971029,它将自动运行功能更改为此行为。

https://secure.wikimedia.org/wikipedia/en/wiki/Autorun.inf

因此,这表明在插入任何可移动媒体autorun.inf后,Windows 7 仍然确实处理了其中的某些部分。处理多少取决于相关媒体是否在光驱中。

我不知道当前有任何与labeloricon键相关的漏洞,但这并不意味着永远不会有任何漏洞。您也有可能遇到受感染的 CD/DVD/BD 或其他autorun.inf将处理更多内容的光学媒体。因此,为了正确保护自己,我仍然建议autorun.inf完全禁用处理。

Michael Horowitz 前段时间写了一篇关于 Autorun 和 Autoplay 如何工作的精彩博客文章。与 Nick Brown 和 Emin Atac 所做的工作相呼应,这篇文章包括一个注册表黑客来禁用所有autorun.inf. 我将在下面粘贴注册表黑客详细信息。查看文章链接以获取更多信息。

建议的解决方案涉及更新 Windows 注册表。因此,与往常一样,最好进行备份。该解决方案是为 Windows XP/Vista 编写的,但它也应该在 7 中工作。

修改注册表很简单,您只需要下面显示的 .reg 文件中的三行。然后双击文件。

您可以从该网页复制以下三行,或使用此帖子底部的链接下载文件。文件名并不重要,除了应该以“.reg”结尾。Computerworld 不允许将以“.reg”结尾的文件附加到博客帖子中,因此文件类型为“.txt”,您必须将其重命名为以“.reg”结尾。

REGEDIT4
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\IniFileMapping\Autorun.inf]
@="@SYS:DoesNotExist"

请注意,文件中有三行,中间行在浏览器显示时可能会换行,但在 .reg 文件中必须是单行。

尼克布朗解释了这是做什么的:

此 hack 告诉 Windows 将 AUTORUN.INF 视为来自 Windows 95 之前的应用程序的配置文件......它说“当你必须处理一个名为 AUTORUN.INF 的文件时,不要使用文件中的值. 您可以在 HKEY_LOCAL_MACHINE\SOFTWARE\DoesNotExist 找到替代值。” 并且由于那个键 er 不存在,就好像 AUTORUN.INF 完全是空的,所以没有任何东西自动运行,也没有任何东西添加到资源管理器双击操作中。结果:蠕虫无法进入 - 除非您开始双击可执行文件以查看它们的作用......

第三行中的文本“DoesNotExist”表示注册表中不存在的位置。如果这个 zap 变得非常流行,恶意软件可能会寻找它,所以稍微改变一下也无妨。例如,我可能会在我的计算机上使用类似 @="@SYS:DoesNotExistMichael" 的东西。需要明确的是,这根本不是必需的。如上所示的zap 工作正常。

http://blogs.computerworld.com/the_best_way_to_disable_autorun_to_be_protected_from_infected_usb_flash_drives

当然,这对于将自身呈现给系统的 USB 记忆棒实际上并没有太大作用。最好的解决方案是不要插入您不信任的任何设备。并且,不要将您信任的任何设备插入您不信任的系统。

有关自动运行/自动播放及其工作原理的更多信息,请参阅已引用的网站。另外,请查看以下 Wikipedia 链接:

https://secure.wikimedia.org/wikipedia/en/wiki/AutoRun
https://secure.wikimedia.org/wikipedia/en/wiki/AutoPlay

默认行为是显示弹出窗口。弹出窗口会扫描媒体中的文件类型,并对您可能想要做什么做出有根据的猜测。对于默认行为,利用它的唯一方法是通过读取媒体内容的弹出代码中的漏洞,目前 [in the wild] 不存在该漏洞。

你没有受到保护并且非常危险

Autorun.inf 是一种旧式攻击,应该不再有效,但这并不是唯一使用 USB 的攻击媒介。

BadUSB 是在 USB 设备上更改固件以模拟其他设备并扩展其功能的地方。请记住,USB 只是用于连接设备的规范,不同的设备以不同的级别或特权运行,存储与键盘的运行级别不同。借助扩展功能,存储设备在插入机器时看起来就像键盘。

可能的情况是这样的:

你插入一个 USB 记忆棒,接下来你知道代码正在执行。这是可能的,因为该设备模拟键盘 USB 设备并向您的系统提供输入,例如打开 PowerShell 然后运行代码的快捷键。

BadUSB 可以在可以购买的使用此漏洞利用的商业产品中找到,例如BashbunnyRubber dady 。

另外还有从头开始创建自己的指南如发现here