
Amazon वेब सर्व्हिसेस, नवीन मुक्त स्रोत KVM बॅक्ड फझिंग टूल जारी केले
अशी बातमी प्रसिद्ध झालीe Amazon ने स्नॅपचेंज नावाचे नवीन फजिंग टूल रिलीझ केले आहे, जे तुम्हाला एक्झिक्युटेबल फाइल्समध्ये बदल न करता आणि अॅप्लिकेशनच्या सोर्स कोडच्या उपस्थितीशिवाय तपासण्याची परवानगी देते. सॉफ्टवेअर पुरवठा साखळीच्या सुरक्षेबद्दलच्या चिंतेचे निराकरण करण्यासाठी ही एक चाल आहे.
अॅमेझॉन पोस्टमध्ये नमूद केले आहे की, स्नॅपचेंज हा प्रयोग म्हणून सुरू झाला स्नॅपशॉट फझिंग सक्षम करण्यासाठी KVM वापरण्याची क्षमता एक्सप्लोर करण्यासाठी AWS Find and Fix (F2) ओपन सोर्स सुरक्षा संशोधन संघाकडून.
आज आम्ही स्नॅपचेंज, स्नॅपशॉट-आधारित फझिंग अधिक सोपे करण्यासाठी एक नवीन ओपन सोर्स प्रकल्प घोषित करण्यास उत्सुक आहोत. स्नॅपचेंज कमीत कमी सुधारणांसह लक्ष्य बायनरी फझ करण्यास अनुमती देते, उपयुक्त अंतर्दृष्टी प्रदान करते जी फझिंगमध्ये मदत करते.
स्नॅपचेंज हे फझर्स तयार करण्यासाठी एक रस्ट फ्रेमवर्क आहे जे कार्यक्षमतेत वाढ करण्यासाठी आणि अनेक प्रकारच्या लक्ष्यांना अस्पष्ट करण्यात जटिलता कमी करण्यासाठी भौतिक मेमरीचे स्नॅपशॉट प्ले करतात. स्नॅपचेंज लिनक्स कर्नलच्या अंगभूत व्हर्च्युअल मशीन व्यवस्थापकाच्या वैशिष्ट्यांचा वापर करते ज्याला कर्नल व्हर्च्युअल मशीन किंवा KVM म्हणून ओळखले जाते.
स्नॅपचेंज बद्दल
असा उल्लेख आहे की, Snapchange व्युत्पन्न एक्झिक्युटेबल कोडसह भौतिक मेमरी डंप लोड करण्यास अनुमती देते आणि आयोजित करा, KVM हायपरवाइजर वापरून, कोडची चक्रीय अंमलबजावणी डंप मध्ये उपस्थित, इनपुट डेटाच्या विविध संयोजनांवर पुनरावृत्ती, उदयोन्मुख अपयश किंवा विसंगतींचा मागोवा घेणे आणि पुढील पुनरावृत्तीनंतर चेक रीस्टार्ट करणे, प्रत्येक वेळी मेमरी सेगमेंट आणि CPU रजिस्टर मूळ स्थितीत पुनर्संचयित केले जातात.
पुनरावृत्ती रीसेट होते आणि असामान्य समाप्तीनंतर पुन्हा सुरू होते, प्रतीक्षा वेळ किंवा विशिष्ट कार्यक्रमाची घटना. इनपुट डेटा थेट मेमरीमध्ये बदलला जातो आणि मेमरीच्या सुरुवातीच्या स्थितीत प्रारंभ करताना संसाधने जतन करण्यासाठी, पुढील पुनरावृत्ती केल्यानंतर, मेमरीमध्ये कोणता डेटा आहे आणि बदलला आहे हे निर्धारित केले जाते.
वर्च्युअल मशीनचा स्नॅपशॉट सेव्ह करून प्रारंभिक मेमरी डंप तयार केला जातो ज्यामध्ये चाचणी अंतर्गत अनुप्रयोगासह वातावरण कार्यान्वित केले जाते, वर्च्युअलबॉक्स किंवा क्यूईएमयू अंतर्गत चालत आहे इनपुट डेटाच्या प्रतिस्थापनाचे तर्क विशेष स्क्रिप्ट तयार करून निर्धारित केले जाते आणि डीबगरमधील ब्रेकपॉईंटवरून सेट करून चक्रीय अंमलबजावणीची प्रारंभिक स्थिती सेट केली जाते.
उदाहरणार्थ, नेटवर्क विनंतीची मल्टी-स्टेट प्रोसेसिंग तपासणे आवश्यक असल्यास, संशोधक व्हर्च्युअलबॉक्स किंवा क्यूईएमयू मधील अतिथी सिस्टमवर अनुप्रयोग सुरू करतो, डीबगरमध्ये विनंती प्रक्रिया प्रक्रियेच्या अंमलबजावणीची सुरुवात आढळते (उदाहरणार्थ , recv फंक्शन कॉल केल्यानंतर), त्यावर ब्रेकपॉईंट ठेवते आणि प्राप्त नेटवर्क पॅकेट लोड केलेले मेमरी क्षेत्र निश्चित करते. त्यानंतर, अतिथी प्रणालीचा स्नॅपशॉट तयार केला जातो आणि Snapchange वर अपलोड केला जातो.
पडताळणीसाठी, एक स्क्रिप्ट लिहिली जाते जी गणना दरम्यान डेटा थेट बफरवर लिहिते. नेटवर्क पॅकेटचे, जे तुम्हाला वास्तविक नेटवर्क पॅकेट्सच्या प्रक्रियेचे अनुकरण करण्यास अनुमती देते. प्रत्येक वेळी बफरमधील डेटाची सामग्री बदलून आणि मेमरी स्थिती त्याच्या मूळ स्थितीवर रीसेट करून, स्नॅपचेंज जिथे सोडले होते तेथून सुरू होते.
इनपुट डेटा व्युत्पन्न करण्यासाठी विविध धोरणे समर्थित आहेत. भिन्न CPU कोरशी बांधील अनेक वातावरणे समांतर अंमलबजावणीसह मोजले जाऊ शकतात. कोड अंमलबजावणी दरम्यान अपयश शोधण्याव्यतिरिक्त, ते कार्यप्रदर्शन मेट्रिक्सचे संकलन, एक्झिक्युटेबल कोड कव्हरेजचे मूल्यांकन करण्यासाठी कव्हरेज आकडेवारी जमा करणे आणि एक्झिक्युटेबल कोडचे चरण-दर-चरण ट्रेसिंग यांचे समर्थन करते.
साठी प्रकल्पात स्वारस्य आहे, तुम्हाला माहित असले पाहिजे की प्रकल्पाचा कोड Rust मध्ये लिहिलेला आहे आणि Apache 2.0 लायसन्स अंतर्गत वितरीत केला आहे GitHub.
स्नॅपचेंज लिनक्समध्ये कार्य करते, परंतु अंतर्निहित KVM प्रिमिटिव्हमध्ये थेट प्रवेश आवश्यक आहे. म्हणून, ते EC2 बेअर मेटल उदाहरण प्रकारांना समर्थन देते, जे हायपरवाइजरशिवाय चालतात, परंतु EC2 आभासी उदाहरणे नाहीत.
शेवटी, तुम्हाला त्याबद्दल अधिक जाणून घेण्यात स्वारस्य असल्यास, तुम्ही मूळ घोषणेचा सल्ला घेऊ शकता पुढील लिंकवर