什么是SMB1?为什么要禁用它?

SMB(服务器消息块)是一种网络层协议,主要用于 Windows 上共享文件、打印机以及网络连接计算机之间的通信。该协议主要由 IBM/Microsoft 创建,其第一个实现是在 DOS/Windows NT 3.1 中。此后,SMB 成为几乎所有 Windows 版本的一部分,即 XP、Vista、7、8、10、11。SMB 协议甚至出现在 Windows 的服务器版本中。尽管 SMB 协议是 Windows 原生协议,但也受 Linux(通过 SAMBA)和 macOS 支持。

中小企业工作机制

在最简单的形式中,SMB 客户端计算机使用 SMP 端口(端口 445)连接到 SMB 服务器,以便在 SMB 身份验证成功后访问基于 SMB 的共享。一旦建立了 SMB 连接,就可以执行文件协作、打印机共享或任何其他基于网络的操作。

SMB协议的历史

SMB 协议是由 IBM 的一个小组在 1980 年代开发的。为了满足多年来不断变化的网络需求,SMB 协议经历了多种变体的演变,称为版本或方言。该协议仍然是 LAN 或工作场所中最常用的资源共享协议之一。

SMB 协议方言或版本

为了与不断变化的 IT 环境兼容,SMB 协议在其最初实施的 SMB 协议基础上经历了许多改进。最值得注意的是:

  • SMB 1创建于 1984 年,用于在 DOS 上共享文件。
  • CIFS(或通用 Internet 文件系统)于 1996 年由 Microsoft 作为 Windows 95 中的 Microsoft 版本的 SMB 引入。
  • SMB 2于 2006 年作为 Windows Vista 和 Windows Server 2008 的一部分发布。
  • SMB 2.1于 2010 年随 Windows Server 2008 R2 和 Windows 7 一起推出。
  • SMB 3于 2012 年与 Windows 8 和 Windows Server 2012 一起发布。
  • SMB 3.02于 2014 年与 Windows 8.1 和 Windows Server 2012 R2 一起首次亮相。
  • SMB 3.1.1于 2015 年随 Windows 10 和 Windows Server 2016 一起推出。

SMBv1

SMBv1 由 IBM 在 1980 年代开发,并在 1990 年代由 Microsoft 重新命名为 CIFS 并增加了功能。虽然在当时 SMB 1 取得了巨大的成功,但它并不是为当今的互联世界开发的(就像那个时代开发的所有软件应用程序一样),毕竟从那时起已经过去了 30 多年的信息革命。微软在 2013 年贬低了 SMBv1,默认情况下,它不再安装在 Windows 和 Windows 服务器版本上。

由于其技术过时,SMBv1 非常不安全。它有许多漏洞利用/漏洞,其中许多允许在目标机器上远程控制执行。尽管网络安全专家曾就 SMB 1 漏洞发出警告,但臭名昭著的 WannaCry 勒索软件攻击清楚地表明了这一点,因为该攻击针对的是 SMBv1 中发现的漏洞。

由于存在这些漏洞,建议禁用 SMB1。有关 SMB1 漏洞的更多详细信息,请访问 Malwarebytes 博客页面。用户可以使用 Metasploit 自行检查 SMB1 漏洞(尤其是 EternalBlue)。

SMBv2 和 SMBv3

SMBv2 和 SMBv3 为 SMB 协议提供以下增强功能(而 SMB 1 缺少这些功能):

  • 预认证完整性
  • 安全方言协商
  • 加密
  • 不安全的访客身份验证阻止
  • 更好的消息签名

一些用户可能会自然而然地想到一个问题,如果他们的系统有 SMBv2 或 3,它不会覆盖用户机器上 SMB 1 的漏洞吗?但答案是否定的,因为这些对 SMB 的增强功能以​​不同的方式工作并使用不同的机制。如果在具有 SMBv2 和 3 的计算机上启用了 SMBv1,则这可能会使 SMBv2 和 3 容易受到攻击,因为 SMB 1 无法控制中间人 (MiTM) 攻击。攻击者只需要在他这边屏蔽 SMBv2 和 3,并且只使用 SMB 1 在目标机器上执行他的恶意代码。

禁用 SMB 1 的影响

除非有必要(对于运行 Windows XP 的机器或使用 SMB 1 的遗留应用程序),所有网络安全专家都建议在系统和组织级别禁用 SMBv1。如果网络中不存在 SMBv1 应用程序或设备,则不会受到任何影响,但并非在所有情况下都是如此。禁用 SMBv1 的每个场景可能不同,但 IT 管理员在禁用 SMB 1 时可能会考虑以下因素:

  • 主机和应用程序之间未加密或签名的通信
  • LM 和 NTLM 通信
  • 低(或高)级别客户端之间的文件共享通信
  • 不同操作系统之间的文件共享通信(如 Linux 或 Windows 之间的通信)
  • 遗留软件应用程序和基于 SMB 的固定通信应用程序(如 Sophos、NetApp、EMC VNX、SonicWalls、vCenter/vSphere、Juniper Pulse Secure SSO、Aruba 等)。
  • 打印机和打印服务器
  • Android 与基于 Windows 的应用程序的通信
  • 基于 MDB 的数据库文件(这些文件可能会因 SMBv2 SMBv3 而损坏,而 SMBv1 对这些文件至关重要)。
  • 使用 SMB 1 的备份或云应用程序

