این آسیبپذیری از آن زمان اصلاح شده است، اما تعدادی از فروشندگان پیشرو شبیهسازی تراکنش را تحت تأثیر قرار داده است.
بر اساس یک پست وبلاگی توسط توسعه دهندگان کیف پول رمزنگاری ZenGo، این شرکت اعلام کرده است که آسیبپذیریهایی را در راهحلهای شبیهسازی تراکنشها که توسط اپلیکیشنهای غیرمتمرکز محبوب یا dApps استفاده میشود، آشکار کرده است. این آسیبپذیری که «حمله قرص قرمز» نامیده میشود، به برنامههای مخرب اجازه میدهد تا داراییهای کاربر را بر اساس تأییدیههای تراکنش مبهم ارائهشده و تأیید شده توسط کاربران، سرقت کنند. این آسیبپذیری نام خود را از صحنه نمادین «قرص قرمز» در سری فیلمهای ماتریکس گرفته است.
“اگر بدافزار بتواند تشخیص دهد که در یک محیط شبیه سازی شده اجرا می شود یا در ماتریس زندگی می کند، می تواند بی ضرر عمل کند، در نتیجه راه حل ضد بدافزار را فریب داده و ماهیت مخرب واقعی خود را تنها زمانی آشکار می کند که واقعاً در محیط اجرا شود.”
ZenGo ادعا کرد که تحقیقاتش نشان میدهد که بسیاری از تاجران برجسته، از جمله کیف پول کوینبیس، زمانی در برابر چنین حملاتی آسیبپذیر بودهاند. ZenGo گفت: «همه فروشندگان از گزارشهای ما بسیار استقبال کردند و به سرعت بسیاری از باگهای خود را برطرف کردند.»
این آسیبپذیری به دلیل نظارت بر برنامهنویسی در «متغیرهای خصوصی» بین قراردادهای هوشمندی که اطلاعات کلی در مورد عملکرد بلاک چین، مانند مهر زمانی بلوک فعلی را ذخیره میکنند، امکانپذیر است. اما در طول شبیهسازیها، ZenGo میگوید هیچ مقدار صحیحی برای متغیرهای سفارشی وجود ندارد و ادعا میکند که توسعهدهندگان از میانبرها استفاده کردهاند و آنها را روی یک مقدار تصادفی تنظیم کردهاند.
“به عنوان مثال، دستورالعمل “COINBASE” حاوی آدرس استخراج کننده بلاک فعلی است. از آنجایی که هیچ بلوکی واقعی در طول شبیه سازی وجود ندارد و بنابراین هیچ ماینری وجود ندارد، برخی از برنامه های شبیه سازی آن را روی آدرس خالی (آدرس تمام صفر) تنظیم می کنند.
در یک ویدیو، توسعه دهندگان ZenGo نشان دادند که چگونه می توان از این روش برای رهگیری یک شبیه سازی قرارداد هوشمند در Polygon (MATIC) استفاده کرد که از کاربران می خواهد در ازای ارز دیگری پول محلی ارسال کنند:
هنگامی که کاربر واقعاً تراکنش را در زنجیره ارسال می کند، COINBASE [Wallet] در واقع با آدرس غیر صفر ماینر فعلی پر می شود و قرارداد فقط سکه های ارسال شده را دریافت می کند.”
ZenGo گفت که رفع این آسیب پذیری ساده است: “به جای پر کردن این متغیرهای آسیب پذیر با مقادیر دلخواه، شبیه سازی ها باید آنها را با مقادیر معنی دار پر کنند.” این شرکت اسکرینشاتهای تصحیح شدهای از پاداشهای باگ را که ظاهراً توسط Coinbase ارائه شده بود، برای رفع مشکل ارائه کرد. بنیاد اتریوم (ETH) همچنین 50000 دلار کمک مالی به ZenGo برای تحقیقاتش در مورد شبیه سازی تراکنش ها اعطا کرد.
یادداشت سریع برای محقق امنیت @0xVazi از جانب @ZenGo اخیراً چند پیشنهاد مفید و فعال ارائه کرده است!
ما دوست داریم با دیگران در فضای امنیتی کار کنیم تا امنیت همه را تضمین کنیم.
— Pocket Universe (@PocketUniverseZ) 27 ژانویه 2023
نویسنده: Zhiyuan Sun