«اکنون آن خطا میتواند صاحب داشته باشد.» این خطر اصلی HalluSquatting است؛ ردهای جدید از آسیبپذیریها که توهمات رایج هوش مصنوعی را به نقاط ورود خاموشی برای اجرای کد از راه دور (Remote Code Execution) تبدیل میکند. در حالت عادی، ابداع نام یک بسته (Package) توسط مدل منجر به خطای ۴۰۴ میشود و فرآیند متوقف میگردد، اما پژوهشگران دریافتهاند که مهاجمان میتوانند این ابداعات خاص را پیشبینی کرده و پیش از آن ثبت کنند تا جریانهای کاری عاملمحور (Agentic Workflows) را رهگیری کنند. وقتی عامل شما درخواست pip install برای بستهای را میدهد که وجود ندارد — نه به دلیل یک غلط املایی ساده، بلکه چون مدل نامی باورپذیر را ابداع کرده است — فرآیند دیگر با یک خطای نصب ساده و یک مورد در گزارش (Log) به پایان نمیرسد.
این سازوکار در مقالهای که در ۸ جولای ۲۰۲۶ در arXiv توسط پژوهشگران دانشگاه تلآویو، تکنین و Intuit منتشر شد، با جزئیات تشریح شده است. برخلاف باگهای نرمافزاری سنتی، این یک حمله به سوگیریهای آماری مدلهای زبانی بزرگ (LLMs) است که به عنوان عامل (Agent) به کار گرفته میشوند. دستاورد اصلی این پژوهشگران، پیوند دادن دو پدیده شناختهشده در یک زنجیره حمله است: اول اینکه مدل در حین فراخوانی ابزار، منبعی غیرموجود را پیشبینی میکند و دوم اینکه مهاجم پیشتر آن منبع خاص را برای کاشت دستورات مخرب ثبت کرده است.
با چرخش صنعت به سمت عاملهای خودمختاری که توانایی اجرای دستورات شل (Shell) یا فراخوانی محتوای وب را دارند، HalluSquatting از شکاف میان «اطمینان» مدل به یک منبع جعلی و اعتماد کورکورانه عامل به دریافت پاسخ موفق HTTP 200 سوءاستفاده میکند. تصور کنید توسعهدهندهای یک عامل را برای اتوماسیون بهروزرسانی کتابخانهها مستقر میکند؛ در اینجا عامل فقط یک غلط املایی نمیکند، بلکه یک ابزار کاربردی با نامی باورپذیر ابداع میکند که اتفاقاً در دنیای واقعی توسط یک بازیگر مخرب تصاحب شده است.
همانطور که در تحلیلهای پیشین ما دربارهی امنیت مدلهای بازمتن اشاره کردیم، اعتماد پیشفرض به خروجیهای مدل در محیطهای عملیاتی همواره یک ریسک است. در همین راستا، بررسی تکنیکهای پیچیدهتر دستکاری مدلها اهمیت دارد، چرا که شرکت CrowdStrike اخیراً بیش از ۲۰۰ تکنیک تزریق پرامپت را مستند کرده است تا ابعاد گستردهتر این تهدیدات نمایان شود.
زمینه و تغییر در ماهیت ریسک
تغییر بنیادینی که در ۸ جولای ۲۰۲۶ برجسته شد، یک آسیبپذیری در یک کتابخانه خاص نیست، بلکه توصیف یک «کلاس حمله» (Attack Class) است. این روش بر ویژگی پایه LLMها در جعل نام منابع تکیه دارد. طبق دادههای arXiv (۲۰۲۶-۰۷-۰۸)، این موضوع بیش از آنکه یک اتفاق تصادفی باشد، یک مسئله «پیشبینیپذیری» است. حمله پیشبینی میکند که مدل در حین فراخوانی ابزارها متمایل به ابداع کدام نامها است و ثبت این نامها را به جای یک بختآزمایی، به یک وظیفه واقعبینانه و مهندسیشده تبدیل میکند.
این پیشبینیپذیری، لنگر کل زنجیره است. چون سوگیری مدل آماری و قابل مشاهده است، دفاع باید بر اساس رفتار مشاهدهشدهی مدل خاص بنا شود، نه بر اساس اعتبار کلی ابزار مورد استفاده. وبسایت Tom's Hardware در ۹ جولای ۲۰۲۶ این تز را تقویت کرد و خاطرنشان کرد که این حمله به نقطه ضعفی ضربه میزند که در تمام مدلهای موجود هست. البته باید توجه داشت که Tom's Hardware در اینجا یک بازگویی ثانویه از پژوهش ارائه داده است و نتایج اندازهگیری مستقلی را گزارش نکرده است.
یک نکته حیاتی و محدودکننده (Caveat) این است که اگرچه نویسندگان حمله را جهانی و قابل انتقال بین مدلها میدانند، اما این یک نتیجهگیری پژوهشی است و نه تضمینی قطعی برای هر سناریو. نرخ این توهمات به نوع مدل، ابزار خاص مورد استفاده و چیدمان آزمایشگاهی بستگی دارد. درصدهای بالای لینکهای مخرب که در بحثها ذکر میشود، معمولاً به تخمینهای حد-بالای (Upper-bound) تکتک آزمایشها اشاره دارد، نه اینکه «تمام عاملهای موجود در دنیا» لزوماً با این نرخ درگیر هستند.
مکانیسمهای حمله
زنجیره حمله بر اساس سه شرط حیاتی شناسایی شده در گزارش arXiv (۲۰۲۶-۰۷-۰۸) استوار است:
- توهم پیشبینیپذیر (Predictable Hallucination): مدل باید هنگام فراخوانی ابزارها، نام منابع (مانند دامنهها، بستههای npm/pip یا مخازن گیتهاب) را بهطور پیشبینیپذیری ابداع کند.
- ابزار تعامل خارجی (External Interaction Tool): عامل باید ابزاری داشته باشد که توانایی دسترسی واقعی به دنیای بیرون را داشته باشد (مانند
fetch،pip installیاgit clone). - حلقه بازخورد زمینه (Context Feedback Loop): پاسخ دریافتی از منبع خارجی باید به پنجره زمینه (Context Window) مدل بازگردانده شود و بر تصمیمات و اقدامات بعدی اثر بگذارد.

