การโจมตี Typosquatting มุ่งเป้าไปที่ผู้ใช้ GitHub Container Registry ผ่านโดเมน ghrc.io

ทีมชุมชน BigGo
การโจมตี Typosquatting มุ่งเป้าไปที่ผู้ใช้ GitHub Container Registry ผ่านโดเมน ghrc.io

การโจมตีแบบซับซ้อนเพื่อขโมยข้อมูลประจำตัวได้ถูกค้นพบ โดยมุ่งเป้าไปที่ผู้ใช้ 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

ขั้นตอนการตอบสนองด้านความปลอดภัย:

  1. เปลี่ยนรหัสผ่านบัญชี GitHub ทันที
  2. เพิกถอน Personal Access Tokens (PATs) ทั้งหมด
  3. ตรวจสอบบัญชี GitHub เพื่อหากิจกรรมที่น่าสงสัย
  4. ตรวจสอบการอัปโหลด container image ที่ไม่ได้รับอนุญาต
  5. ตรวจสอบและอัปเดตการอ้างอิง registry ที่กำหนดค่าผิดพลาด

การตอบสนองและการบรรเทา

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

เหตุการณ์นี้เน้นย้ำถึงความท้าทายที่ต่อเนื่องของ typosquatting ในระบบนิเวศการพัฒนาสมัยใหม่ ที่ชื่อโดเมนที่ซับซ้อนและบริการย่อสร้างโอกาสสำหรับผู้โจมตี เมื่อ container registries กลายเป็นศูนย์กลางของ software development workflows มากขึ้น การปกป้องเส้นทางการยืนยันตัวตนเหล่านี้กลายเป็นสิ่งสำคัญสำหรับการรักษาความปลอดภัยของ supply chain

อ้างอิง: ghrc.io Appears to be Malicious