
ระบบ Role-Based Access Control (RBAC) ของ Microsoft Azure ถูกพบว่ามีช่องโหว่ด้านความปลอดภัยระดับ Critical ที่อาจทำให้เครือข่ายขององค์กรเสี่ยงต่อการเข้าถึงโดยไม่ได้รับอนุญาต
นักวิจัยด้านความปลอดภัยได้ค้นพบการทำงานร่วมกันของ Built-In Roles ที่มีสิทธิ์สูงเกินความจำเป็น และช่องโหว่ในการทำงานของ API ที่สามารถสร้างช่องทางในการโจมตีที่เป็นอันตรายสำหรับผู้โจมตีที่พยายามโจมตีระบบคลาวด์ และเครือข่ายภายในองค์กรได้
ช่องโหว่เหล่านี้เกี่ยวข้องกับระบบ Role-Based Access Control (RBAC) ของ Azure ที่ทำหน้าที่ควบคุมสิทธิ์การเข้าถึงบริการต่าง ๆ ของแพลตฟอร์มคลาวด์
สิ่งที่ดูเหมือนจะเป็นช่องโหว่ที่สำคัญในการออกแบบระบบ ได้ส่งผลให้ Role ที่สร้างขึ้นสำหรับบริการต่าง ๆ ให้สิทธิ์การเข้าถึงครอบคลุมมากกว่าที่ระบุไว้ในชื่อ และคำอธิบายโดยไม่ได้ตั้งใจ
Role เหล่านี้ ถูกออกแบบมาเพื่อใช้งานบริหารแบบจำกัด แต่กลับให้สิทธิ์การเข้าถึงเพื่ออ่านข้อมูลทั้งหมดของ Azure ทั้งระบบ

การค้นพบนี้ครอบคลุม Built-In Roles ของ Azure จำนวน 10 Role ที่มีสิทธิ์ "*/read" ที่เป็นปัญหา ซึ่งทำให้ผู้ใช้สามารถเข้าถึง Azure ใน action ต่าง ๆ ได้มากถึง 9,618 รูปแบบ
Roles ต่าง ๆ เช่น Managed Applications Reader, Log Analytics Reader และ Monitoring Reader ทำให้ผู้ดูแลระบบเข้าใจผิดว่าเป็นการให้สิทธิ์การเข้าถึงที่จำกัด และเฉพาะเจาะจงสำหรับแต่ละบริการเท่านั้น แต่ในความเป็นจริงแล้ว Roles เหล่านี้กลับให้สิทธิ์การอ่านข้อมูลทั้งหมดจากทรัพยากรต่าง ๆ ใน Azure ภายในขอบเขตที่กำหนดไว้
นักวิเคราะห์จาก Token ระบุว่า Roles ที่มีสิทธิ์เกินความจำเป็นเหล่านี้ก่อให้เกิดความเสี่ยงด้านความปลอดภัยอย่างมีนัยสำคัญที่มากกว่าแค่การเปิดเผยข้อมูลทั่วไป
สิทธิ์ในการอ่านข้อมูลได้ทั้งหมดนี้ (universal read permissions) อาจทำให้ผู้โจมตีสามารถสำรวจ storage accounts, database instances, network configurations และ backup vaults ได้ ทำให้ผู้โจมตีสามารถรวบรวมข้อมูลเชิงลึกอย่างละเอียดเพื่อวางแผนการโจมตีขั้นสูงต่อไปได้
ที่น่ากังวลยิ่งกว่านั้นคือ สิทธิ์เหล่านี้สามารถเข้าถึงการ deployment scripts, automation accounts และ web application configurations ซึ่งส่วนใหญ่มักจะมีข้อมูล credentials และตัวแปรระบบสำคัญต่าง ๆ (sensitive environment variables) ฝังอยู่ภายใน
นักวิจัยยังได้ค้นพบช่องโหว่อีกรายการหนึ่งที่มีความเกี่ยวข้องในการใช้งาน API ของ Azure ที่อาจทำให้ผู้ใช้ที่มีสิทธิ์แค่อ่านข้อมูลพื้นฐานก็สามารถดึงเอา VPN Keys แบบ pre-shared ออกไปได้ ผ่าน endpoint เฉพาะ
ช่องโหว่นี้เกิดจากการบังคับใช้สิทธิ์ที่ไม่สอดคล้องกันในแต่ละ HTTP method โดยปกติแล้ว Azure จะจำกัดการดำเนินการที่ sensitive ให้ทำได้เฉพาะผ่าน POST requests เท่านั้น แต่กลับพลาดโดยการนำฟังก์ชันการดึง VPN key ไปใช้งานผ่าน GET request แทน ซึ่งผิดจากแนวทางปกติ
การโจมตีแบบ Chain Exploitation
จุดที่อันตรายที่สุดของช่องโหว่เหล่านี้ คือการที่มันสามารถถูกนำมารวมกันเพื่อสร้างการโจมตีแบบ chain ที่สามารถมุ่งเป้าไปยังสภาพแวดล้อมของ cloud แบบ hybrid ได้อย่างสมบูรณ์

ผู้โจมตีที่สามารถเข้าควบคุมบัญชีของผู้ใช้ที่ดูเหมือนมีสิทธิ์จำกัดได้ อาจใช้ roles ที่มีสิทธิ์เกินความจำเป็นเหล่านี้ในการสืบค้นข้อมูล และจากนั้นก็ใช้ช่องโหว่ VPN key ที่รั่วไหลเพื่อเข้าถึงเครือข่าย
ขั้นตอนแรกของการโจมตีจะเริ่มต้นขึ้นเมื่อผู้โจมตีได้ข้อมูล credentials ของบัญชีผู้ใช้ที่มี roles ที่เป็นปัญหาเหล่านั้น
ด้วยการใช้สิทธิ์ในการอ่านข้อมูลทั้งหมด ผู้โจมตีสามารถสแกน และระบุการตั้งค่าของ Azure VPN Gateway และดึงเอา pre-shared keys ออกมาผ่าน API endpoint ที่มีช่องโหว่
เมื่อได้ keys เหล่านี้แล้ว ผู้โจมตีจะสามารถสร้างการเชื่อมต่อ VPN แบบ site-to-site ปลอมขึ้นมาได้ ทำให้สามารถเชื่อมต่อเข้าสู่โครงสร้างพื้นฐานเครือข่ายภายในขององค์กร และเข้าถึงทรัพยากรทั้งบนระบบคลาวด์ และระบบภายในองค์กรที่มีการเชื่อมต่อผ่าน gateway เดียวกันได้
Microsoft ยอมรับว่าช่องโหว่ VPN นี้ มี severity ระดับ Important และได้มอบเงินรางวัล 7,500 ดอลลาร์ให้กับนักวิจัยที่ค้นพบช่องโหว่ดังกล่าว อย่างไรก็ตาม ช่องโหว่จาก roles ที่มีสิทธิ์สูงเกินความจำเป็นนั้นกลับถูกจัดอยู่ในระดับ low severity และ Microsoft เลือกที่จะอัปเดตเอกสารประกอบแทนการแก้ไขปัญหาเรื่องสิทธิ์ที่เป็นต้นเหตุ
ที่มา : cybersecuritynews

You must be logged in to post a comment.