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 ดูเหมือนว่าไม่ได้มีการเปลี่ยนแปลงอะไร
รายละเอียดการโจมตี
- การโจมตีเริ่มต้นเมื่อแฮกเกอร์ใช้มัลแวร์ GlassWorm ซึ่งถูกติดตั้งผ่านส่วนขยายที่เป็นอันตรายของ VS Code และ Cursor เพื่อเข้าถึงข้อมูลการยืนยันตัวตนของนักพัฒนา GitHub เมื่อมัลแวร์ถูกติดตั้งในเครื่องเหยื่อ จะขโมย GitHub tokens จากหลายแหล่ง เช่น git credential fill, VS Code extension storage, และไฟล์ ~/.git-credentials จากนั้นข้อมูลเหล่านี้จะถูกส่งไปยังเซิร์ฟเวอร์ของแฮกเกอร์ โดยใช้ข้อมูลเหล่านี้ในการเข้าถึงบัญชี GitHub ของผู้พัฒนาและทำการเปลี่ยนแปลงใน Repository
- หลังจากที่แฮกเกอร์ได้โทเคน GitHub ที่ขโมยมาแล้ว มันจะใช้โทเคนเหล่านั้นในการเข้าถึง Repository GitHub ของผู้พัฒนา โดยเลือกคอมมิตที่เป็น commit ล่าสุดที่ถูกต้อง จากนั้นแฮกเกอร์จะทำการ rebase คอมมิตนี้และเพิ่มโค้ดที่เป็น มัลแวร์ ที่ obfuscated ลงในไฟล์สำคัญ เช่น setup.py, main.py, หรือ app.py โดยจะทำการ force-push โค้ดที่ถูกเปลี่ยนแปลงนี้กลับไปยัง branch หลัก ซึ่งทำให้ดูเหมือนว่า Repository ไม่ได้มีการเปลี่ยนแปลงใดๆ
- หลังจากที่มัลแวร์ถูกฝังในเครื่องเหยื่อและได้รับคำสั่งจากแฮกเกอร์แล้ว จะเริ่มใช้ Solana blockchain เป็นช่องทางในการสื่อสารกับแฮกเกอร์แทนการใช้เซิร์ฟเวอร์ C2 แบบดั้งเดิม มัลแวร์จะเชื่อมต่อกับ Solana address ที่ถูกกำหนดในโค้ด เพื่อดึงข้อมูลคำสั่งที่เป็น payload URL ผ่านการใช้ Solana Memo Program โดยการเชื่อมต่อกับ Solana RPC endpoints หลายตัวที่ถูกตั้งไว้เป็นตัวสำรอง เพื่อให้มัลแวร์สามารถทำงานได้แม้ว่าจะมีบาง endpoint ถูกบล็อก
- เมื่อมัลแวร์ได้รับ payload URL จากคำสั่งที่ดึงมาจาก Solana blockchain จะเริ่มทำการดาวน์โหลด Node.js v22.9.0 จากเว็บไซต์ทางการและติดตั้งในเครื่องเหยื่อ จากนั้น มันจะใช้ไฟล์ i.js ที่ได้รับมาจาก payload URL เพื่อ decrypt และประมวลผล payload ที่ได้รับโดยการใช้ Node.js ในการทำงาน ส่วนนี้จะทำให้มัลแวร์สามารถดำเนินการติดตั้งมัลแวร์เพิ่มเติมหรือทำการขโมยข้อมูลตามคำสั่งที่ได้รับ
- หลังจากที่มัลแวร์ทำงานเสร็จแล้ว จะเริ่มขโมยข้อมูลที่สำคัญจากเครื่องเหยื่อ เช่น ข้อมูลกระเป๋าเงินคริปโต, คีย์ SSH, คุกกี้, และ ข้อมูลการเข้าสู่ระบบ ข้อมูลเหล่านี้จะถูกส่งไปยังเซิร์ฟเวอร์ที่นักโจมตีควบคุมผ่านทางช่องทางที่ถูกเข้ารหัส โดยการใช้การเชื่อมต่อกับ Solana blockchain เพื่อหลีกเลี่ยงการตรวจจับจากการใช้ช่องทางสื่อสารที่ปกติ
- มัลแวร์ยังใช้เทคนิค การเข้ารหัส 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


