PeAR: A Static Binary Rewriting Framework for Binary-Only Fuzzing
यह शोध पत्र PeAR को प्रस्तुत करता है, जो एक स्टैटिक बाइनरी रीराइटिंग फ्रेमवर्क है जो यह प्रदर्शित करता है कि स्टैटिक इंस्ट्रुमेंटेशन, बाइनरी-ओनली फज़िंग के लिए डायनेमिक इंस्ट्रुमेंटेशन का एक व्यावहारिक और प्रभावी विकल्प है, जो उच्च लक्ष्य अनुकूलता (target compatibility), पर्सिस्टेंट मोड के माध्यम से महत्वपूर्ण प्रदर्शन लाभ, और कंपाइलर-आधारित विधियों के तुलनीय कवरेज प्राप्त करता है।
मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
कल्पना कीजिए कि आप एक सुरक्षा गार्ड हैं जो एक बंद, रहस्यमय इमारत (एक सॉफ्टवेयर) में छिपे हुए जालों को खोजने की कोशिश कर रहे हैं। आप ब्लूप्रिंट (सोर्स कोड) नहीं देख सकते, इसलिए आपको यह अनुमान लगाना होगा कि जाल कहाँ हो सकते हैं, और इसके लिए आप दरवाजों और दीवारों पर हजारों अलग-अलग चीजें फेंककर देखते हैं कि क्या टूटता है। इस प्रक्रिया को फज़िंग (fuzzing) कहा जाता है।
यह जानने के लिए कि आपको परीक्षण के लिए एक नया स्थान मिला है या नहीं, आपको यह ट्रैक करने के तरीके की आवश्यकता है कि आप पहले किन हिस्सों में जा चुके हैं। आमतौर पर, इमारत का वास्तुकार (कंपाइलर) आपके कदमों को गिनने के लिए छोटे सेंसर (इंस्ट्रूमेंटेशन) लगा देता है। लेकिन चूंकि आपके पास ब्लूप्रिंट नहीं हैं, इसलिए आपको ये सेंसर खुद स्थापित करने होंगे जब इमारत पहले से ही बन चुकी हो।
इसके दो मुख्य तरीके हैं:
- "लाइव" तरीका (डायनामिक): आप इमारत के अंदर काम करने वालों की एक टीम को काम पर रखते हैं जो चीजें फेंकते समय सब कुछ देखते हैं और सब कुछ लिखते जाते हैं। यह बहुत सटीक है, लेकिन कार्यकर्ता धीमे होते हैं और काम में बाधा डालते हैं, जिससे पूरी प्रक्रिया बहुत धीमी हो जाती है।
- "प्री-गेम" तरीका (स्टैटिक): आप इमारत खुलने से पहले चुपके से अंदर घुस जाते हैं, दीवारों में बदलाव करके अपने सेंसर लगाते हैं, और फिर उसे लॉक कर देते हैं। यह बहुत तेज़ है क्योंकि सेंसर इमारत का हिस्सा बन जाते हैं। हालांकि, यह जोखिम भरा है। यदि आपने दीवार की संरचना का गलत अनुमान लगाया, तो आप इमारत को तोड़ सकते हैं या जाल को पूरी तरह से मिस कर सकते हैं।
लंबे समय तक, लोगों को लगा कि "लाइव" तरीका ही एकमात्र सुरक्षित विकल्प है क्योंकि "प्री-गेम" तरीका बहुत ही अनाड़ी और त्रुटिपूर्ण माना जाता था।
पेश है PeAR: मास्टर रिनोवेटर (नयाrenovator)
इस शोध पत्र के लेखकों ने एक नया टूल बनाया है जिसे PeAR कहा जाता है। PeAR को एक अत्यधिक कुशल, स्वचालित नवीनीकरण दल (renovation crew) के रूप में समझें जो एक तैयार इमारत में चुपके से घुस सकता है, दीवारों का सटीक नक्शा बना सकता है, और बिना कुछ तोड़े उच्च तकनीक वाले सेंसर स्थापित कर सकता है।
वे यह साबित करना चाहते थे कि "प्री-गेम" तरीका केवल एक जोखिम भरा जुआ नहीं है; यह "लाइव" तरीके जितना ही अच्छा हो सकता है, लेकिन बहुत अधिक तेज़ है।
PeAR को क्या खास बनाता है?
अधिकांश पिछले नवीनीकरण दल (पुराने टूल्स) केवल बुनियादी सेंसर स्थापित कर सकते थे। वे उन शानदार ट्रिक्स को नहीं संभाल सकते थे जिनका उपयोग आधुनिक सुरक्षा गार्ड तेजी से काम करने के लिए करते हैं। PeAR, हालांकि, एक नए, विश्वसनीय मानचित्र-निर्माण सिस्टम (जिसे GTIRB कहा जाता है) पर आधारित है जो इसे तीन उन्नत ट्रिक्स करने की अनुमति देता है:
"नो-रीसेट" लूप (पर्ज़िस्टेंट मोड):
- पुराना तरीका: हर बार जब आप पत्थर फेंकते हैं, तो टीम को आपको बाहर निकालना पड़ता है, दरवाजा फिर से बनाना पड़ता है और फिर आपको वापस अंदर आने देना पड़ता है। इसमें बहुत समय लगता है।
- PeAR का तरीका: PeAR एक विशेष गलियारा स्थापित करता है जहाँ आप बिना इमारत छोड़े लगातार 1,000 पत्थर फेंक सकते हैं। आप बस हर थ्रो के बीच कमरे को रीसेट करते हैं। यह प्रक्रिया को अविश्वसनीय रूप से तेज़ बनाता है।
"सेटअप छोड़ें" ट्रिक (डिफर्ड इनिशियलाइजेशन):
- पुराना तरीका: कुछ इमारतों में पत्थर फेंकना शुरू करने से पहले प्रवेश द्वार पर एक लंबी, उबाऊ सुरक्षा जांच होती है (लाइब्रेरी लोड करना, कॉन्फ़िगरेशन चेक करना)।
- PeAR का तरीका: PeAR इमारत को काट देता है और आपको उबाऊ सेटअप के बाद पत्थर फेंकना शुरू करने देता है। आप हर बार प्रतीक्षा वाली लाइन को स्किप कर देते हैं।
"टेलीपैथिक हैंडऑफ" (शेयर्ड मेमोरी फज़िंग):
- पुराना तरीका: आपको अपना पत्थर कागज के टुकड़े पर लिखना होता है, मेलबॉक्स तक जाना होता है, उसे उसमें डालना होता है, और फिर इमारत को पढ़ने के लिए मेलबॉक्स खोलना पड़ता है। यह धीमा है।
- PeAR का तरीका: PeAR आपके हाथ और इमारत के हाथ के बीच एक सीधा ट्यूब स्थापित करता है। आप पत्थर को सीधे हवा में पास करते हैं। कोई कागज नहीं, कोई मेलबॉक्स नहीं, कोई इंतज़ार नहीं।
बड़ा परीक्षण
लेखकों ने PeAR को FuzzBench नामक एक प्रसिद्ध बाधा दौड़ (obstacle course) का उपयोग करके अन्य टूल्स के खिलाफ परखा, जिसमें 25 अलग-अलग जटिल सॉफ्टवेयर प्रोग्राम शामिल हैं। उन्होंने परीक्षणों को एक विशाल समय के लिए चलाया (जो निरंतर कंप्यूटर प्रोसेसिंग के 4.25 वर्षों के बराबर है)।
यहाँ उनके निष्कर्ष दिए गए हैं:
- विश्वसनीयता: PeAR ने 25 में से 22 इमारतों को सफलतापूर्वक संशोधित किया। यह अन्य बेहतरीन "प्री-गेम" टूल्स के समान ही है और यह साबित करता है कि सेंसर लगाने के लिए आपको इमारत तोड़ने की ज़रूरत नहीं है।
- गति: जब PeAR ने अपनी शानदार ट्रिक्स (जैसे "नो-रीसेट" लूप और "टेलीपैथिक हैंडऑफ") का उपयोग किया, तो यह अपने बुनियादी संस्करण की तुलना में 4 गुना तेज़ हो गया। यह किसी भी अन्य "प्री-गेम" टूल की तुलना में काफी तेज़ था।
- सटीकता: भले ही यह तेज़ था, लेकिन इसने कोई भी जाल मिस नहीं किया। इसने "लाइव" तरीके और ब्लूप्रिंट का उपयोग करने वाले टूल्स के समान ही गुप्त रास्तों (कोड कवरेज) को खोजा।
निचोड़ (The Bottom Line)
शोध पत्र यह निष्कर्ष निकालता है कि "प्री-गेम" तरीका (स्टैटिक बाइनरी इंस्ट्रूमेंटेशन) अब जोखिम भरा, धीमा या गलत विकल्प नहीं रह गया है। PeAR जैसे सही उपकरणों के साथ, आप मूल ब्लूप्रिंट की आवश्यकता के बिना, तेजी से और सटीकता से बग खोजने के लिए बंद सॉफ्टवेयर को संशोधित कर सकते हैं। PeAR साबित करता है कि आप एक नवीनीकरण दल की गति और एक लाइव ऑब्जर्वर की सटीकता दोनों प्राप्त कर सकते हैं।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।