
스크립트 언어의 바인딩 계층을 효과적으로 테스트하기 위한 도구
Cooper는 협동 변이를 활용하여 스크립트 언어의 바인딩 코드를 테스트하여 메모리 안전 문제를 찾습니다. 협동 변이는 스크립트 코드와 관련 문서 객체를 동시에 수정하여 바인딩 코드의 다양한 코드 경로를 탐색합니다. 협동 변이를 지원하기 위해, 우리는 스크립트 코드와 문서 객체 간의 관계를 추론하여 2차원 변이를 안내합니다. 우리는 우리 도구 Cooper를 세 가지 널리 사용되는 상용 소프트웨어, Adobe Acrobat, Foxit Reader 및 Microsoft Word에 적용했습니다. Cooper는 이전에 알려지지 않은 134개의 버그를 탐지했으며, 그 결과 33개의 CVE 항목과 22K의 버그 바운티가 발생했습니다. Cooper는 세 가지 구성 요소로 이루어져 있습니다:
The overview of Cooper is illustrated by the diagram below.
For more details, please check our paper published in the 29th Annual Network and Distributed System Security Symposium (NDSS 2022).
pip install pywin32PDF(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},
}