Фаззинг JS-движков с помощью Fuzzilli



fuzzilli – это фаззер для javascript-движков от команды googleprojectzero. Его отличительная черта – это FuzzIL, промежуточный язык, который можно мутировать и затем транслировать в js. Этот язык обеспечивает мутированному js семантическую валидность: даже после нескольких раундов изменений в коде остается логика, с которой движок будет работать.



Движки, которые можно фаззить

JavaScriptCore(webkit)

Jerryscript

QJS

QTJS

Spidermonkey(gecko)

V8

XS

duktape

В этом списке V8, Spidermonkey, XS и duktape уже поддерживают работу с fuzzilli. А остальные движки можно пропатчить и начать фаззинг, патчи включены в состав инструмента.


С помощью fuzzilli уже найдено много интересных багов типа OOB. Разберемся, как он устроен.

Читать дальше →