
ایراد پنج ساله Coldcard در تولید سید (Seed) مجدداً تقاضاها برای آزمایش مستقل فریمور کیفپولهای سختافزاری را مطرح کرده است، پس از آنکه حملات مشکوک نزدیک به ۹۰ میلیون دلار بیتکوین را از هزاران کیفپول تخلیه کردهاند.
نیک پرکوکو (Nick Percoco)، مدیر ارشد امنیتی کراکن، روز یکشنبه در پستی در شبکه X گفت که این حادثه باید به عنوان هشداری برای صنعت کیفپولهای سختافزاری عمل کند و استدلال کرد که تولیدکنندگان نباید تنها طرفهایی باشند که نحوه تولید عبارتهای بازیابی کیفپول را تأیید میکنند.
او گفت که فریمورهای تولیدی باید تحت آزمایش مستقل قرار گیرند تا تأیید شود که منبع تصادفیسازی تأیید شده، همان منبعی است که واقعاً در هنگام ایجاد اسرار کیفپول (wallet secrets) استفاده میشود.
بر اساس آخرین تحلیل بلاکچین توسط گلکسی ریسرچ، مهاجمان مشکوک تاکنون بیش از ۱,۸۰۰ بیتکوین را از بیش از ۵,۲۰۰ آدرس قربانی بالقوه در چهار موج حمله مشاهدهشده، تخلیه کردهاند، اگرچه این شرکت تأکید کرده است که این ارقام تخمینهای درونزنجیرهای (on-chain estimates) هستند و نه ضررهای تأییدشده. کوینکایت هر کیفپول آسیبدیده را تأیید نکرده است و دادههای بلاکچین به تنهایی نمیتوانند مشخص کنند که آیا یک مهاجم واحد تمام حملات را انجام داده است یا خیر.
کوینکایت روز پنجشنبه فاش کرد که این آسیبپذیری به مارس ۲۰۲۱ بازمیگردد، زمانی که این شرکت بخشی از فریمور خود را در حین ادغام یک کتابخانه رمزنگاری جدید، مهاجرت داد.
به جای استفاده از مولد اعداد تصادفی حقیقی (true random number generator) سختافزاری Coldcard که برای ایجاد سیدهای کیفپول در نظر گرفته شده بود، فریمور بهروز شده به اشتباه یک مولد شبهتصادفی قطعی (deterministic pseudo-random generator) ضعیفتر ارائه شده توسط MicroPython را فراخوانی کرد.
بر اساس گزارش پس از حادثه کوینکایت، مولد اعداد تصادفی مورد نظر در سایر نقاط فریمور فعال باقی مانده بود و این امکان را فراهم میکرد که بررسیهای کد، وجود آن را تأیید کنند، بدون آنکه فاش شود ایجاد کیفپول به منبع آنتروپی (entropy) متفاوتی متکی است.
این شرکت گفت که تا زمان بررسی، از وجود مولد MicroPython در مسیر کد مربوطه بیاطلاع بود. در حالی که مولد اعداد تصادفی سختافزاری برای سایر عملکردهای خود به کار ادامه میداد، دیگر مسئولیت تولید اسرار جدید کیفپول (new wallet secrets) را نداشت.
تیم مهندسی و امنیتی بیتکوین Block به طور مستقل در طول بررسی فنی خود به همین نتیجه رسید. این شرکت گفت که فریمور آسیبدیده هنگام ایجاد سیدهای کیفپول، به جای مولد اعداد تصادفی سختافزاری STM32، از fallback قطعی MicroPython استفاده میکرد. اگرچه Block اعلام کرد که آزمایش تجربی کامل هر دستگاه را به پایان نرسانده است، اما تصمیم گرفت یافتههای خود را فاش کند زیرا گزارشهایی از سرقت فعال از قبل منتشر شده بود.
کوینکایت تخمین میزند که سیدهای ایجاد شده در دستگاههای آسیبدیده Mk2 و Mk3 ممکن است حدود ۴۰ بیت آنتروپی مؤثر داشته باشند، در حالی که مدلهای آسیبدیده Mk4، Mk5 و Q ممکن است حدود ۷۲ بیت به جای ۱۲۸ بیت مورد نظر داشته باشند.
پرکوکو با استفاده از حادثه Coldcard به عنوان مثال، استدلال کرد که گواهینامه کیفپول سختافزاری یکی از مهمترین بخشهای امنیت کیفپول را نادیده گرفته است.
او گفت کاربران در حال حاضر باید اعتماد کنند که تولیدکنندگان به درستی تولید سید را پیادهسازی میکنند، زیرا هیچ فرآیند مستقلی تأیید نمیکند که فریمور تولیدی واقعاً منبع آنتروپی تأیید شده را فراخوانی میکند. طبق گفته پرکوکو، گواهینامههای موجود، از جمله ارزیابیهای Common Criteria برای عناصر امن، بررسیهای CSPN و ممیزیهای حمایتشده توسط فروشنده، به طور سیستماتیک این رابطه را تأیید نمیکنند.
برای نشان دادن این شکاف، او به استاندارد NIST SP 800-90B، استاندارد ایالات متحده که طراحی و اعتبارسنجی مولدهای اعداد تصادفی حقیقی مورد استفاده در سیستمهای رمزنگاری را تنظیم میکند، و همچنین چارچوب BSI AIS-31 آلمان، که الزامات آزمایش مشابهی را تعیین میکند، اشاره کرد. او استدلال کرد که تأیید سرتاسری قابل مقایسه در حال حاضر برای کیفپولهای سختافزاری وجود ندارد.
پرکوکو همچنین این بخش را با امنیت پرداخت مقایسه کرد و خاطرنشان کرد که دستگاههای ورود پین (PIN entry devices) نمیتوانند بدون آزمایش آزمایشگاهی مستقل ارسال شوند، در حالی که ماژولهای رمزنگاری دولتی ایالات متحده قبل از تأیید، نیاز به اعتبارسنجی منبع آنتروپی دارند.
همانطور که فعالیت حمله در آخر هفته ادامه داشت، کوینکایت اعلام کرد پس از تأیید آسیبپذیری، تمام محمولهها را متوقف کرده و هر دستگاه باقیمانده در تأسیسات خود را که شامل فریمور آسیبدیده بود، از بین برده است.
این شرکت با این حال به مشتریان توصیه کرد دستگاههای آسیبدیده را دور نیندازند، زیرا ممکن است در صورت بازیابی نهایی وجوه سرقت شده از طریق مراحل قانونی، اهمیت پیدا کنند. کوینکایت اضافه کرد که تیم حقوقی آن با آژانسهای اجرای قانون در چندین حوزه قضایی در صورت لزوم همکاری خواهد کرد.
بهروزرسانیهای فریمور برای هر مدل آسیبدیده از قبل منتشر شدهاند، از جمله نسخه ۴.۲.۰ برای Mk2 و Mk3، نسخه ۵.۶.۰ برای Mk4 و Mk5، نسخه ۱.۵.۰Q برای Coldcard Q، و نسخههای ۶.۶.۰X و ۶.۶.۰QX برای نسخههای Edge. طبق گفته این شرکت، نصب فریمور بهروز شده تنها ایجاد کیفپولهای آینده را اصلاح میکند و عبارتهای بازیابی تولید شده قبل از پچ را تقویت نمیکند.
به همین دلیل، به کاربرانی که تحت پوشش این هشدار هستند، دستور داده میشود که پس از بهروزرسانی دستگاههای خود، عبارتهای بازیابی کاملاً جدیدی ایجاد کنند، یک آدرس دریافتکننده را تأیید کنند، یک تراکنش آزمایشی کوچک ارسال کنند و تنها پس از تأیید موفقیتآمیز بودن انتقال، موجودی باقیمانده را منتقل (migrate) کنند.
کوینکایت گفت کیفپولهایی که با استفاده از حداقل ۵۰ رول تاس منصفانه و خصوصی ایجاد شدهاند، به تنهایی توسط نقص تولید اعداد تصادفی آسیبپذیر تلقی نمیشوند. این شرکت اضافه کرد که یک عبارت عبور (passphrase) قوی و منحصر به فرد BIP-39 یک لایه حفاظتی دیگر را فراهم میکند اما ضعف را از یک سید از قبل آسیبدیده از بین نمیبرد، به این معنی که انتقال (migration) همچنان اقدام توصیه شده است.
تحلیل جداگانه بلاکچین از گلکسی ریسرچ نشان میدهد که حملات از زمان علنی شدن آسیبپذیری ادامه داشته است.
الکس تورن (Alex Thorn)، رئیس تحقیقات در گلکسی، موج چهارم حمله هماهنگ مشکوک را در ۳ آگوست شناسایی کرد که مجموع مشاهدات این شرکت را به حدود ۱,۸۱۵.۷۵ بیتکوین در ۵,۲۹۴ آدرس قربانی بالقوه، در صورتی که هیچ یک از گروههای آدرس همپوشانی نداشته باشند، رساند. تورن این کیفپولها را "قربانیان احتمالی Coldcard" توصیف کرد و تأکید کرد که این ارقام از تحلیل بلاکچین به دست آمدهاند و نه از سوابق تأیید شده دستگاهها یا یافتههای اجرای قانون.
گلکسی همچنین گزارش داد که فعالیت حمله در آخرین موج به ۱۳.۸ sweep کیفپول در هر بلاک رسید، در مقایسه با میانگین ۰.۳ sweep در هر بلاک قبل از حادثه. این شرکت مشاهده کرد که بیشتر موجودیهای قربانیان به جای یک کیفپول جمعآوری واحد، به آدرسهای تازه ایجاد شده ارسال شدهاند، در حالی که برخی از وجوه از طریق تراکنشهای ثانویه منتقل شده بودند، که ردیابی بیتکوین سرقت شده را دشوارتر میکند.
طبق گفته گلکسی، کاربرانی که وجوه سرقت شدهشان در تراکنشهای تأیید نشده بیتکوین باقی مانده است، ممکن است همچنان فرصت محدودی برای پخش یک تراکنش جایگزین با کارمزد بالاتر قبل از تأیید انتقال اصلی توسط ماینرها داشته باشند.
با استناد به مستندات بیتکوین کور (Bitcoin Core)، شرکت تحقیقاتی اشاره کرد که Replace-by-Fee تنها زمانی قابل اقدام است که تراکنش تأیید نشده باشد و حتی زمانی که صاحب قانونی همچنان کلیدهای آسیبدیده را کنترل میکند، بازیابی را تضمین نمیکند.