Google แž”แžถแž“แžŽแŸ‚แž“แžถแŸ†แž”แŸ’แžšแž–แŸแž“แŸ’แž’แžŸแžถแž€แž›แŸ’แž”แž„ Fuzzing ClusterFuzzLite

Google แž”แžถแž“แžŽแŸ‚แž“แžถแŸ†แž‚แž˜แŸ’แžšแŸ„แž„ ClusterFuzzLite แžŠแŸ‚แž›แžขแž“แžปแž‰แŸ’แž‰แžถแžแžฑแŸ’แž™แžšแŸ€แž”แž…แŸ†แž€แžถแžšแž’แŸ’แžœแžพแžแŸแžŸแŸ’แžแž€แžผแžŠแž€แŸ’แž›แŸ‚แž„แž€แŸ’แž›แžถแž™แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแžšแž€แžƒแžพแž‰แžŠแŸ†แž”แžผแž„แž“แŸƒแž—แžถแž–แž„แžถแž™แžšแž„แž‚แŸ’แžšแŸ„แŸ‡แžŠแŸ‚แž›แž˜แžถแž“แžŸแž€แŸ’แžแžถแž“แžปแž–แž›แž€แŸ’แž“แžปแž„แžขแŸ†แžกแžปแž„แž–แŸแž›แž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแž€แžถแžšแž“แŸƒแž”แŸ’แžšแž–แŸแž“แŸ’แž’แžšแžฝแž˜แž”แž‰แŸ’แž…แžผแž›แž‡แžถแž”แž“แŸ’แžแž”แž“แŸ’แž‘แžถแž”แŸ‹แŸ” แž”แž…แŸ’แž…แžปแž”แŸ’แž”แž“แŸ’แž“ ClusterFuzz แžขแžถแž…แžแŸ’แžšแžผแžœแž”แžถแž“แž”แŸ’แžšแžพแžŠแžพแž˜แŸ’แž”แžธแž’แŸ’แžœแžพแžŸแŸ’แžœแŸแž™แž”แŸ’แžšแžœแžแŸ’แžแžทแž€แž˜แŸ’แž˜แž€แžถแžšแž’แŸ’แžœแžพแžแŸแžŸแŸ’แž fuzz แž“แŸƒแžŸแŸ†แžŽแžพแž‘แžถแž‰แž“แŸ…แž€แŸ’แž“แžปแž„ GitHub Actions, Google Cloud Build แž“แžทแž„ Prow แž”แŸ‰แžปแž“แŸ’แžแŸ‚แž€แžถแžšแž‚แžถแŸ†แž‘แŸ’แžšแžŸแž˜แŸ’แžšแžถแž”แŸ‹แž”แŸ’แžšแž–แŸแž“แŸ’แž’ CI แž•แŸ’แžŸแŸแž„แž‘แŸ€แžแžแŸ’แžšแžผแžœแž”แžถแž“แžšแŸ†แž–แžนแž„แž‘แžปแž€แž“แžถแž–แŸแž›แžขแž“แžถแž‚แžแŸ” แž‚แž˜แŸ’แžšแŸ„แž„แž“แŸแŸ‡แž‚แžบแž•แŸ’แžขแŸ‚แž€แž›แžพแžœแŸแž‘แžทแž€แžถ ClusterFuzz แžŠแŸ‚แž›แž”แž„แŸ’แž€แžพแžแžกแžพแž„แžŠแžพแž˜แŸ’แž”แžธแžŸแŸ†แžšแž”แžŸแŸ†แžšแžฝแž›แž€แžถแžšแž„แžถแžšแž“แŸƒแž€แŸ’แžšแžปแž˜แžŸแžถแž€แž›แŸ’แž”แž„ fuzzing แž แžพแž™แžแŸ’แžšแžผแžœแž”แžถแž“แž…แŸ‚แž€แž…แžถแž™แž€แŸ’แžšแŸ„แž˜แžขแžถแž‡แŸ’แž‰แžถแž”แŸแžŽแŸ’แžŽ Apache 2.0 แŸ”

