المجمع هو أحد المكونات الأساسية في أنظمة الكمبيوتر الحديثة، وهو مسؤول عن تحويل الشيفرات المصدرية للغات البرمجة العالية المستوى إلى تعليمات قابلة للتنفيذ على المستوى الأدنى. على الرغم من أن المطورين وخبراء الأمن عادةً ما يركزون على أمان شفرة التطبيق، إلا أن المجمع نفسه كبرنامج كمبيوتر قد يحتوي أيضًا على ثغرات أمنية. يمكن أن تشكل هذه الثغرات مخاطر أمنية خطيرة في حالات معينة.
وظيفة مترجم Solidity هي تحويل كود العقد الذكي إلى كود تعليمات Ethereum Virtual Machine (EVM). على عكس ثغرات EVM نفسها، فإن ثغرات مترجم Solidity لن تؤثر مباشرة على شبكة Ethereum، ولكنها قد تؤدي إلى إنتاج كود EVM غير متوافق مع توقعات المطورين، مما قد يؤدي إلى عواقب وخيمة.
فيما يلي بعض الأمثلة الحقيقية على ثغرات مترجم Solidity:
ثغرة أمنية HighOrderByteCleanStorage ( الإصدار 0.1.6-0.4.4):
قد يؤدي هذا الثغرة إلى إرجاع قيمة خاطئة لمتغير storage دون تعديله.
ثغرة أمنية InlineAssemblyMemorySideEffects ( الإصدار 0.8.13-0.8.15):
بسبب تنفيذ غير صحيح لاستراتيجيات تحسين المترجم، قد تؤدي عمليات كتابة الذاكرة إلى إزالتها بشكل خاطئ.
AbiReencodingHeadOverflowWithStaticArrayCleanup ( الإصدار 0.5.8-0.8.16):
عند إجراء عملية abi.encode على مصفوفة من نوع calldata، قد تؤدي الأخطاء في تنظيف البيانات إلى عدم تناسق نتائج الترميز وفك الترميز.
لمواجهة مخاطر ثغرات مترجم Solidity، يجب على المطورين:
استخدم إصدارًا أحدث من المترجم
تحسين حالات اختبار الوحدات
تجنب استخدام التجميع المعقد الداخلي وعمليات الترميز وفك الترميز مثل ABI.
يجب على مدققي الأمان:
النظر في المخاطر التي قد يقدمها المترجم خلال عملية التدقيق
يُوصى فريق التطوير بتحديث إصدار المترجم في الوقت المناسب.
إدخال فحص تلقائي لإصدار المترجم في عملية CI/CD
الموارد العملية القابلة للإشارة تشمل:
تنبيه أمان رسمي من سوليدتي
قائمة الأخطاء في مستودع Solidity على GitHub
فحص إصدار مترجم العقود الذكية المقدم من Etherscan
بشكل عام، على الرغم من أنه لا داعي للقلق المفرط، يجب على المطورين وخبراء الأمن أن يدركوا تمامًا المخاطر المحتملة لثغرات مترجم Solidity، وأن يتخذوا التدابير المناسبة للوقاية منها.
قد تحتوي هذه الصفحة على محتوى من جهات خارجية، يتم تقديمه لأغراض إعلامية فقط (وليس كإقرارات/ضمانات)، ولا ينبغي اعتباره موافقة على آرائه من قبل Gate، ولا بمثابة نصيحة مالية أو مهنية. انظر إلى إخلاء المسؤولية للحصول على التفاصيل.
تسجيلات الإعجاب 12
أعجبني
12
6
إعادة النشر
مشاركة
تعليق
0/400
NftCollectors
· 08-07 11:16
من الناحية الأساسية للبيانات، فإن ما لا يقل عن 10% من كود العقد لم يخضع للتدقيق الأمني، ومخاطر ثغرات العقود الذكية لا تقل عن مخاطر تداول الأعمال الفنية، لكن القليل من الناس يفهمون ذلك، وهذه مرة أخرى منطقة ذات قيمة منخفضة.
شاهد النسخة الأصليةرد0
LiquidityHunter
· 08-06 16:01
كم هو الفضاء المتاح للمراجحة في ثغرة المترجم أثناء التفكير العميق في منتصف الليل
شاهد النسخة الأصليةرد0
fren.eth
· 08-06 15:44
لقد بدأ الجميع في استخدام العقود الذكية، ويمكنهم تجنب الفخاخ الأكبر من الأخطاء. ألا تعتبر هذه سؤالاً سهلاً؟
شاهد النسخة الأصليةرد0
ImpermanentPhilosopher
· 08-06 15:35
أمام المترجم أقدّم القرابين... مصير المطورين في أيدي من
شاهد النسخة الأصليةرد0
DefiSecurityGuard
· 08-06 15:35
وجدت علم أحمر آخر لمجمع Solidity... متى سيتعلم المطورون فعلاً التحقق من مخرجات bytecode الخاصة بهم smh
شاهد النسخة الأصليةرد0
HashBard
· 08-06 15:33
أخطاء في المترجم؟ ngmi... سوليديتي تتحول إلى شعر من الألم fr fr
تحليل عميق لمخاطر ثغرات مترجم Solidity واستراتيجيات التعامل معها
تحليل ثغرات مترجم Solidity واستراتيجيات المواجهة
المجمع هو أحد المكونات الأساسية في أنظمة الكمبيوتر الحديثة، وهو مسؤول عن تحويل الشيفرات المصدرية للغات البرمجة العالية المستوى إلى تعليمات قابلة للتنفيذ على المستوى الأدنى. على الرغم من أن المطورين وخبراء الأمن عادةً ما يركزون على أمان شفرة التطبيق، إلا أن المجمع نفسه كبرنامج كمبيوتر قد يحتوي أيضًا على ثغرات أمنية. يمكن أن تشكل هذه الثغرات مخاطر أمنية خطيرة في حالات معينة.
وظيفة مترجم Solidity هي تحويل كود العقد الذكي إلى كود تعليمات Ethereum Virtual Machine (EVM). على عكس ثغرات EVM نفسها، فإن ثغرات مترجم Solidity لن تؤثر مباشرة على شبكة Ethereum، ولكنها قد تؤدي إلى إنتاج كود EVM غير متوافق مع توقعات المطورين، مما قد يؤدي إلى عواقب وخيمة.
فيما يلي بعض الأمثلة الحقيقية على ثغرات مترجم Solidity:
ثغرة أمنية HighOrderByteCleanStorage ( الإصدار 0.1.6-0.4.4): قد يؤدي هذا الثغرة إلى إرجاع قيمة خاطئة لمتغير storage دون تعديله.
ثغرة أمنية InlineAssemblyMemorySideEffects ( الإصدار 0.8.13-0.8.15):
بسبب تنفيذ غير صحيح لاستراتيجيات تحسين المترجم، قد تؤدي عمليات كتابة الذاكرة إلى إزالتها بشكل خاطئ.
AbiReencodingHeadOverflowWithStaticArrayCleanup ( الإصدار 0.5.8-0.8.16): عند إجراء عملية abi.encode على مصفوفة من نوع calldata، قد تؤدي الأخطاء في تنظيف البيانات إلى عدم تناسق نتائج الترميز وفك الترميز.
لمواجهة مخاطر ثغرات مترجم Solidity، يجب على المطورين:
يجب على مدققي الأمان:
الموارد العملية القابلة للإشارة تشمل:
بشكل عام، على الرغم من أنه لا داعي للقلق المفرط، يجب على المطورين وخبراء الأمن أن يدركوا تمامًا المخاطر المحتملة لثغرات مترجم Solidity، وأن يتخذوا التدابير المناسبة للوقاية منها.