Аннотация:
Фаззинг-тестирование JavaScript интерпретаторов является одним из наиболее сложных направлений в тестировании веб-браузера, ввиду сложности генерации его входных данных. Интерпретаторы обрабатывают JavaScript код на веб-странице и требуют постоянной поддержки новых стандартов языка и усложнения своей архитектуры. Наиболее распространенные сегодня фаззеры не способны эффективно мутировать сложноструктурированные входные данные при фаззинг-тестировании. Генерация JavaScript кода с нуля не позволяет инкапсулировать необходимую семантику, а текущие мутаторы быстро разрушают синтаксис и семантику языка входных данных. В данной статье представлена новая стратегия мутации, сохраняющая синтаксис и семантику входных данных за счет модификации AST-деревьев фрагментов JavaScript кода. Данный метод позволяет эффективно генерировать разнообразные и корректные входные данные, которые могут привести к выявлению ошибок и уязвимостей в интерпретаторах JavaScript. Данный метод может быть использован для повышения безопасности веб-браузеров и обеспечения надежности интерпретации JavaScript кода.
Ключевые слова:мутации сложноструктурированных данных, интерпретатор JavaScript, уязвимости программного обеспечения, фаззинг-тестирование