Nghiên cứu mới công bố cho thấy mã máy tính do AI tạo ra có rất nhiều tham chiếu đến các thư viện của bên thứ ba không tồn tại, tạo ra cơ hội vàng cho các cuộc tấn công chuỗi cung ứng nhằm đầu độc các chương trình hợp pháp bằng các gói độc hại có thể đánh cắp dữ liệu, cài cửa hậu và thực hiện các hành động xấu xa khác.
Nghiên cứu, sử dụng 16 mô hình ngôn ngữ lớn được sử dụng rộng rãi nhất để tạo ra 576.000 mẫu mã, phát hiện ra rằng 440.000 gói phụ thuộc mà chúng chứa là "ảo giác", nghĩa là chúng không tồn tại. Các mô hình nguồn mở ảo giác nhiều nhất, với 21 phần trăm các gói phụ thuộc liên kết đến các thư viện không tồn tại. Một gói phụ thuộc là một thành phần mã thiết yếu mà một đoạn mã riêng biệt yêu cầu để hoạt động bình thường. Các gói phụ thuộc giúp các nhà phát triển tiết kiệm được công sức viết lại mã và là một phần thiết yếu của chuỗi cung ứng phần mềm hiện đại.
Những sự phụ thuộc không tồn tại này là mối đe dọa đối với chuỗi cung ứng phần mềm bằng cách làm trầm trọng thêm cái gọi là các cuộc tấn công nhầm lẫn phụ thuộc. Các cuộc tấn công này hoạt động bằng cách khiến một gói phần mềm truy cập vào sự phụ thuộc thành phần sai, ví dụ như bằng cách xuất bản một gói độc hại và đặt cho nó cùng tên với gói hợp lệ nhưng có dấu phiên bản mới hơn. Trong một số trường hợp, phần mềm phụ thuộc vào gói sẽ chọn phiên bản độc hại thay vì phiên bản hợp lệ vì phiên bản trước có vẻ mới hơn.
Còn được gọi là sự nhầm lẫn gói, hình thức tấn công này lần đầu tiên được chứng minh vào năm 2021 trong một bản khai thác bằng chứng khái niệm thực thi mã giả trên các mạng thuộc về một số công ty lớn nhất hành tinh, bao gồm Apple, Microsoft và Tesla. Đây là một loại kỹ thuật được sử dụng trong các cuộc tấn công chuỗi cung ứng phần mềm, nhằm mục đích đầu độc phần mềm ngay từ nguồn gốc của nó để cố gắng lây nhiễm cho tất cả người dùng ở hạ nguồn.
Joseph Spracklen, một nghiên cứu sinh tiến sĩ tại Đại học Texas ở San Antonio và là nhà nghiên cứu chính, đã nói với Ars qua email rằng: "Khi kẻ tấn công công bố một gói dưới cái tên ảo giác, chứa một số mã độc hại, chúng dựa vào mô hình gợi ý tên đó cho những người dùng không nghi ngờ". "Nếu người dùng tin tưởng vào đầu ra của LLM và cài đặt gói mà không xác minh cẩn thận, thì phần tải trọng của kẻ tấn công, ẩn trong gói độc hại, sẽ được thực thi trên hệ thống của người dùng".
Trong AI, ảo giác xảy ra khi LLM tạo ra các đầu ra không đúng sự thật, vô nghĩa hoặc hoàn toàn không liên quan đến nhiệm vụ được giao. Ảo giác từ lâu đã đeo bám LLM vì chúng làm giảm tính hữu ích và độ tin cậy của chúng và đã chứng minh là rất khó dự đoán và khắc phục. Trong một bài báo dự kiến trình bày tại Hội nghị chuyên đề bảo mật USENIX năm 2025, họ đã gọi hiện tượng này là "ảo giác gói".
Đối với nghiên cứu này, các nhà nghiên cứu đã chạy 30 bài kiểm tra, 16 bài trong ngôn ngữ lập trình Python và 14 bài trong JavaScript, tạo ra 19.200 mẫu mã cho mỗi bài kiểm tra, tổng cộng là 576.000 mẫu mã. Trong số 2,23 triệu tham chiếu gói có trong các mẫu đó, 440.445, hay 19,7 phần trăm, chỉ ra các gói không tồn tại. Trong số 440.445 ảo giác gói này, 205.474 có tên gói duy nhất.
Một trong những điều khiến ảo giác về gói hàng có khả năng hữu ích trong các cuộc tấn công chuỗi cung ứng là 43 phần trăm ảo giác về gói hàng được lặp lại qua 10 truy vấn. "Ngoài ra", các nhà nghiên cứu đã viết, "58 phần trăm thời gian, một gói hàng ảo giác được lặp lại nhiều hơn một lần trong 10 lần lặp lại, điều này cho thấy phần lớn ảo giác không chỉ đơn thuần là lỗi ngẫu nhiên, mà là hiện tượng có thể lặp lại và tồn tại qua nhiều lần lặp lại. Điều này rất quan trọng vì ảo giác dai dẳng có giá trị hơn đối với những kẻ xấu muốn khai thác lỗ hổng này và khiến vectơ tấn công ảo giác trở thành mối đe dọa khả thi hơn".
Nói cách khác, nhiều ảo giác về gói không phải là lỗi ngẫu nhiên một lần. Thay vào đó, tên cụ thể của các gói không tồn tại được lặp đi lặp lại. Kẻ tấn công có thể nắm bắt được mô hình này bằng cách xác định các gói không tồn tại được ảo giác nhiều lần. Sau đó, kẻ tấn công sẽ phát hành phần mềm độc hại bằng cách sử dụng các tên đó và chờ chúng được nhiều nhà phát triển truy cập.
Nghiên cứu đã phát hiện ra sự chênh lệch giữa các LLM và ngôn ngữ lập trình tạo ra nhiều ảo giác về gói nhất. Tỷ lệ phần trăm trung bình của ảo giác về gói do các LLM nguồn mở như CodeLlama và DeepSeek tạo ra là gần 22 phần trăm, so với chỉ hơn 5 phần trăm một chút của các mô hình thương mại. Mã được viết bằng Python tạo ra ít ảo giác hơn mã JavaScript, với mức trung bình gần 16 phần trăm so với hơn 21 phần trăm một chút đối với JavaScript. Khi được hỏi điều gì gây ra sự khác biệt, Spracklen đã viết:
“Đây là một câu hỏi khó vì các mô hình ngôn ngữ lớn là những hệ thống cực kỳ phức tạp, khiến việc theo dõi trực tiếp nguyên nhân trở nên khó khăn. Tuy nhiên, chúng tôi đã quan sát thấy sự chênh lệch đáng kể giữa các mô hình thương mại (như loạt ChatGPT) và các mô hình nguồn mở, điều này gần như chắc chắn là do số lượng tham số lớn hơn nhiều của các biến thể thương mại. Hầu hết các ước tính đều cho thấy các mô hình ChatGPT có ít nhất 10 lần nhiều tham số hơn so với các mô hình nguồn mở mà chúng tôi đã thử nghiệm, mặc dù kiến trúc chính xác và chi tiết đào tạo vẫn là độc quyền. Điều thú vị là trong số các mô hình nguồn mở, chúng tôi không tìm thấy mối LINK (Chainlink) rõ ràng giữa kích thước mô hình và tỷ lệ ảo giác, có thể là do tất cả chúng đều hoạt động trong phạm vi tham số tương đối nhỏ hơn.
“Ngoài kích thước mô hình, sự khác biệt trong dữ liệu đào tạo, tinh chỉnh, đào tạo hướng dẫn và điều chỉnh an toàn đều có thể đóng vai trò trong tỷ lệ ảo giác gói. Các quy trình này nhằm mục đích cải thiện khả năng sử dụng mô hình và giảm một số loại lỗi nhất định, nhưng chúng có thể có những tác động hạ lưu không lường trước được đối với các hiện tượng như ảo giác gói.
“Tương tự như vậy, tỷ lệ ảo giác cao hơn đối với các gói JavaScript so với Python cũng khó có thể xác định một cách chắc chắn. Chúng tôi suy đoán rằng nó bắt nguồn từ thực tế là JavaScript có nhiều gói hơn khoảng 10 lần trong hệ sinh thái của nó so với Python, kết hợp với không gian tên phức tạp hơn. Với bối cảnh gói lớn hơn và phức tạp hơn nhiều, các mô hình khó nhớ chính xác các tên gói cụ thể hơn, dẫn đến sự không chắc chắn lớn hơn trong các dự đoán nội bộ của chúng và cuối cùng là tỷ lệ các gói ảo giác cao hơn.”
Những phát hiện này là phát hiện mới nhất chứng minh tính không đáng tin cậy vốn có của đầu ra LLM. Với việc Giám đốc công nghệ Microsoft Kevin Scott dự đoán rằng 95 phần trăm mã sẽ được tạo ra bởi AI trong vòng năm năm, hy vọng các nhà phát triển sẽ chú ý đến thông điệp này.
Câu chuyện này ban đầu xuất hiện trên Ars Technica .




