GitHub Repojacking Bug Could’ve Allowed Attackers to Takeover Other Users’ Repositories

ช่องโหว่ Repojacking บน GitHub ทำให้ผู้โจมตีสามารถเข้าถึง Repositories ของผู้ใช้รายอื่น

GitHub ได้ทำการแก้ไขช่องโหว่ระดับความรุนแรงสูง ที่อาจถูกนำไปใช้ประโยชน์เพื่อสร้าง repositories ที่เป็นอันตราย เพื่อใช้ในการโจมตีแบบ supply chain attack ได้

เทคนิคดังกล่าวถูกเรียกว่า RepoJacking ซึ่งถูกเปิดเผยโดยนักวิจัยจากบริษัท Checkmarx โดยเป็นวิธีการ bypass กลไกการป้องกันที่ช่วยป้องกันไม่ให้นักพัฒนาดึง repositories ที่ไม่ปลอดภัยที่มีชื่อแบบเดียวกัน โดยช่องโหว่นี้ได้รับการแก้ไขไปแล้วเมื่อวันที่ 19 กันยายน 2565 ที่ผ่านมา

RepoJacking จะเกิดขึ้นเมื่อ creator เดิมทำการเปลี่ยน username ซึ่งอาจทำให้ผู้โจมตีสามารถใช้ username เก่าของ creator รายนั้นเพื่อเผยแพร่ repository ปลอมในชื่อเดียวกันเพื่อที่จะหลอกลวงให้ผู้ใช้งานดาวน์โหลดได้

ถึงแม้ว่า GitHub จะมีมาตรการจัดการกับ open source project ที่มีการเปลี่ยน account หรือลบทิ้งมากกว่า 100 รายการในแต่ละสัปดาห์ แต่ Checkmarx ก็พบว่ายังมีวิธีการหลีกเลี่ยงการจัดการลักษณะนี้ได้โดยการใช้ฟีเจอร์ "repository transfer"

โดยมีวิธีการทำได้ดังนี้

ผู้โจมตีจะทำการสร้าง repository ที่มีชื่อเดียวกับ repository ที่ถูกเปลี่ยนแปลงออกไปเช่น "repo" โดยใช้ชื่อ user name ว่า "helper" ซึ่งจริง ๆ เจ้าของเดิมของ repository ดังกล่าวใช้ชื่อ user name ว่า "victim"
จากนั้น "helper" จะโอนความเป็นเจ้าของของ repository "repo" ไปยังบัญชีที่สองด้วยชื่อ user name ว่า "attacker"
จากนั้น user name "attacker" จะเปลี่ยนชื่อผู้ใช้กลับไปเป็น "victim"
ซึ่งจะทำให้ namespace ของ "victim/repo" จะกลายเป็นอยู่ภายใต้การควบคุมของผู้โจมตีทันที


โดยหากสามารถทำได้สำเร็จ อาจทำให้ผู้โจมตีสามารถใช้งาน repositories ดังกล่าวเพื่อการโจมตีแบบ supply chain attack ได้

Aviad Gershon นักวิจัยของ Checkmarx ระบุว่า "หากไม่ได้รับการแก้ไขอย่างถูกต้อง user name ที่ถูกเปลี่ยนทั้งหมดบน GitHub มีความเสี่ยงต่อการถูกนำไปใช้ในการโจมตีในลักษณะนี้ ซึ่งรวมถึงแพ็คเกจมากกว่า 10,000 แพ็คเกจบน Go, Swift และ Packagist อีกด้วย"

ที่มา : thehackernews.com