أمان العقد الذكي: نهج Agile SDLC ذكاء بيانات PlatoBlockchain. البحث العمودي. عاي.

أمان العقد الذكي: نهج SDLC رشيق 

وقت القراءة: 10 دقائق

تم نقل Blockchain على أنه دفتر أستاذ لامركزي ومقاوم للعبث. لكن دفتر الأستاذ هذا الذي لا يمكن التلاعب به معرض للقرصنة والاستغلال. تعتبر اللامركزية ، والتي تعد واحدة من أقوى مزايا Blockchain ، أحد عيوبها. 

حسنًا ، هذا جيد ، لكن ماذا عن SDLC؟ 

يعتمد نهج دورة حياة البرنامج الذي نحن بصدد مناقشته على تصنيف الثغرات الأمنية في العقود الذكية إلى مراحل متعددة. 

في القسم الأول ، عرضنا المشكلات الأمنية في العقود الذكية. وفي القسم التالي ، نناقش الحلول مقسمة إلى أربع مراحل ؛ تصميم الأمان ، وتنفيذ الأمان ، والاختبار قبل النشر ، والأخير ، المراقبة والتحليل. 

تحليل القضايا الأمنية في العقود الذكية 

العقود الذكية عرضة لمختلف الاختراقات والمآثر. تعمل هذه العقود المرادفة للاتفاقيات القانونية الواقعية بشكل مستقل بناءً على شروط سلاسل الكتل الأصلية. 

ولكن هل تعتقد أنه حتى تلك البلوكشين الأصلية يمكن أن تكون مسؤولة أيضًا عن التهديدات الأمنية المحتملة في العقود الذكية؟ أدناه ، نقدم بعض خصائص Blockchains لنفسها:

لامركزية: تعتبر إحدى مزايا البروتوكولات القائمة على blockchain. لكن المهاجمين ابتكروا طريقة لتحويل هذه الميزة الإيجابية إلى سمة سلبية. 

يمكن للجهات الخبيثة إنشاء هوية مزيفة لتطوير ونشر عقد ذكي. في بعض الأحيان ، يصبح من الصعب تحديد عقد ضعيف لأن العنوان العام (أو المفاتيح العامة) متاحان فقط في سلاسل الكتل العامة. 

كود مفتوح المصدر: قد يفاجئك هذا ، لكن نعم ، بشكل عام ، معظم أكواد العقود الذكية مفتوحة المصدر إلى حد ما. 

لنفترض أنه في حالة Ethereum Virtual Machine (EVM) ، يكون رمزها الثانوي دائمًا عامًا. ويمكن لبعض برامج فك تشفير Solidity مساعدتك في الحصول على عنوان عقد ذكي ورمز Solidity. إن الكشف عن شفرة المصدر يجعل هذه الميزة ميزة للمهاجمين. 

منصات blockchain غير المتطورة: بالنسبة للمطور ، يعد التعرف على النظام الأساسي للتطوير من المتطلبات الأساسية. هناك العديد من منصات blockchain غير المطورة أو الجديدة ، لذلك لا يمكن للمطورين تطوير معرفة عميقة بالعمليات على blockchain. 

يؤثر هذا التناقض على العقود الذكية بسبب نقص التزامن. تظل العيوب في منصة blockchain غير ملحوظة بسبب تطورها المستمر. 

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

حلول أمن العقود الذكية

الآن ، المضي قدمًا في أمان العقد الذكي ، يمكننا مقارنة جميع الخطوات اللازمة لتأمين عقد ذكي مع تطوره. كما هو الحال في تطوير البرمجيات التقليدية ، فإننا نميل إلى اتباع دورة حياة التطوير ؛ وبالمثل ، يمكننا تصنيف دورة حياة تطوير العقد. 

يمكن تقسيم دورة حياة تطوير العقد الذكي إلى أربع مراحل: تصميم الأمان ، وتنفيذ الأمان ، والاختبار قبل النشر ، والمراقبة والتحليل.

نظرة عامة على موضوعات الأمان من منظور دورة حياة العقد الذكي
نظرة عامة على سمات الأمان من منظور دورة حياة العقد الذكي

1. تصميم الأمن 

تتضمن المرحلة الأولى ثلاثة محاور ؛ مبدأ التصميم ونمط التصميم والنمذجة الأمنية (كما هو موضح في الشكل أعلاه). ينصب التركيز الأساسي لهذه الموضوعات على تصميم العقود وكيف يمكن تجنب التهديدات الأمنية. 

مبدأ التصميم

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

الآن ، قد تعتقد ، كيف سيساعدون في إنشاء عقد ذكي آمن؟ 

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

