דוח ביקורת Snap MetaMask עבור Tezos

תקציר ניהול

Tezos יצרה קשר עם Sayfer Security על מנת לבצע ביקורת אבטחה על Tezos MetaMask Snap.

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

במהלך תקופת המחקר של שבועיים, גילינו 2 ממצאים במערכת.

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

פגיעויות לפי סיכון

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

חומרה
# בעיות
גָבוֹהַ
0
בינוני
0
נמוך
1
מידע
3

גישה

מבוא

Tezos יצר קשר עם Sayfer כדי לבצע בדיקות חדירה באפליקציית Tezos MetaMask Snap.

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

מחזור החיים של פרויקט בדיקת החדירה שלנו:

01

סקירת היקף

02

סקירה טכנית

03

אימות היקף

04

מודל איומים

05

הערכת אבטחה

06

הערכת אבטחה

סקירת היקף

במהלך הפגישה הראשונה שלנו ולאחר הבנת צרכי החברה, הגדרנו את היקף האפליקציה השוכן בכתובות ה-URL הבאות כהיקף הפרויקט:

  • Tezos MetaMask Snap

בצע חשיש: 0e0d653b85cbd11365771ad9c2ee5726b10a7d26

אל תיתן לזה להיות מאוחר מדי!

התחל את הביקורת שלך עם Sayfer

אימות היקף

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

מודל איומים

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

הגדרנו שהאיום הגדול ביותר כיום על המערכת הוא מידע משתמש רגיש.

אל תיתן לזה להיות מאוחר מדי!

התחל את הביקורת שלך עם Sayfer

מתודולוגיית הערכת אבטחה

סייפר משתמש OWASP WSTG כסטנדרט הטכני שלנו בעת סקירת יישומי אינטרנט. לאחר הבנה מעמיקה של המערכת החלטנו אילו בדיקות OWASP נדרשות להערכת המערכת.

הערכת אבטחה

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

תיאור טבלת הנושא

כותרת גיליון

ID מזהה ה-OWASP של הבעיה. לבדיקות נוספות שאנו עורכים ואינן נכללות בטבלת OWASP יהיו Sayfer ID.
מזהה לדוגמה: WSTG-INFO-002
WSTG – מדריך לבדיקת אבטחת אינטרנט.
מידע – קיצור לנושא אליו שייך הגיליון.
002 - נושא מספר.
הסיכון מייצג את גורם הסיכון של הנושא. לתיאור נוסף עיין ב פגיעויות לפי סיכון סָעִיף.
מיומנות נדרשת מתאר את רמת המיומנות הנדרשת לביצוע ניצול מוצלח. ככל שרמת המיומנות נמוכה יותר כך תהליך הניצול קל יותר.
OWASP
התייחסות
קישור לעמוד OWASP הרלוונטי לידע נוסף.
מקום כתובת האתר שבה זוהתה בעיה זו. לבעיות ללא מיקום אין מיקום מסוים והן מתייחסות למוצר בכללותו.
כלים הכלים המשמשים לאיתור הבעיה.

תיאור

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

הקלות

הציע אפשרויות פתרון לבעיה זו וקישורים לאתרים מומלצים לתיקון נוסף.

הערכת אבטחה

הבדיקות הבאות נערכו תוך כדי ביקורת המערכת

איסוף מידע

איסוף מידע שם המבחן
WSTG-INFO-01 ערכו סיור של גילוי מנוע חיפוש לאיתור דליפת מידע
WSTG-INFO-02 שרת טביעות אצבע
WSTG-INFO-03 סקור את המטא-קבצים של שרת האינטרנט לאיתור דליפת מידע
WSTG-INFO-04 ספור יישומים בשרת אינטרנט
WSTG-INFO-05 סקור את תוכן דף האינטרנט לאיתור דליפת מידע
WSTG-INFO-06 זיהוי נקודות כניסה לאפליקציה
WSTG-INFO-07 מפה נתיבי ביצוע באמצעות אפליקציה
WSTG-INFO-08 מסגרת יישום אינטרנט טביעת אצבע
WSTG-INFO-09 יישום אינטרנט טביעת אצבע
WSTG-INFO-10 ארכיטקטורת יישומי מפה

בדיקות ניהול תצורה ופריסה

