HongCoin ICO: ניפוץ Integer Overflow ושחרור 2 מיליון דולר בחוזה חכם ישן

Article author

גלישת מספר שלם בקוד מנהל שחררה 2 מיליון דולר שנחסמו בחוזה ICO של HongCoin משנת 2016

באג גלישת מספר שלם שעמד כמעט עשור בפונקציית מנהל בחוזה ה-ICO של HongCoin ב-Ethereum נחשף לאחרונה על ידי חוקר אבטחה הידוע כ-0xflorent, ואפשר לשחרר כ-1,003.62 ETH – בממוצע כ-2 מיליון דולר – שנחסמו במשך תשע שנים. הפגם התקיים בפונקציית מנהל מוגבלת הנשלטת על ידי ארנק מרובה חתימות של HongCoin, שאפשרה שחרור מתואם של כספים עבור 48 משקיעים מקוריים. התיקון ממחיש לקחים מרכזיים בשמירת תאימות לאחור ובסיכוני זנב ארוך של באגים בחוזים חכמים מיושנים ב-DeFi ובחוזי מכירת טוקנים.


מה הייתה הפגיעות וכיצד אפשרה שחרור כספים?

בעיקרה, הפגיעות הייתה בעיית גלישת מספר שלם בפונקציית מנהל מועדפת.

0xflorent גילה כי פונקציה זו, שהייתה מוגבלת לביצוע על ידי ארנק מרובה חתימות של HongCoin, לא כללה את מנגנוני ההגנה מפני גלישת מספרים שהונהגו בגרסאות מאוחרות יותר של Solidity כתקנים מובנים. הדבר אפשר התנהגות אריתמטית בלתי צפויה, שהשתמשה בה בקפידה, אפשרה לבעלי המפתחות המנהליים לשחרר כמות משמעותית של ETH שהייתה תקועה עקב גלישה זו.

הבאג לא נוצל בפומבי באופן זדוני, אלא נותר רדום, ונעל כספים בתוך החוזה במשך תשע שנים מאז ה-ICO ב-2016. רק באמצעות גילוי ודיווח אחראי של 0xflorent, בשילוב עם תיאום עם מחזיקי הארנק מרובה החתימות של HongCoin, הוקם והוטמע מנגנון לביטול המגבלה הזו בבטחה.

מקרה זה מדגים כיצד חוזים חכמים ישנים—במיוחד אלה מתקדימים לשיפורי בטיחות בשפת התכנות כמו בדיקות גלישה מובנות ב-Solidity החל מגרסה 0.8.x—עדיין עלולים להכיל פגיעויות בלתי נראות ללא בדיקות קוד מעמיקות וסימולציות סביבה.


כיצד תיאמו וביצעו את שחרור הכספים?

בהינתן שהפונקציה הפגיע הייתה נגישה רק דרך הארנק מרובה החתימות של HongCoin, היה צורך בתהליך שיתופי.

מסלול השחרור כללה את השלבים הבאים:

  1. 0xflorent ביצע ניתוח מפורט ובדיקות לסדרת השחרור באמצעות פיצול של mainnet של Ethereum, כדי לוודא שניתן לשחזר את המניפולציה ללא סיכון לכספים חיים.
  2. לאחר אימות התהליך, חוקר האבטחה יצר קשר מאובטח עם מחזיקי הארנק והעביר ראיות והנחיות.
  3. צוות מחזיקי ה-multisig אישר וחתם על עסקאות השחרור בעצמם, תוך שמירה על ממשל תקין ושליטה רב-צדדית ברשת.
  4. בוצעו 41 עסקאות נפרדות – אחת לכל משקיע עם יתרה תקועה – כדי לשחרר ברצף כ-1,000 ETH.
  5. במקביל, שבעה מחזיקים אחרים עם יתרות קטנות יותר הצליחו לממש את כספם ישירות ללא צורך בפתרון עקיף.

