پروژه امنیت نرمافزاری تحت وب (OWASP) لیستی از 10 آسیبپذیری حیاتی که اغلب در برنامههای پردازش زبان طبیعی در مقیاس بزرگ (large language model = LLM) دیده میشوند را منتشر کرده است. OWASP در این لیست، بر تأثیر بالقوه، سهولت بهرهبرداری و فراگیری این آسیبپذیریها تاکید نموده است. نمونههایی از آسیبپذیریها عبارتند از تزریق بلادرنگ، نشت دادهها، سندباکسینگ ناکارآمد، و اجرای غیرمجاز کد. OWASP بیان داشت که این فهرست با هدف آموزش توسعه دهندگان، طراحان، معماران، مدیران و سازمانها پیرامون این موارد منتشر شده است: ریسکهای امنیتی بالقوه در زمان استقرار و مدیریت LLMها، افزایش آگاهی از آسیبپذیریها، پیشنهاد استراتژیهای اصلاحی و بهبود وضعیت امنیتی برنامههای کاربردی LLM .
پیدایش رابطهای چت هوش مصنوعی مولد ساخته شده بر روی LLMها و تأثیر آنها بر امنیت سایبری یک بحث مهم است. نگرانیها در مورد خطرساز شدن این فناوریهای جدید بسیار زیاد است؛ از مسائل بالقوه اشتراکگذاری اطلاعات حساس تجاری با الگوریتمهای خودآموز پیشرفته گرفته تا عوامل مخربی که از این اطلاعات برای افزایش قابل توجه حملات استفاده میکنند. برخی کشورها، ایالتهای آمریکا و شرکتها در حال بررسی یا ممنوع نمودن استفاده از فناوری هوش مصنوعی مولد مانند ChatGPT در زمینه امنیت دادهها، حفاظت و زمینههای حفظ حریم خصوصی هستند.
طبق گفته OWASP، در اینجا 10 آسیبپذیری اصلی که برروی برنامههای LLM تأثیر میگذارد، آورده شده است.
- تزریقهای بلادرنگ OWASP نوشت: تزریقهای بلادرنگ شامل دور زدن فیلترها یا دستکاری LLM با استفاده از اعلانهای دقیق ساخته شده است. این تزریقها باعث میشوند که مدل، دستورالعملهای قبلی را نادیده بگیرد یا اقدامات ناخواسته انجام دهد. این آسیبپذیریها میتوانند منجر به عواقب ناخواسته از جمله نشت دادهها، دسترسی غیرمجاز، یا سایر نقضهای امنیتی شوند. آسیبپذیریهای رایج تزریق بلادرنگ شامل این موارد است: دور زدن فیلترها یا محدودیتها با استفاده از الگوها یا توکنهای خاص، بهرهبرداری از نقاط ضعف در مکانیسمهای توکنیزه کردن یا رمزنگاری LLM و گمراه کردن LLM برای انجام اقدامات ناخواسته، به وسیله ارائه متن گمراهکننده. OWASP عنوان کرد، یک مثال از سناریوی حمله، دور زدن فیلتر محتوایی توسط کاربر مخرب است. کاربر مخرب این کار را با استفاده از الگوهای خاص زبانی، نشانهها یا مکانیسمهای رمزگذاری انجام میدهد. در نتیجه LLM نمیتواند آنها را به عنوان محتوای محدود شده تشخیص دهد و به کاربر اجازه میدهد تا اقداماتی که باید مسدود میشدند را انجام دهد. اقدامات پیشگیرانه برای این آسیبپذیری عبارتند از:
- برای درخواستهای ارائهشده توسط کاربر، اعتبارسنجی و پاکسازی دقیق ورودی را اجرا کنید.
- برای جلوگیری از دستکاری بلادرنگ، از فیلتر context-aware و رمزنگاری خروجی استفاده کنید.
- به طور منظم LLM را به روز رسانی و تنظیم دقیق کنید تا درک آن از ورودیهای مخرب بهبود یابد.
- برای جلوگیری از افشای اطلاعات حساس توسط LLM، فیلترینگ خروجی دقیق و مکانیزمهای context-aware را اجرا کنید.
- از تکنیکهای حریم خصوصی متمایز یا سایر روشهای ناشناسسازی دادهها در طول فرآیند آموزش LLM استفاده کنید تا خطر انطباق مازاد یا به خاطرسپاری را کاهش دهید.
- به طور منظم پاسخهای LLM را بررسی و بازبینی کنید تا اطمینان حاصل شود که اطلاعات حساس به طور سهوی افشا نمیشوند.
- جداسازی محیط LLM را از سایر سیستمها و منابع حیاتی.
- محدود کردن دسترسی LLM به منابع حساس و محدود کردن قابلیتهای آن به حداقل مورد نیاز، برای اهداف از پیش تعیین شده.
- بررسی و بازبینی منظم محیط LLM و کنترلهای دسترسی، برای اطمینان از تداوم ایزولهسازی مناسب.
- برای جلوگیری از پردازش اعلانهای مخرب یا غیرمنتظره توسط LLM، فرآیندهای اعتبارسنجی و پاکسازی دقیق ورودی را اجرا کنید.
- از سندباکسینگ مناسب اطمینان حاصل کنید و قابلیتهای LLM را برای منحصر کردن توانایی آن در تعامل با سیستم زیربنایی محدود کنید.
- اهداف و رفتار مورد نظر LLM را در طول فرآیند طراحی و توسعه تعریف کنید.
- اطمینان حاصل کنید که عملکردهای پاداش و دادههای آموزشی با نتایج مورد نظر هماهنگ هستند و رفتارهای ناخواسته یا مضر را تقویت نمیکنند.
- برای شناسایی و رسیدگی به مسائل همسویی، رفتار LLM را به طور منظم در طیف وسیعی از سناریوها، ورودیها و زمینهها آزمایش و تأیید کنید.
- مکانیزمهای احراز هویت قوی، مانند احراز هویت چند عاملی (MFA) را پیادهسازی کنید تا اطمینان حاصل کنید که فقط کاربران مجاز میتوانند به LLM دسترسی داشته باشند.
- برای جلوگیری از دسترسی یا دستکاری غیرمجاز، برای محتوا و اقدامات ایجاد شده توسط LLM کنترلهای دسترسی مناسب پیاده سازی کنید.
- برای اطمینان از کشف، ثبت و رسیدگی به خطاها، مکانیزم های مدیریت خطا را اجرا کنید.
- اطمینان حاصل کنید که پیامهای خطا و اطلاعات دیباگ، اطلاعات حساس یا جزئیات سیستم را افشا نمیکنند. در حالی که اطلاعات دقیق خطا را برای توسعه دهندگان و مدیران ثبت میکنید، استفاده از پیامهای خطای عمومی را نیز برای کاربران در نظر بگیرید.
- با به دست آوردن اطلاعات آموزشی از منابع قابل اعتماد و تأیید کیفیت این اطلاعات، از یکپارچگی آن اطمینان حاصل کنید.
- برای حذف آسیبپذیریها یا سوگیریهای احتمالی از اطلاعات آموزشی، تکنیکهای پاکسازی و پیشپردازش قوی دادهها را اجرا کنید.
- برای تشخیص رفتار غیرمعمول یا مسائل عملکردی در LLM، از مکانیسمهای نظارت و هشدار، که به طور بالقوه نشاندهنده مسمومیت اطلاعات آموزشی است استفاده کنید.