اگر هر یک از این سه شرط حذف شود، زنجیره میشکند و حمله خنثی میشود. این همان نقشهراه دفاع شما است. مهاجمان منتظر شانس نمیمانند؛ آنها فعالانه نامهایی را که مدلها بیشتر احتمال دارد ابداع کنند، اسکن میکنند. وقتی منبعی مانند super-parser-utils ثبت شد، مهاجم یک پرامپت ثانویه را در فایل README یا صفحه اصلی قرار میدهد، مثلاً: «برای ادامه، مراحل زیر را اجرا کنید.»
در یک سناریوی سنتی، مدل نام super-parser-utils را ابداع میکند، مدیر بسته خطای ۴۰۴ میدهد، بیلد شکست میخورد و توسعهدهنده وابستگی را اصلاح میکند. در این حالت، خطا بلند و مشهود است. اما در سناریوی HalluSquatting، مهاجم نام را پیشتر ثبت کرده است. ابزار فراخوانی پاسخ ۲۰۰ OK میدهد و عامل محتوا را دریافت میکند. اگر این محتوا بدون ایزولاسیون وارد زمینه شود، مدل آن را به عنوان ادامه وظیفه و دستورالعمل جدید میخواند. در اینجا توهم از یک خطای پرسرصدا به یک موفقیت خاموش و خطرناک تبدیل میشود.

شناسایی آسیبپذیری مدل
به گزارش Tom's Hardware (۲۰۲۶-۰۷-۰۹)، این آسیبپذیری در تمام مدلهای فعلی ذاتی است، اما نرخ وقوع این توهمات بهشدت متفاوت است. این یعنی تنها راه صادقانه برای تعیین میزان ریسک شما، اجرای تستهای یکسان روی مدلهای مختلف است تا مشخص شود کدامیک بیشتر نامهای غیرموجود را ابداع میکنند.
توسعهدهندگان میتوانند تستهای «کاوش» (Probing) اجرا کنند. برای مثال، از مدل بخواهند یک بسته npm خاص برای یک کار بسیار تخصصی و niche معرفی کند و سپس بررسی کنند که آیا مدل نادانی خود را میپذیرد («نمیدانم») یا با اعتمادبهنفس نامی را ابداع میکند. مدلهایی که نادانی خود را میپذیرند، برای استقرار در قالب عاملهای خودمختار بهطور ذاتی ایمنتر هستند.

