कुछ लोग तर्क देंगे कि एक उत्पादन मशीन पर विकास उपकरण की उपस्थिति एक हमलावर के लिए जीवन को आसान बना देगी। हालांकि यह एक हमलावर के लिए इतना छोटा रोडबंप है, कि विकास उपकरण स्थापित करने के खिलाफ या उसके खिलाफ कोई भी अन्य तर्क आपको अधिक मिलेगा।
यदि कोई हमलावर अब तक सिस्टम में घुसने में सक्षम था, तो वे सर्वर पर जो भी उपकरण मौजूद होते हैं, उन्हें चालान कर सकते हैं, तो आपके पास पहले से ही एक गंभीर सुरक्षा उल्लंघन है। विकास साधनों के बिना किसी फ़ाइल में बाइनरी डेटा लिखने के कई अन्य तरीके हैं और फिर उस फ़ाइल पर एक chmod चलाएं। एक हमलावर इस बिंदु पर सिस्टम पर एक कस्टम बिल्ड एग्जीक्यूटेबल का उपयोग करना चाहता है और साथ ही अपनी मशीन पर उसे सर्वर पर ट्रांसफर कर सकता है।
बाहर देखने के लिए अन्य बहुत अधिक प्रासंगिक चीजें हैं। यदि सॉफ़्टवेयर के एक स्थापित टुकड़े में एक सुरक्षा बग है, तो कुछ तरीके हैं जो इसे एक हमलावर के सामने ला सकते हैं:
- पैकेज में एक suid या sgid निष्पादन योग्य हो सकता है।
- पैकेज सिस्टम पर सेवाएं शुरू कर सकता है।
- पैकेज उन स्क्रिप्ट को स्थापित कर सकता है जो कुछ परिस्थितियों में स्वचालित रूप से मंगाई जाती हैं (इसमें क्रोन जॉब्स भी शामिल हैं, लेकिन स्क्रिप्ट को अन्य घटनाओं द्वारा लागू किया जा सकता है, उदाहरण के लिए जब नेटवर्क इंटरफ़ेस की स्थिति बदलती है या जब उपयोगकर्ता लॉग इन करता है)।
- पैकेज डिवाइस इनोड स्थापित कर सकता है।
मैं विकास के साधनों की अपेक्षा उपरोक्त में से किसी एक से नहीं करूँगा, और जैसा कि उच्च जोखिम पैकेज नहीं है।
यदि आपके पास वर्कफ़्लोज़ हैं जिसमें आप विकास टूल का उपयोग करेंगे, तो आपको पहले यह तय करना होगा कि क्या वे उचित वर्कफ़्लोज़ हैं, और यदि वे हैं, तो आपको डेवलपमेंट टूल इंस्टॉल करना चाहिए।
यदि आप पाते हैं कि आपको सर्वर पर वास्तव में उन टूल की आवश्यकता नहीं है, तो आपको उन्हें कई कारणों से स्थापित करने से बचना चाहिए:
- सर्वर और बैकअप दोनों पर डिस्क स्थान बचाता है।
- कम स्थापित सॉफ़्टवेयर यह ट्रैक करना आसान बनाता है कि आपकी निर्भरताएं क्या हैं।
- यदि आपको पैकेज की आवश्यकता नहीं है, तो अतिरिक्त सुरक्षा जोखिम को स्थापित करने से कोई मतलब नहीं है, भले ही वह सुरक्षा जोखिम छोटा हो।
यदि आप तय करते हैं कि सुरक्षा कारणों से, आप अप्रभावित उपयोगकर्ताओं को सर्वर पर अपने स्वयं के निष्पादकों को लगाने की अनुमति नहीं देंगे, तो आपको जो बचना चाहिए वह विकास उपकरण नहीं है, बल्कि उन उपयोगकर्ताओं के लिए उपयुक्त हैं जो फ़ाइल सिस्टम पर निष्पादित अनुमतियों के साथ माउंट किए गए हैं। उन परिस्थितियों में भी विकास साधनों का उपयोग हो सकता है, लेकिन इसकी बहुत संभावना नहीं है।