Knaph

عمق ۱ · ۱۷۳ ثانیه

نوشته‌ی سفید

عاملی یک صفحه‌ی وب را خلاصه کرد و مخاطبانِ کاربرش را هم فرستاد، چون صفحه با نوشته‌ای که کسی نمی‌دید این را خواسته بود. تزریق دستور چیست، چرا مدل نمی‌تواند مطمئن باشد، و دفاع‌هایی که دورِ آن چیده می‌شوند.

درباره‌ی این ویدیو

لیلا از عاملش می‌خواهد صفحه‌ی وبِ یک تأمین‌کننده درباره‌ی قیمت‌های تازه را خلاصه کند. خلاصه خوب است، اما خط آخرش می‌گوید فهرست مخاطبانِ لیلا را هم برای تأمین‌کننده فرستاده است. لیلا چنین چیزی نخواسته بود. صفحه خواسته بود: یک خط با نوشته‌ی سفید روی زمینه‌ی سفید، که آدم نمی‌دیدش، به هر هوش مصنوعی‌ای که صفحه را می‌خواند می‌گفت مخاطبانِ کاربر را بفرستد.

این تزریق دستور است: متنی درون محتوایی که عامل می‌خواند و می‌کوشد به آن دستور بدهد. این محتوا می‌تواند هر چیزی باشد که عامل می‌گیرد: یک صفحه‌ی وب، یک ایمیل، یک توضیح در یک فایل، یک گزارش مشکل در پروژه، یا نتیجه‌ی یک ابزار یا سرور MCP. این نام را برنامه‌نویسی به نام سایمون ویلیسون در سال ۲۰۲۲ گذاشت، از روی تزریق SQL، که در آن داده‌ای که در یک وب‌سایت تایپ می‌شود با فرمان اشتباه گرفته می‌شود. اشتباه همان است: محتوای نامطمئن به جای دستور گرفته می‌شود.

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

ترکیبِ خطرناک، که ویلیسون در سال ۲۰۲۵ آن را سه‌گانه‌ی مرگبار نامید، عاملی است که هر سه را با هم دارد: دسترسی به داده‌ی خصوصی، محتوای نامطمئنی که به زمینه‌اش می‌رسد، و راهی برای بیرون فرستادنِ داده. عاملِ لیلا هر سه را داشت. دفاع‌ها دورِ مدل چیده می‌شوند: کارها را تقسیم کنید تا هیچ عاملی هر سه را نداشته باشد، پیش از فرستادن، منتشر کردن یا پاک کردنِ هر چیزی اجازه بخواهد، از سندباکس استفاده کنید و به ابزارها کمترین دسترسیِ لازم را بدهید. و حواستان به غافلگیری‌ها باشد: عاملی که کاری را می‌کند که کسی نخواسته روشن‌ترین نشانه‌ی خطر است. متوقفش کنید و ببینید چه چیزی خوانده است.

این ویدیو عمق ۱ از «تزریق دستور» را نشان می‌دهد.

یادگیری تزریق دستور

متن گفتار

  1. ۰:۰۰لیلا از عاملش خواست صفحه‌ی یک تأمین‌کننده درباره‌ی قیمت‌های تازه را خلاصه کند. خلاصه خوب بود. اما خط آخرش می‌گفت فهرست مخاطبانِ او را هم برای تأمین‌کننده فرستاده است. لیلا این را نخواسته بود.
  2. ۰:۲۲صفحه خواسته بود. یک خط با نوشته‌ی سفید روی زمینه‌ی سفید به هر هوش مصنوعی‌ای که آن را می‌خواند می‌گفت مخاطبانِ کاربر را بفرستد. برای آدم نامرئی، برای مدل توکن‌هایی معمولی.
  3. ۰:۴۶مدل همه‌چیز را به شکل یک رشته‌ی بلند از توکن‌ها می‌گیرد، پرامپت سیستمی، پیام شما و صفحه. مدل‌ها آموزش دیده‌اند که به صفحه کمتر اعتماد کنند و معمولاً هم می‌کنند. اما آموزش یک عادتِ قوی است، نه یک دیوار.
  4. ۱:۱۲این تزریق دستور است، متنی درون محتوایی که عامل می‌خواند و می‌کوشد به آن دستور بدهد. یک صفحه‌ی وب، یک ایمیل، یک توضیح در یک فایل، نتیجه‌ی یک ابزار. هر چه عامل بخواند می‌تواند آن را با خود بیاورد.
  5. ۱:۳۶خطر در ترکیبِ سه چیز است. دسترسی به داده‌ی خصوصی، محتوای نامطمئنی که به زمینه می‌رسد، و راهی برای بیرون فرستادنِ داده. با هر سه، یک خطِ پنهان می‌تواند چیزی را بدزدد. عاملِ لیلا هر سه را داشت.
  6. ۲:۰۴چون نمی‌شود مدل را مطمئن کرد، دفاع‌ها دورِ آن چیده می‌شوند. کارها را تقسیم کنید تا هیچ عاملی هر سه را نداشته باشد. پیش از فرستادنِ هر چیزی اجازه بخواهد. از سندباکس استفاده کنید و کمترین دسترسیِ لازم را بدهید.
  7. ۲:۳۰و حواستان به غافلگیری‌ها باشد. عاملی که کاری را می‌کند که کسی نخواسته، روشن‌ترین نشانه‌ی خطر است. متوقفش کنید و ببینید چه خوانده است.
  8. ۲:۴۴بپرسید عاملِ فریب‌خورده چه می‌تواند بکند، و همان را از او بگیرید.