
هل سمعتَ يومًا عن هجوم العناوين القصيرة؟ هذه ثغرة أمنية بارزة في عقود الإيثريوم الذكية، تسمح للمهاجمين باستغلال الاختلافات في التعامل مع العناوين ذات الأطوال المختلفة.
لمزيد من التوضيح، ستستكشف هذه المقالة آليات هجمات العناوين القصيرة، وتأثيرها، واستراتيجيات الوقاية الرئيسية. من خلال دحض المفاهيم الخاطئة وتقديم رؤى حول الحد من هذه الهجمات، نهدف إلى تقديم نظرة شاملة للمستخدمين العاديين والخبراء على حد سواء.
اقرأ أيضاً: ما هي العملة المشفرة الأكثر أماناً؟
الوجبات السريعة الرئيسية
- تستغل هجمات العناوين القصيرة ثغرات العقود الذكية في محافظ العملات المشفرة عن طريق إرسال الأموال إلى عنوان قصير مشابه المظهر، مما يخدع المستخدمين لارتكاب أخطاء.
- قد يفقد المستخدمون أموالهم إذا أرسلوا عن طريق الخطأ عملات مشفرة إلى هذه العناوين المضللة بسبب عدم وجود عمليات تحقق في بعض واجهات المحفظة.
- وتتضمن استراتيجيات التخفيف استخدام أدوات التحقق من العنوان والتأكد من تحديث برنامج المحفظة.
ما هو هجوم العنوان القصير؟
تُمكّن منصة إيثيريوم اللامركزية من تنفيذ العقود الذكية باستخدام لغة البرمجة سوليديتي. كما تفرض سوليديتي قيودًا صارمة على طول العناوين، حيث يجب أن يكون طول العنوان 20 بايتًا بالضبط (40 حرفًا سداسيًا عشريًا).
يضمن هذا الاتساق والأمان عند التعامل مع العناوين في معاملات العقود الذكية. ومع ذلك، يُعد هجوم العناوين القصيرة ثغرة أمنية يستغلها المهاجمون لخوارزميات ترميز العناوين بتجاهل الأحرف الأخيرة من سلسلة مُرمَّزة.
من خلال إنشاء سلسلة مشفرة تتطابق مع بادئة عنوان شرعي، يخدع المهاجمون المستخدمين لإرسال الأموال أو إجراء عمليات باستخدام العنوان الذي يتحكم فيه المهاجم.
على الرغم من أن عناوين Ethereum عادةً ما تكون 20 بايتًا، إذا استخدم المهاجم عنوانًا أقصر من 20 بايتًا، تقوم Solidity تلقائيًا بحشو البايتات المتبقية على اليمين بالأصفار للحفاظ على طول العنوان الصحيح.
على سبيل المثال، إذا كانت الدالة تتوقع وسيطتين - مثل عنوان ومبلغ رمز - فقد يُفسّر العقد، دون قصد، جزءًا من الوسيطة الثانية (مبلغ الرمز) على أنها جزء من الأولى (العنوان) بسبب هذا التضمين التلقائي. يسمح هذا التفسير الخاطئ للمهاجم بإرسال عدد أكبر من الرموز مما كان مقصودًا في الأصل.
في جوهره، غالبًا ما يستغل هذا النوع من الهجمات الخطأ البشري، إذ قد لا يتحقق المستخدمون من كل حرف في عنوان المحفظة بدقة نظرًا لتعقيده. لذلك، يستغل المهاجمون هذا الأمر بإنشاء عناوين تبدو شبه مطابقة للعناوين الحقيقية، ولكنها مختصرة أو معدلة قليلاً.
مثال على هجوم عنوان قصير
خذ بعين الاعتبار رمز الصلابة أدناه والذي يستخدم لنقل الرموز من حساب المرسل إلى آخر:
دالة النقل (العنوان _إلى، uint256 _القيمة) العامة {
يتطلب(_to.length == 20)؛
_إلى.نقل(_القيمة)؛
}
صُممت دالة العقد هذه لتحويل مبلغ محدد إلى عنوان مُحدد. للتحقق من صحة العنوان المُدخل، يتحقق العقد من طوله باستخدام خاصية "الطول".
مع ذلك، فإن الاعتماد على خاصية "الطول" ليس طريقة موثوقة للتحقق من صحة العنوان، لأنه يُرجع عدد البايتات، وليس البتات. هذا يُنشئ ثغرة أمنية أمام هجوم العنوان القصير، حيث يُمكن للمهاجم توفير عنوان أقصر من 20 بايتًا، ولكنه لا يزال يبدو صحيحًا لأن طوله يساوي 20 بايتًا أو يتجاوزها.
لإظهار كيفية حدوث هجوم عنوان قصير، ضع في اعتبارك كود Solidity التالي:
دالة النقل (العنوان _إلى، uint256 _القيمة) العامة {
يتطلب(_to.length == 20)؛
_إلى.نقل(_القيمة)؛
}
دالة testAttack() العامة {
العنوان shortAddress = 0x01؛
قيمة uint256 = 100؛
نقل (العنوان القصير، القيمة)؛
}
في هذه الحالة، دالة النقل مطابقة لتلك المستخدمة في المثال السابق. مع ذلك، يتضمن العقد أيضًا دالة "testAttack"، التي تستدعي دالة النقل باستخدام عنوان قصير وقيمة ١٠٠.
بما أن دالة النقل تُتحقق من صحة العنوان باستخدام خاصية "الطول"، فإنها تفترض خطأً أن العنوان المُدخل هو عنوان صحيح بطول 20 بايت، وتُكمل عملية النقل. ولكن، لأن العنوان أقصر من 20 بايت، ستفشل عملية النقل ولن تُنقل القيمة.
كيف تعمل هجمات العناوين القصيرة؟
ينص معيار ERC20 على أن دالة "النقل" تتطلب معاملين: عنوان المستلم وقيمة "uint256" التي تمثل عدد الرموز المراد نقلها. في هجوم عنوان قصير، يُقدم المهاجم مدخلات أقصر مما يتوقعه العقد.
يؤدي هذا إلى سوء فهم العقد المُستلِم للبيانات، إذ قد تصبح الحقول غير مُحاذاة. ونظرًا لأن بعض تطبيقات الجهات الخارجية التي تُشفِّر بيانات المعاملات قد لا تُعالج الحشو أو تُجري التحقق من الطول بشكل صحيح، فقد يُعالج العقد معاملات ذات تنسيق غير صحيح، مما يُؤدي إلى سلوك غير مقصود.
وفيما يلي تفصيل مبسط للعملية:
التلاعب بالعنوان
يُقدّم المهاجم نسخةً مختصرةً من عنوان محفظةٍ صحيح. في بعض الحالات، قد يستخدم المهاجم أداةً أو برنامجًا خبيثًا لملء العنوان تلقائيًا أو عرضه بشكلٍ خاطئ أثناء عملية المعاملة.
على سبيل المثال، يرسل المهاجم معاملة إلى وظيفة التحويل بعنوان قصير 0x123456 ومبلغ 1000
حشوة
يضيف عميل الإيثريوم أصفارًا إلى العنوان المختصر لتوسيعه إلى الـ 20 بايت المطلوبة. هذا التبطين يُشوّه محاذاة المعلمات التالية في المعاملة، مما يُؤدي إلى سوء فهم العقد الذكي لبيانات المعاملة.
على سبيل المثال، يقوم عميل إيثيريوم بإضافة حشو إلى 0x123456 ليصبح 0x1234560000000000000000000000000000000000 . يؤدي هذا إلى تغيير قيمة المعامل المقصودة وهي 1000، مما يتسبب في تفسير العقد للبيانات بشكل خاطئ.
خطأ بشري
لا يلاحظ المستخدم الذي بدأ المعاملة أن عنوان المحفظة غير كامل أو غير صحيح. يحدث هذا غالبًا لأن العناوين طويلة، ويفترض المستخدمون أن نسخها ولصقها سيكون دائمًا دقيقًا.
تحويل الأموال
يُرسل المستخدم العملة المشفرة إلى عنوان مُختصر أو غير صحيح. ولأن معاملات البلوك تشين لا رجعة فيها، تُفقد الأموال أو تُرسل إلى عنوان المُهاجم.
وقعت إحدى أبرز حالات هجوم العناوين المختصرة في منتصف عام 2022، عندما كشف أحد المؤثرين البارزين في مجال العملات الرقمية علنًا عن خطة لتحويل 250 إيثيريوم (بقيمة تقارب 500,000 ألف دولار أمريكي آنذاك). قام المهاجمون، الذين كانوا يراقبون معاملات المؤثر، باستبدال عنوان محفظة المستلم بنسخة مختصرة في خانة المعاملة.
افترض المؤثر صحة العنوان، فأرسل الأموال دون علمه إلى عنوان المهاجم. ورغم المحاولات السريعة لعكس المعاملة، إلا أن استحالة عكسها في تقنية البلوك تشين أدت إلى خسارة دائمة.
وسلطت هذه الحادثة الضوء على أهمية التحقق من عناوين المحفظة، خاصة عند التعامل مع مبالغ كبيرة من المال أو إجراء معاملات عامة.
مع ذلك، تجدر الإشارة إلى أنه بدءًا من إصدار Solidity 0.5.0 ، أضاف المُصرّف فحوصات أثناء التشغيل لضمان تطابق حجم بيانات الاستدعاء مع الطول المتوقع للوسائط ذات الحجم الثابت، أو على الأقل مع الحد الأدنى المطلوب للوسائط ذات الحجم الديناميكي. تُساعد هذه الفحوصات في الحماية من أساليب التلاعب، مثل هجمات العناوين القصيرة، حيث قد يحاول المهاجمون استغلال اختلافات طول البيانات.
بالإضافة إلى ذلك، فهو يضمن اتساق البيانات أثناء تنفيذ العقد.
"إن تقنية البلوك تشين هي تقنية مثيرة للاهتمام للغاية وسيكون لها بعض التطبيقات العميقة جدًا للمجتمع على مر السنين القادمة." - كينيث سي جريفين
تأثير هجمات العناوين القصيرة
قد لا تكون هجمات العناوين القصيرة منتشرة على نطاق واسع مثل التصيد الاحتيالي أو عمليات الاحتيال ، لكن تأثيرها كبير، خاصة بالنسبة للمعاملات ذات القيمة العالية.
وعلاوة على ذلك، نظرًا لأن هجمات العناوين القصيرة تعتمد على التلاعبات الدقيقة، فإنها غالبًا ما يمكنها تجاوز عمليات التحقق الأمنية القياسية، مما يجعلها خطيرة بشكل خاص للمستخدمين غير المعتادين على التحقق من كل تفاصيل معاملاتهم.
أُبلغ عن غالبية هجمات العناوين المختصرة على منصات التمويل اللامركزي (DeFi) وخدمات المحافظ الرقمية التي تفتقر إلى إجراءات تحقق صارمة. وتُعد هذه المنصات عرضة للخطر بشكل خاص نظرًا لطبيعة معاملات الند للند وغياب الوسطاء القادرين على التحقق من صحة عناوين المحافظ.
وفقًا لـ Chainanalysis ، في الربع الأول من عام 2022، سرق المتسللون 1.3 مليار دولار من البورصات والمنصات والكيانات الخاصة، مع تأثير جزء كبير من الخسائر بشكل غير متناسب على قطاع التمويل اللامركزي (DeFi).

علاوة على ذلك، تجدر الإشارة إلى أنه في حين أن أي شخص قد يقع ضحيةً لهذه الهجمات، إلا أن غالبية الضحايا عادةً ما ينتمون إلى فئة مستخدمي العملات المشفرة الجدد أو عديمي الخبرة. ويساهم تعقيد عناوين المحافظ وعدم الإلمام ببروتوكولات المعاملات في زيادة قابليتهم للاختراق.
حتى بعض شركات العملات المشفرة الكبرى لا تمتلك على الأرجح دفاعات إلكترونية متطورة بما يكفي للتغلب على المتسللين. مع نمو صناعة العملات المشفرة بمعدل سريع، من المفهوم صعوبة مواكبة هذا النمو. - لوك ويلموت، المؤسس المشارك والمدير التنفيذي للعمليات في سوق السيارات المشفرة AutoCoinCars.
كيفية اكتشاف ثغرات هجوم العناوين القصيرة
يتطلب اكتشاف ثغرات هجمات العناوين القصيرة نهجًا متعدد الطبقات، يشمل مراجعات شاملة للأكواد البرمجية، وأدوات آلية، وممارسات أمنية مُحسّنة. إليك بعض الطرق لاكتشاف هذه الثغرات في العقود الذكية:
عمليات تدقيق الكود والتحقق الرسمي
من أكثر الطرق فعاليةً للكشف عن ثغرات العناوين القصيرة عمليات التدقيق اليدوي للأكواد وعمليات التحقق الرسمية. يستطيع المدققون ذوو الخبرة في أمن العقود الذكية تحديد نقاط الضعف المحتملة في تعامل العقد مع العناوين.
يستخدم التحقق الرسمي نماذج رياضية لإثبات أن العقد يتصرف كما هو متوقع في جميع الحالات، بما في ذلك تلك التي تنطوي على عناوين مشوهة أو مختصرة.
أدوات الأمن الآلي
هناك العديد من الأدوات الآلية المصممة للكشف عن الثغرات الأمنية في العقود الذكية، بما في ذلك تلك المعرضة لهجمات العناوين القصيرة. من بين الأدوات الشائعة:
- ميثكس:هذه أداة تحليل أمان عقود Ethereum الذكية التي تساعد في تحديد نقاط الضعف المحتملة، بما في ذلك مشكلات العناوين القصيرة.
- تأمين:أداة تدقيق تقوم بإجراء عمليات فحص أمنية آلية للعقود الذكية وتسلط الضوء على المشكلات المتعلقة بتنسيق العناوين.
- مكونات Remix IDE الإضافية:يمكن لمطوري Ethereum استخدام Remix IDE مع مكونات إضافية أمنية تعمل تلقائيًا على تحديد التعليمات البرمجية المعرضة للخطر.
تقوم هذه الأدوات بتحليل منطق العقد وتسليط الضوء على أي ممارسات غير آمنة يمكن استغلالها من خلال هجمات العناوين القصيرة.
التحقق من الطول في الكود
يجب على مطوري العقود الذكية تطبيق التحقق من طول العناوين لضمان أن يكون طول جميع العناوين 20 بايتًا قبل معالجة المعاملات. يمكن تحقيق ذلك من خلال التحقق صراحةً من طول معلمة العنوان ورفض المعاملات ذات العناوين المختصرة أو ذات التنسيق غير الصحيح.
على سبيل المثال، في Solidity، يمكن للمطورين استخدام الوظيفة التالية للتحقق من صحة عنوان:
الدالة isValidAddress(address _addr) public pure تُرجع (bool) {
العودة _addr != address(0) && _addr == address(uint160(_addr));
}
يضمن هذا الفحص البسيط أن يكون طول العنوان صحيحًا قبل معالجة المعاملة، مما يمنع هجمات العناوين القصيرة المحتملة.
محاكاة شبكة الاختبار واختبار الاختراق
قبل نشر عقد ذكي على شبكة إيثريوم الرئيسية، ينبغي على المطورين إجراء محاكاة لشبكة الاختبار واختبار اختراق لتحديد الثغرات الأمنية المحتملة. تُحاكي هذه الاختبارات سيناريوهات هجمات واقعية، ويمكنها الكشف عن مشاكل قد لا تكون واضحة أثناء التطوير.
من خلال محاكاة هجمات العناوين القصيرة على شبكة اختبار، يمكن للمطورين تقييم ما إذا كان عقدهم يتعامل بشكل صحيح مع تنسيق العناوين ويضمن المعاملات الآمنة.
اقرأ أيضاً: إحصائيات اختراقات أمن العملات المشفرة: الاتجاهات والرؤى
كيفية منع هجمات العناوين القصيرة

