مصرف نامحدود منابع (Unbounded Consumption) یکی از آسیبپذیریهای کلیدی در برنامههای مبتنی بر مدلهای زبانی بزرگ (LLM) است که توسط OWASP در رتبه ششم لیست ۱۰ مورد اول قرار گرفته است. این مشکل زمانی رخ میدهد که کنترلهای کافی بر میزان توان پردازشی (Compute Power) و منابع مصرفی برای هر درخواست اعمال نشود و منجر به هزینههای پیشبینی نشده و هنگفت برای سازمانها گردد.
پدیده Denial of Wallet یا انکار کیف پول
برخلاف حملات سنتی Denial of Service (DoS) که هدفشان از دسترس خارج کردن سرویس است، در اینجا سرویس فعال میماند اما هزینههای عملیاتی آن به شدت افزایش مییابد. این الگو که به عنوان Denial of Wallet شناخته میشود، میتواند حتی بدون نیاز به تخصص فنی بالا یا اقدامات مخرب پیچیده، تنها از طریق اتوماسیونهای اشتباه یا نشستهای (Sessions) طولانی رخ دهد.
پنج سناریوی خطرناک مصرف نامحدود
- سوءاستفاده از API: نشت کلیدهای API در محیطهای عمومی (مانند GitHub) به مهاجم اجازه میدهد تا حجم عظیمی از درخواستها را به سرویسهای Pay-per-use ارسال کرده و هزینهها را به حساب مالک اکانت منتقل کند.
- تکثیر ابزارهای Agent (Agent Tool Fan-out): در این حالت، مهاجم با قرار دادن لینکهای جعلی متعدد در محتوایی که یک AI Agent بررسی میکند، باعث ایجاد یک زنجیره بیپایان از درخواستها و پردازشها میشود.
- تخلیه منابع در حلقههای استدلالی (Reasoning Loop Exhaustion): با استفاده از پرامپتهای (Prompts) خاص، مدل مجبور میشود پاسخهای خود را بارها و بارها بازبینی و تحلیل کند. این کار باعث مصرف توکنهای تفکر (Thinking Tokens) بسیار زیاد میشود بدون اینکه ترافیک شبکه افزایش یابد.
- تجمع زمینه (Context Accumulation): در نشستهای طولانی که کنترل Reset Session ندارند، مدل با هر پیام جدید، تمام تاریخچه گفتگو را مجدداً پردازش میکند. این امر باعث میشود هزینه هر پاسخ با افزایش طول گفتگو، به طور تصاعدی (مثلاً تا ۱۰۰ برابر) رشد کند.
- استخراج مدل (Model Extraction): مهاجمان با ارسال هزاران پرسوجوی متنوع به نقاط انتهایی (Endpoints) که احتمالات توکن را نمایش میدهند، سعی در بازسازی رفتار مدل و سرقت مالکیت معنوی آن دارند.
راهکارهای کاهش ریسک
برای مقابله با این تهدیدات، سازمانها باید استراتژیهای زیر را پیادهسازی کنند:
- تعیین سقفهای سخت (Hard Limits) برای هزینه و مصرف توکن برای هر کاربر، تیم و کلید API.
- محدود کردن تعداد گامهای مجاز برای یک Agent و تعداد دفعات بازگشت به خروجیهای قبلی (Looping).
- پیادهسازی مکانیزمهای تشخیص حلقههای تکراری پیش از تکثیر آنها.
- بهکارگیری محیطهای ایزوله (Sandboxing) و اصل کمترین دسترسی (Least Privilege) برای محدود کردن دسترسی Agentها.