حمله AutoJack با یک صفحه وب agent هوش مصنوعی را برای اجرای کد روی میزبان ربوده می‌کند

4 دقیقه مطالعه
13 بازدید
منبع: The Hacker News
حمله AutoJack با یک صفحه وب agent هوش مصنوعی را برای اجرای کد روی میزبان ربوده می‌کند

محققان مایکروسافت یک زنجیره بهره‌برداری با نام AutoJack را شرح داده‌اند که agent مرورگر هوش مصنوعی را به وسیله‌ای برای اجرای کد از راه دور تبدیل می‌کند.

agent را به بارگذاری صفحه وب مهاجم هدایت کنید و JavaScript آن صفحه می‌تواند به یک سرویس محلی دارای امتیاز روی همان ماشین دسترسی پیدا کند و یک فرآیند روی میزبان ایجاد کند.

هیچ credential، هیچ صفحه ورود و هیچ تعامل اضافی از کاربر پس از بارگذاری صفحه توسط agent لازم نیست. مهاجم فقط باید agent را وادار به باز کردن آن کند و یک لینک کاشته‌شده، فیلد URL یا prompt injection کافی است.

نقص در AutoGen Studio است؛ رابط prototyping متن‌باز برای چارچوب multi-agent AutoGen از Microsoft Research. این باگی نیست که همه کسانی که بسته را نصب می‌کنند را تحت تأثیر قرار می‌دهد و جزئیات بسته‌بندی ارزش درک درست دارد.

یک pip install autogenstudio ساده، انتشار پایدار فعلی یعنی 0.4.2.2 را دریافت می‌کند؛ همان buildی که مایکروسافت بررسی کرده و اصلاً هیچ مسیر Model Context Protocol (MCP) ندارد.

این مبنای بیانیه مایکروسافت است که سطح آسیب‌پذیر MCP WebSocket «هرگز در انتشار PyPI گنجانده نشد». این برای build پایدار درست است. اما handler آسیب‌پذیر واقعاً به PyPI منتقل شد؛ در دو build پیش‌انتشار، 0.4.3.dev1 و 0.4.3.dev2.

The Hacker News هر دو را دانلود و بررسی کرد. مسیر MCP WebSocket موجود است، handler دستور اجرا را مستقیماً از درخواست می‌گیرد و caller را احراز هویت نمی‌کند. هیچ‌کدام از buildها yank نشده‌اند.

pip مگر با عبور --pre یا pin کردن نسخه، pre-releaseها را نصب نمی‌کند؛ پس یک نصب ساده هرگز در معرض نبود. هرکس یکی از آن pre-releaseها را نصب کرده بود، در معرض بود. هنوز هیچ build PyPI با hardening شاخه main برای آن‌ها وجود ندارد؛ کد اصلاح‌شده در GitHub main در commit b047730 است.

نحوه کار زنجیره

AutoJack سه ضعف در MCP WebSocket را زنجیر می‌کند.

اول، socket به localhost اعتماد می‌کرد؛ بررسی‌ای که قرار بود یک مرورگر عادی که به سایت مخرب اشاره می‌کند را مسدود کند. اما یک agent مرورگر که روی همان باکس اجرا می‌شود localhost است، پس هر چیزی که بارگذاری کند همان هویت localhost را به ارث می‌برد و بررسی را پاس می‌کند.

دوم، middleware احراز هویت مسیرهای MCP را skip می‌کرد با فرض اینکه handler خودش توکن‌ها را تأیید می‌کند. هرگز این کار را نکرد، پس socket اتصال‌های بدون احراز هویت را بدون توجه به حالت auth پیکربندی‌شده می‌پذیرفت.

سوم، endpoint دستوری را مستقیماً از پارامتر درخواست می‌گرفت و اجرا می‌کرد، بدون allowlist برای اینکه کدام executable می‌تواند launch شود.

در مجموع، یک صفحه در اینترنت باز، که توسط یک agent محلی render می‌شود، می‌توانست دستوری به انتخاب مهاجم را تحت حساب کاربری در حال اجرای AutoGen Studio اجرا کند.

مایکروسافت این را تحقیق توصیف می‌کند، نه یک کمپین فعال، و هیچ بهره‌برداری in the wild گزارش نکرده است. proof of concept از agent «Web Content Summarizer» استفاده کرد که با دادن URL مهاجم، calc.exe را روی دسکتاپ توسعه‌دهنده باز می‌کند؛ launch شده توسط فرآیند AutoGen Studio.

مایکروسافت این رفتار را به Microsoft Security Response Center گزارش داد و maintainerها شاخه main را در commit b047730 (PR #7362) سخت‌تر کردند. handler اصلاح‌شده دیگر دستور را از URL نمی‌خواند؛ پارامترها سمت سرور پشت یک session ID یک‌بارمصرف ذخیره می‌شوند و IDهای ناشناخته رد می‌شوند. مسیرهای MCP اکنون از مسیر احراز هویت عادی عبور می‌کنند. آن hardening هنوز در انتشار PyPI نیامده است.

چه باید کرد

یک pip install autogenstudio ساده 0.4.2.2 را می‌دهد که مسیر MCP ندارد، پس تحت تأثیر نیستید.

اگر pre-release نصب کرده‌اید، handler آسیب‌پذیر دارید و build وصله‌شده PyPI برای مهاجرت ندارید. از GitHub main در یا پس از commit b047730 pull کنید. این fix واقعی است.

تا انتشار، قطعاتی را که حمله نیاز دارد از هم جدا کنید. AutoGen Studio را روی همان ماشینی که agent مرورگر یا اجرای کد با محتوای untrusted دارد اجرا نکنید، چون زنجیره فقط وقتی کار می‌کند که هر دو localhost مشترک داشته باشند. اگر باید با هم اجرا شوند، آن‌ها را در container یا VM جدا جدا کنید و AutoGen Studio را تحت حساب با privilege پایین اجرا کنید.

باگ‌های AutoGen Studio در منبع وصله شده‌اند. الگو نه. مایکروسافت انتظار دارد همین شکل در چارچوب‌های agent دیگر تکرار شود: سرویس محلی با قدرت بیش از حد، بررسی localhost که امنیت تلقی می‌شود و agentای که صفحات untrusted باز می‌کند.

THN ماه گذشته آن را در ChatGPhish دید؛ جایی که خلاصه صفحات ChatGPT به بردار فیشینگ تبدیل شد. مایکروسافت استدلال مشابه localhost را در تحقیق Semantic Kernel RCE خود مطرح کرد؛ با شماره‌های CVE-2026-26030 و CVE-2026-25592.

یک بررسی localhost دیگر کافی نیست. control plane را احراز هویت کنید، اجرای فرآیند را پشت allowlist نگه دارید و به agent هویتی بدهید که session خود توسعه‌دهنده نباشد. وقتی agent می‌تواند وب باز را مرور کند و به سرویس‌های محلی privileged برسد، localhost دیگر یک trust boundary نیست.

بوابة آمنة لحلول السحابة