هسته بیت کوین :: CVE-2019-25220 – DoS حافظه به دلیل هرزنامه هدر
قبل از نسخه ۲۴٫۰٫۱ بیت کوین Core، مهاجمان میتوانستند گرههایی را با زنجیرههای سرصفحه کمسختی اسپم کنند که میتوان از آنها برای خراب کردن همتایان از راه دور استفاده کرد.
این موضوع در حال بررسی است بالا بار
جزئیات
بیت کوین Core هدرهای بلاک چین را در حافظه ذخیره می کند. این باعث می شود که آن را به DoSed حساس کند، و باعث می شود که زنجیره های بسیار طولانی هدر را دانلود و ذخیره کند، حتی اگر سختی کمی داشته باشند. توجه به این نکته مهم است که پس از ایجاد، زنجیره حمله می تواند مجدداً برای خراب کردن هر گره در شبکه استفاده شود.
توانایی استفاده از این برای حمله به گرهها برای مدت طولانی شناخته شده بود و دلیل اصلی وجود سیستم پست بازرسی بود: داشتن حمله توسط مهاجم از آخرین ایست بازرسی باعث میشود هزینه آن بسیار بیشتر از شروع از بلوک پیدایش باشد. با این حال، با گذشت زمان، با کاهش هزینه های هش، حتی این کاهش نیز کمتر موثر شد.
این حمله به طور مستقل در ژانویه ۲۰۱۹ توسط دیوید جینسون کشف و به پروژه Bitcoin Core گزارش شد که معرفی پست های بازرسی جدیدتر را به عنوان یک کاهش عملی پیشنهاد کرد. با این حال:
- این همچنان گرههای در حال اجرا IBD را قبل از دریافت بلوکهای ایست بازرسی بدون محافظت میگذارد.
- این اکوسیستم متکی است که نرمافزارهای بهروزشده را با پستهای بازرسی جدید بهطور نیمهمنظم اتخاذ میکند، رویهای که مشارکتکنندگان Core بیتکوین مدتهاست از آن ناراحت بودند.
بعداً زمانی که برادن فولر ورودی خود را با عنوان “گسترش عرض زنجیره” در لیست پستی بیت کوین-dev در اکتبر ۲۰۱۹ ارسال کرد، توجه بیشتری را به خود جلب کرد. او قبلاً آن را به طور مسئولانه به لیست امنیتی بیت کوین Core گزارش کرده بود. رویکرد پیشنهادی در بیت کوین Core به دلیل نگرانی در مورد همگرایی شبکه هنگام محدود کردن تعداد زنجیرههای موازی پذیرفته نشد.
در آن زمان، هزینه محاسباتی ایجاد یک زنجیره عظیم از هدرهای کم مشکل، حدود ۳۲٫۲۸ درصد از استخراج یک بلوک در بالا بود. این هزینه حدود ۴٫۱۲ بیت کوین است زیرا پاداش بلاک در آن زمان حدود ۱۲٫۷۷ بیت کوین بود.
تا فوریه سال ۲۰۲۲، هزینه حمله به حدود ۱۴٫۷۳ درصد از هزینه استخراج یک بلوک کاهش یافته بود و این امر باعث تحقیق در مورد راه حل های جایگزین شد. اگر توجه نشود، قیمت امروز (سپتامبر ۲۰۲۴) تنها ۴٫۴۴ درصد از یک بلوک خواهد بود. این ارقام حاکی از قیمتی در حدود ۱٫۰۷ BTC و ۰٫۱۴ BTC با در نظر گرفتن پاداش بلوک در این تاریخ ها است.
یک دفاع در برابر این DoS در بیتکوین Core PR #25717 پیادهسازی شد، جایی که یک گره ابتدا تأیید میکند که زنجیره ارائهشده قبل از متعهد شدن به ذخیره آن کار کافی دارد. با این کار، بیت کوین Core دیگر به وجود نقاط بازرسی برای محافظت در برابر هرگونه حمله شناخته شده متکی نیست.
انتساب
اعتبار به دیوید جیسون و برادن فولر برای کشف مجدد حمله، تخمین هزینه آن و پیشنهاد تغییرات می رسد.
اعتبار به Suhas Daftuar و Pieter Wuille برای تحقیق در مورد یک راه حل رضایت بخش و اجرای آن می رسد.
کرونولوژی
- ۱۷/۰۷/۲۰۱۰ – بیت کوین ۰٫۳٫۲ منتشر شد و نقاط بازرسی را معرفی کرد. آنها، از جمله، در برابر مسدود کردن هرزنامه با مشکل کم محافظت می کنند.
- ۲۰۱۱-۱۱-۲۱ – بیت کوین ۰٫۵٫۰ منتشر شد که از بررسی اسکریپت برای بلوک ها قبل از آخرین بازرسی صرفنظر می کند. این امر نقش ایست های بازرسی را برای امنیت بسیار مهم تر می کند.
- ۰۹/۰۴/۲۰۱۴ – بلوک ۲۹۵۰۰۰ استخراج شد و به آخرین بازرسی بیت کوین Core تبدیل شد. محافظت ارائه شده توسط پست های بازرسی در برابر هرزنامه های بلوک از این نقطه به بعد با کاهش هزینه های هش کاهش می یابد.
- ۱۶/۰۲/۲۰۱۵ – بیت کوین Core 0.10.0 منتشر شد، ابتدا با همگام سازی هدر. این امر باعث تضعیف بلوک حمله هرزنامه با مشکل کم می شود هدر حمله اسپم
- ۰۸-۰۳-۲۰۱۷ – بیت کوین Core 0.14.0 منتشر شده است که رد شدن از تأیید اسکریپت را از نقاط بازرسی حذف می کند و آنها را فقط برای ضد هرزنامه در هدرهای بلوک قابل اجرا می گذارد.
- ۲۰۱۹-۰۱-۲۸ – دیوید جینسون این موضوع را در لیست پستی بیت کوین Core Security گزارش کرد.
- ۱۸-۰۹-۲۰۱۹ – برادن فولر با مقاله ای با عنوان “حملات انکار سرویس در مقیاس پهنای زنجیره بیت کوین” که در مورد خطرات هرزنامه هدر بلوک و بلوک، تجزیه و تحلیل هزینه و یک راه حل پیشنهادی بحث می کند، لیست امنیتی هسته بیت کوین را ایمیل می کند.
- ۲۰۱۹-۰۹-۲۶ – Suhas Daftwar به Braden Fuller پاسخ می دهد که این یک موضوع شناخته شده است و از او دعوت می کند نظر خود را در لیست پستی Bitcoin Developer ارسال کند.
- ۰۴-۱۰-۲۰۱۹ – برادن فولر مقاله خود را به لیست پستی bitcoin-dev ارسال می کند.
- ۳۱-۱۰-۲۰۱۹ – در پاسخ به رویدادهای فوق، سهس دفتر PR #17332 را با اثبات مفهومی قبلی اما غیرعملی که روی آن برای بهبود وضعیت کار میکرد، باز کرده است، به این امید که بحثهای بیشتری در مورد این موضوع ایجاد کند.
- ۲۰۲۲-۰۲ – Suhas Daftuar و Pieter Wuille درباره این موضوع بحث کردند و تخمین زدند که هزینه این حمله در واقع آنقدر کم شده است که نیاز به اقدام فوری و نیاز به اجتناب از صحبت عمومی در مورد آن دارد.
- ۲۲/۰۶/۲۰۲۲ – سهس دفتر PR #25454 را به عنوان یک کار مقدماتی برای اعمال یک پچ باز می کند.
- ۲۲/۰۶/۲۰۲۲ – سوهاس دفتر پیامی به گروهی از مشارکت کنندگان درازمدت ارسال می کند که در آن جزئیات حمله، هزینه آن و راه حلی که او و پیتر ویل روی آن کار می کنند، ارائه می کند.
- ۲۶-۰۷-۲۰۲۲ – سوهاس دفتر PR #25717 را باز میکند، نویسنده مشترک پیتر ویل، که این اصلاح را اعمال میکند.
- ۳۰-۰۸-۲۰۲۲ – PR #25717 ادغام شده است.
- ۲۱/۱۰/۲۰۲۲ – PR #26355 Niklas Gögge ادغام شده است، که یک اشکال در مرحله پیش همگام سازی هدر معرفی شده در PR #25717 را برطرف می کند. بدون این، همچنان میتوان هدرهای هرزنامه را مسدود کرد. کشف این باگ و احتمال وجود موارد ناشناخته احتمالی به همین دلیل است که هنوز پست های بازرسی قدیمی به طور کامل حذف نشده اند.
- ۲۰۲۲-۱۲-۱۲ – بیت کوین Core 24.0.1 همراه با پچ منتشر شد.
- ۰۷-۱۲-۲۰۲۳ – آخرین نسخه آسیب پذیر بیت کوین Core (23.2) منقضی شده است.
- ۲۰۲۴-۰۹-۱۸ – افشای عمومی.
