آشنایی با مفهوم Fuzzing

عبارت Fuzz Testing يا به اصطلاح Fuzzing ، در واقع يك تكنيك تست نرم افزار است كه براي پيدا كردن خطاهاي coding و حفره هاي امنيتي در نرم افزار، سيستم هاي عامل يا شبكه هايي با ورودي عظيمي از داده هاي تصادفي مورد استفاده قرار ميگيرد. اين فرايند كه به Fuzz معروف است با هدف اختلال در سيستم نرم افزار در نتيجه اجراي آن صورت ميپذيرد. اگر آسيب پذيري اي پيدا شد، ابزاري به نام Fuzz Tester ( يا Fuzzer) علل بالقوه اين آسيب پذيري را نشان ميدهد. اين تكنيك براي اولين بار توسط Barton Miller در دانشگاه Wisconsin و در سال 1989 توسعه داده شده است.

ا Fuzzer ها در مورد مشكلاتي كه سبب Crash كردن يك برنامه ميشوند، بسيار خوب عمل ميكنند. از نمونه هاي اين مشكلات ميتوان به Buffer overflow، Cross site scripting، حملات Denial of Service، باگ هاي ساختاري و SQL Injection نام برد. اين نمونه حملات غالبا توسط هكرهايي صورت ميپذيرد كه به قصد انتقام و در كمترين زمان ميخواهند بزرگترين ضربه را به هدف مورد نظر بزنند. Fuzz Testing با تهديدات امنيتي كه سبب Crash برنامه نميشوند، چندان ارتباط و تاثير خاصي ندارد. از اين دست تهديدات ميتوان به برنامه هاي جاسوسي (Spyware)، برخي ويروس ها، كرم ها (Worms)، تروجان ها و Keylogger ها اشاره نمود.

انجام Fuzz testing ساده است و به نسبت هزينه كمي كه براي شما دارد، بالاترين قابليت را به شما ارائه ميدهد. اين تست انگشت اشاره خود را روي نقص هايي ميگذارد كه در هنگام نوشتن برنامه و اشكال زدايي آن از آن چشم پوشي شده و يا ديده نشده است. به همين علت است كه نتايجي را كه اين تست نشان ميدهد، غالبا خطاهاي جدي در برنامه هستند. با اين حال Fuzz Testing به تنهايي نميتواند تصوير كاملي از امنيت، كيفيت يا تاثير يك برنامه در موقعيت يا اپليكيشن خاصي را ارائه دهد. Fuzzer ها بيشترين كارايي خود را زماني دارند كه در رابطه با تست هاي Black Box، بتا يا ديگر شيوه هاي شناخته شده اشكال زدايي (از برنامه) استفاده شوند..

نوشته آشنایی با مفهوم Fuzzing اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی

دیدگاهتان را بنویسید