Computer >> Hướng Dẫn Máy Tính >  >> Xử Lý Sự Cố >> Lỗi Windows

SMB1 Là Gì? Tại Sao Nên Vô Hiệu Hóa Nó?

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ợ.

SMB1 Là Gì? Tại Sao Nên Vô Hiệu Hóa Nó?

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.

SMB1 Là Gì? Tại Sao Nên Vô Hiệu Hóa Nó?

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.

SMB1 Là Gì? Tại Sao Nên Vô Hiệu Hóa Nó? SMB1 Là Gì? Tại Sao Nên Vô Hiệu Hóa Nó?

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:

  1. Tìm PowerShell, chuột phải → Chạy với quyền Admin.
    SMB1 Là Gì? Tại Sao Nên Vô Hiệu Hóa Nó?
  2. Chạy lệnh:
    Get-SmbServerConfiguration | Select EnableSMB1Protocol, EnableSMB2Protocol
    SMB1 Là Gì? Tại Sao Nên Vô Hiệu Hóa Nó?

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)

  1. Mở Control Panel.
    SMB1 Là Gì? Tại Sao Nên Vô Hiệu Hóa Nó?
  2. Chọn Chương trình (Programs) → Bật/Tắt tính năng Windows (Turn Windows Features on or off).
    SMB1 Là Gì? Tại Sao Nên Vô Hiệu Hóa Nó?
  3. Bỏ chọn Hỗ trợ chia sẻ file SMB 1.0/CIFS → Áp dụng (Apply).
    SMB1 Là Gì? Tại Sao Nên Vô Hiệu Hóa Nó?
  4. Khởi động lại máy. SMB 1 sẽ bị vô hiệu hóa.
    SMB1 Là Gì? Tại Sao Nên Vô Hiệu Hóa Nó?

3. Dùng Optional Features (Windows 11)

  1. Chuột phải Windows → Settings.
    SMB1 Là Gì? Tại Sao Nên Vô Hiệu Hóa Nó?
  2. Bên trái: Apps, bên phải: Optional Features.
    SMB1 Là Gì? Tại Sao Nên Vô Hiệu Hóa Nó?
  3. Kéo xuống, dưới Related Settings click More Windows Features.
    SMB1 Là Gì? Tại Sao Nên Vô Hiệu Hóa Nó?
  4. Bỏ chọn Hỗ trợ chia sẻ file SMB 1.0/CIFS → Apply.
    SMB1 Là Gì? Tại Sao Nên Vô Hiệu Hóa Nó?
  5. Khởi động lại PC.

4. Dùng PowerShell

Phương pháp cho server (cũng dùng được cho client):

  1. Mở PowerShell quyền Admin.
  2. 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)
    SMB1 Là Gì? Tại Sao Nên Vô Hiệu Hóa Nó?
  3. 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.

  1. Mở Regedit quyền Admin.
    SMB1 Là Gì? Tại Sao Nên Vô Hiệu Hóa Nó?
  2. Điều hướng đến:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
    SMB1 Là Gì? Tại Sao Nên Vô Hiệu Hóa Nó?
  3. 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

  1. Mở Group Policy Management Console, chuột phải GPO → Edit.
  2. Điều hướng:
    Computer Configuration >> Preferences >> Windows Settings
  3. Chuột phải Registry → Registry Item.
    SMB1 Là Gì? Tại Sao Nên Vô Hiệu Hóa Nó?
  4. 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
    SMB1 Là Gì? Tại Sao Nên Vô Hiệu Hóa Nó?
  5. Apply và restart.

Vô hiệu hóa SMB1 Client

  1. Mở Group Policy Management Console, chuột phải GPO → Edit.
  2. Điều hướng:
    Computer Configuration >> Preferences >> Windows Settings
  3. Chuột phải Registry → New Registry Item.
  4. Nhập:
    Action: Update
    Hive: HKEY_LOCAL_MACHINE
    Key Path: SYSTEM\CurrentControlSet\services\mrxsmb10
    Value name: Start
    Value type: REG_DWORD
    Value data: 4
    SMB1 Là Gì? Tại Sao Nên Vô Hiệu Hóa Nó?
  5. Apply, mở DependOnService Properties.
  6. 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
    SMB1 Là Gì? Tại Sao Nên Vô Hiệu Hóa Nó?
  7. Apply và reboot. Giao diện cuối cùng như hình.
    SMB1 Là Gì? Tại Sao Nên Vô Hiệu Hóa Nó?

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!