
RESTler पहला स्टेटफुल REST API फ़ज़िंग टूल है जो क्लाउड सेवाओं को उनके REST APIs के माध्यम से स्वचालित रूप से परीक्षण करने और इन सेवाओं में सुरक्षा और विश्वसनीयता बग्स खोजने के लिए है।
RESTler पहला स्टेटफुल REST API फ़ज़िंग टूल है जो स्वचालित रूप से क्लाउड सेवाओं का उनके REST APIs के माध्यम से परीक्षण करता है और इन सेवाओं में सुरक्षा और विश्वसनीयता बग ढूँढता है। किसी दी गई क्लाउड सेवा के लिए जिसमें OpenAPI (पूर्व में Swagger) विनिर्देश है, RESTler उसके पूरे विनिर्देश का विश्लेषण करता है, और फिर परीक्षण उत्पन्न करता है और निष्पादित करता है जो सेवा को उसके REST API के माध्यम से व्यायाम करते हैं।
RESTler बुद्धिमानी से OpenAPI परिभाषा से अनुरोध प्रकारों के बीच उत्पादक-उपभोक्ता निर्भरताओं का अनुमान लगाता है। परीक्षण के दौरान, यह बगों के विशिष्ट वर्गों की जाँच करता है और पिछले सेवा प्रतिक्रियाओं से गतिशील रूप से सीखता है कि सेवा कैसे व्यवहार करती है। यह बुद्धिमत्ता RESTler को केवल विशिष्ट अनुरोध अनुक्रमों के माध्यम से पहुँच योग्य गहरी सेवा अवस्थाओं का पता लगाने और अधिक बग खोजने की अनुमति देती है।
RESTler को इन सहकर्मी-समीक्षित शोध पत्रों में वर्णित किया गया है:
यदि आप अपने शोध में RESTler का उपयोग करते हैं, तो कृपया (डिफ़ॉल्ट) ICSE'2019 पेपर का उल्लेख करें (BibTeX)।
RESTler में कई परीक्षण पीढ़ी रणनीतियाँ शामिल हैं। (i) दक्षता (अर्थात् RESTler कितनी जल्दी क्रैश ढूँढ सकता है) और (ii) प्रभावशीलता (अर्थात् RESTler एक निश्चित समय सीमा में कितने क्रैश ढूँढ सकता है) के संबंध में एक व्यापक तुलनात्मक दृष्टिकोण प्राप्त करने के लिए, हम सभी प्रलेखित fuzzing_mode(s) की तुलना करने की अनुशंसा करते हैं क्योंकि प्रत्येक राज्य स्थान अन्वेषण की गहराई और चौड़ाई के बीच एक अलग व्यापार-बंद प्रदान करता है। हम फ़ज़िंग से पहले, जैसा कि नीचे वर्णित है, सेटअप मुद्दों (जैसे डिक्शनरी में आवश्यक पूर्व-आवश्यक पैरामीटर मान जोड़ना) की खोज और समाधान के लिए test मोड चलाने की भी अनुशंसा करते हैं।
RESTler Microsoft Research में बनाया गया था और अभी भी सक्रिय विकास के अधीन है।
आरंभ करने के अवलोकन और डेमो के लिए, देखें Webinar - क्लाउड सेवाओं की सुरक्षा और विश्वसनीयता में सुधार के लिए फ़ज़िंग।

