
Un outil pour tester efficacement la couche de liaison des langages de script
Cooper utilise la mutation coopérative pour tester le code de liaison des langages de script afin de détecter des problèmes de sécurité mémoire. La mutation coopérative modifie simultanément le code du script et les objets de document associés pour explorer divers chemins d'exécution du code de liaison. Pour prendre en charge la mutation coopérative, nous déduisons la relation entre le code du script et les objets de document afin de guider la mutation bidimensionnelle. Nous avons appliqué notre outil Cooper à trois logiciels commerciaux populaires : Adobe Acrobat, Foxit Reader et Microsoft Word. Cooper a détecté 134 bogues jusqu'alors inconnus, ce qui a donné lieu à 33 entrées CVE et à 22K de primes de bogues. Cooper comprend trois composants :
La vue d'ensemble de Cooper est illustrée par le diagramme ci-dessous.
Pour plus de détails, consultez notre article publié lors du 29e Symposium annuel sur la sécurité des systèmes de réseau et distribués (NDSS 2022).
pip install pywin32Vous devez préparer quelques échantillons PDF (Word) et les placer dans un dossier qui sera utilisé comme sample_dir.
Le nombre d'échantillons PDF (Word) doit être compris entre 10 000 et 20 000.
Nous avons préparé 200 échantillons PDF dans DropBox,
et 214 échantillons Word dans DropBox.
Vous pouvez tester avec ces petits échantillons, mais pour de meilleurs résultats, utilisez davantage d'échantillons.
$ 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},
}