نمط التصميم

في تصميم البرامج ، تعد أنماط التصميم هي الحلول التي يمكن إعادة استخدامها لحل مشكلة ما. 

إذا أخذنا مثالاً على Ethereum ، فهناك ستة أنماط أمان ؛ فحص التأثيرات-التفاعل ، الإيقاف في حالات الطوارئ ، المزامنة ، مطبات السرعة ، حد المعدل ، وحد الرصيد.  

يمكننا استخدام أنماط الأمان هذه لمعالجة مشكلات الأمان في blockchain مثل إمكانية التعامل مع ثغرة إعادة الدخول من خلال نمط Mutex. 

في الوقت نفسه ، يمكن أن يساعدنا نمط التوقف في حالات الطوارئ في إنهاء تنفيذ العقد إذا تأثر بثغرة أمنية. 

نمذجة الأمن

قد يكون هناك اختلاف بين الكود المطور والرمز المطلوب للعقود حيث يتم استخدام Solidity لإنشاء العقود ؛ هذه اللغة ترضي اكتمال تورينج ، لكنها عرضة للأخطاء. 

يوضح الشكل أعلاه أن هذه المرحلة الفرعية تغطي مرحلتين ؛ تصميم وتنفيذ الأمن. 

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

2. تنفيذ الأمن

في هذا القسم ، سوف نغطي موضوعين من ثلاثة محاور ؛ الأمان

نموذج التطوير والأمان ، حيث سبق أن تناولنا نمذجة الأمان في المرحلة الأخيرة.

تطوير الأمن

سيشاهد هذا القسم كيف يمكن تجنب الثغرات الأمنية أثناء عملية تنفيذ العقد. 

على منصة Ethereum ، لدينا EIPs (مقترحات تحسين Ethereum) - توصيات لمكافحة القضايا الأمنية على إثيريم برنامج. وبالتالي ، فإن خطط التنفيذ المشتركة هذه جديرة بالملاحظة لتنفيذ العقود الذكية بشكل آمن. 

نموذج الأمان

تعمل القوالب كأصل للمستندات الجديدة. تربط قوالب العقد الذكية ذات المعلمات التشغيلية اتفاقية قانونية برمز قابل للتنفيذ. 

في سياق أمان العقد الذكي ، من الممكن استخراج قوالب العقود القياسية مع معلمات الأمان التي تمت ترقيتها ، مثل أنماط الأمان ومكتبات الأمان. سيؤدي ذلك إلى تقليل احتمال حدوث أخطاء في الترميز اليدوي. 

3. الاختبار قبل النشر

مرة أخرى ، تنشأ متطلبات هذه المرحلة من إحدى مزايا العقود الذكية - "الثبات". 

بمجرد إنشاء العقود الذكية ، لا توجد طريقة لتغييرها. لذلك ، من الضروري إجراء اختبارات كافية لضمان أمان العقود الذكية قبل النشر.

تغطي هذه المرحلة ثلاثة معايير أمنية يجب اتباعها قبل نشر عقد ذكي ؛ التحقق الرسمي الصارم وأدوات تحليل التعليمات البرمجية والتدقيق الأمني. 

تحقق رسمي صارم

التحقق الرسمي هو عملية محددة جيدًا تعزز الاستدلال الرياضي والبراهين الرياضية للتحقق من الخصائص المرغوبة للنظام. 

يمكننا إجراء التحقق الرسمي على العقود الذكية لأن برنامج العقد قصير ومحدد زمنيًا. هناك طرق متعددة لإضفاء الطابع الرسمي على العقود الذكية والتحقق منها بشكل صارم ؛ يعتمد بعضها على رمز العقد ، والبعض الآخر يعتمد على دلالات الآلة الافتراضية Ethereum (EVM). 

أدوات تحليل الكود

يتم تحليل الكود بدون تنفيذ البرامج. لهذا الغرض ، نستخدم بعض الأدوات المسماة أدوات اختبار أمان التطبيقات الثابتة (SAST). تساعد هذه الأدوات في اكتشاف الثغرات الأمنية في شفرة المصدر. 

قد يتضمن التحليل الذي تجريه هذه الأدوات واحدة أو كل الخطوات التالية:

(i) قم بإنشاء تمثيل وسيط (IR) ، مثل شجرة بناء الجملة المجردة (AST) ، لتحليل مفصل. 

(الثاني) استكمال IR بالمعلومات الكافية التي تم الحصول عليها من التحكم الثابت أو تحليل تدفق التاريخ وتقنيات التحقق الرسمية ؛ تتضمن هذه الأساليب: التنفيذ الرمزي والتفسير المجرد والتحقق من النموذج الرمزي. 

