OpenSSF Scorecard मुद्रा
Apothem का OpenSSF Scorecard लक्ष्य और स्कोर को बेहतर बनाते रहने के लिए उपयोग की जाने वाली साक्ष्य सतहें।
Apothem अधिकतम OpenSSF Scorecard स्कोर का लक्ष्य रखता है, साथ ही सार्वजनिक मुखौटे को इस बारे में ईमानदार रखता है कि Scorecard एक नई एकल-अनुरक्षक रिपॉज़िटरी से क्या अनुमान लगा सकता है और क्या नहीं। यह दस्तावेज़ प्रत्येक जाँच, उसका आधार बनने वाली साक्ष्य सतह, और मुद्रा को वर्तमान रखने वाले नियंत्रण को सूचीबद्ध करता है।
लाइव स्कोर Scorecard व्यूअर पर है; बैज README हेडर में है।
प्रति-जाँच साक्ष्य मैट्रिक्स
| जाँच | साक्ष्य सतह | टिप्पणियाँ |
|---|---|---|
| Binary-Artifacts | binary-artifacts-sweep.md | स्रोत में कोई निष्पादन-योग्य बाइनरी ट्रैक नहीं की जाती; उत्पन्न वितरण आर्काइव dist/ में रहते हैं। |
| Branch-Protection | branch-protection-ruleset.md | main सार्वजनिक रिलीज़ पदोन्नति से पहले सुरक्षित है; नया रिलीज़ कमिट उतरने के बाद फ़ोर्स-पुश और विलोपन अवरुद्ध हैं। |
| CI-Tests | .github/workflows/ci.yml | Pytest मैट्रिक्स, ruff, mypy, Trivy, दस्तावेज़ बिल्ड, और पैकेजिंग स्मोक जाँचें। |
| CII-Best-Practices | OpenSSF Best Practices पंजीकरण | OpenSSF Best Practices साइट पर अनुरक्षक-पक्ष पंजीकरण आवश्यक है; इसे केवल रिपॉज़िटरी फ़ाइलों से पूरा नहीं किया जा सकता। |
| Code-Review | ब्रांच सुरक्षा + CODEOWNERS | रिपॉज़िटरी व्यवस्थापकों को छोड़कर सभी के लिए main हेतु पुल रिक्वेस्ट आवश्यक हैं, और जब तक परियोजना का एक ही अनुरक्षक है, ब्रांच सुरक्षा 0 अनुमोदक समीक्षाओं की माँग करती है (branch-protection-ruleset.md देखें); जब तक समीक्षित PR मौजूद नहीं होते, Scorecard इतिहास सीमित रहता है। |
| Contributors | AUTHORS | एक नई एकल-अनुरक्षक परियोजना बहु-संगठन योगदान इतिहास गढ़ नहीं सकती; जैसे-जैसे योगदानकर्ता जुड़ते हैं, यह स्वाभाविक रूप से बेहतर होता है। |
| Dangerous-Workflow | वर्कफ़्लो ऑडिट | कोई pull_request_target नहीं; Actions SHA-पिन किए गए हैं और स्पष्ट अनुमतियों के साथ सीमित हैं। |
| Dependency-Update-Tool | .github/dependabot.yml | Dependabot GitHub Actions पिन, वेबसाइट, vsce पैकेजर lockfile, हैश-लॉक CI pip और pre-commit हुक के लिए समूहीकृत साप्ताहिक अपडेट, तथा channel-smoke lockfile के लिए मासिक अपडेट प्रस्तावित करता है; Dependabot सुरक्षा अपडेट हर पहचाने गए मैनिफ़ेस्ट को कवर करते हैं, सिवाय scripts/ci/ में CI निर्भरताओं और टूल के पूरे लॉक किए गए सेट के, जिन्हें scripts/dev/refresh_ci_locks.py तब फिर से बनाता है जब कोई अलर्ट किसी लॉक किए गए पैकेज का नाम लेता है। .gitattributes इस एक फ़ाइल को GitHub स्रोत आर्काइव में बनाए रखता है, जिन्हें action के डिफ़ॉल्ट आर्काइव मोड में चलने वाला स्कैन पढ़ता है; Scorecard वर्कफ़्लो git मोड में चलता है और इस फ़ाइल को क्लोन से पढ़ता है। |
| Fuzzing | tests/property/ | Hypothesis प्रॉपर्टी परीक्षण पार्सर और frontmatter अपरिवर्तनीयों को परखते हैं; हो सकता है कि अपस्ट्रीम Scorecard Hypothesis को फ़ज़र एकीकरण के रूप में श्रेय न दे। |
| License | LICENSE | रिपॉज़िटरी रूट पर MIT लाइसेंस। |
| Maintained | Git इतिहास | वर्तमान रिलीज़ कमिट और सक्रिय वर्कफ़्लो ताल अनुरक्षण को प्रदर्शित करते हैं; बहुत नई रिपॉज़िटरी को आयु चेतावनी मिल सकती है। |
| Packaging | .github/workflows/ | sdist, wheel, SBOM, SLSA प्रोवेनेंस और Sigstore हस्ताक्षर उत्पन्न करने वाले रिलीज़, Pages और npmjs.com वर्कफ़्लो। |
| Pinned-Dependencies | वर्कफ़्लो ऑडिट + हैश-लॉक आवश्यकताएँ | Actions SHA-पिन किए गए हैं; रिलीज़ टूलिंग, CI pip अपग्रेड, CI प्रोजेक्ट और परीक्षण निर्भरताएँ, और CI टूल (ruff, bandit, pip-audit, pip-licenses, pre-commit) --require-hashes के साथ इंस्टॉल होते हैं। प्रोजेक्ट, परीक्षण और टूल इंस्टॉल scripts/ci/ की नौ lockfile पढ़ते हैं; pip अपग्रेड और रिलीज़ टूलिंग अपनी-अपनी lockfile पढ़ते हैं, और पैकेज स्वयं --no-deps -e . से इंस्टॉल होता है। |
| SAST | .github/workflows/codeql.yml | Python और Actions में CodeQL security-extended क्वेरी। |
| Security-Policy | SECURITY.md | समन्वित-प्रकटीकरण नीति, समर्थित-संस्करण मैट्रिक्स, और प्रतिक्रिया समयरेखा। |
| Signed-Releases | .github/workflows/release.yml | Sigstore कीलेस हस्ताक्षर, SLSA प्रोवेनेंस, SBOM, चेकसम, और रिलीज़ आर्टिफ़ैक्ट। |
| Token-Permissions | वर्कफ़्लो ऑडिट | वर्कफ़्लो डिफ़ॉल्ट रूप से केवल-पठन अनुमतियों का उपयोग करते हैं; लेखन स्कोप जॉब-स्थानीय हैं और डिप्लॉयमेंट/पैकेज संचालन से बँधे हैं। |
| Vulnerabilities | .github/workflows/pip-audit.yml + .github/workflows/dependency-review.yml | साप्ताहिक भेद्यता स्कैन और SARIF अपलोड के साथ CI स्कैन; dependency-review गेट उन पुल रिक्वेस्ट को अवरुद्ध करता है जो भेद्य या अननुमत-लाइसेंस वाली निर्भरताएँ लाते हैं। यह जाँच स्वयं रिपॉज़िटरी के मैनिफ़ेस्ट में मिली निर्भरताओं को OSV में खोजती है, इसलिए pip-audit.yml भी OSV से पूछता है (pip-audit -s osv) और वहाँ मिला निष्कर्ष जाँच के निष्कर्ष से मेल खाता है। |
स्कोर व्याख्या
Scorecard प्रत्येक जाँच को 0-10 पैमाने पर अंक देता है और समग्र स्कोर एक भारित औसत है। रिपॉज़िटरी इतिहास, तृतीय-पक्ष पंजीकरण, या योगदानकर्ता विविधता पर निर्भर नियंत्रणों को बढ़ा-चढ़ाकर दावा करने के बजाय स्पष्ट रूप से ट्रैक किया जाता है। किसी भी फ़ाइल-नियंत्रित जाँच पर विचलन तत्काल सुधार को ट्रिगर करता है।
Scorecard वर्कफ़्लो action को file_mode: git के साथ चलाता है, जिससे Scorecard रिपॉज़िटरी का एक क्लोन पढ़ता है। स्रोत आर्काइव .github/ को छोड़ देते हैं (export-ignore के ज़रिए, जो .gitattributes में है)। इसलिए action के डिफ़ॉल्ट आर्काइव मोड में वर्कफ़्लो Dangerous-Workflow, Token-Permissions, Pinned-Dependencies और Packaging से छिपे रहते।
Pinned-Dependencies जानबूझकर 10 से नीचे रहता है, दो कारणों से। SLSA जनरेटर को उसके रिलीज़ टैग से संदर्भित किया जाता है। यह SHA पिनिंग का एकमात्र अपवाद है, क्योंकि उसका प्रोवेनेंस उसी टैग से जुड़ा है। evals वर्कफ़्लो Claude Code CLI को npm install --global से इंस्टॉल करता है, और उसका संस्करण हर रन में चुना जाता है। वर्कफ़्लो में जिन Python इंस्टॉल को Scorecard स्कैन करता है, वे या तो हैश-लॉक हैं, या स्वयं पैकेज के स्थानीय इंस्टॉल हैं, या उसी रन में बने wheel हैं।
ताज़गी ताल
- प्रति-पुश: Scorecard वर्कफ़्लो
mainपर हर पुश पर फिर से चलता है। - साप्ताहिक: सोमवार 02:30 UTC — अपस्ट्रीम-स्कोरिंग पद्धति में परिवर्तनों + मौजूदा पिन की गई निर्भरताओं के विरुद्ध प्रकट हुई नई भेद्यताओं को पकड़ता है।
- प्रति-रिलीज़: सार्वजनिक पदोन्नति से पहले, अनुरक्षक लाइव Scorecard व्यूअर सतह को सत्यापित करता है और किसी भी प्लेटफ़ॉर्म-स्थिति सीमा को दर्ज करता है।
संदर्भ
- OpenSSF Scorecard — अपस्ट्रीम परियोजना
- Scorecard जाँच संदर्भ — प्रति-जाँच अर्थ
ossf/scorecard-action— GitHub Actions रैपर- SLSA फ़्रेमवर्क — आपूर्ति-श्रृंखला स्तर (apothem SLSA-3 पर शिप होता है)