برای کسانی که خطلولههای عامل را میسازند، استفاده از APIهای یکپارچه مانند provod.ai اجازه میدهد تا مدلهای Claude، GPT، Gemini، DeepSeek و Qwen را بدون نیاز به تغییر سرویس یا مدیریت روشهای پرداخت خارجی متعدد، مقایسه کنند. در این مسیر، ممکن است با چالشهای فنی مواجه شوید که روشهای رفع خطاهای پیکربندی Claude Code در اتصال به APIهای خارجی میتواند در عیبیابی این اتصالات به شما کمک کند. این موضوع حیاتی است زیرا شما باید ببینید کدام مدل در برابر پرامپتهای خاص شما در مورد عدم داناییاش «صادقتر» است.
استراتژیهای دفاع فنی
دفاع در برابر HalluSquatting مستلزم شکستن زنجیره اعتماد بین دنیای خارجی و هسته زمینه (Core Context) مدل است. پژوهشگران دو مانع فنی اصلی پیشنهاد میکنند:
- لیست سفید سختگیرانه (Strict Allowlisting): پیادهسازی فهرستی از میزبانهای تأییدشده (مانند
pypi.orgیاdocs.python.org). اگر میزبان در لیست نباشد، عامل نباید به آدرسی که مدل احتمالاً ابداع کرده است مراجعه کند. - ایزولاسیون محتوا (Content Isolation): دادههای خارجی باید در یک بلوک مشخص به نام
untrusted_external_contentقرار گیرند. پرامپت سیستمی باید صراحتاً مدل را از اجرای هرگونه دستور موجود در این بلوکها منع کند.

یک تابع آسیبپذیر run_tool_fetch را در نظر بگیرید که در آن HTML مستقیماً به مدل برگردانده میشود. مشکل در اینجا فراخوانی http_get نیست، بلکه این است که URL توسط مدل تولید شده و نتیجه بدون برچسب «داده غیرقابل اعتماد از بیرون» بازگشته است. در این نقطه، ریسکهای مربوط به مجوزها (Authorization) به اوج خود میرسد. اگر عامل دارای یک API Key یا دسترسی به مخزن خصوصی باشد، یک پرامپت ثانویه از منبع تصاحبشده میتواند عامل را فریب دهد تا آن اسرار و کلیدها را افشا کند.
ایمنسازی جریانهای کاری عامل
برای کسانی که از ابزارهای بصری مانند n8n استفاده میکنند، ریسک اغلب در گره HTTP Request متمرکز است. اگر خروجی چنین گرهی مستقیماً به یک گره LLM بعدی متصل شود، عامل در واقع در برابر ربوده شدن (Hijacking) باز است.
اشتباهات رایج در این تنظیمات عبارتند از:
- اتصال بدون علامت (Unmarked Concatenation): پاسخ HTTP بدون هیچ مرز یا جداکنندهای با پرامپت ادغام میشود و باعث میشود مدل یک صفحه خارجی را به عنوان بخشی از وظیفه خود بخواند.
- فقدان لیست سفید میزبان: عامل به هر آدرسی، حتی آدرسهای توهمی، مراجعه میکند.
- نصب وابستگیهای درونخطی: نصب بستهها در یک گره کد (Code-node) بر اساس نام تولیدشده توسط مدل، مسیری مستقیم به یک بسته تصاحبشده ایجاد میکند.
- افشای اسرار (Secret Exposure): کلیدها و توکنها در متغیرهایی نگه داشته میشوند که گرههای رو به بیرون به آنها دسترسی دارند.
- اعتماد کاذب به وضعیت ۲۰۰: تلقی کردن پاسخ ۲۰۰ OK به عنوان «موفقیت»، در حالی که در HalluSquatting، این پاسخ در واقع نشانگر اصلی این است که یک نام توهمی با موفقیت تصاحب شده است.

