มัลแวร์ GlassWorm
มัลแวร์ GlassWorm ระลอกใหม่กำลังมุ่งเป้าไปที่ห่วงโซ่อุปทานซอฟต์แวร์โดยใช้โทเค็น GitHub ที่ถูกขโมยมาเพื่อแทรกโค้ดที่เป็นอันตรายเข้าไปในคลังเก็บโค้ดหลายร้อยแห่ง ปฏิบัติการนี้มุ่งเน้นไปที่โครงการที่ใช้ Python เป็นหลัก รวมถึงแอปพลิเคชัน Django โค้ดวิจัยด้านแมชชีนเลิร์นนิง แดชบอร์ด Streamlit และแพ็กเกจ PyPI
วิธีการโจมตีนั้นดูเรียบง่ายแต่มีประสิทธิภาพสูง: มัลแวร์ที่ถูกซ่อนไว้จะถูกแทรกเข้าไปในไฟล์ที่ใช้งานบ่อย เช่น setup.py, main.py และ app.py นักพัฒนาซอฟต์แวร์คนใดก็ตามที่ติดตั้งส่วนประกอบต่างๆ ผ่าน pip install หรือเรียกใช้โค้ดที่คัดลอกมาจาก repository ที่ถูกบุกรุกโดยไม่รู้ตัว จะเปิดใช้งาน payload ที่เป็นอันตรายนั้น
สารบัญ
การเข้ายึดครองคลังข้อมูลแบบเงียบๆ: เทคนิค ForceMemo
วิวัฒนาการของแคมเปญนี้ ซึ่งปัจจุบันเรียกว่า ForceMemo นำเสนอวิธีการบุกรุกคลังเก็บข้อมูลแบบแนบเนียน ผู้คุกคามเข้าถึงบัญชีนักพัฒนาและแก้ไขคลังเก็บข้อมูลโดยไม่ทิ้งร่องรอยแบบเดิม ๆ
ด้วยการรีเบสคอมมิตที่ถูกต้องด้วยโค้ดที่เป็นอันตรายและบังคับพุชไปยังสาขาเริ่มต้น ผู้โจมตีสามารถรักษาข้อมูลเมตาของคอมมิตดั้งเดิมไว้ได้ รวมถึงข้อความ ผู้เขียน และเวลาประทับ ทำให้การบุกรุกถูกปกปิดอย่างมีประสิทธิภาพ วิธีการนี้จะกำจัดตัวบ่งชี้ที่มองเห็นได้ เช่น คำขอพูลหรือประวัติคอมมิตที่น่าสงสัย ทำให้การตรวจจับทำได้ยากขึ้นอย่างมาก
ลำดับขั้นตอนการโจมตี: ตั้งแต่การขโมยข้อมูลประจำตัวจนถึงการส่งเพย์โหลด
แคมเปญ ForceMemo ดำเนินการตามกระบวนการบุกรุกที่มีโครงสร้างและหลายขั้นตอน:
- สภาพแวดล้อมการพัฒนาซอฟต์แวร์จะถูกบุกรุกในขั้นต้นผ่านส่วนขยาย Visual Studio Code และ Cursor ที่เป็นอันตราย ซึ่งมีส่วนประกอบของ GlassWorm ที่ออกแบบมาเพื่อขโมยข้อมูลประจำตัวที่สำคัญ รวมถึงโทเค็นของ GitHub
- จากนั้นจะนำข้อมูลประจำตัวที่ถูกขโมยไปใช้ในการแทรกโค้ดที่เข้ารหัสแบบ Base64 เข้าไปในไฟล์ Python ในทุกที่เก็บข้อมูลที่เกี่ยวข้องกับบัญชีที่ถูกบุกรุก
- มัลแวร์ที่ฝังอยู่จะทำการตรวจสอบสภาพแวดล้อม โดยเฉพาะอย่างยิ่งจะหลีกเลี่ยงการทำงานบนระบบที่ตั้งค่าด้วยภาษาของรัสเซีย จากนั้นจะสอบถามกระเป๋าเงินบล็อกเชน Solana เพื่อดึง URL สำหรับส่งเพย์โหลดแบบไดนามิก
- มีการดาวน์โหลดไฟล์เพิ่มเติม ซึ่งรวมถึง JavaScript ที่เข้ารหัสลับซึ่งออกแบบมาเพื่อขโมยสกุลเงินดิจิทัลและดึงข้อมูลออกไป
ระบบบัญชาการและควบคุมบนพื้นฐานบล็อกเชน: โครงสร้างพื้นฐานที่ยืดหยุ่น
ลักษณะเด่นของแคมเปญนี้คือการพึ่งพาบล็อกเชน Solana เป็นกลไกควบคุมและสั่งการ (C2) แทนที่จะใช้เซิร์ฟเวอร์แบบดั้งเดิม ผู้โจมตีจะจัดเก็บ URL ของเพย์โหลดไว้ในช่องบันทึกข้อความของธุรกรรมที่เชื่อมโยงกับที่อยู่กระเป๋าเงินเฉพาะ
จากการวิเคราะห์พบว่า กิจกรรมที่เชื่อมโยงกับกระเป๋าเงินหลักเริ่มต้นขึ้นตั้งแต่เมื่อวันที่ 27 พฤศจิกายน 2025 ซึ่งเป็นเวลาหลายเดือนก่อนที่จะตรวจพบการรั่วไหลของข้อมูลในคลังเก็บข้อมูล กระเป๋าเงินดังกล่าวได้ประมวลผลธุรกรรมไปแล้วหลายสิบรายการ โดยมีการอัปเดตตำแหน่งของข้อมูลบ่อยครั้ง บางครั้งหลายครั้งต่อวัน แนวทางแบบกระจายอำนาจนี้ช่วยเพิ่มความยืดหยุ่นและทำให้การพยายามปิดระบบทำได้ยากขึ้น
การขยายขอบเขตการโจมตี: npm และการติดเชื้อข้ามระบบนิเวศ
แคมเปญดังกล่าวได้ขยายวงกว้างออกไปจากระบบนิเวศของ Python ไปสู่ห่วงโซ่อุปทานของ JavaScript แล้ว แพ็กเกจ npm ของ React Native สองแพ็กเกจ ได้แก่ react-native-international-phone-number (เวอร์ชัน 0.11.8) และ react-native-country-select (เวอร์ชัน 0.3.91) ถูกบุกรุกชั่วคราวและถูกเผยแพร่พร้อมมัลแวร์ที่ฝังอยู่ภายใน
มัลแวร์เวอร์ชันที่เป็นอันตรายเหล่านี้ได้เพิ่มกลไกการติดตั้งล่วงหน้า (preinstall hooks) ที่เรียกใช้ JavaScript ที่ถูกเข้ารหัสลับ (obcursed JavaScript) ซึ่งเริ่มต้นห่วงโซ่การติดเชื้อที่คล้ายคลึงกัน มัลแวร์นี้หลีกเลี่ยงระบบของรัสเซียอีกครั้ง โดยจะดึงคำสั่งในการโจมตีผ่านกระเป๋าเงินดิจิทัล Solana และทำการแพร่กระจายภัยคุกคามเฉพาะแพลตฟอร์ม
การประมวลผลเกิดขึ้นในหน่วยความจำทั้งหมดโดยใช้เทคนิคการทำงานแบบเรียลไทม์ เช่น eval() หรือแซนด์บ็อกซ์ของ Node.js ทำให้เหลือหลักฐานทางนิติวิทยาศาสตร์น้อยที่สุด นอกจากนี้ กลไกการคงอยู่ยังป้องกันการติดเชื้อซ้ำภายใน 48 ชั่วโมงโดยการจัดเก็บการประทับเวลาไว้ในเครื่อง
กลยุทธ์การหลบเลี่ยงและการกระจายสินค้าขั้นสูง
GlassWorm เวอร์ชันล่าสุดแสดงให้เห็นถึงความซับซ้อนที่เพิ่มขึ้นในการส่งและการซ่อนตัว โดยการใช้กลไก extensionPack และ extensionDependencies ผู้โจมตีสามารถกระจายเพย์โหลดที่เป็นอันตรายผ่านระบบนิเวศของส่วนขยายที่เชื่อถือได้
ก่อนหน้านี้ แคมเปญที่เชื่อมโยงกับผู้ก่อภัยคุกคามรายเดียวกันได้เจาะระบบคลังเก็บข้อมูล GitHub มากกว่า 151 แห่ง โดยใช้ตัวอักษร Unicode ที่มองไม่เห็นเพื่อซ่อนโค้ดที่เป็นอันตราย แม้ว่าจะมีกลยุทธ์การปกปิดและการส่งที่แตกต่างกัน แต่แคมเปญทั้งหมดก็อาศัยโครงสร้างพื้นฐานที่ใช้ Solana เหมือนกันอย่างสม่ำเสมอ ซึ่งเป็นการยืนยันถึงกรอบการทำงานปฏิบัติการที่เป็นหนึ่งเดียว
ส่วนขยาย IDE ที่เป็นอันตราย: การโจมตีสภาพแวดล้อมการพัฒนาซอฟต์แวร์
แคมเปญนี้ยังแทรกซึมเข้าไปในเครื่องมือพัฒนาผ่านส่วนขยายที่เป็นอันตรายซึ่งระบุว่าเป็น reditorsupporter.r-vscode-2.8.8-universal โดยมุ่งเป้าไปที่ Windsurf IDE โดยปลอมตัวเป็นปลั๊กอินสนับสนุนภาษา R แต่ภายในกลับติดตั้งโปรแกรมขโมยข้อมูลที่ใช้ Node.js
เมื่อติดตั้งแล้ว ส่วนขยายจะดึงข้อมูลที่เข้ารหัสจากธุรกรรมบล็อกเชน ดำเนินการในหน่วยความจำ และปรับใช้ส่วนประกอบที่คอมไพล์แล้วเพื่อดึงข้อมูลที่ละเอียดอ่อนจากเบราว์เซอร์ที่ใช้ Chromium การรักษาการทำงานอย่างต่อเนื่องทำได้โดยการตั้งค่ากำหนดการและแก้ไขรีจิสทรีของ Windows เพื่อให้มั่นใจว่าระบบจะทำงานเมื่อเริ่มต้นระบบ
มัลแวร์นี้มุ่งเป้าไปที่สภาพแวดล้อมของนักพัฒนาโดยเฉพาะ โดยไม่รวมถึงระบบของรัสเซีย ซึ่งเป็นพฤติกรรมที่คล้ายคลึงกับที่พบใน GlassWorm สายพันธุ์อื่นๆ
ตัวชี้วัดขนาดและผลกระทบ
ผลการวิเคราะห์ด้านความปลอดภัยบ่งชี้ว่า การโจมตีครั้งนี้ได้บุกรุกส่วนสำคัญของระบบนิเวศโอเพนซอร์ส ส่งผลกระทบต่อโครงการมากกว่า 433 โครงการในหลายแพลตฟอร์ม ซึ่งรวมถึงคลังเก็บข้อมูล GitHub (Python และ JavaScript), ส่วนขยาย VS Code และไลบรารี npm
เส้นทางการติดเชื้อทั้งหมดจะบรรจบกันที่การติดตั้งโปรแกรมขโมยข้อมูลที่ใช้ JavaScript ซึ่งเน้นย้ำถึงเป้าหมายสุดท้ายที่สอดคล้องกันคือการเก็บรวบรวมข้อมูลประจำตัวและการขโมยข้อมูล
- มีการยืนยันแล้วว่าโครงการและแพ็กเกจกว่า 433 รายการถูกบุกรุก
- ช่องทางการส่งมอบหลายช่องทาง รวมถึง GitHub, npm และส่วนขยาย IDE
- การใช้งานโครงสร้างพื้นฐานบล็อกเชน Solana อย่างสม่ำเสมอสำหรับการส่งข้อมูล
- การยกเว้นระบบของรัสเซียซ้ำแล้วซ้ำเล่าในทุกรูปแบบ
การประเมินเชิงกลยุทธ์: ยุคใหม่ของการโจมตีห่วงโซ่อุปทาน
แคมเปญ ForceMemo แสดงให้เห็นถึงการยกระดับภัยคุกคามในห่วงโซ่อุปทานซอฟต์แวร์อย่างมีนัยสำคัญ การผสมผสานระหว่างการแก้ไขประวัติ Git อย่างแนบเนียน โครงสร้างพื้นฐาน C2 บนบล็อกเชน และเวกเตอร์การติดเชื้อข้ามแพลตฟอร์ม แสดงให้เห็นถึงระดับความพร้อมในการปฏิบัติงานที่สูงมาก
การนำโครงสร้างพื้นฐานกลับมาใช้ใหม่ควบคู่ไปกับกลไกการส่งมอบที่พัฒนาขึ้น บ่งชี้ถึงศัตรูที่มีความสามารถในการปรับตัว สามารถขยายขนาดการโจมตีในขณะที่ยังคงรักษาความต่อเนื่องและการหลบเลี่ยง การเปลี่ยนแปลงจากการโจมตีแบบแยกส่วนไปสู่การบุกรุกแบบประสานงานในหลายระบบนิเวศ เน้นย้ำถึงความเสี่ยงที่เพิ่มขึ้นที่สภาพแวดล้อมการพัฒนาสมัยใหม่และชุมชนโอเพนซอร์สกำลังเผชิญอยู่