יתר על כן, התוצאות הראשוניות מראות כי שני משקיעים כבר השיבו במשותף 96.5 ETH, כ-193,000 דולר, מה שממחיש גם את ההשפעה המעשית וגם את מעורבות המשקיעים.

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


מי נהנה וכמה שוחרר?

בסך הכול, כ-48 משקיעים מקוריים שרכשו טוקנים של HongCoin במהלך ה-ICO ב-2016 היו זכאים לקבל בחזרה את יתרות ה-ETH שלהם שנעצרו בזכות התיקון.

מדד ערך
סך כל ETH ששוחרר 1,003.62 ETH (~2 מיליון $)
מספר המשקיעים הזכאים 48
משקיעים שכבר השיבו כספים 2
סך כל ETH שהושב עד כה 96.5 ETH (~193,000 $)
מספר העסקאות שחתמו 41
מחזיקים עם יתרות קטנות שהוחזרו ישירות 7 מחזיקים

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

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


מדוע באגים של גלישת מספרים שלמים נשארים סיכון מתמשך בחוזים חכמים ישנים?

מקרי HongCoin מדגישים קטגוריה קלאסית של פגיעויות ששורשן בגרסאות קודמות של Solidity, בהן אריתמטיקה של מספרים שלמים – ללא בדיקות מובנות לגלישה וגלישה הפוכה (underflow) – עלולה להניב מצבים בלתי רצויים בשקט.

לפני Solidity v0.8.0 נדרשו מפתחים להשתמש בספריות חיצוניות כמו SafeMath כדי למנוע במפורש גלישות. בחוזים ישנים רבים של ICO, ההגנות האלו נעדרו או היו חלקיות. כתוצאה מכך:

  • פעולות אריתמטיות יכלו להתגלגל (לדוגמה, חיסור שגורם למספר שלילי מתחת ל-0, שנחשב כמו מספר חיובי גדול).
  • פונקציות מנהל או בעלים ששולטות במשתני יתרה היו עלולות להיות מנוצלות לשחרור או נעילת כספים שלא במכוון.
  • חוזים ישנים המופעלים על mainnet של Ethereum הם בלתי ניתנים לשינוי, ונסיכון זה נשמר לנצח.

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

תקופת Solidity הגנת גלישה נוהג נפוץ
לפני Solidity 0.8.0 חסרה כברירת מחדל שימוש ב-SafeMath או ספריות דומות
Solidity 0.8.0 ויותר בדיקות גלישה מובנות אריתמטיקה בטוחה כברירת מחדל

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


אילו לקחים אבטחתיים רחבים מעניקה התיקון של HongCoin?

מקרה גלישת המספרים הרדום לאורך זמן מחזק כמה נקודות חשובות לקהילת אבטחת Web3, בייחוד לאור המורכבות והיקף מערכות DeFi:

  • סיכוני חוזים ישנים ממשיכים: חוזים חכמים מיושנים גם משנים רבות קודם עלולים לנעול נכסים גדולים ברשת לנצח עקב באגים עדינים שלא זוהו תחילה.
  • מפתחות מנהל ו-multisig חשובים: הרשאות הנשלטות על ידי ארנקים מרובי חתימות מאפשרות מסלולי ממשל לתיקון בעיות אך מגבירות את מורכבות התיאום. עיצוב ממשל צריך להתכונן לתרחישי שדרוג או תיקון.
  • גלישות מספרים עדיין נושא רלוונטי: גם עם הגנות מודרניות של Solidity, בדיקת הנחות אריתמטיות ומקרי קצה נותרה קריטית, במיוחד בהקשר של שדרוג חוזים ישנים או הפעלה מחדש.
  • דיווח אחראי ושיתופי: החוקר 0xflorent הפגין פרקטיקה מיטבית באמצעות דיווח פרטי, אימות תיקונים ברשתות בדיקה ושיתוף פעולה עם מחזיקי ה-multisig לשחרור הוגן של כספים.
  • אמון משקיעים ושחרור כספים: שחרור כספים תקועים יכול לשקם ערך משמעותי לבעלי עניין שנפגעו שנים אחרי כן, להפחית נזק תדמיתי ולשפר אמון בקהילה.
