هکرها با آلوده کردن اسکریپت Adform آدرس کیف پول رمزارزی کاربران را در وبسایتهای مشتریان تغییر دادند
بررسی کامل حمله زنجیره تأمین Adform در سال ۲۰۲۶؛ هکرها چگونه با آلودهسازی فایل جاوااسکریپت، آدرس کیف پولهای رمزارزی (BTC، ETH، TRX) را در مرورگر کاربران تغییر دادند؟
هکرها با آلوده کردن اسکریپت Adform آدرس کیف پول رمزارزی کاربران را در وبسایتهای مشتریان تغییر دادند
در یکی از مهمترین حملات زنجیره تأمین (Supply Chain) سال ۲۰۲۶، مهاجمان سایبری با دستکاری یک فایل JavaScript متعلق به شرکت فناوری تبلیغات Adform، موفق شدند آدرس کیف پول رمزارزی کاربران را هنگام بازدید از وبسایتهای مشتریان این شرکت بهصورت خودکار با آدرسهای تحت کنترل خود جایگزین کنند.
بر اساس اعلام Adform، این شرکت در ۲۷ ژوئیه ۲۰۲۶ فعالیت مخرب را شناسایی کرد، فایل آلوده را از دسترس خارج ساخت، مشتریان آسیبدیده را مطلع کرد و موضوع را به مراجع ذیصلاح گزارش داد. با این حال، کاربرانی که در زمان آلودگی از وبسایتهای دارای این اسکریپت بازدید کرده و آدرس کیف پول بیتکوین (Bitcoin)، اتریوم (Ethereum) یا ترون (Tron) را کپی کردهاند، ممکن است بدون اطلاع خود آدرس دیگری را در حافظه موقت (Clipboard) یا حتی در فرمهای وب دریافت کرده باشند.
Adform همچنین به کاربران توصیه کرده است برای جلوگیری از بارگذاری نسخه آلوده فایل، حافظه کش (Cache) مرورگر خود را پاک کنند و پیش از ارسال هرگونه تراکنش رمزارزی، آدرس مقصد را بهدقت بررسی کنند.
نکته قابل توجه این است که این کد مخرب با وجود آنکه بدافزار دائمی روی سیستم قربانی نصب نمیکرد، تا زمانی که صفحه آلوده در مرورگر باز بود فعال میماند و علاوه بر تغییر محتوای کلیپبورد، قادر بود آدرسهای کیف پول واردشده در فیلدهای متنی صفحات وب را نیز بهصورت خودکار بازنویسی کند؛ قابلیتی که احتمال موفقیت حمله را بهطور قابل توجهی افزایش میدهد.
حمله چگونه انجام شد؟ از یک فایل JavaScript تا آلوده شدن هزاران وبسایت
بررسیهای منتشرشده نشان میدهد مهاجمان فایل trackpoint-async.js را که از دامنه s2.adform.net بارگذاری میشد، دستکاری کردهاند. این فایل یکی از اسکریپتهای رهگیری و تبلیغاتی Adform است که بسیاری از وبسایتها برای نمایش تبلیغات یا جمعآوری دادههای آماری از آن استفاده میکنند.
از آنجا که این فایل بهصورت مشترک توسط تعداد زیادی از وبسایتهای مشتری Adform فراخوانی میشد، مهاجمان با آلوده کردن تنها یک منبع، توانستند بدون نفوذ مستقیم به تکتک وبسایتها، کد مخرب خود را در مرورگر بازدیدکنندگان آنها اجرا کنند. به همین دلیل، این حادثه در دسته حملات زنجیره تأمین (Supply Chain Attack) قرار میگیرد؛ حملاتی که در آن بهجای هدف قرار دادن قربانی نهایی، یکی از تأمینکنندگان یا سرویسهای مورد اعتماد مورد سوءاستفاده قرار میگیرد.
بر اساس مستندات Adform، این اسکریپت میتواند در یک صفحه، چند بخش از یک وبسایت یا حتی در تمامی صفحات آن بارگذاری شود. در نتیجه، هر وبسایتی که در زمان آلودگی نسخه دستکاریشده این فایل را دریافت کرده بود، ناخواسته کد مخرب را نیز برای کاربران خود اجرا میکرد.
در این سناریو، مهاجمان نیازی به هک کردن زیرساخت هر وبسایت بهصورت جداگانه نداشتند؛ کافی بود مسیر توزیع این فایل JavaScript را آلوده کنند تا دامنه حمله به تمام وبسایتهای وابسته گسترش یابد. این موضوع یکی از خطرناکترین ویژگیهای حملات زنجیره تأمین است، زیرا یک نقطه ضعف در یک سرویس شخص ثالث میتواند بهطور همزمان هزاران وبسایت و میلیونها کاربر را تحت تأثیر قرار دهد.
اتاق تحلیل ۲۴ نیوز
این حمله بار دیگر نشان میدهد وابستگی گسترده وبسایتها به اسکریپتهای شخص ثالث، بهویژه فایلهایی که مستقیماً از سرور ارائهدهنده بارگذاری میشوند، میتواند به یک ریسک امنیتی جدی تبدیل شود. در چنین شرایطی، حتی اگر زیرساخت یک وبسایت کاملاً ایمن باشد، آلوده شدن یکی از سرویسهای خارجی مورد اعتماد میتواند امنیت کاربران آن را به خطر بیندازد؛ موضوعی که در سالهای اخیر به یکی از مهمترین چالشهای امنیت وب و زنجیره تأمین نرمافزار تبدیل شده است.
اسکریپت مخرب چگونه عمل میکرد؟
بررسی نمونه بهدستآمده از فایل آلوده نشان میدهد مهاجمان دو بلوک کد مخرب را به انتهای کتابخانه اصلی Adform اضافه کرده بودند. این کدها بهگونهای طراحی شده بودند که بدون جلب توجه کاربر، آدرس کیف پولهای رمزارزی را در مراحل مختلف تعامل با صفحه تغییر دهند و احتمال موفقیت حمله را افزایش دهند.
نخستین بخش از کد، رویدادCopy را زیر نظر میگرفت و هر چهار ثانیه یکبار محتوای حافظه موقت (Clipboard) را بررسی میکرد. اگر الگوی یک آدرس بیتکوین، اتریوم یا ترون شناسایی میشد، اسکریپت آن را با آدرس دیگری که در کد مخرب تعریف شده بود جایگزین میکرد. به گفته کوین بومونت (Kevin Beaumont) ، حتی اگر کاربر پس از مشاهده آدرس اشتباه، دوباره آدرس صحیح را کپی میکرد، اسکریپت مجدداً آن را با آدرس مهاجم جایگزین میکرد.
اما قابلیتهای این بدافزار به کلیپبورد محدود نبود. بلوک دوم کد، تمامی گرههای متنی (Text Nodes) صفحه و همچنین مقادیر واردشده در عناصر input، textarea و contenteditable را بررسی و در صورت تشخیص الگوی آدرس کیف پول، آن را بهصورت خودکار بازنویسی میکرد. این کد حتی «Setter» مربوط به مقدار فیلدهای ورودی را نیز Hook کرده بود تا اگر یک برنامه یا اسکریپت دیگر قصد درج آدرس کیف پول را داشت، آن مقدار نیز پیش از نمایش به کاربر تغییر داده شود.
علاوه بر این، اسکریپت رویدادهای Copy، Cut، Paste و Input را رهگیری میکرد تا در هر مرحلهای که امکان تغییر آدرس وجود داشت، عملیات جایگزینی را انجام دهد. پژوهشگران همچنین اعلام کردند رشتههای مربوط به آدرسهای جایگزین در کد با استفاده از یک کلید XOR ششبایتی مبهمسازی (Obfuscation) شده بودند؛ روشی که برای دشوارتر کردن تحلیل کد و پنهان کردن مقادیر واقعی مورد استفاده قرار گرفته است.
در کنار این قابلیتها، کد مخرب هنگام بارگذاری صفحه تلاش میکرد یک درخواست HTTP به نشانی 84.32.102[.]230:7744 ارسال کند. این درخواست شامل نام دامنه و مسیر صفحهای بود که کاربر در آن حضور داشت. هرچند Adform اعلام کرده تاکنون شواهدی مبنی بر انتقال موفق اطلاعات کاربران به سرور مهاجم پیدا نکرده است، اما بررسیهای فنی نشان میدهد چنین قابلیتی در کد تعبیه شده بود و احتمال ارسال این اطلاعات را نمیتوان بهطور کامل رد کرد.
اتاق تحلیل ۲۴ نیوز. بهراد یوسفی
آنچه این حمله را از بسیاری از بدافزارهای سرقت رمزارز متمایز میکند، صرفاً تغییر محتوای کلیپبورد نیست. مهاجمان چندین لایه مختلف برای دستکاری آدرس کیف پول پیادهسازی کرده بودند؛ از رهگیری رویدادهای کاربر گرفته تا بازنویسی مستقیم مقادیر فرمها و Hook کردن توابع جاوااسکریپت. این رویکرد نشان میدهد مهاجمان تلاش کردهاند تقریباً تمامی روشهای معمول وارد کردن آدرس کیف پول را پوشش دهند و احتمال موفقیت حمله را تا حد امکان افزایش دهند. چنین سطحی از پیچیدگی، این حادثه را به نمونهای قابل توجه از تکامل حملات سمت مرورگر (Browser-side Attacks) و سوءاستفاده از زنجیره تأمین اسکریپتهای شخص ثالث تبدیل کرده است.