การโจมตีห่วงโซ่อุปทานมิแอสมา
แคมเปญโจมตีห่วงโซ่อุปทานซอฟต์แวร์ที่เพิ่งค้นพบใหม่ ซึ่งตั้งชื่อว่า Miasma ได้บุกรุกแพ็กเกจ npm หลายรายการของ @redhat-cloud-services ปฏิบัติการนี้ออกแบบมาเพื่อขโมยข้อมูลประจำตัวและข้อมูลสำคัญจากสภาพแวดล้อมของนักพัฒนา พร้อมทั้งติดตั้งเวิร์มที่แพร่กระจายได้เอง ซึ่งสามารถแพร่กระจายต่อไปในระบบนิเวศการพัฒนาซอฟต์แวร์
แคมเปญนี้เลียนแบบกลยุทธ์ที่เคยใช้กับ Mini Shai-Hulud อย่างใกล้ชิด โดยใช้ประโยชน์จากการดำเนินการในระหว่างการติดตั้ง การขโมยข้อมูลประจำตัว การโจมตีระบบ CI/CD การขโมยข้อมูลที่เข้ารหัส และกลไกที่ช่วยให้สามารถแพร่กระจายไปยังปลายทางได้
สารบัญ
ยังไม่สามารถระบุที่มาที่แน่ชัดได้
ยังไม่สามารถระบุตัวผู้ก่อภัยคุกคาม Miasma ได้อย่างแน่ชัด การระบุตัวผู้กระทำผิดมีความซับซ้อนมากขึ้น เนื่องจาก TeamPCP หรือที่รู้จักกันในชื่อ Replicating Marauder, TGR-CRI-1135 และ UNC6780 เคยเผยแพร่เครื่องมือโจมตีที่เกี่ยวข้องกับเวิร์ม Shai-Hulud ในรูปแบบโอเพนซอร์สมาก่อน การพัฒนาครั้งนี้ทำให้กลุ่มอาชญากรไซเบอร์อื่นๆ สามารถลอกเลียนแบบเทคนิคที่คล้ายคลึงกันได้ ทำให้การระบุตัวผู้กระทำผิดอย่างแน่ชัดทำได้ยากขึ้นอย่างมาก
แพ็กเกจ npm ที่ถูกบุกรุก
พบว่าแพ็กเกจ npm ต่อไปนี้ได้รับผลกระทบ:
@redhat-cloud-services/vulnerabilities-client
@redhat-cloud-services/tsc-transform-imports
@redhat-cloud-services/topological-inventory-client
@redhat-cloud-services/sources-client
@redhat-cloud-services/rule-components
@redhat-cloud-services/remediations-client
@redhat-cloud-services/rbac-client
การเก็บรวบรวมข้อมูลประจำตัวผ่านตรรกะการติดตั้งที่ซ่อนเร้น
นักวิจัยด้านความปลอดภัยค้นพบว่าแพ็กเกจที่เป็นอันตรายนั้นมีฮุกก่อนการติดตั้งที่ถูกซ่อนไว้ ซึ่งออกแบบมาให้ทำงานโดยอัตโนมัติระหว่างการติดตั้งแพ็กเกจ มัลแวร์นี้มุ่งเป้าไปที่สินทรัพย์ที่มีความสำคัญหลากหลายประเภท รวมถึงความลับของ GitHub Actions, โทเค็นการตรวจสอบสิทธิ์ของ npm, ข้อมูลประจำตัวของระบบคลาวด์, ความลับของ Kubernetes และ HashiCorp Vault, คีย์ SSH, ข้อมูลประจำตัวของ Git และไฟล์ลับอื่นๆ ที่จัดเก็บไว้ในระบบที่ถูกบุกรุก
ดังที่สังเกตได้จากแคมเปญ Mini Shai-Hulud ก่อนหน้านี้ มัลแวร์นี้ได้รวมเอาขั้นตอนการส่งข้อมูลลับที่เข้ารหัสไว้ด้วย ข้อมูลที่ถูกขโมยจะถูกส่งไปยัง api.anthropic.com:443/v1/api ในขณะที่ GitHub ทำหน้าที่เป็นช่องทางการส่งข้อมูลลับทางเลือก กลยุทธ์สองวัตถุประสงค์นี้แสดงให้เห็นถึงความพยายามไม่เพียงแต่จะขโมยข้อมูลประจำตัวเท่านั้น แต่ยังพยายามนำข้อมูลเหล่านั้นไปใช้เป็นอาวุธเพื่อบุกรุกห่วงโซ่อุปทานซอฟต์แวร์ต่อไปอีกด้วย
แพ็กเกจข้อมูลที่เข้ารหัสจะถูกส่งผ่าน GitHub API และข้อความในการคอมมิตอาจมีสตริงดังต่อไปนี้:
'หากคุณยกเลิกโทเค็นนี้ คอมพิวเตอร์ของเจ้าของจะถูกลบทิ้ง:'
เทคนิคการพรางตัวและกลไกการแพร่กระจาย
มัลแวร์นี้มีกลไกหลายอย่างที่ออกแบบมาเพื่อเพิ่มความคงทน หลีกเลี่ยงการตรวจจับ และขยายการเข้าถึง คุณลักษณะที่โดดเด่นอย่างหนึ่งคือ การหลีกเลี่ยงการทำงานบนระบบภาษารัสเซียโดยเจตนา ซึ่งเป็นพฤติกรรมที่เคยพบเห็นมาก่อนในแคมเปญการแพร่กระจายของ GlassWorm
สำหรับสภาพแวดล้อม npm โค้ดที่เป็นอันตรายจะโต้ตอบกับจุดแลกเปลี่ยนโทเค็น OIDC และจุดตรวจสอบ whoami บรรจุไฟล์เก็บถาวรซอฟต์แวร์ใหม่ลงในไฟล์ tarball ที่อัปเดตแล้ว และลงนามในไฟล์ที่แก้ไขโดยใช้ Sigstore จากนั้นข้อมูลประจำตัวที่ถูกขโมยจะถูกส่งต่อไปยังที่เก็บ GitHub สาธารณะที่ผู้โจมตีควบคุม โดยมีคำอธิบายว่า 'Miasma: The Spreading Blight'
นักสืบระบุว่า การเปลี่ยนแปลงโค้ดที่เก่าแก่ที่สุดที่มีคำอธิบายนี้ คือวันที่ 29 พฤษภาคม 2026 ซึ่งบ่งชี้ว่าอาจเป็นการเริ่มต้นปฏิบัติการอย่างจริงจัง หรือเป็นขั้นตอนการทดสอบเบื้องต้นในช่วงเวลาดังกล่าว
ภายในสภาพแวดล้อมของ GitHub มัลแวร์จะตรวจสอบที่เก็บข้อมูลที่สามารถเข้าถึงได้ด้วยโทเค็นที่ถูกบุกรุก วิเคราะห์คำจำกัดความของเวิร์กโฟลว์ผ่านการสืบค้น GraphQL และแทรกเวิร์กโฟลว์ที่เป็นอันตรายโดยใช้การเปลี่ยนแปลง createCommitOnBranch วิธีนี้ช่วยให้การเปลี่ยนแปลงที่เป็นอันตรายปรากฏเป็นคอมมิตที่ได้รับการตรวจสอบและลงนามด้วยการเข้ารหัสลับ
คุณสมบัติขั้นสูงสำหรับการคงสิทธิ์และการยกระดับสิทธิ์
จากการวิเคราะห์พบว่ามัลแวร์ดังกล่าวมีฟังก์ชันเพิ่มเติมอีกหลายอย่าง:
ความพยายามที่จะยกระดับสิทธิ์โดยการเปิดใช้งานคอนเทนเนอร์ที่ทำการ bind-mount ไดเร็กทอรี /etc/sudoers.d ของโฮสต์ และให้สิทธิ์การเข้าถึง sudo โดยไม่ต้องใช้รหัสผ่านแก่ CI runner
ตรวจจับโซลูชันรักษาความปลอดภัยปลายทาง เช่น CrowdStrike, SentinelOne, Carbon Black และ StepSecurity Harden-Runner ก่อนที่จะเริ่มกิจกรรมที่เป็นอันตราย
กลไกการคงอยู่ของมัลแวร์ที่แทรกฮุก SessionStart เข้าไปใน Anthropic Claude Code และสร้างไฟล์ tasks.json ที่เป็นอันตรายซึ่งกำหนดค่าด้วย 'runOn': 'folderOpen' สำหรับโปรเจ็กต์ Microsoft Visual Studio Code เพื่อให้มั่นใจว่าไฟล์ดังกล่าวจะถูกเรียกใช้งานในระหว่างเซสชันการพัฒนาในอนาคต
ให้ความสำคัญกับการรั่วไหลของข้อมูลประจำตัวบนระบบคลาวด์มากขึ้น
การเปลี่ยนแปลงครั้งสำคัญในไวรัส Miasma คือการมุ่งเน้นที่การรวบรวมข้อมูลประจำตัวบนคลาวด์มากขึ้น โมดูลใหม่ที่มุ่งเป้าไปที่สภาพแวดล้อม Google Cloud Platform (GCP) และ Microsoft Azure จะรวบรวมข้อมูลเกี่ยวกับข้อมูลประจำตัวบนคลาวด์ทั้งหมดที่สามารถเข้าถึงได้จากเครื่องที่ติดไวรัส
เวอร์ชันก่อนหน้านี้เน้นไปที่การดึงข้อมูลลับจากสภาพแวดล้อมคลาวด์เป็นหลัก การเพิ่มตัวเก็บรวบรวมข้อมูลที่เน้นด้านตัวตนแสดงให้เห็นถึงการเปลี่ยนแปลงเชิงกลยุทธ์ไปสู่การเข้าถึงคลาวด์โดยตรงและการใช้ประโยชน์จากตัวตนที่มีสิทธิ์พิเศษภายในโครงสร้างพื้นฐานคลาวด์
สิ่งที่ทำให้การตรวจจับทำได้ยากยิ่งขึ้นก็คือ การติดเชื้อแต่ละครั้งจะสร้างข้อมูลที่เข้ารหัสเฉพาะตัว ซึ่งการปรับแต่งเฉพาะนี้ขัดขวางการตรวจจับโดยใช้ลายเซ็น การติดตามมัลแวร์ และการเชื่อมโยงเวอร์ชันระหว่างเหตุการณ์ต่างๆ อย่างมาก
การประนีประนอมเบื้องต้นและการแทรกซึมของห่วงโซ่อุปทาน
หลักฐานที่มีอยู่บ่งชี้ว่าแคมเปญนี้เริ่มต้นจากการที่บัญชี GitHub ของพนักงาน Red Hat ถูกแฮ็ก นักสืบเชื่อว่าบัญชีดังกล่าวเป็นจุดเริ่มต้นของการติดเชื้อ ทำให้ผู้โจมตีสามารถแทรกโค้ดที่เป็นอันตรายเข้าไปในแพ็กเกจที่ได้รับผลกระทบได้
รายงานระบุว่า บัญชีที่ถูกแฮ็กได้ทำการส่ง commit ที่เป็นอันตรายเข้าไปใน repository ของ Red Hat Insights สองแห่ง โดยข้ามขั้นตอนการตรวจสอบโค้ดที่กำหนดไว้ และนำ payload ที่เป็นอันตรายเข้าสู่ห่วงโซ่อุปทานซอฟต์แวร์
แนวทางการรับมือและแก้ไขเหตุการณ์ฉุกเฉิน
องค์กรที่ติดตั้งแพ็กเกจเวอร์ชันที่ได้รับผลกระทบควรแยกส่วนระบบที่ได้รับผลกระทบโดยทันที ลบแพ็กเกจที่เป็นอันตราย เปลี่ยนข้อมูลประจำตัวที่อาจถูกเปิดเผยทั้งหมด ตรวจสอบกิจกรรมบน GitHub และ npm เพื่อหาสัญญาณของการเข้าถึงโดยไม่ได้รับอนุญาต และตรวจสอบสภาพแวดล้อมเพื่อหากลไกการคงอยู่ของข้อมูล ควรให้ความสนใจเป็นพิเศษกับการแก้ไขที่ไม่ได้รับอนุญาตซึ่งเกี่ยวข้องกับ:
ไฟล์ ~/.claude/settings.json, .vscode/tasks.json, .github/workflows/codeql.yml และ .github/setup.js
ควรบังคับใช้มาตรการควบคุมการเข้าถึงที่เข้มงวดทั้งในสภาพแวดล้อมการพัฒนาและการใช้งานบนคลาวด์
เนื่องจากมัลแวร์สามารถทำงานในพื้นหลังและคงอยู่ภายในเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ การถอนการติดตั้งแพ็กเกจ npm ที่ได้รับผลกระทบหรือการลบไดเร็กทอรี node_modules เพียงอย่างเดียวจึงไม่ถือว่าเป็นการแก้ไขปัญหาที่เพียงพอ
สำหรับสภาพแวดล้อม CI/CD การดำเนินการเวิร์กโฟลว์ที่ได้รับผลกระทบควรถูกระงับทันที องค์กรควรยกเลิกไฟล์ที่สร้างขึ้นในระหว่างช่วงเวลาที่ได้รับผลกระทบ และตรวจสอบอย่างละเอียดว่ามีการสร้างรีลีส รูปภาพคอนเทนเนอร์ แพ็กเกจ npm ไฟล์การปรับใช้ หรือส่วนประกอบซอฟต์แวร์อื่น ๆ หลังจากที่แพ็กเกจที่เป็นอันตรายถูกนำเข้ามาในสภาพแวดล้อมหรือไม่