Share

GlassWorm ขโมย GitHub Token ฝังมัลแวร์ลงใน Python Repositories ด้วยการ Force Push

Last updated: 18 Mar 2026
9 Views
สรุปข้อมูล
การโจมตี GlassWorm-ForceMemo เป็นแคมเปญที่แฮกเกอร์ขโมยบัญชี GitHub ของนักพัฒนาและฝังมัลแวร์เข้าไปในหลาย 100 Repositories ของ Python โดยใช้วิธีการเชื่อมต่อผ่านโค้ดที่ถูกฝังในไฟล์ setup.py, main.py และ app.py เมื่อมีการติดตั้งหรือรันโค้ดเหล่านี้ จะเกิดการรันมัลแวร์ โดยวิธีการที่แฮกเกอร์ใช้คือการ "Force-push" โค้ดที่มีการแอบแฝงมัลแวร์ไปใน Repositories โดยการใช้โทเคน GitHub ที่ขโมยมา เพื่อหลอกให้ Repositories ดูเหมือนว่าไม่ได้มีการเปลี่ยนแปลงอะไร
 
รายละเอียดการโจมตี
  1. การโจมตีเริ่มต้นเมื่อแฮกเกอร์ใช้มัลแวร์ GlassWorm ซึ่งถูกติดตั้งผ่านส่วนขยายที่เป็นอันตรายของ VS Code และ Cursor เพื่อเข้าถึงข้อมูลการยืนยันตัวตนของนักพัฒนา GitHub เมื่อมัลแวร์ถูกติดตั้งในเครื่องเหยื่อ จะขโมย GitHub tokens จากหลายแหล่ง เช่น git credential fill, VS Code extension storage, และไฟล์ ~/.git-credentials จากนั้นข้อมูลเหล่านี้จะถูกส่งไปยังเซิร์ฟเวอร์ของแฮกเกอร์ โดยใช้ข้อมูลเหล่านี้ในการเข้าถึงบัญชี GitHub ของผู้พัฒนาและทำการเปลี่ยนแปลงใน Repository
  2. หลังจากที่แฮกเกอร์ได้โทเคน GitHub ที่ขโมยมาแล้ว มันจะใช้โทเคนเหล่านั้นในการเข้าถึง Repository GitHub ของผู้พัฒนา โดยเลือกคอมมิตที่เป็น commit ล่าสุดที่ถูกต้อง จากนั้นแฮกเกอร์จะทำการ rebase คอมมิตนี้และเพิ่มโค้ดที่เป็น มัลแวร์ ที่ obfuscated ลงในไฟล์สำคัญ เช่น setup.py, main.py, หรือ app.py โดยจะทำการ force-push โค้ดที่ถูกเปลี่ยนแปลงนี้กลับไปยัง branch หลัก ซึ่งทำให้ดูเหมือนว่า Repository ไม่ได้มีการเปลี่ยนแปลงใดๆ
  3. หลังจากที่มัลแวร์ถูกฝังในเครื่องเหยื่อและได้รับคำสั่งจากแฮกเกอร์แล้ว จะเริ่มใช้ Solana blockchain เป็นช่องทางในการสื่อสารกับแฮกเกอร์แทนการใช้เซิร์ฟเวอร์ C2 แบบดั้งเดิม มัลแวร์จะเชื่อมต่อกับ Solana address ที่ถูกกำหนดในโค้ด เพื่อดึงข้อมูลคำสั่งที่เป็น payload URL ผ่านการใช้ Solana Memo Program โดยการเชื่อมต่อกับ Solana RPC endpoints หลายตัวที่ถูกตั้งไว้เป็นตัวสำรอง เพื่อให้มัลแวร์สามารถทำงานได้แม้ว่าจะมีบาง endpoint ถูกบล็อก
  4. เมื่อมัลแวร์ได้รับ payload URL จากคำสั่งที่ดึงมาจาก Solana blockchain จะเริ่มทำการดาวน์โหลด Node.js v22.9.0 จากเว็บไซต์ทางการและติดตั้งในเครื่องเหยื่อ จากนั้น มันจะใช้ไฟล์ i.js ที่ได้รับมาจาก payload URL เพื่อ decrypt และประมวลผล payload ที่ได้รับโดยการใช้ Node.js ในการทำงาน ส่วนนี้จะทำให้มัลแวร์สามารถดำเนินการติดตั้งมัลแวร์เพิ่มเติมหรือทำการขโมยข้อมูลตามคำสั่งที่ได้รับ
  5. หลังจากที่มัลแวร์ทำงานเสร็จแล้ว จะเริ่มขโมยข้อมูลที่สำคัญจากเครื่องเหยื่อ เช่น ข้อมูลกระเป๋าเงินคริปโต, คีย์ SSH, คุกกี้, และ ข้อมูลการเข้าสู่ระบบ ข้อมูลเหล่านี้จะถูกส่งไปยังเซิร์ฟเวอร์ที่นักโจมตีควบคุมผ่านทางช่องทางที่ถูกเข้ารหัส โดยการใช้การเชื่อมต่อกับ Solana blockchain เพื่อหลีกเลี่ยงการตรวจจับจากการใช้ช่องทางสื่อสารที่ปกติ
  6. มัลแวร์ยังใช้เทคนิค การเข้ารหัส AES เพื่อป้องกันไม่ให้การตรวจจับมัลแวร์ได้ง่าย และเพื่อให้แน่ใจว่ามันจะสามารถอยู่ในเครื่องเหยื่อได้ในระยะยาว มัลแวร์จะตรวจสอบว่าเครื่องที่มันติดตั้งอยู่ใน ประเทศรัสเซีย หรือไม่ โดยการตรวจสอบ locale และ timezone หากเครื่องอยู่ในประเทศที่มีการบังคับใช้กฎหมายเช่นรัสเซีย มัลแวร์จะไม่ทำงานต่อ ซึ่งเป็นวิธีการหลีกเลี่ยงการโจมตีจากการตรวจสอบในบางประเทศ
