Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การแก้ไขปัญหา >> ข้อผิดพลาด Windows

SMB1 คืออะไร และทำไมควรปิดใช้งาน

SMB (Server Message Block) เป็นโปรโตคอลชั้นเครือข่าย (network-layered protocol) ใช้หลักบน Windows สำหรับแชร์ไฟล์ พิมพ์ และการสื่อสารระหว่างคอมพิวเตอร์ที่ต่อเครือข่าย โปรโตคอลนี้สร้างโดย IBM/Microsoft และการนำไปใช้ครั้งแรกใน DOS/Windows NT 3.1 หลังจากนั้น SMB เป็นส่วนหนึ่งของ Windows ทุกรุ่น เช่น XP, Vista, 7, 8, 10, 11 รวมถึงรุ่น Server แม้ SMB จะเป็นของ Windows แต่ Linux (ผ่าน SAMBA) และ macOS ก็รองรับ

SMB1 คืออะไร และทำไมควรปิดใช้งาน

กลไกการทำงานของ SMB

อย่างง่ายที่สุด ไคลเอนต์ SMB เชื่อมต่อกับเซิร์ฟเวอร์ SMB ผ่านพอร์ต SMB (พอร์ต 445) เพื่อเข้าถึง SMB-based shares หลังยืนยันตัวตน SMB สำเร็จ เมื่อสร้างการเชื่อมต่อ SMB แล้ว สามารถทำการทำงานร่วมกันไฟล์ แชร์เครื่องพิมพ์ หรือการดำเนินการเครือข่ายอื่นๆ

SMB1 คืออะไร และทำไมควรปิดใช้งาน

ประวัติโปรโตคอล SMB

โปรโตคอล SMB พัฒนาในช่วง 1980s โดยกลุ่มที่ IBM เพื่อตอบสนองความต้องการเครือข่ายที่เปลี่ยนแปลงตลอดปี โปรโตคอล SMB พัฒนาผ่านหลายรุ่น เรียกว่า versions หรือ dialects โปรโตคอลนี้ยังคงเป็นหนึ่งในโปรโตคอลที่ใช้มากที่สุดสำหรับแชร์ทรัพยากรบน LAN หรือที่ทำงาน

Dialects หรือ Versions ของโปรโตคอล SMB

เพื่อเข้ากันได้กับ IT horizon ที่เปลี่ยนแปลงตลอดเวลา โปรโตคอล SMB ผ่านการปรับปรุงมากมายจากการนำไปใช้ครั้งแรก รุ่นที่โดดเด่นที่สุด:

  • SMB 1 สร้างในปี 1984 สำหรับแชร์ไฟล์บน DOS
  • CIFS (Common Internet File System) เปิดตัวปี 1996 โดย Microsoft เป็นรุ่น SMB ของ Microsoft ใน Windows 95
  • 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 พัฒนาในช่วง 1980s โดย IBM และ Microsoft เปลี่ยนชื่อเป็น CIFS พร้อมเพิ่มฟีเจอร์ในช่วง 1990s แม้ในสมัยนั้น SMB 1 ประสบความสำเร็จมาก แต่ไม่ได้พัฒนาสำหรับโลกที่เชื่อมต่อกันในปัจจุบัน (เหมือนซอฟต์แวร์ทุกตัวที่พัฒนาในสมัยนั้น) ผ่านมา 30+ ปีของการปฏิวัติข้อมูล Microsoft deprecated SMBv1 ในปี 2013 และโดยค่าเริ่มต้น ไม่ได้ติดตั้งบน Windows และ Windows Server แล้ว

เนื่องจากเทคโนโลยีล้าสมัย SMBv1 ไม่ปลอดภayah มาก มีช่องโหว่/ exploits มาก และหลายช่องโหว่อนุญาตให้ remote code execution บนเครื่องเป้าหมาย แม้จะมีคำเตือนจากนักเชี่ยวชาญไซเบอร์เซคิวริตี้เกี่ยวกับช่องโหว่ SMB 1 แต่การโจมตี WannaCry ransomware ที่ดัง ทำให้ชัดเจนมาก เพราะโจมตีนั้นมุ่งเป้าช่องโหว่ใน SMBv1