แžœแžถแžแŸ’แžšแžผแžœแž”แžถแž“แž€แžแŸ‹แžŸแž˜แŸ’แž‚แžถแž›แŸ‹แžแžถแž”แž“แŸ’แž‘แžถแž”แŸ‹แž–แžธ Google แžŽแŸ‚แž“แžถแŸ†แžŸแŸแžœแžถแž€แž˜แŸ’แž˜ OSS-Fuzz แž€แŸ’แž“แžปแž„แž†แŸ’แž“แžถแŸ† 2016 แž‚แž˜แŸ’แžšแŸ„แž„แž”แŸ’แžšแž—แž–แž”แžพแž€แž…แŸ†แž แžŸแŸ†แžแžถแž“แŸ‹แŸ—แž‡แžถแž„ 500 แžแŸ’แžšแžผแžœแž”แžถแž“แž‘แž‘แžฝแž›แž™แž€แž‘แŸ…แž€แŸ’แž“แžปแž„แž€แž˜แŸ’แž˜แžœแžทแž’แžธแžŸแžถแž€แž›แŸ’แž”แž„แžฅแžแžˆแž”แŸ‹แžˆแžšแŸ” แžŠแŸ„แž™แž•แŸ’แžขแŸ‚แž€แž›แžพแž€แžถแžšแž’แŸ’แžœแžพแžแŸแžŸแŸ’แžแžŠแŸ‚แž›แž”แžถแž“แž’แŸ’แžœแžพแžกแžพแž„ แž—แžถแž–แž„แžถแž™แžšแž„แž‚แŸ’แžšแŸ„แŸ‡แžŠแŸ‚แž›แž”แžถแž“แž”แž‰แŸ’แž‡แžถแž€แŸ‹แž‡แžถแž„ 6500 แžแŸ’แžšแžผแžœแž”แžถแž“แž›แžปแž”แž…แŸ„แž› แž แžพแž™แž€แŸ†แž แžปแžŸแž‡แžถแž„ 21 แž–แžถแž“แŸ‹แžแŸ’แžšแžผแžœแž”แžถแž“แž€แŸ‚แžŠแŸ†แžšแžผแžœแŸ” ClusterFuzzLite แž”แž“แŸ’แžแž”แž„แŸ’แž€แžพแžแž™แž“แŸ’แžแž€แžถแžšแžŸแžถแž€แž›แŸ’แž”แž„แžŠแŸ‚แž›แžŸแŸ’แžšแž–แžทแž…แžŸแŸ’แžšแž–แžทแž› แž‡แžถแž˜แžฝแž™แž“แžนแž„แžŸแž˜แžแŸ’แžแž—แžถแž–แž€แŸ’แž“แžปแž„แž€แžถแžšแž€แŸ†แžŽแžแŸ‹แž”แž‰แŸ’แž แžถแž˜แžปแž“แž“แŸ…แžŠแŸ†แžŽแžถแž€แŸ‹แž€แžถแž›แž–แžทแž“แžทแžแŸ’แž™แžกแžพแž„แžœแžทแž‰แž“แŸƒแž€แžถแžšแž•แŸ’แž›แžถแžŸแŸ‹แž”แŸ’แžแžผแžšแžŠแŸ‚แž›แž”แžถแž“แžŸแŸ’แž“แžพแžกแžพแž„แŸ” ClusterFuzzLite แžแŸ’แžšแžผแžœโ€‹แž”แžถแž“โ€‹แžขแž“แžปแžœแžแŸ’แžโ€‹แžšแžฝแž…โ€‹แž แžพแž™โ€‹แž€แŸ’แž“แžปแž„โ€‹แžŠแŸ†แžŽแžพแžšโ€‹แž€แžถแžšโ€‹แž–แžทแž“แžทแžแŸ’แž™โ€‹แž˜แžพแž›โ€‹แž€แžถแžšโ€‹แž•แŸ’แž›แžถแžŸแŸ‹โ€‹แž”แŸ’แžแžผแžšโ€‹แž“แŸ…โ€‹แž€แŸ’แž“แžปแž„โ€‹แž‚แž˜แŸ’แžšแŸ„แž„ systemd แž“แžทแž„ curl แž แžพแž™โ€‹แž”แžถแž“โ€‹แž’แŸ’แžœแžพโ€‹แžฑแŸ’แž™โ€‹แžœแžถโ€‹แžขแžถแž…โ€‹แž€แŸ†แžŽแžแŸ‹โ€‹แžขแžแŸ’แžแžŸแž‰แŸ’แž‰แžถแžŽโ€‹แž€แŸ†แž แžปแžŸโ€‹แžŠแŸ‚แž›โ€‹แžแž€แžแžถแž“โ€‹แžŠแŸ„แž™โ€‹แžขแŸ’แž“แž€โ€‹แžœแžทแž—แžถแž‚โ€‹แž‹แžทแžแžทแžœแž“แŸ’แžโ€‹ แž“แžทแž„โ€‹ linters แžŠแŸ‚แž›โ€‹แž”แŸ’แžšแžพโ€‹แž“แŸ…โ€‹แžŠแŸ†แžŽแžถแž€แŸ‹โ€‹แž€แžถแž›โ€‹แžŠแŸ†แž”แžผแž„โ€‹แž“แŸƒโ€‹แž€แžถแžšโ€‹แž–แžทแž“แžทแžแŸ’แž™โ€‹แž€แžผแžŠโ€‹แžแŸ’แž˜แžธแŸ”

