על אבטחת הקליפ וה-NFT של Booba | פִּנקָס

על אבטחת הקליפ וה-NFT של Booba | פִּנקָס

צומת המקור: 2657383

ה-3 בנובמבר 2021, בובה (הראפר הצרפתי שיצר את הלייבל מוזיקה לה פיראטריה) לשים סט של 5 NFTs למכירה, בסך הכל 5000 מכל אחד מהכרטיסים המונפשים הללו. כל ה-NFTs הללו נמכרו תוך מספר ימים תמורת 150 ETH (0.006 ETH כל אחד), כלומר יותר מ-$700.000 בתאריך זה. כבונוס, בעלים ברי מזל של אחד מה-NFTs הללו הורשו לראות את הקליפ הבלעדי TN מאז 8 נובמבר 2021.

Les rappeurs m'envient, sont tous en galère.
Boulbi, Ouest Side

היינו קצת סקרנים ותהינו איך הקליפ מוגן ואם נוכל ליהנות ממנו גם אם לא קנינו NFTs.

כיצד פועלת הגנת קליפ המוזיקה?

כדי לראות את הסרטון, הבעלים של ה-NFTs צריכים לבקר בדף /mon-nft ולהשתמש בארנק הקריפטו שלהם (כגון Metamask או WalletConnect) כדי לחתום על הודעת Ethereum "Pour accéder à TN, merci de bien vouloir signer ce message" עם אותו ארנק מזה ששימש לקניית ה-NFTs. לאחר החתימה, בקשת POST עם גוף JSON בפורמט זה נשלחת על ידי דפדפן האינטרנט אל a שירות אינטרנט מתארח ב-AWS:

כמה בדיקות מראות שהודעות שונות מברירת המחדל אינן נדחות כל עוד הן מקודדות JSON. לדוגמה: [1337] ו "blah" נחשבים כתקפים, אולם הודעות שאינן ב-JSON מפעילות an internal error באופן מיידי.

אם החתימה המשויכת לכתובת Ethereum (wallet) ו message תקפים, השרת מוודא שהארנק אכן קנה אחד מה-NFTs, אחרת השגיאה Tu ne possèdes aucun des NFTs מוחזר. השלב האחרון הזה לוקח קצת יותר זמן, מה שמאפשר לנו לנסח את ההשערה הבאה. אם נמצא באינטרנט מפתח ציבורי שעומד ב-2 התנאים הבאים:

  • המפתח הציבורי חתם על הודעת JSON והחתימה המשויכת היא ציבורית;
  • הארנק קנה לפחות אחד מה-NFTs.

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

השמיים BOOBA TN NFT הוא גם אסימון ERC-20 (B2O_TN) שהוטבע על ידי החוזה החכם 0x3b73…94dd. תחילה התחלנו ברישום כל בעלי ה-NFT בזכותם etherscan.io. בזמן כתיבת שורות אלה, היו 3484 בעלים של לפחות אחד מה-NFTs הללו. 1 ארנקים מחזיקים יותר מאחד מאותו NFT, כנראה כדי למכור מחדש אחד מאלה מאוחר יותר.

Un jour de mon salaire c'est leur assurance vie.
Boulbi, Ouest Side

ניסיון ראשון - etherscan.io

הודעות Ethereum מקודדות באמצעות personal_sign פורמט ("x19Ethereum Signed Message:n" + length(message) + message) לפני החתימה באמצעות ECDSA. מכיוון שעסקאות Ethereum מקודדות לפורמט אחר (RLP), לא ניתן לזהות חתימות עסקאות כחתימות הודעות חוקיות. ניסוח זאת אחרת, לא ניתן למצוא חתימות להודעות ב-Ethereum blockchain.

המקום הראשון בו מצאנו הודעות Ethereum מחוץ לרשת הוא etherscan.io, המספק ממשק אינטרנט ל לאמת חתימת הודעת Ethereum ובסופו של דבר לשמור אותה כדי להפוך אותה לנגישה באמצעות כתובת URL ציבורית. תחילה אחזרנו את כל הודעות Ethereum שנשמרו באמצעות שירות זה: etherscan.io/verifiedSignatures.

למשל verifySig/2642 מראה שהבעלים של NFT של קוף משעמם #6743 הוכיח שהוא גם הבעלים של חשבון הטוויטר 6743:

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

Tu n'peux que gagner quand t'as rien à perdre.
מגניפיק, טרון

ניסיון שני – snapshot.org

האתר snapshot.org מאפשר לאנשים להצביע עבור הצעות באמצעות ארנק Ethereum שלהם: Snapshot הוא לקוח ריבוי ממשל נטול גז מחוץ לשרשרת עם תוצאות שקל לאימות וקשה לערעור בו. ההצבעות הן במקרה בפורמט JSON.

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

תוצאת השאילתה מראה שהכתובת הזו שימשה עבור 2 הצבעות:

את ההצבעות חתומות על ידי כל ארנק בעל Booba TN NFTs ניתן לאחזר בשלמותו באמצעות בקשת GraphQL אחת. יש 689 תוצאות עבור 140 מצביעים ייחודיים.

הכתובת 0x668248dF4595e09Aa253B31478312748078F7a20 קנה 5 Booba TN NFTs. כפי שהוצג קודם לכן, כתובת זו הצביעה גם בעד ההצעות הבאות:

ההצבעות הקשורות מאוחסנות במערכת הקבצים הבין-פלנטרית (IPFS): QmZL5toFBQrPgNDPTpQCukWtcjWeT5x6nou75wMMTm52zM ו QmQLSv36j3GLdRjubqpXjpAgwYG77Mop5T9uLCi73r1SUT. תוכן ההצבעה הראשונה הוא:

צילום מסך של וידאו

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

סיכום

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

La Piraterie n'est jamais finie!
Walabok, Nero Nemesis

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

בול זמן:

עוד מ פנקס