Tác tử AI nên được cấp đúng những quyền cần cho việc được giao, trong đúng khoảng thời gian cần, và không thêm gì nữa. Đây là nguyên tắc quyền tối thiểu, vốn quen thuộc với người làm bảo mật từ lâu, nay quan trọng hơn khi phần mềm không chỉ trả lời mà còn tự đọc thư, tự sửa tệp, tự chạy lệnh.
Lý do giới hạn quyền không phải vì AI có ý xấu. Nó có thể hiểu sai yêu cầu, có thể bị lừa bởi một đoạn chữ cài sẵn trong trang web hay tài liệu nó đọc, và có thể làm đúng từng chữ của lệnh mà sai ý người giao. Quyền càng rộng, cái sai nhỏ càng có cơ hội thành thiệt hại lớn.
Tác tử AI khác chatbot ở chỗ nào
Một chatbot thông thường chỉ đưa ra chữ. Nó trả lời sai thì người đọc thấy sai, bỏ qua là xong. Tác tử AI thì khác: nó được nối với công cụ. Nó có thể gửi email, đặt lịch, truy vấn cơ sở dữ liệu, sửa mã nguồn, gọi dịch vụ thanh toán. Câu trả lời sai giờ trở thành hành động sai, và hành động thì để lại hậu quả trước khi ai kịp đọc.
Hãy nghĩ tới chuyện nhờ người quen trông nhà khi đi vắng. Mình đưa chìa khoá cổng và cửa chính để họ tưới cây, cho mèo ăn. Mình không đưa chìa két sắt, không đưa giấy tờ xe, không đưa mật khẩu ngân hàng. Không phải vì nghi ngờ họ, mà vì việc tưới cây không cần những thứ đó, và lỡ chùm chìa rơi mất thì thiệt hại chỉ dừng ở mức cái cổng.
Tác tử AI cần được đối xử đúng như vậy. Với mỗi việc, hỏi: việc này cần đọc gì, ghi gì, gọi tới đâu, trong bao lâu. Phần còn lại không cấp. Nghe đơn giản, nhưng trong thực tế người ta hay làm ngược lại: cấp cho tác tử nguyên quyền quản trị "cho tiện", vì thử nghiệm thấy nó chạy được, rồi đưa thẳng bản thử nghiệm đó vào dùng thật.
Có một rủi ro riêng của tác tử mà phần mềm truyền thống không có: tấn công chèn lệnh gián tiếp. Tác tử đọc một trang web, một email hay một tệp đính kèm, trong đó có đoạn chữ viết như một mệnh lệnh. Mô hình ngôn ngữ chưa phân biệt được chắc chắn đâu là lệnh của chủ, đâu là chữ trong tài liệu, nên có lúc làm theo. Hiện chưa có cách chặn hoàn toàn lỗ hổng này ở tầng mô hình, nên giới hạn quyền là tấm lưới quan trọng nhất: bị lừa mà không có quyền thì cũng không làm được gì nhiều.
Những nguyên tắc cấp quyền cho tác tử AI
Tách quyền đọc và quyền ghi. Tác tử tóm tắt hộp thư chỉ cần đọc thư, không cần gửi thư. Phần lớn việc phân tích, tra cứu chỉ cần quyền đọc.
Giới hạn theo phạm vi dữ liệu. Tác tử hỗ trợ phòng kế toán chỉ thấy dữ liệu kế toán, không thấy hồ sơ nhân sự. Chia theo thư mục, theo bảng, theo khách hàng.
Quyền có thời hạn. Cấp khoá truy cập hết hạn sau vài giờ hoặc sau khi xong việc, thay vì khoá dùng mãi mãi. Khoá lộ ra ngoài cũng nhanh chóng vô dụng.
Danh sách công cụ được phép. Liệt kê rõ tác tử được gọi những công cụ nào, với tham số nào. Mọi thứ ngoài danh sách bị chặn mặc định.
Giới hạn địa chỉ mạng. Tác tử chỉ được gửi dữ liệu tới những địa chỉ đã duyệt. Đây là cách chặn hữu hiệu kiểu tấn công lừa nó gửi dữ liệu ra ngoài.
Hạn mức cho thao tác tốn kém. Số email gửi mỗi giờ, số tiền chi mỗi ngày, số bản ghi sửa mỗi lần. Vượt hạn mức thì dừng và hỏi người.
Hành động không đảo ngược được phải có người duyệt. Xoá dữ liệu, chuyển tiền, gửi văn bản ra ngoài công ty: tác tử chuẩn bị, người bấm nút cuối.
Chạy trong hộp cát. Việc chạy mã hay thử lệnh nên diễn ra trong môi trường cách ly, có thể xoá đi làm lại, không nối thẳng vào hệ thống thật.
Danh tính riêng cho tác tử. Tác tử dùng tài khoản riêng, không mượn tài khoản của nhân viên. Như vậy nhật ký phân biệt được việc người làm và việc máy làm.
Không cho tác tử tự nâng quyền. Tác tử không được tự cấp thêm quyền, tự tạo khoá mới, tự sửa danh sách công cụ của mình.
Coi mọi nội dung đọc vào là dữ liệu chưa tin cậy. Trang web, email, tệp do người ngoài gửi có thể chứa lệnh cài sẵn. Thiết kế sao cho dù tác tử làm theo, quyền của nó vẫn không đủ gây hại lớn.
Rà quyền định kỳ. Mỗi tháng xem lại tác tử nào còn dùng, quyền nào không còn cần. Quyền thừa tích tụ dần nếu không ai dọn.
Những lỗi cấp quyền hay gặp nhất
Dùng khoá quản trị cho nhanh. Lúc thử nghiệm, kỹ sư dùng khoá có toàn quyền để khỏi vướng. Bản thử nghiệm chạy tốt rồi được giữ nguyên đưa vào dùng thật.
Một tác tử làm mọi việc. Gom đọc thư, sửa lịch, truy vấn dữ liệu, gửi báo cáo vào một tác tử thì nó phải có tổng tất cả quyền. Chia thành vài tác tử nhỏ, mỗi cái ít quyền, an toàn hơn.
Mượn tài khoản của sếp. Tác tử chạy bằng tài khoản giám đốc thì thấy mọi thứ giám đốc thấy, kể cả những thứ không liên quan tới việc của nó.
Tin vào câu dặn trong lời nhắc. Viết vào hướng dẫn "đừng bao giờ xoá dữ liệu" rồi vẫn cấp quyền xoá. Câu dặn có thể bị bỏ qua, quyền thì không.
Quên quyền gián tiếp. Tác tử không có quyền xoá, nhưng có quyền chạy lệnh trên máy chủ, mà lệnh thì xoá được. Quyền chạy lệnh thường bao hàm nhiều quyền khác.
Không giới hạn nơi gửi. Tác tử được đọc dữ liệu nội bộ và được gọi bất kỳ địa chỉ web nào: chỉ cần một trang web cài lệnh là dữ liệu có đường đi ra.
Khoá nằm trong mã nguồn. Khoá truy cập ghi thẳng vào tệp cấu hình, rồi tệp đó được chia sẻ cho cả nhóm hoặc đưa lên kho mã.
Không ghi nhật ký thao tác. Khi sự cố xảy ra không biết tác tử đã gọi công cụ nào, với tham số gì, nên không khoanh vùng được thiệt hại.
Duyệt cho có. Có bước người duyệt nhưng màn hình duyệt chỉ hiện "Tác tử muốn thực hiện thao tác, đồng ý không?" mà không nói thao tác gì. Người duyệt bấm đồng ý theo phản xạ.
Cấp quyền theo người yêu cầu. Nhân viên nào cũng có thể nhờ tác tử làm việc, và tác tử dùng quyền của chính nó thay vì quyền của người nhờ. Nhân viên thường có thể mượn tác tử để xem thứ mình không được xem.
Không thu hồi khi ngừng dùng. Dự án thử nghiệm kết thúc nhưng khoá và tài khoản của tác tử vẫn còn hiệu lực nhiều tháng sau.
Quyền tối thiểu có làm AI kém hữu ích không
Đây là phản đối hay gặp nhất, và nó có phần đúng. Một tác tử bị giới hạn chặt sẽ phải dừng lại hỏi nhiều hơn, làm được ít việc tự động hơn. Người dùng sẽ thấy phiền, và áp lực nới quyền là có thật. Giả vờ rằng an toàn không có giá thì không thuyết phục được ai.
Cách cân bằng thường là chia việc theo mức hậu quả. Việc đọc, tóm tắt, soạn nháp thì để tác tử chạy thoải mái vì sai thì sửa được. Việc gửi ra ngoài, sửa dữ liệu chính, chi tiền thì cần thêm một bước xác nhận. Việc không đảo ngược được thì người làm. Chia như vậy, phần lớn khối lượng công việc vẫn được tự động hoá, chỉ có phần nhỏ nhạy cảm là chậm lại.
Một cách khác là cấp quyền theo từng lần. Thay vì cho tác tử quyền gửi email vĩnh viễn, mỗi lần cần gửi nó xin, người dùng bấm duyệt kèm nội dung cụ thể, quyền đó chỉ dùng được một lần. Giống như ở nhiều toà nhà văn phòng tại Đà Nẵng hay Quy Nhơn, khách được phát thẻ từ chỉ mở được đúng tầng mình tới, hết giờ thì thẻ tự hết hiệu lực.
Cuối cùng, quyền tối thiểu không chỉ để phòng lỗi của AI. Nó còn giúp khoanh vùng khi có chuyện: biết tác tử chỉ chạm tới được ba thư mục thì khi sự cố xảy ra chỉ cần kiểm ba thư mục, thay vì lo cả hệ thống đã bị đụng vào.
Bắt đầu từ đâu nếu doanh nghiệp đã lỡ cấp quyền rộng
Kê lại tất cả tác tử đang chạy. Mỗi tác tử: chạy bằng tài khoản nào, dùng khoá nào, gọi được công cụ nào.
Đọc nhật ký một tháng gần nhất. Xem tác tử thực sự đã dùng những quyền nào. Quyền chưa từng dùng là ứng viên đầu tiên để thu hồi.
Thu hồi quyền ghi trước. Quyền ghi, xoá, gửi ra ngoài gây hại nhiều hơn quyền đọc, nên thu hẹp trước.
Tách khoá dùng chung. Mỗi tác tử một khoá riêng để thu hồi được từng cái.
Thêm hạn mức. Đặt trần số thao tác, số tiền, số bản ghi ngay cả khi chưa kịp làm gì khác.
Đưa hành động nguy hiểm về chế độ cần duyệt. Xoá, chuyển tiền, gửi văn bản ra ngoài chuyển sang chế độ tác tử đề xuất, người quyết.
Chặn mạng ra ngoài. Chỉ mở những địa chỉ thật sự cần, chặn phần còn lại.
Chuyển khoá ra khỏi mã nguồn. Đưa vào kho quản lý bí mật, thay khoá cũ đã nằm trong mã.
Thử một cuộc tấn công giả. Cho nhóm kiểm thử cài một đoạn lệnh giả vào tài liệu mà tác tử đọc, xem nó làm được gì với quyền hiện có.
Viết quy định cho tác tử mới. Mọi tác tử mới phải có bảng quyền được duyệt trước khi chạy thật.
Giao người chịu trách nhiệm. Mỗi tác tử có một người phụ trách, người đó nhận cảnh báo và quyết định khi có chuyện.
Câu hỏi thường gặp
Tác tử AI là gì?
Tác tử AI là hệ thống dùng mô hình ngôn ngữ để tự lên kế hoạch và gọi công cụ thực hiện một việc, như đọc email, tra dữ liệu hay đặt lịch. Khác với chatbot chỉ trả lời bằng chữ, tác tử tạo ra hành động có hậu quả thật.
Tấn công chèn lệnh gián tiếp nguy hiểm thế nào?
Kẻ xấu cài một đoạn chữ dạng mệnh lệnh vào trang web hay tài liệu mà tác tử sẽ đọc, và tác tử có thể làm theo. Mức nguy hiểm phụ thuộc chủ yếu vào quyền của tác tử: quyền hẹp thì thiệt hại hẹp.
Viết thật kỹ lời nhắc hệ thống có thay được việc giới hạn quyền không?
Không. Lời nhắc giúp mô hình cư xử tốt hơn trong đa số trường hợp, nhưng có thể bị bỏ qua hoặc bị lấn át. Giới hạn quyền ở tầng hệ thống thì mô hình không vượt qua được.
Hộp cát cho AI là gì?
Hộp cát là môi trường cách ly để tác tử chạy mã hay thử thao tác mà không chạm vào hệ thống thật. Làm hỏng trong hộp cát thì xoá đi dựng lại, không ảnh hưởng dữ liệu thật.
Doanh nghiệp nhỏ có cần làm phức tạp như vậy không?
Không cần làm hết một lúc. Ba việc đáng làm ngay là cho tác tử tài khoản riêng, tách quyền đọc khỏi quyền ghi, và bắt buộc người duyệt mọi việc gửi ra ngoài hoặc chi tiền.