RESTler को विंडोज या लिनक्स वाली 64-बिट मशीनों पर चलाने के लिए डिज़ाइन किया गया था। macOS के लिए प्रायोगिक समर्थन भी सक्षम है।
इस रेपो की रूट में, चलाएँ:
docker build -t restler .
परिणामी डॉकर कंटेनर में निर्देशिका /RESTler/restler में मुख्य बाइनरी Restler के साथ RESTler उपलब्ध होगा।
फिर आप इस डॉकर इमेज का उपयोग परीक्षण के तहत एप्लिकेशन को जोड़ने के लिए कर सकते हैं ताकि पृथक डॉकर कंटेनरों के अंदर फ़ज़िंग निष्पादित हो सके।
पूर्वापेक्षाएँ: अपने उपयुक्त OS के लिए Python 3.12.8 और .NET 8.0 स्थापित करें।
एक निर्देशिका बनाएँ जहाँ आप RESTler बाइनरी रखना चाहते हैं:
mkdir restler_bin
रेपो रूट निर्देशिका पर स्विच करें और निम्नलिखित Python स्क्रिप्ट चलाएँ:
python ./build-restler.py --dest_dir <full path to restler_bin above>
नोट: यदि आपको बिल्ड करते समय nuget त्रुटि NU1403 मिलती है, तो इस कमांड से अपना कैश साफ़ करना एक त्वरित समाधान है:
dotnet nuget locals all --clear
RESTler 4 मुख्य मोड में चलता है (क्रम में):
सरल उदाहरणों के साथ त्वरित परिचय के लिए, यह ट्यूटोरियल देखें।
अपने API पर RESTler को जल्दी से आज़माने के लिए, देखें त्वरित प्रारंभ।
RESTler द्वारा पाए गए बगों की वर्तमान में दो श्रेणियाँ हैं।
500 ("आंतरिक सर्वर त्रुटि") के साथ कोई प्रतिक्रिया प्राप्त होती है, एक बग की सूचना दी जाती है।जब कोई बग पाया जाता है, RESTler बग बकेट में ट्राइएज किए गए बगों की रिपोर्ट करता है, और एक रीप्ले लॉग प्रदान करता है जिसका उपयोग बग को पुन: उत्पन्न करने के लिए किया जा सकता है (देखें रीप्ले)।
RESTler का प्रभावी ढंग से उपयोग करने के सुझावों के लिए, कृपया देखें सर्वोत्तम अभ्यास और API कवरेज में सुधार।
ये भी देखें अक्सर पूछे जाने वाले प्रश्न।
यदि आप अपने CI/CD पाइपलाइन के हिस्से के रूप में पैमाने पर RESTler का उपयोग करने में रुचि रखते हैं, तो REST API फ़ज़ टेस्टिंग स्व-होस्टेड सेवा देखें।
यदि आपके पास कोई अनुरोध/सुझाव/प्रश्न है, तो कृपया एक मुद्दा दर्ज करें। निर्देशों के लिए देखें Contributing.md।
यह परियोजना योगदान और सुझावों का स्वागत करती है। अधिकांश योगदानों के लिए आपको एक योगदानकर्ता लाइसेंस अनुबंध (CLA) से सहमत होना आवश्यक है जो घोषित करता है कि आपके पास आपके योगदान का उपयोग करने का अधिकार है, और वास्तव में, हमें आपके योगदान का उपयोग करने के अधिकार प्रदान करते हैं। विवरण के लिए, https://cla.microsoft.com पर जाएँ।
जब आप एक पुल अनुरोध सबमिट करते हैं, तो एक CLA-बॉट स्वचालित रूप से निर्धारित करेगा कि क्या आपको CLA प्रदान करने की आवश्यकता है और PR को उचित रूप से सजाएगा (जैसे, लेबल, टिप्पणी)। बॉट द्वारा दिए गए निर्देशों का पालन करें। आपको केवल हमारे CLA का उपयोग करने वाले सभी रिपॉजिटरी में एक बार ऐसा करने की आवश्यकता होगी।
इस परियोजना ने Microsoft ओपन सोर्स आचार संहिता को अपनाया है। अधिक जानकारी के लिए आचार संहिता FAQ देखें या किसी अतिरिक्त प्रश्न या टिप्पणी के लिए [email protected] से संपर्क करें।
अधिक जानकारी के लिए, देखें Contributing.md।
इस परियोजना में परियोजनाओं, उत्पादों या सेवाओं के लिए ट्रेडमार्क या लोगो शामिल हो सकते हैं। Microsoft ट्रेडमार्क या लोगो का अधिकृत उपयोग Microsoft के ट्रेडमार्क और ब्रांड दिशानिर्देशों के अधीन है और इसका पालन करना चाहिए। इस परियोजना के संशोधित संस्करणों में Microsoft ट्रेडमार्क या लोगो के उपयोग से भ्रम या Microsoft प्रायोजन का आभास नहीं होना चाहिए। किसी भी तृतीय-पक्ष ट्रेडमार्क या लोगो का उपयोग उन तृतीय-पक्षों की नीतियों के अधीन है।
सॉफ़्टवेयर आपके और आपके सॉफ़्टवेयर के उपयोग के बारे में जानकारी एकत्र कर सकता है और इसे Microsoft को भेज सकता है। Microsoft इस जानकारी का उपयोग सेवाएँ प्रदान करने और हमारे उत्पादों और सेवाओं को बेहतर बनाने के लिए कर सकता है। आप रिपॉजिटरी में वर्णित अनुसार टेलीमेट्री बंद कर सकते हैं। सॉफ़्टवेयर में कुछ ऐसी विशेषताएँ भी हैं जो आपको और Microsoft को आपके अनुप्रयोगों के उपयोगकर्ताओं से डेटा एकत्र करने में सक्षम बना सकती हैं। यदि आप इन सुविधाओं का उपयोग करते हैं, तो आपको लागू कानून का पालन करना होगा, जिसमें आपके अनुप्रयोगों के उपयोगकर्ताओं को Microsoft की गोपनीयता कथन की एक प्रति के साथ उचित सूचनाएँ प्रदान करना शामिल है। हमारा गोपनीयता कथन https://go.microsoft.com/fwlink/?LinkID=824704 पर स्थित है। आप सहायता दस्तावेज़ और हमारे गोपनीयता कथन में डेटा संग्रह और उपयोग के बारे में अधिक जान सकते हैं। सॉफ़्टवेयर का आपका उपयोग इन प्रथाओं के लिए आपकी सहमति के रूप में संचालित होता है।
अधिक जानकारी के लिए, देखें Telemetry.md।
सुरक्षा मुद्दों और बगों की निजी रूप से, ईमेल के माध्यम से, Microsoft सुरक्षा प्रतिक्रिया केंद्र (MSRC) को [email protected] पर रिपोर्ट किया जाना चाहिए। आपको 24 घंटे के भीतर प्रतिक्रिया प्राप्त करनी चाहिए। यदि किसी कारण से आपको नहीं मिलती है, तो कृपया यह सुनिश्चित करने के लिए ईमेल द्वारा अनुवर्ती कार्रवाई करें कि हमें आपका मूल संदेश प्राप्त हुआ। आगे की जानकारी, जिसमें MSRC PGP कुंजी शामिल है, Security TechCenter में पाई जा सकती है।
अतिरिक्त विवरण के लिए, देखें Security.md।