Computer >> คอมพิวเตอร์ >  >> ระบบ >> Windows Server

วิธีปิดการใช้งานการรับรองความถูกต้อง NTLM ในโดเมน Windows

NTLM (NT LAN Manager) ถูกใช้เป็นโปรโตคอลการตรวจสอบสิทธิ์พื้นฐานของ Microsoft มาเป็นเวลานาน:ตั้งแต่ Windows NT แม้ว่า Microsoft ได้แนะนำโปรโตคอลการตรวจสอบสิทธิ์ Kerberos ที่ปลอดภัยกว่าใน Windows 2000 แต่ NTLM (โดยทั่วไปคือ NTLMv2) ก็ยังคงใช้กันอย่างแพร่หลายสำหรับการรับรองความถูกต้องบนเครือข่ายโดเมนของ Windows ในบทความนี้ เราจะพิจารณาวิธีปิดใช้งานโปรโตคอล NTLMv1 และ NTLMv2 และเริ่มใช้ Kerberos ในโดเมน Active Directory ของคุณ

หลัก NTLMv1 ปัญหา:

  • การเข้ารหัสที่อ่อนแอ
  • การจัดเก็บแฮชรหัสผ่านในหน่วยความจำของบริการ LSA ที่สามารถดึงข้อมูลโดยใช้เครื่องมือต่างๆ (เช่น mimikatz) จากนั้นแฮชอาจถูกใช้สำหรับการโจมตีเพิ่มเติม
  • ไม่มีการตรวจสอบความถูกต้องร่วมกันระหว่างเซิร์ฟเวอร์และไคลเอนต์ซึ่งส่งผลให้เกิดการโจมตีด้วยการสกัดกั้นข้อมูลและการเข้าถึงทรัพยากรเครือข่ายโดยไม่ได้รับอนุญาต (เครื่องมือบางอย่างเช่น Responder สามารถดักจับข้อมูล NTLM ที่ส่งผ่านเครือข่ายและใช้เพื่อเข้าถึงทรัพยากรเครือข่าย)
  • และช่องโหว่อื่นๆ

บางส่วนได้รับการแก้ไขในเวอร์ชันถัดไป NTLMv2 ซึ่งใช้อัลกอริธึมการเข้ารหัสที่ปลอดภัยยิ่งขึ้นและช่วยป้องกันการโจมตี NTLM ที่เป็นที่นิยม โปรโตคอลการตรวจสอบสิทธิ์ NTLMv1 และ LM ถูกปิดใช้งานโดยค่าเริ่มต้นโดยเริ่มด้วย Windows 7 / Windows Server 2008 R2

การกำหนดค่า GPO เพื่อบังคับ NTLMv2

หากคุณเคยคิดที่จะหยุดการใช้ NTLM ในโดเมนของคุณ ก่อนอื่น คุณต้องแน่ใจว่าคุณไม่ได้ใช้เวอร์ชันที่มีช่องโหว่มากกว่า – NTLMv1 . เครือข่ายของคุณอาจมีอุปกรณ์หรือบริการรุ่นเก่าจำนวนหนึ่งที่ยังคงใช้การตรวจสอบสิทธิ์ NTLMv1 แทน NTLMv2 (หรือ Kerberos) ดังนั้น ก่อนปิดใช้งานโดยสมบูรณ์ โปรดอ่านส่วนการตรวจสอบเหตุการณ์การตรวจสอบสิทธิ์ NTLM ในบทความนี้

ผลิตภัณฑ์โอเพนซอร์สขนาดเล็ก เครื่องสแกนเครือข่ายรุ่นเก่า (ที่บันทึกการสแกนไปยังโฟลเดอร์เครือข่ายที่ใช้ร่วมกัน) อุปกรณ์ NAS บางตัวและฮาร์ดแวร์ ซอฟต์แวร์ และระบบปฏิบัติการเก่าอื่นๆ มีแนวโน้มที่จะมีปัญหาในการตรวจสอบสิทธิ์เมื่อปิดใช้งาน NTLMv1

