
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 पर जाएँ।