Các bot AI gây ảo giác cho các gói phần mềm và các nhà phát triển tải chúng xuống

Các bot AI gây ảo giác cho các gói phần mềm và các nhà phát triển tải chúng xuống

Các bot AI gây ảo giác cho các gói phần mềm và các nhà phát triển tải chúng xuống PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

Chuyên sâu Một số doanh nghiệp lớn đã xuất bản mã nguồn kết hợp gói phần mềm trước đây bị tạo ảo giác bởi AI.

Không chỉ vậy mà còn có ai đó, có phát hiện ra cái này Ảo giác tái diễn, đã biến sự phụ thuộc tưởng tượng đó thành một thứ thực sự, sau đó đã được các nhà phát triển tải xuống và cài đặt hàng nghìn lần do lời khuyên tồi của AI, chúng tôi đã biết được. Nếu gói chứa phần mềm độc hại thực sự chứ không phải là một thử nghiệm vô hại thì kết quả có thể rất thảm khốc.

Theo Bar Lanyado, nhà nghiên cứu bảo mật tại Lasso Security, một trong những doanh nghiệp bị AI đánh lừa để kết hợp gói này là Alibaba, tại thời điểm viết bài vẫn bao gồm một pip lệnh để tải xuống gói Python huggingface-cli trong nó Trình dịch đồ thị hướng dẫn cài đặt.

Có một sự hợp pháp ôm mặt-cli, được cài đặt bằng cách sử dụng pip install -U "huggingface_hub[cli]".

Tuy nhiên, huggingface-cli được phân phối thông qua Python Package Index (PyPI) và được yêu cầu bởi GraphTranslator của Alibaba – được cài đặt bằng pip install huggingface-cli – là giả, do AI tưởng tượng và được Lanyado biến thành hiện thực như một thử nghiệm.

Anh ây đa tạo ra huggingface-cli vào tháng 12 sau khi chứng kiến ​​nó liên tục bị ảo giác bởi AI; vào tháng 2 năm nay, Alibaba đã đề cập đến nó trong hướng dẫn README của GraphTranslator thay vì công cụ Ôm mặt CLI thực sự.

Học tập

Lanyado đã làm như vậy để khám phá xem liệu các loại gói phần mềm ảo giác này – tên gói được phát minh bởi các mô hình AI tổng hợp, có lẽ là trong quá trình phát triển dự án – có tồn tại theo thời gian hay không và để kiểm tra xem liệu tên gói được phát minh có thể được đồng chọn và sử dụng để phân phối mã độc bằng cách viết thực tế hay không. các gói sử dụng tên mã do AI nghĩ ra.

Ý tưởng ở đây là ai đó bất chính có thể yêu cầu các mô hình tư vấn về mã, ghi chú các gói tưởng tượng mà hệ thống AI liên tục đề xuất và sau đó triển khai các phần phụ thuộc đó để các lập trình viên khác, khi sử dụng các mô hình tương tự và nhận được các đề xuất tương tự, sẽ rút ra kết luận. những thư viện đó có thể bị nhiễm phần mềm độc hại.

Năm ngoái, thông qua hãng bảo mật Vulcan Cyber, Lanyado công bố nghiên cứu trình bày chi tiết cách người ta có thể đặt câu hỏi mã hóa cho mô hình AI như ChatGPT và nhận được câu trả lời khuyến nghị sử dụng thư viện, gói hoặc khung phần mềm không tồn tại.

Lanyado giải thích: “Khi kẻ tấn công chạy một chiến dịch như vậy, hắn sẽ yêu cầu mô hình cung cấp các gói giải quyết vấn đề mã hóa, sau đó hắn sẽ nhận được một số gói không tồn tại”. Đăng ký. “Anh ta sẽ tải các gói độc hại có cùng tên lên các cơ quan đăng ký thích hợp và từ thời điểm đó trở đi, tất cả những gì anh ta phải làm là đợi mọi người tải xuống các gói đó.”

Giả định nguy hiểm

Sự sẵn lòng của các mô hình AI để tự tin trích dẫn các vụ án không tồn tại hiện đã được nhiều người biết đến và đã gây ra sự bối rối không nhỏ cho các luật sư không biết về xu hướng này. Và hóa ra, các mô hình AI tổng quát cũng sẽ làm điều tương tự đối với các gói phần mềm.

Như Lanyado đã lưu ý trước đây, kẻ lừa đảo có thể sử dụng tên do AI phát minh cho gói độc hại được tải lên một số kho lưu trữ với hy vọng những người khác có thể tải xuống phần mềm độc hại. Nhưng để đây trở thành một vectơ tấn công có ý nghĩa, các mô hình AI sẽ cần phải liên tục đề xuất tên được đồng chọn.

Đó là những gì Lanyado đặt ra để thử nghiệm. Được trang bị hàng nghìn câu hỏi “cách thực hiện”, anh đã truy vấn bốn mô hình AI (GPT-3.5-Turbo, GPT-4, Gemini Pro hay Bard và Command [Cohere]) về các thách thức lập trình trong năm ngôn ngữ lập trình/thời gian chạy khác nhau (Python, Node.js, Go, .Net và Ruby), mỗi loại đều có hệ thống đóng gói riêng.

Hóa ra một số cái tên mà các chatbot này tự nhiên lấy ra vẫn tồn tại dai dẳng, một số tên trên các mô hình khác nhau. Và sự kiên trì – sự lặp lại của tên giả – là chìa khóa để biến AI hay thay đổi thành một cuộc tấn công chức năng. Kẻ tấn công cần mô hình AI lặp lại tên của các gói ảo giác trong phản hồi của nó với người dùng về phần mềm độc hại được tạo dưới những tên đó để tìm kiếm và tải xuống.

