كيف مرّ خطأ في كود كولدكارد دون اكتشافه لسنوات، مما أدى إلى اختراق أموال بقيمة 100 مليون دولار

اتبع جوناثان غودمان كل القواعد المعروفة للحفاظ على أمان عملاته الرقمية. محفظة الأجهزة التي تحتفظ بمفاتيحه، وهي من نوع كولدكارد، لم تتصل بالإنترنت أبدًا. وكان يحتفظ بها في صندوق أمانات بنكي. أما عبارة الاسترداد السرية، التي لم يشاركها مع أي شخص، فكانت محفوظة في صندوق أمانات ثانٍ. لكن في 29 يوليو، قال غودمان إن كل محافظه أُفرغت وسُرقت كل عملة، حتى أصغر جزء منها. وأفاد رجل الأعمال من تورونتو بخسارته 18.25 بيتكوين، بقيمة تزيد قليلًا عن 1.17 مليون دولار وقت الهجوم.
“ربما أصعب جزء في هذا الأمر هو أنني فعلت كل شيء بشكل صحيح”، هكذا كتب في منشور له على منصة إكس في 1 أغسطس.
خسارة غودمان كانت جزءًا من اختراق أكبر بكثير أثر على آلاف مستخدمي محافظ كولدكارد. وقالت شركة جالاكسي ريسيرش إن لديها ثقة عالية بأن 1,596 بيتكوين، بقيمة تتجاوز 100 مليون دولار، سُرقت من حوالي 7,300 عنوان في سلسلة هجمات. وقدّر أليكس ثورن، رئيس قسم الأبحاث في جالاكسي، في 4 أغسطس أن 15 مهاجمًا مختلفًا على الأقل استغلوا هذا الخلل. ولم يحتج أي منهم إلى الوصول الفعلي إلى الجهاز.
الفكرة الأساسية لأمان محفظة الأجهزة هي أن أسرارها لا تغادر الشريحة الإلكترونية أبدًا. وبدون اتصال بالإنترنت، لا يوجد سبيل للدخول سوى الوصول المادي إلى الجهاز. وعلى الرغم من أن الطبيعة المادية لمحفظة الأجهزة تحمل مخاطر خاصة بها للمستخدمين، مثل فقدان الجهاز أو التعرض لسرقته بالإكراه، إلا أن نقطة بيعها الرئيسية هي أنها آمنة من المتسللين والمخاطر الإلكترونية الأخرى.
لكن في حالة كولدكارد، لم يتحقق هذا الوعد الأمني. فالثغرة لم تكن في المحفظة نفسها، بل في الطريقة التي تم بها توليد عبارة الاسترداد السرية التي تحمي عملات المستخدمين.
أساسيات المحافظ الرقمية
تأتي محافظ البيتكوين بأشكال مختلفة. فالمحافظ البرمجية، وتسمى أيضًا “المحافظ الساخنة”، تعمل على جهاز متصل بالإنترنت، مما يجعلها سهلة الاستخدام ولكنها معرضة للخطر إذا تم اختراق الجهاز.
أما محافظ الأجهزة، أو “المحافظ الباردة”، مثل كولدكارد، فتحتفظ بالمفاتيح على جهاز منفصل غير متصل بالإنترنت. ومن أقدم أشكال المحافظ الباردة ما يسمى “المحافظ الورقية”، حيث يكتب المستخدمون المفاتيح اللازمة للوصول إلى محافظهم على قطعة من الورق. ورغم أنها آمنة من المتسللين، إلا أن هذه المحافظ حملت خطرًا كبيرًا للتلف أو الضياع.
العشوائية أمر حيوي لأن المحفظة الجديدة يجب أن تختار عبارة سرية من عدد هائل من القيم المحتملة. وتُقاس عدم قابلية التنبؤ بهذا الاختيار بوحدات تسمى “إنتروبيا”، والتي تشير إلى درجة عدم القدرة على التوقع. كل بت إضافي يضاعف عدد الاحتمالات، مما يجعل تخمين العبارة السرية أصعب.
كان من المفترض أن تحصل كولدكارد على هذه العشوائية من مولّد أجهزة مخصص داخل الجهاز. ولكن بدلًا من ذلك، أدى خطأ في الإعدادات إلى توجيه المحفظة إلى مولّد برمجي أبسط يستخدم معلومات مثل بيانات الجهاز والتوقيت.
هذه المعلومات ليست عشوائية تمامًا، لذا يمكن تضييق نطاقها أو إعادة إنتاجها، مما يقلل بشكل حاد من عدد العبارات السرية التي يحتاج المهاجم لاختبارها.
ببساطة، كان من المفترض أن يختار رمز كولدكارد سر كل محفظة من مجموعة احتمالات واسعة جدًا لدرجة أنه لا يمكن لأي جهاز كمبيوتر تجربتها كلها. وبدلًا من ذلك، أدى خطأ في التوصيل إلى توجيهه إلى مصدر أصغر وأضعف، مما صغّر المجموعة بما يكفي ليتمكن المهاجم من العمل من خلالها.
أين وقع الخطأ؟
يعود الخطأ إلى كيفية تواصل قطعتين من البرمجيات لقراءة إعداد معين، وفقًا لفريق هندسة وأمن البيتكوين في شركة بلوك. كان الإعداد يهدف إلى إيقاف تشغيل مصدر واحد للأرقام العشوائية بعد أن أضافت كولدكارد مصدرًا آخر. لكن برنامج “ليب نج يو” تحقق فقط من وجود الإعداد، وليس ما إذا كان مفعلًا أم معطلًا. لذلك تم بناء البرنامج الثابت بشكل طبيعي بينما كان يستخدم المولّد الخاطئ.
قالت بلوك إن أجهزة الجيل الثاني (Mk2) والجيل الثالث (Mk3) المتأثرة لم تتلق أي عشوائية آمنة من خلال تلك العملية. أما أجهزة الجيل الرابع (Mk4) والجيل الخامس (Mk5) ونوع “كيو” (Q)، فقد تلقت بعض العشوائية، لكن البرنامج احتفظ بجزء صغير فقط منها.
تقدر شركة كوينكايت، الشركة المصنعة لكولدكارد، أن تلك الأجهزة الأحدث أنتجت عبارات سرية بقوة 72 بتًا من العشوائية بدلًا من 128 بتًا المطلوبة. وهذا يترك عددًا أقل من الاحتمالات بنحو 72 كوادريليون مرة.
تتبعت بلوك الكود الضعيف إلى إصدار البرنامج الثابت 4.0.0، الذي صدر في 17 مارس 2021. وتحدد كوينكايت الإصدار 4.0.1 كأول إصدار متأثر لمستخدمي الجيل الثاني والثالث.
كان الكود المصدري متاحًا للجمهور، وكان مولّد الأجهزة الصحيح موجودًا في البرنامج الثابت النهائي. وأكد المراجعون أن المكوّن موجود لكنهم فشلوا في متابعة عملية توليد العبارة السرية من البداية إلى النهاية وتحديد المولّد الذي استخدمه الجهاز فعليًا.
وقالت الشركة إن المراجعات المدعومة بالذكاء الاصطناعي التي أجرتها قبل السرقة فاتها الخطأ أيضًا. وحتى الاختبارات التي استخدمت عدة نماذج ذكاء اصطناعي رائدة بعد الحادثة فشلت في تحديده.
وعدت كوينكايت بنشر تقرير أكثر تفصيلًا عن هذا الفشل. وأكدت أنها تدعم العملاء المتأثرين مباشرة. ولم تستجب الشركة لطلب التعليق من كوين ديسك.
أصدرت كوينكايت برنامجًا ثابتًا مُصلحًا لجميع طرازات كولدكارد المتأثرة ومسارات الإصدارات. التحديث يصلح توليد العبارات السرية في المستقبل ولكنه لا يقوّي العبارات التي تم إنشاؤها بالفعل باستخدام البرنامج الضعيف.
وفقًا لإرشادات كوينكايت، يجب على المستخدمين المتأثرين تثبيت البرنامج الثابت المُصحح، وإنشاء عبارة سرية جديدة، ونقل عملاتهم إلى عناوين مشتقة من تلك العبارة الجديدة.
نوع مختلف من مخاطر الطرف المقابل
بُنيت كولدكارد على فكرة أن مستخدمي البيتكوين يمكنهم الاستغناء عن الوسطاء وتقليل عدد الأطراف التي يحتاجون إلى الوثوق بها. هذه الحادثة لا تعيد الثقة في بورصة أو بنك كطرف مقابل، ولكنها تُظهر أن الحفظ الذاتي يستبدل الاعتماد بشكل مختلف: المستخدمون يحتفظون بالمفاتيح، لكن الشركة المصنعة للمحفظة لا تزال تحدد ما إذا كانت هذه المفاتيح قد أُنشئت بشكل آمن أم لا.
مفاتيح كنز جوناثان غودمان الذي تبلغ قيمته مليون دولار من البيتكوين كانت في صندوق أمانات، داخل جهاز لم يتصل بالإنترنت أبدًا. ولكن بسبب الخلل في برنامج توليد العبارات السرية في كولدكارد، لم يكن لجهود غودمان في حماية ثروته ماديًا أي تأثير.
الأسئلة الشائعة
س: كيف يمكن أن تُسرق عملاتي الرقمية من محفظة أجهزة لم تتصل بالإنترنت أبدًا؟
ج: الخلل لم يكن في اتصال المحفظة بالإنترنت، بل في طريقة توليد العبارة السرية داخل الجهاز. بسبب خطأ برمجي، استخدمت المحفظة مولّد أرقام عشوائية أضعف من المفترض، مما سمح للمهاجمين بتخمين العبارات السرية واختراق المحافظ عن بُعد دون الحاجة إلى لمس الجهاز.
س: كيف أعرف إذا كانت محفظة كولدكارد الخاصة بي متأثرة؟
ج: يجب على مستخدمي أجهزة الجيل الثاني والثالث الذين حصلوا على أجهزتهم بعد إصدار البرنامج الثابت 4.0.1 اعتبار محافظهم معرضة للخطر. حتى أجهزة الجيل الرابع والخامس ونوع “كيو” الأحدث تأثرت بدرجة أقل. الأفضل هو تحديث البرنامج الثابت إلى أحدث إصدار مُصلح وإنشاء عبارة سرية جديدة فورًا.
س: ماذا أفعل إذا كنت أستخدم كولدكارد لحماية عملاتي؟
ج: يجب عليك أولًا تحديث البرنامج الثابت لمحفظتك إلى الإصدار المُصلح، ثم إنشاء عبارة سرية جديدة تمامًا، ونقل جميع عملاتك إلى عناوين جديدة مشتقة من تلك العبارة الجديدة. لا تقم بتحويل أي أموال قبل تثبيت التحديث، وتأكد من أنك تستخدم إعدادات وإجراءات آمنة أثناء العملية.












