Sử dụng AI mà không làm rò rỉ bí mật
Bạn gặp lỗi. Bạn sao chép stack trace. Bạn yêu cầu AI sửa nó. Bạn quên rằng DATABASE_URL và mật khẩu nằm trong đoạn văn bản đó. AI trả lời trong bốn giây. Giờ đây, bí mật của bạn đã nằm trong nhật ký yêu cầu (request log) hoặc một tập dữ liệu huấn luyện. Bạn không thể xóa nó.
Dán các bí mật vào AI cũng giống như dán chúng lên một trang web công khai. Bạn không thể thu hồi chúng.
Tôi sử dụng AI mỗi ngày để triển khai mã nguồn. Tôi không né tránh nó. Tôi sử dụng nó với một mô hình đe dọa (threat model).
Hầu hết mọi người nghĩ rằng một câu lệnh (prompt) là một cuộc trò chuyện riêng tư. Không phải vậy. Đó là một yêu cầu gửi ra bên ngoài (outbound request).
- Các gói miễn phí thường sử dụng dữ liệu của bạn để huấn luyện mô hình.
- Các gói trả phí thường hứa sẽ không huấn luyện trên dữ liệu của bạn.
- Ngay cả các gói trả phí cũng lưu trữ nhật ký để phát hiện lạm dụng và xem xét bởi con người.
Dữ liệu rò rỉ theo ba cách:
- Những gì bạn dán: các đoạn mã, cấu hình hoặc vết lỗi (traces).
- Những gì công cụ tự động đính kèm: các tệp đang mở, ngữ cảnh kho lưu trữ (repo context) hoặc đầu ra của terminal.
- Những gì mô hình gửi lại: các bí mật bị lặp lại trong mô tả PR hoặc nhật ký.
Nhà cung cấp AI là một bên thứ ba đáng tin cậy. Bạn không thể kiểm tra (audit) các quy trình nội bộ của họ. Hãy coi hộp nhập prompt như một lời gọi mạng không đáng tin cậy (untrusted network call).
Ngừng gửi những thứ này:
- Các khóa API hoặc token đang hoạt động.
- Nội dung của các tệp
.env. - Khóa riêng tư hoặc chứng chỉ.
- Tên, email hoặc dữ liệu thanh toán thực của khách hàng.
- Các logic độc quyền mà bạn sẽ không mở mã nguồn.
Hãy sử dụng các trình giữ chỗ (placeholders) thay thế. Sử dụng [API_KEY] hoặc [DB_PASSWORD]. AI vẫn hoạt động tốt với các mặt nạ (masks) như vậy.
Xây dựng ba thói quen này:
- Sử dụng một tệp ignore cho AI. Giữ các tệp
.envvà các thư mục bí mật nằm ngoài ngữ cảnh của công cụ. - Quét trước khi gửi. Chạy một trình phát hiện bí mật (secret detector) trên văn bản của bạn trước khi dán.
- Giữ các bí mật được mã hóa. Nếu các bí mật chỉ tồn tại trong bộ nhớ khi thực thi (runtime), bạn sẽ không thể dán chúng.
Tóm tắt các lựa chọn của bạn:
- Miễn phí/Người dùng cá nhân: Sử dụng cho các tài liệu công khai hoặc các đoạn mã tạm thời.
- Trả phí Pro/Team: Sử dụng cho hầu hết các công việc kỹ thuật. Nó có các bảo vệ về mặt hợp đồng.
- Cục bộ/Tự lưu trữ (Self-hosted): Sử dụng cho dữ liệu được quản lý nghiêm ngặt cần phải ở lại trên máy của bạn.
Một cam kết không huấn luyện là một hợp đồng. Nó không phải là một lá chắn kỹ thuật. Nó làm giảm rủi ro nhưng không chấm dứt rủi ro.
Thực hiện các bước sau trước khi AI chạm vào mã nguồn của bạn:
- Thêm một tệp ignore cho các công cụ AI của bạn.
- Quét mọi thứ bạn dán.
- Che giấu tất cả thông tin xác thực bằng các trình giữ chỗ.
- Sử dụng các gói trả phí cho các công việc độc quyền.
- Sử dụng một KMS để giữ các bí mật không ở dạng văn bản thuần túy (plaintext).
- Xem lại kết quả của AI trước khi nó được ghi vào nhật ký hoặc commit.
Câu trả lời bốn giây vẫn rất nhanh. Chỉ là nó sẽ không làm mất đi tính bảo mật của bạn.
Optional learning community: https://t.me/GyaanSetuAi
