Google компани ClusterFuzzLite төслийг танилцуулсан бөгөөд энэ нь тасралтгүй интеграцийн системүүдийн үед болзошгүй эмзэг байдлыг эрт илрүүлэх зорилгоор кодын fuzz тест хийх боломжийг олгодог. Одоогоор ClusterFuzz-ийг GitHub Actions, Google Cloud Build, Prow-д татах хүсэлтийн fuzz тестийг автоматжуулахад ашиглаж болох боловч ирээдүйд бусад CI системүүдийн дэмжлэг нэмэгдэх төлөвтэй байна. Төсөл нь fuzz тестийн кластеруудыг зохицуулах зорилготой ClusterFuzz платформ дээр суурилсан бөгөөд Apache 2.0 лицензийн дагуу лицензтэй.
2016 онд Google-ийн OSS-Fuzz үйлчилгээг нэвтрүүлснээс хойш 500 гаруй чухал нээлттэй эхийн төслийг тасралтгүй fuzzing тестийн хөтөлбөрт хүлээн авсан гэж тэмдэглэжээ. Эдгээр шалгалтын үндсэн дээр батлагдсан 6500 гаруй сул талыг шийдэж, 21 гаруй алдааг зассан байна. ClusterFuzzLite нь санал болгож буй өөрчлөлтүүдийг хянах явцад асуудлыг эрт илрүүлэх боломжийг олгож, бүдэг бадаг туршилтын механизмуудыг үргэлжлүүлэн хөгжүүлсээр байна. ClusterFuzzLite нь системийн болон curl төслүүдийн өөрчлөлтийг шалгах процесст аль хэдийн нэгдсэн бөгөөд шинэ кодыг шалгах эхний шатанд ашигласан статик анализатор болон линтерүүдийн алдааг илрүүлэх боломжийг олгосон.
ClusterFuzzLite нь C, C++, Java (болон бусад JVM-д суурилсан хэл), Go, Python, Rust болон Swift дээр төслийн баталгаажуулалтыг дэмждэг. Fuzzing туршилтыг LibFuzzer хөдөлгүүр ашиглан гүйцэтгэдэг. AddressSanitizer, MemorySanitizer, UBSan (UdefinedBehaviorSanitizer) нь мөн санах ойн алдаа, гажгийг илрүүлэхэд ашиглагдаж болно.
ClusterFuzzLite-ийн гол онцлогууд нь: кодыг хүлээн авахаас өмнө алдааг тодорхойлохын тулд санал болгож буй өөрчлөлтүүдийг хурдан шалгах; ослын нөхцөл байдлын тайланг татаж авах; кодын өөрчлөлтийг шалгасны дараа гарч ирээгүй гүнзгий алдааг тодорхойлохын тулд илүү дэвшилтэт бүдүүлэг тест рүү шилжих чадвар; туршилтын явцад кодын хамрах хүрээг үнэлэхийн тулд хамрах хүрээний тайлан гаргах; мөн модульчлагдсан архитектур нь танд хэрэгтэй функцийг сонгох боломжийг олгодог.
Сануулахад, бүдэгрүүлэх туршилт нь бүх төрлийн санамсаргүй оролтын өгөгдлийн хослолуудын урсгалыг үүсгэх, ойролцоогоор бодит өгөгдөл (жишээ нь, санамсаргүй хаягийн параметр бүхий HTML хуудас, архив эсвэл хэвийн бус гарчигтай зураг гэх мэт), боловсруулах явцад гарч болзошгүй алдааг бүртгэх явдал юм. Хэрэв ямар нэг дараалал нь эвдрэлд хүргэсэн эсвэл хүлээгдэж буй хариу үйлдэлтэй таарахгүй бол энэ үйлдэл нь алдаа эсвэл эмзэг байдлыг илтгэнэ.
Эх сурвалж: opennet.ru
