Автором исследования является старший консультант по безопасности компании IOActive Фернандо Арнаболди (Fernando Arnaboldi). С помощью автоматизированный техники, известной как фаззинг, эксперт протестировал интерпретаторы пяти популярных языков программирования – JavaScript, Perl, PHP, Python и Ruby. Фаззинг позволяет выявить такие проблемы, как аварийное завершение работы, "зависание" и повреждение памяти. Как правило, некоторые из них возникают не потому, что код приложения требует оптимизации, а являются результатом более серьезных проблем с безопасностью в языках программирования.
В ходе исследования Арнаболди использовал созданный им самим "дифференциальный фаззер" XDiFF (Extended Differential Fuzzing Framework), специально адаптированный для тестирования структуры и принципа работы интерпретируемых языков программирования. Как оказалось по результатам исследования:
Интерпретируемый язык программирования – язык программирования, в котором исходный код программы не преобразовывается в машинный код для непосредственного выполнения центральным процессором (как в компилируемых языках), а исполняется с помощью специальной программы-интерпретатора.
Фаззинг (fuzzing) – техника тестирования программного обеспечения, часто автоматическая или полуавтоматическая, заключающая в передаче приложению на вход неправильных, неожиданных или случайных данных.