ก่อนอื่น ผู้ดูแลระบบโดเมนต้องตรวจสอบให้แน่ใจว่าห้ามใช้โปรโตคอล NTLM และ LM สำหรับการตรวจสอบสิทธิ์ในโดเมน เนื่องจากในบางกรณี ผู้โจมตีสามารถใช้คำขอพิเศษเพื่อรับการตอบสนองต่อคำขอ NTLM/LM ได้

คุณตั้งค่าประเภทการตรวจสอบสิทธิ์ที่ต้องการได้โดยใช้นโยบายโดเมน (หรือในเครื่อง) เปิดตัวแก้ไขการจัดการนโยบายกลุ่ม (gpmc.msc) และแก้ไขนโยบายโดเมนเริ่มต้น ไปที่ส่วน GPO การกำหนดค่าคอมพิวเตอร์ -> นโยบาย -> การตั้งค่า Windows -> การตั้งค่าความปลอดภัย -> นโยบายในพื้นที่ -> ตัวเลือกความปลอดภัย และค้นหานโยบายความปลอดภัยเครือข่าย:ระดับการตรวจสอบสิทธิ์ LAN Manager .

วิธีปิดการใช้งานการรับรองความถูกต้อง NTLM ในโดเมน Windows

มี 6 ตัวเลือกในการตั้งค่านโยบาย:

  1. ส่งคำตอบ LM &NTLM;
  2. ส่งการตอบสนอง LM &NTLM – ใช้การรักษาความปลอดภัยเซสชัน NTLMv2 หากมีการเจรจา
  3. ส่งการตอบกลับ NTLM เท่านั้น
  4. ส่งการตอบสนอง NTLMv2 เท่านั้น
  5. ส่งการตอบกลับ NTLMv2 เท่านั้น ปฏิเสธ LM;
  6. ส่งการตอบกลับ NTLMv2 เท่านั้น ปฏิเสธ LM&NTLM

นโยบายของการใช้การพิสูจน์ตัวตน NTLM นั้นกำหนดไว้ตามลำดับของการปรับปรุงความปลอดภัย ตามค่าเริ่มต้น Windows 7 และระบบปฏิบัติการที่ใหม่กว่าจะใช้ตัวเลือก ส่งการตอบสนอง NTLMv2 เท่านั้น . หากเปิดใช้งานตัวเลือกนี้ คอมพิวเตอร์ไคลเอนต์ใช้การรับรองความถูกต้อง NTLMv2 แต่ตัวควบคุมโดเมน AD ยอมรับคำขอ LM, NTLM และ NTLMv2

สามารถใช้ NTLMv2 ได้หากโปรโตคอล Kerberos ไม่ทำงาน สำหรับการดำเนินการบางอย่าง (เช่น เมื่อจัดการกลุ่มและบัญชีในเครื่องบนคอมพิวเตอร์ที่เข้าร่วมโดเมน) หรือในเวิร์กกรุ๊ป

คุณสามารถเปลี่ยนค่านโยบายเป็นตัวเลือก 6 ที่ปลอดภัยที่สุด:“ส่งการตอบกลับ NTLMv2 เท่านั้น ปฏิเสธ LM &NTLM ” หากคุณกำหนดการตั้งค่านี้ในตัวควบคุมโดเมน พวกเขาจะปฏิเสธคำขอ LM และ NTLMv1 ทั้งหมด

คุณยังสามารถปิดใช้งาน NTLMv1 ผ่านรีจิสทรีได้ ในการดำเนินการ ให้สร้างพารามิเตอร์ DWORD ด้วยชื่อ LmCompatibilityLevel และค่า 0-5 ​​ในรีจิสตรีคีย์ HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa . ค่า 5 สอดคล้องกับตัวเลือกนโยบาย “ส่งการตอบสนอง NTLMv2 เท่านั้น ปฏิเสธ LM NTLM”

ตรวจสอบให้แน่ใจว่า ความปลอดภัยของเครือข่าย:อย่าเก็บค่าแฮช LAN Manager ในการเปลี่ยนรหัสผ่านครั้งต่อไป นโยบายเปิดใช้งานในส่วน GPO เดียวกัน เปิดใช้งานโดยค่าเริ่มต้นโดยเริ่มจาก Windows Vista / Windows Server 2008 และป้องกันไม่ให้สร้างแฮช LM

