Bảo mật Lập trình AI: Prompt Injection đang ẩn náu trong các tệp dự án của bạn

Trợ lý lập trình AI của bạn đọc mọi tệp trong kho lưu trữ (repository) của bạn. Nó đọc tệp README, các tệp cấu hình và các quy tắc của bạn. Nó sử dụng các tệp này để quyết định cách viết mã.

Một mối đe dọa bảo mật mới đang khai thác chính hành vi này. Các nhà nghiên cứu đã tìm thấy một lỗ hổng trên 28 công cụ lập trình AI khác nhau. Cuộc tấn công này không phải là một vụ hack phức tạp. Nó chỉ là một tệp văn bản đơn giản nằm trong kho lưu trữ của bạn.

Cách thức cuộc tấn công hoạt động:

Bạn clone một dự án mã nguồn mở. Nó trông có vẻ bình thường. Bạn mở nó trong trình soạn thảo AI và yêu cầu một tính năng mới. Bạn không nhìn thấy các ký tự Unicode ẩn trong các tệp cấu hình. Những ký tự này che giấu các chỉ dẫn khỏi bạn nhưng lại yêu cầu AI thực hiện một việc khác.

Chỉ dẫn ẩn này yêu cầu AI gửi thông tin xác thực AWS của bạn đến một máy chủ bên ngoài. AI nghĩ rằng đây là một chỉ dẫn hợp lệ của dự án. Nó thực thi lệnh đó. Và thế là các thông tin bí mật của bạn biến mất.

Tại sao điều này lại khó ngăn chặn:

  • Ký tự ẩn: Bạn thấy văn bản tiêu chuẩn, nhưng AI lại thấy các lệnh độc hại thông qua các ký tự Unicode vô hình.
  • Mọi tệp đều là một điểm xâm nhập: Một tệp README hoặc một chú thích trong thư viện có thể chứa mã độc (payload).
  • Quyền hạn cao: Các tác nhân AI (AI agents) thường chạy với quyền người dùng của bạn. Chúng có thể đọc các khóa SSH và mã thông báo (token) API của bạn.
  • Gọi công cụ (Tool calls): AI sử dụng các lệnh gọi công cụ để chạy các câu lệnh. Cuộc tấn công nhắm vào các lệnh gọi này để vượt qua quá trình huấn luyện an toàn.

Cách bảo vệ quy trình làm việc của bạn:

  • Làm sạch nội dung tệp: Loại bỏ các ký tự ẩn và các mẫu injection phổ biến trước khi AI đọc chúng.
  • Sử dụng sandbox: Chạy các tác nhân AI trong các container không có quyền truy cập mạng và sử dụng hệ thống tệp chỉ đọc.
  • Thiết lập các chính sách nghiêm ngặt: Tạo một danh sách trắng (whitelist) các lệnh được phép. Yêu cầu sự phê duyệt của con người đối với bất kỳ lệnh nào di chuyển dữ liệu hoặc xóa tệp.

Bạn có thể thực hiện một bản quét nhanh trước các phiên lập trình của mình. Hãy kiểm tra các tệp để tìm các thuật ngữ đáng ngờ như "ignore all previous" hoặc "curl" và "exfil."

Các công cụ lập trình AI mang lại hiệu suất cao, nhưng chúng mặc định rằng các tệp trên ổ đĩa của bạn là an toàn. Thực tế không phải vậy. Hãy coi mọi tệp đều là đầu vào không đáng tin cậy.

Bạn đang xử lý các rủi ro prompt injection trong quy trình làm việc AI của mình như thế nào?

Nguồn: https://dev.to/tyson_cung/ai-coding-security-prompt-injection-is-hiding-in-your-project-files-4be9