~/VibeHandbook
PDF miễn phí

Chương 18 · 01

Vì sao mã do AI viết mặc định là không an toàn

AI tối ưu hóa theo (câu lệnh) bạn đưa, và prompt của bạn hầu như luôn nói "làm cho nó chạy", chứ không phải "làm cho nó an toàn". Vì vậy nó tạo ra con đường ngắn nhất để có một tính năng chạy được. Con đường ngắn nhất thường là con đường không an toàn: truy vấn ghép chuỗi (string-concatenated queries), một (một trong những "cửa" có thể truy cập vào ứng dụng của bạn — một cụ thể mà ứng dụng trả lời yêu cầu) không có kiểm tra quyền, một (thông tin bí mật) dán thẳng vào code vì đó là ví dụ nó học được.

Tình hình còn tệ hơn, vì AI học từ toàn bộ internet — bao gồm cả một thập kỷ hướng dẫn (tutorial) và các repo bị bỏ hoang mà bản thân chúng vốn đã không an toàn. Mã không an toàn phổ biến hơn mã an toàn trong dữ liệu huấn luyện của nó, vì mã an toàn khó viết hơn và hiếm được đăng hơn. Khi bạn yêu cầu "một form đăng nhập", theo thống kê bạn có nhiều khả năng nhận được form đăng nhập trung bình trên internet, và form đăng nhập trung bình trên internet thì có vấn đề.

AI cũng không có cảm giác về nguy hiểm. Một con người khi xây dựng tính năng tải file lên sẽ thoáng lo lắng — nếu ai đó tải lên thứ gì đó độc hại thì sao? AI không cảm thấy gì cả. Nó viết trình xử lý (handler) với sự tự tin y hệt nhau dù nó kín kẽ hay hở toang. Không có sự do dự, không có kiểu "hừm, phần này làm mình lo lo". Bạn phải tự cung cấp sự lo lắng đó.

Bài học rút ra không phải là "mã của AI nguy hiểm, đừng dùng nó". Mà là "nó chạy được" và "nó an toàn" là hai câu hỏi khác nhau, và AI chỉ trả lời câu đầu tiên trừ khi bạn buộc nó trả lời cả câu thứ hai.

Muốn bản ngoại tuyến?

Tải trọn cuốn sách dưới dạng PDF hoặc EPUB — miễn phí.