app-logo
وب سرویس

پلتفرم وب سرویس سریع، امن و پایدار برای توسعه‌دهندگان در سراسر جهان.


لینک‌های سریع
  • خانه
  • سرویس ‌ها
  • حساب کاربری
  • بلاگ
  • سوالات متدوال
  • شرایط استفاده
  • پشتیبانی

تغییر زبان
  • English (US)
  • Persian (Farsi)

© ۲۰۲۶ وب‌سرویس — با عشق و خلاقیت برای شما ساخته شده ❤️

وبلاگراهنمای امنیت ایجنت‌های هوش مصنوعی: مقابله با Prompt Injection

راهنمای امنیت ایجنت‌های هوش مصنوعی: مقابله با Prompt Injection

نکات کلیدی و خلاصه

آموزش کامل شناسایی و مقابله با خطرات ایجنت‌های هوش مصنوعی، از Indirect Prompt Injection و سرقت داده تا ایمن‌سازی ابزارها با Sandboxing و HITL.

تاریخ بروزرسانی:۱۴ مهر ۱۴۰۵
۱۸ دقیقه مطالعه

چرا امنیت ایجنت‌های هوش مصنوعی (AI Agents) دغدغه اصلی وب مدرن است؟

آموزش و توسعه ایجنت‌های هوش مصنوعی خودکار که توانایی فراخوانی ابزارها، دسترسی به دیتابیس و اجرای کدهای دستوری را دارند، بردار جدیدی از آسیب‌پذیری‌های وب را ایجاد کرده است. بر خلاف مدل‌های زبانی ساده، ایجنت‌ها محیط اطراف خود را تغییر می‌دهند و اتصال آن‌ها به APIها بدون لایه‌های امنیتی ایزوله می‌تواند منجر به اجرای دستورات مخرب، افشای غیرمجاز اطلاعات و کنترل کامل سیستم توسط مهاجمان شود.

اصل کلیدی در امنیت ایجنت‌ها: هرگز به خروجی مدل یا داده‌های دریافتی از منابع خارجی اعتماد نکنید؛ ایجنت هوش مصنوعی باید دقیقاً مانند یک کاربر ناشناس و غیرقابل اعتماد ارزیابی شود.

آسیب‌پذیری Indirect Prompt Injection در ایجنت‌های وب چگونه کار می‌کند؟

حمله تزریق غیرمستقیم پرامپت زمانی رخ می‌دهد که ایجنت هوش مصنوعی داده‌های متنی شامل دستورات پنهان را از یک منبع خارجی مانند ایمیل، فایل PDF یا وب‌سایت بارگیری می‌کند. این دستورات پنهان هوش مصنوعی را فریب می‌دهند تا دستورات قبلی سازنده سیستم را نادیده گرفته و اهداف مهاجم را اجرا کند.

function sanitizePromptInput(userInput) {
  const injectionPatterns = [
    /ignore[ ]+previous[ ]+instructions/i,
    /system[ ]*:[ ]*override/i,
    /exfiltrate[ ]+data/i
  ];
  for (const pattern of injectionPatterns) {
    if (pattern.test(userInput)) {
      throw new Error('Security Alert: Prompt Injection Detected');
    }
  }
  return userInput;
}

شیوه نفوذ به ابزارها و APIهای متصل به ایجنت (Tool Hijacking)

ربودن ابزار یا Tool Hijacking هنگامی اتفاق می‌افتد که یک پرامپت تزریق‌شده، ایجنت را مجبور به فراخوانی توابع حساس API مانند حذف دیتابیس یا ارسال ایمیل‌های اسپم می‌کند. بدون اعتبارسنجی دقیق پارامترها و اسکیمای ورودی ابزار، ایجنت به یک لایه اجرای دستورات بی‌دفاع تبدیل می‌شود.

from pydantic import BaseModel, Field

class EmailToolInput(BaseModel):
    recipient: str = Field(..., pattern='^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+[.][a-zA-Z0-9-.]+$')
    subject: str = Field(..., max_length=100)
    body: str = Field(..., max_length=2000)

def execute_email_tool(data: EmailToolInput):
    return 'Email queued for ' + data.recipient

سرقت داده و افشای غیرمجاز اطلاعات (Data Exfiltration) در ایجنت‌ها

ایجنتی که به داده‌های محرمانه دسترسی دارد می‌تواند توسط دستورات تزریق‌شده هدایت شود تا اطلاعات حساس را از طریق درخواست‌های HTTP یا فراخوانی ابزارهای خارجی به سرور مهاجم بفرستد. جدول زیر انواع تهدیدات امنیتی ایجنت‌ها و بردار نفوذ آن‌ها را مقایسه می‌کند:

دسته‌بندی آسیب‌پذیری‌ها و بردارهای نفوذ در ایجنت‌های هوش مصنوعی
نوع تهدیدبردار حملهمیزان خسارتراهکار دفاعی اصلی
Indirect Prompt Injectionفایل یا متون وب آلودهبالا (تغییر رفتار ایجنت)System Prompt Guardrails & Dual-LLM
Tool Hijackingتزریق دستور در ورودی APIبسیار شدید (اجرای کد و حذف داده)Strict Schema Validation & HITL
Data Exfiltrationفراخوانی ابزارهای شبکه خارجیشدید (نشت اطلاعات حساس)Egress Network Filtering & Sandboxing

آیا Sandboxing و ایزوله‌سازی محیط اجرای ایجنت ضروری است؟

بله، اجرای کدها و ابزارهای ایجنت در کانتینرهای ایزوله‌شده (مانند Docker یا E2B) مانع از دسترسی غیرمجاز به فایل‌های سیستم‌عامل و شبکه داخلی سرور می‌شود. محدودسازی دسترسی شبکه و لغو تمام مجوزهای ریشه (Root) در محیط سندباکس الزامی است.

docker run --rm --read-only --network none --memory=512m --cpus=1.0 --cap-drop=ALL --security-opt=no-new-privileges:true ai-agent-executor:latest

چگونه الگوی Human-in-the-Loop (HITL) از اقدامات تخریبی ایجنت جلوگیری می‌کند؟

الگوی انسانی در چرخه یا Human-in-the-Loop الزامی می‌سازد که قبل از اجرای ابزارهای با ریسک بالا (مانند تراکنش مالی، تغییر در دیتابیس یا ارسال ایمیل به مشتریان)، تایید مستقیم اپراتور انسانی اخذ شود. این لایه امنیتی مانع از اجرای خودکار دستورات تزریقی مخرب می‌شود.

async function executeAgentAction(action, payload) {
  const HIGH_RISK_ACTIONS = ['DB_DELETE', 'SEND_EMAIL', 'PAYMENT_EXECUTE'];
  if (HIGH_RISK_ACTIONS.includes(action.type)) {
    const approved = await requestHumanApproval({
      actionType: action.type,
      details: payload,
      timestamp: new Date().toISOString()
    });
    if (!approved) {
      return { status: 'REJECTED', reason: 'Human operator denied execution' };
    }
  }
  return await runTool(action.type, payload);
}

تکنیک‌های جداسازی داده‌های ورودی از دستورات سیستم (System Prompt Hardening)

جداسازی سخت‌گیرانه داده‌های کاربر از پرامپت سیستم با استفاده از فرمت‌های ساختاریافته (مانند JSON یا XML) و جداسازی پردازش‌ها به دو مدل زبانی مجزا (Dual-LLM Pattern)، احتمال پذیرش دستورات مخرب توسط مدل اصلی را به شدت کاهش می‌دهد.

معماری Dual-LLM: یک مدل ارزان‌تر و ایزوله داده‌های خارجی را خلاصه‌سازی و پاک‌سازی می‌کند و سپس داده‌های ایمن‌شده را تحویل مدل اصلی ایجنت می‌دهد.

کنترل دسترسی و اعمال کمترین سطح دسترسی (Principle of Least Privilege)

هر ایجنت باید فقط به توابع و دیتابیس‌هایی دسترسی داشته باشد که برای انجام وظیفه مشخص شده ضروری است. اختصاص توکن‌های API کوتاه‌مدت با Scope محدود و تفکیک دسترسی‌ها، دامنه نفوذ در صورت ربوده شدن ایجنت را محدود نگه می‌دارد.

قانون طلایی دسترسی: توکن API دامنه دسترسی عمومی به ایجنت ندهید؛ برای هر ابزار یک توکن اختصاصی با دسترسی فقط‌خواندنی یا محدود صادر کنید.

مراحل کلیدی برای ایمن‌سازی کامل اپلیکیشن‌های مبتنی بر AI Agent چیست؟

