6 คะแนน โดย GN⁺ 2024-08-09 | 1 ความคิดเห็น | แชร์ทาง WhatsApp

ปัญหาแพ็กเกจสแปมขนาดใหญ่ของ 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 ความคิดเห็น

 
GN⁺ 2024-08-09
ความคิดเห็นบน Hacker News
  • วิธีที่ npm จัดการ dependency ของแพ็กเกจคือปัญหา

    • แค่มีคีย์อยู่ใน package.json ก็ถูกนับเป็น dependency ได้โดยไม่เกี่ยวว่ามีแพ็กเกจจริงหรือไม่
    • สิ่งนี้ทำให้ระบบนิเวศของ dependency เปราะบางยิ่งขึ้น
  • จำเป็นต้องลบทุกแพ็กเกจที่ใช้ tea.yaml

    • โปรโตคอล tea กำลังกระตุ้นพฤติกรรมที่เป็นอันตราย
    • กำลังทำลายระบบ
  • ควรแบนและลบบัญชีสแปมอย่างถาวร

    • ตัวอย่างเช่น มีบัญชีหนึ่งที่มีแพ็กเกจไร้ความหมาย 1781 รายการ
    • ขั้นตอนการรายงานซับซ้อนและยุ่งยาก
  • มีความเป็นไปได้ที่โมเดล AI จะบิดเบือนเพราะแพ็กเกจสแปม

    • หลักการ "garbage in, garbage out" ใช้ได้ในกรณีนี้
  • โมเดลแรงจูงใจของ Tea Protocol เป็นปัญหา

    • มันจูงใจให้นักพัฒนาโพสต์สแปมลง npm
    • ทำลายระบบนิเวศ
  • สรุป:

    • แผนระดมทุนการพัฒนา OSS ที่อิงคริปโตเคอร์เรนซีกำลังกระตุ้นสแปม
    • การหลอกว่าเป็น dependency ผ่าน package.json ทำได้ง่าย
  • เป้าหมายของ Tea Protocol คือการเสริมความแข็งแกร่งให้เศรษฐกิจซอฟต์แวร์โอเพนซอร์ส

    • แต่โมเดลแรงจูงใจผิดพลาดจนทำให้เกิดสแปม
    • ใช้ได้กับทั้ง "Cobra effect" และ "กฎของกู๊ดฮาร์ต"
  • มีกรณีคัดลอกโปรเจ็กต์ยอดนิยมแล้วเผยแพร่ขึ้น npm ด้วยชื่อละตินแบบสุ่ม

    • มีการส่งรายงานสแปมไปแล้วหลายร้อยรายการ
  • เคยมีโปรเจ็กต์ที่คล้ายกับ Tea

    • ได้รับบิตคอยน์จำนวนเล็กน้อยทุกเดือนจนกว่าโปรเจ็กต์จะล้มเหลวและเงินทุนหมด
  • ผู้จัดการแพ็กเกจมีระบบให้คะแนน

    • โอกาสที่แพ็กเกจสแปมจะส่งผลต่อ AI นั้นต่ำ
    • บริษัทที่น่าเชื่อถือจะไม่ใช้แพ็กเกจสแปม