يمكن أن تعاني محافظ التشفير وعمليات تبادل التشفير من هجمات القراصنة (أو من غباء المستخدمين والمطورين وكذلك مشاكل في منطق النظام). يمكن أن يساعد الاختبار هذا في تحديد نقاط الضعف والمشكلات في منطق التطبيق ، لكنني ما زلت لم أجد منهجية رسمية يتم فيها كتابة ما يجب الانتباه إليه أثناء الاختبار. بعد أن اختبرت عشرات التبادلات والمحافظ ، قررت إضفاء الطابع الرسمي على إجراءات اختبارها ، المهتمين ، ومرحبًا بها في القطط.
عند اختبار التبادلات والمحافظ ، لفتت الانتباه إلى عملها ، وقمت بصياغة جوانب اختبارها أدناه في شكل تقنية صغيرة ، ولكن بالترتيب.
بادئ ذي بدء ، تحتاج إلى فهم ما هو مهم للعميل؟ من المهم بالنسبة للعميل عدم سرقة الأموال من التبادل أو المحفظة والحفاظ على البيانات الشخصية للمستخدمين. وبما أن كل تبادل أو محفظة ، في الواقع ، هو في الغالب موقع ويب أو تطبيق ويب ، يرغب العميل في إجراء محاكاة لهجوم القراصنة ، أي اختبار الصندوق الأسود (انظر الجدول 1) ، ولكن لاكتمال الاختبار ، غالبًا ما يتم اختيار اختبار الصندوق الرمادي (انظر الجدول 1).
لاختبار منطق العمل ، تحتاج إلى اختبار عملة مشفرة. وبما أن كل بورصة لديها قيودها الخاصة على إيداع / سحب الأموال ، يجب أن يكون مقدار العملة المشفرة الاختبارية على الأقل الحد الأدنى المسموح به للسحب ، ويجب أن يكون كافيًا لإجراء ما لا يقل عن 5 معاملات شراء وبيع و / أو إخراج المدخلات.
الجدول 1. أنواع الاختبار اعتمادًا على المعلومات المقدمة.
اكتب | الوصف |
---|
الصندوق الأسود | - يتم الاختبار دون إشراك الفريق الفني للعميل
|
الصندوق الرمادي | - التواصل مع الفريق الفني للعميل
- إضافة حسابات قيد الاختبار في "القائمة البيضاء"
- يوفر العميل الأموال (العملات المعدنية) للاختبار
|
الصندوق الأبيض | - دعم العملاء الكامل
- توفير رمز مصدر التطبيق
- توفير سجلات
- منح الوصول إلى امتيازات مختلفة
- توفير الأموال (العملات المعدنية) بالمبلغ اللازم للاختبار
|
في Hacken ، نقوم باختبار الثغرات بالترتيب التالي:- دراسة المعلومات المتاحة للجمهور.
- التحقق عن طريق الأدوات الآلية.
- تحقق في الوضع اليدوي.
- كتابة التقارير.
ميزات اختبار تبادل التشفير ومحافظ التشفير1. اختبار التحقق من KYC - يعد هذا أحد متطلبات معظم عمليات تبادل التشفير و ICOs.يناقش هذا القسم اختبار تنزيلات الملفات (صور أو لقطات شاشة للوثائق التي تؤكد هوية الشخص).
- التحقق من القدرة على تنزيل الملفات القابلة للتنفيذ إلى خادم النظام
- تحقق من إمكانية سرقة المستندات الممسوحة ضوئيًا - أسماء وأدلة ملفات القوة الغاشمة.
- التحقق من الوصول غير المصرح به إلى نظام ملفات الخادم.
2. اختبار أموال المدخلات والمخرجات- التحقق من صحة أرقام التقريب عند إيداع / سحب الأموال.
- التحقق من استبدال عنوان المحفظة عند إيداع / سحب الأموال (أبسط خطأ هو عدم التحقق من محفظة المرسل والمستلم ، ولكنه أمر بالغ الأهمية).
- التحقق من منطق العمل عند إيداع / سحب الأموال.
- التحقق من تجاوز تأكيد عملية البيع والشراء (رمز المصادقة ذو العاملين ، OTP ، كلمة المرور الخاصة).
- تحقق من ثغرات سحب شرط العرق.
- التحقق من إمكانية تجاوز حدود المدخلات / المخرجات من الأموال.
3. اختبار شراء وبيع العملات المشفرة (تنطبق فقط على التبادلات)- التحقق من صحة أرقام التقريب عند شراء وبيع الأموال.
- التحقق من خداع العنوان أثناء البيع.
- التحقق من منطق العمل عند شراء وبيع الأموال.
- التحقق من إمكانية استبدال أو تعديل أمر بيع.
- التحقق من تجاوز تأكيد عملية البيع والشراء (رمز المصادقة ذو العاملين ، OTP ، كلمة المرور الخاصة).
- التحقق من احتمالية حالة السباق في تنفيذ عمليات الشراء / البيع
- التحقق من إمكانية خداع عناوين المحفظة.
اختبار جزء ويب4. اختبار عملية التسجيل- التحقق من تصفية المعلمات الواردة أثناء التسجيل.
- التحقق من وظيفة تأكيد المستخدم.
- التحقق من القدرة على التكرار عبر أسماء المستخدمين وعناوين البريد الإلكتروني وأرقام الهواتف.
- التحقق من إمكانية تجاوز اختبار التحقق أثناء التسجيل.
- التحقق من نقاط الضعف والمنطق عند إعادة تعيين كلمات المرور وتغيير البيانات.
5. اختبار عملية المصادقة- تدقيق تصفية المصادقة.
- التحقق من إمكانية اختيار اسم مستخدم وكلمة مرور لحساب في القاموس (الحماية ضد القوة الغاشمة).
- تحقق من التحقق من التحقق captcha.
- التحقق من تجاوز المصادقة الثنائية
- التحقق من القدرة على تعطيل المصادقة الثنائية.
- التحقق من تسرب البيانات أثناء المصادقة.
6. اختبار الأطر والتقنيات المستخدمة في تطوير التبادلأثناء اختبار نقاط الضعف ، من الضروري تحديد التقنيات (الأطر) والتقنيات التي تم تطوير التبادلات معها. وبالتالي ، عند فهم التكنولوجيا التي تم تطوير المحفظة أو التبادل بها ، يمكنك العثور على استغلال أو ثغرات محتملة تم اكتشافها بالفعل في مصادر مفتوحة. من الضروري التحقق من أن جميع مكتبات وأطر وبرامج الطرف الثالث لا تحتوي على نقاط ضعف متاحة للجمهور في وقت الإصدار أو التكوين الصحيح لأنظمة الأمان (على سبيل المثال ، CloudFlare).
7. اختبار OWASPتتضمن منهجية OWASP قائمة تحقق تدرس جميع المخاطر الأمنية المحتملة لموقع ويب. وبالتالي ، يتيح لك هذا الفحص تحديد نقاط الضعف المحتملة (حسنًا ، يعتمد الكثير على مدى
مباشرة أيدي الخبرة ومهارات المختبر)
الأكثر شيوعًا:
- فحص معلمات التصفية في النهاية الخلفية ، حيث يتم فحصها غالبًا على الواجهة الأمامية فقط
- عدم وجود علامات طلب HTTP ، وهو أمر غير مهم ، ولكن يمكن أن يؤدي إلى التخزين المؤقت لكلمة المرور أو احتمال هجوم Clickjacking
- عدم وجود إدارة للجلسة: يمكن أن يؤدي هذا إلى حقيقة أنه عندما تتم سرقة ملف تعريف الارتباط أو أن المهاجم لديه وصول مباشر إلى جهاز كمبيوتر أو هاتف ، يمكن إجراء العمليات من مستخدم صالح
- الإصدارات الضعيفة من الخدمات المفتوحة
- استخدام JSON Web Tokens (JWT) مع خوارزميات تشفير ضعيفة
8. اختبار API- التحقق من ثغرات API عن طريق كتابة وحدة برنامج للتفاعل مع API والتحقق من الثغرات المنطقية المحتملة من جانب العميل و API.
- استخدم Swagger لعرض هيكل الطلب ، فمن الضروري فهم ما يجب إرساله إلى الخادم وبالتالي التحقق من عدم وجود مشكلة في واجهة برمجة التطبيقات.
9. اختبار WebSocketsبرنامج شائع الاستخدام للاختبار:- البربسويت
- Acunetix
- Zenmap
- عواصة انطلق
- Sqlmap
وأدوات أخرى حسب الحاجة.
الخلاصة:حاولت في هذه المقالة إضفاء الطابع الرسمي على منهجية اختبار التبادلات وهيكلتها ، والتي قمت بتطبيقها في أكثر من 10 حالات لاختبار التبادلات والمحافظ. لقد اتخذنا هذه المنهجية باعتبارها المنهجية الرئيسية لاختبار التبادلات في
Hacken . اليوم ، أصبحت صناعة تقنيات blockchain والحلول اللامركزية والعملات المشفرة في ذروة الشعبية. تتكرر الأسئلة الشائعة والأدلة بشكل أسرع بكثير من قانون مور ، وبالتالي لا تدعي المقالة أنها دليل استثنائي لاختبار تبادلات التشفير ، فهي تعبر فقط عن الخبرة المكتسبة أثناء التكرار المتكرر لهذا الإجراء.