OSS-Fuzz infrastruktuuri on lisatud võimalus testida Lua program keeles kirjutatud projekte, lisaks varem toetatud keeledele C/C++, Go, Swift, Rust, Python, JavaScript ja Java. Integreerimine on teostatud luzer projekti abil, mis arendab spetsialiseeritud tööriistu Lua koodi ja C/C++-s kirjutatud Lua laiendite phazzing-testeerimiseks.
Projekt kasutab libFuzzer teeki ja seda saab kasutada koos AddressSanitizer, MemorySanitizer, LeakSanitizer, ThreadSanitizer ja Undefined Behavior Sanitizer tööriistadega, mis võimaldavad tuvastada avastatud phazzing-testeerimise probleemide põhjal tüüpilisi haavatavusi, mis on põhjustatud puhverületustest, täisarvude ületäitumistest, algatamata ja vabastatud aladele juurdepääsust, mälu lekkest, näitajate dereferentsimistest ja lukustamisprobleemidest. Projekti kood on saadaval ISC litsentsi alusel.
Luzer genereerib sisenemiste andmete kombinatsioone ja koostab aruande kõikidest tuvastatud tõrgetest ja mitte püüdnud erandeid. Näiteks, kui kontrolliti luzeriga MsgPack antirez/lua-cmsgpack formaadi analüüsi teeki, leiti, et suurt hulka massiive sisaldavad andmed võivad põhjustada steki ületäitumise.
Lunaparki projekti raames kasutatakse luzer tööriistu PUC Rio Lua, LuaJIT kõrge jõudlusega jälgiva kompilaatori ja serverid Tarantooli rakenduste, samuti kolmandate osapoolte Lua-moodulite testimiseks.
Avatud projektide arendajad võivad oma testimiseks repod lisada, valmistades ette phazzing-testeerimise malli ja esitades eritaotluse pull-päringu kaudu. Kui vigu avastatakse, saadetakse arendajatele automaatselt teade ja luuakse privaatne parandamise taotlus (et vältida varajasi haavatavuste teabe lekkeid, luuakse pilet piiratud juurdepääsuga veaparanduse jälgimise süsteemis). OSS Fuzz jälgib vea parandamise staatust ja sulgeb pileti automaatselt, kui probleem enam ei kordub. Probleemi teave muutub avalikuks 7 päeva möödudes pärast parandamist või 90 päeva jooksul pärast vea avastamist, kui probleem on endiselt lahendamata.
Allikas: opennet.ru
