התמוטטות: איך ההאקר גנב 80k ETH מגשר חור התולעת של סולאנה PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

התמוטטות: איך ההאקר גנב 80 אלף ETH מגשר חור התולעת של סולאנה

אחד הגרועים ביותר פריצות נגד הבלוקצ'יין של סולנה קרה ביום רביעי כאשר האקר הצליח להעביר 80,000 אתר (ETH), למעלה מ-214 מיליון דולר ברגע הכתיבה, ממערכת הסולנה ולתוך הבלוקצ'יין Ethereum דרך גשר חור התולעת - שירות המספק את היכולת להעביר כספים בין הבלוקצ'יין השונים.

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

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

אפוטרופוסים חתמו על העברה כוזבת

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

שומרי חור התולעת חתמו איכשהו על העברה זו של 80,000 ETH כאילו היא לגיטימית ב-100%.

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

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

"סולנה די מוזרה"

כשבודקים את היסטוריית העסקאות של ההאקר, ישנה עסקה שהגיעה ממש לפני ההטבעה של 120,000 חור התולעת ETH. בזה עסקה, ההאקר מטביע רק 0.1 חור תולעת ETH, כאילו ההאקר בודק את הפונקציה עם כמות קטנה.

בדיקה נוספת של היסטוריית העסקאות של ההאקר מגלה שההאקר אכן ביצע א לְהַפְקִיד של 0.1 ETH מאתריום לתוך סולאנה. למרות שהתוקף לא ביצע הפקדת ETH של 120,000 ETH לחוזה החכם של Wormhole ב-Ethereum, יש משהו מעניין בהפקדה הזו.

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

"סולנה די מוזרה, אז הפרמטרים האלה הם למעשה חוזים חכמים בעצמם. אבל הדבר החשוב הוא איך נוצרים חוזי "העברה של מסר". הנה ה עסקה שעשה את הודעת ההעברה של 0.1 ETH", מצייץ smartcontracts.

מי בודק את הדמקה?

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

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

בתוך "verify_signatures", תוכנית Wormhole מנסה לבדוק שהביצוע שהתרחש ממש לפני הפעלת הפונקציה הזו, היה Secp256k1 בוצעה פונקציית אימות חתימה.

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

חוזי חור התולעת השתמשו בפונקציה load_instruction_at כדי לבדוק שהפונקציה Secp256k1 נקראה תחילה, אבל הפונקציה load_instruction_at הוצאה משימוש יחסית לאחרונה מכיוון שהיא אינו בודק שהוא פועל מול כתובת המערכת בפועל!

המשחק נגמר

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

הנה כתובת המערכת המשמשת כקלט עבור ה-"verify_signatures" להפקדה לגיטימית של 0.1 ETH:

הזנת כתובת מערכת נכונה
הזנת כתובת מערכת נכונה

אבל הנה עסקת ה-"verify_signatures" עבור הפקדה מזויפת של 120k ETH:

קלט כתובת מערכת
קלט שגוי של כתובת מערכת 

זו לא כתובת המערכת!

"באמצעות תוכנית מערכת "מזויפת" זו, התוקף יכול לשקר ביעילות לגבי העובדה שתוכנית בדיקת החתימות בוצעה. החתימות לא נבדקו בכלל!", מצייץ smartcontracts.

"אחרי השלב הזה, המשחק נגמר. התוקף גרם לזה להיראות כאילו האפוטרופוסים חתמו על הפקדה של 120 אלף לחור התולעת בסולנה, למרות שלא. כל מה שהתוקף היה צריך לעשות עכשיו זה להפוך את הכסף ה"משחק" שלו לאמיתי על ידי משיכתו בחזרה לאתריום. ומשיכה אחת של 80k ETH + 10k ETH מאוחר יותר (הכל בגשר על Ethereum), הכל נעלם."

אורדום

ניוזלטר CryptoSlate

כולל סיכום של הסיפורים היומיומיים החשובים ביותר בעולם הקריפטו, DeFi, NFTs ועוד.

קבל קצה בשוק ההצפנה

גש לעוד תובנות והקשר קריפטו בכל מאמר כחבר בתשלום Edge CryptoSlate.

ניתוח ברשת

תצלומי מחיר

יותר הקשר

הצטרף עכשיו תמורת $ 19 לחודש חקור את כל היתרונות

מקור: https://cryptoslate.com/breakdown-how-the-hacker-stole-80k-eth-from-the-solana-wormhole-bridge/

בול זמן:

עוד מ CryptoSlate