ื’ื•ื’ืœ ื”ืฆื™ื’ื” ืืช ืžืขืจื›ืช ื‘ื“ื™ืงืช ื”-fuzzing ClusterFuzzLite

ื’ื•ื’ืœ ื”ืฆื™ื’ื” ืืช ืคืจื•ื™ืงื˜ ClusterFuzzLite, ื”ืžืืคืฉืจ ืœืืจื’ืŸ ื‘ื“ื™ืงื•ืช ืžื˜ื•ืฉื˜ืฉื•ืช ืฉืœ ืงื•ื“ ืœื–ื™ื”ื•ื™ ืžื•ืงื“ื ืฉืœ ืคื’ื™ืขื•ื™ื•ืช ืคื•ื˜ื ืฆื™ืืœื™ื•ืช ื‘ืžื”ืœืš ืคืขื•ืœืชืŸ ืฉืœ ืžืขืจื›ื•ืช ืื™ื ื˜ื’ืจืฆื™ื” ืžืชืžืฉื›ื•ืช. ื ื›ื•ืŸ ืœืขื›ืฉื™ื•, ClusterFuzz ื™ื›ื•ืœ ืœืฉืžืฉ ืœืื•ื˜ื•ืžื˜ื™ื•ืช ืฉืœ ื‘ื“ื™ืงื•ืช fuzz ืฉืœ ื‘ืงืฉื•ืช ืžืฉื™ื›ื” ื‘-GitHub Actions, Google Cloud Build ื•-Prow, ืืš ืชืžื™ื›ื” ื‘ืžืขืจื›ื•ืช CI ืื—ืจื•ืช ืฆืคื•ื™ื” ื‘ืขืชื™ื“. ื”ืคืจื•ื™ืงื˜ ืžื‘ื•ืกืก ืขืœ ืคืœื˜ืคื•ืจืžืช ClusterFuzz, ืฉื ื•ืฆืจื” ื›ื“ื™ ืœืชืื ืืช ื”ืขื‘ื•ื“ื” ืฉืœ ื˜ืฉื˜ื•ืฉ ืืฉื›ื•ืœื•ืช ื‘ื“ื™ืงื”, ื•ืžื•ืคืฅ ืชื—ืช ืจื™ืฉื™ื•ืŸ Apache 2.0.

ื™ืฆื•ื™ืŸ ื›ื™ ืœืื—ืจ ืฉื’ื•ื’ืœ ื”ืฆื™ื’ื” ืืช ืฉื™ืจื•ืช OSS-Fuzz ื‘-2016, ื™ื•ืชืจ ืž-500 ืคืจื•ื™ืงื˜ื™ื ื—ืฉื•ื‘ื™ื ื‘ืงื•ื“ ืคืชื•ื— ื”ืชืงื‘ืœื• ืœืชื•ื›ื ื™ืช ื”ื‘ื“ื™ืงื•ืช ื”ืžืชืžืฉื›ืช ืฉืœ ืžื˜ื•ืฉื˜ืฉ. ื‘ื”ืชื‘ืกืก ืขืœ ื”ื‘ื“ื™ืงื•ืช ืฉื‘ื•ืฆืขื•, ื™ื•ืชืจ ืž-6500 ืคื’ื™ืขื•ื™ื•ืช ืžืื•ืฉืจื•ืช ื‘ื•ื˜ืœื• ื•ื™ื•ืชืจ ืž-21 ืืœืฃ ืฉื’ื™ืื•ืช ืชื•ืงื ื•. ClusterFuzzLite ืžืžืฉื™ื›ื” ืœืคืชื— ืžื ื’ื ื•ื ื™ ื‘ื“ื™ืงื” ืžืขื•ืจืคืœื™ื ืขื ื™ื›ื•ืœืช ืœื–ื”ื•ืช ื‘ืขื™ื•ืช ืžื•ืงื“ื ื™ื•ืชืจ ื‘ืฉืœื‘ ื”ืกืงื™ืจื” ืฉืœ ื”ืฉื™ื ื•ื™ื™ื ื”ืžื•ืฆืขื™ื. ClusterFuzzLite ื›ื‘ืจ ื”ื•ื˜ืžืข ื‘ืชื”ืœื™ื›ื™ ืกืงื™ืจืช ื”ืฉื™ื ื•ื™ื™ื ื‘ืคืจื•ื™ืงื˜ื™ื ืฉืœ systemd ื•-curl, ื•ืื™ืคืฉืจ ืœื–ื”ื•ืช ืฉื’ื™ืื•ืช ืฉืคืกืคืกื• ืขืœ ื™ื“ื™ ืžื ืชื—ื™ื ืกื˜ื˜ื™ื™ื ื•ืœื™ื ื˜ืจื™ื ื”ืžืฉืžืฉื™ื ื‘ืฉืœื‘ ื”ืจืืฉื•ื ื™ ืฉืœ ื‘ื“ื™ืงืช ืงื•ื“ ื—ื“ืฉ.

