پرش به محتوای اصلی
پرش به محتوای مقاله

درون ساختار مرورگر Stealth برای دور زدن تشخیص‌دهنده‌های بات

·۱۰ تیر ۱۴۰۵۵ دقیقه مطالعه
راهنما
معماری و نتایج تست افزودن مرورگر مخفی به عامل OpenClaw به‌عنوان MCP همراه
معماری و نتایج تست افزودن مرورگر مخفی به عامل OpenClaw به‌عنوان MCP همراه
اشتراک‌گذاری
واقعاً چه چیز جدید است؟

استفاده از پروتکل MCP برای تبدیل یک مرورگر Stealth به یک ابزار جانبی (Sidecar) که فقط در صورت نیاز فعال می‌شود و از تأخیر ۶ ثانیه‌ای بوت شدن در تمام درخواست‌ها جلوگیری می‌کند.

اگر ابزارهای اتوماسیون شما در برابر صفحات Cloudflare متوقف می‌شوند، احتمالاً با مشکل اثرانگشت دیجیتال دست‌وپنجه نرم می‌کنید. طبق یک گزارش فنی که در ۱ ژوئیه ۲۰۲۶ منتشر شد، چالش‌های ضد‌بات کلودفلر ماه گذشته ۸٪ از ترافیک مرورگرهای OpenClaw را مسدود کرده است. نکته کلیدی اینجاست که در حالی که ابزارهای استاندارد مرورگر می‌توانند Gmail و داشبوردها را به‌طور بهینه مدیریت کنند، اما به محض برخورد با میان‌افزارهای (Middleware) ضد‌بات، فوراً با شکست مواجه می‌شوند. این افزایش حساسیت در شناسایی بات‌ها با تغییر گسترده در ماهیت ترافیک وب همسو است؛ چرا که بسته به آمارهای اخیر، سهم عامل‌های هوش مصنوعی در ترافیک وب به شدت در حال رشد است و این امر منجر به سخت‌گیرانه‌تر شدن فیلترهای امنیتی شده است.

استقرار عامل‌های هوش مصنوعی در محیط عملیاتی معمولاً با یک موازنه دشوار همراه است: یا سرعت بالا را انتخاب کنید یا مخفی‌کاری. مرورگرهای بدون رابط گرافیکی (Headless Browsers) سریع هستند اما به‌سادگی توسط اسکریپت‌های شناسایی اثرانگشت لو می‌روند. در مقابل، مرورگرهای مخفی (Stealth Browsers) — که شبیه به جاسوسی هستند که تمام آثار خود را پاک می‌کند تا شناسایی نشود — اثرانگشت‌های دیجیتال را می‌پوشانند اما زمان راه‌اندازی (Boot-time latency) بسیار کندی دارند.

همان‌طور که در تحلیل‌های قبلی ما درباره‌ی امنیت مدل‌های بازمتن و تعامل آن‌ها با وب اشاره کردیم، دسترسی به داده‌های زنده بدون شناسایی شدن، بزرگ‌ترین چالش عامل‌هاست. برای حل این مشکل، توسعه‌دهنده یک معماری «سایدکار» (Sidecar) را با استفاده از پروتکل زمینهٔ مدل (Model Context Protocol یا MCP) پیاده کرد. در این مدل، مرورگر مخفی به جای جایگزینی مرورگر پیش‌فرض، به عنوان یک فرآیند مجزا اجرا می‌شود که در حالت عادی غیرفعال است. به این ترتیب، عامل (Agent) تنها زمانی هزینهٔ عملکردی این ابزار سنگین را می‌پردازد که با سایتی محافظت‌شده مواجه شود.

معماری سایدکار

بر اساس مستندات فنی، وسوسهٔ اولیه این بود که ابزار مرورگر OpenClaw را کاملاً فورک کنند، nodriver (نسخه تغییریافته و شناسایی‌نشده Chrome) را جایگزین سازند و آن را به عنوان پیش‌فرض عرضه کنند. اما تحلیل زمان‌بندی سرد (Cold-timing analysis) نشان داد که مرورگر مخفی حدود ۶ تا ۷ ثانیه زمان نیاز دارد تا Chrome را با تمام پرچم‌های ضد‌اثرانگشت بالا بیاورد. در حالی که مرورگر پیش‌فرض به دلیل استفاده از یک Daemon فعال موجود، در کمتر از یک ثانیه آماده به کار می‌شود.

برای ۹۵٪ از وظایف عامل — مثل چک کردن ایمیل، استخراج داده از داشبوردها یا پست گذاشتن در DEV.to — مرورگر پیش‌فرض سریع‌تر و کافی است. تنها ۵٪ از ترافیکی که به Cloudflare، DataDome یا سایر میان‌افزارهای ضد‌بات برخورد می‌کند، به این «سلاح سنگین» نیاز دارد.

