זמן קריאה: 5 דקות
מאז שהחלה DeFi להרקיע שחקים, גל חדש של התקפות חוזים חכמים שהוביל לאובדן של מאות מיליוני דולרים. ברור מנתוני הפריצה העולים שאבטחה היא קריטית עבור חוזים חכמים.
ניתן למנוע את מרבית הפגיעות בשלב הפיתוח של חוזים אם יש לפעול לפי השיטות המומלצות. פרויקטי DeFi ממהרים לפעמים לצאת לשוק, מה שהופך את האבטחה לעדיפות שנייה. יש הבדל בין מפתחים בשלב מוקדם למפתחים מנוסים. מפתח ותיק מכיר את שיטות האבטחה הטובות ביותר, הכלים והידע על נקודות תורפה נפוצות ויכול לזהות בעיות אבטחה בשלב מוקדם של הפיתוח.
חוזים חכמים הם הייצוג הדיגיטלי של הסכמים חוזיים בקוד. ביצוע הקוד הזה מאומת ומופץ בעזרת צמתי רשת ברשת בלוקצ'יין.
במאמר זה נסקור את הגורם האנושי מאחורי האבטחה והפרטיות של חוזים חכמים וננתח מדוע מפתחים עדיין נחשבים ל"חוליה החלשה ביותר".
מהן פגיעויות בחוזה חכם
מכיוון שחוזים חכמים פועלים ברשתות מבוזרות וחסרות הרשאה, זה גורם לפגיעות עקב כשל בביצוע חוזים חכמים. מכיוון שהכספים נעולים בחוזים אלו, זה הופך למטרה אטרקטיבית מאוד עבור האקרים, ותקיפה מוצלחת עלולה להוביל האקרים לברוח עם הכספים ישירות מהחוזים.
כמה פגיעויות נפוצות בחוזים חכמים מבוססי EVM כוללים כניסה מחדש, הצפת מספרים שלמים ובקרת גישה בלתי מוגבלת. כדי לנצל חוזה עם הכניסה החוזרת, מתבצעת קריאה לחוזה החיצוני; לאחר מכן הוא מפעיל התקשרות חוזרת של נכנסת. פעולות ברמה נמוכה כמו "שלח", "העברה" ו"התקשר" מדאיגות, וזה עלול להוביל לפרצות אם חריגים לא יטופלו בזהירות.
חידושים בתחום הבלוקצ'יין מתפתחים ללא הרף, מה שמביא לליקויים עיצוביים בחוזים חכמים. מפתחים הבונים יישומים מבוזרים צריכים להתמודד עם עדכונים בפלטפורמות שעליהן הם עובדים. לכן, פגמי תוכנה נפוצים כמו בקרת גישה, חישוב שגוי, מצב מרוץ ועוד כמה אחרים עשויים להתעצם בפלטפורמות הבלוקצ'יין.
כלי אבטחת חוזים חכמים
שיטות עבודה שונות אומצו ברמות שונות של מחזור החיים של פיתוח חוזים חכמים כדי להבטיח ולשפר את האבטחה של חוזים חכמים.
כלים חכמים לבדיקת חוזים: פותחו מספר כלים כדי לנתח את קוד המקור של החוזה ולסרוק בעיות אבטחה ידועות כגון כניסה מחדש, הצפת יתר וכו'. חלק מהכלים הנפוצים ביותר הם Oyente, Maian, MadMax ו-Vandal.
סביבות פיתוח ובדיקה: כמהין היא מסגרת הפיתוח הפופולרית עבור חוזים חכמים. מפתחים יכולים לכתוב מבחני יחידה ואינטגרציה עם זה. Hardhat היא סביבת פיתוח נוספת המסייעת בהפעלת בדיקות, בדיקת קוד לאיתור טעויות ואינטראקציה עם חוזים חכמים; הוא פועל על רשת פיתוח. זה מקל על תוספים לכסות את הקוד, למדוד גז בשימוש ליחידה, אימות אוטומטי של חוזים ב-Etherscan וכו'. הרמיקס הוא חבילה נוספת עבור מפתחים; הוא נמצא בשימוש נרחב בשל IDE של הדפדפן התומך בבדיקות, פיתוח ופריסה של חוזים חכמים.
ביקורת קוד: ביקורת חוזים חכמים עוזרת להפחית סיכונים הקשורים ל-dAapp. עדיף לבצע ביקורות חוזים חכמות כאשר החוזים נמצאים בשלב הבדיקות. כמה כלים המשמשים לביקורת הם סוריה, מיתריל, ו-MythX. בעוד שביקורת אוטומטית אינה מספיקה כדי להפחית סיכונים הקשורים בחוזים, מומלץ לבצע ביקורות ידניות של צד שלישי מחברה אמינה כמו QuillAudits. במהלך ביקורת, נקודות תורפה מתגלות בשלוש דרכים עיקריות:
- כולל חילוץ מקוד זדוני וביצוע התאמה סמנטית בקוד המקור;
- בעקבות גישה מתמטית לאימות שלמות המערכת, כאן המבקר בוחן כל מבחן קלט אפשרי מול כל מקרי הבדיקה הפוטנציאליים שעלולים לקרות;
- יצירת גרף זרימת בקרה עם יחידות לוגיות של החוזה שבאמצעותן המבקר חוצה את כל נתיבי הקוד כדי לבדוק פגמים לוגיים בתכנון
פיתוח חוזה חכם מאובטח
אם נסתכל מקרוב על ניצול החוזים החכמים האחרונים, מספר גדול יותר של פגיעויות התרחש בגלל טעויות של מפתחים. לכן, הימנעות מפרצות בחוזים חכמים פירושה פיתוח מאובטח של חוזים חכמים תוך שמירה על המשתמשים במהלך מחזור חיי הפיתוח. מפתחים רבים בשלב מוקדם אינם רואים באבטחה את הגורם העיקרי וחסרים מודעות הקשורה למשאבים ולכלים לאבטחת חוזים חכמים.
תובנות אבטחת חוזים חכמים
רוב המפתחים אינם שומרים על אבטחה בראש סדר העדיפויות בעת פיתוח חוזים חכמים מכיוון:
- הם מתבקשים להעביר את הפרויקט בהקדם האפשרי. לכן האבטחה הופכת למשנית
- לפעמים פרויקטים מזלג פרויקטים פופולריים אחרים
- מישהו מהצוות עורך את הביקורת
מלבד זאת, בדרך כלל אנו שומעים מפתחים אומרים שלסולידיטי יש כמה מגבלות מובנות לשמירה על האבטחה. זה שונה מהשפה המרכזית מכיוון שפונקציות אינן מוגדרות במפורש. ישנם גם קשיים בביצוע המניפולציות הנכונות של המחרוזות והמערך מכיוון שלסולידיטי אין תמיכה ישירה בשפה/ספרייה.
צעדים שמפתחים נוקטים לאבטחת חוזים חכמים.
מפתחים שאכפת להם מאבטחת חוזים חכמים נוקטים בשיטות שונות בשלב הפיתוח כדי להפחית סיכונים, כגון:
- קריאה בין שורות הקוד וחשיבה מנקודת מבטו של התוקף.
- ציור תרשים זרימה כדי לנתח את זרימת המידע ולהסתכל על הנקודות שבהן קיימות אפשרויות נפילה; לכן, ייצוג גרפי יכול לפתור בעיות לוגיות רבות.
- שימוש בכלי אבטחת חוזים חכמים, שאת חלקם הזכרנו קודם
כמה מגבלות של כלי אבטחת החוזה החכם אינן טריוויאליות, שכן לאחר פריסת החוזה, עליך לכתוב בנאי ולאחר מכן לבדוק את החוזה. מלבד זאת, שום כלי לא יכול להשתלב בתהליך הפיתוח; אתה צריך לכתוב קוד ב-IDE ולאחר מכן להשתמש בכלי אחר כדי לבדוק אותו. למפתחים יהיה קל לבדוק את הקוד על המהדר במקום להשתמש בכל כלי אחר.
ראינו גם שמפתחים עם ידע קודם על חוזים חכמים וביקורת נוטים לסקור את הקוד טוב יותר ויש להם יותר מודעות לגבי שיטות האבטחה הטובות ביותר. זה גם עוזר למנוע פגיעויות ידועות בחוזה. מפתחים חדשים רבים מזלזלים באבטחה ואינם רואים בה בראש סדר העדיפויות מכיוון שהם לרוב פורסים את הפרויקטים שלהם ברשתות בדיקה שבהן לבאגים ולפרצות בחוזים אין השפעה ממשית.
סיכום
תפיסות ונהלי האבטחה של מפתחי חוזים חכמים מסתמכים בעיקר על ביקורות חיצוניות כדי להבטיח את אבטחת הפרויקטים שלהם. מכיוון שהם מעריכים את האבטחה באופן ידני ולעיתים קרובות חסרים משאבים וכלים. עם העלייה האחרונה בפרויקטים של DeFi והתקפות אבטחה נלוות, מפתחים מתחילים צריכים לקבל את התמיכה בכלים כדי להפחית את הסיכונים מראש.
14 צפיות
- הפצת תוכן ויחסי ציבור מופעל על ידי SEO. קבל הגברה היום.
- Platoblockchain. Web3 Metaverse Intelligence. ידע מוגבר. גישה כאן.
- מקור: https://blog.quillhash.com/2023/01/13/analysis-of-smart-contract-security-practices-by-developers/
- a
- אודות
- גישה
- מאומץ
- לאחר
- נגד
- הסכמים
- תעשיות
- אנליזה
- לנתח
- ו
- אחר
- בנפרד
- יישומים
- גישה
- מערך
- מאמר
- אסיסטים
- המשויך
- תוקפים
- המתקפות
- מושך
- בדיקה
- ביקורת
- ביקורת
- אוטומטי
- באופן אוטומטי
- הימנעות
- מודעות
- כי
- הופך להיות
- מאחור
- הטוב ביותר
- שיטות עבודה מומלצות
- מוטב
- בֵּין
- blockchain
- רשת Blockchain
- שטח בלוקצ'יין
- דפדפן
- באגים
- בִּניָן
- שיחה
- אשר
- לשאת
- נושאת
- מקרים
- גורמים
- בזהירות
- תרשים
- בדיקה
- ברור
- מקרוב
- קוד
- Common
- מצב
- מנצח
- לשקול
- נחשב
- חוזה
- חוזים
- לִשְׁלוֹט
- לכסות
- יוצרים
- קריטי
- עסקה
- מבוזר
- יישומים מבוזרים
- DeFi
- פרויקטים של Defi
- למסור
- לפרוס
- פריסה
- עיצוב
- זוהה
- מפותח
- מפתח
- מפתחים
- מתפתח
- צעצועי התפתחות
- הבדל
- אחר
- קשיים
- דיגיטלי
- ישיר
- ישירות
- מופץ
- עושה
- דולר
- בְּמַהֲלָך
- מוקדם
- בשלב מוקדם
- יצא
- לְהַבטִיחַ
- סביבה
- סביבות
- וכו '
- אתרסקאן
- מתפתח
- בחינות
- הוצאת להורג
- מנוסה
- לנצל
- מעללים
- חיצוני
- מקל
- כשלון
- תכונות
- דמויות
- פירמה
- פגמים
- תזרים
- לעקוב
- בעקבות
- הבא
- מזלג
- מסגרת
- החל מ-
- פונקציות
- כספים
- גז
- גרף
- לפרוץ
- האקרים
- לקרות
- יש
- לעזור
- עוזר
- כאן
- מכה
- HTML
- HTTPS
- בן אנוש
- מאות
- מאות מיליונים
- לזהות
- פְּגִיעָה
- in
- לכלול
- מידע
- הטמון
- קלט
- משולב
- השתלבות
- אינטראקציה
- מעורר
- בעיות
- IT
- שמור
- שמירה
- ידע
- ידוע
- חוסר
- שפה
- גדול יותר
- עוֹפֶרֶת
- מוביל
- רמות
- החיים
- מגבלות
- קווים
- נעול
- נראה
- פרצות
- את
- עשוי
- ראשי
- זרם מרכזי
- עשייה
- מדריך ל
- באופן ידני
- רב
- שוק
- תואם
- מתימטי
- אומר
- למדוד
- מוּזְכָּר
- שיטות
- יכול
- מיליונים
- אכפת לי
- טעויות
- להקל
- יותר
- רוב
- צורך
- רשת
- רשתות
- חדש
- צמתים
- טירון
- מספר
- התרחשה
- תפעול
- אחר
- אחרים
- פרספקטיבה
- שלב
- פלטפורמות
- אפלטון
- מודיעין אפלטון
- אפלטון נתונים
- תוספים
- נקודות
- פופולרי
- אפשרויות
- אפשרי
- פוטנציאל
- פרקטיקות
- עָדִיף
- קודם
- עדיפות
- פְּרָטִיוּת
- תהליך
- פּרוֹיֶקט
- פרויקטים
- תָקִין
- קווילהש
- גזע
- ממשי
- לאחרונה
- להפחית
- קָשׁוּר
- Remix
- נציגות
- משאבים
- תוצאות
- סקירה
- לעלות
- עולה
- סיכונים
- הפעלה
- ריצה
- סריקה
- מְתוּבָּל
- שְׁנִיָה
- לבטח
- אבטחה
- כמה
- חכם
- חוזה חכם
- אבטחת חוזים חכמה
- חוזים חכמים
- תוכנה
- מוּצָקוּת
- לפתור
- כמה
- מָקוֹר
- קוד מקור
- מֶרחָב
- התמחות
- החל
- עוד
- בהצלחה
- כזה
- מספיק
- מערכת
- תמיכה
- תומך
- לקחת
- יעד
- נבחרת
- מבחן
- בדיקות
- בדיקות
- השמיים
- שֶׁלָהֶם
- לכן
- חושב
- צד שלישי
- שְׁלוֹשָׁה
- דרך
- זמן
- ל
- כלי
- כלים
- חלק עליון
- אמין
- יחידה
- יחידות
- עדכונים
- להשתמש
- משתמשים
- בְּדֶרֶך כְּלַל
- שונים
- מְאוּמָת
- לאמת
- פגיעויות
- גל
- דרכים
- אשר
- בזמן
- מי
- באופן נרחב
- יצטרך
- עובד
- לכתוב
- לכתוב קוד
- אתה
- זפירנט