ClusterFuzzLite ืชื•ืžืš ื‘ืกืงื™ืจืช ืคืจื•ื™ืงื˜ื™ื ื‘-C, C++, Java (ื•ื‘ืฉืคื•ืช ืื—ืจื•ืช ืžื‘ื•ืกืกื•ืช JVM), Go, Python, Rust ื•- Swift. ื‘ื“ื™ืงื•ืช ืคื™ื–ื•ืจ ืžื‘ื•ืฆืขื•ืช ื‘ืืžืฆืขื•ืช ืžื ื•ืข LibFuzzer. ื ื™ืชืŸ ืœืงืจื•ื ืœื›ืœื™ื AddressSanitizer, MemorySanitizer ื•-UBSan (UndefinedBehaviorSanitizer) ื›ื“ื™ ืœื–ื”ื•ืช ืฉื’ื™ืื•ืช ื–ื™ื›ืจื•ืŸ ื•ื—ืจื™ื’ื•ืช.

ืชื›ื•ื ื•ืช ืขื™ืงืจื™ื•ืช ืฉืœ ClusterFuzzLite: ื‘ื“ื™ืงื” ืžื”ื™ืจื” ืฉืœ ืฉื™ื ื•ื™ื™ื ืžื•ืฆืขื™ื ื›ื“ื™ ืœืžืฆื•ื ืฉื’ื™ืื•ืช ืœืคื ื™ ืงื‘ืœืช ื”ืงื•ื“; ื”ื•ืจื“ืช ื“ื•ื—ื•ืช ืขืœ ืชื ืื™ ืงืจื™ืกื”; ื”ื™ื›ื•ืœืช ืœืขื‘ื•ืจ ืœื‘ื“ื™ืงื•ืช ื˜ืฉื˜ื•ืฉ ืžืชืงื“ืžื•ืช ื™ื•ืชืจ ื›ื“ื™ ืœื–ื”ื•ืช ืฉื’ื™ืื•ืช ืขืžื•ืงื•ืช ื™ื•ืชืจ ืฉืœื ืฆืฆื• ืœืื—ืจ ื‘ื“ื™ืงืช ืฉื™ื ื•ื™ื™ ื”ืงื•ื“; ื”ืคืงืช ื“ื•ื—ื•ืช ื›ื™ืกื•ื™ ืœื”ืขืจื›ืช ื›ื™ืกื•ื™ ืงื•ื“ ื‘ืžื”ืœืš ื‘ื“ื™ืงื”; ืืจื›ื™ื˜ืงื˜ื•ืจื” ืžื•ื“ื•ืœืจื™ืช ื”ืžืืคืฉืจืช ืœืš ืœื‘ื—ื•ืจ ืืช ื”ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ื”ื ื“ืจืฉืช.

ื”ื‘ื” ื ื–ื›ื™ืจ ืฉื‘ื“ื™ืงื•ืช ืžื˜ื•ืฉื˜ืฉื•ืช ื›ื•ืœืœื•ืช ื™ืฆื™ืจืช ื–ืจื ืฉืœ ื›ืœ ืžื™ื ื™ ืฉื™ืœื•ื‘ื™ื ืืงืจืื™ื™ื ืฉืœ ื ืชื•ื ื™ ืงืœื˜ ื”ืงืจื•ื‘ื™ื ืœื ืชื•ื ื™ื ืืžื™ืชื™ื™ื (ืœื“ื•ื’ืžื”, ื“ืคื™ HTML ืขื ืคืจืžื˜ืจื™ื ืืงืจืื™ื™ื ืฉืœ ืชื’ื™ื, ืืจื›ื™ื•ื ื™ื ืื• ืชืžื•ื ื•ืช ืขื ื›ื•ืชืจื•ืช ื—ืจื™ื’ื•ืช ื•ื›ื•'), ื•ื”ืงืœื˜ื” ืืคืฉืจื™ืช ื›ืฉืœื™ื ื‘ืชื”ืœื™ืš ื”ืขื™ื‘ื•ื“ ืฉืœื”ื. ืื ืจืฆืฃ ืงื•ืจืก ืื• ืื™ื ื• ืชื•ืื ืืช ื”ืชื’ื•ื‘ื” ื”ืฆืคื•ื™ื”, ืกื‘ื™ืจ ืœื”ื ื™ื— ืฉื”ืชื ื”ื’ื•ืช ื–ื• ืžืขื™ื“ื” ืขืœ ื‘ืื’ ืื• ืคื’ื™ืขื•ืช.

ืžืงื•ืจ: OpenNet.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”