ولكن ما هي الأدوات التي يمكن للمرء استخدامها لإجراء تحليل الكود على العقد الذكي؟ 

على الرغم من وجود العديد من الأدوات التي يمكن للمرء استخدامها لإجراء التحليل الأمني ​​، فإن Oyente هي الأكثر شيوعًا. 

أوينتي يمكن استخدامها لإجراء تحليل أمني لعقود EVM الذكية. يستخدم "التنفيذ الرمزي" لاكتشاف أربعة أخطاء شائعة ؛ اعتماد أوامر المعاملات ، والاعتماد على الطابع الزمني ، والاستثناءات التي تمت معالجتها بشكل خاطئ ، وإعادة الدخول. 

عمارة أوينتي
عمارة أوينتي

توضح بنية Oyente أنها تأخذ الرمز الثانوي وتقدم حالة Ethereum العالمية كمدخلات. 

أحد الجوانب الأخرى لـ Oyente هو أنه يكتشف نقاط الضعف الأمنية فقط. لا تستكشف تقنية التنفيذ الرمزية التي يستخدمها Oyente جميع المسارات الممكنة. وبالتالي ، تظهر الحاجة إلى أدوات أخرى مثل التدقيق الأمني ​​والتدقيق اليدوي. 

التدقيق الأمني

سنبدأ هذا القسم حيث تركنا القسم الأخير ؛ التدقيق اليدوي. 

لكن أولاً ، دعنا نفهم الحاجة إلى تدقيق أمني ؛ سواء كان اختراق شبكة Ronin أو اختراق Poly Network ، فإن الشفرة غير المدققة هي الأكثر عرضة للاختراق والاستغلال. 

إنها تؤدي إلى خسائر مالية فادحة. ليس مجرد تدقيق مشروع Web3 الخاص بك ، في واقع الأمر ، ولكن الحصول على تدقيق من قبل محترفين خبراء مهم أيضًا لأنه يعتمد على القدرة المهنية للمدققين لإجراء عمليات تدقيق الأمان. 

مرة أخرى ، أين تجد هؤلاء الخبراء المحترفين؟ لا تحتاج إلى الذهاب إلى أي مكان للبحث عن مدققين جديرين بالثقة ؛ انقر https://t.me/quillhash للتواصل مع أحدهم! 

تدقيق العقد الذكي المثالي هو مزيج من تحليل الكود اليدوي والآلي ؛ كما ناقشنا في النقطة السابقة ، على الرغم من متابعة تحليل الكود الآلي من أدوات مثل Oyente ، هناك احتمال وجود ثغرات غير محددة في العقد. 

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

4. المراقبة والتحليل

هل تتذكر مبدأ بلوك تشين دائم التطور الذي ناقشناه في البداية؟ 

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

يمكننا تنفيذ ؛ مكافأة الأخطاء والمراقبة الأمنية والتحليل اللاحق للتغلب على هذه الحواجز. 

مكافأة BUG

نظرًا لأننا ندرس مشكلات الأمان بعد النشر مع العقود ، يمكن أن تكون Bug Bounties مفيدة. تقنية التحقق الرسمية التي تمت مناقشتها سابقًا هي تقنية تحليل ثابتة. من ناحية أخرى ، تعد ميزة Bug Bounty تقنية تحليل ديناميكي. 

المفهوم الكامن وراء Bug Bounty بسيط ؛ يكتشف المتسللون الأخطاء ، وفي المقابل يحصلون على بعض المكافآت المالية. يبدو أنه وضع يربح فيه الجميع ، أليس كذلك؟ لكنها ليست كذلك!

المصيد هنا ؛ أن قيمة الأخطاء قد تكون أعلى من المكافأة في الأسواق الرمادية ، والاحتمال هو أن المتسللين قد يستغلون الخلل أو يبيعونه للحصول على سعر مرتفع. 

في بعض الأحيان ، ينكر أصحاب المشروع دفع المكافأة ما لم يتم تأكيد الأخطاء ؛ يقلق المتسللون أيضًا من عدم اليقين بشأن المدفوعات بعد الكشف عن الأخطاء. 

للتغلب على هذا ، تم اقتراح إطار مكافأة الأخطاء ، المعروف باسم "Hydra". 

تستخدم Hydra تقنية استغلال فجوة تسمى برمجة إصدار N-of-N (NNVP) كنظام مكافأة الأخطاء على blockchain. 

هيكل Hydra برؤوس
هيكل Hydra برؤوس

مراقبة الأمن