SMB1 คืออะไร และทำไมควรปิดใช้งาน

ผลคือ แนะนำให้ปิดใช้งาน SMB1 รายละเอียดช่องโหว่ SMB1 หาได้ที่บล็อก Malwarebytes ผู้ใช้อาจตรวจสอบช่องโหว่ SMB1 (โดยเฉพาะ EternalBlue) เองด้วย Metasploit

SMB1 คืออะไร และทำไมควรปิดใช้งาน

SMBv2 และ SMBv3

SMBv2 และ SMBv3 เสนอการปรับปรุงต่อไปนี้ให้โปรโตคอล SMB (ซึ่ง SMB 1 ขาด):

  • Pre-authentication Integrity
  • Secure Dialect Negotiation
  • Encryption
  • Insecure guest auth blocking
  • Better message signing

คำถามที่เกิดขึ้นตามธรรมชาติ: หากระบบมี SMBv2 หรือ 3 จะไม่ปิดบังช่องโหว่ SMB 1 บนเครื่องผู้ใช้ได้ไหม? คำตอบคือ ไม่ เพราะการปรับปรุงเหล่านี้ทำงานต่างกันและใช้กลไกต่างกัน หาก SMBv1 เปิดอยู่บนเครื่องที่มี SMBv2 และ 3 อาจทำให้ SMBv2 และ 3 เปราะบาง เพราะ SMB 1 ไม่สามารถควบคุมการโจมตี man-in-the-middle (MiTM) ได้ โจมตีเพียงบล็อก SMBv2 และ 3 ฝั่งตัวเอง และใช้ SMB 1 เพื่อรันโค้ดอันตรายบนเครื่องเป้าหมาย

ผลกระทบจากการปิดใช้งาน SMB 1

เว้นแต่จำเป็นอย่างยิ่ง (สำหรับเครื่องรัน Windows XP หรือแอปพลิเคชัน legacy ที่ใช้ SMB 1) นักเชี่ยวชาญไซเบอร์เซคิวริตี้ทุกคนแนะนำให้ปิด SMBv1 บนระบบและระดับองค์กร หากไม่มีแอปพลิเคชันหรืออุปกรณ์ SMBv1 ในเครือข่าย ไม่มีอะไรได้รับผลกระทบ แต่ไม่ใช่ทุกสถานการณ์ ผู้ดูแล IT อาจพิจารณาสิ่งต่อไปนี้ในการปิด SMB 1:

  • การสื่อสารแบบไม่เข้ารหัสหรือไม่ได้ลงนามระหว่างโฮสต์และแอปพลิเคชัน
  • การสื่อสาร LM และ NTLM
  • การสื่อสารแชร์ไฟล์ระหว่างไคลเอนต์ระดับต่ำ (หรือสูง)
  • การสื่อสารแชร์ไฟล์ระหว่าง OS ต่างๆ (เช่น Linux และ Windows)
  • แอปพลิเคชันซอฟต์แวร์ legacy และแอปพลิเคชันการสื่อสาร SMB แบบคงที่ (เช่น Sophos, NetApp, EMC VNX, SonicWalls, vCenter/vSphere, Juniper Pulse Secure SSO, Aruba, ฯลฯ)
  • เครื่องพิมพ์และ Print servers
  • การสื่อสาร Android กับแอปพลิเคชัน Windows-based
  • ไฟล์ฐานข้อมูล MDB-based (อาจเสียหายกับ SMBv2 SMBv3 และ SMBv1 จำเป็นสำหรับไฟล์เหล่านี้)
  • แอปพลิเคชันสำรองข้อมูล (Backup) หรือ Cloud ที่ใช้ SMB 1

วิธีปิดใช้งาน SMB 1

หลายวิธีสามารถใช้ปิด SMB1 ผู้ใช้เลือกวิธีที่เหมาะกับสถานการณ์

ปิดใช้งานโดยค่าเริ่มต้น (Disabled by Default)

