
OpenSSF Scorecard - ओपन सोर्स के लिए सुरक्षा स्वास्थ्य मीट्रिक्स
हमने स्कोरकार्ड को ओपन सोर्स अनुरक्षकों को उनकी सुरक्षा सर्वोत्तम प्रथाओं को बेहतर बनाने में मदद करने और ओपन सोर्स उपभोक्ताओं को यह निर्णय लेने में मदद करने के लिए बनाया है कि उनकी निर्भरताएँ सुरक्षित हैं या नहीं।
स्कोरकार्ड एक स्वचालित उपकरण है जो सॉफ्टवेयर सुरक्षा से जुड़े कई महत्वपूर्ण अनुमानी ("जाँच") का आकलन करता है और प्रत्येक जाँच को 0-10 का स्कोर प्रदान करता है। आप इन स्कोर का उपयोग अपने प्रोजेक्ट की सुरक्षा स्थिति को मजबूत करने के लिए सुधार के विशिष्ट क्षेत्रों को समझने के लिए कर सकते हैं। आप निर्भरताओं द्वारा उत्पन्न जोखिमों का भी आकलन कर सकते हैं, और इन जोखिमों को स्वीकार करने, वैकल्पिक समाधानों का मूल्यांकन करने, या अनुरक्षकों के साथ मिलकर सुधार करने के बारे में सूचित निर्णय ले सकते हैं।
स्कोरकार्ड के लोगो की प्रेरणा: "You passed! All D's ... and an A!"
ओपन सोर्स परियोजनाओं की सुरक्षा स्थिति पर विश्लेषण और विश्वास निर्णयों को स्वचालित करना।
इस डेटा का उपयोग उन महत्वपूर्ण परियोजनाओं की सुरक्षा स्थिति में सक्रिय रूप से सुधार करने के लिए करना जिन पर दुनिया निर्भर है।
मौजूदा नीतियों के लिए मापन उपकरण के रूप में कार्य करना
यदि OSS उपभोक्ता अपनी निर्भरताओं से कुछ व्यवहार चाहते हैं, तो स्कोरकार्ड का उपयोग उन्हें मापने के लिए किया जा सकता है। V5 रिलीज़ के साथ, हम इसे करने के तरीके के रूप में संरचित परिणाम देखते हैं यदि कोई समर्थित विश्लेषण है। X/10 के समग्र स्कोर, या Y/10 के रखरखाव स्कोर पर निर्भर होने के बजाय, एक OSS उपभोक्ता यह सुनिश्चित करना चाह सकता है कि वे जिस रेपो पर निर्भर हैं वह संग्रहीत नहीं है (जो archived प्रोब द्वारा कवर किया गया है)। OpenSSF अपने स्वयं के परियोजनाओं के लिए सुरक्षा आधार रेखा के साथ इस दृष्टिकोण को अपनाता है।
एक निश्चित रिपोर्ट या आवश्यकता होना जिसका सभी परियोजनाओं को पालन करना चाहिए।
स्कोरकार्ड एक सभी के लिए एक ही आकार का समाधान नहीं है। हमारे परिणाम बनाने का हर कदम राय पर आधारित है: कौन सी जाँच शामिल या बाहर की जाती हैं, प्रत्येक जाँच का महत्व, और स्कोर की गणना कैसे की जाती है। जाँच स्वयं अनुमानी हैं; झूठी सकारात्मक और झूठी नकारात्मक घटनाएँ होती हैं।
चाहे वह प्रयोज्यता, या व्यवहार्यता, या राय का मामला हो, स्कोरकार्ड परिणामों में क्या शामिल या बाहर रखा गया है, इस पर बहुत चर्चा होती है। ऐसा स्कोरकार्ड बनाना असंभव है जो सभी को संतुष्ट करे क्योंकि विभिन्न दर्शक व्यवहार के विभिन्न उपसमूहों की परवाह करेंगे।
विशेष रूप से समग्र स्कोर आपको यह नहीं बताता कि कोई रिपॉजिटरी कौन से व्यक्तिगत व्यवहार कर रही है या नहीं कर रही है। कई जाँच स्कोर को एक एकल स्कोर में एकत्रित किया जाता है, और एक ही स्कोर पर पहुँचने के कई तरीके हैं। जैसे-जैसे हम नई अनुमानी जोड़ते हैं या मौजूदा को परिष्कृत करते हैं, ये स्कोर बदलते रहते हैं।
स्कोरकार्ड का उपयोग हजारों परियोजनाओं पर सुरक्षा मेट्रिक्स की निगरानी और ट्रैक करने के लिए किया गया है। स्कोरकार्ड का उपयोग करने वाली प्रमुख परियोजनाओं में शामिल हैं:
नियमित रूप से स्कोरकार्ड द्वारा स्कैन की गई परियोजनाओं के स्कोर देखने के लिए, वेबव्यूअर पर जाएँ। आप एक रेपो के लिए एक कस्टम स्कोरकार्ड लिंक उत्पन्न करने के लिए निम्नलिखित टेम्पलेट लिंक में प्लेसहोल्डर टेक्स्ट (प्लेटफ़ॉर्म, उपयोगकर्ता/संगठन, और रिपॉजिटरी नाम) को भी बदल सकते हैं:
https://scorecard.dev/viewer/?uri=<github_or_gitlab>.com/<user_name_or_org>/<repository_name>
उदाहरण के लिए:
वेबव्यूअर में शामिल नहीं की गई परियोजनाओं के स्कोर देखने के लिए, स्कोरकार्ड CLI का उपयोग करें।
हम उनके प्रत्यक्ष निर्भरताओं द्वारा निर्णित 1 मिलियन सबसे महत्वपूर्ण ओपन सोर्स परियोजनाओं का साप्ताहिक स्कोरकार्ड स्कैन चलाते हैं और परिणामों को BigQuery सार्वजनिक डेटासेट में प्रकाशित करते हैं।
यह डेटा सार्वजनिक BigQuery डेटासेट openssf:scorecardcron.scorecard-v2 में उपलब्ध है। नवीनतम परिणाम BigQuery व्यू openssf:scorecardcron.scorecard-v2_latest में उपलब्ध हैं।
आप BigQuery Explorer का उपयोग करके डेटा से क्वेरी कर सकते हैं, Add Data > Star a project by name > 'openssf' पर जाकर।
उदाहरण के लिए, आप यह जानने में रुचि रख सकते हैं कि समय के साथ किसी प्रोजेक्ट का स्कोर कैसे बदला है:```sql
SELECT date, score FROM openssf.scorecardcron.scorecard-v2 WHERE repo.name="github.com/ossf/scorecard" ORDER BY date ASC
आप [`bq`](https://cloud.google.com/bigquery/docs/bq-command-line-tool) टूल का उपयोग करके नवीनतम परिणामों को JSON प्रारूप में Google Cloud storage पर निकाल सकते हैं:```
# Get the latest PARTITION_ID
bq query --nouse_legacy_sql 'SELECT partition_id FROM
openssf.scorecardcron.INFORMATION_SCHEMA.PARTITIONS WHERE table_name="scorecard-v2"
AND partition_id!="__NULL__" ORDER BY partition_id DESC
LIMIT 1'
# Extract to GCS
bq extract --destination_format=NEWLINE_DELIMITED_JSON
'openssf:scorecardcron.scorecard-v2$<partition_id>' gs://bucket-name/filename-*.json
जिन परियोजनाओं की जाँच की जाती है, उनकी सूची इस रिपॉजिटरी में
cron/internal/data/projects.csv
फ़ाइल में उपलब्ध है। यदि आप चाहते हैं कि हम और अधिक परियोजनाओं को ट्रैक करें, तो कृपया
बेझिझक अन्य के साथ एक पुल रिक्वेस्ट भेजें। वर्तमान में, यह सूची केवल GitHub
पर होस्ट की गई परियोजनाओं से प्राप्त की गई है। हम निकट भविष्य में अन्य स्रोत नियंत्रण प्रणालियों पर
होस्ट की गई परियोजनाओं को शामिल करने के लिए इसका विस्तार करने की योजना बना रहे हैं।
आपके स्वामित्व वाले GitHub प्रोजेक्ट्स पर Scorecard का उपयोग करने का सबसे आसान तरीका Scorecard GitHub Action के साथ है। यह एक्शन किसी भी रिपॉजिटरी परिवर्तन पर चलता है और अलर्ट जारी करता है जिसे रखरखावकर्ता रिपॉजिटरी के सुरक्षा टैब में देख सकते हैं। अधिक जानकारी के लिए, Scorecard GitHub Action स्थापना निर्देश देखें।
OSS परियोजनाओं के पूर्व-गणना किए गए स्कोर को क्वेरी करने के लिए, REST API का उपयोग करें।
हमारे साप्ताहिक स्कैन से गणना किए गए स्कोर CI-Tests,
Contributors, और Dependency-Update-Tool जाँचों को छोड़ देते हैं क्योंकि उन्हें बड़े पैमाने पर
चलाने से जुड़ी API लागतें होती हैं।
API परिणाम CDN (धन्यवाद Fastly और उनके Fast Forward कार्यक्रम को) के साथ कैश किए जाते हैं। जब नए परिणाम उपलब्ध होते हैं तो परिणाम CDN से हटा दिए जाते हैं, लेकिन यदि आप पुराने डेटा के साथ समस्याएँ देखते हैं, तो कृपया एक इश्यू खोलें।
अपनी परियोजना को REST API पर उपलब्ध कराने के लिए,
publish_results: true
को Scorecard GitHub Action सेटिंग में सेट करें।
REST API द्वारा प्रदान किया गया डेटा CDLA Permissive 2.0 के तहत लाइसेंस प्राप्त है।
Scorecard GitHub Actions में
publish_results: true
सक्षम करने से रखरखावकर्ता अपनी कड़ी मेहनत दिखाने के लिए अपने रिपॉजिटरी पर एक Scorecard बैज प्रदर्शित कर
सकते हैं। यह बैज रिपॉजिटरी में किए गए प्रत्येक परिवर्तन के लिए स्वतः अपडेट भी होता है। इस OSSF
ब्लॉगपोस्ट पर अधिक विवरण देखें।
अपनी परियोजना के रिपॉजिटरी पर एक बैज शामिल करने के लिए, अपने README में निम्नलिखित मार्कडाउन जोड़ें:```
### Scorecard कमांड लाइन इंटरफ़ेस
उन प्रोजेक्ट्स पर Scorecard स्कैन चलाने के लिए जिनके आप मालिक नहीं हैं, कमांड लाइन इंटरफ़ेस इंस्टॉलेशन विकल्प का उपयोग करें।
#### पूर्वापेक्षाएँ
प्लेटफ़ॉर्म: वर्तमान में, Scorecard OSX और Linux प्लेटफ़ॉर्म को सपोर्ट करता है। यदि आप Windows OS का उपयोग कर रहे हैं तो आपको समस्याएँ हो सकती हैं। Windows को सपोर्ट करने के लिए योगदान का स्वागत है।
भाषा: Scorecard चलाने के लिए आपके पास GoLang इंस्टॉल होना चाहिए (https://golang.org/doc/install)
#### इंस्टॉलेशन
##### Docker
`scorecard` एक Docker कंटेनर के रूप में उपलब्ध है:```shell
docker pull ghcr.io/ossf/scorecard:latest
एक विशिष्ट scorecard संस्करण (जैसे v3.2.1) का उपयोग करने के लिए, चलाएँ:```shell docker pull ghcr.io/ossf/scorecard:v3.2.1
##### स्टैंडअलोन
स्टैंडअलोन के रूप में Scorecard स्थापित करने के लिए:
हमारे नवीनतम [रिलीज़ पेज](https://github.com/ossf/scorecard/releases/latest) पर जाएँ और
अपने ऑपरेटिंग सिस्टम के लिए सही ज़िप फ़ाइल डाउनलोड करें।
बाइनरी को अपने `GOPATH/bin` निर्देशिका में जोड़ें (यदि आवश्यक हो तो अपनी निर्देशिका की पहचान करने के लिए `go env GOPATH` का उपयोग करें)।
###### डाउनलोड किए गए रिलीज़ के लिए SLSA प्रोवेनेंस सत्यापित करना
हम रिलीज़ प्रक्रिया के दौरान OpenSSF के [slsa-framework/slsa-github-generator](https://github.com/slsa-framework/slsa-github-generator) का उपयोग करके [SLSA3 हस्ताक्षर](https://slsa.dev) उत्पन्न करते हैं। किसी रिलीज़ बाइनरी को सत्यापित करने के लिए:
1. [slsa-framework/slsa-verifier#installation](https://github.com/slsa-framework/slsa-verifier#installation) से सत्यापन उपकरण स्थापित करें।
2. [GitHub रिलीज़ पेज](https://github.com/GoogleContainerTools/jib/releases/latest) से हस्ताक्षर फ़ाइल `attestation.intoto.jsonl` डाउनलोड करें।
3. सत्यापक चलाएँ:```shell
slsa-verifier -artifact-path <the-zip> -provenance attestation.intoto.jsonl -source github.com/ossf/scorecard -tag <the-tag>
GitHub बिना प्रमाणीकरण के अनुरोधों पर api दर सीमाएँ लागू करता है। इन सीमाओं से बचने के लिए, आपको Scorecard चलाने से पहले अपने अनुरोधों को प्रमाणित करना होगा। आपके अनुरोधों को प्रमाणित करने के दो तरीके हैं: या तो GitHub व्यक्तिगत पहुँच टोकन बनाएँ, या GitHub ऐप इंस्टॉलेशन बनाएँ।
public_repo स्कोप चुनें। टोकन को अपने प्लेटफॉर्म के अनुसार नीचे दिए गए कमांड का उपयोग करके GITHUB_AUTH_TOKEN, GITHUB_TOKEN, GH_AUTH_TOKEN या GH_TOKEN नामक पर्यावरण चर में सेट करें।```shellexport GITHUB_AUTH_TOKEN=
export GITHUB_AUTH_TOKEN=,
set GITHUB_AUTH_TOKEN= set GITHUB_AUTH_TOKEN=,
या
- [एक GitHub ऐप इंस्टॉलेशन बनाएं](https://docs.github.com/en/developers/apps/building-github-apps/creating-a-github-app)
उच्च दर-सीमा कोटा के लिए। यदि आपके पास एक स्थापित GitHub ऐप और कुंजी
फ़ाइल है, तो आप नीचे दिए गए तीन पर्यावरण चर का उपयोग कर सकते हैं, अपने
प्लेटफॉर्म के लिए ऊपर दिखाए गए कमांड (`set` या `export`) का पालन करते हुए।```
GITHUB_APP_KEY_PATH=<path to the key file on disk>
GITHUB_APP_INSTALLATION_ID=<installation id>
GITHUB_APP_ID=<app id>
ये चर GitHub डेवलपर सेटिंग्स पृष्ठ से प्राप्त किए जा सकते हैं।
Scorecard सिर्फ एक तर्क, लक्ष्य रिपॉजिटरी के URL का उपयोग करके चल सकता है:```shell scorecard --repo=github.com/ossf-tests/scorecard-check-branch-protection-e2e
```shell
Starting [CII-Best-Practices]
Starting [Fuzzing]
Starting [Pinned-Dependencies]
Starting [CI-Tests]
Starting [Maintained]
Starting [Packaging]
Starting [SAST]
Starting [Dependency-Update-Tool]
Starting [Token-Permissions]
Starting [Security-Policy]
Starting [Signed-Releases]
Starting [Binary-Artifacts]
Starting [Branch-Protection]
Starting [Code-Review]
Starting [Contributors]
Starting [Vulnerabilities]
Finished [CI-Tests]
Finished [Maintained]
Finished [Packaging]
Finished [SAST]
Finished [Signed-Releases]
Finished [Binary-Artifacts]
Finished [Branch-Protection]
Finished [Code-Review]
Finished [Contributors]
Finished [Dependency-Update-Tool]
Finished [Token-Permissions]
Finished [Security-Policy]
Finished [Vulnerabilities]
Finished [CII-Best-Practices]
Finished [Fuzzing]
Finished [Pinned-Dependencies]
RESULTS
-------
Aggregate score: 7.9 / 10
Check scores:
|---------|------------------------|--------------------------------|---------------------------------------------------------------------------|
| SCORE | NAME | REASON | DOCUMENTATION/REMEDIATION |
|---------|------------------------|--------------------------------|---------------------------------------------------------------------------|
| 10 / 10 | Binary-Artifacts | no binaries found in the repo | github.com/ossf/scorecard/blob/main/docs/checks.md#binary-artifacts |
|---------|------------------------|--------------------------------|---------------------------------------------------------------------------|
| 9 / 10 | Branch-Protection | branch protection is not | github.com/ossf/scorecard/blob/main/docs/checks.md#branch-protection |
| | | maximal on development and all | |
| | | release branches | |
|---------|------------------------|--------------------------------|---------------------------------------------------------------------------|
| ? | CI-Tests | no pull request found | github.com/ossf/scorecard/blob/main/docs/checks.md#ci-tests |
|---------|------------------------|--------------------------------|---------------------------------------------------------------------------|
| 0 / 10 | CII-Best-Practices | no badge found | github.com/ossf/scorecard/blob/main/docs/checks.md#cii-best-practices |
|---------|------------------------|--------------------------------|---------------------------------------------------------------------------|
| 10 / 10 | Code-Review | branch protection for default | github.com/ossf/scorecard/blob/main/docs/checks.md#code-review |
| | | branch is enabled | |
|---------|------------------------|--------------------------------|---------------------------------------------------------------------------|
| 0 / 10 | Contributors | 0 different companies found -- | github.com/ossf/scorecard/blob/main/docs/checks.md#contributors |
| | | score normalized to 0 | |
|---------|------------------------|--------------------------------|---------------------------------------------------------------------------|
| 0 / 10 | Dependency-Update-Tool | no update tool detected | github.com/ossf/scorecard/blob/main/docs/checks.md#dependency-update-tool |
|---------|------------------------|--------------------------------|---------------------------------------------------------------------------|
| 0 / 10 | Fuzzing | project is not fuzzed in | github.com/ossf/scorecard/blob/main/docs/checks.md#fuzzing |
| | | OSS-Fuzz | |
|---------|------------------------|--------------------------------|---------------------------------------------------------------------------|
| 1 / 10 | Maintained | 2 commit(s) found in the last | github.com/ossf/scorecard/blob/main/docs/checks.md#maintained |
| | | 90 days -- score normalized to | |
| | | 1 | |
|---------|------------------------|--------------------------------|---------------------------------------------------------------------------|
| ? | Packaging | no published package detected | github.com/ossf/scorecard/blob/main/docs/checks.md#packaging |
|---------|------------------------|--------------------------------|---------------------------------------------------------------------------|
| 8 / 10 | Pinned-Dependencies | unpinned dependencies detected | github.com/ossf/scorecard/blob/main/docs/checks.md#pinned-dependencies |
| | | -- score normalized to 8 | |
|---------|------------------------|--------------------------------|---------------------------------------------------------------------------|
| 0 / 10 | SAST | no SAST tool detected | github.com/ossf/scorecard/blob/main/docs/checks.md#sast |
|---------|------------------------|--------------------------------|---------------------------------------------------------------------------|
| 0 / 10 | Security-Policy | security policy file not | github.com/ossf/scorecard/blob/main/docs/checks.md#security-policy |
| | | detected | |
|---------|------------------------|--------------------------------|---------------------------------------------------------------------------|
| ? | Signed-Releases | no releases found | github.com/ossf/scorecard/blob/main/docs/checks.md#signed-releases |
|---------|------------------------|--------------------------------|---------------------------------------------------------------------------|
| 10 / 10 | Token-Permissions | tokens are read-only in GitHub | github.com/ossf/scorecard/blob/main/docs/checks.md#token-permissions |
| | | workflows | |
|---------|------------------------|--------------------------------|---------------------------------------------------------------------------|
| 10 / 10 | Vulnerabilities | no vulnerabilities detected | github.com/ossf/scorecard/blob/main/docs/checks.md#vulnerabilities |
|---------|------------------------|--------------------------------|---------------------------------------------------------------------------|
The GITHUB_AUTH_TOKEN has to be set to a valid टोकन```shell
docker run -e GITHUB_AUTH_TOKEN=token ghcr.io/ossf/scorecard:latest --show-details --repo=https://github.com/ossf/scorecard
एक विशिष्ट scorecard संस्करण (जैसे, v3.2.1) का उपयोग करने के लिए, चलाएँ:```shell
docker run -e GITHUB_AUTH_TOKEN=token ghcr.io/ossf/scorecard:v3.2.1 --show-details --repo=https://github.com/ossf/scorecard
जांच के विफल होने के कारणों के बारे में अधिक जानकारी के लिए, --show-details विकल्प का उपयोग करें:```
./scorecard --repo=github.com/ossf-tests/scorecard-check-branch-protection-e2e --checks Branch-Protection --show-details
```shell
Starting [Pinned-Dependencies]
Finished [Pinned-Dependencies]
RESULTS
-------
|---------|------------------------|--------------------------------|--------------------------------|---------------------------------------------------------------------------|
| SCORE | NAME | REASON | DETAILS | DOCUMENTATION/REMEDIATION |
|---------|------------------------|--------------------------------|--------------------------------|---------------------------------------------------------------------------|
| 9 / 10 | Branch-Protection | branch protection is not | Info: 'force pushes' disabled | github.com/ossf/scorecard/blob/main/docs/checks.md#branch-protection |
| | | maximal on development and all | on branch 'main' Info: 'allow | |
| | | release branches | deletion' disabled on branch | |
| | | | 'main' Info: linear history | |
| | | | enabled on branch 'main' Info: | |
| | | | strict status check enabled | |
| | | | on branch 'main' Warn: status | |
| | | | checks for merging have no | |
| | | | specific status to check on | |
| | | | branch 'main' Info: number | |
| | | | of required reviewers is 2 | |
| | | | on branch 'main' Info: Stale | |
| | | | review dismissal enabled on | |
| | | | branch 'main' Info: Owner | |
| | | | review required on branch | |
| | | | 'main' Info: 'administrator' | |
| | | | PRs need reviews before being | |
| | | | merged on branch 'main' | |
|---------|------------------------|--------------------------------|--------------------------------|---------------------------------------------------------------------------|
रखरखावकर्ता टिप्पणियाँ रखरखावकर्ताओं को स्कोरकार्ड जाँच परिणामों के साथ प्रदर्शित करने के लिए संदर्भ जोड़ने की अनुमति देती हैं। टिप्पणियाँ उपयोगकर्ताओं को अतिरिक्त जानकारी प्रदान कर सकती हैं जब स्कोरकार्ड किसी परियोजना की सुरक्षा प्रथाओं का अपूर्ण मूल्यांकन करता है। प्रत्येक जाँच के लिए रखरखावकर्ता टिप्पणियाँ देखने के लिए, --show-annotations विकल्प का उपयोग करें।
उपलब्ध टिप्पणियों या टिप्पणियाँ बनाने के तरीके के बारे में अधिक जानकारी के लिए, कॉन्फ़िगरेशन दस्तावेज़ देखें।
GitLab रिपॉजिटरी पर स्कोरकार्ड चलाने के लिए, आपको निम्नलिखित अनुमतियों वाला एक GitLab एक्सेस टोकन बनाना होगा:
read_apiread_userread_repositoryआप GITLAB_AUTH_TOKEN पर्यावरण चर सेट करके GitLab रिपॉजिटरी पर स्कोरकार्ड चला सकते हैं:```bash
export GITLAB_AUTH_TOKEN=glpat-xxxx
scorecard --repo gitlab.com///
स्कोरकार्ड को GitLab CI/CD में उपयोग करने का एक उदाहरण यहाँ देखें [यहाँ](https://gitlab.com/ossf-test/scorecard-pipeline-example)।
###### स्व-होस्टेड संस्करण
जबकि हम GitLab.com समर्थन पर ध्यान केंद्रित करते हैं, स्कोरकार्ड स्व-होस्टेड GitLab इंस्टॉलेशन के साथ भी काम करता है।
यदि आपका प्लेटफ़ॉर्म किसी उपडोमेन (जैसे `gitlab.foo.com`) पर होस्ट किया गया है, तो स्कोरकार्ड को बिना किसी समस्या के काम करना चाहिए।
यदि आपका प्लेटफ़ॉर्म किसी स्लग (जैसे `foo.com/bar/`) पर होस्ट किया गया है, तो आपको `GL_HOST` पर्यावरण चर सेट करने की आवश्यकता होगी।```bash
export GITLAB_AUTH_TOKEN=glpat-xxxx
export GL_HOST=foo.com/bar
scorecard --repo foo.com/bar/<org>/<project>
GitHub Enterprise होस्ट github.corp.com का उपयोग करने के लिए, GH_HOST पर्यावरण चर का उपयोग करें।```shell
export GH_HOST=github.corp.com export GITHUB_AUTH_TOKEN=token
scorecard --repo=github.corp.com/org/repo
scorecard --repo=org/repo
##### पैकेज मैनेजर का उपयोग करना
`--npm`, `--pypi`, `--rubygems`, या `--nuget` पारिस्थितिकी तंत्रों में परियोजनाओं के लिए, आपके पास पैकेज मैनेजर का उपयोग करके Scorecard चलाने का विकल्प है। संबंधित GitHub स्रोत कोड पर जाँच चलाने के लिए पैकेज का नाम प्रदान करें।
उदाहरण के लिए, `--npm=angular`।
नोट: पैकेज पारिस्थितिकी तंत्र फ़्लैग केवल GitHub रेपो खोजने के लिए हैं।
ये फ़्लैग जाँच के अंतिम मूल्यांकन को नहीं बदलते हैं।
इसके अतिरिक्त, इन फ़्लैग का उपयोग `--repo` के साथ नहीं किया जा सकता।
##### विशिष्ट जाँच चलाना
केवल विशिष्ट जाँच(जाँचों) को चलाने के लिए, जाँच नामों की सूची के साथ `--checks` तर्क जोड़ें।
उदाहरण के लिए, `--checks=CI-Tests,Code-Review`।
##### परिणामों को प्रारूपित करना
वर्तमान में समर्थित प्रारूप `default` (पाठ) और `json` हैं।
इन्हें `--format` फ़्लैग के साथ निर्दिष्ट किया जा सकता है। उदाहरण के लिए, `--format=json`।
## जाँच
### Scorecard जाँच
निम्नलिखित जाँचें डिफ़ॉल्ट रूप से लक्ष्य परियोजना के विरुद्ध चलाई जाती हैं:
नाम | विवरण | जोखिम स्तर | टोकन आवश्यक | GitLab समर्थन | नोट
----------- | ----------------------------------------- | ---------- | --------------- | -------------- | --- |
[Binary-Artifacts](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#binary-artifacts) | क्या परियोजना में चेक-इन किए गए बाइनरी मुक्त है? | उच्च | PAT, GITHUB_TOKEN | समर्थित |
[Branch-Protection](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#branch-protection) | क्या परियोजना [शाखा सुरक्षा](https://docs.github.com/en/free-pro-team@latest/github/administering-a-repository/about-protected-branches) का उपयोग करती है? | उच्च | PAT (`repo` या `repo> public_repo`), GITHUB_TOKEN | समर्थित (नोट्स देखें) | कुछ सेटिंग्स केवल मेनटेनर PAT के साथ समर्थित हैं
[CI-Tests](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#ci-tests) | क्या परियोजना CI में परीक्षण चलाती है, जैसे [GitHub Actions](https://docs.github.com/en/free-pro-team@latest/actions), [Prow](https://github.com/kubernetes/test-infra/tree/master/prow)? | निम्न | PAT, GITHUB_TOKEN | समर्थित
[CII-Best-Practices](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#cii-best-practices) | क्या परियोजना ने पासिंग, सिल्वर, या गोल्ड स्तर पर [OpenSSF (पूर्व में CII) बेस्ट प्रैक्टिसेज बैज](https://www.bestpractices.dev) अर्जित किया है? | निम्न | PAT, GITHUB_TOKEN | मान्य कर रहा है |
[Code-Review](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#code-review) | क्या परियोजना कोड मर्ज होने से पहले कोड समीक्षा का अभ्यास करती है? | उच्च | PAT, GITHUB_TOKEN | समर्थित |
[Contributors](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#contributors) | क्या परियोजना में कम से कम दो अलग-अलग संगठनों से योगदानकर्ता हैं? | निम्न | PAT, GITHUB_TOKEN | मान्य कर रहा है |
[Dangerous-Workflow](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#dangerous-workflow) | क्या परियोजना GitHub Action वर्कफ़्लो में खतरनाक कोडिंग पैटर्न से बचती है? | गंभीर | PAT, GITHUB_TOKEN | असमर्थित |
[Dependency-Update-Tool](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#dependency-update-tool) | क्या परियोजना अपनी निर्भरताओं को अपडेट करने के लिए टूल का उपयोग करती है? | उच्च | PAT, GITHUB_TOKEN | समर्थित |
[Fuzzing](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#fuzzing) | क्या परियोजना फ़ज़िंग टूल का उपयोग करती है, जैसे [OSS-Fuzz](https://github.com/google/oss-fuzz), [QuickCheck](https://hackage.haskell.org/package/QuickCheck) या [fast-check](https://fast-check.dev/)? | मध्यम | PAT, GITHUB_TOKEN | मान्य कर रहा है
[License](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#license) | क्या परियोजना एक लाइसेंस घोषित करती है? | निम्न | PAT, GITHUB_TOKEN | मान्य कर रहा है |
[Maintained](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#maintained) | क्या परियोजना कम से कम 90 दिन पुरानी है, और अनुरक्षित है? | उच्च | PAT, GITHUB_TOKEN | मान्य कर रहा है |
[Pinned-Dependencies](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#pinned-dependencies) | क्या परियोजना निर्भरताओं को घोषित और पिन करती है? [ निर्भरताएँ](https://docs.github.com/en/free-pro-team@latest/github/visualizing-repository-data-with-graphs/about-the-dependency-graph#supported-package-ecosystems) | मध्यम | PAT, GITHUB_TOKEN | मान्य कर रहा है |
[Packaging](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#packaging) | क्या परियोजना CI/CD से आधिकारिक पैकेज बनाती और प्रकाशित करती है, जैसे [GitHub Publishing](https://docs.github.com/en/free-pro-team@latest/actions/guides/about-packaging-with-github-actions#workflows-for-publishing-packages) ? | मध्यम | PAT, GITHUB_TOKEN | मान्य कर रहा है |
[SAST](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#sast) | क्या परियोजना स्थैतिक कोड विश्लेषण उपकरणों का उपयोग करती है, जैसे [CodeQL](https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/enabling-code-scanning-for-a-repository#enabling-code-scanning-using-actions), [LGTM (पदावनत)](https://lgtm.com), [SonarCloud](https://sonarcloud.io)? | मध्यम | PAT, GITHUB_TOKEN | असमर्थित |
[Security-Policy](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#security-policy) | क्या परियोजना में [सुरक्षा नीति](https://docs.github.com/en/free-pro-team@latest/github/managing-security-vulnerabilities/adding-a-security-policy-to-your-repository) है? | मध्यम | PAT, GITHUB_TOKEN | मान्य कर रहा है |
[Signed-Releases](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#signed-releases) | क्या परियोजना क्रिप्टोग्राफ़िक रूप से [रिलीज़ पर हस्ताक्षर](https://wiki.debian.org/Creating%20signed%20GitHub%20releases) करती है? | उच्च | PAT, GITHUB_TOKEN | मान्य कर रहा है |
[Token-Permissions](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#token-permissions) | क्या परियोजना GitHub वर्कफ़्लो टोकन को [केवल पढ़ने के लिए](https://docs.github.com/en/actions/reference/authentication-in-a-workflow) घोषित करती है? | उच्च | PAT, GITHUB_TOKEN | असमर्थित |
[Vulnerabilities](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#vulnerabilities) | क्या परियोजना में अनफिक्स्ड कमज़ोरियाँ हैं? [OSV सेवा](https://osv.dev) का उपयोग करता है। | उच्च | PAT, GITHUB_TOKEN | मान्य कर रहा है |
[Webhooks](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#webhooks) | क्या रिपॉजिटरी में परिभाषित वेबहुक में अनुरोधों की उत्पत्ति को प्रमाणित करने के लिए एक टोकन कॉन्फ़िगर किया गया है? | गंभीर | मेनटेनर PAT (`admin: repo_hook` या `admin> read:repo_hook` [दस्तावेज़](https://docs.github.com/en/rest/webhooks/repo-config#get-a-webhook-configuration-for-a-repository) | | प्रायोगिक
### विस्तृत जाँच दस्तावेज़ीकरण
प्रत्येक जाँच, उसके स्कोरिंग मानदंड और उपचारात्मक कदमों के बारे में विस्तृत जानकारी के लिए, [जाँच दस्तावेज़ीकरण पृष्ठ](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md) देखें।
### Scorecard जाँच के लिए शुरुआती मार्गदर्शिका
आरंभ करते समय उपयोग की जाने वाली जाँचों के लिए एक मार्गदर्शिका के लिए, [Scorecard जाँच के लिए शुरुआती मार्गदर्शिका](https://github.com/ossf/scorecard/blob/HEAD/docs/beginner-checks.md) देखें।
## अन्य महत्वपूर्ण अनुशंसाएँ
### दो-कारक प्रमाणीकरण (2FA)
[दो-कारक प्रमाणीकरण (2FA)](https://docs.github.com/en/authentication/securing-your-account-with-two-factor-authentication-2fa/about-two-factor-authentication) वेबसाइटों या ऐप्स में लॉग इन करते समय सुरक्षा की एक अतिरिक्त परत जोड़ता है। 2FA आपके खाते को सुरक्षित रखता है यदि आपका पासवर्ड समझौता हो जाता है, जिसके लिए प्रमाणीकरण के दूसरे रूप की आवश्यकता होती है, जैसे SMS या प्रमाणीकरण ऐप के माध्यम से भेजे गए कोड, या भौतिक सुरक्षा कुंजी को छूना।
हम दृढ़ता से अनुशंसा करते हैं कि आप किसी भी महत्वपूर्ण खाते पर 2FA सक्षम करें जहाँ यह उपलब्ध है। 2FA एक Scorecard जाँच नहीं है क्योंकि GitHub और GitLab उपयोगकर्ता खातों के बारे में वह डेटा सार्वजनिक नहीं करते हैं। यकीनन, यह डेटा हमेशा निजी रहना चाहिए, क्योंकि 2FA के बिना खाते हमले के प्रति बहुत संवेदनशील होते हैं।
यद्यपि यह एक आधिकारिक जाँच नहीं है, हम सभी परियोजना अनुरक्षकों से आग्रह करते हैं कि वे अपनी परियोजनाओं को समझौते से बचाने के लिए 2FA सक्षम करें।
#### 2FA सक्षम करना
##### उपयोगकर्ताओं के लिए
[दो-कारक प्रमाणीकरण कॉन्फ़िगर करना](https://docs.github.com/en/authentication/securing-your-account-with-two-factor-authentication-2fa/configuring-two-factor-authentication) में वर्णित चरणों का पालन करें।
यदि संभव हो, तो निम्नलिखित में से किसी एक का उपयोग करें:
- भौतिक सुरक्षा कुंजी (पसंदीदा), जैसे Titan या Yubikey
- पुनर्प्राप्ति कोड, एक एक्सेस-संरक्षित और एन्क्रिप्टेड वॉल्ट में संग्रहीत
अंतिम विकल्प के रूप में, SMS का उपयोग करें। सावधान रहें: SMS का उपयोग करने वाला 2FA [SIM स्वैप हमले](https://en.wikipedia.org/wiki/SIM_swap_scam) के प्रति संवेदनशील है।
##### किसी संगठन के लिए
1. [अपने संगठन में 2FA की आवश्यकता के लिए तैयारी करें](https://docs.github.com/en/organizations/keeping-your-organization-secure/managing-two-factor-authentication-for-your-organization/preparing-to-require-two-factor-authentication-in-your-organization)
2. [अपने संगठन में 2FA की आवश्यकता है](https://docs.github.com/en/organizations/keeping-your-organization-secure/managing-two-factor-authentication-for-your-organization/requiring-two-factor-authentication-in-your-organization)
## स्कोरिंग
### कुल स्कोर
प्रत्येक व्यक्तिगत जाँच 0 से 10 का स्कोर लौटाती है, जिसमें 10 सर्वोत्तम संभव स्कोर दर्शाता है। Scorecard एक कुल स्कोर भी उत्पन्न करता है, जो जोखिम द्वारा भारित व्यक्तिगत जाँचों का भार-आधारित औसत है।
* "गंभीर" जोखिम जाँचों का भार 10 है
* "उच्च" जोखिम जाँचों का भार 7.5 है
* "मध्यम" जोखिम जाँचों का भार 5 है
* "निम्न" जोखिम जाँचों का भार 2.5 है
प्रत्येक जाँच के जोखिम स्तर के लिए [वर्तमान Scorecard जाँचों की सूची](#scorecard-checks) देखें।
## योगदान करें
### समस्याओं की रिपोर्ट करें
यदि आपके पास बग जैसा कुछ है, तो कृपया [GitHub समस्या ट्रैकिंग सिस्टम](https://github.com/ossf/scorecard/issues) का उपयोग करें। समस्या दर्ज करने से पहले, यह देखने के लिए मौजूदा समस्याओं को खोजें कि क्या आपकी समस्या पहले से कवर है।
### Scorecard में योगदान करें
योगदान देने से पहले, कृपया हमारे [आचार संहिता](https://github.com/ossf/scorecard/blob/HEAD/CODE_OF_CONDUCT.md) का पालन करें।
परियोजना में योगदान करने के तरीके के बारे में मार्गदर्शन के लिए [योगदान](https://github.com/ossf/scorecard/blob/HEAD/CONTRIBUTING.md) दस्तावेज़ देखें।
### Scorecard जाँच जोड़ना
यदि आप एक जाँच जोड़ना चाहते हैं, तो कृपया यहाँ मार्गदर्शन देखें [checks/write.md](https://github.com/ossf/scorecard/blob/HEAD/checks/write.md)।
### Scorecard समुदाय से जुड़ें
यदि आप Scorecard समुदाय में शामिल होना चाहते हैं या आपके पास ऐसे विचार हैं जिनके बारे में आप चैट करना चाहते हैं, तो हम इस परियोजना पर [OSSF बेस्ट प्रैक्टिसेज वर्किंग ग्रुप](https://github.com/ossf/wg-best-practices-os-developers) बैठकों में चर्चा करते हैं।
कलाकृति | लिंक
----------------------------- | ----
Scorecard डेव फोरम | [ossf-scorecard-dev@](https://groups.google.com/g/ossf-scorecard-dev)
Scorecard घोषणा फोरम | [ossf-scorecard-announce@](https://groups.google.com/g/ossf-scorecard-announce)
सामुदायिक बैठक VC | [z o o m मीटिंग का लिंक](https://zoom-lfx.platform.linuxfoundation.org/meeting/95007214146?password=250040c3-80c0-48c4-80c1-07a373116d54)
सामुदायिक बैठक कैलेंडर | **_APAC-friendly_** प्रति दो सप्ताह गुरुवार को दोपहर 1:00-2:00 बजे प्रशांत ([OSSF सार्वजनिक कैलेंडर](https://calendar.google.com/calendar/u/0/embed?height=600&wkst=1&bgcolor=%238E24AA&showTitle=1&mode=WEEK&showCalendars=0&showTabs=1&showPrint=0&title=OpenSSF+Community+Calendar&src=czYzdm9lZmhwNWk5cGZsdGI1cTY3bmdwZXNAZ3JvdXAuY2FsZW5kYXIuZ29vZ2xlLmNvbQ&color=%238E24AA)) <br>वीडियो कॉल: [LFX Zoom](https://zoom-lfx.platform.linuxfoundation.org/meeting/95007214146?password=250040c3-80c0-48c4-80c1-07a373116d54) <br> **_EMEA-friendly_** प्रति 4 सोमवार सुबह 7:00-8:00 बजे प्रशांत ([OSSF सार्वजनिक कैलेंडर](https://calendar.google.com/calendar/u/0/embed?height=600&wkst=1&bgcolor=%238E24AA&showTitle=1&mode=WEEK&showCalendars=0&showTabs=1&showPrint=0&title=OpenSSF+Community+Calendar&src=czYzdm9lZmhwNWk5cGZsdGI1cTY3bmdwZXNAZ3JvdXAuY2FsZW5kYXIuZ29vZ2xlLmNvbQ&color=%238E24AA)) <br> वीडियो कॉल: [LFX Zoom](https://zoom-lfx.platform.linuxfoundation.org/meeting/93377638314?password=d53af562-d908-4100-8ae1-52686756cc5d)
बैठक नोट्स | [नोट्स](https://docs.google.com/document/d/1b6d3CVJLsl7YnTE7ZaZQHdkdYIvuOQ8rzAmvVdypOWM/edit?usp=sharing)
Slack चैनल | [#scorecard](https://slack.openssf.org/#scorecard)
__अनुरक्षक__ [CODEOWNERS फ़ाइल](https://github.com/ossf/scorecard/blob/HEAD/.github/CODEOWNERS) में सूचीबद्ध हैं।
### सुरक्षा समस्या की रिपोर्ट करें
सुरक्षा समस्या की रिपोर्ट करने के लिए, कृपया यहाँ दिए गए निर्देशों का पालन करें [SECURITY.md](https://github.com/ossf/scorecard/blob/HEAD/SECURITY.md)।
### Scorecard परियोजना बैठक में शामिल हों
#### Zoom
**_APAC-friendly_** प्रति दो सप्ताह गुरुवार को दोपहर 1:00-2:00 बजे प्रशांत ([OSSF सार्वजनिक कैलेंडर](https://calendar.google.com/calendar/u/0/embed?height=600&wkst=1&bgcolor=%238E24AA&showTitle=1&mode=WEEK&showCalendars=0&showTabs=1&showPrint=0&title=OpenSSF+Community+Calendar&src=czYzdm9lZmhwNWk5cGZsdGI1cTY3bmdwZXNAZ3JvdXAuY2FsZW5kYXIuZ29vZ2xlLmNvbQ&color=%238E24AA))
वीडियो कॉल: [LFX z o o m](https://zoom-lfx.platform.linuxfoundation.org/meeting/95007214146?password=250040c3-80c0-48c4-80c1-07a373116d54)
**_EMEA-friendly_** प्रति 4 सोमवार सुबह 7:00-8:00 बजे प्रशांत ([OSSF सार्वजनिक कैलेंडर](https://calendar.google.com/calendar/u/0/embed?height=600&wkst=1&bgcolor=%238E24AA&showTitle=1&mode=WEEK&showCalendars=0&showTabs=1&showPrint=0&title=OpenSSF+Community+Calendar&src=czYzdm9lZmhwNWk5cGZsdGI1cTY3bmdwZXNAZ3JvdXAuY2FsZW5kYXIuZ29vZ2xlLmNvbQ&color=%238E24AA))
वीडियो कॉल: [LFX z o o m](https://zoom-lfx.platform.linuxfoundation.org/meeting/93377638314?password=d53af562-d908-4100-8ae1-52686756cc5d)
#### एजेंडा
आप [एजेंडा और बैठक नोट्स यहाँ](https://docs.google.com/document/d/1b6d3CVJLsl7YnTE7ZaZQHdkdYIvuOQ8rzAmvVdypOWM/edit?usp=sharing) देख सकते हैं।
## समय के साथ स्टारगेज़र
[](https://starchart.cc/ossf/scorecard)
## सामान्य प्रश्न
### सामान्य प्रश्न
Scorecard के बारे में अक्सर पूछे जाने वाले प्रश्नों के उत्तर के लिए [सामान्य प्रश्न](https://github.com/ossf/scorecard/blob/HEAD/docs/faq.md) देखें।
| पैकेज मैनेजर | समर्थित वितरण | कमांड |
|---|
| Nix | NixOS | nix-shell -p nixpkgs.scorecard |
| AUR helper | Arch Linux | अपने AUR helper का उपयोग करके scorecard स्थापित करें |
| Homebrew | macOS या Linux | brew install scorecard |