กลุ่มนักวิจัยจากมหาวิทยาลัยหลายแห่งในอเมริกา Cloudflare และ Microsoft ได้พัฒนาเทคนิคการโจมตีแบบใหม่ต่อโปรโตคอล RADIUS ซึ่งผู้ให้บริการโทรคมนาคม บริการคลาวด์ และผู้ให้บริการ VPN ใช้เพื่อยืนยันตัวตน อนุญาต และบันทึกบัญชีของผู้ใช้ การโจมตีนี้มีชื่อรหัสว่า Blast-RADIUS ซึ่งทำให้ผู้ปลอมแปลงสามารถปลอมแปลงการตอบสนองการยืนยันตัวตนของเซิร์ฟเวอร์ RADIUS และสร้างการเชื่อมต่อโดยที่ผู้ใช้ไม่ทราบรหัสผ่าน
ในการใช้ประโยชน์จากช่องโหว่นี้ (CVE-2024-3596) ผู้โจมตีจะต้องสามารถสกัดกั้นการรับส่งข้อมูลและดำเนินการโจมตีแบบ MITM เต็มรูปแบบ ซึ่งทำให้สามารถอ่าน สกัดกั้น บล็อก และแก้ไขแพ็กเก็ต UDP ขาเข้าและขาออกที่ส่งโดยจุดเชื่อมต่อเพื่อขอการรับรองความถูกต้องของไคลเอ็นต์ (Access-Request) และส่งกลับโดยเซิร์ฟเวอร์ RADIUS พร้อมการยืนยันหรือปฏิเสธธุรกรรม การสกัดกั้นคำขอการรับรองความถูกต้องนี้ทำให้ผู้โจมตีสามารถส่งการตอบกลับปลอม โดยระบุประเภทผลลัพธ์ที่แตกต่างกัน (เช่น Access-Accept แทน Access-Reject) ผู้โจมตียังสามารถสกัดกั้นการตอบกลับ Access-Challenge ที่ใช้สำหรับการรับรองความถูกต้องแบบสองปัจจัย และแทนที่ด้วย Access-Accept เพื่อข้ามขั้นตอนการตรวจสอบเพิ่มเติม

การโจมตีนี้อาศัยข้อเท็จจริงที่ว่าโปรโตคอล RADIUS ใช้ UDP เป็นพาหะในการส่งข้อมูล และตรวจสอบความถูกต้องของข้อความที่ส่งโดยใช้อัลกอริธึม MD5 เพื่อตรวจสอบข้อความที่ส่งระหว่างกัน เซิร์ฟเวอร์ เมื่อมีการตรวจสอบสิทธิ์ระหว่างจุดเชื่อมต่อ (access point) และเซิร์ฟเวอร์ RADIUS จะมีการใช้รหัสลับที่จุดเชื่อมต่อและเซิร์ฟเวอร์ RADIUS ทราบ แต่ผู้โจมตีไม่ทราบ ในการตอบสนองต่อคำขอตรวจสอบสิทธิ์ เซิร์ฟเวอร์ RADIUS จะสร้างค่าแฮช MD5 ซึ่งเซิร์ฟเวอร์เชื่อมต่อจะใช้ในการตรวจสอบว่าข้อความนั้นถูกส่งมาจากเซิร์ฟเวอร์ที่ได้รับอนุญาต ค่าแฮช MD5 ประกอบด้วยค่าสุ่มที่ส่งมาในคำขอ ตัวระบุคำขอ คุณลักษณะที่ส่งคืน และรหัสลับ
ในระหว่างการโจมตีแบบ man-in-the-middle ผู้โจมตีสามารถสกัดกั้นตัวระบุและค่าสุ่มที่ส่งมาในคำขอ และยังสามารถคาดการณ์รหัสการดำเนินการ ขนาด และแอตทริบิวต์ได้อีกด้วย ภารกิจหลักคือการสร้างแฮชยืนยันที่ถูกต้องซึ่งสอดคล้องกับผลลัพธ์การดำเนินการที่แก้ไขแล้ว และได้รับการยืนยันโดยการแฮชโดยใช้คีย์ลับ อัลกอริทึม MD5 ไม่สามารถต้านทานการโจมตีแบบบรูทฟอร์ซได้ ทำให้ผู้โจมตีสามารถค้นหาชุดข้อมูลที่มีพารามิเตอร์ที่ต้องการ โดยอาศัยการแพดดิ้งที่ไม่เกี่ยวข้อง ซึ่งมีแฮช MD5 ตรงกับแฮช MD5 ของการตอบสนองเดิม และส่งการตอบสนองปลอมพร้อมรหัสยืนยันความสำเร็จในการตรวจสอบสิทธิ์ (Access-Accept) แทนข้อความแสดงข้อผิดพลาด

