פריצת Wintermute שוכפלה במחשב נייד פשוט תוך פחות מ-48 שעות על ידי ניצול פגם ניבולי פה

Amber Group, ספקית טכנולוגיית בלוקצ'יין, שיכפלה את פריצת Wintermute תוך פחות מ-48 שעות באמצעות מחשב נייד בסיסי. דו"ח של קבוצת אמבר קבע,

"השתמשנו ב-Macbook M1 עם 16GB RAM כדי לחשב מראש מערך נתונים בפחות מ 10 שעות… סיימנו את היישום והצלחנו לפצח את המפתח הפרטי של 0x0000000fe6a514a32abdcdfcc076c85243de899b תוך פחות מ-48 שעות."

אל האני לפרוץ יוחס לכתובות יהירות שנוצרו עם הכלי גס, המאפשר למשתמשים ליצור כתובות אתרים ספציפיות עם תווים מסוימים. במקרה של Wintermute, הכתובת הכילה שבעה אפסים מובילים. כתובות יהירות מאפשרות לחשבונות להיות בעלי תווים דומים מה שמקל על זיהוי הכתובות הציבוריות בבלוקצ'יין.

השפעה נוספת של כתובת Ethereum עם מספר אפסים מובילים היא הפחתה בעמלות הגז בשל השטח המופחת הדרוש לאחסון המידע בבלוקצ'יין. עם זאת, הסרת אלמנט של אקראיות מהתהליך ההצפנה המשמש ליצירת הכתובת באה במחיר של אבטחה מופחתת.

ניתוח ראשוני הצביע על כך שייקח 1,000 GPUs רק 50 יום ליצור כל מפתח פרטי אפשרי עבור כתובות שמתחילות בשבעה אפסים מובילים. עם זאת, Amber Group טוענת כעת שניתן להשיג זאת באמצעות מחשב נייד בודד בלבד תוך פחות מ-48 שעות.

ההצפנה הסבירה

ניבולי פה הוא כלי ליצירת כתובות עבור המערכת האקולוגית של Ethereum. ניתן להוריד את בסיס הקוד בקלות מ-GitHub והוא זמין מאז 2017. עם זאת, גרסת הקוד הנוכחית כוללת אזהרה המייעצת מפני השימוש בכלי. יוצר הכלי, ג'וגוס, הוסיף את ההודעה הבאה לקובץ readme.md ב-15 בספטמבר 2022.

"אני ממליץ בחום שלא להשתמש בכלי הזה במצבו הנוכחי. מאגר זה יעודכן בקרוב במידע נוסף בנוגע לנושא קריטי זה."

יתר על כן, קבצי ליבה בינאריים הוסרו כדי למנוע מהמשתמשים להיות מסוגלים להרכיב את בסיס הקוד "כדי למנוע שימוש לא בטוח נוסף בכלי זה."

הגנאי משתמש ב"כוח GPU עם OpenCL באמצעות אלגוריתם פשוט" מקומי כדי ליצור מפתחות פרטיים וציבוריים של Ethereum עד שהוא מוצא כתובת התואמת את הכללים שנקבעו על ידי המשתמש. לדוגמה, אם משתמש מעוניין ליצור כתובת Ethereum המסתיימת ב-'AAA', הוא ימשיך לעבוד עד שהוא יפיק כתובת עם התווים הללו כסיומת.

כאשר נוצרת כתובת שאינה תואמת את התנאים המפורטים בערכת הכללים, ניבול פה "מוסיפה 1 למפתח הפרטי ומפיקה כתובת Ethereum חדשה עד שהיא מוצאת את האחת שתואמת את הכללים."

כתובות Ethereum נוצרות בדרך כלל באופן מקומי באמצעות קריפטוגרפיה של עקומה אליפטית. בעת יצירת כתובת Ethereum, אין חישוב כדי לבדוק אם המפתח הפרטי שימש בעבר עבור כתובת אחרת. עם זאת, זה נובע מהמספר העצום של כתובות Ethereum אפשריות.

הסרטון הזה מסביר את הגודל האמיתי של הצפנת 256 ביט משמש בהצפנה של Ethereum. השוואה פשוטה יכולה להתבצע גם בכך שיש בערך 2^76 גרגרי חול בעולם אבל 2^160 כתובות Ethereum אפשריות.

עם זאת, כאשר כל התווים של כתובות Ethereum נקבעים מראש, החישוב ליצירת המפתח הפרטי הופך לפשוט יותר באופן משמעותי, ומספר הכתובות האפשריות מצטמצם באופן דרמטי.

הניצול

Amber Grouped הסבירה כי הפגם של שיטת הגסות נובע משימוש בסיד של 32 סיביות ליצירת כתובות.

"כדי ליצור מפתח פרטי אקראי, ניבולי פה משתמשת תחילה במכשיר האקראי כדי ליצור סיד. אבל למרבה הצער, ה-Seed הוא 32-bit, אשר לא יכול לשמש כמפתח פרטי ישירות."

הזרע של 32 סיביות מוזן דרך מחולל מספרים פסאודו-אקראיים (PRNG) המשתמש בפונקציה דטרמיניסטית. שיטת PRNG זו מביאה לדרך פשוטה לקבוע את כל זרעי המפתח הציבורי הבריאים המשמשים בתוך ניבול פה.

"מכיוון שיש רק 2^32 זוגות מפתח ראשוניים אפשריים (d_0,0, Q_0,0) והאיטרציה בכל סיבוב היא הפיכה, אפשר לפצח את המפתח הפרטי מכל מפתח ציבורי שנוצר על ידי גסויות."

השיטה שבה השתמשה Amber Group הייתה לרכוש את המפתח הציבורי של הכתובת, לחשב מראש את המפתחות הציבוריים האפשריים של גסויות, לחשב את המפתחות הציבוריים באמצעות OpenCL, להשוות את המפתחות הציבוריים המחושבים, ולאחר מכן לשחזר את המפתח הפרטי ברגע שנמצא התאמה.

בשל פשטות השיטה, Amber Group ממליצה כי "הכספים שלך אינם בטוחים אם הכתובת שלך נוצרה על ידי ניבול פה."

אמבר גרופ סיפרה CryptoSlate שביחס לשאלה אם יש צורך באלגוריתם קריפטוגרפי טוב יותר, "התשובה היא ברור שכן... התעשייה יכולה לראות עד כמה סוג זה של עיצוב פגיע."

מקור: https://cryptoslate.com/wintermute-hack-replicated-on-simple-laptop-in-under-48-hours-by-exploiting-profanity-flaw/