در یک حادثه امنیتی جدی، یک اسکریپت مخرب در قالب یک ابزار مانیتورینگ عملکرد (Performance Monitoring) شناسایی شده است که هدف آن دسترسی به نشستهای معاملاتی و تخلیه داراییها از کیف پول کاربران در پلتفرم Polymarket میباشد. این اسکریپت که از طریق یک سرویس شخص ثالث (Third-party) تزریق شده بود، با هدف قرار دادن نشستهای فعال، سعی در سرقت داراییها از طریق دسترسی به کلاینتهای معاملاتی موجود در مرورگر کاربر دارد.
تحلیل فنی پیلود (Payload)
تحلیلهای انجام شده نشان میدهد که این پیلود با هدف قرار دادن منطق داخلی اپلیکیشن، اقدامات زیر را انجام میدهد:
- خواندن بافت احراز هویت (Authentication Context): اسکریپت با دسترسی به Local Storage، اطلاعات مربوط به پارامترهای احراز هویت، آدرس کیف پول و کلیدهای API را استخراج میکند.
- یافتن کلاینت معاملاتی زنده: کد مخرب با پیمایش در ساختار داخلی کامپوننتهای React، به دنبال اشیائی میگردد که متدهایی مانند
postOrder،createOrderیاcreateMarketOrderرا در اختیار دارند. - مدیریت داراییها و امضا: پس از یافتن کلاینت و امضاکننده (Signer) مورد نظر، اسکریپت سعی میکند با استفاده از مکانیزمهای موجود، دستوراتی برای فروش داراییها یا انتقال آنها (Transfer) به یک آدرس مشخصشده صادر کند.
پیامدهای مالی و پاسخ به حادثه
گزارشهای اولیه حاکی از خسارت مالی قابل توجهی است؛ از جمله گزارش یک کاربر مبنی بر سرقت مبلغ ۸۰۰,۰۰۰ دلار. همچنین بررسیها نشان داده است که آدرس مقصد در کد مخرب، حاوی بیش از ۲ میلیون دلار دارایی است. با این حال، تعداد دقیق قربانیان و مجموع خسارات نهایی هنوز به طور کامل تأیید نشده است.
تیم فنی Polymarket با شناسایی این آسیبپذیری، اسکریپت مربوط به DebugBear را از نسخه تولید (Production Build) خود حذف کرده است. با این حال، این حادثه نشاندهنده خطر بالای حملات زنجیره تأمین (Supply Chain Attacks) در پلتفرمهای مالی است.
توصیههای امنیتی
برای کاربران:
- از تایید هرگونه درخواست امضا (Signing Request) یا تایید تراکنش غیرمنتظره خودداری کنید، حتی اگر در یک سایت شناختهشده هستید.
- پس از مشاهده هرگونه فعالیت مشکوک، نشستهای خود را بررسی کرده و تراکنشهای اخیر را از طریق یک مسیر امن و مستقل (مانند Explorer) بازبینی کنید.
برای تیمهای توسعه و امنیت:
- از قابلیت Subresource Integrity (SRI) برای جلوگیری از اجرای کدهای تغییر یافته در اسکریپتهای شخص ثالث استفاده کنید.
- سیاستهای امنیتی محتوا (Content Security Policy – CSP) را به گونهای تنظیم کنید که فقط منابع مورد اعتماد اجازه اجرا داشته باشند.
- مرزهای امضاکننده (Signer Boundary) را در اپلیکیشنهای حساس به دقت ممیزی کنید تا اطمینان حاصل شود کدهای غیرقابل اعتماد به رابط امضا دسترسی ندارند.