लेखक:
(1) अन्ना-कैथरीना विकर्ट, टेक्नीशे यूनिवर्सिटेट डार्मस्टाट, डार्मस्टाट, जर्मनी ([email protected]);
(2) लार्स बाउमगार्टनर, टेक्नीशे यूनिवर्सिटेट डार्मस्टाट, डार्मस्टाट, जर्मनी ([email protected]);
(3) फ्लोरियन ब्रेइटफेल्डर, टेक्नीशे यूनिवर्सिटेट डार्मस्टाट, डार्मस्टाट, जर्मनी ([email protected]);
(4) मीरा मेजिनी, टेक्नीशे यूनिवर्सिटेट डार्मस्टाट, डार्मस्टाट, जर्मनी ([email protected]).
3 लिक्मा का डिज़ाइन और कार्यान्वयन और 3.1 डिज़ाइन
4 कार्यप्रणाली और 4.1 पायथन ऐप्स खोजना और डाउनलोड करना
5 मूल्यांकन और 5.1 GitHub पायथन प्रोजेक्ट
पृष्ठभूमि : पिछले अध्ययनों से पता चला है कि क्रिप्टो एपीआई का उपयोग करने वाले 99.59% जावा ऐप कम से कम एक बार एपीआई का दुरुपयोग करते हैं। हालाँकि, ये अध्ययन जावा और सी पर किए गए हैं, जबकि अन्य भाषाओं के लिए अनुभवजन्य अध्ययन गायब हैं। उदाहरण के लिए, पायथन में क्रिप्टो कार्यों के साथ एक नियंत्रित उपयोगकर्ता अध्ययन से पता चला है कि 68.5% पेशेवर डेवलपर्स क्रिप्टो कार्य के लिए एक सुरक्षित समाधान लिखते हैं।
उद्देश्य : यह समझने के लिए कि क्या यह अवलोकन वास्तविक दुनिया के कोड के लिए भी सही है, हमने पायथन में क्रिप्टो दुरुपयोग का एक अध्ययन किया।
विधि : हमने एक स्थिर विश्लेषण उपकरण विकसित किया है जो 5 अलग-अलग पायथन क्रिप्टो एपीआई के सामान्य दुरुपयोग को कवर करता है। इस विश्लेषण के साथ, हमने GitHub से 895 लोकप्रिय पायथन प्रोजेक्ट और एम्बेडेड डिवाइस के लिए 51 माइक्रोपाइथन प्रोजेक्ट का विश्लेषण किया। इसके अलावा, हमने अपने परिणामों की तुलना पिछले अध्ययनों के निष्कर्षों से की।
परिणाम : हमारे विश्लेषण से पता चलता है कि 52.26% पायथन प्रोजेक्ट में कम से कम एक दुरुपयोग होता है। इसके अलावा, कुछ पायथन क्रिप्टो लाइब्रेरीज़ का API डिज़ाइन डेवलपर्स को क्रिप्टो फ़ंक्शन का दुरुपयोग करने से बचाता है, जो जावा और सी कोड के साथ किए गए अध्ययनों में बहुत आम था। निष्कर्ष : हम निष्कर्ष निकालते हैं कि हम पायथन अनुप्रयोगों के लिए क्रिप्टो दुरुपयोग पर अच्छे API डिज़ाइन का सकारात्मक प्रभाव देख सकते हैं। इसके अलावा, माइक्रोपाइथन परियोजनाओं के हमारे विश्लेषण से हाइब्रिड विश्लेषणों के महत्व का पता चलता है।
क्रिप्टोग्राफी, जिसे बाद में क्रिप्टो कहा जाता है, आजकल हमारे डेटा की सुरक्षा और गोपनीयता सुनिश्चित करने के लिए व्यापक रूप से उपयोग किया जाता है। उदाहरण के लिए, क्रिप्टो के बिना, हम सुरक्षित रूप से ऑनलाइन बैंकिंग का उपयोग नहीं कर पाएंगे या ऑनलाइन शॉपिंग नहीं कर पाएंगे। दुर्भाग्य से, पिछले शोध परिणामों से पता चलता है कि क्रिप्टो का उपयोग अक्सर असुरक्षित तरीके से किया जाता है [3, 4, 7, 9, 11]। ऐसी ही एक समस्या एन्क्रिप्शन जैसे क्रिप्टो प्राइमेटिव के लिए असुरक्षित ब्लॉक मोड जैसे असुरक्षित पैरामीटर का चुनाव है। इन दुरुपयोगों की पहचान करने के लिए कई स्थिर विश्लेषण उपकरण मौजूद हैं जैसे कि क्रिप्टोआरईएक्स [13], क्रिप्टोलिंट [4], कॉग्निक्रिप्टएसएएसटी [8], और क्रिप्टोगार्ड [12]।
जबकि ये उपकरण और संबंधित इन-द-वाइल्ड अध्ययन जावा और सी पर ध्यान केंद्रित करते हैं, उपयोगकर्ता अध्ययन बताते हैं कि मौजूदा पायथन एपीआई क्रिप्टो दुरुपयोग की संख्या को कम करते हैं। Acar एट अल। [2] ने 307 GitHub उपयोगकर्ताओं के साथ एक प्रयोग किया, जिसमें 3 क्रिप्टो-संबंधित विकास कार्यों को हल करना था। उन्होंने देखा कि 68.5% पेशेवर डेवलपर्स ने दिए गए कार्य के लिए पायथन में एक सुरक्षित समाधान लिखा था। 256 पायथन डेवलपर्स के साथ एक नियंत्रित प्रयोग के भीतर, जिन्होंने सरल क्रिप्टो कार्यों को हल करने की कोशिश की, Acar एट अल। [1] ने पहचाना कि एक सरल एपीआई डिज़ाइन, जैसे कि पायथन लाइब्रेरी क्रिप्टोग्राफी , डेवलपर्स को सुरक्षित कोड लिखने में समर्थन करता है। हालांकि, किसी भी अनुभवजन्य इन-द-वाइल्ड अध्ययन ने अभी तक पुष्टि नहीं की है
पायथन में क्रिप्टो दुरुपयोग का अनुभवजन्य मूल्यांकन करने के लिए, हम LICMA , 5 विभिन्न पायथन क्रिप्टो API और जावा के JCA API के समर्थन के साथ एक बहुभाषी विश्लेषण ढांचा प्रस्तुत करते हैं। हम सभी पायथन API के लिए 5 अलग-अलग नियम [4] और सबसे सामान्य क्रिप्टो दुरुपयोग का पता लगाने के लिए JCA के लिए 6 अलग-अलग नियम [4] प्रदान करते हैं। LICMA के साथ, हमने पायथन में दुरुपयोग के बारे में जानकारी हासिल करने के लिए GitHub से 895 लोकप्रिय पायथन ऐप और 51 माइक्रोपायथन परियोजनाओं का विश्लेषण किया। हमने पाया कि क्रिप्टो उपयोग वाले 52.26% पायथन GitHub ऐप में कम से कम एक दुरुपयोग है, जिसके कारण 1,501 दुरुपयोग हुए हैं। कुल मिलाकर, केवल 7% दुरुपयोग एप्लिकेशन कोड के भीतर ही हैं
इस बात को बेहतर ढंग से समझने के लिए कि क्या पायथन एपीआई क्रिप्टो दुरुपयोग के प्रति कम संवेदनशील हैं, हम निम्नलिखित योगदान देते हैं:
• पायथन और जावा में क्रिप्टो दुरुपयोग का पता लगाने के लिए एक नया, बहुभाषी विश्लेषण उपकरण। पायथन के लिए हम 5 सामान्य पायथन क्रिप्टो एपीआई और जावा के लिए मानक एपीआई जेसीए के लिए क्रिप्टो दुरुपयोग को कवर करते हैं।
• GitHub पर 895 सर्वाधिक लोकप्रिय पायथन अनुप्रयोगों में क्रिप्टो दुरुपयोग का एक अनुभवजन्य अध्ययन, जिसमें 1,501 दुरुपयोगों का खुलासा हुआ।
• पायथन अनुप्रयोगों में हमारे निष्कर्षों की तुलना एंड्रॉइड ऐप्स और सी में फर्मवेयर छवियों के लिए क्रिप्टो दुरुपयोग के बारे में पिछले अध्ययनों के साथ की गई है। हमने देखा कि अधिकांश पायथन अनुप्रयोग अधिक सुरक्षित हैं और दुरुपयोग के ठोस प्रकारों के बीच वितरण बहुत भिन्न है।
• माइक्रोपाइथन परियोजनाओं में क्रिप्टो दुरुपयोग का एक अनुभवजन्य अध्ययन जो हाइब्रिड स्थैतिक विश्लेषण के महत्व को प्रकट करता है।
• एक प्रतिकृति पैकेज जिसमें हमारे अध्ययन के लिए उपयोग किए गए दोनों डेटा सेट, हमारे विश्लेषण के परिणाम और LICMA[1] का कोड शामिल है।
[1] dx.doi.org/10.6084/m9.figshare.16499085