تزریق پرامپت چیست؟ چطور ایجنت هوش مصنوعی را در برابر آن ایمن‌تر کنیم

· سینا واحد · هوش مصنوعی

طاقی با خط دور روشن و هسته‌ی تیره در میانش و لوزی نارنجی بیرون از آن؛ نمادی از ورودی بیرونی که به هسته‌ی ایجنت نمی‌رسد

خلاصه: تزریق پرامپت یعنی متنی که به ورودی ایجنت می‌رسد رفتار آن را عوض کند. OWASP این خطر را در فهرست ۲۰۲۵ در رتبه‌ی اول گذاشته و مرکز ملی امنیت سایبری بریتانیا (NCSC) می‌گوید مدل زبانی میان دستور و داده مرزی نمی‌گذارد. راه عملی این است که اختیار ایجنت را محدود کنید و کار حساس را به تأیید انسان بسپارید.

تزریق پرامپت چیست؟

OWASP تزریق پرامپت را وضعیتی می‌داند که در آن ورودی کاربر رفتار یا خروجی مدل را به شکل ناخواسته تغییر می‌دهد. OpenAI همین مسئله را نوعی مهندسی اجتماعی مخصوص هوش مصنوعی گفتگومحور می‌نامد: شخص ثالثی که نه کاربر است و نه خود مدل، دستور مخرب را در متنی می‌گذارد که مدل می‌خواند. OWASP یادآوری می‌کند که این ورودی‌ها لازم نیست برای انسان خوانا باشند؛ همین‌قدر که مدل بتواند آن‌ها را پردازش کند، رفتارش می‌تواند تغییر کند.

یک نمونه‌ی فرضی: ایجنت پاسخ‌گوی ایمیل شما پیوست یک مشتری را می‌خواند. وسط فایل جمله‌ای نوشته شده که به ایجنت می‌گوید فهرست قیمت‌های مشتری‌های دیگر را به یک نشانی بیرونی بفرستد. شاید هیچ انسانی آن جمله را نبیند، اما مدل آن را مثل بقیه‌ی متن می‌خواند. اگر ایجنت اجازه‌ی فرستادن ایمیل و دسترسی به آن فهرست را داشته باشد، حمله راهی به نتیجه پیدا می‌کند.

چرا ایجنت بیشتر از چت‌بات در معرض خطر است؟

چت‌باتی که فقط جواب می‌دهد، در بدترین حالت جواب غلط می‌دهد. ایجنت به ابزار وصل است، پس تزریق موفق می‌تواند به یک اقدام برسد: فرستادن پیام، تغییر یک ردیف، خواندن یک پرونده. این جمع‌بندی تحلیل ماست و آمار نیست، ولی توصیه‌های OWASP و NCSC درباره‌ی محدود کردن اختیار و ابزار از همین منطق می‌آید. NCSC به توسعه‌دهنده‌ها هم توصیه می‌کند تزریق پرامپت را یک نوع آسیب‌پذیری جداگانه بشناسند و آن را با تزریق SQL یکی نگیرند.

آیا می‌شود تزریق پرامپت را کاملاً بست؟

دیو چیزمون، مدیر فنی بخش معماری NCSC، در ۸ دسامبر ۲۰۲۵ نوشت که مدل‌های زبانی میان دستور و داده در یک پرامپت مرز امنیتی نمی‌گذارند. در تزریق SQL، پرسمان پارامتری‌شده این مرز را می‌سازد و مشکل را از ریشه حل می‌کند. برای مدل زبانی چنین راهی در دست نیست و NCSC می‌گوید بهترین کار، کم کردن احتمال یا اثر حمله است.

OWASP هم می‌نویسد با توجه به ماهیت احتمالاتی مدل‌ها روشن نیست که روش بی‌نقصی برای پیشگیری وجود داشته باشد. OpenAI تزریق پرامپت را مسئله‌ی پژوهشی پیشرو و دشوار می‌نامد و انتظار دارد مهاجمان برای پیدا کردن راه‌های تازه وقت و منابع زیادی بگذارند. هدف طراحی باید کوچک نگه داشتن آسیب باشد. وعده‌ی ایمنی کامل را به مشتری ندهید.