يمكننا استخدام تحليل الكود الثابت لاكتشاف الثغرات الأمنية ، ولكن يتم استخدام هذه الطريقة قبل نشر العقود الذكية. 

ولكن للعثور على الأخطاء ونقاط الضعف المحتملة في الوقت الفعلي ، يتعين علينا مراقبة بيانات المعاملات وتحليلها على blockchain. 

يمكن تسمية نقاط الضعف هذه التي تم اكتشافها من خلال تحليل العقود الذكية بثغرات التتبع. تكمن ثلاثة أنواع من العقود في محور نقاط الضعف هذه؛ 

(i) العقود الجشعة (العقود التي تظل قائمة وتغلق الأثير إلى أجل غير مسمى).

(الثاني) العقود الضالة (العقود التي تسرّب الأموال بلا مبالاة للمستخدمين التعسفيين) و ،

(الثالث) عقود الانتحار (العقود التي يمكن لأي مستخدم اعتباطي قتلها). 

تم اقتراح فكرة كائنات خالية من رد الاتصال الفعال (ECF) لتحديد نقاط الضعف من خلال مراقبة كائنات ECF. 

في سياق ذلك ، تم أيضًا تقديم خوارزمية عبر الإنترنت ؛ ساعد في اكتشاف نقاط ضعف غير معروفة. في نفس الاقتراح ، تم اقتراح تنفيذ العقود الذكية على Testnet قبل النشر على Mainnet. 

واجهة المستخدم المراقبة هي عبارة عن منصة مراقبة Blockchain تستخدم React.js. يمكن استخدام هذه المنصة لإجراء المعاملات ، والتحقق من الأصول ، والاستعلام عن حالة Blockchain. 

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

آخر تحليل خاص

يستخدم تحليل Post Hoc بيانات معاملات blockchain لتحليل أو اكتشاف أو تتبع التهديدات المحتملة على blockchain بشروط الشخص العادي. 

إذا ناقشنا تحليل الرسم البياني ، فقد تم تصميمه كنهج لجمع جميع بيانات المعاملات (بما في ذلك المعاملات الداخلية من العقود الذكية). 

بمساعدة هذه البيانات ، أعدوا ثلاثة رسوم بيانية ؛ 

(i) رسم بياني لتدفق الأموال (MFG)

(الثاني) الرسم البياني لإنشاء العقد (CCG) و ،

(الثالث) الرسم البياني لاستدعاء العقد (CIG)

بناءً على تحليل الرسوم البيانية المذكورة أعلاه ، تم اقتراح العديد من النتائج الجديدة ، مثل حلول لقضايا الأمان بين عقود متعددة تتفاعل مع بعضها البعض. 

نظرة عامة على تحليل الرسم البياني
نظرة عامة على تحليل الرسم البياني

مخطط Ponzi هو أحد مخططات الاحتيال الكلاسيكية التي يمكن من خلالها الحصول على عدد كبير من الأموال والتأثير على blockchain الأصلي. لمكافحة هذا الاحتيال ، تم اقتراح آلية مصنف للكشف عن مخططات Ponzi على Ethereum. 

تستخدم هذه الآلية التنقيب عن البيانات والتعلم الآلي للكشف عن عقود بونزي. تعمل هذه العملية حتى في حالة عدم توفر الكود المصدري للعقود الذكية. 

إطار عمل كشف مخطط بونزي الذكي
إطار عمل كشف مخطط بونزي الذكي

مفتاح الوجبات الجاهزة

هذا كل شيء ، نعم ، هذا كل شيء الآن!

إذا كنت معنا حتى الآن ، فنحن نقدر ذلك. بدون التوسع أكثر ، في ملاحظة ختامية ، سنقول فقط إن النظام البيئي للعقود الذكية لامركزي ، ومن الصعب تصحيح الأخطاء. 

لقد حاولنا كسر أمان العقود الذكية من منظور دورة حياة البرنامج. 

لقد ناقشنا أولاً الميزات الرئيسية المسؤولة عن blockchain قضايا أمنية في العقود الذكية. قمنا بتصنيف الحلول الأمنية للعقود الذكية إلى أربع مراحل. نأمل في نشر المزيد من المنشورات لإبقائك في صدارة التحديات في نظام Web3 البيئي المتنامي. 

ما رأيك في نهج SDLC الرشيق هذا لأمان العقود الذكية؟ شارك بأفكارك في التعليقات أدناه!

46 المشاهدات

وظيفة أمان العقد الذكي: نهج SDLC رشيق  ظهرت للمرة الأولى على Blog.quillhash.

الطابع الزمني:

اكثر من كويلهاش