तीसरे पक्ष की लाइब्रेरियों का जाल
Categories:
- तीसरे पक्ष की लाइब्रेरियों का जाल
आज हमने हाल ही में आई एक तीसरे पक्ष की लॉगिंग लाइब्रेरी की एक कमजोरी (vulnerability) पर चर्चा की, जिसका उपयोग दूरस्थ कमांड निष्पादित करने के लिए बहुत कम दहलीज पर किया जा सकता है। एक लॉगिंग लाइब्रेरी और दूरस्थ कमांड एक-दूसरे से बिल्कुल असंबंधित लगते हैं, लेकिन बेकार में जोड़ी गई अनावश्यक चीजों वाली तीसरे पक्ष की लाइब्रेरियाँ हर जगह हैं।
जितना अधिक कोड आप पढ़ते हैं, आप इतना अधिक महसूस करते हैं कि बहुत से ओपन-सोर्स कोड का स्तर बहुत खराब है, चाहे उसके कितने भी हजार ‘स्टार’ क्यों न हों; ‘स्टार’ की संख्या मांग का प्रतिनिधित्व करती है, विकास के स्तर का नहीं।
ओपन-सोर्स का फायदा यह है कि इसमें विकास के लिए अधिक लोग होते हैं, इसका फायदा है कि विशेषताएं जल्दी बढ़ती हैं, बग किसी न किसी द्वारा ठीक किए जाते हैं, कोड की समीक्षा होती है, लेकिन स्तर असमान होता है।
यदि कोई मजबूत प्रतिबद्ध (commit) बाध्यता नहीं है, तो कोड की गुणवत्ता की गारंटी देना मुश्किल है।
जितना अधिक कोड होगा, आक्रमण की सतह उतनी ही बढ़ेगी।
हालांकि पहिया दोबारा बनाना (reinventing the wheel) अच्छा नहीं माना जाता, लेकिन उत्पाद की आवश्यकता एक बच्चे की गाड़ी का पहिया है (एक प्लास्टिक का पहिया जो कभी नहीं टूटता), और यदि आपने एक विमान का टायर लगा दिया, तो यह केवल आक्रमण की सतह और रखरखाव की लागत बढ़ाता है। इसलिए, यदि आपको केवल बच्चे की गाड़ी का पहिया चाहिए, तो बड़ी चीज़ का अनावश्यक उपयोग नहीं करना चाहिए।
रखरखाव की लागत अधिक है, तीसरे पक्ष की लाइब्रेरियों को बनाए रखने के लिए विशेष प्रक्रियाओं और कर्मचारियों की आवश्यकता होती है। हुवावे का एक संशोधित टेस्टिंग फ्रेमवर्क सीधे तौर पर कंपाइलर अपग्रेड करने पर टेस्ट केस विफल होने का कारण बना। टेस्टिंग फ्रेमवर्क को अपग्रेड करना और कंपाइलर को अपग्रेड करना आपस में टकरा गया, और रखरखाव के दौरान इस संशोधन के रास्ते पर जारी रहने के लिए बहुत समय खर्च करना पड़ा। एक प्रतिभागी के रूप में, मैंने गहराई से महसूस किया कि तीसरे पक्ष की लाइब्रेरी को गहराई से बदलना कितना कठिन है। यदि सुविधाओं को बदलना ओपन-सोर्स लाइब्रेरी में वापस मर्ज किया जा सकता है, तो ठीक है, लेकिन अपनी आवश्यकताओं के लिए घुसपैठ करने वाला कस्टम विकास रखरखाव को बहुत मुश्किल बना देता है।
हुवावे ने तीसरे पक्ष की लाइब्रेरियों के साथ निपटने के लिए एक श्रृंखला प्रक्रियाएं बनाई हैं, जिन्हें बाधाओं से भरा कहा जा सकता है।
दहलीज को बहुत कड़ा रखा गया है, नई तीसरे पक्ष की लाइब्रेरी जोड़ने के लिए 18 वीं श्रेणी के विशेषज्ञ और 20 वीं श्रेणी के मंत्री की समीक्षा की आवश्यकता होती है, मूल रूप से केवल बहुत प्रसिद्ध तीसरे पक्ष की लाइब्रेरियों का ही उपयोग किया जा सकता है।
सभी तीसरे पक्ष की लाइब्रेरियों को ’thirdparty’ फ़ोल्डर में रखा गया है, पूर्ण संकलन के दौरान CI उनकी तुलना स्रोत रिपॉजिटरी से करता है, और घुसपैठ वाले संशोधनों पर सख्त प्रतिबंध लगाया जाता है।
विशेष उपकरण सभी तीसरे पक्ष की लाइब्रेरी के संस्करणों को ट्रैक करते हैं, इस भाग को प्रबंधित करने के लिए आउटसोर्स कर्मियों को रखा गया है, और यदि कोई डेवलपर संस्करण अपग्रेड करने के लिए आवेदन करता है, तो मंत्री की समीक्षा की आवश्यकता होती है।
मंत्री को ऐसे मामलों को संभालने के लिए ढूंढना बहुत मुश्किल है, जब कोई प्रक्रिया बहुत जटिल होती है, तो यह वास्तव में आपको ऐसा न करने के लिए मना कर रही होती है।
तीसरे पक्ष की लाइब्रेरियों के प्रति एक आसानी से भरोसा न करने वाला रवैया बनाए रखा जाना चाहिए, अपने लोगों के विकास पर भरोसा करें।