ความปลอดภัยของ npm อยู่ภายใต้แรงกดดัน: การโจมตีแบบเวิร์ม การฟิชชิ่งของผู้ดูแลระบบ และกฎที่เข้มงวดยิ่งขึ้นของ GitHub

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

ภาพประกอบความปลอดภัยของ npm

โอเพนซอร์สเป็นพลังขับเคลื่อนการพัฒนาสมัยใหม่ แต่ขนาดและความเปิดกว้างของโอเพนซอร์สยังสร้างพื้นผิวการโจมตีที่กว้างอีกด้วย ความปลอดภัย npm จะต้องพัฒนาอย่างต่อเนื่องเพื่อให้ทันต่อศัตรู

ในช่วงสัปดาห์ที่ผ่านมา นักวิจัยและหน่วยงานทะเบียนได้ให้รายละเอียดเกี่ยวกับเหตุการณ์ต่างๆ ที่เน้นไปที่ 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 แนวทางนี้ทำให้มีแหล่งที่มาของการเข้ารหัสและการรับประกันที่แข็งแกร่งยิ่งขึ้นเกี่ยวกับ อย่างไรและที่ไหน มีการสร้างแพ็คเกจแล้ว

API
บทความที่เกี่ยวข้อง:
API Evolution: ขอบเขตใหม่ในการบูรณาการ ความปลอดภัย และ AI เชิงตัวแทน

สิ่งที่ผู้ดูแลระบบสามารถทำได้ตอนนี้

มีขั้นตอนทันทีที่ผู้ดูแลระบบและทีมงานสามารถดำเนินการเพื่อลดการเปิดเผยในขณะที่การป้องกันระดับรีจิสทรีกำลังเปิดตัวและปรับปรุงโดยรวม ท่ารักษาความปลอดภัย ของโครงการของพวกเขา

  • นำการเผยแพร่ที่เชื่อถือได้มาใช้กับ 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 เพื่อตัดการโจมตีทุกประเภท

กระทู้ที่เกี่ยวข้อง: