گوگل قصد دارد تا Fuzz Testing را که ورودیهای دادهایِ تصادفی برای برنامهها ارائه میدهد را به عنوان بخشی استاندارد از توسعهی Open Source خود قرار دهد.
بدین منظور، گوگل یک برنامه نسخه بتا را به عنوان یک پروژه، روی GitHub برای OSS-Fuzz راهاندازی کرده است. این برنامه به دنبال کمک به استانداردسازیِ تکنیکهای Modern Fuzzing و ترکیب آنها با یک مدل اجرایی Distributed که مقیاس آن بر حسب نیاز قابل تغییر است، میباشد.
بر اساس ویکیپدیا: “Fuzz Testing یا Fuzzing یک تکنیک تست نرمافزار است، که اغلب اتومات یا نیمه اتومات است، و مشتمل بر ارائه اطلاعات نامعتبر، یا دادههای تصادفی برای ورودیهای یک برنامه کامپیوتریست. سپس برنامه برای Exceptionهایی نظیر: Crashها، Fail شدن کدهای ساخته شده، یا برای یافتن Memory Lakeهای بالقوه مورد نظارت و مانیتورینگ قرار میگیرد”.
گوگل میگوید این تکنیک را میتوان برای حصول اطمینان از کامپوننتهای محبوب و Open Sourceکه به طور خاص برای قسمتهای فوقالعاده مهم از زیرساخت جهانیِ IT در نظر گرفته میشوند، که Stable، امن(Secure)، و قابل اطمینان(Reliable) هستند، مورد استفاده قرار داد.
این کمپانی در آخرین پست خود در غالب یک Blog معتبر گفته است: “داستانهای اخیر در مورد Security موید این موضوع است که Errorهایی مانند Buffer Overflow و Use-After-Free میتوانند به هنگام رخ دادن در یک نرمافزار Critical Open Source، عواقبی گسترده و شدید داشته باشند”. این شرکت میافزید: “این خطاها نه تنها جدی هستند، بلکه یافتن آنها با روشهای معمول بازرسیِ کُد، حتی برای توسعهدهندگان با تجربه، مشکل است. این نقطه همان جاییست که Fuzz Testing وارد میشود. با تولید دادههایِ ورودیِ تصادفی به برنامه مد نظر، Fuzzing راهاندازی شده و به کشف سریع و کامل Errorها کمک میکند.”
و اما OSS-Fuzz، Fuzzing Engineهای مختلف را که با libFuzzer و دیگر کامپوننتها، در یک محیط اجراییِ توزیع شده و مقیاسپذیر با استفاده از پروژه ClusterFuzz آغاز میشوند را با هم ترکیب میکند.
گوگل گفته است که این ابزار، Continuous Fuzz Testing را برای پروژههای انتخابی به ارمغان خواهد آورد. این شرکت معتقد است این پروژه در حال حاضر ۱۵۰ باگ را در پروژههای Open Source محبوب را یافته است.