
Инструмент для эффективного тестирования связующего слоя скриптовых языков
Cooper использует кооперативную мутацию для тестирования связующего кода скриптовых языков с целью поиска проблем безопасности памяти. Кооперативная мутация одновременно изменяет код скриптов и связанные объекты документов, чтобы исследовать различные пути выполнения связующего кода. Для поддержки кооперативной мутации мы выводим взаимосвязь между кодом скриптов и объектами документов, направляя двумерную мутацию. Мы применили наш инструмент Cooper к трём популярным коммерческим продуктам: Adobe Acrobat, Foxit Reader и Microsoft Word. Cooper обнаружил 134 ранее неизвестные ошибки, что привело к 33 записям CVE и вознаграждениям на сумму 22 000 долларов. Cooper имеет три компонента:
Общая схема Cooper показана на диаграмме ниже.
Для получения более подробной информации, пожалуйста, ознакомьтесь с нашей статьёй, опубликованной на 29-м ежегодном симпозиуме по сетевым и распределённым системам безопасности (NDSS 2022).
pip install pywin32Вам необходимо подготовить несколько образцов PDF (Word) и поместить их в папку, которая будет использоваться как sample_dir.
Количество образцов PDF (Word) должно быть от 10 000 до 20 000.
Мы подготовили 200 образцов PDF в DropBox,
и 214 образцов Word в DropBox.
Вы можете протестировать на этих небольших образцах, но для лучших результатов используйте больше образцов.
$ python PdfSolution.py/WordSolution.py <sample_dir> <data_dir> <output_dir> <generate_cnt>
<sample_dir>: the absolute path of raw pdf samples folder
<data_dir>: the absolute path for mid data folder
<output_dir>: the absolute path for folder storing generated samples
<generate_cnt>: the amount how many input Cooper will generate
Peng Xu [email protected]
Yanhao Wang [email protected]
Hong Hu [email protected]
Purui Su [email protected]
Cooper: Testing the Binding Code of Scripting Languages with Cooperative Mutation
@inproceedings{xu:cooper,
title = {{Cooper: Testing the Binding Code of Scripting Languages with Cooperative Mutation (To Appear)}},
author = {Peng Xu and Yanhao Wang and Hong Hu and Purui Su},
booktitle = {Proceedings of the 29th Annual Network and Distributed System Security Symposium (NDSS 2022)},
month = {apr},
year = {2022},
address = {San Diego, CA},
}