SMBv1 ปิดใช้งานโดยค่าเริ่มต้นบน Windows 10 Fall Creators Update และรุ่นใหม่กว่า SMB 1 ปิดโดยค่าเริ่มต้นบน Windows 11 สำหรับรุ่น Server Windows Server version 1709 (RS3) และใหม่กว่า มี SMB1 ปิดโดยค่าเริ่มต้น วิธีตรวจสอบสถานะ SMB1 ปัจจุบัน:

  1. คลิก Windows ค้นหา PowerShell คลิกขวา เลือก Run as Administrator.SMB1 คืออะไร และทำไมควรปิดใช้งาน
  2. รันคำสั่ง:
    Get-SmbServerConfiguration | Select EnableSMB1Protocol, EnableSMB2Protocol
    SMB1 คืออะไร และทำไมควรปิดใช้งาน

จำไว้ว่า Microsoft รวมการลบ SMB 1 อัตโนมัติผ่าน Windows Updates แต่หากผู้ใช้เปิดใช้งานใหม่ โปรโตคอลอาจไม่ถูกปิดในอนาคต และทำให้เครื่องเปราะบาง

ใช้ Control Panel ของ Windows 10, 8, หรือ 7

  1. คลิก Windows ค้นหาและเปิด Control Panel.SMB1 คืออะไร และทำไมควรปิดใช้งาน
  2. เลือก Programs แล้วเปิด Turn Windows Features on or off.SMB1 คืออะไร และทำไมควรปิดใช้งาน
  3. เอาติ๊ก SMB 1.0/CIFS File Sharing Support ออก คลิก Apply.SMB1 คืออะไร และทำไมควรปิดใช้งาน
  4. รีสตาร์ท ระบบ SMB 1 จะถูกปิดใช้งาน.SMB1 คืออะไร และทำไมควรปิดใช้งาน

ใช้เมนู Optional Features ของ Windows 11

  1. คลิกขวา Windows เปิด Settings.SMB1 คืออะไร และทำไมควรปิดใช้งาน
  2. ในแผงซ้าย ไป Apps แล้วแผงขวา เปิด Optional Features.SMB1 คืออะไร และทำไมควรปิดใช้งาน
  3. เลื่อนลง ภายใต้ Related Settings คลิก More Windows Features.SMB1 คืออะไร และทำไมควรปิดใช้งาน
  4. ในเมนูที่แสดง เอาติ๊ก SMB 1.0/CIFS File Sharing Support ออก คลิก Apply.SMB1 คืออะไร และทำไมควรปิดใช้งาน
  5. รีสตาร์ท PC หลังรีสตาร์ท SMBv1 จะถูกปิดใช้งานบน PC

ใช้ PowerShell

สองวิธีข้างต้นอาจตอบสนองผู้ใช้ส่วนใหญ่ แต่บนระบบ Server แอดมินอาจต้องใช้ PowerShell (แม้ขั้นตอนก็ทำงานได้บนเครื่องไคลเอนต์)

  1. คลิก Windows ค้นหา PowerShell คลิกขวา เลือก Run as Administrator
  2. รันคำสั่ง:
    Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB1 -Type DWORD -Value 0 –Force or Disable-WindowsOptionalFeature -Online -FeatureName smb1protocol or Set-SmbServerConfiguration -EnableSMB1Protocol $false or on server Remove-WindowsFeature -Name FS-SMB1 or Set-SmbServerConfiguration -EnableSMB1Protocol $false
    SMB1 คืออะไร และทำไมควรปิดใช้งาน
  3. รีสตาร์ท ระบบ หลังรีสตาร์ท SMB 1 ของระบบจะถูกปิดใช้งาน

ใช้ Registry Editor ของระบบ

แอดมินบน Server ที่ไม่มี PowerShell (เช่น Windows Server 2003) อาจปิด SMB 1 โดย Registry Editor แม้ขั้นตอนทำงานได้บนเครื่องไคลเอนต์

คำเตือน:

ดำเนินการด้วยความระมัดระวังสูงสุด และรับผิดชอบเอง เนื่องจากแก้ไข Registry ของระบบเป็นงานที่ต้องมีความเชี่ยวชาญ หากทำไม่ถูกต้อง อาจทำลายระบบ ข้อมูล หรือเครือข่าย

  1. คลิก Windows, ค้นหา Regedit คลิกขวา เลือก Run as Administrator.SMB1 คืออะไร และทำไมควรปิดใช้งาน
  2. ไปที่พาธ:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
    SMB1 คืออะไร และทำไมควรปิดใช้งาน
  3. ในแผงขวา ดับเบิลคลิก SMB1 ตั้ง value เป็น 0 บางผู้ใช้ เช่น Windows 7 อาจต้องสร้าง SMB1 DWORD (32-bit) value และตั้งค่าเป็น 0

