عاملیت بیش از حد، آسیبپذیریای است که زمانی رخ میدهد که به یک مدل زبان بزرگ (LLM) تواناییهای غیرضروری یا بیش از حد مجاز برای تعامل با سایر سیستمها اعطا میشود. هنگامی که یک LLM میتواند ابزارها، افزونهها یا توابع خارجی ("عاملیت" آن) را فراخوانی کند، این آسیبپذیری به آن اجازه میدهد اقداماتی را انجام دهد که ناخواسته، غیرمجاز و بالقوه مضر هستند. یک مهاجم میتواند با استفاده از تزریق سریع یا سایر تکنیکهای دستکاری، LLM را فریب دهد تا از عاملیت اعطا شده خود برای اهداف مخرب استفاده کند. مسئله اصلی فقط این نیست که LLM میتواند اقداماتی انجام دهد، بلکه این است که دامنه این اقدامات بسیار گسترده و ضعیف کنترل میشود.
چرا توسعهدهندگان اندروید باید اهمیت بدهند؟
اعطای اختیارات بیش از حد به یک LLM در برنامه اندروید شما میتواند منجر به حوادث امنیتی شدیدی شود:
- دسترسی غیرمجاز به سیستم : اگر سیستم فایل و منابع ذخیرهسازی دستگاه یا قابلیت انجام فراخوانیهای شبکه از طریق فراخوانی تابع در معرض مدل قرار گیرد، یک مهاجم میتواند از تزریق سریع برای دسترسی، تغییر یا حذف فایلهای روی دستگاه (به عنوان مثال، اسناد کاربر، دادههای برنامه) یا منابع شبکه متصل استفاده کند.
- استخراج دادهها : اگر یک برنامه از فراخوانی تابعی برای دسترسی به دادههای محلی (مانند پایگاههای داده Room، SharedPreferences یا APIهای داخلی) به یک LLM استفاده کند، یک اعلان مخرب میتواند مدل را فریب دهد تا اطلاعات حساس را بازیابی کرده و آن را به یک ابزار خارجی مانند یک ایمیل یا تابع درخواست شبکه ارسال کند.
- به خطر افتادن سایر عملکردها/سیستمها : اگر LLM بر سایر عملکردها (مثلاً ارسال پیامک، برقراری تماس، ارسال پست در رسانههای اجتماعی با استفاده از اهداف ضمنی، تغییر تنظیمات سیستم، انجام خریدهای درون برنامهای) اختیار داشته باشد، یک مهاجم میتواند این عملکردها را برای ارسال هرزنامه، انتشار اطلاعات نادرست یا انجام تراکنشهای غیرمجاز، که منجر به ضرر مالی مستقیم یا آسیب به کاربر میشود، ربوده و از کار بیندازد.
- انکار سرویس : اگر یک LLM با فراخوانی تابعی که پرسوجوهای پایگاه داده یا درخواستهای شبکه را افشا میکند، یکپارچه شود، یک اعلان مخرب میتواند این اقدامات را به طور مکرر انجام دهد. این ممکن است منجر به کاهش سلامت سیستم، مانند تخلیه بیش از حد باتری، مصرف بیش از حد دادهها یا اتمام منابع محلی شود.
راهکارهای مقابله با تهدیدات برای توسعهدهندگان برنامههای اندروید
کاهش نفوذ بیش از حد در برنامههای اندروید بر اعمال اصل حداقل امتیاز به هر ابزار و عملکردی که LLM میتواند به آن دسترسی داشته باشد یا آن را فعال کند، تمرکز دارد.
جعبه ابزار هوش مصنوعی را محدود کنید (توابع جزئی در مقابل توابع باز):
- حداقل ابزارها را فراهم کنید : مدیر برنامهی کاربردی (LLM) فقط باید به ابزارهای خاصی (توابع، APIها، اهداف) که برای انجام کار خود در برنامهی شما کاملاً به آنها نیاز دارد، دسترسی داشته باشد. اگر نیازی به مرور وب یا ارسال ایمیل ندارد، این قابلیتها را در اختیار او قرار ندهید.
- از ابزارهای ساده و تک منظوره استفاده کنید : ابزارهایی با دامنه محدود و خاص طراحی کنید. به عنوان مثال، ابزاری ارائه دهید که فقط نوع خاصی از تنظیمات کاربر را بخواند، نه یک ابزار عمومی که پارامترهای باز را برای دسترسی به منابع داده متعدد میپذیرد. با اجازه دادن به مدل برای تعریف دستور یا آرگومانها، از افشای APIهای قدرتمند سطح سیستم، مانند
Runtime.getRuntime().exec()، به یک LLM خودداری کنید.
قدرت هوش مصنوعی را محدود کنید
- مجوزهای دقیق اندروید : هنگامی که یک تابع فعالشده توسط LLM با منابع سیستم اندروید یا سایر برنامهها تعامل دارد، تأیید کنید که برنامه شما فقط حداقل مجوزهای اندروید مورد نیاز را درخواست کرده و آنها را در اختیار دارد.
- مجوزهای هر کاربر : وقتی LLM عملی را از طرف کاربر انجام میدهد، باید این کار را با مجوزها و زمینه خاص آن کاربر انجام دهد. عملی که توسط LLM انجام میشود باید پاسخ مستقیم به یک دستور خاص کاربر باشد.
یک نیروی انسانی را مسئول امور قرار دهید (رضایت کاربر برای اقدامات حیاتی)
- نیاز به تأیید کاربر : برای هرگونه اقدام مهم یا پرخطری که یک LLM ممکن است پیشنهاد دهد یا سعی در انجام آن داشته باشد (به عنوان مثال، حذف دادهها، انجام خریدهای درون برنامهای، ارسال پیام، تغییر تنظیمات حیاتی)، همیشه نیاز به تأیید صریح انسان با استفاده از یک کادر تأیید در رابط کاربری خود دارید. به این فکر کنید که برای تأیید یک تصمیم مهم، به یک مدیر نیاز دارید.
اعتماد کنید اما تأیید کنید (اعتبارسنجی ورودی/خروجی و بکاندهای قوی)
- امنیت بکاند : برای تصمیمگیری در مورد مجاز بودن یک اقدام، فقط به LLM تکیه نکنید. هر سرویس بکاند یا API که توابع فعالشده توسط LLM به آن متصل میشوند، باید احراز هویت، مجوزدهی و اعتبارسنجی ورودی قوی خود را داشته باشند تا هر درخواست را دوباره بررسی کرده و قانونی بودن و در محدوده پارامترهای مورد انتظار را تأیید کنند.
- پاکسازی دادهها : درست مانند سایر آسیبپذیریها، بسیار مهم است که ورودیهایی که به LLM وارد میشوند و پارامترهایی که توسط LLM برای فراخوانی توابع تولید میشوند، پاکسازی و اعتبارسنجی شوند تا هرگونه دستورالعمل مخرب یا خروجیهای غیرمنتظره قبل از اجرای هرگونه عملی شناسایی شوند.
خلاصه
عاملیت بیش از حد، یک آسیبپذیری بحرانی است که در آن یک LLM مجوزهای بیش از حد گستردهای برای تعامل با سایر سیستمها یا عملکردها دارد و به آن اجازه میدهد تا برای انجام اقدامات مضر فریب داده شود. این میتواند منجر به دسترسی غیرمجاز به دادهها، به خطر افتادن سیستم، ضرر مالی یا آسیب به کاربر در برنامههای اندروید شود. کاهش این آسیبپذیری به شدت به اصل حداقل امتیاز متکی است: ابزارها و مجوزهای اندروید موجود برای LLM را به شدت محدود کنید، تأیید کنید که هر ابزار دارای حداقل و عملکرد خاص است و برای همه عملیات با تأثیر بالا نیاز به تأیید انسان دارد.