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

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

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

الأصل

تم كتابة أول fuzzer في أوائل الثمانينيات من قبل المطور Steve Capps لاختبار الضعف في البرامج لجهاز كمبيوتر Macintosh. أطلق على برنامجه "القرد" ، في إشارة إلى القول المأثور الكلاسيكي لقرد يضغط على المفاتيح العشوائية على آلة كاتبة لفترة غير محدودة من الوقت. النظرية هي أنه بالنظر إلى ما يكفي من الوقت ، فإن القرد سيكتب في النهاية أعمال شكسبير الكاملة. على الرغم من أن هذه الطريقة لاختبار البرمجيات تسمى عادةً "fuzzing" ، إلا أنها تسمى أيضًا "اختبار القرود" بسبب برنامج Capps.

قائمة Fuzzers

يمكن استخدام تقنيات Fuzzing لاختبار البرنامج ، وتوجد العديد من fuzzers لأغراض محددة.

فيما يلي قائمة بالأصوات ، معظمها مفتوح المصدر ولا يزال الكثيرون في مرحلة التطوير النشط.

اسم الطنان / عنوان URLوصف
معقمات جوجلمجموعة من أربعة معقمات للبيانات تم تطويرها في Google ، والتي تستخدم خاصية fuzz للكشف عن أخطاء البرنامج:
  • AddressSanitizer ، الذي يكتشف أخطاء عنوان الذاكرة في برامج C و C ++.
  • LeakSanitizer ، الذي يكشف عن تسرب الذاكرة.
  • ThreadSanitizer ، الذي يكشف عن ظروف السباق في C ++ و Go.
  • معقم الذاكرة ، الذي يكشف عن ذاكرة غير مهيأة.
AFL-زغبAmerican Fuzzy Lop ، وهي أداة تستخدم الخوارزميات الجينية لاختبار أمان البرامج المترجمة.
Backfuzzمجموعة أدوات دمج بروتوكول.
BrundleFuzzو fuzzer الموزعة لنظام التشغيل Windows و Linux.
CERT FOEFailure Observation Engine ، وهي أداة تم تطويرها بواسطة CERT والتي تستخدم التحريك التحولي للكشف عن الثغرات الأمنية في برامج Windows.
CERTfuzzشفرة المصدر ل CERT FOE.
Choronzonالتطويري القائم على المعرفة.
Diffyأداة تم تطويرها بواسطة Twitter لاكتشاف نقاط الضعف في خدمات الويب.
مصاب بدوارمكتبة مدهشة لبيثون
dfuzzerأداة مدمجة لاختبار العمليات التي تتصل عبر آلية D-Bus IPC و RPC.
dotdotpwnأداة لاختبار تطبيقات الويب لنقاط الضعف في اجتياز المسار.
Dranzerاختبار زغب لعناصر تحكم ActiveX.
EMFFuzzerاختبار زغب Metafile المحسن.
استغلالامتداد لـ GDB (مصحح جنو) الذي يحلل ملفات لينكس التنفيذية ويصنف أخطاءها وفقًا للمآثر المعروفة. وضعت أصلا في CERT.
الذهاب زغباختبار fuzz لبرامج Go التي تملأ كائناتها بقيم عشوائية.
GRRيترجم الثنائيات 32 بت إلى 64 بت ، مدسوسة كجزء من العملية.
honggfuzzfuzzer التطوري ، يحركها ردود الفعل للأجهزة والبرامج.
HTTP / 2 Fuzzerبرنامج fuzzer لتطبيقات HTTP / 2 ، لا يزال متاحًا للتنزيل ولكنه لم يعد مطورًا بنشاط.
Hodorو "أكثر قليلا من الغبي تماما" صخب (القوة الغاشمة).
iFuzzerو fuzzer مكتوبة في بيثون الذي يستخدم Mercurial و Valgrind.
KEMUfuzzerجهاز fuzzer للأجهزة الافتراضية التي تعمل على أنظمة محاكاة QEMU أو VMware أو VirtualBox أو BHOCS.
KernelFuzzerو fuzzer لمكالمات نظام kernel
LibFuzzerمكتبة لاختبار العملية ، التطورية ، الموجهة الموجهة تغطية.
Netzobو fuzzer لبروتوكولات الاتصالات الهندسة العكسية.
فوزر العصبيصرير يستخدم التعلم الآلي (الشبكات العصبية) لإجراء اختباراته.
كابوسو fuzzer الموزعة مع أدوات الإدارة على شبكة الإنترنت.
Pathgrindالتحليل الديناميكي القائم على المسار لتطبيقات 32 بت.
الأداء الإقتصادي الأداء-fuzzerبرنامج fuzzer مصمم خصيصًا لاختبار استدعاء نظام perf_event_open () في نواة Linux.
بولسارو fuzzer الذي "يتعلم" البروتوكولات.
PyJFuzzوبيثون JSON fuzzer.
QuickFuzzو fuzzer قواعد اللغة التجريبية مكتوبة في هاسكل.
Radamsaو froser للأغراض العامة.
صاخبصهر بيثون بسيط يولد مدخلات عشوائية للبرنامج الذي تم اختباره.
sfuzzزغب بسيط. "بالضبط ما يبدو عليه - fuzzer بسيطة." مدرجة كجزء من مجموعة أدوات Kali Linux.
skipfishماسح أمان تطبيق ويب تم تطويره في Google.
syntribiosاختبار زغب الآلي لواجهة برمجة التطبيقات على شبكة الإنترنت ، مكتوبة في بيثون والتي تحتفظ بها مجموعة أمان OpenStack.
TriforceAFLو fuzzer نظام كامل يستخدم QEMU.
الظبيانماسح ثغرات تطبيق الويب.
Wfuzzfuzzer القوة الغاشمة لتطبيقات الويب.
زوفو fuzzer إدخال التطبيق حتمية وشفافة الذي يغير بشكل عشوائي البتات في عمليات إدخال الملف.

فيما يلي تسخير الدمج أو الأطر التي يمكن أن تساعدك في إدارة اختبار الزغب.

إطار مدمجوصف
CERT BFFتم تصميم BFF (Basic Fuzzing Framework) ، الذي تم تطويره بواسطة CERT ، للعثور على نقاط الضعف في تطبيقات Windows و macOS و Linux.
FuzzFlowإطار مدمج في AngularJS.
Fuzzinatorإطار لاختبار زغب عشوائي.
FuzzLabsإطار اختبار زغب للأغراض العامة.
طاحونةاختبار أوتوماتيكي زغب / إطار لاختبار متصفحات الويب.
صندوقإطار اختبار زغب مكتوب في بيثون.
ofuzzإطار مدمج مكتوب بلغة OCaml.
Nodefuzzإطار اختبار زغب لمتصفحات الويب ، مكتوبة في nodejs.
PassiveFuzzFrameworkOSXfuzzer لاختبار نقاط الضعف في نواة ماك أو إس.
الخوخ فوزرمنصة لاختبار الزغب التي يمكنها "اختبار أي نظام تقريبًا بحثًا عن نقاط ضعف غير معروفة."
RamFuzzو fuzzer لاختبار المعلمات الفردية لأساليب الكائن.
سوليإطار مدمج "أوتوماتيكي بالكامل وغير مراقب ، نقي من بيثون".
FunFuzzerبيثون تسخير تسخير لمحركات جافا سكريبت والعارضين DOM ، من قبل موزيلا.

علة ، شروط البرمجة ، شروط الأمن ، اختبار البرمجيات