วิธีปิดการใช้งานการรับรองความถูกต้อง NTLM ในโดเมน Windows

อย่าลืมใช้นโยบายนี้กับตัวควบคุมโดเมนของคุณ

หากคุณแน่ใจว่าคุณไม่ได้ใช้ NTLMv1 คุณสามารถดำเนินการต่อไปและลองปิดการใช้งาน NTLMv2 NTLMv2 เป็นโปรโตคอลการพิสูจน์ตัวตนที่ปลอดภัยกว่า แต่ตามหลัง Kerberos มากในแง่ของความปลอดภัย (แม้ว่าจะมีช่องโหว่ใน NTLMv2 น้อยกว่าใน NTLMv1 แต่ก็ยังมีโอกาสจับและนำข้อมูลกลับมาใช้ใหม่ได้ อีกทั้งไม่รองรับ การตรวจสอบร่วมกัน)

ความเสี่ยงหลักของการปิดใช้งาน NTLM คือการใช้งานแบบเดิมหรือแอปพลิเคชันที่กำหนดค่าไม่ถูกต้องซึ่งยังคงใช้การตรวจสอบสิทธิ์ NTLM ได้ ในกรณีนี้ คุณจะต้องอัปเดตหรือกำหนดค่าด้วยวิธีพิเศษเพื่อเปลี่ยนไปใช้ Kerberos

จะเปิดใช้งานการบันทึกการตรวจสอบการตรวจสอบสิทธิ์ NTLM ได้อย่างไร

ก่อนที่คุณจะสามารถปิดใช้งาน NTLM ได้อย่างสมบูรณ์ในโดเมนของคุณและเปลี่ยนเป็น Kerberos ตรวจสอบให้แน่ใจว่าไม่มีแอปเหลืออยู่ในโดเมนที่ต้องใช้และใช้การตรวจสอบสิทธิ์ NTLM

ในการติดตามบัญชีหรือแอปที่ใช้การรับรองความถูกต้อง NTLM คุณสามารถเปิดใช้งานนโยบายการบันทึกการตรวจสอบในคอมพิวเตอร์ทุกเครื่องโดยใช้ GPO ในส่วนการกำหนดค่าคอมพิวเตอร์ -> การตั้งค่า Windows -> การตั้งค่าความปลอดภัย -> นโยบายท้องถิ่น -> ตัวเลือกความปลอดภัย ให้ค้นหาและเปิดใช้งาน ความปลอดภัยเครือข่าย:จำกัด NTLM:ตรวจสอบการตรวจสอบสิทธิ์ NTLM ในโดเมนนี้ นโยบายและตั้งค่าเป็น เปิดใช้งานทั้งหมด

วิธีปิดการใช้งานการรับรองความถูกต้อง NTLM ในโดเมน Windows

ในทำนองเดียวกันเปิดใช้งานนโยบาย ความปลอดภัยของเครือข่าย:จำกัด NTLM:ตรวจสอบการรับส่งข้อมูล NTLM ขาเข้า และตั้งค่าเป็น เปิดใช้งานการตรวจสอบบัญชีโดเมน

วิธีปิดการใช้งานการรับรองความถูกต้อง NTLM ในโดเมน Windows

หลังจากเปิดใช้งานนโยบายเหล่านี้ เหตุการณ์ของการใช้การตรวจสอบสิทธิ์ NTLM จะปรากฏใน บันทึกแอปพลิเคชันและบริการ-> Microsoft -> Windows -> NTLM ส่วนของโปรแกรมดูเหตุการณ์

คุณสามารถวิเคราะห์เหตุการณ์ในแต่ละเซิร์ฟเวอร์หรือรวบรวมไปยัง Windows Event Log Collector ส่วนกลาง

คุณต้องค้นหาเหตุการณ์จากแหล่งที่มาของ Microsoft-Windows-Security-Auditing ด้วยรหัสเหตุการณ์ 4624 – “เข้าสู่ระบบบัญชีสำเร็จแล้ว “. โปรดทราบข้อมูลใน “ข้อมูลการตรวจสอบโดยละเอียด " ส่วน. หากมี NTLM ใน แพ็คเกจการตรวจสอบสิทธิ์ มีค่ามากกว่าโปรโตคอล NTLM ที่ใช้ในการตรวจสอบผู้ใช้รายนี้

