اختبار الزغب (Fuzzing) البرنامج التعليمي

ما هو اختبار الزغب؟

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

تم تطوير اختبار Fuzz في الأصل من قبل Barton Miller في جامعة ويسكونسن في عام 1989. اختبار Fuzz أو Fuzzing هو أحد تقنيات اختبار البرمجيات، وهو نوع من أنواع اختبار Fuzz. اختبار الأمان.

اختبار الزغب

لماذا يجب إجراء اختبار الزغب؟

  • عادةً ما يكتشف اختبار Fuzzy الخطأ أو الخلل الأمني ​​الأكثر خطورة.
  • يعطي اختبار الزغب نتيجة أكثر فعالية عند استخدامه مع اسود Box الاختبارواختبار بيتا وطرق التصحيح الأخرى.
  • يتم استخدام اختبار Fuzz للتحقق من ثغرات البرامج. إنها تقنيات اختبار فعالة من حيث التكلفة للغاية.
  • اختبار الزغب هو واحد من الأسود box تقنية الاختبار. يعد Fuzzing أحد أكثر الطرق شيوعًا التي يستخدمها المتسللون للعثور على نقاط الضعف في النظام.

كيفية إجراء اختبار الزغب

تتضمن خطوات الاختبار الغامض خطوات الاختبار الأساسية-

الخطوة 1) تحديد النظام المستهدف

الخطوة 2) تحديد المدخلات

الخطوة 3) توليد بيانات غامضة

الخطوة 4) تنفيذ الاختبار باستخدام بيانات غامضة

الخطوة 5) مراقبة سلوك النظام

الخطوة 6) عيوب السجل

أمثلة على الزغب

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

هناك نوعان من القيود على التشويش القائم على البروتوكول:

  1. لا يمكن مواصلة الاختبار حتى تنضج المواصفات.
  2. العديد من البروتوكولات المفيدة هي امتداد للبروتوكولات المنشورة. إذا كان اختبار الزغب يعتمد على المواصفات المنشورة، تغطية الاختبار للبروتوكولات الجديدة ستكون محدودة.

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

أنواع الأخطاء التي اكتشفها اختبار Fuzz

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

أدوات اختبار الزغب

يمكن استخدام الأدوات المستخدمة في أمان الويب على نطاق واسع في اختبار الضبابية مثل Burp Suite وPeach Fuzzer وما إلى ذلك.

  • فوزر الخوخ: يوفر Peach Fuzzer تغطية أكثر قوة وأمانًا من الماسح الضوئي. يمكن لأدوات الاختبار الأخرى البحث فقط عن المواضيع المعروفة بينما يمكّن Peach Fuzzer المستخدمين من العثور على المواضيع المعروفة وغير المعروفة.
  • وكيل سبايك: إنها أداة احترافية تبحث عن نقاط الضعف على مستوى التطبيق في تطبيقات الويب. يغطي SPIKE Proxy الأساسيات، مثل SQL الحقن والبرمجة النصية عبر المواقع، لكنها مفتوحة تمامًا بايثون بنية تحتية. وكيل SPIKE متاح لـ لينكس و Windows.
  • ويبسكاراب: تمت كتابة Webscarab باللغة جافا وبالتالي محمول على العديد من المنصات. لتحليل التطبيق، يتم استخدام إطار عمل Webscarab الذي يتواصل باستخدام بروتوكولات HTTP وHTTPS.مثلا: يعمل Webscarab كوكيل اعتراض، فهو يسمح للمشغل بمراجعة وتعديل الطلب الذي أنشأه المتصفح قبل أن يستقبله الخادم. والسماح بمراجعة وتحديث الاستجابة التي أنشأها الخادم قبل استلامها بواسطة المتصفح. بهذه الطريقة، إذا وجد web Scarab أي ثغرة، فسيتم إدراجه في قائمة المشكلات التي تم الإبلاغ عنها.
  • OWASP WSFuzzer: WSFuzzer هو برنامج GPL'd ومكتوب بلغة Python. GPL'd هو برنامج يستهدف حاليًا خدمات الويب. في الإصدار الحالي من OWASPيعتمد WSFuzzer على HTTP خدمات الصابون هي الهدف الرئيسي.

مزايا اختبار الزغب

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

عيوب اختبار الزغب

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

ملخص:

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