Fuzzing består av att upprepade gånger testa ett program med modifierade, eller fuzzed, ingångar med målet att hitta säkerhetssårbarheter i input-parsing kod. I detta papper, visar vi hur man automatiserar generering av en ingång grammatik lämplig för inmatning fuzzing med hjälp av prover ingångar och neurala nätverk-baserade statistiska maskininlärning tekniker. Vi presenterar en detaljerad fallstudie med ett komplext indataformat, nämligen PDF, och en stor komplex säkerhetskritisk tolk för detta format, nämligen PDF-tolken inbäddad i Microsofts nya Edge webbläsare. Vi diskuterar och mäter spänningen mellan motstridiga lärande och fuzzing mål: lärande vill fånga strukturen av välformade ingångar, medan fuzzing vill bryta den strukturen för att täcka oväntade kodvägar och hitta buggar. Vi presenterar också en ny algoritm för denna inlärning & fuzz utmaning som använder en inlärd indata sannolikhet distribution för att intelligent vägleda var att fuzz ingångar.
Learn&Fuzz REF använder neural-nätverksbaserad statistisk maskininlärning för att generera filer som uppfyller ett komplext format.
Learn&Fuzz: Machine learning for input fuzzing
{'venue': '2017 32nd IEEE/ACM International Conference on Automated Software Engineering (ASE)', 'journal': '2017 32nd IEEE/ACM International Conference on Automated Software Engineering (ASE)', 'mag_field_of_study': ['Computer Science']}