6 điểm bởi GN⁺ 2024-08-09 | 1 bình luận | Chia sẻ qua WhatsApp

Vấn đề gói spam quy mô lớn trên npm

  • Nhóm nghiên cứu Phylum đã phát hiện các gói spam liên quan đến giao thức Tea đang tăng mạnh trên npm
  • Giao thức Tea là một hệ thống thưởng bằng tiền mã hóa cho các đóng góp mã nguồn mở, từ đó khuyến khích các nhà phát triển thổi phồng đóng góp của mình
  • Trong quý 2 năm 2024, khoảng 25% số gói được đăng lên npm được ước tính là gói spam liên quan đến giao thức Tea

Tóm tắt ngắn gọn

  • Giao thức Tea sử dụng một thuật toán khuyến khích các nhà phát triển thổi phồng đóng góp của mình
  • npm đang bị ô nhiễm nghiêm trọng bởi các gói spam này
  • Đặc điểm của các gói spam là tên gói được tạo ngẫu nhiên, danh sách phụ thuộc đáng ngờ và tệp tea.yaml

Góc nhìn mới

  • Từ đầu năm 2024, số lượng gói được đăng lên npm đã tăng vọt
  • Vào ngày 8 tháng 4 năm 2024, đã có hơn 48.000 gói được đăng chỉ trong một ngày
  • Trong quý 2, ước tính từ 21,25% đến 25,5% số gói npm được đăng là gói spam
  • Nếu thu hẹp phạm vi xuống các gói mới, tỷ lệ gói spam tăng lên từ 68,66% đến 74,67%

Có mối đe dọa nào không?

  • Cho đến nay vẫn chưa có bằng chứng cho thấy các gói spam này chứa các cuộc tấn công độc hại
  • Tuy nhiên, loại spam này làm ô nhiễm hệ sinh thái mã nguồn mở và có thể làm sai lệch dữ liệu huấn luyện của các mô hình AI
  • Ngoài ra, nó còn tạo ra môi trường để các gói độc hại thực sự có thể ẩn mình

Nghĩ từ góc nhìn của kẻ tấn công

  • Lấy gói sournoise làm ví dụ, trang web npm hiển thị rằng gói này phụ thuộc vào axios, nhưng trên thực tế lại phụ thuộc vào các gói spam
  • Đây là tác dụng phụ của cách npm xử lý phụ thuộc và hiển thị chúng cho người dùng
  • Do phụ thuộc bắc cầu, các gói mà nhà phát triển không mong muốn hoặc không lường trước có thể bị đưa vào

Kết luận

  • Sự ô nhiễm của hệ sinh thái phần mềm mã nguồn mở là vấn đề của tất cả mọi người
  • Dự án giao thức Tea đang thực hiện các biện pháp để giải quyết vấn đề này
  • npm cũng đang gỡ bỏ một số gói spam, nhưng vẫn không theo kịp tốc độ đăng mới
  • Vấn đề này không chỉ giới hạn ở npm; các gói spam tương tự cũng đã được phát hiện trên Rubygems
  • Phylum đang tích cực nghiên cứu lĩnh vực này và sẽ tìm kiếm những cách mới để phát hiện loại spam này khi các tác nhân này điều chỉnh chiến thuật của họ

Tóm lược của GN⁺

  • Hệ thống thưởng của giao thức Tea đang khuyến khích các nhà phát triển thổi phồng đóng góp của mình
  • Ý định của dự án nhằm hướng tới tính bền vững của mã nguồn mở có thể là tốt, nhưng dường như đã bỏ qua các tác dụng phụ và các trường hợp bị lạm dụng đi kèm. Có vẻ cần thiết phải thiết kế kỹ lưỡng phương pháp đo lường mức độ đóng góp và cơ chế thưởng, đồng thời theo dõi liên tục
  • Làn sóng tràn ngập gói spam quy mô lớn như vậy không chỉ đơn thuần là vấn đề an toàn của từng gói riêng lẻ, mà còn có thể đe dọa độ tin cậy và tính lành mạnh của toàn bộ hệ sinh thái mã nguồn mở. Để giải quyết tận gốc, dường như cần một cách tiếp cận và sự hợp tác ở cấp độ toàn hệ sinh thái
  • Việc chúng có thể được dùng làm dữ liệu huấn luyện cho các mô hình AI và gây ra vấn đề thiên lệch là một điểm rất đáng lo ngại. Có vẻ cấp bách phải xây dựng các hướng dẫn về quản lý và kiểm chứng chất lượng dữ liệu
  • Khả năng các gói không mong muốn bị cài đặt thông qua phụ thuộc bắc cầu đủ để gióng lên hồi chuông cảnh báo cho các nhà phát triển. Cùng với nhu cầu về các công cụ quản lý phụ thuộc tự động, điều này cũng cho thấy sự cẩn trọng và rà soát của nhà phát triển vẫn rất quan trọng khi lựa chọn gói
  • Về lâu dài, có vẻ cần tìm kiếm những phương án thay thế minh bạch và có thể kiểm chứng hơn, chẳng hạn như registry gói hoặc hệ thống danh tiếng dựa trên blockchain

1 bình luận

 
GN⁺ 2024-08-09
Ý kiến trên Hacker News
  • Cách npm xử lý phụ thuộc gói là vấn đề

    • Chỉ cần có khóa trong package.json thì sẽ bị coi là phụ thuộc, bất kể có liên quan đến gói thực tế hay không
    • Điều này khiến hệ sinh thái phụ thuộc trở nên dễ tổn thương hơn
  • Cần loại bỏ mọi gói sử dụng tea.yaml

    • Giao thức Tea đang khuyến khích hành vi độc hại
    • Đang làm hư hại hệ thống
  • Cần chặn vĩnh viễn và xóa các tài khoản spam

    • Ví dụ, có tài khoản sở hữu 1781 gói vô nghĩa
    • Quy trình báo cáo phức tạp và rườm rà
  • Các mô hình AI có thể bị bóp méo do các gói spam

    • Nguyên tắc "garbage in, garbage out" được áp dụng
  • Mô hình khuyến khích của giao thức Tea là vấn đề

    • Khuyến khích các lập trình viên đăng spam lên npm
    • Làm tổn hại hệ sinh thái
  • Tóm lại:

    • Kế hoạch tài trợ phát triển OSS dựa trên tiền mã hóa đang thúc đẩy spam
    • Việc đánh lừa phụ thuộc thông qua package.json là rất dễ
  • Mục tiêu của giao thức Tea là củng cố nền kinh tế phần mềm nguồn mở

    • Tuy nhiên, mô hình khuyến khích bị thiết kế sai nên thúc đẩy spam
    • Hiệu ứng "Cobra effect" và "định luật Goodhart" đang được áp dụng
  • Có những trường hợp sao chép các dự án phổ biến rồi đăng lên npm với tên Latin ngẫu nhiên

    • Đã gửi hàng trăm báo cáo spam
  • Từng có những dự án tương tự Tea

    • Mỗi tháng nhận được một khoản bitcoin nhỏ cho đến khi dự án thất bại và cạn vốn
  • Trình quản lý gói có hệ thống chấm điểm

    • Khả năng các gói spam ảnh hưởng đến AI là thấp
    • Các công ty đáng tin cậy sẽ không sử dụng các gói spam