בדיקות ניהול תצורה ופריסה שם המבחן
WSTG-CONF-01 בדוק את תצורת תשתית הרשת
WSTG-CONF-02 בדוק את תצורת פלטפורמת היישום
WSTG-CONF-03 בדיקת הרחבות קבצים לטיפול במידע רגיש
WSTG-CONF-04 סקור את הגיבוי הישן וקבצים ללא הפניה למידע רגיש
WSTG-CONF-05 מנה ממשקי ניהול תשתיות ואפליקציות
WSTG-CONF-06 בדוק שיטות HTTP
WSTG-CONF-07 בדוק HTTP Strict Transport Security
WSTG-CONF-08 בדוק את מדיניות RIA חוצת דומיינים
WSTG-CONF-09 בדוק הרשאת קובץ
WSTG-CONF-10 בדיקת השתלטות על תת-דומיין
WSTG-CONF-11 בדוק אחסון בענן

בדיקת ניהול זהויות

בדיקת ניהול זהויות שם המבחן
WSTG-IDNT-01 הגדרות תפקידי בדיקה
WSTG-IDNT-02 בדוק תהליך רישום משתמש
WSTG-IDNT-03 תהליך הקצאת חשבון לבדיקה
WSTG-IDNT-04 בדיקה של ספירת חשבון וחשבון משתמש שניתן לנחש
WSTG-IDNT-05 בדיקת מדיניות שמות משתמש חלשה או לא נאכפת

בדיקת אימות

בדיקת אימות שם המבחן
WSTG-ATHN-01 בדיקת אישורים שהועברו בערוץ מוצפן
WSTG-ATHN-02 בדיקת אישורי ברירת מחדל
WSTG-ATHN-03 בדיקת מנגנון נעילה חלש
WSTG-ATHN-04 בדיקת עקיפת סכימת אימות
WSTG-ATHN-05 בדיקה לאיתור פגיעים לזכור סיסמה
WSTG-ATHN-06 בדיקת חולשות מטמון הדפדפן
WSTG-ATHN-07 בדיקת מדיניות סיסמאות חלשה
WSTG-ATHN-08 בדיקת תשובה לשאלת אבטחה חלשה
WSTG-ATHN-09 בדיקת פונקציות של שינוי סיסמה חלשה או איפוס
WSTG-ATHN-10 בדיקת אימות חלש יותר בערוץ חלופי

בדיקת הרשאות

בדיקת הרשאות שם המבחן
WSTG-ATHZ-01 בדיקת קובץ מעבר מדריך כלול
WSTG-ATHZ-02 בדיקת סכמת עקיפת הרשאות
WSTG-ATHZ-03 בדיקה להסלמה של הרשאות
WSTG-ATHZ-04 בדיקה לאיתור אובייקט ישיר לא מאובטח

בדיקות ניהול מפגשים

בדיקות ניהול מפגשים שם המבחן
WSTG-SESS-01 בדיקה עבור סכימת ניהול הפעלות
WSTG-SESS-02 בדיקת תכונות של קובצי Cookie
WSTG-SESS-03 בדיקה לקיבוע הפעלה
WSTG-SESS-04 בדיקה של משתני הפעלה חשופים
WSTG-SESS-05 בדיקה לזיוף בקשות חוצות אתרים
WSTG-SESS-06 בדיקת פונקציונליות התנתקות
WSTG-SESS-07 פסק זמן של הפעלת בדיקה
WSTG-SESS-08 בדיקה עבור תמוה סשן
WSTG-SESS-09 בדיקת חטיפת הפעלה

בדיקת אימות נתונים

בדיקת אימות נתונים שם המבחן
WSTG-INPV-01 בדיקה עבור סקריפטים חוצי אתרים משותקפים
WSTG-INPV-02 בדיקה עבור Scripting Cross Site Stored
WSTG-INPV-03 בדיקה של שיבוש פעולת HTTP
WSTG-INPV-04 בדיקת זיהום פרמטר HTTP
WSTG-INPV-05 בדיקה עבור הזרקת SQL
WSTG-INPV-06 בדיקה להזרקת LDAP
WSTG-INPV-07 בדיקה עבור הזרקת XML
WSTG-INPV-08 בדיקה עבור הזרקת SSI
WSTG-INPV-09 בדיקת הזרקת XPath
WSTG-INPV-10 בדיקת הזרקת IMAP SMTP
WSTG-INPV-11 בדיקה עבור הזרקת קוד
WSTG-INPV-12 בדיקה להזרקת פקודה
WSTG-INPV-13 בדיקה להזרקת מחרוזת פורמט
WSTG-INPV-14 בדיקה לאיתור פגיעות דגירה
WSTG-INPV-15 בדיקת הברחת פיצול HTTP
WSTG-INPV-16 בדיקה עבור בקשות נכנסות HTTP
WSTG-INPV-17 בדיקה עבור הזרקת כותרת מארח
WSTG-INPV-18 בדיקה עבור הזרקת תבנית בצד השרת
WSTG-INPV-19 בדיקת זיוף בקשות בצד השרת

