अ‍ॅथेरिस, पायथन कोड टेस्टिंग टूलकिट

गुगलने अनावरण केले अलीकडे प्रकाशन अ‍ॅथेरिस प्रकल्पयाचा विकास आहे मुक्त स्त्रोत साधनांचा संच विशेष पायथन कोडच्या अस्पष्ट चाचण्यांसाठी आणि सी / सी ++ मध्ये लिहिलेल्या सीपीथॉनसाठी विस्तार.

प्रकल्प एक libFuzzer आधारित इंजिन वापरते आणि अतिरिक्त त्रुटी शोधण्यासाठी अ‍ॅड्रेस सॅनिटायझर आणि अपरिभाषित वर्तणूक सॅनिटायझर साधनांच्या संयोगाने वापरले जाऊ शकते. कोड अपाचे 2.0 परवान्याअंतर्गत खुला आहे.

गूगल अ‍ॅथेरिस बद्दल

गूगल अ‍ॅथेरिसच्या शब्दांत, ही एक टूलकिट आहे जी पायथन कोड आणि मूळ विस्तारांमध्ये आपोआप त्रुटी शोधण्यासाठी वापरली जाऊ शकते. अ‍ॅथेरिस एक 'कव्हरेज चालित' फझर आहे, ज्याचा अर्थ असा आहे की अ‍ॅथेरिस आपल्या प्रोग्रामच्या निरनिराळ्या इनपुटची तपासणी करत असताना तो चालवितो आणि मनोरंजक मार्ग शोधण्याचा प्रयत्न करतो.

पायथन २.2.7 आणि पायथन 3.3++ साठी कोड पुनरावलोकन समर्थित आहे, परंतु पूर्ण, मार्गदर्शित कव्हरेजसाठी आम्ही पायथन 3.8 आणि 3.9 शाखा वापरण्याची शिफारस करतो, जी आता ऑपकोडद्वारे आकडेवारीच्या आकडेवारीचे समर्थन करतात.

प्रक्रियेत, अ‍ॅथेरिस इनपुट डेटाच्या संभाव्य जोड्या सूचीबद्ध करते आणि अहवाल तयार करते सर्व आढळलेल्या दोष आणि न सापडलेल्या अपवादांवर.

उदाहरणार्थ, अ‍ॅथेरिसमधील वायएएमएल पार्सिंग लायब्ररी तपासताना, असे आढळले की काही वायएमएल कंस्ट्रक्ट्स, जसे की पूर्णांक मूल्याऐवजी "-_" निर्दिष्ट करणे किंवा कीऐवजी सूची वापरणे, त्याऐवजी अनपेक्षित अपवाद टाकणे YAMLErferences मानक त्रुटी.

प्रोग्रामिंग त्रुटी शोधण्यासाठी फज चाचणी हे एक सुप्रसिद्ध तंत्र आहे. यापैकी बरेचजण ओळखण्यायोग्य त्रुटींवर सुरक्षिततेचे गंभीर गंभीर परिणाम आहेत. हे तंत्र वापरताना Google ला हजारो सुरक्षा असुरक्षा आणि इतर बग आढळले आहेत. पारंपारिकपणे सी किंवा सी ++ सारख्या मूळ भाषांमध्ये अस्पष्टता वापरली जाते, परंतु गेल्या वर्षी आम्ही एक नवीन पायथन फझिंग इंजिन तयार केले. आज आम्ही मुक्त स्त्रोत म्हणून अ‍ॅथेरिसचे अस्पष्ट इंजिन सोडले.

अ‍ॅथेरिस आचरणातील फरक ओळखण्यासाठी देखील वापरले जाऊ शकते समान कार्ये लक्ष्यित लायब्ररीची. उदाहरणार्थ, पायथन पॅकेज "इडना" ची सारांश तपासणी आणि "लिबिडन 2" लायब्ररी, जे आंतरराष्ट्रीय डोमेन नावे डीकोड करण्याचे कार्य करतात, त्यांना असे आढळले की ते नेहमीच समान परिणाम देत नाहीत.

