
Ein Werkzeug zum effektiven Testen der Bindingschicht von Skriptsprachen
Cooper nutzt kooperative Mutation, um den Bindungscode von Skriptsprachen zu testen und Memory-Safety-Probleme zu finden. Kooperative Mutation modifiziert gleichzeitig den Skriptcode und die zugehörigen Dokumentobjekte, um verschiedene Codepfade des Bindungscodes zu erkunden. Um kooperative Mutation zu unterstützen, leiten wir die Beziehung zwischen Skriptcode und Dokumentobjekten ab, um die zweidimensionale Mutation zu steuern. Wir haben unser Tool Cooper auf drei verbreiteten kommerziellen Programmen eingesetzt: Adobe Acrobat, Foxit Reader und Microsoft Word. Cooper entdeckte 134 zuvor unbekannte Fehler, was zu 33 CVE-Einträgen und 22K Bug-Bounties führte. Cooper besteht aus drei Komponenten:
Die Übersicht über Cooper wird im folgenden Diagramm veranschaulicht.
Weitere Details finden Sie in unserem Paper, das auf dem 29. Annual Network and Distributed System Security Symposium (NDSS 2022) veröffentlicht wurde.
pip install pywin32Sie müssen einige PDF- (Word-) Beispiele vorbereiten und in einem Ordner ablegen, der als sample_dir verwendet wird. Die Anzahl der PDF- (Word-) Beispiele sollte zwischen 10.000 und 20.000 liegen. Wir haben 200 PDF-Beispiele auf DropBox und 214 Word-Beispiele auf DropBox vorbereitet. Sie können mit diesen kleinen Beispielen testen, für bessere Ergebnisse sollten Sie jedoch mehr Beispiele verwenden.
$ 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},
}