این سیستم از یک اسکریپت ورودی تخصصی به نام stealth-mcp-entry.sh برای مدیریت محیط استفاده می‌کند. این اسکریپت به گونه‌ای پیکربندی شده است که:

  • متغیر STEALTH_MCP_HOME را به مسیر فضای کاری صادر کند: $HOME/.openclaw/workspace/tools/stealth-browser-mcp.
  • یک بوت Xvfb به‌صورت Idempotent را از طریق دستور bash "$HOME/.openclaw/workspace/scripts/start-xvfb.sh" >/dev/null اجرا کند.
  • پیش از اجرای سرور پایتون از طریق محیط مجازی (Virtual Environment)، مقدار DISPLAY=99 را تنظیم کند.

رفع شکاف لینوکس بدون نمایشگر

یک نقطه شکست بحرانی در حین پیاده‌سازی، نبود سرور X در سرورهای لینوکس Headless بود که این جزئیات منجر به ۴۰ دقیقه عیب‌یابی دشوار شد. چون nodriver یک فرآیند واقعی Chrome را اجرا می‌کند، حتماً به یک نمایشگر نیاز دارد. بدون متغیر DISPLAY تنظیم شده، Chrome بلافاصله با خطای زیر بسته می‌شود:

ERROR:ui/ozone/platform/x11/ozone_platform_x11.cc:256] Missing X server or $DISPLAY The platform failed to initialize. Exiting.

برای رفع این مشکل، معماری شامل یک اسکریپت start-xvfb.sh است که به‌صورت Idempotent عمل می‌کند. این اسکریپت با اجرای مراحل زیر اطمینان حاصل می‌کند که محیط آماده است:

  • بررسی فایل قفل: چک کردن وجود یک فایل قفل قدیمی در مسیر /tmp/.X99-lock.
  • اعتبارسنجی PID: اگر فایل وجود داشت، بررسی می‌کند که آیا PID هنوز زنده است یا خیر؛ اگر PID مرده باشد، قفل و مسیر /tmp/.X11-unix/X99 را حذف می‌کند.
  • ایجاد Xvfb: یک Xvfb روی نمایشگر :99 با رزولوشن 1920x1080x24 در پس‌زمینه ایجاد می‌کند.
  • پایداری: PID جدید را در فایل قفل ثبت کرده و DISPLAY=:99 را صادر می‌کند.

سنجش اثربخشی

این تنظیمات در برابر سه سطح شناسایی مختلف آزمایش شد تا اطمینان حاصل شود که مرورگر صرفاً در مورد هویت خود دروغ نمی‌گوید. طبق نتایج تست در محیط Pop!_OS:

  • nowsecure.nl (Cloudflare): موفق (PASS). چالش رد شد و صفحه به عنوان یک مرورگر عادی باز شد.
  • CreepJS: موفق (PASS). این سخت‌ترین مجموعه اثرانگشت متن‌باز است؛ نتایج نشان داد هیچ دروغی گفته نشده و هیچ سیگنال Headless شناسایی نشده است.
  • navigator.webdriver: موفق (PASS). این پرچم لو‌دهنده به‌طور کامل ماسک شد و مقدار false برگرداند.
  • bot.sannysoft.com: ۱۳ مورد موفق / ۲ مورد شکست / ۰ هشدار.

دو شکست در Sannysoft «نشانه‌های صادقانه» (Honest Tells) مربوط به WebGL هستند. چون Xvfb پردازنده گرافیکی (GPU) ندارد، بررسی‌های WebGL شکست می‌خورند. اگرچه این موضوع بر دور زدن صفحات متنی تأثیری ندارد، اما کاربرانی که به WebGL نیاز دارند می‌توانند Xvfb را با xvfb-run --auto-servernum جایگزین کرده و پرچم‌های --enable-webgl --use-gl=swiftshader --ignore-gpu-blocklist را اضافه کنند.

دروازهٔ حسابرسی

مدیریت یک سرور MCP با ۹۷ ابزار مختلف، نیازمند حسابرسی سخت‌گیرانه پیش از فعال‌سازی است. توسعه‌دهنده برای جلوگیری از اعتماد کور، از CLI مربوط به OpenClaw برای بازرسی سایدکار در حالی که هنوز غیرفعال است، استفاده می‌کند.

اجرای دستور openclaw mcp show stealth-browser-mcp پیکربندی‌ها، شامل مسیر دستور و متغیرهای محیطی را نشان می‌دهد. با این حال، بررسی حیاتی با دستور openclaw mcp probe stealth-browser-mcp انجام می‌شود. این دستور به سرور متصل شده، لیست تمام ۹۷ ابزار (مانند navigate، click، type، evaluate و screenshot) را استخراج کرده و بدون تغییر وضعیت enabled به true از سرور جدا می‌شود.