ClusterFuzzLite แž‚แžถแŸ†แž‘แŸ’แžšแž€แžถแžšแž–แžทแž“แžทแžแŸ’แž™แž˜แžพแž›แž‚แž˜แŸ’แžšแŸ„แž„แž“แŸ…แž€แŸ’แž“แžปแž„ C, C++, Java (แž“แžทแž„แž—แžถแžŸแžถแž•แŸ’แžŸแŸแž„แž‘แŸ€แžแžŠแŸ‚แž›แž˜แžถแž“แž˜แžผแž›แžŠแŸ’แž‹แžถแž“แž›แžพ JVM), Go, Python, Rust แž“แžทแž„ Swift แŸ” แž€แžถแžšแž’แŸ’แžœแžพแžแŸแžŸแŸ’แž Fuzzing แžแŸ’แžšแžผแžœแž”แžถแž“แžขแž“แžปแžœแžแŸ’แžแžŠแŸ„แž™แž”แŸ’แžšแžพแž˜แŸ‰แžถแžŸแŸŠแžธแž“ LibFuzzer แŸ” แžงแž”แž€แžšแžŽแŸ AddressSanitizer, MemorySanitizer, แž“แžทแž„ UBSan (UndefinedBehaviorSanitizer) แž€แŸแžขแžถแž…แžแŸ’แžšแžผแžœแž”แžถแž“แž‚แŸแž แŸ…แžแžถแžŠแžพแž˜แŸ’แž”แžธแž€แŸ†แžŽแžแŸ‹แžขแžแŸ’แžแžŸแž‰แŸ’แž‰แžถแžŽแž€แŸ†แž แžปแžŸ แž“แžทแž„แž—แžถแž–แž˜แžทแž“แž”แŸ’แžšแž€แŸ’แžšแžแžธแž“แŸƒแž€แžถแžšแž…แž„แž…แžถแŸ†แž•แž„แžŠแŸ‚แžšแŸ”

แž›แž€แŸ’แžแžŽแŸˆแžŸแŸ†แžแžถแž“แŸ‹แŸ—แžšแž”แžŸแŸ‹ ClusterFuzzLiteแŸ– แž–แžทแž“แžทแžแŸ’แž™แžšแž แŸแžŸแž“แŸƒแž€แžถแžšแž•แŸ’แž›แžถแžŸแŸ‹แž”แŸ’แžแžผแžšแžŠแŸ‚แž›แž”แžถแž“แžŸแŸ’แž“แžพแžกแžพแž„ แžŠแžพแž˜แŸ’แž”แžธแžŸแŸ’แžœแŸ‚แž„แžšแž€แž€แŸ†แž แžปแžŸแž˜แžปแž“แž–แŸแž›แž‘แž‘แžฝแž›แž™แž€แž€แžผแžŠแŸ” แž‘แžถแž‰แž™แž€แžšแž”แžถแž™แž€แžถแžšแžŽแŸแžŸแŸ’แžแžธแž–แžธแž›แž€แŸ’แžแžแžŽแŸ’แžŒแž‚แžถแŸ†แž„; แžŸแž˜แžแŸ’แžแž—แžถแž–แž€แŸ’แž“แžปแž„แž€แžถแžšแž”แž“แŸ’แžแž‘แŸ…แž€แžถแžšแž’แŸ’แžœแžพแžแŸแžŸแŸ’แž fuzzing แž€แž˜แŸ’แžšแžทแžแžแŸ’แž–แžŸแŸ‹แž”แž“แŸ’แžแŸ‚แž˜แž‘แŸ€แžแžŠแžพแž˜แŸ’แž”แžธแž€แŸ†แžŽแžแŸ‹แžขแžแŸ’แžแžŸแž‰แŸ’แž‰แžถแžŽแž€แŸ†แž แžปแžŸแž€แžถแž“แŸ‹แžแŸ‚แž‡แŸ’แžšแŸ…แžŠแŸ‚แž›แž˜แžทแž“แž”แžถแž“แž€แžพแžแžกแžพแž„แž”แž“แŸ’แž‘แžถแž”แŸ‹แž–แžธแž–แžทแž“แžทแžแŸ’แž™แž˜แžพแž›แž€แžถแžšแž•แŸ’แž›แžถแžŸแŸ‹แž”แŸ’แžแžผแžšแž€แžผแžŠแŸ” แž€แžถแžšแž”แž„แŸ’แž€แžพแžแžšแž”แžถแž™แž€แžถแžšแžŽแŸแž‚แŸ’แžšแž”แžŠแžŽแŸ’แžแž”แŸ‹แžŠแžพแž˜แŸ’แž”แžธแžœแžถแž™แžแž˜แŸ’แž›แŸƒแž€แžถแžšแž‚แŸ’แžšแž”แžŠแžŽแŸ’แžแž”แŸ‹แž€แžผแžŠแž€แŸ†แžกแžปแž„แž–แŸแž›แž’แŸ’แžœแžพแžแŸแžŸแŸ’แžแŸ” แžŸแŸ’แžแžถแž”แžแŸ’แž™แž€แž˜แŸ’แž˜แž˜แŸ‰แžผแžŒแžปแž›แžŠแŸ‚แž›แžขแž“แžปแž‰แŸ’แž‰แžถแžแžฑแŸ’แž™แžขแŸ’แž“แž€แž‡แŸ’แžšแžพแžŸแžšแžพแžŸแž˜แžปแžแž„แžถแžšแžŠแŸ‚แž›แžแŸ’แžšแžผแžœแž€แžถแžšแŸ”