يتطلب منع هجمات العناوين القصيرة حلولاً تكنولوجية ووعياً من المستخدمين. هناك عدة استراتيجيات فعّالة يمكن أن تساعد في تقليل احتمالية الوقوع ضحية لهذه الهجمات:
التحقق من صحة المدخلات
استخدم آليات تحقق قوية من صحة المدخلات في واجهة المستخدم أو المكونات خارج السلسلة للتحقق من مطابقة العناوين للطول والتنسيق المتوقعين. على سبيل المثال، توفر العديد من محافظ العملات المشفرة الآن أدوات للتحقق من صحة العناوين، والتي تتحقق تلقائيًا من صحة العنوان الكامل قبل إجراء أي معاملة.
تضمن هذه الأدوات عدم قدرة المستخدمين على إرسال الأموال إلى عناوين ناقصة أو غير صحيحة. ومن الأمثلة على ذلك Tokenview ، وهو أداة شائعة الاستخدام للتحقق من عناوين محافظ العملات الرقمية، مما يُسهّل عملية التحقق من عناوين المحافظ عبر سلاسل الكتل المتعددة.
إنه يتيح للمستخدمين التأكد من صحة العناوين مع توفير معلومات حول الرموز المحتفظ بها وسجل المعاملات وغيرها من التفاصيل ذات الصلة.
تعليم المستخدم
بما أن العديد من هجمات العناوين القصيرة تستغل الخطأ البشري، فإن تثقيف المستخدمين أمر بالغ الأهمية. يمكن لبورصات العملات المشفرة ومقدمي خدمات المحافظ الإلكترونية تقليل المخاطر من خلال تعليم المستخدمين كيفية التحقق من العناوين وتشجيعهم على التحقق جيدًا من المعاملات قبل إرسال الأموال.
يمكن لخطوات بسيطة، مثل نسخ العنوان الكامل ولصقه في المفكرة للتحقق منه يدويًا، أن تمنع العديد من الهجمات.
آلية التحقق من المجموع
المجموع الاختباري هو سلسلة من الأرقام والحروف مشتقة من البيانات الأصلية، ويمكن استخدامها للكشف عن الأخطاء. تأكد من أن جميع العناوين هي عناوين إيثريوم صالحة بمجموع اختباري.
يساعد تنفيذ مجموعات التحقق من صحة البيانات على التحقق من توافقها مع تنسيق عنوان Ethereum، وبالتالي تقليل مخاطر التلاعب بالعناوين القصيرة.
التدقيق والاختبار
إن إجراء عمليات تدقيق دورية للعقود الذكية واختبارات شاملة قد يكشف عن ثغرات أمنية. لذلك، فإن استخدام أدوات التدقيق الآلي، إلى جانب المراجعات اليدوية للأكواد البرمجية، يمكن أن يلعب دورًا حاسمًا في منع مثل هذه الهجمات.
التحقق الرسمي
يتضمن التحقق الرسمي إثبات صحة العقود الذكية رياضيًا. يمكن استخدام هذه الطريقة لضمان دقة معالجة معلمات الإدخال، وبالتالي منع هجمات العناوين القصيرة.
من الأمثلة على أدوات التحقق الرسمي أداة Solidity SMTChecker . عند دمجها في مُصرّف Solidity، فإنها تستخدم أساليب رسمية لاكتشاف الأخطاء المنطقية.
مكتبات الرياضيات الآمنة
يُمكن استخدام مكتبات رياضية آمنة مثل SafeMath من OpenZeppelin لتعزيز الحماية ضد هجمات العناوين القصيرة. توفر هذه المكتبات دوالًا تُجري عمليات حسابية مع فحوصات أمان مُدمجة، مما يضمن التنبيه بالأخطاء في حالات تجاوز السعة أو نقصها.
نقاط ضعف أخرى شائعة في العقود الذكية

