![魔包唤醒是否存在安全风险?](https://linux22.com/image/1635416/%E9%AD%94%E5%8C%85%E5%94%A4%E9%86%92%E6%98%AF%E5%90%A6%E5%AD%98%E5%9C%A8%E5%AE%89%E5%85%A8%E9%A3%8E%E9%99%A9%EF%BC%9F.png)
不久前转换到 Windows 10 后,我的电脑半夜随机打开,这令我睡不着觉。我以管理员权限打开 CMD,然后输入powerconfig/devicequery wake_armed
。这样我就能查看哪些设备有权自动唤醒 PC。此列表中包括我的鼠标和键盘以及我的 NIC(Realtek PCIe 控制器)。
我不确定为什么我的 NIC 默认具有唤醒权限,这对我来说似乎很可疑。我进入了设备的高级设置,果然“模式匹配唤醒”和“魔术包唤醒”都已启用。经过简短的研究,似乎在我的接口上听到类似于广播数据包的东西就足以唤醒 PC。我禁用它们主要是因为我想睡觉而不在半夜被自己吵醒。现在我担心我的 PC 的安全性,因为我不太了解为什么要考虑魔术包或魔术包来自哪里。
因此我有三个问题:
- 什么是“模式匹配唤醒”?
- 什么是“魔包唤醒”?
- 恶意实体会滥用此功能吗?
答案1
我以管理员权限打开 CMD,然后输入 powerconfig/devicequery wake_armed 。这样我就可以看到哪些设备有权自动唤醒 PC。此列表中包括我的鼠标和键盘以及我的 NIC(Realtek PCIe 控制器)。
这其实并不是一个完整的列表——有一个设备可以唤醒系统,但从未列在那里,即您的 RTC(计算机的硬件时钟)。操作系统可以对其进行编程,使其在未来某个时间唤醒系统,例如运行计划任务或在夜间安装 Windows 更新。您可以使用它powercfg /waketimers
来检查是否有任何 RTC 唤醒请求。
在最近的 Windows 版本中,“UpdateOrchestrator”可以通过任务计划程序作业将操作系统从睡眠状态唤醒(微软故意让该作业很难被禁用),甚至可以防止操作系统自动挂起(显然是由于 10 月更新中修复的一个错误)。
您应该使用powercfg /lastwake
或Get-EventLog System -Source Microsoft-Windows-Power-Troubleshooter -Newest 5 | fl Message
来检查实际触发从睡眠状态恢复的原因。
什么是“魔包唤醒”?
专门请求 LAN 唤醒的数据包 – 它有你的 MAC 地址以特定格式发送 16 次。大多数“LAN 唤醒”工具通过 UDP 发送,但具体协议并不重要,只要能将其传送到 NIC 即可。
此功能可以安全使用;有许多用于 LAN 唤醒的 Windows 应用程序可以生成此类数据包(例如这个)。
什么是“模式匹配唤醒”?
除了固定格式的魔术包之外,NIC 还可以配置为识别一些自定义模式。通常,Windows 会设置模式来匹配例如 LAN IPv4 地址的 ARP 请求、IPv6 地址的邻居发现请求、计算机名称的 NetBIOS 名称查找等 - 基本上是指示其他设备想要连接到您的数据包。
这个想法是,你的电脑会在你想访问它时被唤醒,然后在空闲时再次进入睡眠状态。例如,你可以让一台电脑充当文件服务器或远程桌面服务器,它将通常情况下要求它全天候运行,但通过“模式匹配唤醒”,它可以在大多数时间处于休眠状态并且仍然可以访问。
不幸的是,在实践中,“模式匹配唤醒”只会在你最不想要的时候起作用,而当你真正需要它时它永远不会起作用。这是造成不必要唤醒的一个非常常见的原因,尽管不是唯一的。
恶意实体会滥用此功能吗?
只是稍微让你烦恼了一点。实际上他们唯一能做的事情就是唤醒睡眠中的计算机,但他们无法获得任何访问权限,如果你自己启动它,他们就不会获得这些访问权限。
我个人禁用“模式匹配唤醒”,但保持“魔术包唤醒”处于启用状态——它最不可能被意外触发。(此外,由于 IPv4 NAT,即使人们想才能让它工作,所以你可以认为它仅限于 LAN。