سمیرا ابراهیم پور | 1396.12.14

کشف حملات Eclipse بر روی بلاکچین اتریوم

خانم Sharon Goldberg از اساتید دانشگاه Boston، آقای Ethan Heilman و Yuval Marcus محققی در دانشگاه Pittsburgh مقاله ای با عنوان “حمله های Eclipse کم هزینه در شبکه همتا به همتای اتریوم (ethereum)” منتشر کرده اند. این مقاله به توضیح راهی برای اجرای یک حمله eclipse بر روی شبکه اتریوم می پردازد.

(محققان، حمله خود به شبکه اتریوم در روز 9 ژانویه 2018 را فاش کردند. توسعه دهندگان اتریوم نیز یک پچ – Geth v1.8.1 – به منظور اصلاح شبکه ارائه کرده اند).

حملات Eclipse در بستر بلاکچین شبکه اتریوم (ethereum blockchain) کشف شد

Image Source: scoopnest.com

خانم Goldberg در مصاحبه خود با Bitcoin Magazine به توضیح این تحقیق به عمل آمده پرداخته است؛ وی آن را با حمله های eclipse در بیت کوین مقایسه کرده و می گوید اهمیت موضوع چیست.

در ابتدا، او بر این نکته تاکید کرد که کار با توسعه دهندگان اتریوم برای حل این آسیب پذیری آسان و روان بود.

Martin Holst Swende مدیر بخش امنیت بنیاد ethereum (بخش غیرانتفاعی که بر توسعه اتریوم نظارت دارد) طی ایمیلی به Bitcoin Magazine درباره اتفاقات اخیر توضیح داده است؛ وی اعلام کرده که پچ (patch) اخیر، شامل چندین اصلاحیه در لایه همتا به همتا می شود و بر روی قوانین اجماع تاثیری نمی گذارد. او می گوید کاربران باید توجه بیشتری داشته باشند، چرا که حملات eclipse حمله ای است که یک قربانی خاص را هدف قرار می دهد. او در ادامه نوشت:« با این حال، ما به تمام کاربران بروزرسانی به نسخه 1.8.1 را پیشنهاد می کنیم.»

موارد استفاده از این حمله

حملات Eclipse در بستر بلاکچین شبکه اتریوم (ethereum blockchain) کشف شد

Image Source: avivz.net

همانند بیت کوین، در شبکه ethereum هم یک نود برای آنکه دید کاملی به شبکه داشته باشد به ارتباط با همتایان خود متکی است. در یک حمله eclipse، مهاجم کنترل تمام ارتباطات نود قربانی را به دست می گیرد. مهاجم از این طریق جلوی نود قربانی برای دریافت اطلاعات کامل از سایر قسمت های شبکه را می گیرد.

مردم معمولا حمله های eclipse را راهی برای بدست آوردن قدرت استخراج می بینند، اما در واقع eclipse برای حمله های “دوبار خرج کردن” مورد استفاده قرار می گیرد. یک پرداخت کننده می تواند کوینی را در یک تراکنش بفرستد و با استفاده از حمله eclipse، جلوی خبردار شدن دریافت کننده از اینکه این کوین قبلا در گوشه ای دیگر از شبکه استفاده شده است را بگیرد.

سه سال پیش Goldberg و Heilman به همراه دو محقق دیگر، اولین مقاله درباره حمله های eclipse در شبکه بیت کوین را منتشر کردند. آنها با همکاری با یک کارآموز جدید (Mercus) می خواستند همین مدل از حملات را بر روی شبکه اتریوم هم بررسی کنند. Goldberg می گوید که برای مقایسه این حمله در شبکه اتریوم با شبکه بیت کوین کنجکاو بودیم.

حمله  Eclipse بین شبکه های بیت کوین و اتریوم (ethereum) متفاوت است

Goldberg حملات eclipse بر روی اتریوم را بسیار متفاوت از همان حملات بر روی بیت کوین می داند. در شبکه بیت کوین، مهاجم برای اجرای حمله eclipse باید تعداد زیادی آی پی آدرس (دستگاه) را کنترل کند تا بتواند اتصالات ورودی به نود قربانی و خروجی از آن را تحت انحصار خود درآورد. به همین دلیل چنین حمله ای در شبکه بیت کوین پر هزینه است.

حملات Eclipse در بستر بلاکچین شبکه اتریوم (ethereum blockchain) کشف شد

