SMB (Server Message Block) là giao thức lớp mạng chủ yếu dùng trên Windows để chia sẻ file, máy in và giao tiếp giữa máy tính kết nối mạng. Giao thức này do IBM/Microsoft tạo ra, triển khai đầu tiên trên DOS/Windows NT 3.1. Sau đó, SMB có mặt trong hầu như mọi phiên bản Windows: XP, Vista, 7, 8, 10, 11 và các bản Server. Mặc dù SMB là giao thức gốc của Windows, nhưng cũng được Linux (qua SAMBA) và macOS hỗ trợ.
Cơ Chế Hoạt Động Của SMB
Đơn giản: máy khách (client) SMB kết nối đến máy chủ (server) SMB qua cổng SMB (cổng 445) để truy cập chia sẻ dựa trên SMB sau khi xác thực thành công. Khi kết nối SMB thiết lập xong, có thể thực hiện cộng tác file, chia sẻ máy in, hoặc các hoạt động mạng khác.
Lịch Sử Giao Thức SMB
SMB được phát triển thập niên 1980 bởi nhóm tại IBM. Để đáp ứng nhu cầu mạng thay đổi, SMB đã tiến hóa qua nhiều biến thể (phiên bản/bản ngữ). Giao thức này vẫn là một trong những giao thức phổ biến nhất để chia sẻ tài nguyên trên LAN hoặc nơi làm việc.
Các Phiên Bản (Dialects) Của Giao Thức SMB
Để tương thích với bối cảnh CNTT thay đổi, SMB đã trải qua nhiều cải tiến từ bản triển khai gốc:
- SMB 1 (1984) - Chia sẻ file trên DOS.
- CIFS (1996) - Phiên bản SMB của Microsoft trên Windows 95.
- SMB 2 (2006) - Windows Vista và Windows Server 2008.
- SMB 2.1 (2010) - Windows Server 2008 R2 và Windows 7.
- SMB 3 (2012) - Windows 8 và Windows Server 2012.
- SMB 3.02 (2014) - Windows 8.1 và Windows Server 2012 R2.
- SMB 3.1.1 (2015) - Windows 10 và Windows Server 2016.
SMBv1 - Phiên Bản Cũ Và Nguy Hiểm
SMBv1 được phát triển thập niên 1980 bởi IBM, đổi tên thành CIFS bởi Microsoft với tính năng bổ sung thập niên 1990. Dù thành công thời bấy giờ, SMB 1 không được phát triển cho thế giới kết nối hiện đại (như mọi phần mềm thời đó). 30+ năm cuộc cách mạng thông tin đã trôi qua. Microsoft đã ngừng hỗ trợ (deprecate) SMBv1 từ 2013 và mặc định không còn cài đặt nó trên Windows và Windows Server.
Do công nghệ lỗi thời, SMBv1 rất không an toàn. Nó có nhiều lỗ hổng/khai thác (exploits/vulnerabilities), nhiều trong số đó cho phép thực thi mã từ xa (remote code execution) trên máy mục tiêu. Dù chuyên gia bảo mật cảnh báo về lỗ hổng SMB 1, cuộc tấn công ransomware WannaCry nổi tiếng đã làm rõ ràng vấn đề này - cuộc tấn công nhắm vào lỗ hổng của SMBv1.
Do các lỗ hổng này, khuyến khích vô hiệu hóa SMB1. Chi tiết lỗ hổng SMB1 (đặc biệt là EternalBlue) có thể tìm trên blog Malwarebytes. Người dùng có thể tự kiểm tra lỗ hổng SMB1 (EternalBlue) bằng Metasploit.
SMBv2 và SMBv3 - Các Cải Tiến Bảo Mật
SMBv2 và SMBv3 cung cấp các cải tiến sau (SMB 1 thiếu các khả năng này):
- Tính toàn vẹn trước xác thực (Pre-authentication Integrity)
- Đàm phán ngôn ngữ bảo mật (Secure Dialect Negotiation)
- Mã hóa (Encryption)
- Chặn xác thực khách không an toàn (Insecure guest auth blocking)
- Ký thông điệp tốt hơn (Better message signing)
Có thể thắc mắc: nếu hệ thống có SMBv2 hoặc 3, nó có che chở lỗ hổng SMB 1 không? Câu trả lời là KHÔNG vì các cải tiến này hoạt động khác biệt và dùng cơ chế khác. Nếu SMBv1 được bật trên máy có SMBv2/3, nó có thể làm SMBv2/3 dễ bị tấn công vì SMB 1 không kiểm soát được tấn công Man-in-the-Middle (MiTM). Kẻ tấn công chỉ cần chặn SMBv2/3 ở phía mình và chỉ dùng SMB 1 để thực thi mã độc trên máy mục tiêu.
Ảnh Hưởng Của Việc Vô Hiệu Hóa SMB 1
Trừ khi bắt buộc (máy chạy Windows XP hoặc ứng dụng cũ dùng SMB 1), chuyên gia bảo mật khuyến khích vô hiệu hóa SMBv1 trên hệ thống và cấp tổ chức. Nếu không có ứng dụng/thiết bị SMBv1 trong mạng, không có gì bị ảnh hưởng. Nhưng không phải lúc nào cũng vậy. Quản trị viên IT cần cân nhắc:
- Giao tiếp không mã hóa/ký giữa host và ứng dụng
- Giao tiếp LM và NTLM
- Chia sẻ file giữa client cấp thấp/cao
- Chia sẻ file giữa các hệ điều hành khác nhau (Linux ↔ Windows)
- Phần mềm cũ và ứng dụng giao tiếp SMB cố định (Sophos, NetApp, EMC VNX, SonicWalls, vCenter/vSphere, Juniper Pulse Secure SSO, Aruba, v.v.)
- Máy in và Print server
- Giao tiếp Android với ứng dụng Windows
- File database MDB (có thể hỏng với SMBv2/3, cần SMBv1)
- Ứng dụng backup/cloud dùng SMB 1
Các Phương Pháp Vô Hiệu Hóa SMB 1
1. Đã Vô Hiệu Hóa Mặc Định
SMBv1 tắt mặc định trên Windows 10 Fall Creators Update và mới hơn. Windows 11 tắt mặc định. Server: Windows Server 1709 (RS3) trở lên tắt mặc định. Kiểm tra trạng thái:
- Tìm PowerShell, chuột phải → Chạy với quyền Admin.

