لطالما كانت القرصنة موجودة كوجود مخيف في نظام Web3 البيئي. بالنسبة للمشاريع، فإن خاصية المصدر المفتوح تجعلهم يشعرون أنهم يسيرون على حافة الهاوية أثناء التطوير، خشية أن يؤدي خطأ في سطر من الشيفرة إلى ترك ثغرة. بالنسبة للمستخدمين الأفراد، إذا لم يفهموا معنى العمليات الجارية، فإن كل تفاعل أو توقيع على السلسلة قد يؤدي إلى سرقة الأصول. لذلك، كانت مشاكل الأمان دائمًا واحدة من أكثر القضايا تعقيدًا في عالم التشفير. بسبب خصائص blockchain، فإن استرداد الأصول المسروقة يكاد يكون مستحيلاً، لذا فإن اكتساب المعرفة الأمنية في عالم التشفير يكون ذا أهمية خاصة.
مؤخراً، تم اكتشاف أسلوب جديد للصيد الاحتيالي بدأ في النشاط قبل شهرين، حيث يكفي التوقيع ليتم السرقة، والأسلوب مخفي للغاية وصعب الحماية منه. بالإضافة إلى ذلك، قد تواجه العناوين التي استخدمت تفاعل Uniswap خطرًا. ستتناول هذه المقالة توعية حول أسلوب الصيد الاحتيالي بالتوقيع لتجنب المزيد من خسائر الأصول.
تفاصيل الحدث
مؤخراً، تمت سرقة أصول المحفظة لصديقي ( المعروف باسم صغير A). على عكس طرق السرقة الشائعة، لم يقم صغير A بكشف المفتاح الخاص، ولم يتفاعل أيضاً مع عقود المواقع الاحتيالية.
من خلال متصفح سلسلة الكتل، يمكن رؤية أن USDT المسروق من محفظة A الصغيرة قد تم نقله من خلال دالة Transfer From. وهذا يعني أن هذا الأصل المسروق قد تم نقله بواسطة عنوان آخر، وليس بسبب تسرب مفتاح المحفظة الخاص.
استعلام تفاصيل الصفقة كشف بعض الأدلة الرئيسية:
تم نقل أصول الصغيرة A من عنوان ينتهي بالرقم fd51 إلى عنوان ينتهي بالرقم a0c8
هذه العملية تتفاعل مع عقد Permits2 لـ Uniswap
إذن، السؤال هو: كيف حصل عنوان ينتهي بـ fd51 على صلاحية هذه الأصول؟ ولماذا يتعلق الأمر بـ Uniswap؟
أولاً، يجب أن نعرف أنه من أجل النجاح في استدعاء دالة Transfer From، الشرط الأساسي هو أن يكون لدى المستدعي إذن مقدار هذا التوكن، أي approve. عندما نستخدم بعض التطبيقات اللامركزية، كلما تعلق الأمر بنقل الأصول، يجب أولاً إجراء عملية تفويض (approve)، حتى يكون لعقد التطبيق اللامركزي إذن لنقل أصولنا.
الإجابة تكمن في سجل التفاعل لعنوان ينتهي بـ fd51. قبل إجراء عملية Transfer From لنقل أصول A الصغيرة من هذا العنوان، تم إجراء عملية Permit، وكانت كائنات التفاعل في هاتين العمليتين هي عقد Permit2 من Uniswap.
عقد Uniswap Permit2 هو عقد ذكي جديد أطلقته Uniswap في نهاية عام 2022. وفقًا للبيان الرسمي، فهو عقد موافقة على الرموز، يسمح بمشاركة وإدارة تفويضات الرموز عبر تطبيقات مختلفة، ويهدف إلى خلق تجربة مستخدم أكثر توحيدًا وفعالية من حيث التكلفة وأكثر أمانًا.
مع تكامل المزيد والمزيد من المشاريع مع Permit2، يمكنه تحقيق الموافقة القياسية على الرموز في جميع التطبيقات. ستعمل Permit2 على تحسين تجربة المستخدم من خلال تقليل تكاليف المعاملات، مع زيادة أمان العقود الذكية.
قد يؤدي إطلاق Permit2 إلى تغيير قواعد اللعبة في نظام Dapp البيئي بأكمله. ببساطة، كانت الطريقة التقليدية تتطلب تفويضًا في كل مرة يتم فيها التفاعل مع Dapp لنقل الأصول، بينما يمكن أن يوفر Permit2 هذه الخطوة، مما يقلل بشكل فعال من تكلفة تفاعل المستخدمين ويقدم تجربة مستخدم أفضل.
تعمل Permit2 كوسيط بين المستخدم وDapp، حيث يحتاج المستخدم فقط إلى منح إذن التوكن لعقد Permit2، ويمكن لجميع Dapp التي تدمج عقد Permit2 مشاركة هذا الحد المصرح به. بالنسبة للمستخدم، يقلل ذلك من تكلفة التفاعل ويعزز التجربة؛ بالنسبة لـ Dapp، فإن تحسين تجربة المستخدم يؤدي إلى المزيد من المستخدمين والأموال، مما يعد وضعًا مربحًا للطرفين. لكن يمكن أن تكون هذه أيضًا سيفًا ذا حدين، حيث تكمن المشكلة في طريقة التفاعل مع Permit2.
في طرق التفاعل التقليدية، سواء كان تفويضًا أو نقل أموال، فإن التفاعل على السلسلة هو ما يراه المستخدم في العمليات. لكن Permit2 يحول عمليات المستخدم إلى توقيعات خارج السلسلة، حيث يتم تنفيذ جميع العمليات على السلسلة بواسطة الأدوار الوسيطة ( مثل عقد Permit2 ومشاريع تتكامل مع Permit2 وغيرها من ). ميزة هذه الخطة هي أنه نظرًا لتحويل الدور التفاعلي على السلسلة من المستخدم إلى الدور الوسيط، حتى لو لم يكن لدى محفظة المستخدم ETH، يمكن استخدام رموز أخرى لدفع رسوم الغاز أو يتم تعويضها بالكامل من قبل الدور الوسيط، حسب اختيار الدور الوسيط.
على الرغم من أن ظهور Permit2 قد يغير قواعد اللعبة المستقبلية لتطبيقات Dapp، إلا أن هذه سلاح ذو حدين قوي. بالنسبة للمستخدمين، فإن التوقيع خارج السلسلة هو الحلقة الأكثر سهولة في الاسترخاء. على سبيل المثال، عندما نقوم بتسجيل الدخول إلى بعض تطبيقات Dapp باستخدام المحفظة، نحتاج إلى توقيع الاتصال، ومعظم الناس لن يتحققوا بدقة من محتوى التوقيع أو يفهموا معناه، وهذه هي النقطة الأكثر خطورة.
بعد فهم عقد Permit2، نعود إلى حدث A الصغير لنفهم لماذا يتم سرقة الأصول دائماً بالتفاعل مع عقد Permit2. لإعادة إنتاج هذه الحيلة المتعلقة بتوقيع Permit2، الشرط الأساسي هو أن المحفظة المسموح بها يجب أن تكون قد منحت تفويضاً لـ Uniswap لعقد Permit2. حالياً، يجب تفويض عقد Permit2 عند إجراء Swap على أي Dapp متكامل مع Permit2 أو على Uniswap.
نقطة أخرى مثيرة للقلق هي أنه بغض النظر عن مقدار المبلغ المراد تبادله، فإن عقد Permit2 الخاص بـ Uniswap سيمنح المستخدمين بشكل افتراضي إذنًا بمبلغ رصيد هذا الرمز بالكامل. على الرغم من أن MetaMask يسمح بإدخال المبلغ المخصص، إلا أن معظم الناس قد ينقرون مباشرة على الحد الأقصى أو القيمة الافتراضية، والقيمة الافتراضية لـ Permit2 هي حد غير محدود.
هذا يعني أنه طالما أنك تفاعلت مع Uniswap بعد عام 2023 ومنحت تصريحًا لعقد Permit2، فقد تكون معرضًا لخطر هذا التضليل.
المفتاح هو وظيفة Permit التي تفاعلت مع عقد Permit2 في عنوان النهاية fd51 سابقًا. ببساطة، تستخدم هذه الوظيفة محفظتك لنقل الحد الذي قمت بتخويله لعقد Permit2 من التوكن إلى عنوان آخر. بمعنى آخر، بمجرد الحصول على توقيعك، يمكن للقراصنة الحصول على صلاحيات التوكن في محفظتك ونقل أصولك.
تحليل تفصيلي للحدث
دالة permit:
دالة permit تشبه توقيع عقد عبر الإنترنت. إنها تسمح لك ب(PermitSingle) توقيع "عقد" مسبقًا، مما يسمح للآخرين (spender) باستخدام بعض رموزك في وقت لاحق.
أنت بحاجة أيضًا إلى تقديم التوقيع (signature)، تمامًا كما توقّع على العقد الورقي، لإثبات أن "العقد" هو بالفعل الذي قمت بالتوقيع عليه.
سير العمل الدالة:
تحقق مما إذا كانت الوقت الحالي قد تجاوز فترة صلاحية التوقيع (sigDeadline). إذا تم تجاوز فترة الصلاحية، يتوقف البرنامج مباشرة.
تحقق من صحة التوقيع. استخدم طريقة خاصة (signature.verify) للتحقق من التوقيع، وتأكد من أنه لم يتم التلاعب به.
إذا تم اجتياز جميع الفحوصات، سجل تحديث البرنامج، وتذكر أنك قد سمحت للآخرين باستخدام جزء من رموزك.
النقطة الرئيسية هي في دالة verify ودالة _updateApproval.
دالة verify:
تقوم دالة verify باستخراج البيانات الثلاثة v و r و s من معلمات معلومات التوقيع. v و r و s هي قيم توقيع الصفقة، ويمكن استخدامها لاسترجاع عنوان توقيع الصفقة. بعد استرجاع عنوان توقيع الصفقة من العقد، يتم مقارنته بعنوان مالك الرمز المدخل، إذا كان متطابقًا، يتم التحقق بنجاح، ويتم متابعة استدعاء دالة _updateApproval؛ إذا كان مختلفًا، يتم إلغاء الصفقة.
** وظائف _updateApproval: **
بعد التحقق من التوقيع، يتم استدعاء دالة _updateApproval لتحديث قيمة التفويض، مما يعني أن صلاحياتك قد انتقلت. في هذه الحالة، يمكن للجهة المخولة استدعاء دالة transferfrom لنقل الرموز إلى العنوان المحدد.
يمكنك اكتشاف التفاصيل الحقيقية للصفقات على السلسلة:
owner هو عنوان محفظة A الصغيرة ( رقم النهاية 308a)
يمكن رؤية عنوان عقد توكن المفوض (USDT) ومعلومات أخرى مثل المبلغ في التفاصيل
Spender هو عنوان القراصنة الذي ينتهي بالرقم fd51
sigDeadline هو الوقت الفعلي لتوقيع، signature هي معلومات توقيع A الصغيرة
عند مراجعة سجلات تفاعل Xiao A، تم اكتشاف أن Xiao A قد نقرت على حد التفويض الافتراضي عند استخدام Uniswap، أي حدود شبه غير محدودة.
مراجعة بسيطة: أعطى الشخص A سابقًا إذنًا لـ Uniswap باستخدام حد غير محدود من USDT. أثناء إجراء العمليات في المحفظة، وقع الشخص A عن غير قصد في فخ تصيد توقيع Permit2 الذي صممه القراصنة. بعد حصول القراصنة على توقيع الشخص A، قاموا بإجراء عمليتي Permit و Transfer From في عقد Permit2، ونقلوا أصول الشخص A. حاليًا، لوحظ أن عقد Permit2 الخاص بـ Uniswap أصبح جنة للتصيد، ويبدو أن هذا التصيد بتوقيع Permit2 نشط منذ شهرين.
في سجلات التفاعل، يمكن رؤية أن معظمها هي عناوين تصيد مميزة (Fake_Phishing)، ولا يزال هناك من يقع ضحية.
نظرًا لأن عقد Uniswap Permit2 قد يصبح أكثر شيوعًا في المستقبل، فإن المزيد من المشاريع ستدمج عقد Permit2 لمشاركة التفويض، تشمل الوسائل الفعالة للوقاية ما يلي:
1. فهم وتحديد محتوى التوقيع:
تحتوي صيغة توقيع Permit عادةً على Owner و Spender و value و nonce و deadline وغيرها من التنسيقات الأساسية. إذا كنت ترغب في الاستفادة من便利 و低成本 التي تقدمها Permit2، يجب أن تتعلم كيفية التعرف على هذه الصيغة التوقيع. ( تحميل الإضافة الآمنة هو خيار جيد )
إذا كان لديك أصول كبيرة، يُنصح بتخزين الأصول في محفظة باردة، بينما يجب الاحتفاظ بمبلغ قليل من الأموال في المحفظة المستخدمة في التفاعل على السلسلة، مما يمكن أن يقلل بشكل كبير من الخسائر عند مواجهة تضليل.
3. تقييد التفويض لمبلغ عقد Permit2 أو إلغاء التفويض:
عند إجراء Swap على Uniswap، قم بتفويض المبلغ المطلوب للتفاعل فقط. على الرغم من أن الحاجة إلى إعادة التفويض في كل تفاعل قد تزيد من تكلفة التفاعل قليلاً، إلا أنها قد تساعد في تجنب التعرض لعملية احتيال توقيع Permit2. إذا تم التفويض بالفعل، يمكن استخدام الإضافات الأمنية المناسبة لإلغاء التفويض.
4. التعرف على طبيعة الرموز وفهم ما إذا كانت تدعم وظيفة الإذن:
في المستقبل، من المحتمل أن يكون هناك عدد متزايد من رموز ERC20 التي تستخدم بروتوكول التمديد هذا لتحقيق وظيفة الإذن. يجب الانتباه إلى ما إذا كانت الرموز التي تمتلكها تدعم هذه الوظيفة، وإذا كانت تدعمها، يجب أن تكون حذرًا بشكل خاص عند التداول أو التعامل مع تلك الرموز، والتحقق بدقة من كل توقيع غير معروف لمعرفة ما إذا كان توقيعًا لوظيفة الإذن.
5. بعد الخداع، إذا كانت هناك رموز موجودة على منصات أخرى، يجب وضع خطة إنقاذ متكاملة:
إذا اكتشفت أنك قد تعرضت للتضليل، وبعد أن تم نقل الرموز من قبل القراصنة، وإذا كان لا يزال لديك رموز موجودة على منصات أخرى من خلال الرهن أو غيره، يجب سحبها ونقلها إلى عنوان آمن، لأنه يجب أن تعلم أن القراصنة قد يراقبون رصيد رموز عنوانك في أي وقت. لأن لديهم توقيعك، طالما تظهر رموز على العنوان المسروق، يمكن للقراصنة نقلها مباشرة. في هذه الحالة، يجب وضع عملية إنقاذ رموز كاملة، حيث يجب تنفيذ عمليتي سحب الرموز ونقل الرموز معًا، حتى لا يتمكن القراصنة من إدخال معاملات بينهم. يمكن استخدام نقل MEV، وهذا يتطلب بعض المعرفة في blockchain وقدرة على البرمجة، كما يمكن طلب المساعدة من شركات الأمن المتخصصة، واستخدام سكريبتات سباق المعاملات لتحقيق ذلك.
قد تزداد عمليات الاحتيال القائمة على Permit2 في المستقبل، فهذه الطريقة في الاحتيال عبر التوقيع سرية للغاية وصعبة الوقاية منها. مع توسع نطاق تطبيق Permit2، ستزداد العناوين المعرضة للخطر. نأمل أن يتم نشر هذا المقال ليصل إلى المزيد من الناس، لتجنب تعرض المزيد من الأفراد للخسائر.
قد تحتوي هذه الصفحة على محتوى من جهات خارجية، يتم تقديمه لأغراض إعلامية فقط (وليس كإقرارات/ضمانات)، ولا ينبغي اعتباره موافقة على آرائه من قبل Gate، ولا بمثابة نصيحة مالية أو مهنية. انظر إلى إخلاء المسؤولية للحصول على التفاصيل.
تسجيلات الإعجاب 13
أعجبني
13
4
مشاركة
تعليق
0/400
MetaLord420
· 07-31 15:37
تمت سرقتي مرة أخرى، أشعر بالذعر الشديد.
شاهد النسخة الأصليةرد0
CodeAuditQueen
· 07-31 15:37
لا يمكن القول إلا أن العقد مثل الرصاصة، لا تميز، وبلمح البصر يمكن أن تنخفض أصولك إلى الصفر.
خداع جديد بتوقيع Uniswap Permit2: يتم سرقة الأصول بتوقيع واحد
كشف خدعة توقيع Uniswap Permit2: بمجرد التوقيع سيتم سرقتك
لطالما كانت القرصنة موجودة كوجود مخيف في نظام Web3 البيئي. بالنسبة للمشاريع، فإن خاصية المصدر المفتوح تجعلهم يشعرون أنهم يسيرون على حافة الهاوية أثناء التطوير، خشية أن يؤدي خطأ في سطر من الشيفرة إلى ترك ثغرة. بالنسبة للمستخدمين الأفراد، إذا لم يفهموا معنى العمليات الجارية، فإن كل تفاعل أو توقيع على السلسلة قد يؤدي إلى سرقة الأصول. لذلك، كانت مشاكل الأمان دائمًا واحدة من أكثر القضايا تعقيدًا في عالم التشفير. بسبب خصائص blockchain، فإن استرداد الأصول المسروقة يكاد يكون مستحيلاً، لذا فإن اكتساب المعرفة الأمنية في عالم التشفير يكون ذا أهمية خاصة.
مؤخراً، تم اكتشاف أسلوب جديد للصيد الاحتيالي بدأ في النشاط قبل شهرين، حيث يكفي التوقيع ليتم السرقة، والأسلوب مخفي للغاية وصعب الحماية منه. بالإضافة إلى ذلك، قد تواجه العناوين التي استخدمت تفاعل Uniswap خطرًا. ستتناول هذه المقالة توعية حول أسلوب الصيد الاحتيالي بالتوقيع لتجنب المزيد من خسائر الأصول.
تفاصيل الحدث
مؤخراً، تمت سرقة أصول المحفظة لصديقي ( المعروف باسم صغير A). على عكس طرق السرقة الشائعة، لم يقم صغير A بكشف المفتاح الخاص، ولم يتفاعل أيضاً مع عقود المواقع الاحتيالية.
من خلال متصفح سلسلة الكتل، يمكن رؤية أن USDT المسروق من محفظة A الصغيرة قد تم نقله من خلال دالة Transfer From. وهذا يعني أن هذا الأصل المسروق قد تم نقله بواسطة عنوان آخر، وليس بسبب تسرب مفتاح المحفظة الخاص.
استعلام تفاصيل الصفقة كشف بعض الأدلة الرئيسية:
إذن، السؤال هو: كيف حصل عنوان ينتهي بـ fd51 على صلاحية هذه الأصول؟ ولماذا يتعلق الأمر بـ Uniswap؟
أولاً، يجب أن نعرف أنه من أجل النجاح في استدعاء دالة Transfer From، الشرط الأساسي هو أن يكون لدى المستدعي إذن مقدار هذا التوكن، أي approve. عندما نستخدم بعض التطبيقات اللامركزية، كلما تعلق الأمر بنقل الأصول، يجب أولاً إجراء عملية تفويض (approve)، حتى يكون لعقد التطبيق اللامركزي إذن لنقل أصولنا.
الإجابة تكمن في سجل التفاعل لعنوان ينتهي بـ fd51. قبل إجراء عملية Transfer From لنقل أصول A الصغيرة من هذا العنوان، تم إجراء عملية Permit، وكانت كائنات التفاعل في هاتين العمليتين هي عقد Permit2 من Uniswap.
! [التوقيع مسروق؟] إزالة الغموض عن تصريح Uniswap2 احتيال التصيد الاحتيالي](https://img-cdn.gateio.im/webp-social/moments-bb348691082594ecc577f91d7f9dc800.webp)
عقد Uniswap Permit2 هو عقد ذكي جديد أطلقته Uniswap في نهاية عام 2022. وفقًا للبيان الرسمي، فهو عقد موافقة على الرموز، يسمح بمشاركة وإدارة تفويضات الرموز عبر تطبيقات مختلفة، ويهدف إلى خلق تجربة مستخدم أكثر توحيدًا وفعالية من حيث التكلفة وأكثر أمانًا.
مع تكامل المزيد والمزيد من المشاريع مع Permit2، يمكنه تحقيق الموافقة القياسية على الرموز في جميع التطبيقات. ستعمل Permit2 على تحسين تجربة المستخدم من خلال تقليل تكاليف المعاملات، مع زيادة أمان العقود الذكية.
قد يؤدي إطلاق Permit2 إلى تغيير قواعد اللعبة في نظام Dapp البيئي بأكمله. ببساطة، كانت الطريقة التقليدية تتطلب تفويضًا في كل مرة يتم فيها التفاعل مع Dapp لنقل الأصول، بينما يمكن أن يوفر Permit2 هذه الخطوة، مما يقلل بشكل فعال من تكلفة تفاعل المستخدمين ويقدم تجربة مستخدم أفضل.
تعمل Permit2 كوسيط بين المستخدم وDapp، حيث يحتاج المستخدم فقط إلى منح إذن التوكن لعقد Permit2، ويمكن لجميع Dapp التي تدمج عقد Permit2 مشاركة هذا الحد المصرح به. بالنسبة للمستخدم، يقلل ذلك من تكلفة التفاعل ويعزز التجربة؛ بالنسبة لـ Dapp، فإن تحسين تجربة المستخدم يؤدي إلى المزيد من المستخدمين والأموال، مما يعد وضعًا مربحًا للطرفين. لكن يمكن أن تكون هذه أيضًا سيفًا ذا حدين، حيث تكمن المشكلة في طريقة التفاعل مع Permit2.
في طرق التفاعل التقليدية، سواء كان تفويضًا أو نقل أموال، فإن التفاعل على السلسلة هو ما يراه المستخدم في العمليات. لكن Permit2 يحول عمليات المستخدم إلى توقيعات خارج السلسلة، حيث يتم تنفيذ جميع العمليات على السلسلة بواسطة الأدوار الوسيطة ( مثل عقد Permit2 ومشاريع تتكامل مع Permit2 وغيرها من ). ميزة هذه الخطة هي أنه نظرًا لتحويل الدور التفاعلي على السلسلة من المستخدم إلى الدور الوسيط، حتى لو لم يكن لدى محفظة المستخدم ETH، يمكن استخدام رموز أخرى لدفع رسوم الغاز أو يتم تعويضها بالكامل من قبل الدور الوسيط، حسب اختيار الدور الوسيط.
على الرغم من أن ظهور Permit2 قد يغير قواعد اللعبة المستقبلية لتطبيقات Dapp، إلا أن هذه سلاح ذو حدين قوي. بالنسبة للمستخدمين، فإن التوقيع خارج السلسلة هو الحلقة الأكثر سهولة في الاسترخاء. على سبيل المثال، عندما نقوم بتسجيل الدخول إلى بعض تطبيقات Dapp باستخدام المحفظة، نحتاج إلى توقيع الاتصال، ومعظم الناس لن يتحققوا بدقة من محتوى التوقيع أو يفهموا معناه، وهذه هي النقطة الأكثر خطورة.
بعد فهم عقد Permit2، نعود إلى حدث A الصغير لنفهم لماذا يتم سرقة الأصول دائماً بالتفاعل مع عقد Permit2. لإعادة إنتاج هذه الحيلة المتعلقة بتوقيع Permit2، الشرط الأساسي هو أن المحفظة المسموح بها يجب أن تكون قد منحت تفويضاً لـ Uniswap لعقد Permit2. حالياً، يجب تفويض عقد Permit2 عند إجراء Swap على أي Dapp متكامل مع Permit2 أو على Uniswap.
! [التوقيع مسروق؟] إزالة الغموض عن تصريح Uniswap2 احتيال التصيد الاحتيالي](https://img-cdn.gateio.im/webp-social/moments-30520c8399a6ee69aa22424476c5870c.webp)
نقطة أخرى مثيرة للقلق هي أنه بغض النظر عن مقدار المبلغ المراد تبادله، فإن عقد Permit2 الخاص بـ Uniswap سيمنح المستخدمين بشكل افتراضي إذنًا بمبلغ رصيد هذا الرمز بالكامل. على الرغم من أن MetaMask يسمح بإدخال المبلغ المخصص، إلا أن معظم الناس قد ينقرون مباشرة على الحد الأقصى أو القيمة الافتراضية، والقيمة الافتراضية لـ Permit2 هي حد غير محدود.
هذا يعني أنه طالما أنك تفاعلت مع Uniswap بعد عام 2023 ومنحت تصريحًا لعقد Permit2، فقد تكون معرضًا لخطر هذا التضليل.
المفتاح هو وظيفة Permit التي تفاعلت مع عقد Permit2 في عنوان النهاية fd51 سابقًا. ببساطة، تستخدم هذه الوظيفة محفظتك لنقل الحد الذي قمت بتخويله لعقد Permit2 من التوكن إلى عنوان آخر. بمعنى آخر، بمجرد الحصول على توقيعك، يمكن للقراصنة الحصول على صلاحيات التوكن في محفظتك ونقل أصولك.
تحليل تفصيلي للحدث
دالة permit:
دالة permit تشبه توقيع عقد عبر الإنترنت. إنها تسمح لك ب(PermitSingle) توقيع "عقد" مسبقًا، مما يسمح للآخرين (spender) باستخدام بعض رموزك في وقت لاحق.
أنت بحاجة أيضًا إلى تقديم التوقيع (signature)، تمامًا كما توقّع على العقد الورقي، لإثبات أن "العقد" هو بالفعل الذي قمت بالتوقيع عليه.
سير العمل الدالة:
النقطة الرئيسية هي في دالة verify ودالة _updateApproval.
دالة verify:
تقوم دالة verify باستخراج البيانات الثلاثة v و r و s من معلمات معلومات التوقيع. v و r و s هي قيم توقيع الصفقة، ويمكن استخدامها لاسترجاع عنوان توقيع الصفقة. بعد استرجاع عنوان توقيع الصفقة من العقد، يتم مقارنته بعنوان مالك الرمز المدخل، إذا كان متطابقًا، يتم التحقق بنجاح، ويتم متابعة استدعاء دالة _updateApproval؛ إذا كان مختلفًا، يتم إلغاء الصفقة.
** وظائف _updateApproval: **
بعد التحقق من التوقيع، يتم استدعاء دالة _updateApproval لتحديث قيمة التفويض، مما يعني أن صلاحياتك قد انتقلت. في هذه الحالة، يمكن للجهة المخولة استدعاء دالة transferfrom لنقل الرموز إلى العنوان المحدد.
يمكنك اكتشاف التفاصيل الحقيقية للصفقات على السلسلة:
! [التوقيع مسروق؟] إزالة الغموض عن تصريح Uniswap2 احتيال التصيد الاحتيالي](https://img-cdn.gateio.im/webp-social/moments-730db044a34a8dc242f04cf8ae4d394c.webp)
عند مراجعة سجلات تفاعل Xiao A، تم اكتشاف أن Xiao A قد نقرت على حد التفويض الافتراضي عند استخدام Uniswap، أي حدود شبه غير محدودة.
مراجعة بسيطة: أعطى الشخص A سابقًا إذنًا لـ Uniswap باستخدام حد غير محدود من USDT. أثناء إجراء العمليات في المحفظة، وقع الشخص A عن غير قصد في فخ تصيد توقيع Permit2 الذي صممه القراصنة. بعد حصول القراصنة على توقيع الشخص A، قاموا بإجراء عمليتي Permit و Transfer From في عقد Permit2، ونقلوا أصول الشخص A. حاليًا، لوحظ أن عقد Permit2 الخاص بـ Uniswap أصبح جنة للتصيد، ويبدو أن هذا التصيد بتوقيع Permit2 نشط منذ شهرين.
في سجلات التفاعل، يمكن رؤية أن معظمها هي عناوين تصيد مميزة (Fake_Phishing)، ولا يزال هناك من يقع ضحية.
! [التوقيع مسروق؟] إزالة الغموض عن Uniswap Permit2 احتيال التصيد الاحتيالي](https://img-cdn.gateio.im/webp-social/moments-7e307b251a6cd5f615f05f3fe5f88165.webp)
كيف يمكن الوقاية؟
نظرًا لأن عقد Uniswap Permit2 قد يصبح أكثر شيوعًا في المستقبل، فإن المزيد من المشاريع ستدمج عقد Permit2 لمشاركة التفويض، تشمل الوسائل الفعالة للوقاية ما يلي:
1. فهم وتحديد محتوى التوقيع:
تحتوي صيغة توقيع Permit عادةً على Owner و Spender و value و nonce و deadline وغيرها من التنسيقات الأساسية. إذا كنت ترغب في الاستفادة من便利 و低成本 التي تقدمها Permit2، يجب أن تتعلم كيفية التعرف على هذه الصيغة التوقيع. ( تحميل الإضافة الآمنة هو خيار جيد )
! [التوقيع مسروق؟] إزالة الغموض عن تصريح Uniswap2 احتيال التصيد الاحتيالي](https://img-cdn.gateio.im/webp-social/moments-beaf0776306ee492b8c2fe3bbc281fd6.webp)
2. فصل تخزين الأصول والمحفظة التفاعلية:
إذا كان لديك أصول كبيرة، يُنصح بتخزين الأصول في محفظة باردة، بينما يجب الاحتفاظ بمبلغ قليل من الأموال في المحفظة المستخدمة في التفاعل على السلسلة، مما يمكن أن يقلل بشكل كبير من الخسائر عند مواجهة تضليل.
3. تقييد التفويض لمبلغ عقد Permit2 أو إلغاء التفويض:
عند إجراء Swap على Uniswap، قم بتفويض المبلغ المطلوب للتفاعل فقط. على الرغم من أن الحاجة إلى إعادة التفويض في كل تفاعل قد تزيد من تكلفة التفاعل قليلاً، إلا أنها قد تساعد في تجنب التعرض لعملية احتيال توقيع Permit2. إذا تم التفويض بالفعل، يمكن استخدام الإضافات الأمنية المناسبة لإلغاء التفويض.
! [التوقيع مسروق؟] إزالة الغموض عن تصريح Uniswap2 احتيال التصيد الاحتيالي](https://img-cdn.gateio.im/webp-social/moments-b4e0fd1284baf2f4ca7e18c82d07100c.webp)
4. التعرف على طبيعة الرموز وفهم ما إذا كانت تدعم وظيفة الإذن:
في المستقبل، من المحتمل أن يكون هناك عدد متزايد من رموز ERC20 التي تستخدم بروتوكول التمديد هذا لتحقيق وظيفة الإذن. يجب الانتباه إلى ما إذا كانت الرموز التي تمتلكها تدعم هذه الوظيفة، وإذا كانت تدعمها، يجب أن تكون حذرًا بشكل خاص عند التداول أو التعامل مع تلك الرموز، والتحقق بدقة من كل توقيع غير معروف لمعرفة ما إذا كان توقيعًا لوظيفة الإذن.
5. بعد الخداع، إذا كانت هناك رموز موجودة على منصات أخرى، يجب وضع خطة إنقاذ متكاملة:
إذا اكتشفت أنك قد تعرضت للتضليل، وبعد أن تم نقل الرموز من قبل القراصنة، وإذا كان لا يزال لديك رموز موجودة على منصات أخرى من خلال الرهن أو غيره، يجب سحبها ونقلها إلى عنوان آمن، لأنه يجب أن تعلم أن القراصنة قد يراقبون رصيد رموز عنوانك في أي وقت. لأن لديهم توقيعك، طالما تظهر رموز على العنوان المسروق، يمكن للقراصنة نقلها مباشرة. في هذه الحالة، يجب وضع عملية إنقاذ رموز كاملة، حيث يجب تنفيذ عمليتي سحب الرموز ونقل الرموز معًا، حتى لا يتمكن القراصنة من إدخال معاملات بينهم. يمكن استخدام نقل MEV، وهذا يتطلب بعض المعرفة في blockchain وقدرة على البرمجة، كما يمكن طلب المساعدة من شركات الأمن المتخصصة، واستخدام سكريبتات سباق المعاملات لتحقيق ذلك.
قد تزداد عمليات الاحتيال القائمة على Permit2 في المستقبل، فهذه الطريقة في الاحتيال عبر التوقيع سرية للغاية وصعبة الوقاية منها. مع توسع نطاق تطبيق Permit2، ستزداد العناوين المعرضة للخطر. نأمل أن يتم نشر هذا المقال ليصل إلى المزيد من الناس، لتجنب تعرض المزيد من الأفراد للخسائر.