Google har introducerat ClusterFuzzLite-projektet, som gör det möjligt att organisera otydlig testning av kod för tidig upptÀckt av potentiella sÄrbarheter under driften av kontinuerliga integrationssystem. För nÀrvarande kan ClusterFuzz anvÀndas för att automatisera fuzz-testning av pull-förfrÄgningar i GitHub Actions, Google Cloud Build och Prow, men stöd för andra CI-system förvÀntas i framtiden. Projektet Àr baserat pÄ ClusterFuzz-plattformen, skapad för att koordinera arbetet med att fuzza testkluster, och distribueras under Apache 2.0-licensen.
Det noteras att efter att Google introducerade OSS-Fuzz-tjÀnsten 2016, accepterades mer Àn 500 viktiga projekt med öppen kÀllkod i det kontinuerliga fuzzing-testprogrammet. Baserat pÄ utförda tester eliminerades mer Àn 6500 21 bekrÀftade sÄrbarheter och mer Àn XNUMX tusen fel korrigerades. ClusterFuzzLite fortsÀtter att utveckla otydliga testmekanismer med förmÄgan att identifiera problem tidigare i granskningsstadiet av föreslagna Àndringar. ClusterFuzzLite har redan implementerats i förÀndringsgranskningsprocesserna i systemd- och curl-projekten och gjort det möjligt att identifiera fel som missats av statiska analysatorer och linters som anvÀnds i det inledande skedet av kontroll av ny kod.
ClusterFuzzLite stöder projektgranskning i C, C++, Java (och andra JVM-baserade sprÄk), Go, Python, Rust och Swift. Fuzzing-testning utförs med LibFuzzer-motorn. Verktygen AddressSanitizer, MemorySanitizer och UBSan (UndefinedBehaviorSanitizer) kan ocksÄ anropas för att identifiera minnesfel och anomalier.
Nyckelfunktioner i ClusterFuzzLite: snabb kontroll av föreslagna Àndringar för att hitta fel innan koden accepteras; nedladdning av rapporter om kraschförhÄllanden; möjligheten att gÄ vidare till mer avancerad fuzzing-testning för att identifiera djupare fel som inte dykt upp efter att ha kontrollerat kodÀndringarna; generering av tÀckningsrapporter för att bedöma kodtÀckning under testning; modulÀr arkitektur som lÄter dig vÀlja önskad funktionalitet.
LÄt oss komma ihÄg att otydlig testning innebÀr att generera en ström av alla typer av slumpmÀssiga kombinationer av indata som ligger nÀra verkliga data (till exempel html-sidor med slumpmÀssiga taggparametrar, arkiv eller bilder med onormala titlar, etc.), och inspelning av ev. misslyckanden i processen deras bearbetning. Om en sekvens kraschar eller inte stÀmmer överens med det förvÀntade svaret, Àr det mycket troligt att detta beteende indikerar en bugg eller sÄrbarhet.
KĂ€lla: opennet.ru
