פגיעות בקושחת Coldcard אפשרה גניבת ביטקוין ב-70 מיליון דולר תוך 41 דקות
קריטיתמה קרה
תוקף רוקן 1,196 כתובות ביטקוין תוך 41 דקות ב-30 ביולי, וגנב 1,082.65 BTC בשווי של כ-70.2 מיליון דולר. Galaxy Research מיפתה את הסריקה וקישרה אותה לפגיעות קושחה בארנק החומרה Coldcard של Coinkite.
שגיאת אינטגרציה ממרץ 2021 ניתבה את יצירת ה-seed ל-PRNG תוכנתי דטרמיניסטי (Yasmarang fallback של MicroPython) במקום ל-RNG החומרה של STM32. ה-fallback קיבל seed רק מ-UID של השבב ומרגיסטרי טיימר, בלי entropy טרי אחר כך, וסיפק בערך 40 ביט entropy אפקטיבי ב-Mk3 וכ-72 ביט בדגמים מאוחרים יותר - רחוק מ-seed תקין לפי BIP-39. תוקף שיכול להגביל את ה-UID, מצב הטיימר והיסטוריית ה-RNG הקודמת יכול לייצר offline מועמדי seed, לגזור כתובות ולהתאים אותן מול הבלוקצ'יין הציבורי.
מי מושפע
בעלי ארנקות חומרה Coldcard (מכשירי Bitcoin בלבד של Coinkite) שה-seeds שלהם נוצרו על קושחה פגיעה. גרסאות מושפעות כוללות Mk2/Mk3 4.0.0–4.1.9 (תוקן ב-4.2.0), Mk4/Mk5 לפני 5.6.0, Q לפני 1.5.0Q, ו-edge builds מקבילים.
החשיפה נקבעת לפי הקושחה שהייתה מותקנת בזמן יצירת ה-seed, לא לפי הגרסה המותקנת כיום. Coinkite מעריכה שאלפי מכשירים עשויים להיות בטווח, בהתאם לדפוסי ייצור ושימוש; TAPSIGNER, OPENDIME ו-SATSCARD משתמשים בבסיסי קוד אחרים ואינם מושפעים.
למה זה חשוב
ארנקות חומרה משווקות כסטנדרט הזהב לאחסון קר של קריפטו בעל ערך גבוה. נתיב יצירת seed דטרמיניסטי ודל-entropy הופך את ההנחה הזו למצב כשל קטסטרופלי: אפשר לרוקן כספים בהיקף רחב בלי גישה פיזית, ברגע שה-seeds משוחזרים offline.
המהירות וההיקף של הגניבה (מעל 70 מיליון דולר בפחות משעה) מדגימים איך שקיפות הבלוקצ'יין פלוס entropy חלש מאפשרים מתקפות אוטומטיות לחלוטין ובביטחון גבוה. שחזור seed ישן לקושחה מתוקנת או לארנק אחר פשוט מעביר את החולשה הלאה.
איך אפשר היה למנוע את זה
התקינו את קושחת החירום של Coinkite שיצאה ב-31 ביולי לכל דגם ומסלול מושפע. חובה לייצר seed חדש על הקושחה המתוקנת ולהעביר את המטבעות; עדכון לבדו לא מתקן seed חלש קיים.
עדיף seeds שנוצרו עם לפחות 50 הטלות קוביות הוגנות, בלתי תלויות ופרטיות. BIP-39 passphrase חזק וייחודי מוסיף שכבה, אבל Coinkite עדיין ממליצה על החלפת seed מלאה. Multisig עוזר רק אם ה-quorum לא מורכב כולו מ-Coldcards מושפעים. התייחסו לכל seed שנוצר בנתיב הפגיע כמסכן ומיגרו מיד.
מונחים מקצועיים רלוונטיים
- Hardware wallet
- מכשיר פיזי ששומר מפתחות פרטיים של מטבעות קריפטוגרפיים offline, וחותם על עסקאות בלי לחשוף את המפתחות למחשב שמחובר לאינטרנט.
- Pseudorandom number generator (PRNG)
- אלגוריתם שמייצר רצף דטרמיניסטי של מספרים שנראים אקראיים; אם הוא מקבל seed עם entropy לא מספק, הוא הופך לניתן לניבוי ופוגע באבטחה הקריפטוגרפית.
