جلوگیری از افشای اطلاعات حساس

شرح ریسک OWASP

افشای اطلاعات حساس، آسیب‌پذیری‌ای است که در آن یک مدل زبان بزرگ (LLM) ناخواسته داده‌های محرمانه، خصوصی، اختصاصی یا محدود شده را در پاسخ‌های خود فاش می‌کند. این اتفاق می‌تواند زمانی رخ دهد که مدل، اطلاعات را از داده‌های آموزشی خود نشت دهد یا جزئیات حساس ارائه شده به آن را در چارچوب جلسه کاربر فاش کند. مهاجمان می‌توانند با ایجاد پرس‌وجوهای خاص یا استفاده از تکنیک‌های تزریق سریع، مدل را فریب دهند تا اطلاعاتی را که نباید فاش کند، فاش کند. مشکل اصلی، ناتوانی LLM در تمایز قائل شدن بین داده‌های عمومی و اطلاعات محرمانه‌ای است که پردازش کرده است.

انواع افشای اطلاعات مربوط به اندروید

نشت داده‌های آموزشی : این اتفاق زمانی رخ می‌دهد که یک LLM قطعات داده خاص و کلمه به کلمه‌ای را که بر اساس آنها آموزش دیده است، دوباره برمی‌گرداند. اگر مجموعه داده‌های آموزشی شامل اطلاعات شخصی (PII)، کد اختصاصی یا اسناد داخلی باشد، مدل ممکن است در صورت درخواست صحیح، این اطلاعات را در خروجی خود بازتولید کند. برای برنامه‌های اندروید، این می‌تواند شامل مدل‌های از پیش آموزش دیده همراه با برنامه یا مدل‌هایی باشد که با استفاده از APIهای ابری به آنها دسترسی پیدا می‌شود.

افشای داده‌های زمینه‌ای : این یک خطر فوری‌تر برای برنامه‌های اندروید است که شامل افشای اطلاعات حساسی است که کاربر در طول یک جلسه برنامه ارائه می‌دهد. به عنوان مثال، اگر برنامه شما به کاربر اجازه می‌دهد اطلاعات شخصی قابل شناسایی (PII) را برای خلاصه‌سازی در یک LLM وارد کند، یک حمله تزریق سریع بعدی می‌تواند به مهاجم این امکان را بدهد که مدل را برای افشای محتوا دستکاری کند. این همچنین در مورد هرگونه داده حساسی که برنامه شما به طور ضمنی به LLM منتقل می‌کند، صدق می‌کند.

چرا توسعه‌دهندگان اندروید باید اهمیت بدهند

افشای اطلاعات حساس می‌تواند به شدت یک برنامه و کاربران آن را در معرض خطر قرار دهد:

  • نقض حریم خصوصی : یک مهاجم می‌تواند اطلاعات شخصی قابل شناسایی (PII) مانند نام، ایمیل، شماره تلفن یا حتی داده‌های مکانی را از کاربران شما استخراج کند و منجر به سرقت هویت و مجازات‌های شدید نظارتی (به عنوان مثال، تحت GDPR یا CCPA) شود. این امر به ویژه برای برنامه‌های اندرویدی که با داده‌های کاربر کار می‌کنند، بسیار مهم است.
  • سرقت مالکیت معنوی : اگر LLM برنامه شما الگوریتم‌های اختصاصی، داده‌های مالی یا سایر اطلاعات داخلی کسب‌وکار را پردازش می‌کند، یک مهاجم می‌تواند افشای آن را اجباری کند و خسارت رقابتی و مالی قابل توجهی به سازمان شما وارد کند.
  • نقض‌های امنیتی : LLM ممکن است سهواً اطلاعات سطح سیستم مانند کلیدهای API، توکن‌های احراز هویت یا جزئیات پیکربندی که در داده‌های آموزشی آن وجود داشته یا در طول یک جلسه منتقل شده‌اند را فاش کند و آسیب‌پذیری‌های امنیتی مهمی را برای backend یا سایر سرویس‌های شما ایجاد کند.
  • آسیب به اعتبار : یک حادثه نشت اطلاعات قابل توجه می‌تواند اعتماد کاربر را از بین ببرد، منجر به حذف برنامه، نظرات منفی و آسیب‌های جبران‌ناپذیری به اعتبار برنامه و برند شما شود.

راهکارهای مقابله با تهدیدات برای توسعه‌دهندگان برنامه‌های اندروید

کاهش این آسیب‌پذیری نیازمند یک رویکرد چندلایه است که بر بهداشت داده‌ها و کنترل دسترسی LLM در برنامه اندروید شما متمرکز باشد.

