Infrastrukturen för kontinuerlig fuzz-testning OSS-Fuzz har lagt till möjligheten att testa projekt skrivna i Lua, utöver de som tidigare stöddes som C/C++, Go, Swift, Rust, Python, JavaScript och Java. Integrationen har genomförts med hjÀlp av projektet luzer, som utvecklar specialiserade verktyg för fuzz-testning av kod i Lua och Lua-tillÀgg skrivna i C/C++.
Projektet anvÀnder biblioteket libFuzzer och kan anvÀndas tillsammans med verktyg som AddressSanitizer, MemorySanitizer, LeakSanitizer, ThreadSanitizer och Undefined Behavior Sanitizer, som möjliggör att identifiera typiska sÄrbarheter orsakade av buffertöverskridningar, heltalsöverskridningar, Ätkomst till oinitialiserade och frigjorda omrÄden, minneslÀckor, pekardereferenser och lÄsningsproblem baserat pÄ problem som upptÀckts under fuzz-testning. Projektkoden Àr tillgÀnglig under ISC-licensen.
Under arbetet med luzer gÄs möjliga kombinationer av indata igenom och en rapport om alla upptÀckta krascher och o fÄngade undantag genereras. Vid till exempel granskning av luzer-biblioteket för MsgPack-formatet antirez/lua-cmsgpack upptÀcktes att data med mÄnga arrayer kan leda till stacköverskridning.
Inom ramen för projektet lunapark tillÀmpas luzer-verktyget för testning av PUC Rio Lua, spÄrningskompilatorn LuaJIT, den högpresterande databasstyrningssystem och servern Tarantool-appar, samt för testning av tredjeparts Lua-moduler.
Utvecklare av öppna projekt kan lÀgga till sina förrÄd för testning genom att förbereda en mall för fuzz-testning och skicka en sÀrskild begÀran genom en pull-begÀran. Vid upptÀckta fel skickas automatiskt en avisering till utvecklarna och en privat begÀran om korrigering skapas (för att förhindra för tidig lÀckage av information om sÄrbarheter, skapas biljetten i ett system för felspÄrning med begrÀnsad Ätkomst). OSS Fuzz övervakar statusen för felkorrigering och stÀnger automatiskt biljetten om den inte lÀngre kan Äterskapas. Informationen om problemet blir offentligt tillgÀnglig 7 dagar efter korrigeringen eller 90 dagar efter att felet upptÀcktes, om problemet förblir okorrigerat.
KĂ€lla: opennet.ru