禁用 SMB 的方法 1

可以使用多种方法来禁用 SMB1,用户可以使用最适合其场景的方法。

默认禁用

Windows 10 Fall Creators Update 及更高版本默认禁用 SMBv1。Windows 11 默认禁用 SMB 1。对于服务器版本,Windows Server 版本 1709 (RS3) 及更高版本默认禁用 SMB1。要检查 SMB1 的当前状态:

  1. 单击Windows,搜索PowerShell右键单击它,然后在子菜单中选择Run as Administrator
  2. 现在执行以下命令:
    获取 SmbServerConfiguration | 选择 EnableSMB1Protocol、EnableSMB2Protocol

请记住,Microsoft 已通过 Windows 更新自动删除 SMB 1,但如果用户重新启用,则该协议将来可能不会被禁用,从而使机器容易受到攻击。

使用 Windows 10、8 或 7 的控制面板

  1. 单击Windows,搜索并打开控制面板
  2. 现在选择程序并打开打开或关闭 Windows 功能
  3. 然后取消选中SMB 1.0/CIFS 文件共享支持并单击应用
  4. 现在重新启动您的系统,SMB 1 将在您的系统上被禁用。

使用 Windows 11 的可选功能菜单

  1. 右键单击Windows并打开设置
  2. 现在,在左窗格中,前往Apps,然后在右窗格中打开Optional Features
  3. 然后向下滚动并在“相关设置”下单击“更多 Windows 功能”
  4. 现在,在显示的菜单中,取消选中SMB 1.0/CIFS 文件共享支持并单击应用
  5. 然后重新启动您的 PC,重新启动后,SMBv1 将在 PC 上被禁用。

使用 PowerShell

以上两种方法可能满足最大用户的要求,但在服务器系统上,管理员可能必须使用 PowerShell(尽管,步骤在客户端机器上也可以正常工作)。

  1. 单击Windows,搜索PowerShell右键单击它,然后选择Run as Administrator
  2. 现在执行以下命令:
    Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB1 -Type DWORD -Value 0 –Force
    
    或者
    禁用-WindowsOptionalFeature -Online -FeatureName smb1protocol
    
    或者
    设置 SmbServerConfiguration-EnableSMB1Protocol $false
    
    或在服务器上
    删除 WindowsFeature -Name FS-SMB1
    
    或者
    设置 SmbServerConfiguration-EnableSMB1Protocol $false
  3. 然后重新启动系统,重新启动后,系统的 SMB 1 将被禁用。

使用系统的注册表编辑器

没有 PowerShell 的服务器机器(如 Windows Server 2003)上的管理员可以使用注册表编辑器禁用 SMB 1,尽管这些步骤在客户端机器上也能正常工作。

警告

请格外小心并自行承担风险,因为编辑系统的注册表是一项熟练的任务,如果操作不当,您可能会危及系统、数据或网络。

  1. 单击Windows,搜索Regedit右键单击它,然后在子菜单中选择Run as Administrator
  2. 现在导航到以下路径:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
  3. 然后,在右窗格中,双击SMB1并将其设置为0。有些用户,例如 Windows 7,可能必须创建 SMB1 DWORD(32 位)值并将其值设置为 0。

禁用 SMBv2 或 3

由于 SMB 1 的威胁级别,一些用户可能会决定禁用 SMBv2 或 3,此时这是不必要的。如果用户禁用 SMBv2 或 3,他可能会失去:

  • 本地缓存
  • 大型文件共享网络
  • 故障转移
  • 符号链接
  • 10GB 以太网
  • 带宽限制
  • 多通道容错
  • 过去 3 年中发现的安全和加密改进

用户绑定使用 SMB1

以下情况可能会强制用户使用 SMB 1:

  • 使用 Windows XP 或 Windows Server 机器的用户
  • 用户需要使用需要系统管理员通过网上邻居浏览的老旧管理软件。
  • 使用带有旧固件的旧打印机的用户可以“扫描共享”。

只有在没有其他可能的情况下才使用 SMB1。如果应用程序或设备需要 SMBv1,那么最好找到该应用程序或设备的替代品(目前看起来成本很高,但从长远来看是有益的,只需询问遭受 WannaCry 攻击的用户或组织)。

所以,就是这样。如果您有任何疑问或建议,请不要忘记在评论中联系我们。

本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。
(1)
上一篇 2023年8月16日
下一篇 2023年8月16日

相关推荐