เนื่องจากไม่มีการตรวจสอบความถูกต้องและความสมบูรณ์ของข้อมูลเมื่อประมวลผลแพ็กเก็ตคำขอเข้าถึง ในระหว่างการโจมตี คำขอเดิมจาก... เซิร์ฟเวอร์ เพื่อเข้าถึงระบบ ผู้โจมตีสามารถแทรกแอตทริบิวต์ "Proxy-State" เพิ่มเติม ซึ่งจะปรากฏให้เห็นในคำตอบของเซิร์ฟเวอร์ RADIUS เนื้อหาของ "Proxy-State" ถูกเลือกโดยคำนึงถึงการชนกัน เพื่อให้ค่าแฮชตรวจสอบ MD5 ในคำตอบจริงและคำตอบปลอมเหมือนกัน ในระหว่างการทดลอง การค้นหาการชนกันของ MD5 เพื่อทำการโจมตีใช้เวลา 3-6 นาที ซึ่งนานกว่าเวลาหมดอายุโดยทั่วไปที่ 30-60 วินาที อย่างไรก็ตาม เวลาในการค้นหาการชนกันสามารถลดลงได้โดยใช้ฮาร์ดแวร์ที่มีประสิทธิภาพมากขึ้น ใช้ GPU และการประมวลผลแบบขนาน
มาตรการบรรเทาผลกระทบหลักที่เสนอสำหรับช่องโหว่นี้คือการใช้ Extensible Authentication Protocol (EAP, RFC 3579) ซึ่งใช้แอตทริบิวต์ Message-Authenticator สำหรับการตรวจสอบข้อความเพิ่มเติม ส่วนขยายโปรโตคอล (RadSec) ซึ่งช่วยให้สามารถส่งข้อความ RADIUS ผ่านช่องทางที่เข้ารหัสโดยใช้ TLS หรือ DTLS ก็สามารถนำมาใช้เพื่อป้องกันการโจมตีได้เช่นกัน นอกจากนี้ ยังสามารถลดระยะเวลาการหมดเวลาตอบสนองและบล็อกการตอบกลับด้วยแอตทริบิวต์ Proxy-State ได้ การส่งข้อความ RADIUS ผ่าน TCP จะทำให้การโจมตีมีความซับซ้อนมากขึ้น แต่ไม่สามารถกำจัดการโจมตีได้
โค้ดโจมตียังไม่ได้รับการเผยแพร่สู่สาธารณะ แต่โครงการ hashclash ได้รับการปรับปรุงเพื่อปรับปรุงการจับคู่การชนกันของ MD5 โดยคำนึงถึงรายละเอียดของการโจมตี ในเซิร์ฟเวอร์ FreeRADIUS RADIUS ปัญหานี้ได้รับการแก้ไขในเวอร์ชัน 3.0.27 และ 3.2.5 โดยการกำหนดแอตทริบิวต์ Message-Authenticator และเพิ่มการตั้งค่าเพื่อจำกัดการประมวลผลแพ็กเก็ตด้วยแอตทริบิวต์ Proxy-State
ที่มา: opennet.ru