ผลกระทบจากการโจมตี
การโจมตี GlassWorm-ForceMemo ส่งผลกระทบโดยตรงต่อการพัฒนาโปรแกรมใน Python โดยมัลแวร์ที่ฝังอยู่ในรีโพซิทอรีสามารถขโมยข้อมูลสำคัญของนักพัฒนา เช่น private keys ของกระเป๋าเงินคริปโต บัญชีผู้ใช้งาน SSH และข้อมูลที่เกี่ยวข้องกับเซสชั่นที่ถูกจัดเก็บไว้ รวมถึงข้อมูลที่ใช้ในแอปพลิเคชันต่างๆ ผลกระทบจากการโจมตีนี้ยังรวมไปถึงความเสียหายต่อการจัดการ CI/CD pipeline ในการประมวลผลโค้ด
 
สรุปการโจมตี
การโจมตี GlassWorm-ForceMemo เป็นการโจมตีที่มีการใช้วิธีการที่หลากหลายและซับซ้อน โดยเริ่มจากการขโมยบัญชีของนักพัฒนา ผ่านการติดตั้งมัลแวร์ GlassWorm ที่ใช้ขโมย GitHub token และทำการฝังมัลแวร์ในหลาย 100 Repositories Python การฝังมัลแวร์นี้เกิดขึ้นโดยการ "Force-push" โค้ดที่มีการแอบแฝงเข้ามาในรีโพซิทอรีที่ได้รับผลกระทบ โดยมีการใช้ Solana blockchain เป็นช่องทาง C2 สำหรับการควบคุม
 
คำแนะนำ
  • ตรวจสอบโค้ดใน Python Repository ที่ใช้งานจาก GitHub ว่าไม่มีการเปลี่ยนแปลงจากคอมมิตที่ถูกต้อง
  • ใช้เครื่องมือ CI/CD เช่น Harden-Runner เพื่อตรวจจับการเชื่อมต่อที่ผิดปกติจากโค้ดที่ถูกต้อง
  • อัปเดตส่วนขยายใน VS Code และ Cursor อย่างสม่ำเสมอเพื่อป้องกันการถูกโจมตีจากช่องโหว่ที่รู้จัก
  • ใช้ Multi-factor Authentication (MFA) สำหรับทุกบัญชีในระบบ
  • จำกัดสิทธิ์การใช้งานของบัญชีตามหลักการของ Least Privilege
  • พิจารณาการตั้งค่าไฟร์วอลล์และระบบตรวจจับการบุกรุกเพิ่มเติม
แหล่งอ้างอิง

Related Content
Compare product
0/4
Remove all
Compare