การโจมตีแบบซับซ้อนเพื่อขโมยข้อมูลประจำตัวได้ถูกค้นพบ โดยมุ่งเป้าไปที่ผู้ใช้ GitHub Container Registry (ghcr.io) ผ่านโดเมนปลอมแปลง เว็บไซต์ที่เป็นอันตราย ghrc.io ใช้ประโยชน์จากการสลับตำแหน่งตัวอักษรง่ายๆ - การสลับ 'c' และ 'r' - เพื่อขโมยข้อมูลประจำตัวการยืนยันตัวตนจากนักพัฒนาและองค์กร
การโจมตีนี้แสดงให้เห็นว่านักพัฒนาสามารถตกเป็นเหยื่อของ typosquatting ได้ง่ายเพียงใด โดยเฉพาะเมื่อต้องจัดการกับชื่อโดเมนที่ซับซ้อน container registry ของ GitHub ใช้โดเมนย่อ ghcr.io ซึ่งผู้ใช้หลายคนพบว่าจำและพิมพ์ได้ยาก สิ่งนี้สร้างโอกาสที่เหมาะสำหรับผู้โจมตีในการลงทะเบียนโดเมนที่คล้ายกันและดักจับข้อมูลประจำตัว
การเปรียบเทียบโดเมน:
- ถูกต้อง: ghcr.io ( GitHub Container Registry )
- มุ่งร้าย: ghrc.io (สลับตำแหน่ง 'c' และ 'r')
- วิธีการโจมตี: OCI API endpoints ภายใต้เส้นทาง
/v2/
- เป้าหมายข้อมูลรับรอง:
https://ghrc.io/token
authentication endpoint
เทคนิคการปลอมแปลงที่ซับซ้อน
เว็บไซต์ที่เป็นอันตราย ghrc.io ปรากฏเป็นการติดตั้ง nginx มาตรฐานเมื่อเข้าถึงผ่านเว็บเบราว์เซอร์ โดยแสดงหน้า Welcome to nginx! เริ่มต้น อย่างไรก็ตาม ใต้หน้ากากที่ดูไร้เดียงสานี้ซ่อนวัตถุประสงค์ที่ชั่วร้ายมากกว่า เมื่อเครื่องมือ container เช่น Docker หรือ Kubernetes พยายามเข้าถึง OCI (Open Container Initiative) API endpoints ภายใต้เส้นทาง /v2/
เว็บไซต์จะตอบสนองด้วย registry authentication headers ที่เหมาะสม
ตัวบ่งชี้หลักของเจตนาร้ายคือ header www-authenticate
ที่นำทางไคลเอนต์ให้ส่งข้อมูลประจำตัวไปยัง https://ghrc.io/token
สิ่งนี้เลียนแบบ container registries ที่ถูกต้องแต่ใช้เพื่อจับข้อมูล authentication tokens และรหัสผ่านของผู้ใช้ รูปแบบการตอบสนองใกล้เคียงกับ registries จริง ทำให้การตรวจจับยากสำหรับเครื่องมืออัตโนมัติ
ผลกระทบที่แพร่หลายในโครงการ Open Source
การวิเคราะห์ของชุมชนเผยให้เห็นว่าขอบเขตของปัญหา typosquatting นี้ขยายไปไกลกว่าความผิดพลาดของบุคคล การค้นหาโค้ด GitHub แสดงให้เห็นว่าโครงการ open source จำนวนมากได้อ้างอิงโดเมนที่เป็นอันตรายโดยไม่ได้ตั้งใจในไฟล์การกำหนดค่า CI/CD pipelines และเอกสาร สิ่งนี้บ่งบอกว่าการพิมพ์ผิดนี้พบได้บ่อยพอที่นักพัฒนาหลายคนทำผิดพลาดเดียวกัน
การโจมตีมุ่งเป้าไปที่สถานการณ์ที่ผู้ใช้อาจเก็บข้อมูลประจำตัวสำหรับโดเมนที่ผิด เช่น การรัน docker login ghrc.io
แทนที่จะเป็น ghcr.io
ที่ถูกต้อง หรือการกำหนดค่า GitHub Actions ผิดด้วย registry URL ที่ไม่ถูกต้อง การติดตั้ง Kubernetes ที่มีการกำหนดค่า image pull secrets ไม่ถูกต้องก็มีความเสี่ยงเช่นกัน
สถานการณ์ที่ได้รับผลกระทบ:
- การรัน
docker login ghrc.io
(โดเมนที่ผิด) - GitHub Actions ที่มีการกำหนดค่า
registry: ghrc.io
- Kubernetes secrets ที่กำหนดค่าสำหรับโดเมน
ghrc.io
- CI/CD pipelines ที่อ้างอิงไปยังโดเมนที่ถูกสร้างขึ้นเพื่อหลอกลวง
ข้อกังวลด้านความปลอดภัยกับกลยุทธ์โดเมนของ GitHub
เหตุการณ์นี้ได้จุดประกายการอภิปรายที่กว้างขึ้นเกี่ยวกับการเลือกของ GitHub ที่จะใช้โดเมนย่อสำหรับบริการที่สำคัญ หลายคนในชุมชนนักพัฒนาโต้แย้งว่าการใช้ subdomain เช่น registry.github.com
จะปลอดภัยกว่าและมีแนวโน้มที่จะเกิดการโจมตี typosquatting น้อยกว่า แนวทางปัจจุบันของการใช้โดเมนแยกต่างหากสำหรับบริการต่างๆ สร้างช่องทางการโจมตีหลายช่องทาง
ทำไมดูเหมือนว่าบริษัทต่างๆ เกลียด subdomain มาก? ทำไมนี่ไม่ใช่แค่ registary.github.com หรืออะไรทำนองนั้น? เหมือนกับว่าพวกเขาพยายามให้คนตกเป็นเหยื่อ phishing โดยการสร้างโดเมนสุ่มมากมาย
ผลกระทบด้านความปลอดภัยร้ายแรงเป็นพิเศษเพราะ GitHub Container Registry ยังคงพึ่งพา Personal Access Tokens (PATs) แบบคลาสสิกแทนที่จะเป็น fine-grained tokens นี่หมายความว่าข้อมูลประจำตัวที่ถูกบุกรุกอาจให้การเข้าถึงที่กว้างขึ้นไปยังบัญชีผู้ใช้นอกเหนือจากการดำเนินการ container registry
ขั้นตอนการตอบสนองด้านความปลอดภัย:
- เปลี่ยนรหัสผ่านบัญชี GitHub ทันที
- เพิกถอน Personal Access Tokens (PATs) ทั้งหมด
- ตรวจสอบบัญชี GitHub เพื่อหากิจกรรมที่น่าสงสัย
- ตรวจสอบการอัปโหลด container image ที่ไม่ได้รับอนุญาต
- ตรวจสอบและอัปเดตการอ้างอิง registry ที่กำหนดค่าผิดพลาด
การตอบสนองและการบรรเทา
ผู้ใช้ที่สงสัยว่าอาจได้เข้าสู่ระบบโดเมนที่เป็นอันตรายโดยไม่ได้ตั้งใจควรเปลี่ยนรหัสผ่าน GitHub ทันที เพิกถอน PATs ใดๆ ที่พวกเขาใช้ และตรวจสอบบัญชีของพวกเขาเพื่อหากิจกรรมที่น่าสงสัย การโจมตีอาจอนุญาตให้ผู้กระทำความผิดส่ง container images ที่เป็นอันตรายหรือได้รับการเข้าถึงที่กว้างขึ้นไปยัง repositories ของ GitHub
เหตุการณ์นี้เน้นย้ำถึงความท้าทายที่ต่อเนื่องของ typosquatting ในระบบนิเวศการพัฒนาสมัยใหม่ ที่ชื่อโดเมนที่ซับซ้อนและบริการย่อสร้างโอกาสสำหรับผู้โจมตี เมื่อ container registries กลายเป็นศูนย์กลางของ software development workflows มากขึ้น การปกป้องเส้นทางการยืนยันตัวตนเหล่านี้กลายเป็นสิ่งสำคัญสำหรับการรักษาความปลอดภัยของ supply chain
อ้างอิง: ghrc.io Appears to be Malicious