היבט מרכזי דוגמת HongCoin פרקטיקה מיטבית כללית
סוג הפגיעות גלישת מספר שלם בפונקציית מנהל ביקורות קוד מקיפות, שימוש ב-SafeMath
גישת השחרור תיאום multisig ואימות ברשת בדיקה שליטה רב-צדדית; הטמעה מדורגת ובקרה
השפעה על משקיעים 2 מיליון דולר שוחררו ל-48 משקיעים תקשורת שקופה והחזרים
פוטנציאל סיכון ישן כספים נעולים 9 שנים ניטור מתמשך, ביקורות חוזים ישנים

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


תובנה של Soken: “גלישות מספרי שלמים בחוזים חכמים ישנים הן אתגר אבטחה מתמשך. בביקורות שלנו לעיתים קרובות נתקל בדפוסים ישנים שבהם מנגנוני בטיחות מובנים בשפה היו חסרים, ויצרו סיכונים לטנטיים. תיקון מתואם – במיוחד בחוזים הנשלטים על ידי ארנקים מרובי חתימות – דורש איזון עדין בין דיוק טכני לממשל בעלי עניין. הפינוי ב-HongCoin ממחיש כיצד דיווח אתי בשילוב ממשל מאפשר שחרור ערך תקוע שנים אחרי ההשקה.”


סיכום: שחרור ערך ישן באמצעות ערנות טכנית וממשל

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

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

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

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


source_name: a leading crypto outlet: Whitehat developer unlocks $2 million stuck in a 2016 Ethereum ICO contract for nine years

Frequently Asked Questions

מה גרם ל-2 מיליון הדולר להיתקע בחוזה ה-HongCoin ICO?

בעיה של integer overflow בפונקציית מנהל מוגבלת בחוזה ה-ICO של HongCoin מ-2016 מנעה העברת כספים, ונעצרו כ-1,003.62 ETH (כ-2 מיליון דולר) למשך תשע שנים.

איך אותרה ונוצלה בפועל פגיעות ה-integer overflow באופן מבוקר?

חוקר אבטחה 0xflorent זיהה את ה-overflow בפונקציית מנהל המוגבלת בארנק multi-signature, ושיחזר כספים נעולים באמצעות ביצוע multisig מתואם, מבלי לפגוע בבעלי עניין אחרים.

איזה לקחי ביטחון חוזים חכמים מחדד האירוע של HongCoin?

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

מדוע פגיעויות legacy בחוזים חכמים חשובות בעולם DeFi?

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

איזו חשיבות היה לארנק multisignature בשחזור הכספים?

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

Article author

Frequently Asked Questions

מה גרם ל-2 מיליון הדולר להיתקע בחוזה ה-HongCoin ICO?

בעיה של integer overflow בפונקציית מנהל מוגבלת בחוזה ה-ICO של HongCoin מ-2016 מנעה העברת כספים, ונעצרו כ-1,003.62 ETH (כ-2 מיליון דולר) למשך תשע שנים.

איך אותרה ונוצלה בפועל פגיעות ה-integer overflow באופן מבוקר?

חוקר אבטחה 0xflorent זיהה את ה-overflow בפונקציית מנהל המוגבלת בארנק multi-signature, ושיחזר כספים נעולים באמצעות ביצוע multisig מתואם, מבלי לפגוע בבעלי עניין אחרים.

איזה לקחי ביטחון חוזים חכמים מחדד האירוע של HongCoin?

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

מדוע פגיעויות legacy בחוזים חכמים חשובות בעולם DeFi?

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

איזו חשיבות היה לארנק multisignature בשחזור הכספים?

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

צ׳אט