- Chạy lệnh:
Get-SmbServerConfiguration | Select EnableSMB1Protocol, EnableSMB2Protocol

Microsoft có tự động gỡ SMB 1 qua Windows Update, nhưng nếu người dùng bật lại thủ công, giao thức có thể không bị tắt trong tương lai và làm máy dễ bị tấn công.
2. Dùng Control Panel (Windows 10, 8, 7)
- Mở Control Panel.

- Chọn Chương trình (Programs) → Bật/Tắt tính năng Windows (Turn Windows Features on or off).

- Bỏ chọn Hỗ trợ chia sẻ file SMB 1.0/CIFS → Áp dụng (Apply).

- Khởi động lại máy. SMB 1 sẽ bị vô hiệu hóa.

3. Dùng Optional Features (Windows 11)
- Chuột phải Windows → Settings.

- Bên trái: Apps, bên phải: Optional Features.

- Kéo xuống, dưới Related Settings click More Windows Features.

- Bỏ chọn Hỗ trợ chia sẻ file SMB 1.0/CIFS → Apply.

- Khởi động lại PC.
4. Dùng PowerShell
Phương pháp cho server (cũng dùng được cho client):
- Mở PowerShell quyền Admin.
- Chạy một trong các lệnh:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB1 -Type DWORD -Value 0 –Force Disable-WindowsOptionalFeature -Online -FeatureName smb1protocol Set-SmbServerConfiguration -EnableSMB1Protocol $false Remove-WindowsFeature -Name FS-SMB1 (trên Server)

- Khởi động lại hệ thống.
5. Dùng Registry Editor
Dành cho Server không có PowerShell (như Windows Server 2003), cũng dùng được cho client.
Cảnh báo: Tiến hành thận trọng, tự chịu rủi ro. Sửa registry sai có thể hỏng hệ thống, dữ liệu, mạng.
- Mở Regedit quyền Admin.

- Điều hướng đến:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters

- Bên phải, double-click SMB1 đặt giá trị 0. Một số hệ thống (như Win 7) có thể phải tạo mới DWORD (32-bit) tên SMB1 giá trị 0.
6. Dùng Group Policy Editor (Cấp Tổ Chức)
Vô hiệu hóa SMB 1 Server
- Mở Group Policy Management Console, chuột phải GPO → Edit.
- Điều hướng:
Computer Configuration >> Preferences >> Windows Settings
- Chuột phải Registry → Registry Item.

- Nhập:
Action: Create Hive: HKEY_LOCAL_MACHINE Key Path: SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters Value name: SMB1 Value type: REG_DWORD Value data: 0

- Apply và restart.
Vô hiệu hóa SMB1 Client
- Mở Group Policy Management Console, chuột phải GPO → Edit.
- Điều hướng:
Computer Configuration >> Preferences >> Windows Settings
- Chuột phải Registry → New Registry Item.
- Nhập:
Action: Update Hive: HKEY_LOCAL_MACHINE Key Path: SYSTEM\CurrentControlSet\services\mrxsmb10 Value name: Start Value type: REG_DWORD Value data: 4

- Apply, mở DependOnService Properties.
- Thiết lập:
Action: Replace Hive: HKEY_LOCAL_MACHINE Key Path: SYSTEM\CurrentControlSet\Services\LanmanWorkstation Value name: DependOnService Value type: REG_MULTI_SZ Value data: Bowser MRxSmb20 NSI

- Apply và reboot. Giao diện cuối cùng như hình.

Vô Hiệu Hóa SMBv2 Hoặc SMBv3 - Không Nên Làm
Một số người vì sợ SMB 1 mà tắt SMBv2/3 - việc này không cần thiết và gây hại. Nếu tắt SMBv2/3, bạn sẽ mất:
- Local caching
- Chia sẻ file mạng lớn
- Failover
- Symbolic links
- Ethernet 10GB
- Giới hạn băng thông
- Multichannel fault-tolerance
- Cải tiến bảo mật và mã hóa 3 thập kỷ qua
Trường Hợp Bắt Buộc Phải Dùng SMB1
- Máy chạy Windows XP hoặc Windows Server cũ.
- Phần mềm quản lý cũ yêu cầu duyệt qua Network Neighborhood.
- Máy in cũ với firmware cổ xưa để "scan to share".
Chỉ dùng SMB1 khi không có cách nào khác. Nếu ứng dụng/thiết bị yêu cầu SMBv1, hãy tìm giải pháp thay thế (có vẻ tốn kém bây giờ nhưng có lợi lâu dài - hỏi người/doanh nghiệp từng bị WannaCry).
Nếu có thắc mắc hoặc đóng góp, đừng quên comment bên dưới!