Image Source: bitcoinmagazine.com

در مقابل، محققان توانستند حملات مشابه و حتی قوی تری را تنها با یک یا دو دستگاه، در شبکه اتریوم اجرا کنند.

سوال اینجاست که این موضوع چقدر اهمیت دارد؟ Goldberg می گوید جواب به این سوال کمی دشوار است. او بر این باور است که چیزی که با این حملات مقابله می کند، سخت بودن یا نبودن انجام آن در اتریوم نیست، بلکه عدم درک کافی از نحوه کار شبکه همتا به همتای اتریوم است. Goldberg می گوید شبکه اتریوم به طور گسترده ای مستند سازی نشده است (اطلاعات کافی وجود ندارد).

همانند کار اولیه ای که بر روی بیت کوین انجام دادند، در اتریوم نیز می‌بایست پروتکل مبتنی بر کد را مهندسی معکوس می کردند و نتایج خود از بررسی پکت ها را یادداشت می کردند. Goldberg در این باره می گوید:«انجام این کار سخت و طولانی است».

انعطاف پذیری کمتر

در نگاه اول به نظر می رسد که اتریوم در برابر eclipse مقاوم تر از بیت کوین باشد. چرا که نودهای بیت کوین تنها 8 اتصال خروجی TCP برای ایجاد شبکه gossip که به انتشار تراکنش ها و بلاک ها می پردازد درست می کنند؛ این عدد برای نودهای اتریوم 13 می باشد. همچنین شبکه همتا به همتای اتریوم از کانالی رمزنگاری شده و امن استفاده می کند که شبکه بیت کوین چنین کاری نمی کند.

اما در نهایت مشخص شد که ایجاد چنین حمله ای در ethereum راحت تر از بیت کوین است. بیت کوین بر مبنای یک شبکه بدون ساختار است که نودها به صورت تصادفی با یکدیگر اتصال (ارتباط) برقرار می کنند؛ اتریوم بر مبنای شبکه ای ساختارمند و بر پایه پروتکلی به نام Kademlia است که به کاربران اجازه می دهد تا به صورت موثرتری با یکدیگر ارتباط برقرار کنند.

در شبکه اتریوم، نودها از طریق کلید عمومی شناخته می شوند. نسخه هایی از ethereum (پیش از نسخه Geth 1.8.1) به کاربران اجازه می داد تا تعداد بیشماری نود با کلیدهای عمومی مختلف را بر روی یک دستگاه با یک آی پی آدرس مشخص اجرا کنند.

یک مهاجم می توانست با استفاده از الگوریتم تولید کلید، تعداد زیادی آی دی (ID) نود بسازد. حتی می توانست آی دی نود را طوری بسازد که نسبت به یک آی دی تصادفی (رندوم)، برای قربانی جذاب تر باشد و در نتیجه قربانی را به سمت خود بکشد.

کار بیشتری پیش رو است

Goldberg می گوید برای او روشن نیست که اتریوم چرا از ابتدا Kademila را انتخاب کرد. یک شبکه همتا به همتای ساختارمند معمولا برای محتوا استفاده می شود؛ محتوایی مثل فیلم، که به اجزای کوچکتری تقسیم شود و به همتایان مختلف در شبکه فرستاده شود و در نهایت هر قسمت، از یکی از همتایان دانلود شود؛ همانند bitTorent که پروتکلی همتا به همتا برای به اشتراک گذاری فایل است.

اما در اتریوم این محتوا بلاکچین اتریوم است و نودها کل بلاکچین را به صورت محلی ذخیره می کنند. نیازی نیست که بلاکچین به اجزای کوچکتری تقسیم شود و هر نود بخشی از آن را ذخیره کند. Goldberg می گوید:«من بر این باورم که شبکه های بدون ساختار برای سیستم های بلاکچینی امن تر هستند».

او می گوید:« ما سیستم های پیچیده ای را بر روی این زیرساخت (اتریوم) بنا کرده ایم و مردم باید از اینکه خود زیرساخت امنیت کافی دارد مطمئن باشند».

محققانی مانند Goldberg، Heilman و Marcus نقش بسیار مهمی در اکوسیستم ethereum ایفا می کنند. این محققین دستاورد و نتایج خود را از طریق bug bounty اتریوم ثبت کردند؛ برنامه ای که به افراد به ازای یافتن مشکلات مختلف در سیستم جایزه می دهد.