آخرین اخبار
همهٔ اخبار
مهندسی اجتماعی و فیشینگ گزارش بحرانیت ۸/۱۰

تحلیل فنی حمله فیشینگ مبتنی بر Bookmarklet برای سرقت دارایی‌های Web3 در پلتفرم Fomo

تحلیل فنی حمله فیشینگ مبتنی بر Bookmarklet برای سرقت دارایی‌های Web3 در پلتفرم Fomo

به تازگی گزارشی از یک حمله فیشینگ پیچیده منتشر شده است که کاربران پلتفرم Fomo را هدف قرار داده و منجر به سرقت مقادیر قابل توجهی از دارایی‌های دیجیتال (در یک مورد حدود ۴۸ هزار دلار) شده است. نکته قابل توجه در این حمله این است که کاربر هیچ‌گونه عبارت بازیابی (Seed Phrase) یا کلید خصوصی را وارد نکرده و هیچ تراکنشی را در شبکه تایید نکرده است، اما با این حال دارایی‌های او تخلیه شده است.

مکانیسم حمله و مهندسی اجتماعی

مهاجمان از یک روش فریبکارانه تحت عنوان «تایید انسانی» (Human Verification) استفاده کردند. کاربران پس از هدایت به یک سایت جعلی، از آن‌ها خواسته می‌شد تا یک آیکون خاص را به نوار بوک‌مارک (Bookmarks Bar) مرورگر خود بکشند (Drag and Drop) و سپس سه بار روی آن کلیک کنند. این بوک‌مارک در واقع یک Bookmarklet بود؛ یعنی قطعه کدی که با پیشوند javascript: شروع می‌شود و هنگام کلیک، مستقیماً در محیط صفحه جاری اجرا می‌گردد.

تحلیل فنی کد مخرب

این اسکریپت پس از اجرا در صفحه Fomo که کاربر در آن لاگین کرده بود، مراحل زیر را طی می‌کرد:

  • استخراج داده‌های محلی: اسکریپت ابتدا localStorage و sessionStorage را بررسی کرده و به دنبال کلمات کلیدی مانند privy، wallet، secret و token می‌گشت.
  • دسترسی به IndexedDB: کد مخرب با پیمایش پایگاه‌های داده IndexedDB، تمامی رکوردها و داده‌های ذخیره شده در مرورگر را که مربوط به دسترسی‌های کیف پول یا توکن‌های شناسایی بود، استخراج می‌کرد.
  • سرقت توکن‌های دسترسی: هدف اصلی اسکریپت، به‌دست آوردن privy:token و privy:refresh_token بود. این توکن‌ها به مهاجم اجازه می‌دهند بدون نیاز به رمز عبور، به حساب کاربر دسترسی پیدا کنند.
  • تلاش برای دور زدن MFA: اسکریپت سعی می‌کرد با ایجاد یک iframe نامرئی، متد تایید دو مرحله‌ای (TOTP) را برای حساب کاربر بازسازی یا تغییر دهد تا کنترل کامل حساب را به‌دست بگیرد.

نحوه خروج داده‌ها (Exfiltration)

داده‌های جمع‌آوری شده ابتدا با فرمت Base64url کدگذاری شده و سپس از طریق درخواست‌های HTTP به یک Worker در سرویس Cloudflare ارسال می‌شدند. در صورتی که حجم داده‌ها زیاد بود، اسکریپت به طور هوشمند داده‌های کم‌اهمیت‌تر را حذف کرده تا تنها توکن‌های حیاتی (مانند Access Token و Refresh Token) ارسال شوند.

نتیجه‌گیری و توصیه‌های امنیتی

این حمله نشان می‌دهد که حتی بدون افشای کلید خصوصی، سرقت توکن‌های نشست (Session Tokens) از حافظه مرورگر می‌تواند منجر به دسترسی کامل به دارایی‌های کیف پول‌های Embedded شود. برای مقابله با این تهدیدات، موارد زیر توصیه می‌شود:

  • عدم اجرای بوک‌مارک‌های ناشناس: هرگز آیکون یا لینکی را که شما را مجبور به اضافه کردن آن به نوار بوک‌مارک و اجرای آن در صفحات حساس می‌کند، قبول نکنید.
  • مدیریت نشست‌ها: کاربران باید به طور منظم نشست‌های فعال (Active Sessions) خود را بررسی و موارد مشکوک را ابطال (Revoke) کنند.
  • فعال‌سازی MFA سخت‌افزاری: استفاده از روش‌های تایید هویت قوی‌تر که وابسته به توکن‌های ذخیره شده در مرورگر نیستند، ریسک این حملات را کاهش می‌دهد.
  • بازبینی دسترسی‌ها: تیم‌های توسعه باید میزان داده‌های حساس ذخیره شده در سمت کلاینت (Client-side storage) را به حداقل برسانند و عمر توکن‌های دسترسی را محدود کنند.