تحليل ثغرات مترجم Solidity واستراتيجيات التعامل معها

robot
إنشاء الملخص قيد التقدم

تحليل ثغرات مترجم Solidity وإجراءات المواجهة

المترجم هو أحد المكونات الأساسية لأنظمة الكمبيوتر الحديثة، وظيفته هي تحويل شفرة المصدر للغات البرمجة عالية المستوى إلى تعليمات قابلة للتنفيذ بواسطة الكمبيوتر. على الرغم من أن المطورين والموظفين الأمنيين عادةً ما يهتمون بأمان شفرة تطبيقات البرامج، إلا أن المترجم نفسه باعتباره برنامج كمبيوتر قد يحتوي أيضًا على ثغرات أمنية، مما قد يؤدي في بعض الحالات إلى مخاطر أمنية خطيرة.

تتمثل وظيفة مترجم Solidity في تحويل كود العقد الذكي إلى كود تعليمات آلة Ethereum (EVM). على عكس ثغرات EVM نفسها، فإن ثغرات مترجم Solidity تظهر بشكل رئيسي عند تحويل Solidity إلى كود EVM، وقد تكون هناك مشاكل، مما لا يؤثر مباشرة على شبكة Ethereum نفسها، لكنه قد يؤدي إلى اختلاف الكود الناتج عن EVM مع توقعات المطور.

تحليل ثغرات مترجم Solidity والتدابير المتخذة

فيما يلي بعض أمثلة على ثغرات مترجم Solidity الحقيقية:

  1. SOL-2016-9 HighOrderByteCleanStorage: توجد هذه الثغرة في إصدارات مبكر من مترجم Solidity (>=0.1.6 <0.4.4). نظرًا لعدم قيام المترجم بإزالة البتات العليا بشكل صحيح عند معالجة تجاوز السعة الصحيحة، قد يؤدي ذلك إلى تعديل متغيرات مجاورة بشكل غير متوقع.

  2. SOL-2022-4 تأثيرات الجانب الذاكرة في Assembly Inline: توجد هذه الثغرة في إصدارات المترجم من 0.8.13 إلى 0.8.15. بسبب تحسينات التجميع التي تحلل كتلة assembly الفردية، قد يتم إزالة تعليمات كتابة الذاكرة التي تبدو زائدة ولكنها في الواقع مفيدة.

  3. SOL-2022-6 AbiReencodingHeadOverflowWithStaticArrayCleanup: تؤثر هذه الثغرة على المترجمات من الإصدار 0.5.8 إلى 0.8.16. عند إجراء عملية abi.encode على مصفوفة من نوع calldata، يتم مسح بعض البيانات بشكل خاطئ مما يؤدي إلى تعديل البيانات المجاورة.

تحليل ثغرات مترجم Solidity وإجراءات المواجهة

فيما يتعلق بثغرات مترجم Solidity، قدم فريق أمان blockchain Cobo الاقتراحات التالية:

إلى المطورين:

  • استخدم إصدار أحدث من مترجم Solidity
  • تحسين حالات اختبار الوحدة
  • تجنب استخدام التجميع الداخلي، وعمليات ترميز وفك ترميز ABI المعقدة، وما إلى ذلك

إلى موظفي الأمن:

  • اعتبر المخاطر الأمنية التي قد يقدمها المجمع أثناء التدقيق
  • في عملية التطوير، حث على ترقية إصدار المترجم
  • تقييم التأثير الأمني الفعلي لثغرات المترجم بناءً على الظروف المحددة

بعض الموارد المفيدة:

  • تنبيه أمان رسمي من Solidity
  • قائمة الأخطاء في مستودع GitHub لـ Solidity
  • قائمة الأخطاء في المترجمات المختلفة
  • نصائح الأمان في صفحة كود العقد على Etherscan

بصفة عامة، يجب على المطورين وموظفي الأمن الانتباه إلى المخاطر الأمنية المحتملة التي قد تنجم عن ثغرات مترجم Solidity، من خلال ترقية المترجم، وتحسين الاختبارات، وغيرها من التدابير لتقليل المخاطر ذات الصلة.

تحليل ثغرات مترجم Solidity وإجراءات المواجهة

SOL-0.93%
ETH1.06%
شاهد النسخة الأصلية
قد تحتوي هذه الصفحة على محتوى من جهات خارجية، يتم تقديمه لأغراض إعلامية فقط (وليس كإقرارات/ضمانات)، ولا ينبغي اعتباره موافقة على آرائه من قبل Gate، ولا بمثابة نصيحة مالية أو مهنية. انظر إلى إخلاء المسؤولية للحصول على التفاصيل.
  • أعجبني
  • 6
  • مشاركة
تعليق
0/400
StakeWhisperervip
· 07-21 09:21
هل كنت تتابع أخطاء المترجم مبكرًا؟ هذا مبتدئ يضحك حتى الموت
شاهد النسخة الأصليةرد0
OnchainGossipervip
· 07-21 06:50
لقد قمت للتو بإصلاح الثغرة والآن تأتي أخرى... أرفع يدي
شاهد النسخة الأصليةرد0
blockBoyvip
· 07-20 10:39
هذه هي مشكلة صعبة قديمة... من يمكنه حقًا حلها
شاهد النسخة الأصليةرد0
BearMarketSagevip
· 07-20 10:39
هل تطور ولكن لا يختبر العقد بنفسه؟
شاهد النسخة الأصليةرد0
WalletDetectivevip
· 07-20 10:36
هذا المترجم سيء للغاية
شاهد النسخة الأصليةرد0
BrokeBeansvip
· 07-20 10:34
يبدو أنه سيتعين علينا إعادة كتابة العقد!
شاهد النسخة الأصليةرد0
  • تثبيت