
स्क्रिप्टिंग भाषाओं की बाइंडिंग परत के प्रभावी परीक्षण के लिए एक उपकरण
Cooper स्क्रिप्टिंग भाषाओं के बाइंडिंग कोड का परीक्षण करने के लिए सहकारी उत्परिवर्तन का उपयोग करता है, ताकि मेमोरी-सुरक्षा संबंधी समस्याओं का पता लगाया जा सके। सहकारी उत्परिवर्तन एक साथ स्क्रिप्ट कोड और संबंधित दस्तावेज़ ऑब्जेक्ट्स को संशोधित करता है, ताकि बाइंडिंग कोड के विभिन्न कोड पथों का अन्वेषण किया जा सके। सहकारी उत्परिवर्तन का समर्थन करने के लिए, हम द्वि-आयामी उत्परिवर्तन को निर्देशित करने हेतु स्क्रिप्ट कोड और दस्तावेज़ ऑब्जेक्ट्स के बीच संबंध का अनुमान लगाते हैं। हमने अपने टूल Cooper को तीन लोकप्रिय व्यावसायिक सॉफ़्टवेयर, Adobe Acrobat, Foxit Reader और Microsoft Word पर लागू किया। Cooper ने 134 पहले से अज्ञात बगों का पता लगाया, जिसके परिणामस्वरूप 33 CVE प्रविष्टियाँ और 22K बग बाउंटी प्राप्त हुईं। Cooper के तीन घटक हैं:
Cooper का अवलोकन नीचे दिए गए चित्र में दर्शाया गया है।
अधिक विवरण के लिए, कृपया 29वें वार्षिक Network and Distributed System Security Symposium () में प्रकाशित देखें।
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},
}