توفر العقود الذكية ميزة رئيسية من خلال السماح لنا بالتحقق من البرنامج الأساسي وعملياته دون الحاجة إلى الثقة بمزود الخدمة.
ومع ذلك، فإن وجود العقود الذكية يجذب أيضًا الأفراد الساعين لاستغلال الثغرات المحتملة. ويختبئ وراء الكواليس أولئك الذين يبحثون عن فرص لاستغلال نقاط الضعف في الشيفرات البرمجية.
في السنوات الأخيرة، فُقدت مليارات الدولارات من العملات المشفرة بسبب ثغرات في العقود الذكية. فعلى سبيل المثال، في أغسطس 2022، أعلنت شركة نوماد الأمريكية للعملات المشفرة عن سرقة 190 مليون دولار من العملات المشفرة نتيجة اختراق جسر رموز نوماد.
هذا يُبرز الحاجة المُلِحّة لتعزيز إجراءات الأمن. دعونا نُلقي نظرة سريعة على بعض أشكال ثغرات العقود الذكية الأخرى التي يجب أن تكون على دراية بها:
تجاوز/نقصان عدد صحيح
يُعدّ تجاوز ونقصان الأعداد الصحيحة من المشكلات الشائعة في عقود Solidity الذكية، والتي تنشأ عندما تتجاوز العمليات الحسابية الحد الأقصى أو الأدنى للقيم التي يُمكن تخزينها في نوع بيانات مُعيّن. تؤثر هذه المشكلات على نوعي البيانات "uint" و"int"، مما قد يؤدي إلى سلوك غير متوقع أو فقدان للأصول.
على سبيل المثال، إذا استخدم العقد 32 بتًا من الذاكرة لكل عدد صحيح، فلن يتمكن إلا من تخزين القيم ضمن نطاق [0، 2,147,483,647]. إذا أسفرت عملية حسابية عن قيمة تتجاوز 2,147,483,647، فسيتم تحويل المتغير تلقائيًا إلى 0، مما قد يؤدي إلى مشاكل كبيرة.
من الأمثلة على ذلك هجوم "إثبات ضعف العملة" (PoWHC). يُعدّ PoWHC مخططًا هرميًا مبنيًا على منصة إيثيريوم باستخدام لغة سوليديتي، وقد ابتكره فريق من موقع 4chan. في هذه الحالة، أغفل مُصممو العقد الذكي مراعاة حالات التدفق الزائد والناقص، مما أدى إلى سحب 866 إيثيريوم بشكل غير مصرح به من العقد.
توصية مجاناً
استخدم مكتبة SafeMath في Solidity للحماية من تجاوز ونقصان الأعداد الصحيحة. توفر هذه المكتبة دوالاً لإجراء عمليات حسابية تتحقق تلقائيًا من هذه الشروط، وتُطلق استثناءً في حال اكتشاف تجاوز أو نقصان في الأعداد الصحيحة.
هجوم إعادة الدخول
إعادة الدخول هي ثغرة أمنية في عقود Solidity الذكية، تسمح للمهاجمين باستدعاء وظائف داخل العقد بشكل متكرر، مما قد يؤدي إلى سرقة الأموال أو الأصول. تحدث هذه الثغرة عندما يتمكن المهاجم من استدعاء وظيفة عقد عدة مرات قبل اكتمال التنفيذ الأولي، مما يسمح له بالتلاعب بحالة العقد وإساءة استخدام الرموز.
تُعد هجمات إعادة الدخول أسلوبًا شائعًا يستخدمه المتسللون الخبيثون، حيث تمثل 5 من أصل 60 عملية اختراق تُعزى إلى الثغرات الأمنية، مما أدى إلى خسائر إجمالية قدرها 8.5 مليون دولار في النصف الأول من عام 2023. ومن الأمثلة البارزة على ذلك ما حدث في يونيو 2016 عندما استنزف هجوم مماثل الأموال من "DAO"، مما دفع مطوري إيثيريوم إلى إنشاء نسخة من سلسلة الكتل.
توصية مجاناً
لتقليل هذه الثغرة الأمنية، أحد الحلول الفعالة هو الاستفادة من المُعدِّل "nonReentrant" الذي توفره عملية تنفيذ ERC20 الخاصة بـ OpenZeppelin.
من المهم ملاحظة أنه نظرًا لوجود حارس "غير قابل لإعادة الدخول" واحد فقط، لا يمكن للوظائف المُعَيَّنة بهذا المُعَيِّن الاتصال ببعضها البعض مباشرةً. مع ذلك، يُمكن تجاوز هذا القيد بجعل هذه الوظائف خاصة وتوفير نقاط دخول خارجية مُعَيَّنة بعلامة "غير قابل لإعادة الدخول".
لتخفيف هجمات إعادة الدخول، هناك استراتيجية فعّالة أخرى تتمثل في تطبيق نمط "التحقق - التأثيرات - التفاعلات". يبدأ هذا النهج بالتحقق من صحة المدخلات والشروط، يليه تحديث متغيرات الحالة، وأخيرًا التفاعل مع العقود الخارجية.
من خلال التأكد من الانتهاء من جميع تعديلات الحالة قبل حدوث أي تفاعلات خارجية، يمنع هذا النمط بشكل فعال نقاط ضعف إعادة الدخول.
تخزين البيانات غير الصحيح
من الأخطاء الشائعة في تطوير العقود الذكية استخدام ذاكرة تخزين بيانات غير مُحسّنة، مما قد يؤدي إلى زيادة تكاليف استهلاك الوقود للمعاملات. تُستخدم الذاكرة كمساحة تخزين مؤقتة للمتغيرات أثناء تنفيذ العقد، وتُمسح بعد كل استدعاء دالة.
توصية مجاناً
بالنسبة للوظائف التي تحتاج فقط لقراءة القيم، يُنصح باستخدام بيانات الاستدعاء (Calldata). بيانات الاستدعاء هي مساحة تخزين للقراءة فقط، تخزن وسيطات الوظيفة المُمررة إلى العقد، مما يسمح بتحسين تكلفة الغاز ويضمن ثبات وسيطات الإدخال.
استغلال الموافقة
ثغرات الموافقة هي ثغرة أمنية موجودة في عقود رموز ERC20، حيث يمنح المستخدمون عقدًا تابعًا لجهة خارجية صلاحية نقل عدد غير محدود من الرموز نيابةً عنهم. هذا يسمح للعقد المُعتمد بنقل الرموز من حساب المستخدم إلى أي حساب آخر دون الحاجة إلى تفويض إضافي.
تكمن مشكلة هذا الإعداد في أنه يسمح للعقد المُعتمد بنقل الرموز في أي وقت، حتى لو ألغى المستخدم موافقته أو تعرض العقد للاختراق. وبالتالي، يمكن للمهاجم استغلال هذه الثغرة بالسيطرة على العقد المُعتمد وتنفيذ عمليات نقل رموز غير مُصرّح بها من حساب المستخدم إلى حسابه.
توصية مجاناً
للحد من مخاطر استغلال الموافقات، ينبغي لعقود رموز ERC20 تصميم آلية السماح للحد من عدد الرموز التي يمكن للعقد المعتمد نقلها نيابةً عن المستخدم. ويمكن تحقيق ذلك بتحديد حد أقصى للسماح، أو بتطبيق سماح محدود المدة ينتهي بعد فترة محددة.
بالإضافة إلى ذلك، يمكن للمطورين تعزيز الأمان من خلال طلب تأكيد المستخدم لكل عملية نقل رمزية أو من خلال استخدام مصادقة متعددة العوامل للتحقق من عمليات نقل الرمزية.
اعتماد الحالة عبر الوظائف
ثغرة اعتماد حالة الوظيفة المتقاطعة تُشبه ثغرة إعادة الدخول، حيث تحدث عندما تعتمد دالتان على حالة العقد نفسها. قد يؤدي هذا إلى نتائج غير مقصودة إذا تم استدعاء إحدى الدالتين بينما لا تزال الأخرى قيد التنفيذ.
بالإضافة إلى ذلك، قد تنشأ هذه المشكلة عند استدعاء كلتا الوظيفتين في نفس الوقت، مما يؤدي إلى ظروف سباق محتملة تهدد سلامة العقد الذكي.
توصية مجاناً
للحد من هذه الثغرة، يُنصح بتطبيق نفس الإجراءات الوقائية المُستخدمة لمعالجة حالات تسابق مماثلة. وتحديدًا، التأكد من إتمام جميع تغييرات الحالة قبل أي عمليات نقل للأثير.
باتباع هذا النهج، سوف يستكمل العقد الذكي جميع تعديلات الحالة الضرورية قبل بدء أي معاملات إيثر.
لا سبيل للانتصاف. لا يمكن إصلاحه. لا يمكن التراجع عن معاملات بلوكتشين - أليكس فين، رائد أعمال في مجال العملات المشفرة
الاستنتاج: مستقبل منع هجمات العناوين القصيرة
تُشكّل هجمات العناوين القصيرة مصدر قلق بالغ نظرًا للخسائر الكبيرة التي غالبًا ما تُسببها. مع تطور العملات المشفرة وتقنية البلوك تشين، من الضروري أن يظل المستخدمون والمنصات على حد سواء على أهبة الاستعداد لمواجهة هذه الأنواع من الهجمات.
إن الجمع بين تثقيف المستخدمين والتحسينات التكنولوجية وتحسينات المنصة يمكن أن يقلل بشكل كبير من احتمالية وقوع هذه الهجمات. ومن خلال زيادة الوعي وتشجيع أفضل الممارسات، يمكن لمجتمع العملات المشفرة خلق بيئة أكثر أمانًا لجميع المستخدمين.
في النهاية، أفضل دفاع ضد هجمات العناوين القصيرة هو الحرص. يجب على المستخدمين تخصيص الوقت للتحقق من كل معاملة، ويجب على المنصات تطبيق تدابير أمنية متقدمة للحماية من التهديدات المتطورة.
ومع نضوج مشهد العملات المشفرة، ستكون هذه الجهود ضرورية للحفاظ على الثقة وتأمين الأصول الرقمية من الهجمات الاحتيالية.
الأسئلة الشائعة
ما هو هجوم العنوان القصير في العملات المشفرة؟
يحدث هجوم العنوان القصير عندما يستغل أحد الجهات الخبيثة استخدام عناوين مختصرة أو مختصرة في معاملات العملات المشفرة، مما يدفع المستخدمين إلى إرسال الأموال إلى مستلم غير مقصود.
كيف تحدث هجمات العناوين القصيرة؟
عادةً ما تستغل هذه الهجمات واجهات المحافظ التي تعرض جزءًا فقط من عنوان طويل. إذا قام مستخدم بنسخ عنوان مختصر وإرسال أموال، فقد يُرسل عن غير قصد عملة مشفرة إلى عنوان مختلف يبدأ بأحرف متشابهة، مما يؤدي إلى خسارة الأموال.
كيف يمكنني حماية نفسي من هجمات العناوين القصيرة؟
لتجنب هجمات العناوين المختصرة، تأكد دائمًا من صحة العنوان الكامل قبل إرسال العملات المشفرة. استخدم محافظ موثوقة تعرض العنوان الكامل، وفكّر في استخدام رموز الاستجابة السريعة (QR code) أو ميزات تأكيد العنوان لضمان الدقة.
هل هجمات العناوين القصيرة شائعة؟
رغم أن هجمات العناوين القصيرة ليست شائعة كغيرها من أنواع الهجمات، إلا أنها واردة الحدوث، خاصةً بين المستخدمين عديمي الخبرة. الوعي واتباع ممارسات سليمة في التعامل مع المحفظة الإلكترونية يُقللان بشكل كبير من خطر الوقوع ضحية لهذه الهجمات.
