انتقل إلى المحتوى

مصطلح في خيطين

الاختبار بالتشويشFuzzing

المعنى في سطر

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

باختصار

الاختبار بالتشويش (Fuzzing أو Fuzz Testing) أسلوب آلي لاختبار البرامج، بيدخّل فيه المختبِر بيانات غير صالحة أو غير متوقّعة أو عشوائية للبرنامج، وبيراقبه بحثًا عن أعطال أو فشل في التحقّقات الداخلية أو تسريبات في الذاكرة.

بالتفصيل

حسب ويكيبيديا، المصطلح جاي من مشروع طلابي سنة 1988 في جامعة ويسكونسن، في مقرّر الأستاذ Barton Miller. الفريق ولّد مدخلات عشوائية لأدوات يونكس، ونجح يوقع بين 25 و33% منها. وقال Miller إنه اختار كلمة «fuzz» عشان توحي ببيانات عشوائية غير منظّمة.

الفكرة الذكية: أحسن مدخل للتشويش هو اللي «صالح بما يكفي» عشان المحلّل ما يرفضوش من الأول، و«غير صالح بما يكفي» عشان يوصل لحالات حدّية ما حدّش عالجها. ومن ناحية الأمن، أهمّ كود يتختبر هو اللي بيستقبل بيانات من برّه حدود الثقة، زي ملف بيرفعه أي مستخدم، أكتر من ملف إعدادات بيوصله المدير بس.

المشكلة إن التشويش المستمر محتاج إنسان يراقب التغطية ويكتب أدوات اختبار (Harnesses) للكود اللي ما حدّش بيوصله، ويفرز الأعطال. وده اللي بيحاول مشروع Fuzzing Taskflow من GitHub Security Lab يسلّمه لوكيل ذكاء اصطناعي، مع أداة التشويش المعروفة AFL++.

مثال عملي

برنامج بيقرأ ملفات صور. الـFuzzer بياخد صورة سليمة ويغيّر فيها بايتات عشوائية: يكبّر رقم العرض لقيمة ضخمة، أو يقصّ الملف من النص. لو البرنامج وقع عند ملف معيّن، ده غالبًا خطأ في التعامل مع الذاكرة، وممكن يكون ثغرة أمنية يستغلّها مهاجم برفع صورة مصمّمة خصّيصًا.

مصطلحات مرتبطة

المصادر: Wikipedia — Fuzzing، GitHub Blog — 2026-09-24