זמן קריאה: 4 דקות
סיכום:
ב-7 באוקטובר 2022, היה ניצול שהשפיע על הגשר המוצלב של השרשרת הנקרא "BSC Token Hub". הבאג נמצא במאמת ההוכחה של הגשר. סך של 2 מיליון BNB נמשכו ובינאנס השהתה זמנית את רשת BSC כדי למנוע נזקים נוספים. כספים שהורדו מ-BSC מוערכים בין 100 מיליון דולר ל-110 מיליון דולר.
היכרות עם Binance Smart Chain & Token Hub Bridge:
Binance Smart Chain (BSC) היא רשת מבוססת בלוקצ'יין המשמשת להפעלת יישומים המושרשים בחוזים חכמים. BSC פועלת במקביל ל-Binance Chain (BC) המקורית של Binance, ומאפשרת למשתמשים לנצל את יכולת העסקאות המהירה של ה-BC וכן את תכונות החוזים החכמים של BSC.
- שרשרת BNB Beacon (בעבר Binance Chain) - ממשל שרשרת BNB (החזקה, הצבעה)
- BNB Smart Chain (BSC) (בעבר Binance Smart Chain) - תואם EVM, שכבות קונצנזוס, ועם רכזות לריבוי שרשרות
בדקו אותנו מאמר לקבלת פרטים נוספים.
BSC Token Hub:
BSC Token Hub הוא הגשר צולב השרשרת בין BNB Beacon Chain (BEP2) ו-BNB Chain (BEP20 או BSC). בדוק את הרשמי תיעוד של Binance לפרטים נוספים.
ניתוח והשפעה של פגיעות:
פרטי עסקת תקיפה:
כתובת האקר: 0x489a8756c18c0b8b24ec2a2b9ff3d4d447f79bec
1st Txn Hash: 0xebf83628ba893hd35b496121fb8201666b8e09f3cbadf0e269162baa72efe3b8b
2nd Txn Hash: 0x05356fd06ce56a9ec5b4eaf9c075abd740cae4c21eab1676440ab5cd2fe5c57a
חוזה BSC Token Hub: 0x0000000000000000000000000000000000001004
Hash מקורי של Txn (עם גובה בלוק של 110217401): 0x79575ff791606ef2c7d69f430d1fee1c25ef8d56275da94e6ac49c9c4cc5f433
הבאג:
BSC Token Hub משתמש בחוזה שהוקם מראש לאימות עצי IAVL(Immutable AVL) בעת ביצוע אימות עסקאות חוצות שרשרת. המנצל מינף באג בלוגיקת אימות ההוכחה והתאים להם הוכחה לגיטימית להפיכת הגשר ל-2M BNB.
נראה שהסיבה השורשית היא זו קו:
הבעיה היא ש-lpath.Right יכול להיות ללא שימוש בחישוב ה-hash השורש של העץ.
כדי לתקן זאת, הקו צריך להשתנות
מ:
```
if !bytes.Equal(derivedRoot, lpath.Right) ...
למשהו כמו:
""
ל:
```
expectedHash := lpath.Left
if len(lpath.Left) == 0 {
expectedHash = lpath.Right }
if !bytes.Equal(derivedRoot, expectedHash) ...
""
ההתקפה:
1. התוקף השתמש ב-hash של בלוק שנשלח בהצלחה שנעשה לפני שנתיים (בלוק שצוין: 2) כדי לבנות מטען כצומת עלים כדי לאמת את עץ IAVL. ניתן למצוא פרטי עסקה מקוריים של זה כאן.
2. התוקף הזריק צומת עלים המכיל כ-Key את החבילה הנוכחיתSequence וכ-Value את ה-hash של המטען הרע (כלומר, טבעת 1M BNB לכתובת שלהם). לאחר מכן הוסיפו צומת פנימי ריק לדף כדי לספק את הוכחת היישום.
3. התוקף קבע בנתיב השמאלי בתור Right ב-hash של צומת העלים שנוצר זה עתה כדי להפוך את ה-Root Hash לשווה ל-Root Hash שהוגש בהצלחה ולבסוף בנה את הוכחת המשיכה עבור הבלוק המסוים והגיש את העסקה.
4. לאחר הגשת העסקה בהצלחה וקבלת BNB $1M. התוקף חזר על הצעדים שוב וצבר 1 מיליון BNB נוסף. סך הכל הסתכם ב-2Million BNB כלומר 570 מיליון דולר.
התוקף ניסה 17 פעמים להטביע 1M BNB אך הם נכשלו 15 פעמים והוא טבע רק 2M BNB. הסיבה לכך הייתה שהייתה להם תחרות עם עסקאות חוקיות אחרות שהריצו את ה-exploitator tx באמצעות אותה packageSequence.
לאחר הניצול:
כמה שעות לאחר המתקפה, מנכ"ל Binance CZ הודיע על התקרית באמצעות ציוץ ועצר את רשת BSC כדי למנוע נזק נוסף.
כמה שעות לאחר מכן, Binance תיקן את הבעיה עם המהדורה האחרונה v1.1.15. זה חסם את זרימת הכספים של התוקפים על ידי הרשימה השחורה של כתובת התוקף.
Binance הכניס לאחרונה את כתובת התוקף ברשימה השחורה לבצע.
מצב הכספים:
נכסים שוטפים המוחזקים על ידי התוקף ברשתות שונות:
זרימת הכספים:
מקור תמונה: https://twitter.com/BeosinAlert/status/1578290676793384961/photo/1
התייחסות נוספת / קרדיט:
https://github.com/emilianobonassi/bsc-hack-analysis-2022-10-06
אבטחת Web3- צורך השעה
מדוע QuillAudits For Web3 Security?
QuillAudits מצויד היטב בכלים ומומחיות לספק פתרונות אבטחת סייבר החוסכים אובדן של מיליונים בכספים.
9 צפיות