טיפול בשגיאה

טיפול בשגיאה שם המבחן
WSTG-ERRH-01 בדיקה לאיתור שגיאות לא תקין
WSTG-ERRH-02 בדיקת עקבות מחסנית

קריפטוגרפיה

קריפטוגרפיה שם המבחן
WSTG-CRYP-01 בדיקה לאבטחת שכבת תחבורה חלשה
WSTG-CRYP-02 בדיקה עבור ריפוד אורקל
WSTG-CRYP-03 בדיקת מידע רגיש שנשלח בערוצים לא מוצפנים
WSTG-CRYP-04 בדיקת הצפנה חלשה

בדיקת לוגיקה עסקית

בדיקת לוגיקה עסקית שם המבחן
WSTG-BUSL-01 בדיקת אימות נתוני לוגיקה עסקית
WSTG-BUSL-02 בדיקת יכולת לזייף בקשות
WSTG-BUSL-03 בדיקות תקינות
WSTG-BUSL-04 בדיקה לתזמון תהליך
WSTG-BUSL-05 בדיקה מספר הפעמים שניתן להשתמש בפונקציה מגביל
WSTG-BUSL-06 בדיקה לעקיפה של זרימות עבודה
WSTG-BUSL-07 בדוק הגנה מפני שימוש שגוי ביישום
WSTG-BUSL-08 בדיקת העלאה של סוגי קבצים בלתי צפויים
WSTG-BUSL-09 בדוק העלאה של קבצים זדוניים

בדיקות צד לקוח

בדיקות צד לקוח שם המבחן
WSTG-CLNT-01 בדיקה עבור Scripting Cross Sites מבוסס DOM
WSTG-CLNT-02 בדיקה לביצוע JavaScript
WSTG-CLNT-03 בדיקה להזרקת HTML
WSTG-CLNT-04 בדיקה להפניה מחדש של כתובת URL בצד הלקוח
WSTG-CLNT-05 בדיקה להזרקת CSS
WSTG-CLNT-06 בדיקה עבור מניפולציה של משאבים בצד הלקוח
WSTG-CLNT-07 בדוק שיתוף משאבים חוצה מקור
WSTG-CLNT-08 בדיקה עבור הבהוב חוצה אתרים
WSTG-CLNT-09 בדיקה ל-Clickjacking
WSTG-CLNT-10 בדיקת WebSockets
WSTG-CLNT-11 בדיקת הודעות אינטרנט
WSTG-CLNT-12 בדיקת אחסון דפדפן
WSTG-CLNT-13 בדיקה עבור הכללת סקריפט חוצה אתרים

בדיקת API

בדיקת API שם המבחן
WSTG-APIT-01 בדיקת GraphQL

