Google har presenterat projektet ClusterFuzzLite, som möjliggör fuzzing-testning av kod för tidig upptÀckte av potentiella sÄrbarheter under arbetet med kontinuerlig integrationssystem. För nÀrvarande kan ClusterFuzz anvÀndas för automatisering av fuzzing-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 inom en snar framtid. Projektet Àr baserat pÄ plattformen ClusterFuzz, som har skapats för att samordna arbetet med fuzzing-testningskluster och sprids under Apache 2.0-licensen.
Det noteras att efter att Google införde tjÀnsten OSS-Fuzz 2016 har mer Àn 500 viktiga öppna projekt inkluderats i programmet för kontinuerlig fuzzing-testning. Baserat pÄ utförda kontroller har över 6500 bekrÀftade sÄrbarheter ÄtgÀrdats och mer Àn 21 000 fel har korrigerats. ClusterFuzzLite fortsÀtter att utveckla mekanismer för fuzzing-testning med möjligheten att tidigare upptÀcka problem i granskningen av föreslagna Àndringar. ClusterFuzzLite har redan implementerats i granskningsprocesser för Àndringar i projekten systemd och curl och har möjliggjort att upptÀcka fel som har missats av statiska analyserare och linters som anvÀndes i det tidiga skedet av kontrollen av ny kod.
ClusterFuzzLite stödjer kontroll av projekt pÄ sprÄken C, C++, Java (och andra sprÄk baserade pÄ JVM), Go, Python, Rust och Swift. Fuzzing-testning genomförs med hjÀlp av motorn LibFuzzer. För att identifiera minnesfel och anomalier kan Àven verktygen AddressSanitizer, MemorySanitizer och UBSan (UndefinedBehaviorSanitizer) anropas.
Huvudfunktionerna i ClusterFuzzLite: snabb kontroll av föreslagna Àndringar för att hitta fel innan kod godkÀnns; uppladdning av rapporter om kraschar; möjlighet att övergÄ till mer omfattande fuzzing-testning för att upptÀcka djupare fel som inte framkommit efter granskning av kodÀndringar; generering av coverage-rapporter för att bedöma kodtÀckningen vid testning; modulÀr arkitektur som tillÄter val av nödvÀndig funktionalitet.
Vi pÄminner om att fuzzing-testning innebÀr att generera en ström av alla möjliga slumpmÀssiga kombinationer av indata som liknar verkliga data (till exempel html-sidor med slumpmÀssiga taggparametrar, arkiv eller bilder med avvikande rubriker osv.), och att registrera eventuella krasch under bearbetningen av dessa. Om en viss sekvens leder till ett krasch eller inte ger den förvÀntade reaktionen, sÄ tyder detta med stor sannolikhet pÄ ett fel eller en sÄrbarhet.
KĂ€lla: opennet.ru
