การรักษาความปลอดภัยบริการใบรับรอง Active Directory (AD CS): เคล็ดลับการกำหนดค่าและการจัดการ
Active Directory Certificate Services (AD CS) เป็นส่วนประกอบของ Microsoft Windows Server ที่ให้บริการโครงสร้างพื้นฐานคีย์สาธารณะ (PKI) ที่ปรับแต่งเอง และบริการตรวจสอบความถูกต้องตามใบรับรอง ช่วยให้ธุรกิจสามารถปรับแต่งและออกใบรับรองดิจิทัลให้กับลูกค้า เซิร์ฟเวอร์ และอุปกรณ์อื่นๆ บนเครือข่ายได้
AD CS ดำเนินกระบวนการจัดการวงจรชีวิตของใบรับรองโดยอัตโนมัติ รวมถึงการออก การต่ออายุ และการเพิกถอนใบรับรองดิจิทัล นอกจากนี้ยังช่วยให้ธุรกิจสามารถกำหนดนโยบายใบรับรองและเทมเพลตใบรับรองของตนเองเพื่อวัตถุประสงค์เฉพาะ ซึ่งสามารถปรับปรุงความปลอดภัยของเครือข่ายได้อย่างมาก ด้วย AD CS ธุรกิจต่างๆ สามารถใช้งานโครงสร้างพื้นฐานคีย์สาธารณะที่ปลอดภัย ซึ่งช่วยให้พวกเขาสามารถปกป้องข้อมูลที่ละเอียดอ่อนบนเครือข่ายของตนได้
การจัดการ AD CS ต้องใช้ความเชี่ยวชาญด้านเทคนิคในระดับสูง และเอกสารประกอบมีน้อย ด้วยเหตุนี้ AD CS จึงได้รับการกำหนดค่าไม่ถูกต้องบ่อยครั้ง ด้วยเหตุนี้ (และอื่นๆ) เราจึงเห็นจำนวนเวกเตอร์การโจมตีที่กำหนดเป้าหมายไปที่ AD CS เพิ่มขึ้น
เคล็ดลับการกำหนดค่าบริการใบรับรอง Active Directory
เมื่อใดก็ตามที่ข้อมูลระบุตัวตนได้รับใบรับรองตามการรับรองความถูกต้อง จะอนุญาตให้พวกเขาตรวจสอบตนเองเป็นเอนทิตีที่ระบุในชื่อทางเลือกของหัวเรื่อง (SAN) ซึ่งโดยทั่วไปจะระบุด้วยชื่อ UPN หรือ DNS ใบรับรองนี้ใช้แทนรหัสผ่านสำหรับการตรวจสอบสิทธิ์เบื้องต้น และยังคงใช้ได้จนกว่าจะหมดอายุหรือถูกเพิกถอน ด้วยเหตุนี้ กลยุทธ์ด้านความปลอดภัยที่พยายามขัดขวางผู้ไม่ประสงค์ดีด้วยการรีเซ็ตรหัสผ่านจะไม่ประสบผลสำเร็จ เนื่องจากผู้โจมตีที่ถือใบรับรองที่ใช้การตรวจสอบความถูกต้องจะยังคงเข้าถึงบัญชีได้อย่างต่อเนื่อง เว้นแต่ใบรับรองจะถูกเพิกถอนด้วย
ด้านล่างนี้คือการตั้งค่าเทมเพลตใบรับรองทั่วไปบางส่วนที่อาจนำไปสู่การกำหนดค่า AD CS ไม่ถูกต้อง
EKU ที่ใช้การรับรองความถูกต้อง
การระบุการใช้คีย์ขั้นสูง (EKU) ที่รองรับการตรวจสอบสิทธิ์ระดับโดเมนเป็นสิ่งสำคัญ ตัวอย่างของ EKU ที่มีคุณสมบัตินี้ ได้แก่:
- วัตถุประสงค์ใดๆ (2.5.29.37.0)
- SubCA (ไม่มี)
- การตรวจสอบสิทธิ์ไคลเอ็นต์ (1.3.6.1.5.5.7.3.2)
- การตรวจสอบสิทธิ์ไคลเอ็นต์ PKINIT (1.3.6.1.5.2.3.4)
- เข้าสู่ระบบสมาร์ทการ์ด (1.3.6.1.4.1.311.20.2.2)
วิธีหนึ่งในการค้นหาเทมเพลตใบรับรองที่เปิดใช้งานคุณสมบัตินี้คือการเข้าถึง MMC Snap-in ของผู้ออกใบรับรอง เชื่อมต่อกับผู้ออกใบรับรอง และการสแกนคอลัมน์วัตถุประสงค์ที่ต้องการสำหรับ EKU การรับรองความถูกต้องเหล่านี้ โปรดทราบว่าใบรับรองปกติยังสามารถนำไปใช้ในทางที่ผิดได้ ตัวอย่างเช่น ความสามารถ Get-SmartCardCertificate ของ PoshADCS สามารถจัดการเทมเพลต ขอใบรับรอง จากนั้นคืนค่าเทมเพลตกลับสู่สถานะดั้งเดิม
“ผู้ลงทะเบียนเรื่องวัสดุ” ธง
หากพบการตั้งค่าสถานะ CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT ในแอตทริบิวต์ mspki-certificate-name-flag ผู้ลงทะเบียนใบรับรองสามารถระบุชื่อเรื่องอื่นได้เมื่อขอใบรับรอง ซึ่งหมายความว่าผู้ใช้ที่ได้รับอนุญาตสามารถขอใบรับรองในนามของผู้ใช้รายอื่นในเครือข่ายได้ แม้ว่าพวกเขาจะเป็นผู้ใช้ที่มีสิทธิ์ก็ตาม หากต้องการตรวจสอบแฟล็กนี้ คุณสามารถตรวจสอบคอนโซลเทมเพลตใบรับรองและเลือกตัวเลือกวิทยุ “จัดหาตามคำขอ” ใต้แท็บชื่อเรื่อง หรือคุณสามารถใช้คำสั่ง PowerShell เพื่อดึงเทมเพลตจาก AD และตรวจสอบว่ามีการตั้งค่าสถานะสำหรับใบรับรองหรือไม่ หากต้องการจัดการการออกใบรับรอง ให้พิจารณาใช้ตัวเลือกที่แนะนำนอกเหนือจากการแก้ไขการกำหนดค่าที่ไม่ถูกต้อง
การอนุมัติผู้จัดการใบรับรอง CA หรือลายเซ็นที่ได้รับอนุญาต
สิ่งสำคัญคือต้องตรวจสอบแท็บข้อกำหนดการออกใบรับรองแต่ละใบรับรองเพื่อดูว่าจำเป็นต้องได้รับอนุญาตจากผู้จัดการผู้ออกใบรับรอง (CA) หรือไม่ การใช้การกำหนดค่าอย่างใดอย่างหนึ่งหรือทั้งสองอย่างสามารถลดความเสี่ยงได้อย่างมากโดยการบังคับใช้การตรวจสอบก่อนการออกใบรับรอง แม้ว่าคุณจะไม่แน่ใจเกี่ยวกับความจำเป็นในการอนุมัติลายเซ็น ขอแนะนำให้มอบอำนาจการอนุมัติจากผู้จัดการใบรับรอง CA สิ่งนี้จะช่วยให้มั่นใจได้ว่าเมื่อใดก็ตามที่มีการร้องขอใบรับรอง ใบรับรองนั้นจะต้องผ่านการตรวจสอบโดยเจ้าหน้าที่ผู้ออกใบรับรองก่อนที่จะออก
สิทธิ์การลงทะเบียน
ตรวจสอบสิทธิ์การลงทะเบียนที่รวมอยู่ในแต่ละเทมเพลต ซึ่งอยู่บนแท็บความปลอดภัย การกำหนดค่าที่ไม่ถูกต้องอาจเป็นปัญหาอย่างมากหากอนุญาตให้กลุ่มขนาดใหญ่ (ที่มีหลักการทั่วไป) ใช้สิทธิ์เหล่านี้ จำเป็นต้องตรวจสอบกลุ่มต่างๆ เช่น ผู้ใช้ที่ได้รับการรับรองความถูกต้อง ผู้ใช้โดเมน หรือกลุ่มผู้ใช้ขนาดใหญ่ที่ไม่ควรมีสิทธิ์ขอใบรับรอง หากมีการระบุกลุ่มดังกล่าว ขอแนะนำให้เพิกถอนสิทธิ์การลงทะเบียนหรือการลงทะเบียนอัตโนมัติ
EDITF_ATTRIBUTESUBJECTALTNAME2 คีย์รีจิสทรี
ตรวจสอบรายการรีจิสทรี EDITF_ATTRIBUTESUBJECALTNAME2 การตั้งค่าเฉพาะนี้เป็นที่น่าสังเกตว่า เมื่อเปิดใช้งานบน CA จะอนุญาตให้เพิ่มข้อมูลที่ผู้ใช้กำหนดส่วนบุคคลลงใน SAN ของใบรับรองการตรวจสอบสิทธิ์ใดๆ ที่ออกให้ (แม้แต่ใบรับรองที่มีหัวข้อที่สร้างขึ้นโดยอัตโนมัติจาก Active Directory)
การตรวจสอบการตั้งค่าที่มีความเสี่ยงโดยใช้ PSPKIAudit
หากต้องการตรวจสอบโครงสร้างพื้นฐาน PKI ของคุณ ให้ใช้เครื่องมือ PSPKIAudit คุณสามารถรับเครื่องมือได้จาก GitHub และนำเข้าโมดูลเพื่อใช้ ดำเนินการคำสั่ง Invoke-PKIAudit เพื่อระบุ Active Directory Certificate Authority ตามด้วยการสอบถามตัวเลือกเริ่มต้น
บทสรุป
มีความเป็นไปได้สูงที่เราจะเห็นการโจมตีบริการ Active Directory Certificate เพิ่มขึ้น ด้วยเหตุนี้ จึงจำเป็นอย่างยิ่งที่จะต้องตรวจสอบการตั้งค่าของคุณทันทีและเป็นระยะๆ เพื่อหาการกำหนดค่าที่ไม่ถูกต้อง และแก้ไขโดยไม่ชักช้า นอกจากนี้ โดยการปฏิบัติตามแนวทางปฏิบัติที่ดีที่สุดของการจัดการใบรับรอง เช่น การรักษาลำดับชั้น PKI ที่มีประสิทธิภาพ การใช้โปรโตคอลการตรวจสอบความถูกต้องที่ปลอดภัย และการตรวจสอบสภาพแวดล้อมเพื่อหาภัยคุกคาม คุณสามารถลดความเสี่ยงด้านความปลอดภัยที่อาจเกิดขึ้นและป้องกันการเข้าถึงระบบของคุณโดยไม่ได้รับอนุญาต
หากคุณต้องการดูว่าแพลตฟอร์มความปลอดภัยของข้อมูล Lepide สามารถช่วยคุณตรวจสอบการเปลี่ยนแปลงการกำหนดค่า AD CS เพื่อป้องกันการละเมิดความปลอดภัยที่สร้างความเสียหายได้อย่างไร กำหนดเวลาสาธิตกับวิศวกรของเราหรือเริ่มการทดลองใช้ฟรีวันนี้
