توسعهدهندگان XRP Ledger یک نقص بحرانی در موتور پرداخت را برطرف کردهاند که میتوانست به مهاجم اجازه دهد در یک تراکنش، مقدار XRP قابلخرجی بسیار فراتر از سقف عرضه ۱۰۰ میلیارد واحدی شبکه ایجاد کند؛ این موضوع طبق گزارش افشای Veria Labs اعلام شده است. این آسیبپذیری از سال ۲۰۱۵ در کد xrpld وجود داشت، هرچند در گزارش آمده است که «هیچ شواهدی مبنی بر سوءاستفاده از این مشکل در هیچ شبکه عمومی وجود ندارد.»
این نقص در ۲۲ سپتامبر به RippleX گزارش شد و سه روز بعد، در نسخه 3.4.1 از xrpld، برطرف شد. Veria Labs اعلام کرد که در روز انتشار این نسخه، بیش از ۸۰٪ اعتبارسنجهای فهرست پیشفرض گرههای منحصربهفرد XRP Ledger آن را نصب کرده بودند و همین موضوع پنجره عملی حمله به شبکه را محدود کرد.
کیدن لیائو، همبنیانگذار Veria Labs، گفت که یک عامل هوش مصنوعی این نقص را شناسایی و یک اکسپلویت عملی ایجاد کرده است. لیائو در پستی در X برآورد کرد که اگر یک تراکنش مخرب به شبکهای آسیبپذیر میرسید، میتوانست حدود ۱۸ تریلیون XRP ایجاد کند؛ یعنی تقریباً ۱۸۴ برابر حداکثر عرضه اولیه شبکه.
محاسبه پرداخت ممکن بود سرریز کند
این آسیبپذیری مربوط به پرداختهایی بود که چندین سفارش را از دفتر سفارش غیرمتمرکز XRP Ledger مصرف میکنند. چنین تراکنشهایی میتوانند همزمان با سفارشهای زیادی تطبیق پیدا کنند و نرمافزار باید مقدار کل XRP پرداختشده در همه آنها را محاسبه کند.
طبق گزارش Veria Labs، این جمعزدن فاقد بررسی سرریز بود. در رایانش، سرریز زمانی رخ میدهد که یک عدد برای نوع داده اختصاصیافته بیش از حد بزرگ شود؛ در این حالت، بهجای تولید مقدار بزرگ و صحیح، محاسبه ممکن است به یک عدد بسیار کوچکتر بازگردد.
مهاجم میتوانست از چند صد حساب برای ثبت سفارشهایی استفاده کند که در آنها کسری بسیار کوچک از یک توکن در ازای مقدارهایی فوقالعاده زیاد از XRP فروخته میشد. سپس یک تراکنش پرداخت میتوانست این سفارشها را مصرف کند. موتور پرداخت، مقدار XRP اعلامشده را به حساب هر فروشنده واریز میکرد، در حالی که هزینه محاسبهشده خریدار ممکن بود به «فقط چند صد دراپ بهعلاوه کارمزد» بازگردد؛ این موضوع در گزارش آمده است. دراپ کوچکترین واحد XRP است و برابر با یکمیلیونیم XRP محسوب میشود.
این خطا میتوانست موجودیهای XRP را افزایش دهد، بدون آنکه حساب مهاجم بهدرستی بدهکار شود. Veria Labs گفت یک سازوکار حفاظتی جداگانه که برای شناسایی XRP ایجادشده جدید طراحی شده بود، از یک عملیات جمع دیگر استفاده میکرد که در برابر سرریز آسیبپذیر بود. در نتیجه، بررسی داخلی عرضه در پروتکل نیز ممکن بود افزایش مصنوعی موجودیها را شناسایی نکند.
مقیاس سوءاستفادهٔ نظری، آن را در دستهای متفاوت از سازش معمول یک صرافی یا سرقت از یک پل قرار میداد. مهاجم بهجای سرقت وجوه موجود از یک مخزن مشخص، میتوانست واحدهای جدیدِ قابلخرجی را وارد چرخه کند و اگر این واحدها به محلهای معاملاتی یا دیگر مشارکتکنندگان شبکه میرسیدند، اعتماد به قواعد عرضهٔ دفترکل را تضعیف کند.
وصله، جدول زمانی معمول اصلاحیه را دور زد
بهگفتهٔ Veria Labs، وصلهٔ RippleX از طریق ارتقای سرورها اعمال شد، نه فرایند معمول اصلاحیه در XRP Ledger. اصلاحیهها معمولاً تنها پس از آن قواعد شبکه را تغییر میدهند که بهمدت دو هفته بیش از ۸۰٪ حمایت اعتبارسنجهای مورداعتماد را دریافت کرده باشند.
این فرایند به اپراتورها زمان میدهد تا پیش از فعال شدن یک قاعدهٔ پروتکل، ارتقاها را بررسی و مستقر کنند. اما در این مورد، مسئلهٔ امنیتی به واکنشی سریعتر نیاز داشت: هر سرور زمانی از این محافظت برخوردار شد که اپراتور آن را به xrpld 3.4.1 ارتقا داد.
Veria Labs این رویکرد را نخستین استفاده از مسیر فعالسازی مبتنی بر ارتقا در بیش از یک دهه اصلاحیههای XRP Ledger توصیف کرد. این تصمیم، بدهبستان عملی در رسیدگی به آسیبپذیریای با مهلت کوتاه برای اصلاح را نشان میدهد: بحث عمومی گسترده پیش از استقرار فراگیر وصله میتواند جزئیات فنی کافی برای بازسازی سوءاستفاده را در اختیار مهاجمان قرار دهد.
جاستین بونز، بنیانگذار و مدیر ارشد سرمایهگذاری Cyber Capital، در X نوشت که xrpld 3.4.1 حدود دو هفته پیش از انتشار کد، همچنان متنباز نشده بود. مایوکا واداری، مهندس نرمافزار در RippleX، گفت نگرانیهای مربوط به کشف سریع و مهندسی معکوس، فرایند انتشار را شکل داده بودند.
این توالی توجهها را جلب کرد، زیرا شبکههای متنباز عموماً به بررسی عمومی کد وابستهاند، درحالیکه محدودیت موقت دسترسی به کد منبع، بررسی مستقل را محدود میکند. رویکرد RippleX پیشگیری از سوءاستفاده را در اولویت قرار داد تا اپراتورهای اعتبارسنج تعمیر را مستقر کنند، و سپس پس از پایان دورهٔ اضطراری، کد را منتشر کرد.
وصلهٔ دوم، قابلیت Batch را اصلاح کرد
نسخهٔ 3.4.1 همچنین مشکل جداگانهای مرتبط با Batch را برطرف کرد؛ قابلیتی که هنگام شناسایی نخستین نقص، هنوز فعال نشده بود. Veria Labs گفت آسیبپذیری Batch میتوانست در شرایط خاص شبکه را متوقف کند.
این گزارش اعلام کرد که مهاجم از طریق مشکل Batch نمیتوانست داراییهایی را روی زنجیره به دست آورد. اثر بالقوه آن شامل ایجاد یک رکورد دائماً معیوب در دفترکل بود که میتوانست خدمات خارج از زنجیره مانند ایندکسرها، مرورگرهای بلاکچین و کیتهای توسعه نرمافزار را مختل کند. این خدمات دادههای دفترکل را برای کیفپولها، برنامهها و کاربران تفسیر و سازماندهی میکنند؛ بنابراین رکوردهای معیوب میتوانند حتی در صورت سالم ماندن موجودیهای دفترکل، مشکلات عملیاتی ایجاد کنند.
Veria Labs اعلام کرد که Batch و اصلاحیه آن روز جمعه فعال شدند و سرورهایی که نسخههای قدیمیتر نرمافزار را اجرا میکنند، دیگر نمیتوانند با شبکه همگام بمانند. این نتیجه انگیزه قدرتمندی برای بهروزرسانی اپراتورهای باقیمانده ایجاد میکند، زیرا سرورهای بهروزنشده نمیتوانند وضعیت فعلی دفترکل را بهطور قابلاعتماد دنبال کنند.
Liao گفت Veria Labs حداکثر جایزه ۲۵۰٬۰۰۰ دلاری را برای گزارش آسیبپذیریها دریافت کرده است. این پاداش نشاندهنده شدت بالقوه نقصی است که به منطق اصلی حسابداری یک بلاکچین عمومی راه یافته بود، نه یک برنامه جانبی.
این حادثه همچنین شواهد بیشتری ارائه میدهد که تحلیل خودکار کد در حال تبدیل شدن به بخشی عملی از کشف آسیبپذیریهاست. توضیحات Liao درباره یافتن و بهرهبرداری از این مشکل توسط یک عامل هوش مصنوعی ثابت نمیکند که خودکارسازی میتواند جایگزین بررسی امنیتی انسانی شود، اما نشان میدهد وقتی پژوهشگران اسکن خودکار را با درک فنی قوانین تراکنش یک پروتکل ترکیب میکنند، خطاهای حسابی قدیمی با چه سرعتی آشکار میشوند.
تعمیر XRP Ledger مانع از آن شد که این آسیبپذیری به رویدادی در عرضه تبدیل شود که برای بازار قابل مشاهده باشد. پرسشهای باقیمانده بر این موضوع متمرکزند که آیا کدبیسهای دیگر بلاکچینهای باسابقه نیز در مسیرهای پیچیده تراکنش، خطرهای مشابه سرریز عدد صحیح دارند یا نه؛ بهویژه در مواردی که چندین عملیات تجمیع میشوند و موجودیها از طریق روالهای حسابداری جداگانه بررسی میشوند.
پس از این باگ در XRP Ledger درباره خطرهای پروتکل نگران هستید؟ درباره پویایی پرداختهای بینزنجیرهای در این تحلیل پرداختهای برونمرزی کاوش کنید.
سلب مسئولیت: محتوای این صفحه صرفاً برای اهداف اطلاعرسانی عمومی ارائه شده و بیانگر دیدگاهها یا توصیههای مالی Toobit نیست. ما هیچ تضمینی درباره دقت یا کامل بودن این اطلاعات نمیدهیم و در قبال هرگونه خطا، حذف یا پیامدی که از استفاده از آن ناشی شود، مسئولیتی نخواهیم داشت. سرمایهگذاری در داراییهای دیجیتال با ریسک همراه است؛ کاربران باید وضعیت مالی خود و خطرهای مربوطه را بهطور مستقل ارزیابی کنند. برای جزئیات بیشتر، لطفاً به شرایط استفاده از خدمات و افشای ریسک.