ایجنت را چطور ایمن‌تر بسازیم؟

OWASP برای این خطر هفت راهکار فهرست کرده و NCSC و OpenAI هم چند مورد را تأیید می‌کنند. جدول زیر شش اقدام عملی را کنار هم می‌گذارد.

اقدام معنی در عمل منبع
کمترین اختیار هر ابزار فقط کاری را بکند که لازم است. ایجنتی که فقط جدول را می‌خواند، اجازه‌ی نوشتن نداشته باشد OWASP، NCSC
تأیید انسان پیش از کار حساس، مثل خرید یا ارسال پیام بیرونی، یک آدم تأیید کند OWASP، OpenAI
علامت‌گذاری محتوای بیرونی ایمیل، پیوست و صفحه‌ی وب را غیرقابل‌اعتماد بدانید و از دستورهای سیستم جدا کنید OWASP، NCSC
بررسی خروجی با کد قالب خروجی را با کد معمولی اعتبارسنجی کنید OWASP
ثبت رویدادها ورودی، خروجی و فراخوانی ابزارها را ذخیره کنید تا الگوی حمله دیده شود NCSC
آزمون حمله حمله‌ی آزمایشی را به‌طور دوره‌ای اجرا کنید OWASP

OpenAI در ایجنت ChatGPT پیش از اقدام حساس مثل خرید از کاربر تأیید می‌گیرد، برنامه‌هایی را که ایجنت اجرا می‌کند در محیط ایزوله‌ی sandbox می‌گذارد و حالتی دارد که ایجنت بدون ورود به حساب‌ها کار را شروع می‌کند. این‌ها نمونه‌ی همان دو اصل بالایند: اختیار کمتر و تأیید انسان.

پیش از تحویل ایجنت به مشتری چه بپرسیم؟

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

۱. ایجنت به چه ابزارهایی وصل است و هر کدام چه کاری می‌تواند بکند؟ فقط خواندن با نوشتن و فرستادن پیام فرق دارد. هر سطح را جدا و آگاهانه بدهید.

۲. کدام کارها بدون تأیید انسان انجام نمی‌شود؟ پرداخت، حذف و پیام به بیرون از سازمان گزینه‌های طبیعی این فهرست‌اند.

۳. چه متنی از بیرون وارد می‌شود؟ ایمیل مشتری، فرم سایت، فایل پیوست و صفحه‌ی وب هرکدام مسیر ورود احتمالی دستور مخرب‌اند.

۴. اگر رفتار عجیبی دیدیم، از کجا می‌فهمیم؟ صاحب کسب‌وکار باید گزارش اقدام‌های ایجنت را ببیند، بی‌آنکه از شما بپرسد.

پرسش‌های پرتکرار

تزریق پرامپت چیست؟ حمله‌ای که در آن متنی در ورودی مدل می‌نشیند و رفتار آن را به شکل ناخواسته عوض می‌کند. متن می‌تواند از کاربر بیاید یا از یک شخص ثالث، مثلاً از داخل یک ایمیل یا فایل.

آیا می‌شود تزریق پرامپت را کاملاً از بین برد؟ NCSC و OWASP هر دو می‌گویند راه بی‌نقصی شناخته نشده است. کاهش احتمال و اثر حمله با محدود کردن اختیار، تأیید انسان و ثبت رویدادها ممکن است.

فرق آن با تزریق SQL چیست؟ در SQL می‌شود با پرسمان پارامتری‌شده داده را از دستور جدا کرد. در مدل زبانی، به نوشته‌ی NCSC، چنین مرزی وجود ندارد و همه‌چیز متن ورودی است.

به مشتری چه بگویم؟ بگویید اختیار ایجنت محدود است، کار حساس با تأیید انسان انجام می‌شود و اقدام‌ها ثبت می‌شوند. از «کاملاً ایمن» حرف نزنید، چون منبع معتبری چنین ادعایی را تأیید نمی‌کند.

منابع

آخرین بازبینی: مهر ۱۴۰۵

برای آشنایی با راسته، بازار ایجنت‌های حجره هوش مصنوعی، این‌جا را ببینید.