Snabbare fuzztester med taviso loadlibrary
Tavis Ormandy (taviso) på Google har släppt ett nytt verktyg som underlättar fuzztester av mjukvaror. Verktyget heter loadlibrary och gör att dynamiska bibliotek (DLL:er) från Windows kan köras på Linux.
Vid storskaliga fuzztester är det viktigt med så lite overhead som möjligt för att inte slösa resurser på onödiga saker. Därför utvecklade taviso verktyget loadlibrary för att enkelt kunna skapa små containers med Windows-DLL:er och sedan fuzza dessa DLL:er i en storskalig miljö. Google har även sedan tidigare utvecklat verktyget OSS-fuzz som just är ett ramverk för att snabbt och enkelt göra fuzzing av mjukvaror.
Fuzz-tester är en metodik för att skicka in mer eller mindre slumpmässig data på olika sätt och sedan se hur ett program beter sig. Och kan då upptäcka en mängd olika sårbarheter såsom buffer-overflows, integer underflows osv.
Taviso har med hjälp av loadlibrary identifierat en allvarlig sårbarhet i bl.a. Microsofts antivirus-motor vid namn Microsoft Malware Protection Engine, Mpengine.dll (Windows Defender).
Exempel på hur Mpengine kan köras på Linux för att genomsöka filen eicar.com efter Eicar-testvirus:
$ ./mpclient eicar.com
main(): Scanning eicar.com...
EngineScanCallback(): Scanning input
EngineScanCallback(): Threat Virus:DOS/EICAR_Test_File identified.
Till skillnad från Wine som kör hela Windows-applikationer så kör taviso-loadlibrarykod från enstaka DLL:er.
Här kan du ladda hem loadlibrary från Github:
Obligatorisk Dilbert: