Google прСдстави систСмата Π·Π° тСстванС Π½Π° fuzzing ClusterFuzzLite

Google прСдстави ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ClusterFuzzLite, ΠΊΠΎΠΉΡ‚ΠΎ позволява ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° fuzzing тСстванС Π½Π° ΠΊΠΎΠ΄ Π·Π° Ρ€Π°Π½Π½ΠΎ ΠΎΡ‚ΠΊΡ€ΠΈΠ²Π°Π½Π΅ Π½Π° ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»Π½ΠΈ уязвимости ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° Π½Π° систСми Π·Π° Π½Π΅ΠΏΡ€Π΅ΠΊΡŠΡΠ½Π°Ρ‚Π° интСграция. Π’ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° ClusterFuzz ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° fuzz тСстванС Π½Π° заявки Π·Π° изтСглянС Π² GitHub Actions, Google Cloud Build ΠΈ Prow, Π½ΠΎ Π² Π±ΡŠΠ΄Π΅Ρ‰Π΅ сС ΠΎΡ‡Π°ΠΊΠ²Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° Π΄Ρ€ΡƒΠ³ΠΈ CI систСми. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΡŠΡ‚ сС основава Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° ClusterFuzz, създадСна Π·Π° ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½ΠΈΡ€Π°Π½Π΅ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ΠΈΡ‚Π΅ Π·Π° тСстванС Π½Π° fuzzing ΠΈ сС разпространява ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·Π° Apache 2.0.

ΠžΡ‚Π±Π΅Π»ΡΠ·Π²Π° сС, Ρ‡Π΅ слСд ΠΊΠ°Ρ‚ΠΎ Google прСдстави услугата OSS-Fuzz ΠΏΡ€Π΅Π· 2016 Π³., ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΎΡ‚ 500 Π²Π°ΠΆΠ½ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄ бяха ΠΏΡ€ΠΈΠ΅Ρ‚ΠΈ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π° Π·Π° Π½Π΅ΠΏΡ€Π΅ΠΊΡŠΡΠ½Π°Ρ‚ΠΎ тСстванС Π½Π° fuzzing. Π’ΡŠΠ· основа Π½Π° ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ‚Π΅ тСстовС бяха Π΅Π»ΠΈΠΌΠΈΠ½ΠΈΡ€Π°Π½ΠΈ ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΎΡ‚ 6500 ΠΏΠΎΡ‚Π²ΡŠΡ€Π΄Π΅Π½ΠΈ уязвимости ΠΈ бяха ΠΊΠΎΡ€ΠΈΠ³ΠΈΡ€Π°Π½ΠΈ ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΎΡ‚ 21 хиляди Π³Ρ€Π΅ΡˆΠΊΠΈ. ClusterFuzzLite ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ°Π²Π° Π΄Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π° ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΈ Π·Π° тСстванС Π½Π° fuzzing с Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ ΠΏΠΎ-Ρ€Π°Π½ΠΎ Π½Π° Π΅Ρ‚Π°ΠΏΠ° Π½Π° ΠΏΡ€Π΅Π³Π»Π΅Π΄ Π½Π° ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ. ClusterFuzzLite Π²Π΅Ρ‡Π΅ Π΅ Π²Π½Π΅Π΄Ρ€Π΅Π½ Π² процСситС Π½Π° ΠΏΡ€Π΅Π³Π»Π΅Π΄ Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ‚Π΅ systemd ΠΈ curl ΠΈ Π½Π°ΠΏΡ€Π°Π²ΠΈ възмоТно ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ, пропуснати ΠΎΡ‚ статичнитС Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΈ ΠΈ Π»ΠΈΠ½Ρ‚Π΅Ρ€ΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ Π² началния Π΅Ρ‚Π°ΠΏ Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Π½ΠΎΠ² ΠΊΠΎΠ΄.

