حمله ناشناس و اختلال در ارتقای Pectra در تستنت – دیفایر
یک توسعهدهندهی اتریوم اعلام کرد که ارتقای اخیر Pectra در تستنت (شبکهی آزمایشی) Sepolia با خطاهایی مواجه شده است و این مشکل زمانی بدتر شد که یک مهاجم ناشناس از یک «حالت خاص» استفاده کرد تا باعث استخراج بلاکهای خالی شود.
ارتقای Pectra در تاریخ ۵ مارس ساعت ۷:۲۹ صبح در شبکهی Sepolia انجام شد، اما ماریوس ون در وایدن، توسعهدهندهی اتریوم، در پستی در ۸ مارس اعلام کرد که تیم بلافاصله پس از ارتقا، پیامهای خطا را در گره geth مشاهده کرد و استخراج بلاکهای خالی آغاز شد.
طبق گفتهی ون در وایدن، علت این خطا این بود که قرارداد واریز (Deposit Contract) رویداد اشتباهی را اجرا کرد—بهجای یک رویداد واریز، یک رویداد انتقال اجرا شد.
بهرهبرداری از یک نقطه ضعف
پس از رفع اولیهی خطا، تیم متوجه شد که یک حالت خاص از قلم افتاده است و یک کاربر ناشناس از این نقطهضعف سوءاستفاده کرده است. این فرد یک تراکنش انتقال با مقدار صفر توکن به آدرس واریز ارسال کرد که مجدداً خطا را فعال کرد.
ون در وایدن توضیح داد:
«پس از چند دقیقه، دوباره تعداد زیادی بلاک خالی مشاهده کردیم. وقتی تراکنشها را بررسی کردیم، متوجه شدیم که یک تراکنش دیگر نیز همین خطا را ایجاد کرده است.»
در ابتدا، توسعهدهندگان تصور کردند که یکی از اعتبارسنجهای مورد اعتماد اشتباهی مرتکب شده، اما بعداً مشخص شد که این تراکنش از یک حساب جدید ارسال شده است که بهتازگی از فاست تأمین مالی شده بود.
استاندارد ERC-20 اجازهی انتقال توکن با مقدار صفر را میدهد، که به این معناست که هر کسی، حتی بدون داشتن توکن، میتواند تراکنشی را به یک آدرس دیگر ارسال کند. این همان چیزی بود که مهاجم ناشناس متوجه شد و از آن بهره برد.
مقابله با حمله
«تنها راه متوقف کردن این حمله، فیلتر کردن تمام تراکنشهایی بود که با قرارداد واریز تعامل داشتند.»
تیم توسعهدهنده یک اصلاحیهی خصوصی تهیه کرد و آن را تنها در چند گره DevOps اجرا کرد. از آنجایی که مشکوک بودند مهاجم پیامهای گروههای چت آنها را میخواند، تصمیم گرفتند که اصلاحیه را بهصورت عمومی منتشر نکنند و فقط در برخی گرههای تحت کنترل خود اعمال کنند تا بلاکهای شبکه دوباره پر شوند.
تا ساعت ۲ بعدازظهر، تمامی گرهها بهروزرسانی شده و تراکنش مهاجم ناشناس با موفقیت استخراج شد.
تأثیرات و اقدامات بعدی
ون در وایدن تأکید کرد که در طول این حادثه، نهاییسازی (Finalization) شبکه از بین نرفت و این مشکل فقط در شبکهی آزمایشی Sepolia رخ داد، زیرا از یک قرارداد واریز خاص با مکانیزم توکنمحور (Token-Gated) استفاده شده بود، برخلاف قرارداد واریز معمولی در شبکهی اصلی.
پیش از این، توسعهدهندگان در تاریخ ۲۶ فوریه ارتقای Pectra را روی شبکهی آزمایشی Holesky نیز آزمایش کرده بودند که با مشکلاتی مواجه شد. به همین دلیل، تیم توسعه تصمیم گرفته است که ارتقای Pectra را به تعویق بیندازد تا آزمایشهای بیشتری انجام شود.
پیشزمینهی ارتقای Pectra
هاردفورک Pectra در ادامهی ارتقای Dencun اجرا میشود، که باعث کاهش کارمزد تراکنشها در شبکههای لایه ۲ و بهبود اقتصاد رولآپهای اتریوم شد. ارتقای Dencun در ۱۳ مارس ۲۰۲۴ پیادهسازی شد.
همچنین، بنیاد اتریوم اخیراً یک ساختار رهبری جدید معرفی کرده است که طی آن، Hsiao-Wei Wang و Tomasz Stańczak بهعنوان مدیران مشترک این بنیاد منصوب شدهاند.
منبع: cointelegraph