ช่องโหว่ระดับ Critical ใน GitHub ทำให้ Repositories มากกว่า 4,000 รายการถูกโจมตีด้วยวิธีการ Repojacking

พบช่องโหว่ใหม่ใน GitHub อาจทำให้ repositories หลายพันรายการเสี่ยงต่อการถูกโจมตีด้วยวิธีการ Repojacking

จากรายงานของ Elad Rapoport นักวิจัยด้านความปลอดภัยของ Checkmarx ที่แชร์กับ The Hacker News ระบุว่า ช่องโหว่นี้อาจทำให้ผู้โจมตีสามารถใช้ประโยชน์จาก race condition ในการดำเนินการสร้าง repository และเปลี่ยนชื่อผู้ใช้ของ GitHub
หากสามารถโจมตีช่องโหว่นี้ได้สำเร็จ จะส่งผลกระทบต่อชุมชน open-source โดยการ hijacking แพ็กเกจมากกว่า 4,000 รายการในภาษาต่าง ๆ เช่น Go, PHP และ Swift รวมถึง GitHub actions

ช่องโหว่นี้ได้รับการแก้ไขโดย Microsoft ไปแล้วในวันที่ 1 กันยายน 2023 หลังจากมีการเปิดเผยเมื่อวันที่ 1 มีนาคม 2023

มาตรการป้องกันนี้ จะป้องกันไม่ให้ผู้ใช้งานรายอื่นสามารถสร้าง repository ที่มีชื่อเดียวกับ repository ที่มีการโคลนมากกว่า 100 ครั้ง ในขณะที่บัญชีผู้ใช้นั้นถูกเปลี่ยนชื่อ กล่าวคือ ชื่อผู้ใช้ และชื่อ repository นั้นถือว่า "retired (ไม่สามารถใช้งาน หรือสร้างใหม่ได้)"

ซึ่งหากการป้องกันด้วยวิธีการนี้ถูกหลีกเลี่ยงเพียงเล็กน้อย จะทำให้ผู้โจมตีสามารถสร้างบัญชีใหม่ด้วยชื่อผู้ใช้เดียวกัน และอัปโหลด repositories ที่เป็นอันตราย ซึ่งอาจนำไปสู่การโจมตีแบบ supply chain attack ของซอฟต์แวร์ได้

วิธีการใหม่ที่ถูกระบุโดย Checkmarx คือการใช้ประโยชน์จาก race condition ที่อาจเกิดขึ้นระหว่างการสร้าง repository และการเปลี่ยนชื่อผู้ใช้ เพื่อทำการ repojacking โดยเฉพาะ ซึ่งประกอบด้วยขั้นตอนต่อไปนี้

1. เหยื่อเป็นเจ้าของพื้นที่เก็บข้อมูลชื่อ "victim_user/repo"
2. เหยื่อเปลี่ยนชื่อจาก "victim_user" เป็น "renamed_user"
3. repository "victim_user/repo" ถูก retired แล้ว
4. ผู้โจมตีที่มีชื่อผู้ใช้ "attacker_user" สร้างที่เก็บข้อมูลชื่อ "repo" และเปลี่ยนชื่อผู้ใช้ "attacker_user" เป็น "victim_user" พร้อม ๆ กัน

ขั้นตอนสุดท้ายจะสำเร็จโดยใช้คำขอ API เพื่อสร้าง repository และดักจับคำขอที่เปลี่ยนชื่อสำหรับการเปลี่ยนแปลงชื่อผู้ใช้ โดยวิธีการนี้เกิดขึ้นภายหลังจากที่เมื่อเก้าเดือนก่อน GitHub ได้แก้ไขช่องโหว่ที่คล้ายกันที่อาจทำให้เกิดการโจมตีแบบ repojacking ได้

Rapoport ระบุว่า "การค้นพบช่องโหว่ใหม่นี้ในการสร้าง repository และเปลี่ยนชื่อผู้ใช้ของ GitHub เน้นย้ำถึงความเสี่ยงที่ยังคงมีอยู่ที่เกี่ยวข้องกับกลไลการ retirement namespace repository"

ที่มา : THEHACKERNEWS