
पैकेज प्रबंधन प्रणालियों को अधिक सुरक्षित बनाने के लक्ष्य वाला एक दस्तावेज़ीकरण और ट्रैकिंग परियोजना।
एक दस्तावेज़ीकरण और ट्रैकिंग परियोजना जिसका लक्ष्य पैकेज प्रबंधन प्रणालियों को अधिक सुरक्षित बनाना है। हमने जिन संबंधित मुद्दों को देखा है उनकी एक बहुत ही मोटी सूची के लिए मुद्दे देखें।
| भाषा | नाम | स्तर | नियंत्रण | पैकमैन लीड | पैकमैन पेज |
|---|---|---|---|---|---|
| JavaScript | npm | 1 | npm | ||
| Ruby | RubyGems | 1 | rubygems | ||
| Python | PyPi | 1 | pip/pypi | ||
| Java | Maven Central | 2 | maven central | ||
| Java | Android Central | ? | |||
| .Net | NuGet | 2 | nuget | ||
| Docker Hub | Docker | 1 | |||
| Golang | go get | 1 | golang | ||
| PHP | Composer | ? | |||
| Cocoa | Cocoa Pods | ? | |||
| Swift | Swift Package Manager | 1 | swiftpm | ||
| Rust | Cargo | 2? | rustcargo |
निम्नलिखित अनुभाग उपरोक्त तालिका में संदर्भित प्रत्येक नियंत्रण का अधिक विस्तार से वर्णन करते हैं।
मजबूत प्रमाणीकरण का अर्थ है कि सिस्टम को आवश्यकता है:
चूंकि पैकेज मैनेजर में नया कोड पुश करने में सक्षम होना एक शक्तिशाली कार्य है, इसलिए यह जानना महत्वपूर्ण है कि यह अनुरक्षक के पासवर्ड का अनुमान लगाकर आसानी से नहीं किया जा सकता है। MFA लागू करना
इस आवश्यकता को पूरा करने के लिए, पैकेज प्रबंधक के पास समुदाय से सुरक्षा जानकारी प्राप्त करने का एक तरीका और ऐसी प्रतिक्रिया को संभालने की एक प्रक्रिया होनी चाहिए। security@ जैसा प्रकाशित ईमेल, साथ में एक तंत्र जो यह सुनिश्चित करता है कि प्रतिक्रिया कैप्चर की जाती है और उसका जवाब दिया जाता है, इस आवश्यकता को पूरा करेगा।
पैकेज स्वयं मुद्दों की पहचान कर सकते हैं या मुद्दों के बारे में सूचित किए जा सकते हैं। प्लेटफ़ॉर्म को पैकेज अनुरक्षक के लिए सुरक्षा मुद्दे के साथ एक रिलीज़ रिपोर्ट करने का एक तरीका समर्थन करना चाहिए और:
पैकेज किसी ज्ञात सार्वजनिक रिपॉजिटरी (bitbucket.org, github.com) में कोड के एक स्पष्ट संस्करण (एक टैग?) से किसी तरह जुड़े होने चाहिए।
जब पैकेज अपडेट किए जाते हैं, तो उस पैकेज के सभी अनुरक्षकों को सूचित किया जाना चाहिए।
जब किसी पैकेज में सुरक्षा मुद्दों की पहचान की जाती है, तो उपभोक्ता के लिए उनकी जांच करने का एक तरीका होना चाहिए। यह एक कमांड हो सकता है जो उपभोक्ता को ज्ञात मुद्दों की जांच करने की अनुमति देता है।
डेवलपर्स के लिए अपने कोड पर हस्ताक्षर करना संभव होना चाहिए। जब वे ऐसा करते हैं, तो पैकेज प्रबंधक को हस्ताक्षर सत्यापित करने चाहिए और उन्हें पैकेज के उपभोक्ताओं को वितरित करने का एक तरीका प्रदान करना चाहिए।
पैकेज प्रबंधक डाउनलोड किए गए पैकेज की अखंडता को सत्यापित करने के लिए एक विधि प्रदान करता है।
कोई नहीं - कोई अखंडता सत्यापन नहीं किया जाता आंशिक - कमजोर विधि का उपयोग करके अखंडता सत्यापन किया जाता है* हाँ - पर्याप्त सुरक्षित विधि का उपयोग करके सत्यापन किया जाता है
प्लेटफ़ॉर्म महत्वपूर्ण लाइब्रेरीज़ में संभावित मुद्दों की सक्रिय रूप से पहचान करने के लिए स्थैतिक कोड विश्लेषण प्रदान कर सकता है।
प्लेटफ़ॉर्म उन लाइब्रेरीज़ में कमजोरियों को ट्रैक कर सकता है जिन पर पैकेज निर्भर करता है (अपस्ट्रीम पैकेज) और उस स्थिति में अनुरक्षकों को सूचित कर सकता है।
पैकेज प्रबंधक को पैकेज स्थापना पर कोड नहीं चलाना चाहिए।
पैकेज प्रबंधक को निर्भरता का उपयोग करने वाली परियोजना के बारे में जानकारी एकत्र नहीं करनी चाहिए।
पैकेज प्रबंधन प्रणाली में एक परियोजना पर भूमिकाओं के लिए एक मार्गदर्शिका होनी चाहिए जिसमें उत्तराधिकार योजना और सक्रिय जुड़ाव की शर्तें शामिल होनी चाहिए।
पैकेज प्रबंधन प्रणाली के अनुरक्षकों के पास परियोजनाओं पर भूमिकाओं की समीक्षा करने की एक प्रक्रिया होनी चाहिए ताकि यह सुनिश्चित हो सके कि अनुरक्षक सक्रिय हैं।
लाइब्रेरीज़ के उपभोक्ताओं को किसी विशिष्ट लाइब्रेरी में अपनी रुचि या अनुमोदन को टैग करने में सक्षम होना चाहिए ताकि वे सुनिश्चित कर सकें कि बिल्ड केवल उन्हीं लाइब्रेरीज़ का उपयोग करते हैं जिन्हें उन्होंने कुछ तरीकों से टैग किया है। जैसे, कोड समीक्षा के रूप में चिह्नित।
पैकेज प्रबंधक प्रमाणीकरण क्रेडेंशियल/टोकन/सत्र को पैकेज सामग्री के भाग के रूप में लीक होने से रोकने के लिए कुछ नियंत्रण प्रदान करता है।
कोई नहीं - कोई नियंत्रण मौजूद नहीं है और उपयोगकर्ता को स्वयं की रक्षा करनी है आंशिक - टिप्पणी डालें हाँ - क्रेडेंशियल/टोकन या तो प्रकाशन से अवरुद्ध हो जाते हैं या पैकेज के प्रकाशन द्वारा ट्रिगर किए गए स्वचालित तरीके से रद्द कर दिए जाते हैं। उपयोगकर्ताओं को किसी न किसी तरह से सूचित किया जाना चाहिए कि कार्रवाई हुई है।
| नियंत्रण | स्तर 1 | स्तर 2 | स्तर 3 |
|---|
| मजबूत प्रमाणीकरण | ☐ | ☑ | ☑ |
| कलाकृतियों को पुश करने के लिए MFA | ☐ | ☑ | ☑ |
| सुरक्षा संपर्क | ☐ | ☑ | ☑ |
| पैकेज सुरक्षा मुद्दों की सूचना दे सकते हैं | ☐ | ☑ | ☑ |
| कोड पैकेज स्रोत कोड से जुड़ा | ☐ | ☑ | ☑ |
| क्रेडेंशियल प्रकाशित होने से रोकता है | ☐ | ☑ | ☑ |
| अद्यतन सूचनाएं | ☐ | ☑ | ☑ |
| कोड हस्ताक्षर | ☐ | ☐ | ☑ |
| अखंडता सत्यापन | ☐ | ☐ | ☑ |
| कोड विश्लेषण (स्थैतिक) | ☐ | ☐ | ☑ |
| कोड निर्भरता विश्लेषण | ☐ | ☐ | ☑ |
| पैकेज प्रबंधक कोड नहीं चलाता | ☐ | ☐ | ☑ |
| पैकेज प्रबंधक जानकारी एकत्र नहीं करता | ☐ | ☐ | ☑ |
| परियोजना भूमिका मार्गदर्शिका | ☐ | ☐ | ☑ |
| परियोजना भूमिका समीक्षा | ☐ | ☐ | ☑ |
| खाता स्तर लाइब्रेरी टैगिंग | ☐ | ☐ | ☐ |