ดูค่าของ ชื่อแพ็คเกจ (NTLM เท่านั้น) . บรรทัดนี้แสดงว่ามีการใช้โปรโตคอลใด (LM, NTLMv1 หรือ NTLMv2) สำหรับการตรวจสอบสิทธิ์ ดังนั้น คุณต้องตรวจหาเซิร์ฟเวอร์/แอปพลิเคชันทั้งหมดที่ใช้โปรโตคอลแบบเดิม

วิธีปิดการใช้งานการรับรองความถูกต้อง NTLM ในโดเมน Windows

ตัวอย่างเช่น เมื่อต้องการค้นหาเหตุการณ์การรับรองความถูกต้อง NTLMv1 ทั้งหมดบนตัวควบคุมโดเมนทั้งหมด คุณสามารถใช้สคริปต์ PowerShell ต่อไปนี้:

$ADDCs = Get-ADDomainController -filter
$Now = Get-Date
$Yesterday = $Now.AddDays(-1)
$NewOutputFile = "c:\Events\$($Yesterday.ToString('yyyyddMM'))_AD_NTLMv1_events.log"
function GetEvents($DC){
Write-Host "Searching log on " $DC.HostName
$Events = Get-EventLog "Security" -After $Yesterday.Date -Before $Now.Date -ComputerName $DC.HostName -Message "*V1*" -instanceid 4624
foreach($Event in $Events){
Write-Host $DC.HostName $Event.EventID $Event.TimeGenerated
Out-File -FilePath $NewOutputFile -InputObject "$($Event.EventID), $($Event.MachineName), $($Event.TimeGenerated), $($Event.ReplacementStrings),($Event.message)" -Append
}
}
foreach($DC in $ADDCs){GetEvents($DC)}

หลังจากที่คุณพบผู้ใช้และแอปพลิเคชันที่ใช้ NTLM ในโดเมนของคุณแล้ว ให้ลองเปลี่ยนไปใช้ Kerberos (อาจใช้ SPN) แอปพลิเคชันบางตัวจำเป็นต้องกำหนดค่าใหม่เล็กน้อยเพื่อใช้การรับรองความถูกต้องของ Kerberos (ดูบทความการตรวจสอบสิทธิ์ Kerberos ใน IIS วิธีกำหนดค่าเบราว์เซอร์ต่างๆ สำหรับการตรวจสอบสิทธิ์ Kerberos) จากประสบการณ์ของฉันเอง ฉันเห็นว่าแม้ผลิตภัณฑ์เชิงพาณิชย์ขนาดใหญ่ยังคงใช้ NTLM แทน Kerberos ผลิตภัณฑ์บางอย่างจำเป็นต้องมีการอัปเดตหรือการเปลี่ยนแปลงการกำหนดค่า ทั้งหมดนี้เป็นการตรวจสอบว่าแอปใดใช้การตรวจสอบสิทธิ์ NTLM และตอนนี้คุณมีวิธีการที่เกี่ยวข้องในการระบุซอฟต์แวร์และอุปกรณ์นี้แล้ว

คุณต้องใช้ชื่อ DNS ของเซิร์ฟเวอร์ของคุณแทนที่อยู่ IP สำหรับการตรวจสอบสิทธิ์ Kerberos หากคุณระบุที่อยู่ IP เมื่อเชื่อมต่อกับทรัพยากรของคุณ ระบบจะใช้การตรวจสอบสิทธิ์ NTLM

แอพที่ไม่สามารถใช้ Kerberos อาจถูกเพิ่มลงในข้อยกเว้น ซึ่งจะทำให้พวกเขาใช้การรับรองความถูกต้อง NTLM แม้ว่าจะปิดใช้งานในระดับโดเมนก็ตาม ในการดำเนินการ ความปลอดภัยของเครือข่าย:จำกัด NTLM:เพิ่มข้อยกเว้นของเซิร์ฟเวอร์สำหรับการตรวจสอบสิทธิ์ NTLM ในโดเมนนี้ มีการใช้นโยบาย เพิ่มชื่อของเซิร์ฟเวอร์ที่สามารถใช้การรับรองความถูกต้อง NTLM ในรายการข้อยกเว้นด้วย ตามหลักการแล้ว รายการข้อยกเว้นนี้ควรว่างเปล่า คุณสามารถใช้สัญลักษณ์แทน * .