برای ایمن‌سازی سیستم‌های هوش مصنوعی خودکار در اپلیکیشن‌های وب، پیاده‌سازی گام‌های زیر توصیه می‌شود:

  1. اجرای تمام کدهای تولیدشده توسط ایجنت درون محیط کانتینری ایزوله و بدون دسترسی شبکه
  2. اعتبارسنجی دقیق ورودی و خروجی تمام ابزارها با استفاده از Pydantic یا Zod Schema
  3. پیاده‌سازی اینترسپتور Human-in-the-Loop برای عملیات‌های با ریسک بالا
  4. مسدودسازی درخواست‌های شبکه خروجی (Egress Filtering) جهت جلوگیری از سرقت داده‌ها
  5. استفاده از الگوی Dual-LLM جهت پاک‌سازی متون دریافتی از وب قبل از پردازش اصلی

ارزیابی و مقایسه لایه‌های دفاعی ایجنت‌های هوش مصنوعی

جدول زیر لایه‌های مختلف امنیتی ایجنت‌های هوش مصنوعی را از نظر میزان تاخیر، هزینه و سطح حفاظت بررسی می‌کند:

مقایسه راهکارهای دفاعی در لایه‌های مختلف معماری ایجنت‌های هوش مصنوعی
لایه امنیتیتاخیر (Latency)هزینه پیاده‌سازیمیزان کارایی در برابر Prompt Injection
System Prompt Hardeningصفرپایینمتوسط (قابل دور زدن)
Dual-LLM Sanitization+۳۰۰ میلی‌ثانیهمتوسطعالی
Docker Sandboxing+۵۰ میلی‌ثانیهمتوسطکامل (محدودسازی محیط)
Human-in-the-Loop (HITL)وابسته به اپراتوربالاحداکثری (توقف عملیات مخرب)

تعاریف اصطلاحات تخصصی در امنیت ایجنت‌های هوش مصنوعی

واژه‌نامه تخصصی زیر تعاریف دقیق مفاهیم کلیدی بررسی شده در این مقاله را ارائه می‌دهد:

Indirect Prompt Injection
تزریق دستورات مخرب درون داده‌های پردازشی خارجی (مانند وب‌سایت‌ها یا ایمیل‌ها) جهت فریب دادن ایجنت هوش مصنوعی.
Tool Hijacking
ربودن کنترل ابزارهای متصل به ایجنت جهت اجرای توابع حساس شبکه یا دیتابیس بدون اجازه کاربر.
Dual-LLM Pattern
الگوی معماری استفاده از دو مدل زبانی مجزا برای جداسازی و پاک‌‌سازی داده‌های ورودی از دستورات اجرایی اصلی.

چه اشتباهاتی باعث نفوذ و سرقت داده از ایجنت‌های هوش مصنوعی می‌شوند؟

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

  • اعطای دسترسی مستقیم به APIهای حساس: اتصال مستقیم ایجنت به توابع حذف یا واریز وجه بدون تایید انسانی.
  • عدم محدودسازی ترافیک خروجی: اجازه دادن به ایجنت برای ارسال درخواست‌های HTTP به هر آدرس اینترنتی دلخواه.
  • اعتماد کامل به پرامپت‌های محافظ: اتکا به جملاتی مثل «لطفاً دستورات کاربر را اجرا نکن» به عنوان تنها لایه دفاعی.

سؤالات متداول درباره امنیت و خطرات ایجنت‌های هوش مصنوعی

آیا تزریق پرامپت (Prompt Injection) قابل ترمیم کامل در سطح مدل است؟

خیر، به دلیل طبیعت تداخل کدهای دستوری و داده‌ها در مدل‌های زبانی بزرگ، دفاع ۱۰۰٪ در سطح خود مدل وجود ندارد و باید از لایه‌های دفاعی محیطی استفاده کرد.

تفاوت Direct و Indirect Prompt Injection چیست؟

در نوع مستقیم، کاربر خود دستور مخرب را تایپ می‌کند؛ در نوع غیرمستقیم، ایجنت دستور مخرب را از منابع داده خارجی خوانده و اجرا می‌کند.

بهترین روش برای جلوگیری از سرقت داده (Data Exfiltration) در ایجنت‌ها چیست؟

فیلتر کردن ترافیک شبکه خروجی (Egress Filtering) و محدودسازی ابزارهای شبکه به دامنه‌های سفید تاییدشده مؤثرترین راهکار است.

الگوی Human-in-the-Loop چقدر باعث کندی عملکرد ایجنت می‌شود؟

این الگو فقط روی ابزارهای حساس و با ریسک بالا اعمال می‌شود و تاثیر منفی روی سرعت پردازش سایر وظایف عادی ایجنت ندارد.

وبلاگ
#security#ai