הזמינו ביקורת מסיפר

    אתר זה מוגן על ידי reCAPTCHA ו- Google מדיניות פרטיות ו תנאי שימוש באתר להגיש מועמדות.

    ממצאי הערכת אבטחה

    תלות עם פגיעויות ידועות

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

    תיאור

    ביקורת NPM מחזירה מספר תוצאות עבור פגיעויות ידועות בחבילות המותקנות:

      npm audit
    # npm audit report
    engine.io 5.1.0 - 6.4.1
    Severity: moderate
    engine.io Uncaught Exception vulnerability -
    https://github.com/advisories/GHSA-q9mw-68c2-j6m5
    fix available via `npm audit fix`
    node_modules/engine.io
    socket.io 4.1.0 - 4.6.0-alpha1
    Depends on vulnerable versions of engine.io
    node_modules/socket.io
    gatsby 1.9.130 - 4.25.7 || 5.4.0-next.0 - 5.9.1
    Depends on vulnerable versions of gatsby-cli
    Depends on vulnerable versions of latest-version
    Depends on vulnerable versions of socket.io
    node_modules/gatsby
    got <11.8.5
    Severity: moderate
    Got allows a redirect to a UNIX socket -
    https://github.com/advisories/GHSA-pfrx-2q88-qq97
    fix available via `npm audit fix`
    node_modules/package-json/node_modules/got
    package-json <=6.5.0
    Depends on vulnerable versions of got
    node_modules/package-json
    latest-version 0.2.0 - 5.1.0
    Depends on vulnerable versions of package-json
    node_modules/latest-version
    update-notifier 0.2.0 - 5.1.0
    Depends on vulnerable versions of latest-version
    node_modules/update-notifier
    gatsby-cli 1.1.27 - 4.25.0
    Depends on vulnerable versions of update-notifier
    node_modules/gatsby-cli
    13
    request *
    Severity: moderate
    Server-Side Request Forgery in Request -
    https://github.com/advisories/GHSA-p8p7-x288-28g6
    fix available via `npm audit fix`
    node_modules/request
    node-gyp <=7.1.2
    Depends on vulnerable versions of request
    node_modules/@npmcli/run-script/node_modules/node-gyp
    @npmcli/run-script 1.1.1 - 1.8.6
    Depends on vulnerable versions of node-gyp
    node_modules/@npmcli/run-script
    @lavamoat/allow-scripts <=2.3.0
    Depends on vulnerable versions of @npmcli/run-script
    node_modules/@lavamoat/allow-scripts
    socket.io-parser 4.0.4 - 4.2.2
    Severity: high
    Insufficient validation when decoding a Socket.IO packet -
    https://github.com/advisories/GHSA-cqmj-92xf-r6r9
    fix available via `npm audit fix`
    node_modules/socket.io-parser
    webpack 5.0.0 - 5.75.0
    Severity: high
    Cross-realm object access in Webpack 5 -
    https://github.com/advisories/GHSA-hc6q-2mpp-qw7j
    fix available via `npm audit fix`
    node_modules/webpack
    yaml 2.0.0-5 - 2.2.1
    Severity: high
    Uncaught Exception in yaml - https://github.com/advisories/GHSA-f9xv-q969-pqx4
    fix available via `npm audit fix`
    node_modules/yaml-loader/node_modules/yaml 

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

    הקלות

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

     

    מספרי קסם

    ID SAY-02
    מצב תוקן
    הסיכון מידע
    מקום -
    השפעה עסקית מספרי קסם משפיעים על קריאות הקוד. ללא ידע פנימי, נראה שהם שרירותיים למדי.

    תיאור

    במהלך ההערכה שלנו, שמנו לב לשימוש בקבועים שרירותיים לכאורה ללא הערות הסבר:

    במקרה שלמעלה, קשה לנחש מה הסיבה לחלוקה ב-1000 או להכפיל ב-257 מבלי לדעת איך הפרוטוקול והבלוקצ'יין עצמו עובדים

    הקלות

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

     

    הודעת Metamask מדאיגה

    ID SAY-03
    מצב תוקן
    הסיכון מידע
    מקום -
    השפעה עסקית סוג זה של הנחיה עשוי להניא משתמשים מלהתקין Snap

    תיאור

    בעת התקנת Snap מופיעה ההנחיה הבאה של המטאמסק הקשה להבנה:

    הקלות

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

     

    הודעת Metamask מדאיגה

    ID SAY-04
    מצב תוקן
    הסיכון מידע
    מקום -
    השפעה עסקית ללא חתימה

    תיאור

    במהלך ההערכה שלנו, שמנו לב להערה הזו, מרמזת על אי ודאות מסוימת, שעלולה להצביע על בעיה גדולה יותר.

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

    הקלות

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

    נספח א': תיקוני הערכת אבטחה

    לאחר בדיקה של צוות Sayfer, אנו יכולים לאשר שכל הפגיעויות תוקנו על ידי צוות Tezos

    Hash commit ראשוני: 0e0d653b85cbd11365771ad9c2ee5726b10a7d26
    תיקוני commit hash: 0d0c9381a1107c54647d927d4fe99694f332e24d

    אתה יכול למצוא מידע נוסף על זה בבלוג שלנו

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

    שמור על קשר

    טלפון
    מקום
    תל אביב
    כתובת אימייל
    שליחים:
    אתם מוזמנים ליצור איתנו קשר, נשמח להגיב!

      אתר זה מוגן על ידי reCAPTCHA ו- Google מדיניות פרטיות ו תנאי שימוש באתר להגיש מועמדות.
      עבור לתוכן