SMB (Server Message Block) เป็นโปรโตคอลระดับเครือข่ายที่ใช้เป็นหลักใน Windows สำหรับการแชร์ไฟล์ เครื่องพิมพ์ และการสื่อสารระหว่างคอมพิวเตอร์ที่เชื่อมต่อกับเครือข่าย โปรโตคอลนี้สร้างขึ้นโดย IBM/Microsoft เป็นหลัก และการใช้งานครั้งแรกถูกสร้างขึ้นใน DOS/ Windows NT 3.1 หลังจากนั้น SMB ก็เป็นส่วนหนึ่งของ Windows เกือบทุกรุ่น เช่น XP, Vista, 7, 8, 10, 11 โปรโตคอล SMB ก็มีอยู่ใน Windows รุ่นเซิร์ฟเวอร์ด้วย แม้ว่าโปรโตคอล SMB จะเป็นแบบเนทีฟของ Windows แต่ยังรองรับโดย Linux (ผ่าน SAMBA) และ macOS
กลไกการทำงานของ SMB
ในรูปแบบที่ง่ายที่สุด เครื่องไคลเอ็นต์ SMB จะเชื่อมต่อกับเซิร์ฟเวอร์ SMB โดยใช้พอร์ต SMP (พอร์ต 445) เพื่อเข้าถึงการแชร์บน SMB หลังจากตรวจสอบสิทธิ์ SMB สำเร็จแล้ว เมื่อสร้างการเชื่อมต่อ SMB แล้ว การทำงานร่วมกันในไฟล์ การแชร์เครื่องพิมพ์ หรือการดำเนินการอื่นๆ บนเครือข่ายก็สามารถทำได้
ประวัติของโปรโตคอล SMB
โปรโตคอล SMB ได้รับการพัฒนาในปี 1980 โดยกลุ่มที่ IBM เพื่อตอบสนองความต้องการเครือข่ายที่เปลี่ยนแปลงตลอดเวลา โปรโตคอล SMB ได้พัฒนาผ่านรูปแบบต่างๆ ที่เรียกว่าเวอร์ชันหรือภาษาถิ่น โปรโตคอลยังคงเป็นหนึ่งในโปรโตคอลที่ใช้กันมากที่สุดสำหรับการแบ่งปันทรัพยากรบน LAN หรือในที่ทำงาน
ภาษาถิ่นของโปรโตคอล SMB หรือเวอร์ชัน
เพื่อให้เข้ากันได้กับขอบฟ้าไอทีที่เปลี่ยนแปลงตลอดเวลา โปรโตคอล SMB ได้ผ่านการปรับปรุงมากมายจากการใช้งานดั้งเดิมของโปรโตคอล SMB ที่โดดเด่นที่สุดคือ:
- SMB 1 ถูกสร้างขึ้นในปี 1984 เพื่อแชร์ไฟล์บน DOS
- CIFS (หรือ Common Internet File System) เปิดตัวในปี 1996 โดย Microsoft ในฐานะ SMB เวอร์ชันของ Microsoft ใน Windows 95
- SMB 2 เปิดตัวในปี 2549 โดยเป็นส่วนหนึ่งของ Windows Vista และ Windows Server 2008
- SMB 2.1 เปิดตัวในปี 2010 พร้อม Windows Server 2008 R2 และ Windows 7
- SMB 3 เปิดตัวในปี 2555 พร้อม 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 ได้รับการพัฒนาในทศวรรษ 1980 โดย IBM และเปลี่ยนชื่อเป็น CIFS โดย Microsoft พร้อมคุณสมบัติเพิ่มเติมในปี 1990 แม้ว่าในสมัยนั้น SMB 1 จะประสบความสำเร็จอย่างมาก แต่ก็ไม่ได้พัฒนาขึ้นสำหรับโลกที่เชื่อมต่อกันในปัจจุบัน (เช่นเดียวกับแอปพลิเคชันซอฟต์แวร์ทั้งหมดที่พัฒนาขึ้นในยุคนั้น) อย่างไรก็ตาม การปฏิวัติข้อมูลมากกว่า 30 ปีก็ได้ผ่านไปแล้วตั้งแต่นั้นเป็นต้นมา Microsoft คิดค่าเสื่อมราคา SMBv1 ในปี 2013 และตามค่าเริ่มต้นจะไม่มีการติดตั้งในรุ่นเซิร์ฟเวอร์ Windows และ Windows
เนื่องจากเทคโนโลยีที่ล้าสมัย SMBv1 จึงไม่ปลอดภัยอย่างมาก มันมีช่องโหว่/ช่องโหว่มากมาย และหลายช่องโหว่เหล่านี้อนุญาตให้ดำเนินการการควบคุมระยะไกลบนเครื่องเป้าหมาย แม้ว่าจะมีคำเตือนจากผู้เชี่ยวชาญด้านความปลอดภัยในโลกไซเบอร์เกี่ยวกับช่องโหว่ SMB 1 ก็ตาม การโจมตีของแรนซัมแวร์ WannaCry ที่น่าอับอายทำให้ชัดเจนมากเนื่องจากการโจมตีกำหนดเป้าหมายช่องโหว่ที่พบใน SMBv1
จากช่องโหว่เหล่านี้ ขอแนะนำให้ปิดการใช้งาน SMB1 รายละเอียดเพิ่มเติมเกี่ยวกับช่องโหว่ SMB1 สามารถพบได้ในหน้าบล็อก Malwarebytes ผู้ใช้อาจตรวจสอบช่องโหว่ SMB1 ด้วยตนเอง (โดยเฉพาะ EternalBlue) โดยใช้ Metasploit
SMBv2 และ SMBv3
SMBv2 และ SMBv3 มีการปรับปรุงต่อไปนี้สำหรับโปรโตคอล SMB (ในขณะที่ SMB 1 ไม่มีความสามารถเหล่านี้):
- การตรวจสอบสิทธิ์ล่วงหน้า ความสมบูรณ์
- ภาษาถิ่นที่ปลอดภัย การเจรจา
- การเข้ารหัส
- ไม่ปลอดภัย การบล็อกการตรวจสอบสิทธิ์ของแขก
- การเซ็นชื่อข้อความ
ผู้ใช้บางคนอาจมีคำถามธรรมดาๆ หากระบบของพวกเขามี SMBv2 หรือ 3 จะไม่ครอบคลุมถึงช่องโหว่ของ SMB 1 ในเครื่องของผู้ใช้หรือไม่ แต่คำตอบคือไม่ เนื่องจากการปรับปรุง SMB เหล่านี้ทำงานแตกต่างกันและใช้กลไกที่ต่างกัน หากเปิดใช้งาน SMBv1 บนเครื่องที่มี SMBv2 และ 3 นั่นอาจทำให้ SMBv2 และ 3 มีช่องโหว่ เนื่องจาก SMB 1 ไม่สามารถควบคุมการโจมตีแบบ man in the middle (MiTM) ได้ ผู้โจมตีจำเป็นต้องบล็อก SMBv2 และ 3 ที่ด้านข้างของเขา และใช้ SMB 1 เพื่อรันโค้ดที่เป็นอันตรายบนเครื่องเป้าหมายเท่านั้น
ผลกระทบของการปิดใช้งาน SMB 1
เว้นแต่จำเป็นอย่างยิ่ง (สำหรับเครื่องที่ใช้ Windows XP หรือแอปพลิเคชันรุ่นเก่าที่ใช้ SMB 1) ขอแนะนำโดยผู้เชี่ยวชาญด้านความปลอดภัยในโลกไซเบอร์ทั้งหมดให้ปิดการใช้งาน SMBv1 ในระบบและในระดับองค์กร หากไม่มีแอปพลิเคชันหรืออุปกรณ์ SMBv1 ในเครือข่าย จะไม่ได้รับผลกระทบใดๆ แต่จะไม่เป็นเช่นนั้นในทุกสถานการณ์ ทุกสถานการณ์ในการปิดใช้งาน SMBv1 อาจแตกต่างกัน แต่ I.T. ผู้ดูแลระบบ อาจพิจารณาสิ่งต่อไปนี้ในการปิดใช้งาน SMB 1:
- การสื่อสารที่ไม่ได้เข้ารหัสหรือลงชื่อระหว่างโฮสต์และแอปพลิเคชัน
- การสื่อสาร LM และ NTLM
- ไฟล์แชร์การสื่อสารระหว่างไคลเอ็นต์ระดับต่ำ (หรือสูง)
- ไฟล์แชร์การสื่อสารระหว่างระบบปฏิบัติการต่างๆ (เช่น การสื่อสารระหว่าง Linux หรือ Windows)
- แอปพลิเคชันซอฟต์แวร์รุ่นเก่าและแอปพลิเคชันการสื่อสารบน SMB แบบตายตัว (เช่น Sophos, NetApp, EMC VNX, SonicWalls, vCenter/vSphere, Juniper Pulse Secure SSO, Aruba เป็นต้น)
- เครื่องพิมพ์และเซิร์ฟเวอร์การพิมพ์
- การสื่อสาร Android ไปยังแอปพลิเคชันที่ใช้ Windows
- ไฟล์ฐานข้อมูลแบบ MDB (ซึ่งอาจเสียหายกับ SMBv2 SMBv3 และ SMBv1 เป็นสิ่งจำเป็นสำหรับไฟล์เหล่านี้)
- สำรองข้อมูลหรือแอปพลิเคชันระบบคลาวด์โดยใช้ SMB 1
วิธีการปิดการใช้งาน SMB 1
สามารถใช้วิธีการมากมายในการปิดใช้งาน SMB1 และผู้ใช้อาจใช้วิธีที่เหมาะสมกับสถานการณ์ของเขามากที่สุด
ปิดการใช้งานโดยค่าเริ่มต้น
SMBv1 ถูกปิดใช้งานโดยค่าเริ่มต้นใน Windows 10 Fall Creators Update และเวอร์ชันที่ใหม่กว่า SMB 1 ถูกปิดใช้งานโดยค่าเริ่มต้นใน Windows 11 สำหรับรุ่นเซิร์ฟเวอร์ Windows Server เวอร์ชัน 1709 (RS3) และใหม่กว่าจะปิดใช้งาน SMB1 ตามค่าเริ่มต้น วิธีตรวจสอบสถานะปัจจุบันของ SMB1:
- คลิก Windows , ค้นหา PowerShell , คลิกขวา ในนั้นและในเมนูย่อย ให้เลือก เรียกใช้ในฐานะผู้ดูแลระบบ .
- ตอนนี้ ดำเนินการ ต่อไปนี้:
Get-SmbServerConfiguration | Select EnableSMB1Protocol, EnableSMB2Protocol
โปรดทราบว่า Microsoft ได้รวมการลบ SMB 1 โดยอัตโนมัติผ่านการอัปเดต Windows แต่ถ้าผู้ใช้เปิดใช้งานอีกครั้ง โปรโตคอลอาจไม่ถูกปิดใช้งานในอนาคตและทำให้เครื่องมีช่องโหว่
ใช้แผงควบคุมของ Windows 10, 8 หรือ 7
- คลิก Windows , ค้นหาและเปิด แผงควบคุม .
- ตอนนี้ เลือก โปรแกรม และเปิด เปิดหรือปิดคุณลักษณะของ Windows .
- จากนั้นยกเลิกการเลือก รองรับการแชร์ไฟล์ SMB 1.0/CIFS และคลิกที่ สมัคร .
- ตอนนี้ เริ่มต้นใหม่ ระบบและ SMB 1 ของคุณจะถูกปิดใช้งานในระบบของคุณ
ใช้เมนูคุณสมบัติเสริมของ Windows 11
- คลิกขวาที่ Windows และเปิด การตั้งค่า .
- ในบานหน้าต่างด้านซ้าย ให้ไปที่ Apps จากนั้นในบานหน้าต่างด้านขวา ให้เปิด คุณลักษณะเสริม .
- จากนั้นเลื่อนลงมาภายใต้การตั้งค่าที่เกี่ยวข้อง ให้คลิกที่ คุณลักษณะเพิ่มเติมของ Windows .
- ในเมนูที่แสดง ให้ยกเลิกการเลือก SMB 1.0/CIFS File Sharing Support และคลิกที่ สมัคร .
- จากนั้น เริ่มต้นใหม่ พีซีของคุณและเมื่อรีสตาร์ท SMBv1 จะถูกปิดการใช้งานบนพีซี
ใช้ PowerShell
สองวิธีข้างต้นอาจตอบสนองความต้องการของผู้ใช้สูงสุด แต่บนระบบเซิร์ฟเวอร์ ผู้ดูแลระบบอาจต้องใช้ PowerShell (แม้ว่าขั้นตอนอาจใช้ได้ดีบนเครื่องไคลเอนต์)
- คลิก Windows , ค้นหา PowerShell , คลิกขวา และเลือก เรียกใช้ในฐานะผู้ดูแลระบบ .
- ตอนนี้ ดำเนินการ ต่อไปนี้:
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
- จากนั้น เริ่มต้นใหม่ ระบบของคุณและเมื่อรีสตาร์ท SMB 1 ของระบบจะถูกปิดใช้งาน
ใช้ตัวแก้ไขรีจิสทรีของระบบ
ผู้ดูแลระบบบนเครื่องเซิร์ฟเวอร์ที่ไม่มี PowerShell (เช่น Windows Server 2003) อาจปิดใช้งาน SMB 1 โดยใช้ตัวแก้ไขรีจิสทรี แม้ว่าขั้นตอนต่างๆ จะทำงานได้ดีบนเครื่องไคลเอ็นต์
คำเตือน :
ดำเนินการด้วยความระมัดระวังอย่างยิ่งและยอมรับความเสี่ยงเอง เนื่องจากการแก้ไขรีจิสทรีของระบบเป็นงานที่เชี่ยวชาญ และหากไม่ดำเนินการอย่างถูกต้อง คุณอาจเป็นอันตรายต่อระบบ ข้อมูล หรือเครือข่าย
- คลิก Windows ค้นหา Regedit , คลิกขวา ในนั้นและในเมนูย่อย ให้เลือก เรียกใช้ในฐานะผู้ดูแลระบบ .
- ตอนนี้ นำทาง ไปยังเส้นทางต่อไปนี้:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
- จากนั้น ในบานหน้าต่างด้านขวา ให้ดับเบิลคลิก SMB1 และกำหนดค่า ถึง 0 . ผู้ใช้บางราย เช่น Windows 7 อาจต้องสร้างค่า SMB1 DWORD (32 บิต) และตั้งค่าเป็น 0
ใช้ตัวแก้ไขนโยบายกลุ่ม
แม้ว่าขั้นตอนข้างต้นจะใช้ได้กับเครื่องแต่ละเครื่อง แต่เพื่อปิดใช้งาน SMB 1 ในระดับองค์กร ผู้ดูแลระบบอาจใช้ตัวแก้ไขนโยบายกลุ่ม
ปิดการใช้งานเซิร์ฟเวอร์ SMB 1
- เปิด คอนโซลการจัดการนโยบายกลุ่ม และ คลิกขวา ใน GPO ที่ควรเพิ่มการตั้งค่าใหม่
- จากนั้นเลือก แก้ไข และไปที่ กำลังติดตาม :
Computer Configuration>> Preferences>> Windows Settings
- ตอนนี้ ในบานหน้าต่างด้านซ้าย คลิกขวา ใน รีจิสทรี และเลือก รายการรีจิสทรี .
- จากนั้น ป้อน ต่อไปนี้:
Action: Create Hive: HKEY_LOCAL_MACHINE Key Path: SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters Value name: SMB1 Value type: REG_DWORD Value data: 0
- ตอนนี้ สมัคร การเปลี่ยนแปลงและ เริ่มต้นใหม่ ระบบ
ปิดการใช้งานไคลเอ็นต์ SMB1
- เปิด คอนโซลการจัดการนโยบายกลุ่ม และ คลิกขวา ใน GPO ที่ควรเพิ่มการตั้งค่าใหม่
- จากนั้นเลือก แก้ไข และไปที่ กำลังติดตาม :
Computer Configuration>> Preferences>> Windows Settings
- ในบานหน้าต่างด้านซ้าย ให้คลิกขวาที่ รีจิสทรี และเลือก รายการรีจิสทรีใหม่ .
- จากนั้น ป้อน ต่อไปนี้:
Action: Update Hive: HKEY_LOCAL_MACHINE Key Path: SYSTEM\CurrentControlSet\services\mrxsmb10 Value name: Start Value type: REG_DWORD Value data: 4
- ตอนนี้ สมัคร การเปลี่ยนแปลงและเปิด DependOnService คุณสมบัติ .
- จากนั้น ตั้งค่า ต่อไปนี้และ สมัคร การเปลี่ยนแปลง:
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
- มุมมองสุดท้ายควรเป็นด้านล่างและหลังจากนั้น รีบูต ระบบ.
ปิดการใช้งาน SMBv2 หรือ 3
ผู้ใช้บางรายเนื่องจากระดับภัยคุกคามของ SMB 1 อาจตัดสินใจปิดใช้งาน SMBv2 หรือ 3 ซึ่งไม่จำเป็นในขณะนี้ หากผู้ใช้ปิดใช้งาน SMBv2 หรือ 3 เขาอาจสูญเสีย:
- แคชในเครื่อง
- เครือข่ายการแชร์ไฟล์ขนาดใหญ่
- เฟลโอเวอร์
- ลิงก์สัญลักษณ์
- อีเธอร์เน็ต 10GB
- ข้อจำกัดของแบนด์วิดท์
- ความทนทานต่อข้อผิดพลาดหลายช่อง
- พบการปรับปรุงความปลอดภัยและการเข้ารหัสในช่วง 3 ทศวรรษที่ผ่านมา
ผู้ใช้ผูกมัดเพื่อใช้ SMB1
สถานการณ์ต่อไปนี้อาจบังคับให้ผู้ใช้ใช้ SMB 1:
- ผู้ใช้ที่มี Windows XP หรือเครื่องเซิร์ฟเวอร์ Windows
- ผู้ใช้จำเป็นต้องใช้ซอฟต์แวร์การจัดการที่ล้าสมัยซึ่งกำหนดให้ผู้ดูแลระบบต้องเรียกดูผ่านเครือข่ายบริเวณใกล้เคียง
- ผู้ใช้ที่มีเครื่องพิมพ์เครื่องเก่าที่มีเฟิร์มแวร์โบราณสามารถ "สแกนเพื่อแชร์"
ใช้ SMB1 เท่านั้นหากไม่มีทางอื่นที่เป็นไปได้ . หากแอปพลิเคชันหรืออุปกรณ์ต้องใช้ SMBv1 วิธีที่ดีที่สุดคือหาทางเลือกอื่นแทนแอปพลิเคชันหรืออุปกรณ์นั้น (อาจดูมีค่าใช้จ่ายสูงในตอนนี้ แต่จะเป็นประโยชน์ในระยะยาว เพียงแค่ถามผู้ใช้หรือองค์กรที่ประสบปัญหาจาก WannaCry)
นั่นคือมัน หากคุณมีคำถามหรือข้อเสนอแนะ อย่าลืมส่งถึงเรา ในความคิดเห็น