Slopsquatting
Slopsquatting là một cuộc tấn công vào chuỗi cung ứng phần mềm, khai thác tên gói do AI bịa ra để dụ nhà phát triển cài đặt các dependency độc hại.
Slopsquatting là một cuộc tấn công vào chuỗi cung ứng phần mềm, trong đó kẻ tấn công phát hành một gói độc hại dưới tên do trợ lý lập trình AI bịa ra, rồi trông chờ nhà phát triển hoặc công cụ tự động cài đặt gói đó. Cái bẫy biến một đề xuất dependency nghe có vẻ hợp lý thành mã thực thi của bên thứ ba. Cách tấn công này kết nối hiện tượng ảo giác trong LLM—thông tin bịa đặt được trình bày như sự thật—với các trình quản lý gói dùng để xây dựng phần mềm.
Nhà nghiên cứu bảo mật Seth Larson đặt ra thuật ngữ này vào tháng 4 năm 2025, và Andrew Nesbitt phổ biến thuật ngữ này thông qua định nghĩa slopsquatting ban đầu, đồng thời ghi nhận công lao của Larson. Tên gọi này kết hợp nội dung rác do AI tạo ra với “chiếm chỗ”, ám chỉ việc chiếm một tên phần mềm mà người khác sẽ tìm kiếm.
Cách Slopsquatting hoạt động#
Một mô hình ngôn ngữ lớn tạo mã có chứa tên gói hoặc lệnh cài đặt do mô hình bịa ra. Kẻ tấn công phát hiện tên đó rồi phát hành một gói mang tên này trên registry như PyPI hoặc npm. Khi đề xuất đó xuất hiện lần nữa, thao tác cài đặt sẽ tải gói của kẻ tấn công. Hiện tượng ảo giác về gói có thể tái diễn qua nhiều prompt và model, tập trung nhu cầu vào những tên mà kẻ tấn công có thể chiếm lấy.
Trạng thái của registry quyết định kết quả. Tên chưa được đăng ký sẽ khiến thao tác cài đặt thất bại; tên do kẻ tấn công kiểm soát sẽ được phân giải thành công và đưa mã độc vào môi trường. Niềm tin của nhà phát triển vào trợ lý trở thành con đường xâm nhập chuỗi cung ứng phần mềm.
Rủi ro này ảnh hưởng đến cả hoạt động phát triển có con người hỗ trợ lẫn lập trình bằng tác tử. Một tác tử AI có khả năng sử dụng công cụ có thể biến dependency do AI tạo ra thành thao tác cài đặt. Mã độc trong gói có thể thực thi trong quá trình cài đặt hoặc khi sử dụng sau đó, qua đó làm lộ tệp, thông tin xác thực và sản phẩm đầu ra của quá trình build, tùy theo quyền của môi trường.
Một gói do AI bịa ra đến được với nhà phát triển như thế nào#
Bar Lanyado đã phát hành một gói Python rỗng có tên huggingface-cli sau khi các model AI đề xuất dependency không tồn tại đó. Tính đến ngày 28 tháng 3 năm 2024, gói do AI bịa ra đã nhận được hơn 30.000 lượt tải xuống thực trong vòng ba tháng. Hướng dẫn cài đặt cũng xuất hiện trong tệp README của một kho nghiên cứu Alibaba. Việc gói rỗng này được sử dụng cho thấy tên dependency do AI bịa ra có thể đi vào quy trình phát triển thực tế.
Tên gói còn gây nhầm lẫn theo một cách khác: tệp thực thi dòng lệnh, module có thể import và bản phân phối có thể cài đặt có thể mang các tên khác nhau. Điều này rất quan trọng trong quá trình phát triển thị giác máy tính khi trợ lý tạo hướng dẫn thiết lập môi trường. Ultralytics YOLO hỗ trợ YOLO26 thông qua gói Python ultralytics, cung cấp các quy trình huấn luyện, dự đoán và xuất; đối chiếu hướng dẫn cài đặt do AI tạo ra với danh tính của gói này giúp xử lý giai đoạn chọn dependency, nơi slopsquatting xâm nhập.
Slopsquatting và các cuộc tấn công liên quan#
Các thuật ngữ này mô tả những cơ chế riêng biệt ảnh hưởng đến bảo mật dependency:
- Ảo giác về gói: Model bịa ra một dependency. Slopsquatting biến lỗi đặt tên này thành vũ khí thông qua việc đăng ký tên có chủ đích.
- Typosquatting: Kẻ tấn công đăng ký một tên giống với gói hiện có để lợi dụng lỗi chính tả. Slopsquatting nhắm vào các tên do AI tạo ra.
- Nhầm lẫn dependency: Trình quản lý gói tải một gói công khai trong khi dependency riêng tư mới là gói được dự định sử dụng.
- Chèn prompt: Nội dung do kẻ tấn công kiểm soát chuyển hướng hành vi của hệ thống AI. Slopsquatting khai thác đề xuất gói do AI tạo ra thông qua registry.
Ngăn chặn Slopsquatting trong pipeline build#
Quy trình phê duyệt dependency xác định dự án, nhà phát hành, kho mã nguồn và lịch sử phát hành dự kiến trước khi cài đặt. Rà soát dependency tập trung vào bảo mật áp dụng cho các phần bổ sung do AI tạo ra cũng như cho mã do con người viết. Tình trạng sẵn có trên registry xác nhận rằng một tên tồn tại; kiểm tra quyền sở hữu giúp xác định phần mềm của ai sẽ được chạy. Neo thông tin trợ lý vào tài liệu gói đã được phê duyệt sẽ cung cấp danh tính gói cho quá trình rà soát này.
Trong tích hợp liên tục, các cổng rà soát kiểm soát thay đổi dependency trước khi chúng được đưa vào bản build. Phiên bản được ghim xác định các bản phát hành đã được phê duyệt, trong khi hash của artifact xác định chính xác các tệp tương ứng. Cô lập tác tử, hạn chế quyền truy cập mạng và sử dụng thông tin xác thực với quyền tối thiểu giúp giới hạn tài nguyên mà mã dependency có thể sử dụng, giảm khả năng truy cập dữ liệu nhạy cảm và thông tin xác thực triển khai.
Chế độ cài đặt có kiểm tra hash của Python sử dụng --require-hashes để đối chiếu các tệp gói đã tải xuống với hash được ghi trong tệp requirements. Mỗi dependency, bao gồm cả dependency bắc cầu—các thư viện mà thư viện khác cần dùng—phải có phiên bản chính xác và hash artifact được phép. Khi hash của gói đã tải xuống không khớp với bất kỳ hash nào được cho phép, pip sẽ từ chối tệp đó và dừng cài đặt.










