خانم Sharon Goldberg از اساتید دانشگاه Boston، آقای Ethan Heilman و Yuval Marcus محققی در دانشگاه Pittsburgh مقاله ای با عنوان “حمله های Eclipse کم هزینه در شبکه همتا به همتای اتریوم (ethereum)” منتشر کرده اند. این مقاله به توضیح راهی برای اجرای یک حمله eclipse بر روی شبکه اتریوم می پردازد.
(محققان، حمله خود به شبکه اتریوم در روز ۹ ژانویه ۲۰۱۸ را فاش کردند. توسعه دهندگان اتریوم
خانم Goldberg در مصاحبه خود با Bitcoin Magazine به توضیح این تحقیق به عمل آمده پرداخته است؛ وی آن را با حمله های eclipse در بیت کوین
در ابتدا، او بر این نکته تاکید کرد که کار با توسعه دهندگان اتریوم برای حل این آسیب پذیری آسان و روان بود.
Martin Holst Swende مدیر بخش امنیت بنیاد ethereum (بخش غیرانتفاعی که بر توسعه اتریوم نظارت دارد) طی ایمیلی به Bitcoin Magazine درباره اتفاقات اخیر توضیح داده است؛ وی اعلام کرده که پچ (patch) اخیر، شامل چندین اصلاحیه در لایه همتا به همتا می شود و بر روی قوانین اجماع تاثیری نمی گذارد. او می گوید کاربران باید توجه بیشتری داشته باشند، چرا که حملات eclipse حمله ای است که یک قربانی خاص را هدف قرار می دهد. او در ادامه نوشت:« با این حال، ما به تمام کاربران بروزرسانی به نسخه ۱٫۸٫۱ را پیشنهاد می کنیم.»
موارد استفاده از این حمله
همانند بیت کوین
مردم معمولا حمله های eclipse را راهی برای بدست آوردن قدرت استخراج
سه سال پیش Goldberg و Heilman به همراه دو محقق دیگر، اولین مقاله درباره حمله های eclipse در شبکه بیت کوین را منتشر کردند. آنها با همکاری با یک کارآموز جدید (Mercus) می خواستند همین مدل از حملات را بر روی شبکه اتریوم هم بررسی کنند. Goldberg می گوید که برای مقایسه این حمله در شبکه اتریوم با شبکه بیت کوین کنجکاو بودیم.
حمله Eclipse بین شبکه های بیت کوین و اتریوم (ethereum) متفاوت است
Goldberg حملات eclipse بر روی اتریوم را بسیار متفاوت از همان حملات بر روی بیت کوین می داند. در شبکه بیت کوین، مهاجم برای اجرای حمله eclipse باید تعداد زیادی آی پی آدرس (دستگاه) را کنترل کند تا بتواند اتصالات ورودی به نود قربانی و خروجی از آن را تحت انحصار خود درآورد. به همین دلیل چنین حمله ای در شبکه بیت کوین پر هزینه است.
در مقابل، محققان توانستند حملات مشابه و حتی قوی تری را تنها با یک یا دو دستگاه، در شبکه اتریوم اجرا کنند.
سوال اینجاست که این موضوع چقدر اهمیت دارد؟ Goldberg می گوید جواب به این سوال کمی دشوار است. او بر این باور است که چیزی که با این حملات مقابله می کند، سخت بودن یا نبودن انجام آن در اتریوم نیست، بلکه عدم درک کافی از نحوه کار شبکه همتا به همتای اتریوم است. Goldberg می گوید شبکه اتریوم به طور گسترده ای مستند سازی نشده است (اطلاعات کافی وجود ندارد).
همانند کار اولیه ای که بر روی بیت کوین انجام دادند، در اتریوم نیز میبایست پروتکل مبتنی بر کد را مهندسی معکوس می کردند و نتایج خود از بررسی پکت ها را یادداشت می کردند. Goldberg در این باره می گوید:«انجام این کار سخت و طولانی است».
انعطاف پذیری کمتر
در نگاه اول به نظر می رسد که اتریوم در برابر eclipse مقاوم تر از بیت کوین باشد. چرا که نودهای بیت کوین تنها ۸ اتصال خروجی TCP برای ایجاد شبکه gossip که به انتشار تراکنش ها و بلاک ها می پردازد درست می کنند؛ این عدد برای نودهای اتریوم ۱۳ می باشد. همچنین شبکه همتا به همتای اتریوم از کانالی رمزنگاری شده و امن استفاده می کند که شبکه بیت کوین چنین کاری نمی کند.
اما در نهایت مشخص شد که ایجاد چنین حمله ای در ethereum راحت تر از بیت کوین است. بیت کوین بر مبنای یک شبکه بدون ساختار است که نودها به صورت تصادفی با یکدیگر اتصال (ارتباط) برقرار می کنند؛ اتریوم بر مبنای شبکه ای ساختارمند و بر پایه پروتکلی به نام Kademlia است که به کاربران اجازه می دهد تا به صورت موثرتری با یکدیگر ارتباط برقرار کنند.
در شبکه اتریوم، نودها از طریق کلید عمومی شناخته می شوند. نسخه هایی از ethereum (پیش از نسخه Geth 1.8.1) به کاربران اجازه می داد تا تعداد بیشماری نود با کلیدهای عمومی مختلف را بر روی یک دستگاه با یک آی پی آدرس مشخص اجرا کنند.
یک مهاجم می توانست با استفاده از الگوریتم تولید کلید، تعداد زیادی آی دی (ID) نود بسازد. حتی می توانست آی دی نود را طوری بسازد که نسبت به یک آی دی تصادفی (رندوم)، برای قربانی جذاب تر باشد و در نتیجه قربانی را به سمت خود بکشد.
کار بیشتری پیش رو است
Goldberg می گوید برای او روشن نیست که اتریوم چرا از ابتدا Kademila را انتخاب کرد. یک شبکه همتا به همتای ساختارمند معمولا برای محتوا استفاده می شود؛ محتوایی مثل فیلم، که به اجزای کوچکتری تقسیم شود و به همتایان مختلف در شبکه فرستاده شود و در نهایت هر قسمت، از یکی از همتایان دانلود شود؛ همانند bitTorent که پروتکلی همتا به همتا برای به اشتراک گذاری فایل است.
اما در اتریوم این محتوا بلاکچین اتریوم است و نودها کل بلاکچین را به صورت محلی ذخیره می کنند. نیازی نیست که بلاکچین به اجزای کوچکتری تقسیم شود و هر نود بخشی از آن را ذخیره کند. Goldberg می گوید:«من بر این باورم که شبکه های بدون ساختار برای سیستم های بلاکچینی امن تر هستند».
او می گوید:« ما سیستم های پیچیده ای را بر روی این زیرساخت (اتریوم) بنا کرده ایم و مردم باید از اینکه خود زیرساخت امنیت کافی دارد مطمئن باشند».
محققانی مانند Goldberg، Heilman و Marcus نقش بسیار مهمی در اکوسیستم ethereum ایفا می کنند. این محققین دستاورد و نتایج خود را از طریق bug bounty اتریوم ثبت کردند؛ برنامه ای که به افراد به ازای یافتن مشکلات مختلف در سیستم جایزه می دهد.