"แน่นอนว่า Firebase ก็เป็นสาเหตุด้วย (บางส่วน)"

  • ระหว่างกระบวนการดาวน์โหลดไฟล์ติดตั้งของ AI editor อย่าง Cursor พบว่ามีการพยายามเชื่อมต่อไปยัง ToDesktop ผ่านไฟร์วอลล์ Lulu
    • ToDesktop เป็นบริการที่ให้การแพ็กเกจแอป Electron, SDK, การอัปเดต และอื่น ๆ
  • ยืนยันได้ว่าแอปใช้ Firestore จึงเริ่มสำรวจ Firebase เบื้องต้นผ่านเครื่องมือสำหรับนักพัฒนา
    • Firebase: แพลตฟอร์ม backend สำหรับแอปจาก Google ที่รองรับการจัดเก็บและประมวลผลข้อมูลฝั่งไคลเอนต์ผ่านฐานข้อมูล NoSQL ชื่อ Firestore
  • ใช้ DevTools และ sourcemap เพื่อตรวจดูคอลเล็กชันที่ถูกใช้งานใน Firestore
  • พบคอลเล็กชันชื่อ temporaryApplications แต่เป็นเพียงรายการเก่าและไม่มีข้อมูลอ่อนไหวใด ๆ (ไม่ได้อัปเดตตั้งแต่ปี 2022)
  • ยืนยันได้ว่าลอจิกหลักส่วนใหญ่และงาน deploy ทำผ่าน npm package @todesktop/cli
  • @todesktop/cli ก็มี sourcemap เช่นกัน จึงใช้ sourcemapper เพื่อดูโครงสร้างซอร์สต้นฉบับ

เจาะดู ToDesktop CLI

  • ToDesktop CLI: รับผิดชอบฟีเจอร์หลักอย่างการ deploy แอป การอัปโหลดซอร์สโค้ด และอื่น ๆ
  • ระหว่างวิเคราะห์ sourcemap ของ CLI พบช่องโหว่ที่สามารถนำ Firebase Cloud Function getSignedURL ไปใช้ในทางที่ผิดเพื่อพยายามอัปโหลดไฟล์ไปยัง S3 ตามอำเภอใจได้ แต่ดูเหมือนจะหา file path ที่มีความหมายจริง ๆ ได้ยาก

ยึด pipeline การ deploy ผ่านสคริปต์ postinstall

  • เป้าหมายคือการได้สิทธิ์รันโค้ดในคอนเทนเนอร์ (เซิร์ฟเวอร์) ที่กำลังทำการ build
  • ใส่ payload แบบ reverse shell ลงในสคริปต์ postinstall ของ package.json แล้วรับการเชื่อมต่อจากคอนเทนเนอร์ที่ใช้ build
  • เข้าถึงภายในคอนเทนเนอร์ได้สำเร็จ และตรวจสอบโครงสร้างของสภาพแวดล้อม build กับไฟล์สำคัญต่าง ๆ
  • พบไฟล์ config.json.encrypted และยังหาวิธีถอดรหัสได้ ทำให้ดึงข้อมูลลับจริง (config.json) ออกมาได้
  • นอกจากนี้ยังพบ Firebase Admin key (คีย์ที่มีสิทธิ์กว้างขวาง) อยู่ภายในด้วย

Post-exploitation

  • ช่องโหว่นี้ทำให้สามารถปล่อยอัปเดตแอปตามใจได้ และเมื่อผู้ใช้รีสตาร์ตแอปก็สามารถรันโค้ดอันตรายได้ทันที
  • มีการทดสอบปล่อยอัปเดตให้แอปทดสอบจริง และสามารถทำ RCE (การรันโค้ดจากระยะไกล) ฝั่งไคลเอนต์ได้สำเร็จ

ขอบเขตผลกระทบ

  • สามารถปล่อยอัปเดตอันตรายให้กับทุกแอปที่ใช้ ToDesktop ได้ จึงเป็นปัญหาที่อาจกระทบผู้ใช้มากกว่าหลายล้านคน
  • แอปที่ถูกยกตัวอย่าง:
  • โดยเฉพาะผู้ใช้ของแอปเหล่านี้จำนวนมากทำงานอยู่ในวงการ IT และเทคโนโลยี จึงมีโอกาสที่ความเสียหายจากการโจมตีจะสูง

The fix

  • หลังรายงานปัญหา ก็ได้ติดต่อกับฝั่ง ToDesktop ทันทีเพื่อดำเนินการแก้ไข
  • ToDesktop แก้ปัญหาได้อย่างรวดเร็วและมอบรางวัลเพิ่มเติมให้
  • มีการเปลี่ยนสถาปัตยกรรมให้การเซ็น การอัปโหลด และงานสำคัญอื่น ๆ ไปรันใน sidecar container ที่มีสิทธิ์แยกจาก build container
  • อ่านรายงาน security incident อย่างเป็นทางการของ ToDesktop ได้ที่นี่
  • เหตุการณ์ด้านความปลอดภัยสามารถเกิดขึ้นได้กับทุกบริษัท แต่สิ่งสำคัญคือท่าทีในการรับมือ และ ToDesktop ก็จัดการได้อย่างรวดเร็วและให้ความร่วมมือดีจนทิ้งความประทับใจในแง่บวกไว้

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น