ใช้ Group Policy Editor

แม้ขั้นตอนข้างต้นใช้ได้กับเครื่องเดี่ยว แต่เพื่อปิด SMB 1 ระดับองค์กร แอดมินอาจใช้ Group Policy Editor

ปิด SMB 1 Server

  1. เปิด Group Policy Management Console คลิกขวา บน GPO ที่จะเพิ่ม preferences ใหม่
  2. เลือก Edit ไปที่:
    Computer Configuration>> Preferences>> Windows Settings
  3. ในแผงซ้าย คลิกขวา บน Registry เลือก Registry Item.SMB1 คืออะไร และทำไมควรปิดใช้งาน
  4. ใส่ข้อมูล:
    Action: Create Hive: HKEY_LOCAL_MACHINE Key Path: SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters Value name: SMB1 Value type: REG_DWORD Value data: 0
    SMB1 คืออะไร และทำไมควรปิดใช้งาน
  5. Apply การเปลี่ยนแปลง และ รีสตาร์ท ระบบ

ปิด SMB1 Client

  1. เปิด Group Policy Management Console คลิกขวา บน GPO ที่จะเพิ่ม preferences ใหม่
  2. เลือก Edit ไปที่:
    Computer Configuration>> Preferences>> Windows Settings
  3. ในแผงซ้าย คลิกขวา Registry เลือก New Registry Item
  4. ใส่:
    Action: Update Hive: HKEY_LOCAL_MACHINE Key Path: SYSTEM\CurrentControlSet\services\mrxsmb10 Value name: Start Value type: REG_DWORD Value data: 4
    SMB1 คืออะไร และทำไมควรปิดใช้งาน
  5. Apply การเปลี่ยนแปลง และเปิด DependOnService Properties
  6. ตั้งค่าต่อไปนี้และ apply การเปลี่ยนแปลง:
    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 คืออะไร และทำไมควรปิดใช้งาน
  7. มุมมองสุดท้ายควรเป็นดังภาพ และ รีบูท ระบบ.SMB1 คืออะไร และทำไมควรปิดใช้งาน

การปิดใช้งาน SMBv2 หรือ 3

บางผู้ใช้ เนื่องจากระดับภัยคุกคามของ SMB 1 อาจตัดสินใจปิด SMBv2 หรือ 3 ซึ่งไม่จำเป็นในขณะนี้ หากปิด SMBv2 หรือ 3 อาจสูญเสีย:

  • Local caching
  • Large file-sharing network
  • Failover
  • Symbolic links
  • 10GB ethernet
  • Bandwidth limitations
  • Multichannel fault-tolerance
  • การปรับปรุงความปลอดภัยและการเข้ารหัส 3 ทศวรรษล่าสุด

ผู้ใช้ที่ผูกมัดต้องใช้ SMB1

สถานการณ์ต่อไปนี้อาจบังคับให้ใช้ SMB 1:

  • ผู้ใช้ Windows XP หรือ Windows Server Machines
  • ผู้ใช้ต้องใช้ซอฟต์แวร์จัดการล้าสมัย ที่ต้องการ system admins เรียกดูผ่าน network neighborhood
  • ผู้ใช้เครื่องพิมพ์เก่าที่มี firmware โบราณ สำหรับ "scan to share"

ใช้ SMB1 ก็ต่อเมื่อไม่มีทางเลือกอื่น หากแอปพลิเคชันหรืออุปกรณ์ต้องการ SMBv1 ควรหาทางเลือกแทน (อาจดูแพงตอนนี้ แต่จะคุ้มค่าในระยะยาว ถามผู้ใช้หรือองค์กรที่เคยโดน WannaCry)

ขอจบที่นี่ หากมีคำถามหรือข้อเสนอแนะ อย่าลืม ping เรา ในคอมเมนต์