什么是服务器消息块 (SMB) 协议?


服务器消息块协议

服务器消息块 (SMB) 协议是微软 Windows 协议,允许用户在网络上共享文件、打印机和串行端口。SMBv2 是 Windows Vista 发布的最新版本,并在 Windows 7 中进行了更多修订。

IBM 开发的服务器消息块协议是一种网络协议。在 20 世纪 90 年代,微软升级了该协议,允许基于 Windows 的网络创建、更改和删除共享文件、打印机和串行端口。

SMB 是一种应用层协议,在大多数部署中通过 TCP 445 端口进行交互。与类似协议(如文件传输协议 (FTP))相比,SMB 因其提供更强的灵活性和更高的效率而迅速普及。

一个名为 Samba 的应用程序允许 Linux 系统在 Linux 环境中与 SMB 协议交互。SMB 的开源变体是通用互联网文件系统 (CIFS)。

SMB 如何工作?

服务器消息块协议允许客户端与其他网络用户通信并访问他们的文件和服务。另一个系统也必须实现网络协议并使用 SMB 服务器来接收和执行客户端请求。但是,双方必须首先建立连接,相互发送等效的消息。

SMB 在 IP 网络中使用传输控制协议 (TCP),在客户端和服务器之间通信之前需要三次握手。TCP 协议控制后续的数据传输。

SMB 协议版本

以下是 SMB 协议版本的列表:

  • IBM 于 1984 年发布 SMBv1 作为 DOS 文件共享协议。1990 年,微软对其进行了修订和增强。

  • 1996 年,发布了 CIFS 的新版本,具有更强大的功能和对更大文件大小的支持。它捆绑在最新的 Windows 95 操作系统中。

  • 2006 年,Windows Vista 引入了 SMBv2。由于效率的提高,它具有显著的性能提升;更少的指令和子命令意味着更快的执行速度。

  • Windows 7 包含 SMBv2.1,它进一步增强了性能。

  • Windows 8 引入了 SMBv3,并进行了许多改进。该协议现在支持端到端加密,这是最显著的改进。

  • SMBv3.02 与 Windows 8.1 一起发布。通过消除 SMBv1,它提供了提高安全性和速度的可能性。

  • 2015 年,Windows 10 推出了 SMBv3.1.1。它通过包括 AES-128 加密、防止中间人攻击和会话验证来提高协议的安全性。

如果您拥有企业并且连接了几台 Windows 设备,那么了解您的设备使用哪个版本的 SMB 协议至关重要。在现代办公室中很难找到运行 Windows 95 或 XP(并使用 SMBv1)的 PC,但它们可能仍在过时的服务器上运行。

SMB 安全吗?

虽然不同版本的 SMB 提供不同级别的安全性和保护,但黑客已发现 SMBv1 中的一个漏洞,他们可以利用该漏洞在用户不知情的情况下执行恶意软件。当一台设备被感染时,它会感染所有其他连接的设备。美国国家安全局 (NSA) 于 2017 年发现了该漏洞。

该漏洞被称为 EternalBlue,它被窃取自 NSA,并由 Shadow Brokers 黑客组织在线分发。微软已经修补了该漏洞,但 WannaCry 勒索软件攻击仅仅一个月后就席卷全球。

安全预防措施

鉴于 WannaCry 和 NotPetya 勒索软件,以及最新 SMB 版本 (v3.1.1) 中发现的多个其他漏洞,例如 SMBGhost 和 SMBleed,许多网络管理员和安全专业人员都在质疑是否应该在网络上使用它。一般来说,SMB 在更新和修补后被认为是一种安全的协议。

但是,应采取以下步骤来减轻 SMB 带来的任何安全漏洞:

  • 不应使用 SMBv1,因为它缺乏加密,效率低下,并且由于其复杂的实现,将来可能会出现类似于 MS17-010 漏洞的新重大问题。

  • 如果可能,请使用最新的 SMB 版本(截至本文撰写日期为 SMBv3.1.1)。SMBv3.1.1 比以前的 SMB 版本更高效,并具有最先进的安全措施。

  • 作为最佳安全实践(最小权限),SMB 访问应限于可信网络和客户端。

  • 最后,如果不需要 SMB 功能,则应在 Windows 系统上将其停用,以减少整体攻击面并尽可能减少向攻击者公开的指纹信息。

更新于:2022 年 4 月 18 日

3K+ 次浏览

开启您的职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.