
منصة متعددة لإجراء اختبارات التشويش (fuzzing) على البرامج الثنائية في وضع المستخدم، وعملاء الشبكة والخوادم.
أداة اختبار متعددة المنصات لفحص التطبيقات في وضع المستخدم، والعملاء والخوادم.
لقد عثرت على أخطاء في أكثر من 50 تطبيقًا ومكتبة من شركات كبرى ومصادر مفتوحة.
إعداد بسيط لبدء الاختبار على لينكس، ماك وويندوز.
تهدف Litefuzz إلى خدمة غرض واحد: الاختبار والتصنيف على جميع المنصات الرئيسية، ودعم تطبيقات CLI/GUI، وعملاء الشبكة والخوادم من أجل العثور على أخطاء متعلقة بالأمان.
إنها تبسط العملية وتجعل من السهل اكتشاف أخطاء الأمان في العديد من الأهداف المختلفة عبر المنصات، مع إجراء بعض المفاضلات الصادقة فقط.
لم تُبنَ من أجل السرعة أو قابلية التوسع أو بهدف الفوز بجوائز أكاديمية. إنها تطبق تقنيات بسيطة من زوايا متعددة لتحقيق النتائج. لاختبار الملفات عبر وحدة التحكم، ينبغي عليك على الأرجح استخدام AFL. فهو يتمتع بأداء فائق وقدرات تتبع (وتنفيذ أسرع بدون تتبع)، وقابلية توسع، ويمكنه صنع صور JPEG من لا شيء. أما لاختبار الشبكات، فإن mutiny fuzzer يعمل جيدًا أيضًا إذا كان لديك ملفات PCAP لإعادة تشغيلها، وfrizzer يبدو واعدًا أيضًا. لكن إذا كنت تريد تجربة هذه الأداة، فهي قادرة على اختبار تلك الأنواع من الأهداف عبر المنصات باستخدام أداة واحدة فقط.
./ وامنح هدفك... لمسة خفيفة من lite fuzz.``` $ sudo apt install -y latex2rtf
$ ./litefuzz.py -l -c "latex2rtf FUZZ" -i input/tex -o crashes/latex2rtf -n 1000 -z --========================-- --======| litefuzz |======-- --========================--
[STATS] run id: 3516 cmdline: latex2rtf FUZZ crash dir: crashes/latex2rtf input dir: input/tex inputs: 1 iterations: 1000 mutator: random(mutators)
@ 1000/1000 (3 crashes, 127 duplicates, ~0:00:00 remaining)
[RESULTS]
completed (1000) iterations with (3) unique crashes and 127 dups
check crashes/latex2rtf for more details
هذا هدف محلي بسيط يمكن لـ AFL++ التعامل معه بشكل مثالي، وهو معطى فقط كمثال سريع. تم تصميم Litefuzz للقيام بالمزيد في مجال اختبار الشبكات وواجهات المستخدم الرسومية، وهو ما ستراه بمجرد التعمق.
## لماذا
نعم، أداة اختبار أخرى لا تتبع الاتجاهات والأعراف الحالية بشكل جيد. تم إجراء بعض المقايضات لمعالجة متطلبات معينة. هذه المتطلبات هي أداة اختبار تعمل افتراضيًا على منصات متعددة، وتختبر الأهداف المحلية والشبكية، وسهلة الاستخدام للغاية. لا أحاول إقناع أي شخص بأي شيء، لكن دعنا نقدم بعض السياق. تتطلب بعض الأهداف جهدًا كبيرًا لدمج أدوات الاختبار مثل AFL في سلسلة البناء. هذه ليست مشكلة لأن هذه الأداة لا تتطلب إضافة تعليمات، مما يضحي بالتغطية الدقيقة المكتسبة من الإضافة مقابل السهولة وقابلية النقل. كما أن AFL لا يدعم اختبار الشبكات مباشرة، وعلى الرغم من وجود مشاريع مبنية عليه تفعل ذلك، إلا أنها بعيدة كل البعد عن سهولة الاستخدام وتتطلب عادةً المزيد من تعديلات الكود وأدوات التهيئة لتعمل (قصة مماثلة مع [Libfuzzer](https://llvm.org/docs/LibFuzzer.html)).
لا تقوم الأداة بالاختبار المتوازي، ولا تدعم أي شيء مثل تحسينات السرعة الهائلة التي يوفرها [الوضع المستمر](https://lcamtuf.blogspot.com/2015/06/new-in-afl-persistent-mode.html)، لذا لا يمكنها التوسع بالقرب من أدوات الاختبار التي تمتلك مثل هذه الإمكانيات. مرة أخرى، هذه ليست أداة اختبار من أحدث التقنيات. لكنها لا تتطلب كود مصدري، أو إعداد بناء بشكل صحيح، أو ميزات معينة لنظام التشغيل. يمكنها حتى اختبار بعض واجهات المستخدم الرسومية للعملاء الشبكيين والتطبيقات التفاعلية. تعتمد على ما هو متاح في البيئة بطرق عديدة، والعديد من الميزات مثل المحولات والتصغير تمت كتابتها من الصفر.
صُممت الأداة "لتنجح فورًا"، وبُذل جهد في أتمتة الإعداد والتركيب للتبعيات القليلة التي تحتاجها. كُتبت هذه الأداة لخدمة غرض، لتوفير قيمة في العديد من سيناريوهات وبيئات الهدف المختلفة، والأهم من ذلك، ما يجب أن تُحكم به جميع أدوات الاختبار في النهاية: القدرة على العثور على الأخطاء. وهي **تجد بالفعل** [أخطاء](https://github.com/sec-tools/beta/blob/main/README.md#trophies). لا تفترض وجود كود مصدري للهدف، لذا يمكنها تغطية البرامج مغلقة المصدر بشكل جيد إلى حد ما. يمكن تشغيلها كجزء من الأتمتة مع تعديلات طفيفة، لكنها موجهة نحو كونها ممتعة الاستخدام لباحثي الثغرات. ومع ذلك، من الأفضل التفكير فيها كمشروع بحث وتطوير وليس كمنتج متكامل. أيضًا، لا يوجد إعداد معقد يكون معطلًا قليلاً خارج الصندوق أو يحتاج إلى مزيد من العمل لتشغيله على أنظمة التشغيل الحديثة.
تم اختبارها وتعمل على Ubuntu Linux وMac وWindows، وتأتي مع نصوص برمجية وظيفية بالكامل تفعل كل شيء تقريبًا من أجلك لإعداد بيئة جاهزة للاختبار.
**بمجرد اكتمال برنامج الإعداد، يستغرق الأمر بضع دقائق فقط لبدء اختبار العديد من الأهداف المختلفة.**
## كيف يعمل
**يدعم Litefuzz ثلاثة أوضاع مختلفة: محلي، عميل، وخادم.**