Nội dung mô tả về rủi ro theo OWASP
Quyền tự chủ quá mức là một điểm yếu xảy ra khi mô hình ngôn ngữ lớn (LLM) được cấp các khả năng không cần thiết hoặc quá cho phép để tương tác với các hệ thống khác. Khi một LLM có thể gọi các công cụ, trình bổ trợ hoặc chức năng bên ngoài (khả năng "tác động" của LLM), lỗ hổng này cho phép LLM thực hiện những hành động ngoài ý muốn, trái phép và có khả năng gây hại. Kẻ tấn công có thể khai thác điều này bằng cách sử dụng kỹ thuật chèn câu lệnh hoặc các kỹ thuật thao túng khác để lừa LLM sử dụng quyền được cấp cho các mục đích độc hại. Vấn đề cốt lõi không chỉ là LLM có thể thực hiện các hành động, mà phạm vi của những hành động đó quá rộng và không được kiểm soát chặt chẽ.
Lý do nhà phát triển Android nên quan tâm
Việc cấp cho một LLM quá nhiều quyền trong ứng dụng Android của bạn có thể dẫn đến các sự cố bảo mật nghiêm trọng:
- Truy cập trái phép vào hệ thống: Kẻ tấn công có thể ra lệnh cho LLM truy cập, sửa đổi hoặc xoá các tệp trên thiết bị Android cục bộ (ví dụ: tài liệu người dùng, dữ liệu ứng dụng) hoặc các tài nguyên mạng được kết nối nếu mô hình có quyền và các quyền tương ứng trên Android để làm như vậy.
- Trích xuất dữ liệu: LLM có thể bị lừa đọc dữ liệu nhạy cảm từ cơ sở dữ liệu ứng dụng cục bộ (chẳng hạn như Room), SharedPreferences hoặc API nội bộ, sau đó trích xuất thông tin đó sang một nguồn bên ngoài (ví dụ: gửi thông tin đó bằng lệnh gọi API hoặc hàm email). Mô hình cũng có thể làm lộ thông tin nhạy cảm mà mô hình đã hấp thụ trong giai đoạn huấn luyện hoặc thông tin nhạy cảm mà người dùng cung cấp trong câu lệnh.
- Xâm nhập các chức năng/hệ thống khác: Nếu LLM có quyền kiểm soát các chức năng khác (ví dụ: gửi tin nhắn SMS, thực hiện cuộc gọi, đăng bài trên mạng xã hội bằng cách sử dụng ý định ngầm, sửa đổi chế độ cài đặt hệ thống, thực hiện giao dịch mua hàng trong ứng dụng), kẻ tấn công có thể chiếm đoạt các chức năng này để gửi nội dung rác, lan truyền thông tin sai lệch hoặc thực hiện các giao dịch trái phép, dẫn đến tổn thất tài chính trực tiếp hoặc gây hại cho người dùng.
- Từ chối dịch vụ: LLM có thể được hướng dẫn thực hiện các hành động tiêu tốn nhiều tài nguyên nhiều lần trong ứng dụng hoặc đối với các dịch vụ phụ trợ, chẳng hạn như chạy các truy vấn cơ sở dữ liệu phức tạp hoặc gọi một API trong một vòng lặp, dẫn đến tình trạng ứng dụng không phản hồi, pin bị hao mòn, mức sử dụng dữ liệu quá mức hoặc thậm chí là từ chối dịch vụ đối với các hệ thống phụ trợ.
Các biện pháp giảm thiểu dành cho nhà phát triển ứng dụng Android
Việc giảm thiểu quyền hạn quá mức trong các ứng dụng Android tập trung vào việc áp dụng nguyên tắc về quyền hạn tối thiểu cho mọi công cụ và chức năng mà LLM có thể truy cập hoặc kích hoạt.
Giới hạn bộ công cụ của AI (các hàm chi tiết so với các hàm có phạm vi mở):
- Cung cấp các công cụ tối thiểu: LLM chỉ nên có quyền truy cập vào các công cụ cụ thể (hàm, API, ý định) mà LLM hoàn toàn cần để thực hiện công việc trong ứng dụng của bạn. Nếu LLM không cần có khả năng duyệt web hoặc gửi email, thì đừng cung cấp những chức năng đó cho LLM.
- Sử dụng các công cụ đơn giản, một mục đích: Bạn nên cung cấp cho LLM một công cụ chỉ có thể làm một việc cụ thể (chẳng hạn như "đọc một loại chế độ cài đặt cụ thể của người dùng") thay vì một công cụ mạnh mẽ, không giới hạn có thể làm bất cứ điều gì (chẳng hạn như "thực thi mọi lệnh shell").
Hạn chế sức mạnh của AI
- Quyền Android chi tiết: Khi một hàm do LLM kích hoạt tương tác với tài nguyên hệ thống Android hoặc các ứng dụng khác, hãy xác minh rằng ứng dụng của bạn chỉ yêu cầu và giữ lại số lượng quyền Android tối thiểu tuyệt đối cần thiết.
- Quyền cho mỗi người dùng: Khi thực hiện một hành động thay cho người dùng, LLM phải thực hiện hành động đó bằng quyền và bối cảnh cụ thể của người dùng đó, chứ không phải bằng một tài khoản cấp ứng dụng rộng hơn, có thể là tài khoản quản trị. Điều này xác minh rằng LLM không thể làm bất cứ điều gì mà người dùng không được phép tự làm.
Đảm bảo người dùng vẫn có quyền kiểm soát (người dùng đồng ý đối với các hành động quan trọng)
- Yêu cầu người dùng phê duyệt: Đối với mọi hành động quan trọng hoặc rủi ro mà một LLM có thể đề xuất hoặc cố gắng thực hiện (ví dụ: xoá dữ liệu, mua hàng trong ứng dụng, gửi tin nhắn, thay đổi các chế độ cài đặt quan trọng), hãy luôn yêu cầu người dùng phê duyệt rõ ràng bằng cách sử dụng hộp thoại xác nhận trong giao diện người dùng. Hãy coi như bạn cần một người quản lý phê duyệt một quyết định quan trọng.
Tin tưởng nhưng xác minh (xác thực dữ liệu đầu vào/đầu ra và các dịch vụ phụ trợ mạnh mẽ)
- Bảo mật phụ trợ: Đừng chỉ dựa vào LLM để quyết định xem một hành động có được phép hay không. Mọi dịch vụ phụ trợ hoặc API mà các hàm do LLM kích hoạt kết nối đều phải có quy trình xác thực, uỷ quyền và xác thực đầu vào mạnh mẽ riêng để kiểm tra kỹ từng yêu cầu và xác minh rằng yêu cầu đó hợp lệ và nằm trong các tham số dự kiến.
- Dọn dẹp dữ liệu: Giống như các lỗ hổng bảo mật khác, bạn phải dọn dẹp và xác thực cả dữ liệu đầu vào được đưa vào LLM và các tham số do LLM tạo cho các lệnh gọi hàm để phát hiện mọi hướng dẫn độc hại hoặc đầu ra không mong muốn trước khi thực hiện bất kỳ hành động nào.
Tóm tắt
Excessive Agency (Quyền hạn quá mức) là một lỗ hổng nghiêm trọng, trong đó LLM có quyền tương tác quá rộng với các hệ thống hoặc chức năng khác, cho phép kẻ tấn công lừa LLM thực hiện các hành động gây hại. Điều này có thể dẫn đến việc truy cập dữ liệu trái phép, xâm nhập hệ thống, tổn thất tài chính hoặc gây hại cho người dùng trong các ứng dụng Android. Việc giảm thiểu phụ thuộc nhiều vào nguyên tắc về đặc quyền tối thiểu: giới hạn nghiêm ngặt các công cụ và quyền Android mà LLM có thể sử dụng, xác minh rằng mỗi công cụ có chức năng tối thiểu và cụ thể, đồng thời yêu cầu con người phê duyệt cho tất cả các hoạt động có tác động lớn.