مونرو با کمک جامعهی کاربری خود از یک حملهی دیگر جان سالم به در برد
شبکه مونرو به تازگی دچار یک حمله شد که در آن هکرها توانستند به سیستم نفوذ کرده و سرمایه کیف پولهای شرکتها را از بین ببرند. ابتدا یکی از اعضای جامعهی کاربری مونرو متوجه این حمله شد، سپس توسعهدهندگان برای رفع آن اقدام کردند. این خبر جزییات بیشتری درمورد این حمله و نحوه برخورد شبکه و جامعه مونرو با این باگ و همچنین مشکلات مشابهی که این سیستم و دیگر سیستم های بلاکچین و رمزنگاری با آن مواجه هستند، ارائه کرده است.
این هفته، توسعهدهندگان مونرو (Monero) با نماد XMR باگی را اصلاح کردند که به مهاجمان اجازه میداد سرمایههای موجود در کیف پول شرکتها را بسوزانند. این حمله ابتدا توسط یکی از اعضای جامعهی کاربری مونرو فاش شد، سپس توسعهدهندگان XMR به سرعت مشغول به رفع این مشکل شدند تا از بروز صدمات احتمالی جلوگیری کنند.
مهمترین رکن، ناشناس بودن: مونرو چگونه کار میکند؟
مونرو به عبارت ساده رمزارزی شبیه به بیتکوین است که تمرکز بیشتری بر ناشناس بودن دارد. این پروژه در سال ۲۰۱۴ شکل گرفت و طی آن یکی از کاربران وبسایت bitcointalk.org به نام thankful_for_today، کد پایهی بایتکوین (Bytecoin) را منشعب (فورک) کرد و نام آن را BitMonero گذاشت. او برای خلق این کوین جدید از ایدههایی استفاده کرد که نخستین بار در سال ۲۰۱۳ در معرفی نامه کسب و کار (white paper) به نام Cryptonote مطرح شده بود. این معرفی نامه به دست شخصی ناشناس موسوم به نیکلاس فن سیبرهیگن (Nicolas van Saberhagen) به تحریر درآمده بود. نکتهی جالب این بود که خود مونرو هم خیلی زود توسط توسعهدهندگان متن باز منشعب شد و مونرو نام گرفت (مونرو در زبان اسپرانتو به معنای کوین یا سکه است). این پروژه از آن زمان تاکنون به عنوان یک پروژهی متن باز باقی مانده است.
مونرو نسبت به بیتکوین از لحاظ حریم خصوصی عملکرد بهتری دارد. این پروژه فقط یک ارز غیرمتمرکز نیست. مونرو طوری طراحی شده تا کاملاً ناشناس و عملاً غیرقابل ردیابی باشد. XMR بر اساس الگوریتم هش اثبات کار CryptoNight طراحی شده و به کاربران خود اجازه میدهد تا از امضاهای حلقهای (که آدرس خرجکننده را با گروهی از کاربران ترکیب میکند تا ردیابی تراکنشها دشوارتر شود)، آدرسهای مخفیانه (که برای هر تراکنش تولید میشود و ردیابی مقصد واقعی تراکنشها را برای هر کسی به جز فرستنده و گیرنده ناممکن میسازد) و تراکنشهای محرمانهی حلقهای (که مبلغ انتقالیافته را مخفی میکند) استفاده کنند.
مونرو در سال ۲۰۱۶ بیش از هر ارز رمزنگاری شده دیگری در دنیا از نظر ارزش بازار و حجم تراکنشها رشد کرده است (به گزارش CoinMarketCap، تقریباً ۲۸۰۰ درصد افزایش). بخش عمدهی این رشد از اقتصاد زیرزمینی نشأت گرفته است. مونرو به عنوان آلتکوینی که با هدف رعایت کامل حریم خصوصی تراکنشها ساخته شده، سرانجام در بازارهای دارک وب نظیر Alphabay و Oasis به شکل یک ارز پذیرفته شد. بر مبنای گزارش Wired، این اتفاق بهویژه به تابستان ۲۰۱۶ یعنی زمانی بر میگردد که مونرو در دارک وب مورد پذیرش قرار گرفت و ارزش آن به یکباره شش برابر شد.
«یکی از توسعهدهندگان اصلی مونرو به نام ریکاردو اسپاگنی (Ricardo Spagni) در ژانویهی ۲۰۱۷ به این نشریه گفت افزایش شمار کسانی که واقعاً به حریم خصوصی نیاز دارند جالب توجه است. اگر این پروژه برای دلالان مواد مخدر جذاب است، میتواند برای سایرین هم جذاب باشد.»
موضوع حریم خصوصی مونرو هنوز یک بحث داغ به شمار میآید، چون برخی معتقدند که این ارز در حقیقت کاملاً ناشناس نیست. مامور ویژهی ادارهی مبارزه با مواد مخدر آمریکا (DEA)، لیلیتا اینفانته (Lilita Infante)، در ماه آگوست در مصاحبهای با بلومبرگ گفت اگرچه ارزهایی که بر حریم خصوصی تمرکز دارند نسبت به بیتکوین ناشناسترند و نقدشوندگی کمتری دارند، ولی DEA همچنان راههایی برای ردیابی کوینهایی چون مونرو و Zcash میشناسد. اینفانته اظهار داشت:
«حقیقت این است که بلاکچین ابزارهای زیادی برای شناسایی افراد در اختیار ما قرار میدهد. واقعاً از مردم میخواهم به استفاده از ارزهای رمزنگاری شده ادامه دهند.»
نکتهی جالب این است که هرچند در گزارش جدید یوروپل (پلیس اروپا) اذعان شده که بیتکوین همچنان محبوبترین ارز رمز برای فعالیتهای مجرمانه است، ولی در همین گزارش از احتمال افزایش تقاضا برای آلتکوینهای ناشناس-محور مثل مونرو خبر میدهد.
ماهیت مونرو که مبتنی بر حریم خصوصی است، از قرار گرفتن نام این ارز در صرافیهای بزرگ جلوگیری میکند. برای مثال، صرافی ژاپنی Coincheck در ماه ژوئن XMR و سه آلتکوین ناشناس-محور دیگر را از لیست خود خارج کرد تا بتواند از قوانین ضد تامین مالی تروریسم (CFT) و ضد پولشویی تبعیت کند.
باگ سوزاننده: تهدیدی بالقوه برای اکوسیستم مونرو
کاربری به نام u/s_c_m_l در تاریخ ۱۸ سپتامبر حملهای فرضی به اکوسیستم XMR را در حساب رسمی مونرو در وبسایت Reddit این چنین توصیف کرد:
میتوانم حملهای را تصور کنم که در آن کاربر الف مقدار زیادی XMR را به دست آورده و آن را از طریق شمار زیادی تراکنش با یک آدرس مخفیانهی مشابه به صرافی ب میفرستد. سپس کاربر الف مونروهای خود را با یک ارز دیگر تعویض و پول نقد به دست میآورد، در نهایت صرافی را سردرگم و در حالی که قادر به استفاده از آن XMR نیست، رها میکند.
آنچه اهمیت دارد این است که بلاکچین مونرو، تراکنشهای XMR میان آدرسهای مخفیانهی هویتی را به عنوان تراکنشهای غیرمعتبر میبیند و آنها را میسوزاند. در عوض، تنها یک تراکنش صحیح میتواند وارد بلاکچین شود. مونروهای سوخته کاملاً بلااستفاده هستند و جانشین کردن آنها ممکن نیست.
جزئیات بیشتر دربارهی این حمله در پستی در وبلاگ مونرو تشریح شده است:
مهاجم ابتدا یک کلید تراکنش تصادفی و خصوصی میسازد. سپس کد را تغییر میدهد تا از این کلید تراکنش خصوصی استفاده کند، با این کار مطمئن میشود که تراکنشهای متعدد به یک آدرس عمومی (مثلاً کیف پول داغِ یک صرافی) به همان آدرس مخفیانه ارسال شود. بدین ترتیب، چند مقدار، مثلاً هزار تراکنش از یک XMR به یک صرافی فرستاده میشود. با توجه به این که کیف پول صرافی در قبال این نوع خاص از نابهنجاریها هشدار نمیدهد (یعنی سرمایهها در یک آدرس مخفیانهی یکسان دریافت میشود)، صرافی، مثل همیشه، هزار XMR به مهاجم میدهد.
آنگاه مهاجم مونروی خود را به بیتکوین تبدیل و در آخر بیتکوینها را برداشت میکند. نتیجهی عمل هکر این است که صرافی میماند و ۹۹۹ خروجیِ غیرقابل خرج کردن یا سوخته از یک XMR روی دستش باقی میماند.
به عبارت سادهتر، این باگ اساساً به هکرها اجازه میدهد سرمایههای کیف پول شرکتها – مثلاً صرافیها – را بسوزانند، در حالی که فقط مجبور به پرداخت هزینهی تراکنشهای شبکه هستند. اگرچه هکرها از طریق انجام این کار هیچ پولی به دست نمیآورند، اما همانطور که تیم مونرو میگوید، احتمالاً روشهایی برای سودبری غیرمستقیم از این کار وجود دارد. برای مثال، اگر مهاجمان بر عرضهی XMR کنترل پیدا کنند، میتوانند در بازار دستکاری کنند.
مونرو با آرامش از پس این حمله برآمد
تئوری این کاربر ردیت در انجمن مونرو به شدت مورد بحث قرار گرفت و توسعهدهندگان به طور عمومی اعلام کردند که این مشکل را برطرف کردهاند. تیم مونرو در ۲۵ سپتامبر اظهار داشت که پچ اصلاحی این مشکل ساخته شده و پس از کشف این آسیبپذیری بالقوه در کد پروژه لحاظ خواهد شد. به دنبال همین اتفاق، آنها با بسیاری از صرافیها، سرویسها و تاجران تماس گرفتند و توضیح دادند که این پچ باید در نسخهی v0.12.3.0 اعمال شود.
توسعهدهندگان مونرو در پستی در وبلاگ خود به این نکته اشاره کردند که این روش مشخصاً یک راهکار ارجح نیست، چون همچنان بخشهایی از اکوسیستم مونرو را در بر نمیگیرد، ولی فاکتور زمان از اهمیت زیادی برخوردار است. توسعهدهندگان در قدم بعدی این مشکل را از طریق اشتراک عمومی ایمیلی پروژه به اطلاع عموم رساندند، چون عضویت در این سرویس برای استفاده از مونرو اجباری است.
در آخر، مونرو مدعی شد که این باگ به پروتکل آنها آسیبی نرسانده و بنابراین تامین کوین دچار مشکل نشده، زیرا مهاجمان نتوانستند با سرعت کافی به سوء استفاده از این باگ بپردازند.
جامعهی کاربری XMR در حالت آماده باش قرار دارد
این اتفاق تنها مشکل امنیتی نبوده که مونرو در ماه گذشته با آن دست و پنجه نرم کرده است. کاربران توئیتر و ردیت در اوایل ماه سپتامبر اظهار میکردند که افزونهی MEGA در مرورگر کروم دچار مشکل شده است. این افزونه ابزاری است که ادعا میکند با کاهش زمان بارگذاری صفحات و همچنین فراهمسازی یک سرویس ذخیرهسازی ابری عملکرد مرورگر را بهبود میبخشد.
یکی از کاربران وبسایت ردیت به نام u/gattacus، در انجمن رسمی مونرو دربارهی وضعیت مشکوک نسخهی ۳.۳۹.۴ افزونهی MEGA گفته بود:
«بهروزرسانی جدیدی برای این افزونه منتشر و مرورگر کروم خواستار دسترسیهای جدید (برای خواندن اطلاعات همهی سایتها) شد. این اتفاق من را به شک واداشت، بنابراین کد افزونه را (که عمدتاً به زبان جاوااسکریپت است) بررسی کردم. کد MEGA در وبسایت گیتهاب موجود است و اخیراً اصلاحی روی آن اعمال نشده است. به نظر من یا حساب کاربری گوگل آنها هک شده یا یکی از اعضای داخلی تیم MEGA این کار را انجام داده است. البته اینها فقط حدس و گمان هستند.»
حدود چهار ساعت بعد از انتشار این مطلب، افزونهی مذکور از فروشگاه گوگل حذف شد. سپس تیم MEGA اعلام کرد که نسخهی ۳.۳۹.۴ یک بهروزرسانی مخرب بوده که توسط هکرهای ناشناس و با هدف دستیابی به اطلاعات خصوصی کاربران منتشر شده است. مدت کوتاهی بعد مشخص شد که این حمله مختص مونرو نبوده و کد مخرب مذکور در وبسایتهای بسیاری از جمله آمازون، گوگل، مایکروسافت، گیتهاب، MyEtherWallet و همچنین سرویس کیف پول تحت وب XMR فعال شده است. بنابراین این بار مشکل از طرف مونرو نبود.
اما به نظر میرسد که «باگ سوزاننده» به خاطر کد مشکلدار XMR به وجود آمده بود، هرچند توسعهدهندگان توانستند به سرعت بعد از اعلام مشکل توسط کاربران به این اتفاق واکنش نشان دهند.