ClusterFuzzLite ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° ΠΏΡ€Π΅Π³Π»Π΅Π΄ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ Π² C, C++, Java (ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ JVM-Π±Π°Π·ΠΈΡ€Π°Π½ΠΈ Π΅Π·ΠΈΡ†ΠΈ), Go, Python, Rust ΠΈ Swift. Fuzzing тСстванСто сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° двигатСля LibFuzzer. Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ‚Π΅ AddressSanitizer, MemorySanitizer ΠΈ UBSan (UndefinedBehaviorSanitizer) ΡΡŠΡ‰ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΈΠ·Π²ΠΈΠΊΠ°Π½ΠΈ Π·Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½Π΅ Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ ΠΈ Π°Π½ΠΎΠΌΠ°Π»ΠΈΠΈ Π² ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°.

Основни характСристики Π½Π° ClusterFuzzLite: Π±ΡŠΡ€Π·Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π·Π° Π½Π°ΠΌΠΈΡ€Π°Π½Π΅ Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ ΠΏΡ€Π΅Π΄ΠΈ ΠΏΡ€ΠΈΠ΅ΠΌΠ°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΠ΄Π°; изтСглянС Π½Π° Π΄ΠΎΠΊΠ»Π°Π΄ΠΈ Π·Π° условията Π½Π° срив; способността Π΄Π° сС ΠΏΡ€Π΅ΠΌΠΈΠ½Π΅ към ΠΏΠΎ-Π½Π°ΠΏΡ€Π΅Π΄Π½Π°Π»ΠΎ тСстванС Π½Π° Ρ€Π°Π·ΠΌΠΈΠ²Π°Π½Π΅, Π·Π° Π΄Π° сС ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Ρ‚ ΠΏΠΎ-дълбоки Π³Ρ€Π΅ΡˆΠΊΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ са сС появили слСд ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ Π² ΠΊΠΎΠ΄Π°; Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΈ Π·Π° ΠΏΠΎΠΊΡ€ΠΈΡ‚ΠΈΠ΅ Π·Π° ΠΎΡ†Π΅Π½ΠΊΠ° Π½Π° ΠΏΠΎΠΊΡ€ΠΈΡ‚ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΠ΄Π° ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° тСстванС; ΠΌΠΎΠ΄ΡƒΠ»Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°, която Π²ΠΈ позволява Π΄Π° ΠΈΠ·Π±Π΅Ρ€Π΅Ρ‚Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ°Ρ‚Π° функционалност.

НСка ΠΏΡ€ΠΈΠΏΠΎΠΌΠ½ΠΈΠΌ, Ρ‡Π΅ fuzzing тСстванСто Π²ΠΊΠ»ΡŽΡ‡Π²Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΠΎΡ‚ΠΎΠΊ ΠΎΡ‚ всякакви ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ ΠΎΡ‚ Π²Ρ…ΠΎΠ΄Π½ΠΈ Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ са Π±Π»ΠΈΠ·ΠΊΠΈ Π΄ΠΎ Ρ€Π΅Π°Π»Π½ΠΈΡ‚Π΅ Π΄Π°Π½Π½ΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ html страници с ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ Π½Π° Ρ‚Π°Π³ΠΎΠ²Π΅, Π°Ρ€Ρ…ΠΈΠ²ΠΈ ΠΈΠ»ΠΈ изобраТСния с Π°Π½ΠΎΠΌΠ°Π»Π½ΠΈ заглавия ΠΈ Ρ‚.Π½.) ΠΈ възмоТно записванС Π³Ρ€Π΅ΡˆΠΊΠΈ Π² процСса Π½Π° тяхната ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°. Ако Π΄Π°Π΄Π΅Π½Π° послСдоватСлност сС сринС ΠΈΠ»ΠΈ Π½Π΅ отговаря Π½Π° очаквания ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€, Ρ‚ΠΎΠ²Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ вСроятно Π΄Π° ΠΏΠΎΠΊΠ°Π·Π²Π° Π³Ρ€Π΅ΡˆΠΊΠ° ΠΈΠ»ΠΈ уязвимост.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€