Lanyado đã chọn ngẫu nhiên 20 câu hỏi cho ảo giác không bắn và đặt chúng 100 lần cho mỗi mô hình. Mục tiêu của anh là đánh giá tần suất tên gói ảo giác được giữ nguyên. Kết quả thử nghiệm của anh ấy cho thấy rằng các tên thường xuyên đủ bền để đây trở thành một vectơ tấn công chức năng, mặc dù không phải lúc nào cũng vậy, và trong một số hệ sinh thái đóng gói nhiều hơn các hệ sinh thái đóng gói khác.

Theo Lanyado, với GPT-4, 24.2% câu trả lời tạo ra các gói gây ảo giác, trong đó 19.6% là lặp đi lặp lại. Một bảng được cung cấp cho Đăng ký, bên dưới, hiển thị bảng phân tích chi tiết hơn về các phản hồi GPT-4.

  Python Nút. hồng ngọc NET. Go
Tổng số câu hỏi 21340 13065 4544 5141 3713
Câu hỏi có ít nhất một gói ảo giác 5347 (25%) 2524 (19.3%) 1072 (23.5%) 1476 (28.7%) 1093 có thể khai thác được (21.2%) 1150 (30.9%) 109 có thể khai thác được (2.9%)
Ảo giác khi bắn không 1042 (4.8%) 200 (1.5%) 169 (3.7%) 211 (4.1%) 130 có thể khai thác được (2.5%) 225 (6%) 14 có thể khai thác được (0.3%)
Ảo giác ở phát súng thứ hai 4532 (21%) 2390 (18.3%) 960 (21.1%) 1334 (25.9%) 1006 có thể khai thác được (19.5%) 974 (26.2%) 98 có thể khai thác được (2.6%)
Sự lặp lại trong lần bắn không 34.4% 24.8% 5.2% 14%

Với GPT-3.5, 22.2% câu trả lời gợi ra ảo giác, với 13.6% độ lặp lại. Đối với Song Tử, 64.5 câu hỏi có những cái tên được đặt ra, khoảng 14% trong số đó được lặp lại. Và đối với Cohere, đó là 29.1% ảo giác, 24.2% sự lặp lại.

Mặc dù vậy, hệ sinh thái đóng gói trong Go và .Net đã được xây dựng theo cách hạn chế khả năng khai thác bằng cách từ chối những kẻ tấn công truy cập vào các đường dẫn và tên nhất định.

“Trong Go và .Net, chúng tôi nhận được các gói ảo giác nhưng nhiều trong số chúng không thể được sử dụng để tấn công (trong Go, con số quan trọng hơn nhiều so với .Net), mỗi ngôn ngữ đều có lý do riêng,” Lanyado giải thích với Đăng ký. “Trong Python và npm thì không như vậy, vì mô hình khuyến nghị chúng tôi với các gói không tồn tại và không có gì ngăn cản chúng tôi tải lên các gói có những tên này, vì vậy chắc chắn việc thực hiện kiểu tấn công này vào các ngôn ngữ như vậy sẽ dễ dàng hơn nhiều Python và Node.js.”

Gieo phần mềm độc hại PoC

Lanyado đã đưa ra quan điểm đó bằng cách phân phối phần mềm độc hại bằng chứng khái niệm – một tập hợp tệp vô hại trong hệ sinh thái Python. Dựa trên lời khuyên của ChatGPT để chạy pip install huggingface-cli, anh ta đã tải một gói trống có cùng tên lên PyPI – gói được đề cập ở trên – và tạo một gói giả có tên blabladsa123 để giúp tách biệt việc quét sổ đăng ký gói khỏi các lần tải xuống thực tế.

Kết quả, ông tuyên bố, là huggingface-cli đã nhận được hơn 15,000 lượt tải xuống đích thực trong ba tháng nó có sẵn.

“Ngoài ra, chúng tôi đã tiến hành tìm kiếm trên GitHub để xác định xem gói này có được sử dụng trong kho của các công ty khác hay không,” Lanyado cho biết trong bài viết cho thí nghiệm của mình.

“Phát hiện của chúng tôi cho thấy rằng một số công ty lớn sử dụng hoặc đề xuất gói này trong kho của họ. Ví dụ: bạn có thể tìm thấy hướng dẫn cài đặt gói này trong README của kho lưu trữ dành riêng cho nghiên cứu do Alibaba thực hiện.”

Alibaba đã không trả lời yêu cầu bình luận.

Lanyado cũng nói rằng có một dự án thuộc sở hữu của Ôm Mặt kết hợp ôm mặt-cli giả, nhưng điều đó đã xóa bỏ sau khi anh ấy báo cho giới kinh doanh.

Ít nhất cho đến nay, kỹ thuật này chưa được sử dụng trong một cuộc tấn công thực tế mà Lanyado biết đến.

Ông nói: “Bên cạnh gói ảo giác của chúng tôi (gói của chúng tôi không độc hại, nó chỉ là một ví dụ về mức độ dễ dàng và nguy hiểm khi tận dụng kỹ thuật này), tôi vẫn chưa xác định được cách khai thác kỹ thuật tấn công này của các tác nhân độc hại”. “Điều quan trọng cần lưu ý là việc xác định một cuộc tấn công như vậy rất phức tạp vì nó không để lại nhiều dấu vết.” ®

Dấu thời gian:

Thêm từ Đăng ký