Các trợ lý mã nguồn AI đang đưa ra những tên gói (package) không tồn tại, và những kẻ tấn công đang biến những sự "ảo giác" này thành các rủi ro chuỗi cung ứng thực sự.

Khi nhà nghiên cứu bảo mật Bar Lanyado từ Lasso Security yêu cầu một công cụ lập trình dựa trên AI cung cấp một Python client, mô hình đã gợi ý cài đặt huggingface-cli. Gói này chỉ là một "bóng ma"; thư viện hợp lệ thực tế có tên là huggingface_hub. Để chứng minh mối nguy hiểm, Lanyado đã đăng ký cái tên giả mạo này trên Python Package Index (PyPI) dưới dạng một trình giữ chỗ (placeholder) trống. Trong vòng ba tháng, trình giữ chỗ này đã thu về hơn 30.000 lượt tải xuống, xuất hiện trong các tài liệu công khai và thậm chí xuất hiện trong các mẫu mã nguồn được thu thập từ các kho lưu trữ của Alibaba.

Cách một gói "bóng ma" trở thành mối đe dọa thực sự

  1. Prompt → ảo giác – Một nhà phát triển yêu cầu AI hỗ trợ. Mô hình, vốn được huấn luyện trên dữ liệu internet nhiễu, sẽ tự tạo ra một tên gói nghe có vẻ hợp lý.
  2. Sao chép-dán → tài liệu – Gợi ý đó xuất hiện trong một tệp README, một câu trả lời trên Stack Overflow, hoặc một wiki nội bộ. Một khi đã được viết ra, cái tên đó sẽ lan truyền trong cộng đồng.
  3. Tích hợp mã nguồn – Nhà phát triển, vì tin tưởng AI, đã thêm cái tên đó vào tệp requirements và đẩy lên môi trường production.

Tại sao các biện pháp phòng thủ hiện tại bỏ lỡ vấn đề này

Các công cụ phân tích tĩnh và trình quét lỗ hổng thường tìm kiếm các CVE đã biết và các thư viện có lịch sử phát hành. Một gói vừa mới được xuất bản với số lượt tải xuống bằng không trước khi có gợi ý từ AI sẽ không có CVE, không có uy tín, và do đó trông có vẻ "sạch". Kiểm tra tiêu chuẩn "phiên bản này có lỗ hổng không?" sẽ trả về kết quả là sai (false), mang lại cho các nhà phát triển một cảm giác an toàn giả tạo.

Thí nghiệm này chứng minh điều gì

  • Các tên do AI tự chế đã lọt vào production – Con số hơn 30.000 lượt tải xuống cho thấy các nhà phát triển thực sự đang tải các gói "bóng ma" này về.
  • Ảo giác trở thành tài liệu – Một khi cái tên giả xuất hiện trong một hướng dẫn công khai, nó có thể tồn tại vô thời hạn, làm lan truyền sai sót.
  • Việc đăng ký cực kỳ dễ dàng – Việc xuất bản một gói trên PyPI không tốn kém và chỉ mất vài phút, làm giảm rào cản cho việc lạm dụng chuỗi cung ứng.

Các bước phòng thủ thực sự hiệu quả

  • Xác thực mọi phụ thuộc (dependency) – Trước khi thêm một yêu cầu mới, hãy tìm kiếm trên chỉ mục gói (package index) và xác nhận tên đó khớp với một thư viện đã tồn tại và có tài liệu hướng dẫn.
  • Kiểm tra chéo với các nguồn chính thức – So sánh tên được gợi ý với kho lưu trữ của nhà cung cấp hoặc hướng dẫn cài đặt chính thức.
  • Coi các gói mới, ít người dùng là rủi ro cao – Đánh dấu bất kỳ phụ thuộc nào có ít hơn một vài lượt tải xuống hoặc có ngày phát hành rất gần đây để kiểm tra thủ công.

Điều cần lưu ý tiếp theo

Bài học rút ra rất đơn giản: một gợi ý từ AI không phải là sự đảm bảo. Hãy coi mọi phụ thuộc mới như một thành phần bên thứ ba chưa được kiểm chứng, xác minh nguồn gốc của nó và luôn để mắt đến chuỗi cung ứng trước khi để một gói "bóng ma" lọt vào môi trường production.