ปัญหาแพ็กเกจสแปมขนาดใหญ่ของ npm
- ทีมวิจัยของ Phylum พบว่าแพ็กเกจสแปมที่เกี่ยวข้องกับโปรโตคอล Tea เพิ่มขึ้นอย่างรวดเร็วใน npm
- โปรโตคอล Tea เป็นระบบที่ให้รางวัลเป็นคริปโทเคอร์เรนซีสำหรับการมีส่วนร่วมในโอเพนซอร์ส ซึ่งจูงใจให้นักพัฒนาพูดเกินจริงเกี่ยวกับการมีส่วนร่วมของตน
- คาดว่าประมาณ 25% ของแพ็กเกจที่เผยแพร่บน npm ในช่วงไตรมาส 2 ปี 2024 เป็นแพ็กเกจสแปมที่เกี่ยวข้องกับโปรโตคอล Tea
สรุปสั้น ๆ
- โปรโตคอล Tea ใช้อัลกอริทึมที่จูงใจให้นักพัฒนาพูดเกินจริงเกี่ยวกับการมีส่วนร่วมของตน
- npm กำลังเผชิญกับมลภาวะร้ายแรงจากแพ็กเกจสแปมเหล่านี้
- ลักษณะของแพ็กเกจสแปมคือชื่อแพ็กเกจที่สุ่มขึ้นมา รายการ dependency ที่น่าสงสัย และไฟล์
tea.yaml
มุมมองใหม่
- ตั้งแต่ต้นปี 2024 จำนวนแพ็กเกจที่เผยแพร่บน npm เพิ่มขึ้นอย่างรวดเร็ว
- เมื่อวันที่ 8 เมษายน 2024 มีการเผยแพร่แพ็กเกจมากกว่า 48,000 แพ็กเกจในวันเดียว
- คาดว่า 21.25% ถึง 25.5% ของแพ็กเกจ npm ที่เผยแพร่ในช่วง Q2 เป็นแพ็กเกจสแปม
- หากจำกัดขอบเขตเฉพาะแพ็กเกจใหม่ สัดส่วนของแพ็กเกจสแปมจะเพิ่มขึ้นเป็น 68.66% ถึง 74.67%
มีภัยคุกคามหรือไม่?
- จนถึงขณะนี้ยังไม่มีหลักฐานว่าแพ็กเกจสแปมเหล่านี้มีการโจมตีที่เป็นอันตรายแฝงอยู่
- อย่างไรก็ตาม สแปมเหล่านี้ทำให้ระบบนิเวศโอเพนซอร์สปนเปื้อน และอาจบิดเบือนข้อมูลฝึกของโมเดล AI ได้
- นอกจากนี้ยังสร้างสภาพแวดล้อมที่ทำให้แพ็กเกจอันตรายจริงสามารถซ่อนตัวอยู่ได้
คิดจากมุมมองของฝ่ายตรงข้าม
- ยกตัวอย่างแพ็กเกจ
sournoise เว็บไซต์ npm แสดงว่าแพ็กเกจนี้พึ่งพา axios แต่ในความเป็นจริงกลับพึ่งพาแพ็กเกจสแปม
- นี่เป็นผลข้างเคียงจากวิธีที่ npm จัดการ dependency และแสดงผลให้ผู้ใช้เห็น
- จาก transitive dependency อาจทำให้มีการรวมแพ็กเกจที่นักพัฒนาไม่ต้องการหรือไม่คาดคิดเข้ามาด้วย
บทสรุป
- การปนเปื้อนของระบบนิเวศซอฟต์แวร์โอเพนซอร์สเป็นปัญหาสำหรับทุกคน
- โครงการโปรโตคอล Tea กำลังดำเนินมาตรการเพื่อแก้ปัญหานี้
- npm ก็กำลังลบแพ็กเกจสแปมบางส่วนออก แต่ยังตามความเร็วของการเผยแพร่ใหม่ไม่ทัน
- ปัญหานี้ไม่ได้จำกัดอยู่แค่ npm เพราะพบแพ็กเกจสแปมลักษณะคล้ายกันใน Rubygems ด้วย
- Phylum กำลังวิจัยด้านนี้อย่างจริงจัง และจะมองหาวิธีใหม่ ๆ ในการตรวจจับสแปมประเภทนี้เมื่อกลุ่มผู้กระทำเหล่านี้ปรับเปลี่ยนยุทธวิธี
สรุปโดย GN⁺
- ระบบรางวัลของโปรโตคอล Tea จูงใจให้นักพัฒนาพูดเกินจริงเกี่ยวกับการมีส่วนร่วมของตน
- แม้เจตนาของโครงการเพื่อความยั่งยืนของโอเพนซอร์สจะดูดี แต่ดูเหมือนว่าจะมองข้ามผลข้างเคียงและกรณีการนำไปใช้ในทางที่ผิด จำเป็นต้องมีการออกแบบวิธีวัดการมีส่วนร่วมและระบบรางวัลอย่างรอบคอบ พร้อมการติดตามอย่างต่อเนื่อง
- การทะลักเข้ามาของแพ็กเกจสแปมจำนวนมหาศาลเช่นนี้ ไม่ได้เป็นเพียงปัญหาความปลอดภัยของแพ็กเกจรายตัวเท่านั้น แต่ยังอาจคุกคามความน่าเชื่อถือและความแข็งแรงของระบบนิเวศโอเพนซอร์สทั้งหมด การแก้ปัญหาอย่างถึงรากจำเป็นต้องอาศัยแนวทางและความร่วมมือในระดับ ecosystem
- ประเด็นที่ว่าอาจก่อให้เกิดปัญหาอคติหากถูกนำไปใช้เป็นข้อมูลฝึกของโมเดล AI เป็นเรื่องที่น่ากังวลมาก และดูเหมือนว่าการจัดทำแนวทางด้านการควบคุมและตรวจสอบคุณภาพข้อมูลเป็นเรื่องเร่งด่วน
- ความเป็นไปได้ที่จะมีการติดตั้งแพ็กเกจโดยไม่คาดคิดผ่าน transitive dependency เพียงพอที่จะปลุกสัญญาณเตือนให้กับนักพัฒนา สะท้อนให้เห็นถึงความจำเป็นของเครื่องมือจัดการ dependency แบบอัตโนมัติ และในขณะเดียวกันก็ชี้ว่าความระมัดระวังและการตรวจสอบของนักพัฒนายังคงสำคัญในการเลือกแพ็กเกจ
- ในมุมมองระยะยาว อาจจำเป็นต้องสำรวจทางเลือกที่โปร่งใสและตรวจสอบได้มากกว่า เช่น package registry หรือระบบ reputation ที่อิงบล็อกเชน
1 ความคิดเห็น
ความคิดเห็นบน Hacker News
วิธีที่ npm จัดการ dependency ของแพ็กเกจคือปัญหา
package.jsonก็ถูกนับเป็น dependency ได้โดยไม่เกี่ยวว่ามีแพ็กเกจจริงหรือไม่จำเป็นต้องลบทุกแพ็กเกจที่ใช้
tea.yamlควรแบนและลบบัญชีสแปมอย่างถาวร
มีความเป็นไปได้ที่โมเดล AI จะบิดเบือนเพราะแพ็กเกจสแปม
โมเดลแรงจูงใจของ Tea Protocol เป็นปัญหา
สรุป:
package.jsonทำได้ง่ายเป้าหมายของ Tea Protocol คือการเสริมความแข็งแกร่งให้เศรษฐกิจซอฟต์แวร์โอเพนซอร์ส
มีกรณีคัดลอกโปรเจ็กต์ยอดนิยมแล้วเผยแพร่ขึ้น npm ด้วยชื่อละตินแบบสุ่ม
เคยมีโปรเจ็กต์ที่คล้ายกับ Tea
ผู้จัดการแพ็กเกจมีระบบให้คะแนน