- การโจมตีห่วงโซ่อุปทาน npm ที่ใช้งานอยู่ใช้ประโยชน์จากการฟิชชิ่งและการยึดบัญชีผู้ดูแลระบบเพื่อผลักดันการเผยแพร่ที่มีโทรจัน
- มัลแวร์ "Shai-Hulud" ที่แพร่กระจายตัวเองขโมยข้อมูลลับและเผยแพร่แพ็คเกจที่ถูกบุกรุกซ้ำเป็นจำนวนมาก
- GitHub กำลังบังคับใช้การควบคุมที่เข้มงวดยิ่งขึ้น: 2FA สำหรับการเผยแพร่ในเครื่อง โทเค็นแบบละเอียดอายุสั้น และการเผยแพร่ที่เชื่อถือได้
- คำแนะนำด้านระบบนิเวศเน้นย้ำการหมุนเวียนโทเค็น การตรวจสอบการอ้างอิง และการนำ 2FA บนพื้นฐาน FIDO และเวิร์กโฟลว์ที่รองรับโดย OIDC มาใช้

โอเพนซอร์สเป็นพลังขับเคลื่อนการพัฒนาสมัยใหม่ แต่ขนาดและความเปิดกว้างของโอเพนซอร์สยังสร้างพื้นผิวการโจมตีที่กว้างอีกด้วย ความปลอดภัย npm จะต้องพัฒนาอย่างต่อเนื่องเพื่อให้ทันต่อศัตรู
ในช่วงสัปดาห์ที่ผ่านมา นักวิจัยและหน่วยงานทะเบียนได้ให้รายละเอียดเกี่ยวกับเหตุการณ์ต่างๆ ที่เน้นไปที่ npm ซึ่งผสมผสานวิศวกรรมสังคม การขโมยข้อมูลประจำตัว และ การเผยแพร่แพ็คเกจที่เป็นอันตราย— สิ้นสุดลงด้วยแคมเปญที่สามารถแพร่กระจายผ่านเวิร์กโฟลว์การเผยแพร่ของผู้ดูแลระบบที่เชื่อถือได้
คลื่นการโจมตีล่าสุดต่อระบบนิเวศ npm

รายงานหลายฉบับอธิบายถึงการฟิชชิ่งแบบกำหนดเป้าหมายที่มุ่งเป้าไปที่ผู้ดูแลระบบ npm ตามมาด้วยการผลักดันเวอร์ชันใหม่อย่างรวดเร็ว เพย์โหลดหลังการติดตั้ง ที่ดำเนินการบนเครื่องนักพัฒนาและระบบ CI
แคมเปญหนึ่งที่ติดตามในชื่อ "Shai-Hulud" ส่งมอบเวิร์มหลายขั้นตอนที่ค้นหาความลับในสภาพแวดล้อมต่างๆ ใช้ API ของ GitHub ในทางที่ผิด และพยายามที่จะ ขยายพันธุ์ด้วยตนเอง โดยการเผยแพร่แพ็กเกจที่ปนเปื้อนภายใต้บัญชีที่ถูกบุกรุก
ทีมงานด้านความปลอดภัยและรีจิสทรีตอบสนองอย่างรวดเร็ว: GitHub ลบแพ็คเกจที่ได้รับผลกระทบหลายร้อยรายการและเพิ่มบล็อกที่เชื่อมโยงกับตัวบ่งชี้มัลแวร์ของการบุกรุก ขั้นตอนที่ ขัดขวางการแพร่กระจายต่อไป ทั่วทั้งทะเบียน
การสอบสวนแยกกันเชื่อมโยงกลยุทธ์กับเหตุการณ์ก่อนหน้านี้ (รวมถึงการขโมยเวิร์กโฟลว์ "S1ngularity"/Nx และการอัปเดตแพ็คเกจยอดนิยม) ซึ่งเน้นย้ำถึงการยกระดับที่ชัดเจนจากการขโมยข้อมูลประจำตัวแบบแยกส่วนเป็น ห่วงโซ่อุปทานอัตโนมัติ การละเมิด
- แพ็คเกจที่เชื่อถือได้ได้รับการอัปเดตด้วยสคริปต์หลังการติดตั้งที่ออกแบบมาเพื่อเก็บเกี่ยวโทเค็นและ ข้อมูลที่รั่วไหล.
- บัญชีที่ถูกบุกรุกเผยแพร่เวอร์ชันใหม่ ส่งผลให้ความเสี่ยงเพิ่มขึ้นในหลายโครงการและ การพึ่งพาปลายน้ำ.
แผนงานของ GitHub เพื่อทำให้การเผยแพร่ npm แข็งแกร่งขึ้น
เพื่อควบคุมการใช้โทเค็นในทางที่ผิดและควบคุมมัลแวร์แบบเวิร์ม GitHub ได้สรุปการเปลี่ยนแปลงที่จำกัดพื้นผิวการโจมตีการเผยแพร่และยกระดับมาตรฐาน การตรวจสอบสิทธิ์ของผู้ดูแลระบบ.
- การจัดพิมพ์ในท้องถิ่นจะต้องมี การตรวจสอบสิทธิ์แบบสองปัจจัย (2FA)โดยไม่มีตัวเลือกบายพาส
- โทเค็นแบบละเอียดที่ใช้ในการเผยแพร่จะมี อายุการใช้งานสูงสุดเจ็ดวัน.
- โทเค็นคลาสสิกแบบดั้งเดิมจะไม่ได้รับการสนับสนุนอีกต่อไป การเผยแพร่ผ่านโทเค็น จะถูกปฏิเสธโดยค่าเริ่มต้น
- 2FA ที่ใช้ TOTP จะถูกยกเลิกเพื่อสนับสนุน FIDO/การตรวจสอบสิทธิ์บนเว็บ วิธีการ
- การเผยแพร่ที่เชื่อถือได้จะขยายตัวพร้อมคุณสมบัติเพิ่มเติม ผู้ให้บริการ CI/CD.
มาตรการเหล่านี้จะถูกนำเสนออย่างค่อยเป็นค่อยไป โดยมีเอกสารประกอบและการสนับสนุนการโยกย้ายเพื่อช่วยให้ผู้ดูแลระบบสามารถปรับได้ เวิร์กโฟลว์อย่างปลอดภัย พร้อมลดการหยุดชะงักให้เหลือน้อยที่สุด ปรึกษา el Impacto de GitHub Copilot และการออกแบบ สำหรับผู้เข้าร่วม cambios en flujos de trabajo
การทำงานของแคมเปญ Shai-Hulud
ผู้ก่อภัยคุกคามโดยทั่วไปจะเริ่มต้นด้วยการปลอมแปลง npm หรือบริการที่เกี่ยวข้องเพื่อหลอกผู้ดูแลระบบ จากนั้นใช้ข้อมูลประจำตัวที่ขโมยมาเพื่อเผยแพร่การอัปเดตที่รัน หลังการติดตั้งที่เป็นอันตราย ลำดับ.
เมื่อดำเนินการแล้ว เพย์โหลดจะระบุตัวแปรสภาพแวดล้อมท้องถิ่น ไฟล์การกำหนดค่า การตั้งค่า npm และคีย์คลาวด์ นอกจากนี้ยังใช้ GitHub API เพื่อแสดงรายการที่เก็บข้อมูลเข้าถึงได้ สร้างสาขา และลบ เวิร์กโฟลว์ที่เป็นอันตราย ที่ทำให้การรวบรวมความลับและการคงอยู่เป็นแบบอัตโนมัติ
นักวิจัยได้สังเกตเห็นการใช้ยูทิลิตี้สแกนความลับ (เช่น TruffleHog) เพื่อขยายเครือข่ายข้อมูลประจำตัวที่เก็บรวบรวมไว้ก่อนที่จะลบร่องรอย ข้อมูลถูกจัดเตรียมไปยังจุดปลายทางที่ผู้โจมตีควบคุม และในบางกรณี ถูกผลักไปยังที่เก็บสาธารณะที่สร้างขึ้นใหม่ชื่อ “ไชฮูลุด” ภายใต้บัญชีของเหยื่อ
ลักษณะเฉพาะของเวิร์มคือการจำลองตัวเอง: หากพบโทเค็น npm มันจะพยายามเผยแพร่แพ็คเกจที่แก้ไข ซึ่งจะเปลี่ยนสิทธิ์ของผู้ดูแลระบบให้กลายเป็นเครื่องมือสำหรับ การแพร่กระจายแบบเลขชี้กำลัง.
- พฤติกรรมที่สำคัญ: การละเมิดหลังการติดตั้งการดำเนินการ API ของ GitHub อัตโนมัติ และการแทรกเวิร์กโฟลว์ที่เก็บข้อมูล
- ภัยคุกคาม ได้แก่ การบุกรุกบัญชีคลาวด์ การขโมย IP ผ่านมิเรอร์ที่เก็บข้อมูลทั้งหมด และ การเคลื่อนไหวด้านข้าง ข้ามองค์กร
ขอบเขตและผลกระทบ
ทีมวิจัยได้จัดทำรายการรุ่นที่ได้รับผลกระทบหลายร้อยรายการจากโครงการต่างๆ มากมาย รวมถึงไลบรารีที่ใช้กันอย่างแพร่หลายด้วย ยอดดาวน์โหลดหลายล้านครั้งต่อสัปดาห์เพิ่มรัศมีการระเบิดให้กับผู้บริโภคที่ไม่ทันระวัง
ผลการวัดจากระยะไกลและการตอบสนองต่อเหตุการณ์บ่งชี้ว่าองค์กรในอเมริกาเหนือและยุโรปเป็นกลุ่มที่ได้รับผลกระทบจากโหลดที่เกี่ยวข้องมากที่สุด โดยมีความเสี่ยงตั้งแต่ การขโมยข้อมูลและการขโมยข้อมูล เพื่อการหยุดชะงักในกระบวนการสร้างและใช้งาน
ผลการค้นพบด้านความปลอดภัยที่เกี่ยวข้องกับ npm ที่ต้องจับตามอง
นักวิเคราะห์ยังได้ทำเครื่องหมาย fezbox ซึ่งเป็นแพ็คเกจ npm ที่มีอายุสั้นที่ฝังไว้ เพย์โหลดที่ใช้รหัส QR เทคนิคการดึงและดำเนินการ JavaScript เพื่อดึงข้อมูลรับรองของเบราว์เซอร์จากคุกกี้ ซึ่งเป็นรูปแบบที่ไม่ธรรมดาของการหลบเลี่ยงแบบซ่อนข้อมูล
แม้ว่าแอปต่างๆ จำนวนมากจะหลีกเลี่ยงการเก็บรหัสผ่านในคุกกี้ในปัจจุบัน แต่ด้วยวิธีการดังกล่าวก็เน้นย้ำถึงความรวดเร็วที่ผู้โจมตีทำซ้ำได้ การบดบังและการจัดส่ง ภายในระบบนิเวศแพ็คเกจ
การเผยแพร่ที่เชื่อถือได้: การเปลี่ยนแปลงที่กว้างขวางยิ่งขึ้นทั่วทั้งทะเบียน
การเผยแพร่ที่เชื่อถือได้—แนะนำโดยกลุ่มความปลอดภัยโอเพนซอร์ส—แทนที่คีย์ API ที่มีอายุยืนยาวด้วยคีย์อายุสั้น ข้อมูลประจำตัวที่ได้รับการสนับสนุนจาก OIDC จากระบบ CI ช่วยลดการแพร่กระจายของโทเค็นและความเสี่ยงในการขโมยข้อมูล
พบเห็นครั้งแรกบน PyPI และต่อมาได้รับการนำมาใช้โดย RubyGems, crates.io, npm และ NuGet แนวทางนี้ทำให้มีแหล่งที่มาของการเข้ารหัสและการรับประกันที่แข็งแกร่งยิ่งขึ้นเกี่ยวกับ อย่างไรและที่ไหน มีการสร้างแพ็คเกจแล้ว
สิ่งที่ผู้ดูแลระบบสามารถทำได้ตอนนี้
มีขั้นตอนทันทีที่ผู้ดูแลระบบและทีมงานสามารถดำเนินการเพื่อลดการเปิดเผยในขณะที่การป้องกันระดับรีจิสทรีกำลังเปิดตัวและปรับปรุงโดยรวม ท่ารักษาความปลอดภัย ของโครงการของพวกเขา
- นำการเผยแพร่ที่เชื่อถือได้มาใช้กับ OIDC และลบการเผยแพร่ที่มีอายุยาวนาน โทเค็น API จาก CI/CD
- เปิดใช้งานและบังคับใช้ FIDO/WebAuthn 2FA สำหรับผู้ให้บริการ npm, GitHub และ CI
- ตรวจสอบและล็อคดาวน์ การอนุญาตการเผยแพร่; ลบโทเค็นและบัญชีที่ไม่ได้ใช้
- การตรวจสอบความสัมพันธ์ (โดยเฉพาะการอัปเดตล่าสุด) และ เวอร์ชันพิน เพื่อลดการเบี่ยงเบนของห่วงโซ่อุปทาน
- หมุนเวียน npm, GitHub และข้อมูลประจำตัวคลาวด์ สมมติว่ามีข้อมูลลับใดๆ อยู่บน เครื่องพัฒนา อาจถูกเปิดเผยได้
- สแกนไฟล์เวิร์กโฟลว์ที่น่าสงสัย (เช่น .github/workflows/shai-hulud-workflow.yml) และ กิ่งก้านที่ไม่คาดคิด.
ตัวบ่งชี้และไอเดียการล่า
ทีมงานสามารถเสริมการตรวจจับด้วยตัวบ่งชี้และแบบสอบถามที่ใช้ร่วมกัน โดยปรับแต่งให้เหมาะกับเครื่องมือในพื้นที่ในขณะที่หลีกเลี่ยงสัญญาณรบกวน บวกเท็จ.
- ตัวอย่าง SHA-256 ที่พบเห็นในป่า: 46faab8ab153fae6e80e7cca38eab363075bb524edd79e42269217a083628f09
- รายงานสิ่งประดิษฐ์ Webhook: hxxps://webhooksite/bb8ca5f6-4175-45d2-b042-fc9ebb8170b7
- ระวังการสร้างที่เก็บสาธารณะที่ชื่อ “ไชฮูลุด” ภายใต้บัญชีผู้สนับสนุน
- มองหา สคริปต์หลังการติดตั้ง รูปแบบการดำเนินการและการเปลี่ยนแปลงการพึ่งพาอย่างกะทันหัน
ตัวอย่างคำแนะนำการล่าสัตว์ (ปรับให้เหมาะกับแพลตฟอร์มของคุณ): ตรวจสอบการเชื่อมต่อกับโดเมนเว็บไซต์ Webhook; ทำเครื่องหมายเขียน shai-hulud-workflow.yml; แจ้งเตือนเกี่ยวกับบรรทัดคำสั่งที่เรียกใช้ "trufflehog" ในเอเจนต์การสร้าง และตรวจสอบการเปลี่ยนแปลงที่เก็บข้อมูลล่าสุดที่แนะนำ เวิร์กโฟลว์ CI โดยไม่ได้รับอนุมัติ
ไฮไลท์ไทม์ไลน์
ปลายเดือนสิงหาคมพบการละเมิดที่มุ่งเป้าไปที่ข้อบกพร่องของเวิร์กโฟลว์ที่รั่วไหลโทเค็นการเผยแพร่และนำไปสู่การเผยแพร่แบบโทรจัน ต้นถึงกลางเดือนกันยายนทำให้เกิดการโจมตีที่กว้างขวางขึ้นซึ่งเกี่ยวข้องกับ แพ็กเกจ npm ยอดนิยมและจากนั้นก็ถึงการรณรงค์ Shai-Hulud ที่มีการแพร่พันธุ์แบบหนอนและการเก็บเกี่ยวแบบลับอย่างก้าวร้าว
ตลอดมา การตอบสนองที่ประสานงานกันจากผู้ดำเนินการรีจิสทรีและผู้จำหน่ายระบบรักษาความปลอดภัยได้ลบเวอร์ชันที่ถูกบุกรุก บล็อก IoC ที่ทราบ และเร่งแผนงานเพื่อบังคับใช้มาตรการที่เข้มงวดยิ่งขึ้น การรับรองความถูกต้องและแหล่งที่มา สำหรับการเผยแพร่ npm
เหตุการณ์เหล่านี้แสดงให้เห็นว่าผู้ก่อภัยคุกคามสามารถเปลี่ยนความไว้วางใจของผู้ดูแลระบบให้กลายเป็นการกระจายสินค้าได้อย่างรวดเร็วเพียงใด โค้ดที่เป็นอันตรายและเหตุใดระบบนิเวศจึงกำลังมุ่งหน้าสู่ FIDO 2FA ข้อมูลประจำตัวอายุสั้น และการเผยแพร่ที่รับรองโดย CI เพื่อตัดการโจมตีทุกประเภท