Herथेरिसचा सर्वात चांगला वापर म्हणजे डिफेरेंटल डिफ्यूझर्स. हे अस्पष्ट आहेत जे दोन ग्रंथालयांच्या वर्तनातील फरक शोधतात जे समान गोष्टी करण्यासाठी असतात. अ‍ॅथेरिससह एकत्रित केलेले फझरपैकी एक पायथनच्या "इडना" पॅकेजची तुलना सी "लिबिडन 2" पॅकेजशी करते.

विशेषतः, डोमेनने युनिकोड अनुक्रम वापरल्यास, "आयडना" आणि "लिबिडन 2" आंतरराष्ट्रीय डोमेन नाव भिन्न होस्टमध्ये रूपांतरित करते.

सर्वसाधारणपणे, अचूक पायथन कोडमध्ये अ‍ॅथेरिस उपयुक्त आहे जोपर्यंत आपल्याकडे "योग्य" वर्तन काय आहे हे व्यक्त करण्याचा किंवा कमीतकमी कोणत्या आचरणे नक्कीच योग्य नाहीत हे व्यक्त करण्याचा मार्ग आहे. हे फझरमधील सानुकूल कोड जितके गुंतागुंतीचे असू शकते जे लायब्ररीच्या आउटपुटच्या अचूकतेचे मूल्यांकन करते किंवा कोणतेही अनपेक्षित अपवाद उभे केले जात नाही हे तपासणे इतके सोपे आहे.

ते विचारात घेणे महत्वाचे आहे अस्पष्ट चाचण्या इनपुट डेटाच्या सर्व प्रकारच्या यादृच्छिक संयोजनांचा प्रवाह व्युत्पन्न करतात, वास्तविक डेटा जवळ (उदा. यादृच्छिक टॅग पॅरामीटर्ससह एचटीएमएल पृष्ठे, फायली किंवा असामान्य शीर्षकासह प्रतिमा इ.) आणि प्रक्रियेत संभाव्य त्रुटी निश्चित करा.

कोणत्याही अनुक्रमात अपवाद ठरल्यास किंवा अपेक्षित प्रतिसादाशी जुळत नसल्यास, हे वर्तन बहुधा बग किंवा असुरक्षा दर्शवते.

शेवटी, उल्लेख केल्याप्रमाणे अ‍ॅथेरिस आवृत्ती २.2.7 आणि 3.3+ मध्ये पायथन कोडसह कार्य करते, जरी Google ने जोरदार शिफारस केली आहे की 3.8+ आणि सीपीथॉनसाठी लिहिलेले मूळ विस्तार वापरा.

विंडोज अद्याप समर्थित ऑपरेटिंग सिस्टममध्ये नाही, म्हणून आता इंजिन केवळ लिनक्स आणि मॅक ओएस एक्स वापरकर्त्यांसाठीच स्वारस्य आहे.

हे या प्लॅटफॉर्मवर वापरण्यासाठी, विकसकांकडे क्लॅंग कंपाइलर फ्रंटएंडची वर्तमान आवृत्ती स्थापित केलेली असणे आवश्यक आहे.

आपण याबद्दल अधिक जाणून घेऊ इच्छित असल्यास, आपण मूळ नोट तपासू शकता खालील दुवा.


आपली टिप्पणी द्या

आपला ई-मेल पत्ता प्रकाशित केला जाणार नाही. आवश्यक फील्ड चिन्हांकित केले आहेत *

*

*

  1. डेटा जबाबदार: मिगुएल Áन्गल गॅटन
  2. डेटाचा उद्देशः नियंत्रण स्पॅम, टिप्पणी व्यवस्थापन.
  3. कायदे: आपली संमती
  4. डेटा संप्रेषण: कायदेशीर बंधन वगळता डेटा तृतीय पक्षास कळविला जाणार नाही.
  5. डेटा संग्रहण: ओकेन्टस नेटवर्क (EU) द्वारा होस्ट केलेला डेटाबेस
  6. अधिकारः कोणत्याही वेळी आपण आपली माहिती मर्यादित, पुनर्प्राप्त आणि हटवू शकता.