什麼是伺服器訊息塊 (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 系統上將其停用,以減少整體攻擊面並儘可能減少向攻擊者公開的指紋資訊。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP