TL; DR
ระหว่างวันที่ 1 ถึง 6 พฤษภาคม 2026 ผู้เผยแพร่ npm รายเดียว alone5511มีการเผยแพร่แพ็กเกจแปดรายการที่ไม่มีการพึ่งพาใดๆ ซึ่งดูเหมือนจะมุ่งเป้าไปที่... ไมโครซอฟท์ / เนมสเปซแพ็กเกจภายในแบบ Azure
แพ็กเกจเหล่านั้นใช้ชื่อต่างๆ เช่น cosmos-explorer, ms.analytics-web, icons.generated, latency-tracking-internal, carbonite-internalและ carboniteappหลายเวอร์ชันใช้ค่า semver สูง เช่น 99.9.0 และ 99.9.13ซึ่งเป็นกลยุทธ์การสร้างความสับสนในการพึ่งพาที่พบได้ทั่วไป โดยมีจุดประสงค์เพื่อเอาชนะแพ็กเกจภายในส่วนตัว
แพ็กเกจพี่น้องทั้งแปดแพ็กเกจถูกยกเลิกการเผยแพร่จาก npm โดยผู้เผยแพร่ระหว่างวันที่ 1 พฤษภาคมถึง 6 พฤษภาคม 2026 ข้อมูลเมตาของรีจิสทรีโดยตรงยืนยันว่าไฟล์ทาร์บอลส่งคืนข้อผิดพลาด HTTP 404 จาก CDN ของ npm แล้ว
อย่างไรก็ตาม การจัดกลุ่มข้อมูลยังคงมีความสำคัญอยู่
ปริมาณข้อมูลในตัวอย่างมาตรฐาน carbonite-internal:99.9.0 และ carboniteapp:99.9.0ทำงานในระหว่างการติดตั้งผ่านทาง preinstall hook จะรวบรวมข้อมูลลายนิ้วมือของโฮสต์ และดึงที่อยู่ IP สาธารณะของเครื่องจาก api.ipify.orgสร้าง "รายงานข่าวกรองระดับมืออาชีพ" ปลอมขึ้นมา และระบุตัวผู้ดำเนินรายการว่าเป็น... RCE VERIFIEDและส่งรายงานไปยังบอท Telegram ผ่านทาง Telegram Bot API
ระบบเตือนภัยมัลแวร์ล่วงหน้าของ Xygeni (MEW) ระบบจัดประเภทตัวอย่างมาตรฐานว่าน่าจะเป็นมัลแวร์ โดยมีคะแนนสูงกว่า 91/100
เรากำลังติดตามเรื่องนี้ในฐานะแคมเปญสร้างความสับสนในการตั้งชื่อส่วนประกอบภายในของ Microsoft โดยใช้การระบุตัวตนโฮสต์ในระหว่างการติดตั้งและการขโมยข้อมูลผ่านบีคอนของ Telegram
กลุ่มผลิตภัณฑ์: แปดแพ็กเกจ จากผู้จัดพิมพ์รายเดียว
บัญชีผู้จัดพิมพ์ alone5511 ใช้ที่อยู่อีเมล:
บัญชีดังกล่าวไม่มีอีเมลที่ได้รับการยืนยัน ไม่มี SCM ผ่านการตรวจสอบ และมีคะแนนความน่าเชื่อถือของ npm อยู่ที่ 2
ข้อมูลประจำตัว GitHub ที่อ้างอิง alonebeast002/beastcryptนอกจากนี้ยังปรากฏในบริบทของกลุ่มคลัสเตอร์ด้วย
ผู้เผยแพร่ได้ปล่อยแพ็กเกจที่เกี่ยวข้องแปดรายการในช่วงเวลาหกวัน แพ็กเกจทั้งหมดไม่มีการพึ่งพาใดๆ และมีรูปแบบทั่วไปเหมือนกัน คือ แพ็กเกจขนาดเล็ก สคริปต์ระหว่างการติดตั้ง การระบุตัวตนโฮสต์ และการส่งสัญญาณผ่าน Telegram
| # | แพ็คเกจ | เวอร์ชันที่เป็นอันตราย | สร้างเมื่อ เวลา UTC | ยังไม่ได้เผยแพร่, UTC | ยืนยันข้อมูลบรรทุกแล้ว | ติดตั้งตะขอ |
|---|---|---|---|---|---|---|
| 1 | นักสำรวจจักรวาล | 1.1.3 | 2026-05-01T18:26Z | 2026-05-01T19:01Z | สันนิษฐานว่า เป็นผู้เผยแพร่/กลุ่มเดียวกัน | ติดตั้งล่วงหน้า สันนิษฐาน |
| 2 | สัญญาณ SDK เว็บ | 1.0.0, 10.0.0 | 2026-05-04T13:57Z | 2026-05-04T18:51Z | กล่าวอ้าง | ติดตั้งล่วงหน้า สันนิษฐาน |
| 3 | ms.analytics-web | 99.0.0, 99.9.13 | 2026-05-04T18:47Z | 2026-05-05T10:07Z | กล่าวอ้าง | ติดตั้งล่วงหน้า สันนิษฐาน |
| 4 | ไอคอนที่สร้างขึ้น | 99.9.13 | 2026-05-05T10:02Z | 2026-05-05T12:57Z | กล่าวอ้าง | ติดตั้งล่วงหน้า สันนิษฐาน |
| 5 | การติดตามความหน่วง | 99.9.0 | 2026-05-05T11:57Z | 2026-05-05T12:57Z | กล่าวอ้าง | ติดตั้งล่วงหน้า สันนิษฐาน |
| 6 | การติดตามความหน่วงภายใน | เวอร์ชันถูกลบออกจากบันทึกรีจิสทรี | 2026-05-06T06:02Z | 2026-05-06T08:35Z | กล่าวอ้าง | ติดตั้งล่วงหน้า สันนิษฐาน |
| 7 | แอปคาร์บอนไนท์ | 99.9.0 | 2026-05-06T05:49Z | 2026-05-06T08:35Z | ใช่แล้ว การทำงานของระบบสแกนแบบเต็มรูปแบบ | preinstall: node index.js |
| 8 | คาร์บอนไนต์ภายใน | 99.9.0 | 2026-05-06T06:14Z | 2026-05-06T08:36Z | ใช่แล้ว การทำงานของระบบสแกนแบบเต็มรูปแบบ | preinstall: node index.js |
จำนวนรวมของเวอร์ชันที่เป็นอันตรายในคลัสเตอร์: 9+.
บันทึกแพ็กเกจพี่น้องบางรายการมีการลบเวอร์ชันออกหลังจากยกเลิกการเผยแพร่ ซึ่งจำกัดการสร้างข้อมูลขึ้นใหม่ที่ถูกต้องจากข้อมูลทะเบียนสาธารณะเพียงอย่างเดียว
เหตุใดชื่อจึงมีความสำคัญ
ชื่อแพ็กเกจเป็นสัญญาณที่ชัดเจนที่สุด
ดูเหมือนว่าจะเป็นแพ็กเกจ SDK ภายใน, แพ็กเกจเก็บข้อมูลทางไกล, แพ็กเกจสร้างไอคอน, แพ็กเกจสำรวจไฟล์ หรือแพ็กเกจติดตามความหน่วง:
นี่ไม่ใช่การตั้งชื่อแบบสุ่ม ดูเหมือนว่ามันถูกปรับแต่งมาแล้ว ความสับสนในการพึ่งพา.
แพ็กเกจรุ่นหลังๆ หลายแพ็กเกจใช้หมายเลขเวอร์ชันสูง:
เรื่องนี้สำคัญเพราะการโจมตีแบบสับสนเรื่องการพึ่งพา (dependency-confusion attacks) มักอาศัยแพ็กเกจสาธารณะที่มีเวอร์ชันสูงกว่าแพ็กเกจภายในที่อยู่ในรีจิสทรีส่วนตัว หากระบบสร้างโปรแกรมถูกตั้งค่าไม่ถูกต้อง ตัวจัดการแพ็กเกจอาจเลือกเวอร์ชัน npm สาธารณะแทนเวอร์ชันภายในที่ตั้งใจไว้
นอกจากนี้ ดูเหมือนว่าสำนักพิมพ์จะพัฒนาไปในทิศทางที่ดีขึ้นเรื่อยๆ ตามเวลา
แพ็กเกจรุ่นแรกๆ ใช้เวอร์ชันที่มีรูปลักษณ์ปกติ เช่น 1.1.3 และ 1.0.0ต่อมาพัสดุถูกย้ายเข้าไป 99.x.x และ 99.9.xการเปลี่ยนแปลงดังกล่าวสอดคล้องกับการที่นักแสดงปรับแต่งแคมเปญเพื่อพฤติกรรมการแก้ไขแพ็กเกจภายใน
เกิดอะไรขึ้นระหว่างการติดตั้ง
ตัวอย่างมาตรฐาน carbonite-internal:99.9.0 และ carboniteapp:99.9.0ประกาศ preinstall ตะขอ:
นั่นหมายความว่าโค้ดส่วนที่จะรันจะทำงานก่อนที่ npm จะติดตั้ง dependency เสร็จสมบูรณ์
นี่คือจุดเริ่มต้นการติดตั้งที่เร็วที่สุดเท่าที่จะเป็นไปได้ นักพัฒนาไม่จำเป็นต้องนำเข้าแพ็กเกจ การสร้างไม่จำเป็นต้องเรียกใช้โค้ดแอปพลิเคชัน การติดตั้งเพียงอย่างเดียวก็เพียงพอแล้ว
ไฟล์ข้อมูลมีขนาดเล็กประมาณ 2.4 กิโลไบต์ และไม่มีจุดประสงค์การใช้งานใดๆ นอกจากการส่งสัญญาณบอกตำแหน่ง
พฤติกรรมของเพย์โหลด
การขอ index.js ไฟล์นี้จะดำเนินการหลักๆ สี่อย่าง
ขั้นแรก มันจะโทรออก api.ipify.org เพื่อดึงที่อยู่ IP สาธารณะของโฮสต์:
ประการที่สอง ระบบจะรวบรวมข้อมูลลายนิ้วมือโฮสต์พื้นฐานโดยใช้ API ของระบบปฏิบัติการ Node.js:
ประการที่สาม ระบบจะจัดรูปแบบข้อมูลที่รวบรวมได้เป็นรายงานหลายบรรทัดพร้อมแบนเนอร์ที่ชัดเจน:
รายงานฉบับนี้จบลงด้วยข้อความดังนี้:
ประการที่สี่ ระบบจะส่งรายงานไปยัง Telegram ผ่านทาง... sendTelegram(report) ฟังก์ชันนี้ใช้เอนด์พอยต์ Telegram Bot API:
โทเค็นบอท Telegram ที่แน่นอนจะถูกเก็บรักษาไว้ภายในไฟล์ tarball ที่ยังไม่ได้เผยแพร่ และควรจะสามารถกู้คืนได้จากที่เก็บข้อมูลภายในของ npm
เหตุใดแบนเนอร์ “RCE VERIFIED” จึงมีความสำคัญ
ความหมายตรงตัว RCE VERIFIED ตัวบ่งชี้บ่งบอกถึงประสิทธิภาพในการปฏิบัติงาน
เพย์โหลดนี้ไม่ได้สร้างแบ็กดอร์ ไม่คงอยู่ในระบบ และไม่ขโมยข้อมูลประจำตัวของระบบคลาวด์โดยตรง แต่จะยืนยันว่ามีการเรียกใช้โค้ดเกิดขึ้นระหว่างการติดตั้งแพ็กเกจ
แค่นี้ก็เพียงพอสำหรับการทดสอบการพิสูจน์การทำงานโดยอาศัยความสับสนในการพึ่งพาแล้ว
หากผู้โจมตีได้รับข้อความ Telegram จากสภาพแวดล้อมเป้าหมาย พวกเขาก็จะรู้ว่าแพ็กเกจ npm สาธารณะนั้นได้รับการแก้ไขและเรียกใช้งานภายในโฮสต์จริง ตัวรัน CI เวิร์กสเตชันของนักพัฒนา หรือสภาพแวดล้อมการสร้างแล้ว
กล่าวอีกนัยหนึ่ง มัลแวร์ไม่ได้เพียงแค่รวบรวมข้อมูลเมตาของโฮสต์เท่านั้น แต่ยังตรวจสอบด้วยว่ากลไกการแก้ไขแพ็กเกจของเป้าหมายนั้นสามารถถูกโจมตีได้หรือไม่
การจำแนกประเภท Xygeni MEW
Xygeni MEW จำแนกตัวอย่างมาตรฐานดังนี้ อาจเป็นการกระทำที่มุ่งร้ายโดยมีคะแนนสูงกว่า 91/100
ผลการตรวจพบประกอบด้วย:
| ความรุนแรง | การตรวจพบ | ความหมาย |
|---|---|---|
| วิกฤต | การขโมยข้อมูลที่ละเอียดอ่อน | req.write(data) จะส่งรายงานลายนิ้วมือโฮสต์ไปยังคำขอ POST ขาออกของ Telegram |
| จุดสูง | สคริปต์การติดตั้งที่เป็นอันตราย | preinstall: node index.js จะเรียกใช้งานบีคอนในระหว่างการติดตั้ง |
| ต่ำ | คำขอที่น่าสงสัย | การค้นหาที่อยู่ IP สาธารณะผ่าน api.ipify.org |
| ต่ำ | คำขอที่น่าสงสัย | ปลายทางขาออกของ Telegram Bot API |
| ต่ำ | แพ็คเกจธรรมดา | แพ็คเกจนี้ไม่มีวัตถุประสงค์ที่สำคัญใดๆ นอกจากการส่งสัญญาณ |
| ข้อมูล | การแจงนับข้อมูลที่ละเอียดอ่อน | รายละเอียดของโฮสต์ เช่น เวลาทำงาน ข้อมูลผู้ใช้ และชื่อโฮสต์ จะถูกแสดงรายการออกมา |
ทั้งสอง carbonite-internal:99.9.0 และ carboniteapp:99.9.0 มีเพย์โหลดที่เหมือนกันทุกประการ รวมถึงรหัสการไหลของโค้ดและสคริปต์การติดตั้งที่มีไบต์เทียบเท่ากัน
ดัชนีโครงการผู้เผยแพร่ MEW ระบุว่าแพ็กเกจทั้งแปดรายการเป็นส่วนหนึ่งของกลุ่มผู้เผยแพร่/เพย์โหลดเดียวกัน
เหตุใดรูปแบบการยกเลิกการตีพิมพ์ด้วยตนเองจึงมีความสำคัญ
หนังสือทั้งแปดเล่มที่เป็นพี่น้องกันถูกสำนักพิมพ์ยกเลิกการตีพิมพ์ภายในเวลาไม่กี่นาทีถึงไม่กี่ชั่วโมงหลังจากตีพิมพ์
พฤติกรรมนั้นสำคัญ
ผู้ดูแลแพ็กเกจที่ถูกต้องตามกฎหมายอาจลบแพ็กเกจที่เผยแพร่แล้วออกบ้าง แต่ในกรณีนี้ดูเหมือนว่าแฮกเกอร์กำลังทำการล้างข้อมูล แพ็กเกจปรากฏขึ้น เรียกใช้เพย์โหลดในระหว่างการติดตั้งหากเป้าหมายสามารถแก้ไขได้ จากนั้นก็หายไปจากการเข้าถึงรีจิสทรีสาธารณะ
นั่นทำให้เกิดปัญหาสองประการสำหรับผู้เล่นฝ่ายรับ
ประการแรก ข้อมูลเมตาของ npm ที่เผยแพร่สู่สาธารณะจะไม่สมบูรณ์หลังจากยกเลิกการเผยแพร่ บันทึกเวอร์ชันบางส่วนอาจถูกลบออกหรือยากต่อการสร้างใหม่
ประการที่สอง ระบบป้องกันที่อาศัยสถานะรีจิสทรีปัจจุบันอาจพลาดแพ็กเกจที่เคยมีอยู่ระหว่างช่วงเวลาที่ช่องโหว่เปิดอยู่ แต่ไม่สามารถติดตั้งได้อีกต่อไป
ด้วยเหตุผลดังกล่าว npm จึงควรเก็บไฟล์ tarball ที่ยังไม่ได้เผยแพร่ไว้ภายในเพื่อใช้ในการตรวจสอบทางนิติวิทยาศาสตร์ บอท Telegram โทเค็นภายในไฟล์ทาร์บอลอาจช่วยในการระบุช่องทางการรับและสร้างภาพเหยื่อที่เป็นไปได้ขึ้นมาใหม่
ตัวบ่งชี้การถูกบุกรุกและการตรวจจับ
ผู้จัดพิมพ์และบัญชี
| สนาม | ความคุ้มค่า |
|---|---|
| ชื่อผู้ใช้ npm | alone5511 |
| อีเมลผู้เผยแพร่ npm | raistargaming703@gmail.com |
| ชื่อเสียงของ npm | 2 |
| ยืนยันอีเมลแล้ว | ไม่ |
| SCM การตรวจสอบแล้ว | ไม่ |
| อ้างอิงข้อมูลประจำตัว GitHub | alonebeast002/beastcrypt |
ชื่อแพ็กเกจที่ได้รับผลกระทบ
รูปแบบเวอร์ชันที่น่าสงสัย
เวอร์ชันระดับสูงเหล่านี้มีความสำคัญเป็นพิเศษในการตรวจสอบความสับสนในการพึ่งพา เนื่องจากอาจมีลำดับความสำคัญสูงกว่าเวอร์ชันแพ็กเกจส่วนตัว
จุดสิ้นสุดเครือข่าย
| ประเภท | ความคุ้มค่า |
|---|---|
| การตรวจสอบ IP สาธารณะ | https://api.ipify.org |
| อ่างระบายออก | https://api.telegram.org/bot<token>/sendMessage |
| วิธีการสกัดออก | Telegram Bot API POST |
เครื่องหมายบรรทุก
ค้นหาข้อความเหล่านี้ในสคริปต์การติดตั้ง:
นอกจากนี้ ให้ทำเครื่องหมายรูปแบบเอกสารนี้ด้วย:
โดยเฉพาะเมื่อใช้ร่วมกับ:
- ศูนย์การพึ่งพา
- ขนาดบรรจุภัณฑ์เล็กจิ๋ว
- ชื่อแพ็กเกจที่มองเข้าไปภายใน
- เวอร์ชันเซมเวอร์สูง
- API การระบุลายนิ้วมือของโฮสต์
- ปริมาณการใช้งาน Telegram Bot API
API การระบุตัวตนโฮสต์
เพย์โหลดมาตรฐานใช้:
นอกจากนี้ยังครอบคลุมถึง:
เพื่อบันทึกที่อยู่ IP สาธารณะของโฮสต์
หมายเหตุการตรวจจับ
มีกฎหลายข้อที่สามารถตรวจจับแคมเปญนี้และปิดกั้นรูปแบบต่างๆ ได้
ขั้นแรก ให้ตรวจสอบสคริปต์ npm install ที่ติดต่อกับ Telegram:
สคริปต์การติดตั้งแพ็กเกจไม่ควรใช้เมธอด POST ไปยัง Telegram โดยเด็ดขาด ให้ถือว่าการกระทำนี้เป็นการกระทำที่เป็นอันตราย เว้นแต่จะมีข้อยกเว้นที่ชัดเจนและได้รับการตรวจสอบแล้ว
ประการที่สอง ธง preinstall สคริปต์ในแพ็กเกจขนาดเล็กที่ไม่มีการพึ่งพาใดๆ และใช้ชื่อที่ดูเหมือนเป็นชื่อภายในองค์กร
การที่แพ็กเกจมีขนาดเล็ก เวอร์ชัน semver สูง และชื่อแบบ namespace ภายใน ถือเป็นสัญญาณบ่งชี้ถึงความสับสนในการพึ่งพา (dependency confusion) อย่างชัดเจน
ประการที่สาม ให้ระวังชื่อแพ็กเกจที่ดูเหมือนโมดูลวิศวกรรมส่วนตัวที่เผยแพร่โดยบัญชี npm สาธารณะที่มีชื่อเสียงต่ำ
ตัวอย่างจากกลุ่มนี้ได้แก่:
ประการที่สี่ ค้นหาการอ้างอิงไฟล์ล็อกไปยังชื่อแพ็กเกจทั้งแปดชื่อในระบบ CI และเวิร์กสเตชันของนักพัฒนา
ค้นหา:
การจับคู่ใดๆ ควรนำไปสู่การตรวจสอบความสับสนในการพึ่งพา (dependency-fusion review)
การดำเนินการลงทะเบียนที่แนะนำ
กลุ่มข้อมูลนี้ถูกยกเลิกการเผยแพร่ไปแล้ว ณ เวลาที่รายงานฉบับนี้จัดทำขึ้น อย่างไรก็ตาม การยกเลิกการเผยแพร่ไม่ได้ขจัดความเสี่ยงออกไป
คำแนะนำสำหรับการดำเนินการฝั่ง npm:
- ตรวจสอบว่าการยกเลิกการตีพิมพ์นั้นเป็นการดำเนินการล้างข้อมูลที่ริเริ่มโดยผู้โจมตี หรือเป็นการดำเนินการที่ถูกต้องโดยผู้ดูแลระบบ
- ระงับหรือแบนบัญชีผู้เผยแพร่
alone5511. - เพิ่มข้อมูลผู้เผยแพร่ ที่อยู่อีเมล ชื่อแพ็กเกจ และตัวบ่งชี้เพย์โหลดลงในรายการบล็อกการละเมิดและห่วงโซ่อุปทาน
- เก็บไฟล์ tarball ที่ยังไม่ได้เผยแพร่ไว้ในที่เก็บข้อมูลภายในเพื่อใช้ในการตรวจสอบทางนิติวิทยาศาสตร์
- ดึงโทเค็นบอท Telegram ออกจากไฟล์ tarball ที่เก็บรักษาไว้
- หากเป็นไปได้ ให้ใช้โปรแกรม Telegram เพื่อระบุช่องทางการรับส่งข้อมูลและสร้างข้อมูลการติดตามผู้เสียหายขึ้นมาใหม่
รายการตรวจสอบการตอบสนองต่อการประนีประนอม
หากแพ็กเกจใดๆ ที่ได้รับผลกระทบปรากฏในไฟล์ล็อก บันทึกการสร้าง แคชแพ็กเกจ หรือประวัติการติดตั้ง CI ในช่วงเวลาที่เกิดปัญหา ให้ถือว่าเป็นเหตุการณ์การทำงานที่สับสนเรื่องการพึ่งพาของแพ็กเกจ
คำตอบที่แนะนำ:
- ระบุตำแหน่งที่ติดตั้งแพ็กเกจ: เวิร์กสเตชันในเครื่อง, CI runner, build agent หรือ container image
- รักษาข้อมูลไฟล์ล็อก, แคช npm, บันทึกการสร้าง, ประวัติคำสั่งเชลล์ และผลลัพธ์จากตัวจัดการแพ็กเกจไว้
- ตรวจสอบบันทึกเครือข่ายขาออกสำหรับ
api.telegram.orgและapi.ipify.orgระหว่างช่วงเวลาการติดตั้ง - ตรวจสอบว่าการติดตั้งดำเนินการในสภาพแวดล้อมที่มีตัวแปรสำคัญ ข้อมูลประจำตัว หรือการเข้าถึงเครือข่ายภายในหรือไม่
- หากโฮสต์เป็นเครื่องรัน CI ที่มีสิทธิ์พิเศษหรือเวิร์กสเตชันสำหรับนักพัฒนา ให้ทำการหมุนเวียนโทเค็นที่เปิดเผยให้กับสภาพแวดล้อมการติดตั้ง
- ตรวจสอบการกำหนดค่าการแก้ไขแพ็กเกจสำหรับความสับสนระหว่างรีจิสทรีสาธารณะ/ส่วนตัว
- บังคับใช้แพ็กเกจส่วนตัวแบบจำกัดขอบเขตและการตรึงรีจิสทรี
- บล็อกแพ็กเกจสาธารณะที่ไม่ได้รับอนุญาตซึ่งมีรูปแบบการตั้งชื่อตรงกับรูปแบบภายใน
- เพิ่ม guardrails สำหรับสคริปต์การติดตั้งโดยเฉพาะ
preinstall,installและpostinstall.
สิ่งที่ผู้เล่นตำแหน่งกองหลังควรจดจำไว้
แคมเปญนี้ไม่ได้ซับซ้อนในเชิงเทคนิค แต่เหตุผลนี้แหละที่ทำให้มันสำคัญ
โค้ดที่เป็นอันตรายมีขนาดเล็ก ตรงไปตรงมา และง่ายต่อการโจมตี ผู้โจมตีไม่จำเป็นต้องมีการคงอยู่ของมัลแวร์หรือระบบรักษาความปลอดภัยขั้นสูง พวกเขาต้องการเพียงแค่เส้นทางการแก้ไขแพ็กเกจที่ตั้งค่าผิดพลาดเพียงจุดเดียวเท่านั้น
ความเสี่ยงที่แท้จริงคือความสับสนเรื่องการพึ่งพาอาศัยกัน
แพ็กเกจที่มีชื่อที่คุ้นเคยภายในองค์กร หมายเลขเวอร์ชันสูง และ preinstall ตะขอสามารถเปลี่ยนสิ่งปกติได้ npm install เปลี่ยนเป็นสัญญาณบอกตำแหน่งจากภายในสภาพแวดล้อมของคุณ
ใช้เพื่อการ DevSecOps ทีมต่างๆ บทเรียนนี้ชัดเจน: ชื่อแพ็กเกจภายในถือเป็นสินทรัพย์ที่มีความสำคัญ ควรปฏิบัติต่อพวกมันเหมือนกับเป็นช่องโหว่ที่อาจถูกโจมตีได้
ได้รายงานไปยัง npm เพื่อบังคับใช้การตั้งค่าระดับบัญชี การบล็อก และการเก็บรักษาไฟล์ tarball ที่ยังไม่ได้เผยแพร่





