Repos หลายล้านรายการบน GitHub มีความเสี่ยงที่จะถูกไฮแจ็ก

Repos หลายล้านรายการบน GitHub มีความเสี่ยงที่จะถูกไฮแจ็ก

Repos หลายล้านรายการบน GitHub มีศักยภาพเสี่ยงต่อการแย่งชิงข้อมูลอัจฉริยะของ PlatoBlockchain ค้นหาแนวตั้ง AI.

ที่เก็บซอฟต์แวร์ระดับองค์กรหลายล้านแห่งบน GitHub มีความเสี่ยง การ repojackingซึ่งเป็นการโจมตีห่วงโซ่อุปทานซอฟต์แวร์ที่ค่อนข้างง่าย โดยที่ผู้คุกคามเปลี่ยนเส้นทางโครงการที่ขึ้นอยู่กับ repo เฉพาะไปยังโครงการที่เป็นอันตรายแทน

ปัญหาเกี่ยวข้องกับวิธีที่ GitHub จัดการกับการพึ่งพาเมื่อผู้ใช้ GitHub หรือองค์กรเปลี่ยนชื่อโครงการหรือโอนความเป็นเจ้าของไปยังหน่วยงานอื่น นักวิจัยจาก Aqua Security กล่าวในรายงานในสัปดาห์นี้

ความเสี่ยงในการเปลี่ยนชื่อ

เพื่อหลีกเลี่ยงไม่ให้โค้ดเสียหาย GitHub จะสร้างลิงก์ระหว่างชื่อ repo เดิมกับชื่อใหม่ ดังนั้นโปรเจ็กต์ทั้งหมดที่ขึ้นอยู่กับ repo เดิมจะถูกเปลี่ยนเส้นทางไปยังชื่อที่เปลี่ยนชื่อใหม่โดยอัตโนมัติ อย่างไรก็ตาม หากองค์กรล้มเหลวในการปกป้องชื่อผู้ใช้เก่าอย่างเพียงพอ ผู้โจมตีสามารถนำชื่อผู้ใช้นั้นกลับมาใช้ใหม่เพื่อสร้างเวอร์ชันโทรจันของที่เก็บดั้งเดิม เพื่อให้โปรเจ็กต์ใด ๆ ที่ใช้ repo จะเริ่มดาวน์โหลดการขึ้นต่อกันจากชื่อผู้ใช้นั้นอีกครั้ง

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

นักวิจัยที่ Aqua เพิ่งตัดสินใจตรวจสอบความชุกของพื้นที่เก็บข้อมูลบน GitHub ที่เสี่ยงต่อการถูก repojacking หรือการแย่งชิงพื้นที่เก็บข้อมูลที่พึ่งพา เนื่องจากนักวิจัยด้านความปลอดภัยบางคนอ้างถึงภัยคุกคาม

ปัญหาที่แพร่หลายอย่างกว้างขวาง

สิ่งที่ Aqua ค้นพบนั้นมีสองเท่า: ที่เก็บข้อมูลดังกล่าวหลายล้านแห่ง รวมถึงที่เป็นของบริษัท เช่น Google และ Lyft นั้นมีอยู่บน GitHub; และเครื่องมือต่างๆ สามารถเข้าถึงได้ง่ายสำหรับผู้โจมตีเพื่อค้นหา repos เหล่านี้และแย่งชิงพวกเขา หนึ่งในเครื่องมือเหล่านี้คือ GHTorrent ซึ่งเป็นโปรเจ็กต์ที่เก็บรักษาบันทึกกิจกรรมสาธารณะทั้งหมด เช่น คำขอคอมมิตและพูล บน GitHub ผู้โจมตีสามารถใช้ GHTorrent เพื่อรวบรวมชื่อ GitHub ของที่เก็บข้อมูลที่องค์กรเคยใช้ก่อนหน้านี้ จากนั้นพวกเขาสามารถลงทะเบียน repo ภายใต้ชื่อผู้ใช้เก่านั้น สร้างพื้นที่เก็บข้อมูลขึ้นใหม่ และส่งมัลแวร์ไปยังโปรเจ็กต์ใดๆ ที่ใช้งาน

โปรเจ็กต์ใดๆ ที่อ้างอิงถึงพื้นที่เก็บข้อมูล GitHub โดยตรงจะมีความเสี่ยงหากเจ้าของพื้นที่เก็บข้อมูลเปลี่ยนแปลงหรือลบชื่อผู้ใช้สำหรับพื้นที่เก็บข้อมูลของตน

“เราได้นำเสนอชุดข้อมูลสำคัญที่ผู้โจมตีสามารถใช้เพื่อรวบรวมชื่อของที่เก็บข้อมูลก่อนหน้านี้ที่เป็นขององค์กร” Yakir Kadkoda นักวิจัยด้านความปลอดภัยของ Aqua Nautilus กล่าว

“องค์กรต่างๆ ไม่ควรสรุปได้ว่าชื่อองค์กรเก่าของตนจะไม่ถูกเปิดเผย” Kadkoda เตือน “เป็นสิ่งสำคัญสำหรับพวกเขาในการอ้างสิทธิ์และเก็บชื่อผู้ใช้เก่าไว้บน GitHub และสแกน URL ของ GitHub และการอ้างอิงในโค้ดเพื่อระบุที่เก็บข้อมูลใด ๆ ที่ผู้โจมตีอาจอ้างสิทธิ์ได้”

ข้ามการป้องกัน

Kadkoda กล่าวว่า GitHub ได้พยายามแก้ไขปัญหานี้โดยป้องกันการสร้างชื่อผู้ใช้และที่เก็บที่ก่อนหน้านี้เป็นเจ้าของ และตอนนี้เปลี่ยนเส้นทางไปยังโครงการอื่น ๆ GitHub อีกด้วย ได้นำกลไกมาใช้ เมื่อหลายปีก่อนเพื่อเลิกใช้เนมสเปซพื้นที่เก็บข้อมูลยอดนิยมเพื่อบรรเทาภัยคุกคามนี้ “อย่างไรก็ตาม มีการค้นพบทางเลี่ยงหลายครั้งในช่วงไม่กี่ปีที่ผ่านมา” เขากล่าว ในระหว่างการศึกษาของ Aqua นักวิจัยพบตัวอย่างพื้นที่เก็บข้อมูลหลายตัวอย่างที่การป้องกันที่ดำเนินการโดย GitHub ไม่ได้ใช้ “ดังนั้น ผู้ใช้จึงไม่สามารถพึ่งพาการป้องกันเหล่านี้ได้อย่างเต็มที่ ณ จุดนี้” เขากล่าว

บล็อกของ Aqua ชี้ไปที่ช่องโหว่ GitHub Checkmarx ค้นพบเมื่อปีที่แล้ว เป็นตัวอย่างหนึ่งของวิธีที่ผู้โจมตีสามารถหลีกเลี่ยงความพยายามของ GitHub เพื่อป้องกันการโจมตีซ้ำ ข้อบกพร่องนี้เกี่ยวข้องกับกลไกที่เรียกว่า “การเลิกใช้เนมสเปซที่เก็บยอดนิยม” และส่งผลกระทบต่อชื่อผู้ใช้ที่เปลี่ยนชื่อทั้งหมดบน GitHub รวมถึงแพ็คเกจมากกว่า 10,000 รายการในตัวจัดการแพ็คเกจเช่น Swift, Packagist และ Go “Repojacking เป็นเทคนิคในการแย่งชิงการรับส่งข้อมูล URL ของพื้นที่เก็บข้อมูลที่ถูกเปลี่ยนชื่อและกำหนดเส้นทางไปยังพื้นที่เก็บข้อมูลของผู้โจมตีโดยใช้ประโยชน์จากข้อบกพร่องเชิงตรรกะที่ทำลายการเปลี่ยนเส้นทางเดิม” Checkmarx กล่าวในรายงานเกี่ยวกับช่องโหว่ “พื้นที่เก็บข้อมูล GitHub มีความเสี่ยงที่จะถูก repojacking เมื่อผู้สร้างตัดสินใจเปลี่ยนชื่อชื่อผู้ใช้ของเขาในขณะที่ชื่อผู้ใช้เก่านั้นพร้อมสำหรับการลงทะเบียน”

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

ประทับเวลา:

เพิ่มเติมจาก การอ่านที่มืด