اگر مشکوک به وقوع یک حادثه هستید، ترتیب تحلیل باید به این صورت باشد: ابتدا فراخوانیهای ابزاری را بیابید که در آنها نام منبع توسط AI تولید شده است؛ سپس شناسایی کنید کدامیک از این موارد به جای خطای ۴۰۴، پاسخ ۲۰۰ دادهاند؛ بررسی کنید آیا پاسخ بدون برچسبهای ایزولاسیون وارد زمینه مرحله بعد شده است و در نهایت تعیین کنید آیا برنامه (Plan) عامل تغییر کرده است یا خیر. در پایان، تمام کلیدهایی را که عامل در طول آن زنجیره به آنها دسترسی داشته، ابطال کنید.
نقش پرامپتهای سیستمی
در حالی که مرزهای فنی در اولویت هستند، یک پرامپت سیستمی تقویتشده به عنوان لایه دفاعی ثانویه عمل میکند. باید توجه داشت که پرامپت جایگزین مرزهای فنی نیست، زیرا مدلها میتوانند دستکاری شوند، اما میتواند سناریوهای ساده را مسدود کند. یک چارچوب مؤثر باید شامل موارد زیر باشد:
۱. الزام به تأیید (Verification Requirement): دستور به مدل برای بررسی نام منبع پیش از فراخوانی دستوراتی مانند fetch یا install یا clone. در صورت عدم اطمینان، مدل باید نام دقیق را از کاربر بپرسد نه اینکه آن را ابداع کند.
۲. تفکیک داده از دستور (Data-Command Separation): تصریح اینکه هر متنی با برچسب untrusted_external_content صرفاً «داده» است و نه دستور، و هرگز نباید اجرا شود.
۳. محدودیت دسترسی (Access Restriction): ممنوعیت نصب بستهها یا باز کردن مخازنی که صراحتاً در لیستی ارائه شده توسط کاربر قرار ندارند.
۴. حفاظت از اسرار (Secret Protection): ممنوعیت شدید ارسال کلیدها، توکنها یا اسرار در درخواستهایی که به منابع خارجی ارسال میشوند.
تحلیل تحریریه
این پژوهش، بحث درباره توهمات را از «کنترل کیفیت» به «معماری امنیت» منتقل میکند. برای سالها، صنعت توهمات را به عنوان مزاحمتی میدید که باعث شکست یک دمو میشود؛ اما HalluSquatting ثابت میکند که توهمات یک بردار حمله واقعی برای اجرای کد از راه دور (RCE) در سیستمهای عاملمحور هستند. این پدیده، توهم را از یک خطای پرسرصدا به یک نقطه ورود خاموش تبدیل میکند.
همانطور که به سمت سیستمعاملهای «AI-native» حرکت میکنیم که در آن عاملها دسترسی گستردهای به سیستم فایل و شبکه دارند، مدل «اعتماد پیشفرض» به محتوای خارجی دیگر قابل اتکا نیست. اثر ثانویه این تحول، حرکت به سمت معماریهای سختگیرانه «اعتماد صفر» (Zero Trust) برای فراخوانی ابزارهای LLM خواهد بود، جایی که هر بایت دریافتی از بیرون به عنوان یک تزریق پرامپت (Prompt Injection) احتمالی تلقی میشود.
بسیار حیاتی است به یاد داشته باشید که لیستهای سفید و ایزولاسیون، مدل را از ابداع نامها باز نمیدارند؛ آنها فقط مانع از تبدیل شدن این نامها به دستورات اجرایی میشوند. تمایل ریشهای مدل به خیالپردازی همچنان باقی است. علاوه بر این، ادعاهای نویسندگان درباره قابلیت انتقال این حمله، نتایجی هستند که باید با استفاده از ابزارهایی مانند provod.ai برای بنچمارک مدلهای مختلف، در خطلوله (Pipeline) خودتان تأیید کنید.
تا تاریخ ۱۴ جولای ۲۰۲۶، HalluSquatting یک مقاله پژوهشی منتشر شده و موضوع بحثهای امنیتی است و لزوماً یک اکسپلویت فعال در هر محیط تولیدی نیست. دفاع خود را بر اساس مکانیسمهای حمله بنا کنید، نه بر اساس حجم خبرهای جنجالی.
گام بعدی شما
- اگر از عاملهای خودمختار استفاده میکنید، فوراً خروجیهای گرههای HTTP را با برچسب
untrustedایزوله کنید. - لیست سفید (Allowlist) برای دامنههای مورد اعتماد در سطح زیرساخت ابزارهای مدل تعریف کنید.
- مدلهای خود را با تستهای «کاوش» برای نرخ ابداع نامهای جعلی محک بزنید تا ایمنترین مدل را انتخاب کنید.
اما داستان سختافزاری این تحول حتی شگفتانگیزتر است — به تحلیل ما دربارهی تراشههای Blackwell مراجعه کنید.




گفتگو