วิธีปิดการใช้งานการรับรองความถูกต้อง NTLM ในโดเมน Windows

จะจำกัด NTLM ในโดเมน Active Directory ได้อย่างไร

หากต้องการตรวจสอบว่าการตรวจสอบสิทธิ์โดยไม่ใช้ NTLM ทำงานอย่างไรสำหรับแอปต่างๆ ในโดเมนของคุณ คุณสามารถเพิ่มบัญชีผู้ใช้ในกลุ่มโดเมน "ผู้ใช้ที่ได้รับการป้องกัน" (ใช้งานได้ตั้งแต่ Windows Server 2012 R2) สมาชิกของกลุ่มความปลอดภัยนี้สามารถรับรองความถูกต้องได้โดยใช้ Kerberos เท่านั้น (ไม่อนุญาตให้ใช้ NTLM, Digest Authentication หรือ CredSSP) ดังนั้น คุณจะตรวจสอบได้ว่าการตรวจสอบสิทธิ์ผู้ใช้ Kerberos ทำงานอย่างถูกต้องในแอปต่างๆ หรือไม่

จากนั้น คุณสามารถปิดการใช้งาน NTLM บนโดเมน Active Directory ได้อย่างสมบูรณ์โดยใช้ ความปลอดภัยของเครือข่าย:จำกัด NTLM:การตรวจสอบสิทธิ์ NTLM ในโดเมนนี้ นโยบาย

นโยบายมี 5 ตัวเลือก:

  • ปิดการใช้งาน: นโยบายถูกปิดใช้งาน (อนุญาตการตรวจสอบ NTLM ในโดเมน);
  • ปฏิเสธบัญชีโดเมนไปยังเซิร์ฟเวอร์โดเมน: ตัวควบคุมโดเมนปฏิเสธการพยายามตรวจสอบสิทธิ์ NTLM สำหรับเซิร์ฟเวอร์ทั้งหมดภายใต้บัญชีโดเมน และข้อผิดพลาด "NTLM ถูกบล็อก" ปรากฏขึ้น
  • ปฏิเสธบัญชีโดเมน: ตัวควบคุมโดเมนป้องกันการพยายามตรวจสอบสิทธิ์ NTLM สำหรับบัญชีโดเมนทั้งหมด และข้อผิดพลาด "NTLM ถูกบล็อก" ปรากฏขึ้น
  • ปฏิเสธสำหรับเซิร์ฟเวอร์โดเมน: คำขอตรวจสอบสิทธิ์ NTLM ไม่ได้รับอนุญาตสำหรับเซิร์ฟเวอร์ทั้งหมด เว้นแต่ชื่อเซิร์ฟเวอร์จะอยู่ในรายการข้อยกเว้นในนโยบาย "ความปลอดภัยของเครือข่าย:จำกัด NTLM:เพิ่มข้อยกเว้นเซิร์ฟเวอร์สำหรับการตรวจสอบสิทธิ์ NTLM ในโดเมนนี้"
  • ปฏิเสธทั้งหมด: ตัวควบคุมโดเมนจะบล็อกคำขอ NTLM ทั้งหมดสำหรับเซิร์ฟเวอร์โดเมนและบัญชีทั้งหมด

วิธีปิดการใช้งานการรับรองความถูกต้อง NTLM ในโดเมน Windows

เพื่อปรับปรุงการรักษาความปลอดภัย Active Directory ให้ดียิ่งขึ้น ฉันแนะนำให้อ่านบทความเหล่านี้:การบรรเทาการโจมตีรูปแบบ Mimikatz การรักษาความปลอดภัยบัญชีผู้ดูแลระบบที่มีสิทธิ์ใช้งาน วิธีปิดใช้งาน LLMNR และ NetBIOS ผ่าน TCP/IP