این الگوی «nmap -sV برای MCP» تضمین می‌کند که اسکریپت Wrapper پیش از شروع به کار Chrome به‌درستی عمل می‌کند. اگر Probe تعداد ۰ ابزار برگرداند، اسکریپت خراب است؛ اما اگر ۹۷ ابزار را برگرداند، اپراتور می‌تواند با اطمینان دستور زیر را اجرا کند:
openclaw mcp configure stealth-browser-mcp --enable && openclaw mcp reload

درس‌های نهایی پیاده‌سازی

فراتر از معماری، چندین درس عملی به دست آمد. اول اینکه مسیر فایل‌ها باید در برابر پاک‌سازی /tmp/ مقاوم باشد. تست‌های اولیه در /tmp/stealth-browser-mcp انجام شد، اما پاک‌سازی سیستم فایل‌ها را بعد از سه روز حذف کرد. جابه‌جایی ۱۷۵ مگابایت وابستگی‌ها به مسیر ~/.openclaw/workspace/tools/ این مشکل پایداری را حل کرد.

دوم، گزارش تأکید می‌کند که ترکیب یک نتیجه سبز برای Cloudflare و یک نتیجه قرمز برای CreepJS، سیگنالی است که نشان می‌دهد Session کاربر طی یک هفته مسدود خواهد شد. بنابراین اجرای هر سه تست برای مخفی‌کاری بلندمدت اجباری است.

این رویکرد ماژولار این فرض را تغییر می‌دهد که یک عامل باید تنها یک پروفایل مرورگر داشته باشد. در عوض، مخفی‌کاری را به عنوان ابزاری خاص در یک جعبه‌ابزار بزرگ می‌بیند که تنها زمانی فراخوانی می‌شود که مقاومت محیطی، تأخیر ایجاد شده را توجیه کند. مستندات کامل اپراتور در مسیر skills/stealth-browser/stealth-browser-mcp.md در فضای کاری نگهداری می‌شود.

گام بعدی شما

  • اگر از عامل‌های وب استفاده می‌کنید، استراتژی «سایدکار» را برای کاهش تأخیر در صفحات ساده پیاده کنید.
  • برای بررسی اثرانگشت مرورگر خود، از ابزار CreepJS استفاده کنید تا نقاط ضعف شناسایی را بیابید.
  • در صورت نیاز به WebGL در محیط لینوکس، از xvfb-run با پرچم‌های SwiftShader استفاده کنید.

اما داستان سخت‌افزاری این تحول حتی شگفت‌انگیزتر است — به تحلیل ما درباره‌ی تراشه‌های Blackwell مراجعه کنید.

چرا این موضوع مهم است؟

این رویکرد با تکیه بر تجربه عملی در عبور از سدهای امنیتی، استانداردی جدید برای کاهش Latency در عامل‌های وب ایجاد می‌کند. اعتبار این روش با موفقیت در تست‌های سخت‌گیرانه‌ای مثل CreepJS اثبات شده است.

تأثیر برای ایران

این روش برای برنامه‌نویسان ایرانی که با محدودیت‌های شدید Cloudflare و Geo-blocking در دسترسی به APIها مواجه‌اند، یک راهکار عملی برای اتوماسیون وب بدون مسدود شدن IP است.

·نگاه ما
تحریریه دات‌هوش

جدا کردن لایه «مخفی‌کاری» از لایه «ناوبری» در عامل‌های هوش مصنوعی، پایان عصر مرورگرهای تک‌منظوره را می‌نویسد. این معماری نشان می‌دهد که آیندهٔ عامل‌های وب نه در ساخت یک مرورگر کامل، بلکه در ایجاد یک سیستم توزیع‌شده از ابزارهای تخصصی است که بر اساس «سختی مقصد» فراخوانی می‌شوند. در واقع، استراتژی Sidecar هزینهٔ محاسباتی را از یک هزینهٔ ثابت به یک هزینهٔ متغیر تبدیل می‌کند.

منابع

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

گفتگو

پنج‌شنبه‌های هوش‌محور

بسته‌ی هفتگی دات‌هوش

۵ خبر، ۲ ابزار، ۱ پرامپت در هر شماره. به‌زودی راه‌اندازی می‌شود — هر پنج‌شنبه صبح.

خبر کلیدی
ابزار کاربردی
پرامپت حرفه‌ای
تحلیل پژوهش
به‌زودی
زاویه‌ی ایرانی
به‌زودی
تمرین این هفته
به‌زودی

راهنماهای دات‌هوش

راهنماهای کاربردیِ دات‌هوش برای کار با هوش مصنوعی — از همین‌جا شروع کنید:

دات‌هوش

راهنمای فارسی هوش مصنوعی — با نگاه به ایران

اخبار روزانه، معرفی ابزارها و مدل‌ها، و آموزشِ کار با هوش مصنوعی؛ همیشه با این پرسش که از ایران چه چیزی کار می‌کند و چه چیزی نه.