แž…แžผแžšแž™แžพแž„แžšแŸ†แž›แžนแž€แžกแžพแž„แžœแžทแž‰แžแžถ แž€แžถแžšแž’แŸ’แžœแžพแžแŸแžŸแŸ’แž fuzzing แž–แžถแž€แŸ‹แž–แŸแž“แŸ’แž’แž“แžนแž„แž€แžถแžšแž”แž„แŸ’แž€แžพแžแžŸแŸ’แž‘แŸ’แžšแžธแž˜แž‚แŸ’แžšแž”แŸ‹แž”แŸ’แžšแž—แŸแž‘แž“แŸƒแž”แž“แŸ’แžŸแŸ†แž…แŸƒแžŠแž“แŸ’แž™แž“แŸƒแž‘แžทแž“แŸ’แž“แž“แŸแž™แž”แž‰แŸ’แž…แžผแž›แžŠแŸ‚แž›แž“แŸ…แž‡แžทแžแž‘แžทแž“แŸ’แž“แž“แŸแž™แž–แžทแž (แžงแž‘แžถแž แžšแžŽแŸ แž‘แŸ†แž–แŸแžš html แžŠแŸ‚แž›แž˜แžถแž“แž”แŸ‰แžถแžšแŸ‰แžถแž˜แŸ‰แŸ‚แžแŸ’แžšแžŸแŸ’แž›แžถแž€แž…แŸƒแžŠแž“แŸ’แž™ แž”แžŽแŸ’แžŽแžŸแžถแžš แžฌแžšแžผแž”แž—แžถแž–แžŠแŸ‚แž›แž˜แžถแž“แž…แŸ†แžŽแž„แž‡แžพแž„แž˜แžทแž“แž”แŸ’แžšแž€แŸ’แžšแžแžธแŸ”แž›แŸ”) แž“แžทแž„แž€แžถแžšแžแžแžขแžถแž…แž’แŸ’แžœแžพแž‘แŸ…แž”แžถแž“แŸ” แž€แžถแžšแž”แžšแžถแž‡แŸแž™แž€แŸ’แž“แžปแž„แžŠแŸ†แžŽแžพแžšแž€แžถแžšแžŠแŸ†แžŽแžพแžšแž€แžถแžšแžšแž”แžŸแŸ‹แž–แžฝแž€แž‚แŸแŸ” แž”แŸ’แžšแžŸแžทแž“แž”แžพโ€‹แž›แŸ†แžŠแžถแž”แŸ‹โ€‹แž˜แžฝแž™โ€‹แž‚แžถแŸ†แž„ แžฌโ€‹แž˜แžทแž“โ€‹แžแŸ’แžšแžผแžœแž‚แŸ’แž“แžถโ€‹แž“แžนแž„โ€‹แž€แžถแžšโ€‹แž†แŸ’แž›แžพแž™แžแž”โ€‹แžŠแŸ‚แž›โ€‹แž”แžถแž“โ€‹แžšแŸ†แž–แžนแž„แž‘แžปแž€ แž“แŸ„แŸ‡โ€‹แžฅแžšแžทแž™แžถแž”แžโ€‹แž“แŸแŸ‡โ€‹แž‘แŸ†แž“แž„โ€‹แž‡แžถโ€‹แž”แž„แŸ’แž แžถแž‰โ€‹แž–แžธโ€‹แž€แŸ†แž แžปแžŸ แžฌโ€‹แž—แžถแž–แž„แžถแž™โ€‹แžšแž„แž‚แŸ’แžšแŸ„แŸ‡แŸ”

แž”แŸ’แžšแž—แž–: opennet.ru

แž”แž“แŸ’แžแŸ‚แž˜แž˜แžแžทแž™แŸ„แž”แž›แŸ‹