กลไกการหมุนเวียนรหัสผ่านในตัวของ Microsoft ได้รับการออกแบบมาเพื่อปกป้องข้อมูลประจำตัวที่ไม่ใช่ของมนุษย์ (NHIs) ในสถานที่ เช่น บัญชีเครื่องใน Active Directory (AD) มองเผินๆ ดูเหมือนระบบป้องกันที่แข็งแกร่ง ทำงานอัตโนมัติ มีกำหนดเวลา และมีโครงสร้างที่ชัดเจนเพื่อลดความเสี่ยงด้านความปลอดภัย อย่างไรก็ตาม ระบบป้องกันนี้สามารถถูกบ่อนทำลายได้ ทำให้ผู้โจมตีสามารถสร้างฐานที่มั่นได้อย่างต่อเนื่อง
ฝ่ายตรงข้ามสามารถบงการกระบวนการหมุนเวียนทั่วทั้งสภาพแวดล้อมหรือบัญชีเครื่องเฉพาะผ่านการโจมตีแบบ Man-in-the-Middle (MITM) ผู้โจมตีอาจหลีกเลี่ยงกระบวนการนี้ทั้งหมดได้โดยการแอบอ้างรหัสผ่านบัญชีเครื่องและเปลี่ยนรหัสผ่านโดยตรง ส่งผลให้กลไกการหมุนเวียนถูกแฮ็กโดยไม่รบกวนการรับส่งข้อมูลบนเครือข่าย
ไม่ว่าจะโดยการจัดการการซิงโครไนซ์เวลาหรือแก้ไขรหัสผ่านโดยตรง ผู้โจมตีสามารถขัดขวางหรือ ควบคุมกระบวนการหมุนเวียนรหัสผ่านการจัดการเวลาจะป้องกันการหมุนเวียนตามกำหนดการ ในขณะที่การแก้ไขโดยตรงจะทำให้สามารถควบคุมบัญชีเฉพาะได้ ซึ่งทั้งสองอย่างนี้จะทำให้คงอยู่ได้ในระยะยาวและหลีกเลี่ยงการตรวจจับได้
การควบคุมความปลอดภัยของ NHI ในสถานที่
บัญชีบริการ คือข้อมูลประจำตัวที่ไม่ใช่มนุษย์ ซึ่งใช้เพื่อรันแอปพลิเคชัน บริการ และงานอัตโนมัติในสภาพแวดล้อม AD ภายในองค์กร บัญชีเหล่านี้มักใช้รหัสผ่านแบบคงที่ซึ่งไม่เคยเปลี่ยนแปลง ซึ่งก่อให้เกิดความเสี่ยงด้านความปลอดภัยอย่างมาก เมื่อถูกบุกรุก ผู้โจมตีสามารถใช้ข้อมูลประจำตัวเหล่านี้เพื่อ:
- การโจรกรรม & การเคลื่อนไหวด้านข้าง:ใช้สิทธิ์ของบัญชีในการย้ายแบบด้านข้าง
- การเลื่อนระดับสิทธิ์:การได้รับสิทธิ์การเข้าถึงระดับผู้ดูแลระบบผ่านสิทธิ์ระดับสูง
- ความคงอยู่ระยะยาว:การรักษาการเข้าถึงโดยไม่ถูกตรวจจับหรือหมดอายุ
เพื่อลดความเสี่ยงดังกล่าว การหมุนเวียนรหัสผ่านจะช่วยให้มั่นใจได้ว่าข้อมูลประจำตัวของบัญชีจะเปลี่ยนแปลงเป็นระยะ บัญชีที่ใช้การหมุนเวียนรหัสผ่านมีสองประเภทหลัก:
- บัญชีเครื่องจักร:เป็นตัวแทนของคอมพิวเตอร์ที่เข้าร่วมโดเมน การเปลี่ยนแปลงรหัสผ่านจะได้รับการจัดการโดยระบบปฏิบัติการภายในเครื่อง
- บัญชีบริการที่มีการจัดการ (MSA):ได้รับการออกแบบมาสำหรับบริการและแอปพลิเคชัน การหมุนเวียนรหัสผ่านถูกบังคับใช้โดยตัวควบคุมโดเมน (DC)
| ประเภทบัญชี | จุดมุ่งหมาย | ใครเป็นผู้จัดการการหมุนเวียน? |
| บัญชีเครื่องจักร | คอมพิวเตอร์ การรับรอง ภายในโดเมน | ระบบปฏิบัติการท้องถิ่น |
| MSA แบบสแตนด์อโลน | การตรวจสอบสิทธิ์แอปพลิเคชันเซิร์ฟเวอร์เดียว | ตัวควบคุมโดเมน (DC) |
| กลุ่ม MSAs (gMSAs) | แชร์บนเครื่องหลายเครื่อง | ตัวควบคุมโดเมน (DC) |
| MSA ที่มอบหมาย | การขยาย gMSA ด้วยการควบคุมผู้ดูแลระบบที่มอบหมาย | ตัวควบคุมโดเมน (DC) |
การทำความเข้าใจความแตกต่างเหล่านี้เป็นสิ่งสำคัญ เนื่องจากผู้โจมตีใช้ประโยชน์จากกลไกการหมุนเวียนแตกต่างกันไปตามประเภทบัญชี ตัวอย่างเช่น บัญชีเครื่องอาจถูกแฮ็กผ่านวิธี RPC เช่น MS-SAMR ในขณะที่ MSA จำเป็นต้องมีการจัดการกระบวนการหมุนเวียน DC
เวกเตอร์การโจมตี 1: การปิดใช้งานการหมุนเวียนรหัสผ่านบัญชีเครื่อง
In Active Directoryการหมุนเวียนรหัสผ่านบัญชีเครื่องเป็นความรับผิดชอบของระบบไคลเอนต์ ซึ่งโดยทั่วไปคือโฮสต์ Windows ที่เข้าร่วมโดเมน ระบบปฏิบัติการภายในเครื่องจะหมุนเวียนรหัสผ่านบัญชีเครื่องโดยอัตโนมัติทุก 30 วันตามค่าเริ่มต้น ในการดำเนินการดังกล่าว ระบบจะสื่อสารกับตัวควบคุมโดเมน (DC) จากระยะไกลโดยใช้โปรโตคอลระยะไกลของตัวจัดการบัญชีความปลอดภัย (MS-SAMR) ผ่าน RPC
โปรโตคอลนี้จัดให้มีชุดการดำเนินการด้านการดูแลระบบสำหรับจัดการบัญชีผู้ใช้และคอมพิวเตอร์ใน Active Directoryหนึ่งในฟังก์ชันหลักที่ไคลเอนต์ใช้ในการอัปเดตรหัสผ่านระยะไกลคือ hSamrUnicodeChangePasswordUser2 ซึ่งช่วยให้ไคลเอนต์ที่ผ่านการรับรองสามารถเปลี่ยนรหัสผ่านที่เชื่อมโยงกับบัญชีเครื่องในไดเร็กทอรีได้
กลไกการโจมตี
อย่างไรก็ตาม กลไกนี้อาจถูกแฮ็กได้ เมื่อผู้โจมตีสามารถเข้าถึงบัญชีเครื่องได้ พวกเขาสามารถใช้ MS-SAMR และเรียกใช้งาน hSamrUnicodeChangePasswordUser2 เพื่อแก้ไขรหัสผ่านบัญชีได้โดยตรง Active Directoryโดยไม่แจ้งให้ไคลเอนต์เดิมทราบหรือเกี่ยวข้อง การกระทำนี้จะตัดการซิงโครไนซ์ระหว่างเครื่องที่เข้าร่วมโดเมนและ DC ส่งผลให้เกิดความสัมพันธ์ด้านความน่าเชื่อถือแบบฝ่ายเดียว โดยผู้โจมตีจะควบคุมข้อมูลประจำตัวและโฮสต์ที่ถูกต้องจะถูกล็อกเอาต์
สิ่งนี้ทำลายความไว้วางใจระหว่างเครื่องและ DC ทั้งสองเครื่องจะเก็บสำเนารหัสผ่านไว้ และการแก้ไขโดยไม่ได้รับอนุญาตจะทำให้เกิดความไม่ตรงกัน อ็อบเจ็กต์ AD ยังคงใช้งานได้อย่างไม่มีกำหนด เพื่อให้แน่ใจว่าสามารถเข้าถึงได้อย่างต่อเนื่อง
เมื่อปิดใช้งานการหมุนเวียนแล้ว บัญชีจะยังคงใช้งานได้ แม้ว่าจะไม่มีการเปลี่ยนรหัสผ่านเพิ่มเติมก็ตาม ความน่าเชื่อถือที่ถูกทำลายจะทำให้เครื่องที่ถูกบุกรุกไม่สามารถใช้งานได้
การจัดการการหมุนเวียนรหัสผ่านด้วยการโจมตีตามเวลา
เพื่อปรับปรุงความปลอดภัยของข้อมูลรับรองบริการ Microsoft ได้แนะนำ MSA แบบสแตนด์อโลนใน Windows Server 2008 R2 โดย MSA จะใช้ DC สำหรับการจัดการรหัสผ่าน แต่การรวมศูนย์นี้ทำให้เกิดช่องโหว่การโจมตีรูปแบบใหม่
ผู้โจมตีสามารถชะลอการเปลี่ยนรหัสผ่านตามกำหนดการได้ด้วยการควบคุมเวลาของระบบบน DC หรือโฮสต์บริการ เนื่องจาก AD อาศัยการประทับเวลา การหมุนนาฬิกาย้อนกลับจึงช่วยเลื่อนการหมุนและรักษาการเข้าถึงไว้
เวลาส่งผลต่อการหมุนเวียนรหัสผ่านอย่างไร
Active Directory ใช้แอตทริบิวต์ PwdLastSet เพื่อกำหนดว่าข้อมูลประจำตัวของบัญชีถูกหมุนเวียนครั้งล่าสุดเมื่อใด ไทม์สแตมป์นี้มีความสำคัญอย่างยิ่งต่อการบังคับใช้นโยบายการหมดอายุของรหัสผ่าน การซิงโครไนซ์เวลาที่แม่นยำเป็นสิ่งสำคัญสำหรับการดำเนินงาน AD ซึ่งรวมถึงนโยบายรหัสผ่านและ Kerberos การรับรอง
บทบาทของ NTP ในการซิงโครไนซ์เวลา
โดยทั่วไปองค์กรต่างๆ มักพึ่งพา NTP ภายนอกเพื่อความแม่นยำของเวลา Windows จะใช้ NTP เวอร์ชัน 3 ตามค่าเริ่มต้น ซึ่งไม่มีการป้องกันความสมบูรณ์ของข้อความ
ภาพรวมการซิงโครไนซ์เวลา Windows (w32tm)
Windows Time Service (w32tm) จะซิงโครไนซ์เวลาโดเมน ในกรณีนี้ ตัวควบคุมโดเมนมีสองบทบาท:
- ทำหน้าที่เป็นเซิร์ฟเวอร์เวลาเพื่อแจกจ่ายเวลาให้กับสมาชิกในโดเมน
- ซิงค์กับเซิร์ฟเวอร์ NTP ภายนอกเป็นไคลเอนต์เวลา
พารามิเตอร์ความปลอดภัยที่สำคัญ ได้แก่:
- MaxPosPhaseCorrection และ MaxAllowedPhaseOffset: การปรับเวลาสูงสุดที่อนุญาตต่อการซิงค์
- การกำหนดเวลาที่ปลอดภัย (STS):ใช้ค่าประทับเวลา TLS เพื่อตรวจจับการปลอมแปลง แต่มีข้อจำกัด โดยเฉพาะหลังจาก TLS 1.3
การรบกวนการหมุนเวียนรหัสผ่านผ่านการจัดการเวลาโดเมน
การโจมตีแบบ MITM ระหว่างแหล่ง DC และ NTP สามารถเปลี่ยนเวลาของ DC ได้ทีละน้อยโดยไม่ถูกตรวจจับ w32tm อนุญาตให้มีการแก้ไขได้นานถึง 48 ชั่วโมงต่อการซิงค์หนึ่งครั้ง โดยอัปเดตทุกๆ 64 วินาที
เวกเตอร์การโจมตี 2: การจัดการเวลาของการหมุนรหัสผ่าน MSA
ผู้โจมตีจะจัดการนาฬิกาของ DC ก่อนแล้วจึงกระตุ้นการหมุนรหัสผ่านโดยใช้หนึ่งในวิธีต่อไปนี้:
- การร้องขอโดยตรง:ผู้ใช้หรือบริการที่มีสิทธิ์เหนือบัญชีบริการที่ได้รับการจัดการ
- ทริกเกอร์ธรรมชาติ:อนุญาตให้บัญชีบริการที่ได้รับการจัดการตรวจสอบสิทธิ์อีกครั้งโดยธรรมชาติ
เมื่อข้อมูลประจำตัวถูกหมุนเวียนในขณะที่เวลาของระบบถูกตั้งค่าล่วงหน้าโดยเทียม PwdLastSet จะสะท้อนการประทับเวลาในอนาคต การย้อนเวลากลับจะมีผลทำให้การหมุนเวียนตามกำหนดการครั้งต่อไปล่าช้าออกไปอย่างมีประสิทธิภาพ โดยหลีกเลี่ยงการบังคับใช้
ข้อได้เปรียบที่สำคัญ
สมาชิกโดเมนทั้งหมดจะซิงโครไนซ์กับ DC เพื่อรักษาการตรวจสอบสิทธิ์ Kerberos และลดการตรวจจับให้น้อยที่สุด การซิงโครไนซ์นี้จะช่วยปกปิดการจัดการเวลาจากระบบปลายทาง เพื่อให้แน่ใจว่าบริการจะดำเนินไปอย่างลับๆ และต่อเนื่อง
ผลที่ตามมาของการโจมตี
การโจมตีเหล่านี้อาจนำไปสู่ความคงอยู่ในระยะยาวในสภาพแวดล้อมโดยการหลีกเลี่ยงการควบคุมการหมดอายุผ่านการจัดการประทับเวลา เมื่อผู้โจมตีหมุนเวียนข้อมูลประจำตัวด้วยการตั้งค่าเวลาที่เปลี่ยนแปลง การย้อนกลับในภายหลังจะป้องกันไม่ให้มีการหมุนเวียนเพิ่มเติม ซึ่งส่งผลให้การบังคับใช้ความปลอดภัยเป็นโมฆะ บัญชีที่ถูกบุกรุก ยังคงทำงานด้วยโทเค็นที่ถูกต้องโดยไม่ถูกตรวจพบ
นอกจากความต่อเนื่องแล้ว การจัดการตามเวลาเช่นนี้ยังช่วยให้สามารถหลีกเลี่ยงนโยบายรหัสผ่านและยกระดับสิทธิ์ที่อาจเกิดขึ้นได้ การย้อนกลับของนาฬิการะบบอาจนำไปสู่ความล้มเหลวในการให้บริการเป็นระยะๆ และปัญหาการตรวจสอบสิทธิ์ ซึ่งก่อให้เกิดการหยุดชะงักในการดำเนินงานและทำให้การตรวจจับทำได้ยากขึ้น
กลยุทธ์การบรรเทา
องค์กรต่างๆ ควรใช้การซิงโครไนซ์เวลาที่ปลอดภัยโดยใช้โปรโตคอล NTP ที่ผ่านการตรวจสอบสิทธิ์ เช่น NTPv4 ซึ่งรองรับความสมบูรณ์ของข้อความและการตรวจสอบสิทธิ์ การตรวจสอบบันทึกเหตุการณ์สำคัญสามารถช่วยตรวจจับพฤติกรรมที่ผิดปกติได้:รหัสเหตุการณ์ 4616 (ระบุการเปลี่ยนแปลงเวลา) และรหัสเหตุการณ์ 4742 (ระบุการเปลี่ยนแปลงรหัสผ่านสำหรับบัญชีคอมพิวเตอร์) มีความเกี่ยวข้องเป็นพิเศษ
นอกจากนี้ ควรตรวจสอบรูปแบบ PwdLastSet ที่ผิดปกติในบัญชีบริการและบัญชีเครื่อง ตัวบ่งชี้เหล่านี้สามารถเปิดเผยความพยายามในการควบคุมตารางการหมุนเวียนหรือรักษาการเข้าถึงแบบซ่อนเร้น มาตรการเหล่านี้จะช่วยลดความเสี่ยงของการโจมตีแบบซ่อนเร้นที่อิงตามเวลาได้อย่างมาก

