
Cooperは、協調的変異を利用してスクリプト言語のバインディングコードをテストし、メモリ安全性の問題を発見します。協調的変異は、スクリプトコードと関連するドキュメントオブジェクトを同時に変更し、バインディングコードのさまざまなコードパスを探索します。協調的変異をサポートするために、スクリプトコードとドキュメントオブジェクトの関係を推論し、二次元の変異を導きます。私たちはツールCooperを、Adobe Acrobat、Foxit Reader、Microsoft Wordの3つの人気のある商用ソフトウェアに適用しました。Cooperは134件の未知のバグを検出し、33件のCVEエントリと22Kのバグ報奨金につながりました。Cooperには3つのコンポーネントがあります:
Cooperの概要を以下の図に示します。
詳細については、第29回Network and Distributed System Security Symposium(NDSS 2022)で発表された論文をご覧ください。
pip install pywin32いくつかのPDF(Word)サンプルを用意し、sample_dirとして使用するフォルダに配置する必要があります。PDF(Word)サンプルの数は10,000〜20,000個にしてください。DropBoxに200個のPDFサンプルを、DropBoxに214個のWordサンプルを用意しました。これらの小さなサンプルでテストできますが、より良い結果を得るには、より多くのサンプルを使用してください。
$ 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},
}