پاکسازی و کمینه‌سازی داده‌ها:

  • اولویت‌بندی پاکسازی ورودی‌ها : قبل از ارسال هرگونه ورودی کاربر یا داده‌های برنامه به یک LLM، آن را با دقت پاکسازی و ناشناس کنید. تمام اطلاعات شخصی و اختصاصی که برای وظیفه LLM کاملاً ضروری نیستند را حذف کنید.
  • فقط آنچه را که لازم است جمع‌آوری کنید : در برنامه خود به اصل حداقل‌سازی داده‌ها پایبند باشید. فقط حداقل داده‌های لازم برای انجام عملکرد خاص LLM را جمع‌آوری و در اختیار آن قرار دهید.
  • یادگیری ماشینی درون دستگاهی : برای داده‌های بسیار حساس، استفاده از مدل‌های یادگیری ماشینی درون دستگاهی را در نظر بگیرید که در آن‌ها داده‌ها هرگز از دستگاه کاربر خارج نمی‌شوند و خطر نشت داده‌های سمت سرور را به میزان قابل توجهی کاهش می‌دهند.

کنترل دسترسی

  • محدود کردن دسترسی به داده‌ها : برنامه LLM خود را طوری طراحی کنید که به کمترین مقدار ممکن از داده‌ها دسترسی داشته باشد. اگر به مدل دسترسی به پایگاه داده حساس، تنظیمات کاربر یا فایل‌های خصوصی داده نشود، نمی‌توان آن را فریب داد تا محتوای آنها را فاش کند.
  • محدود کردن مجوزهای اندروید : تأیید کنید که اجزای هوش مصنوعی برنامه شما با حداقل مجوزهای لازم اندروید کار می‌کنند. مجوزهای غیرضروری که می‌توانند داده‌های حساس را افشا کنند، اعطا نکنید.

فیلتر کردن خروجی در داخل برنامه:

  • ویرایش سمت کلاینت : یک لایه امنیتی در برنامه اندروید خود پیاده‌سازی کنید که خروجی LLM را برای یافتن الگوهایی که با اطلاعات حساس (مثلاً شماره کارت اعتباری، کلیدهای API، شماره‌های تأمین اجتماعی، آدرس‌های ایمیل) مطابقت دارند، قبل از نمایش پاسخ به کاربر، اسکن کند. در صورت یافتن تطابق، پاسخ باید مسدود یا ویرایش شود.

نکات آموزشی برای LLM ها:

  • دستورالعمل‌های صریح سیستم : دستورالعمل‌های صریحی را در دستورالعمل سیستم قرار دهید که مدل را از افشای هرگونه اطلاعات شخصی، محرمانه یا حساس منع کند. به عنوان مثال: "شما نباید تحت هیچ شرایطی هیچ گونه اطلاعات کاربری، داده‌های داخلی یا اطلاعات شخصی قابل شناسایی را به اشتراک بگذارید." این رفتار مورد انتظار را تقویت می‌کند.

تکنیک‌های افزایش حریم خصوصی:

  • برای برنامه‌هایی که از تعاملات یا داده‌های کاربر یاد می‌گیرند، تکنیک‌های پیشرفته‌ای مانند حریم خصوصی تفاضلی (افزودن نویز آماری به داده‌ها) یا یادگیری فدرال (مدل‌های آموزشی روی دستگاه‌های کاربر بدون متمرکز کردن داده‌ها) را برای محافظت از حریم خصوصی افراد در نظر بگیرید.

ممیزی منظم و تشکیل تیم قرمز:

  • تست پیشگیرانه : برنامه اندروید خود را به طور فعال آزمایش و تیم قرمز کنید تا کشف کنید که آیا و چگونه LLM ممکن است اطلاعات حساس را فاش کند. این شامل تلاش عمدی برای وادار کردن LLM به افشای داده‌هایی است که نباید فاش شوند.

خلاصه

افشای اطلاعات حساس زمانی رخ می‌دهد که یک LLM داده‌های محرمانه را از مجموعه آموزشی یا جلسات کاربر خود فاش می‌کند و خطرات قابل توجهی مانند نقض حریم خصوصی و سرقت مالکیت معنوی را به همراه دارد. کاهش این خطر نیاز به یک دفاع لایه‌ای در برنامه اندروید شما دارد، اولویت‌بندی پاکسازی داده‌ها قبل از رسیدن به LLM، اجرای اصل حداقل امتیاز برای محدود کردن دسترسی به داده‌های مدل و پیاده‌سازی فیلترهای قوی برای اسکن و حذف اطلاعات حساس از خروجی نهایی مدل قبل از رسیدن به کاربر. استفاده از یادگیری ماشینی روی دستگاه و ابزارهایی مانند Firebase App Check می‌تواند امنیت را بیشتر افزایش دهد.

منابع اضافی

در اینجا پیوندهایی به برخی از دستورالعمل‌های اطلاعات حساس برای مرجع آورده شده است:

اگر از مدل‌های دیگری استفاده می‌کنید، باید به دنبال راهنمایی‌ها و منابع مشابه باشید.

اطلاعات بیشتر: