
OpenSSF Scorecard - مقاييس صحة الأمان للمصادر المفتوحة

أنشأنا Scorecard لمساعدة مسؤولي المشاريع مفتوحة المصدر على تحسين ممارساتهم الأمنية، ولمساعدة مستهلكي البرمجيات مفتوحة المصدر على الحكم على ما إذا كانت تبعياتهم آمنة.
Scorecard هي أداة آلية تقوم بتقييم عدد من المعايير الهامة ("الفحوصات") المرتبطة بأمن البرمجيات وتمنح كل فحص درجة من 0-10. يمكنك استخدام هذه الدرجات لفهم المجالات المحددة التي تحتاج إلى تحسين لتعزيز الوضع الأمني لمشروعك. يمكنك أيضًا تقييم المخاطر التي تقدمها التبعيات، واتخاذ قرارات مستنيرة حول قبول هذه المخاطر، أو تقييم الحلول البديلة، أو العمل مع المسؤولين لإجراء تحسينات.
الإلهام لشعار Scorecard: "لقد نجحت! كلها D... وواحدة A!"
أتمتة التحليل وقرارات الثقة بشأن الوضع الأمني للمشاريع مفتوحة المصدر.
استخدام هذه البيانات لتحسين الوضع الأمني للمشاريع الحيوية التي يعتمد عليها العالم بشكل استباقي.
العمل كأداة قياس للسياسات الحالية
إذا كان مستهلكو البرمجيات مفتوحة المصدر يطلبون سلوكيات معينة من تبعياتهم، يمكن استخدام Scorecard لقياسها. مع إصدار V5، نرى النتائج المنظمة كطريقة للقيام بذلك إذا كان هناك تحليل مدعوم. بدلاً من الاعتماد على درجة إجمالية X/10، أو درجة صيانة Y/10، قد يرغب مستهلك البرمجيات مفتوحة المصدر في التأكد من أن المستودع الذي يعتمد عليه ليس مؤرشفًا (وهو ما يغطيه فحص archived). تتبع OpenSSF هذا النهج مع خط الأساس الأمني الخاص بها للمشاريع.
أن يكون تقريرًا نهائيًا أو شرطًا يجب أن تتبعه جميع المشاريع.
ليس المقصود من Scorecard أن يكون حلاً واحدًا يناسب الجميع. كل خطوة من خطوات إنتاج نتائجنا هي رأي: ما الفحوصات التي يتم تضمينها أو استبعادها، وأهمية كل فحص، وكيفية حساب الدرجات. الفحوصات نفسها هي معايير تقريبية؛ هناك نتائج إيجابية كاذبة وسلبية كاذبة.
سواء كان ذلك بسبب القابلية للتطبيق، أو الجدوى، أو مسألة رأي، فإن ما يتم تضمينه أو استبعاده من نتائج Scorecard يؤدي إلى الكثير من النقاش. من المستحيل إنشاء Scorecard يرضي الجميع لأن الجماهير المختلفة ستهتم بمجموعات فرعية مختلفة من السلوك.
الدرجات الإجمالية على وجه الخصوص لا تخبرك بأي شيء عن السلوكيات الفردية التي يقوم بها المستودع أو لا يقوم بها. يتم تجميع العديد من درجات الفحوصات في درجة واحدة، وهناك طرق متعددة للوصول إلى نفس الدرجة. تتغير هذه الدرجات مع إضافة معايير جديدة أو تحسين المعايير الحالية.
تم تشغيل Scorecard على آلاف المشاريع لمراقبة وتتبع المقاييس الأمنية. المشاريع البارزة التي تستخدم Scorecard تشمل:
لعرض نتائج المشاريع التي يتم فحصها بانتظام بواسطة Scorecard، انتقل إلى عارض الويب. يمكنك أيضًا استبدال النص الوهمي (المنصة، اسم المستخدم/المؤسسة، واسم المستودع) في رابط القالب التالي لإنشاء رابط Scorecard مخصص لمستودع:
https://scorecard.dev/viewer/?uri=<github_or_gitlab>.com/<user_name_or_org>/<repository_name>
على سبيل المثال:
لعرض نتائج المشاريع غير المدرجة في عارض الويب، استخدم واجهة سطر الأوامر الخاصة بـScorecard.
نقوم بتشغيل فحص أسبوعي لـScorecard على أكثر مليون مشروع مفتوح المصدر أهميةً وفقًا لتبعياتهم المباشرة وننشر النتائج في مجموعة بيانات BigQuery العامة.
هذه البيانات متاحة في مجموعة بيانات BigQuery العامة
openssf:scorecardcron.scorecard-v2. أحدث النتائج متاحة في
عرض BigQuery openssf:scorecardcron.scorecard-v2_latest.
يمكنك الاستعلام عن البيانات باستخدام BigQuery Explorer من خلال الانتقال إلى إضافة بيانات > تمييز مشروع بالاسم > 'openssf'.
على سبيل المثال، قد تكون مهتمًا بكيفية تغير نتيجة مشروع بمرور الوقت:```sql
SELECT date, score FROM openssf.scorecardcron.scorecard-v2 WHERE repo.name="github.com/ossf/scorecard" ORDER BY date ASC
يمكنك استخراج أحدث النتائج إلى تخزين Google Cloud بتنسيق JSON باستخدام أداة [`bq`]:```
# 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
في هذا المستودع. إذا كنت ترغب في أن نتتبع المزيد، فلا تتردد في إرسال طلب سحب (Pull Request) بمشاريع أخرى. حاليًا، هذه القائمة مستمدة من المشاريع المستضافة على GitHub فقط. نخطط لتوسيعها في المستقبل القريب لتشمل المشاريع المستضافة على أنظمة تحكم مصدري أخرى.
أسهل طريقة لاستخدام Scorecard على مشاريع GitHub التي تملكها هي عبر إجراء GitHub الخاص بـ Scorecard. يعمل الإجراء على أي تغيير في المستودع ويصدر تنبيهات يمكن للمشرفين الاطلاع عليها في علامة التبويب "الأمان" (Security) في المستودع. لمزيد من المعلومات، راجع تعليمات التثبيت الخاصة بإجراء GitHub الخاص بـ Scorecard.
لاستعلام النتائج المحسوبة مسبقًا لمشاريع المصادر المفتوحة، استخدم REST API.
النتائج المحسوبة من فحصنا الأسبوعي تستثني فحوصات CI-Tests وContributors وDependency-Update-Tool بسبب تكاليف واجهة API المرتبطة بتشغيلها على نطاق واسع.
يتم تخزين نتائج API مؤقتًا باستخدام CDN (بفضل Fastly وبرنامجهم Fast Forward). يتم مسح النتائج من CDN عند توفر نتائج جديدة، ولكن إذا لاحظت مشكلات تتعلق بالبيانات القديمة، فيُرجى فتح مشكلة (issue).
لتمكين مشروعك من الظهور على REST API، قم بتعيين
publish_results: true
في إعداد إجراء GitHub الخاص بـ Scorecard.
البيانات المقدمة من REST API مرخصة بموجب CDLA Permissive 2.0.
تمكين publish_results: true
في إجراءات GitHub الخاصة بـ Scorecard يسمح للمشرفين أيضًا بعرض شارة Scorecard على مستودعهم لإظهار
عملهم الجاد. هذه الشارة تُحدّث تلقائيًا مع كل تغيير يتم إجراؤه على المستودع. راجع المزيد من التفاصيل في هذا المنشور على مدونة OSSF.
### واجهة سطر الأوامر لـ Scorecard
لتشغيل فحص Scorecard على مشاريع لا تملكها، استخدم خيار التثبيت عبر واجهة سطر الأوامر.
#### المتطلبات الأساسية
الأنظمة الأساسية: حاليًا، يدعم Scorecard أنظمة OSX و Linux. إذا كنت تستخدم نظام تشغيل Windows فقد تواجه مشكلات. المساهمات في دعم Windows مرحب بها.
اللغة: يجب أن يكون GoLang مثبتًا لديك لتشغيل Scorecard (https://golang.org/doc/install)
#### التثبيت
##### Docker
`scorecard` متاح كحاوية Docker:```shell
docker pull ghcr.io/ossf/scorecard:latest
لاستخدام إصدار معين من بطاقة النتائج (مثل v3.2.1)، قم بتشغيل:```shell docker pull ghcr.io/ossf/scorecard:v3.2.1
##### مستقل
لتثبيت Scorecard بشكل مستقل:
قم بزيارة [صفحة الإصدارات](https://github.com/ossf/scorecard/releases/latest) الخاصة بنا وقم بتنزيل ملف zip المناسب لنظام التشغيل الخاص بك.
أضف الثنائي إلى دليل `GOPATH/bin` الخاص بك (استخدم `go env GOPATH` لتحديد دليلك إذا لزم الأمر).
###### التحقق من صحة مصدر SLSA للإصدارات التي تم تنزيلها
نقوم بإنشاء [توقيعات SLSA3](https://slsa.dev) باستخدام [slsa-framework/slsa-github-generator](https://github.com/slsa-framework/slsa-github-generator) التابع لـ OpenSSF أثناء عملية الإصدار. للتحقق من ثنائي الإصدار:
1. قم بتثبيت أداة التحقق من [slsa-framework/slsa-verifier#installation](https://github.com/slsa-framework/slsa-verifier#installation).
2. قم بتنزيل ملف التوقيع `attestation.intoto.jsonl` من [صفحة إصدارات GitHub](https://github.com/GoogleContainerTools/jib/releases/latest).
3. قم بتشغيل المدقق:```shell
slsa-verifier -artifact-path <the-zip> -provenance attestation.intoto.jsonl -source github.com/ossf/scorecard -tag <the-tag>
يُفرض GitHub حدودًا لمعدل واجهة برمجة التطبيقات على الطلبات غير الموثقة. لتجنب هذه الحدود، يجب عليك توثيق طلباتك قبل تشغيل Scorecard. هناك طريقتان لتوثيق طلباتك: إما إنشاء رمز وصول شخصي لـ GitHub، أو إنشاء تطبيق GitHub Installation.
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 |
|---------|------------------------|--------------------------------|---------------------------------------------------------------------------|
يجب تعيين GITHUB_AUTH_TOKEN إلى رمز صالح.```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' | |
|---------|------------------------|--------------------------------|--------------------------------|---------------------------------------------------------------------------|
تتيح تعليقات المشرفين للمشرفين إضافة سياق لعرضه جنبًا إلى جنب مع نتائج فحص Scorecard. يمكن أن توفر التعليقات للمستخدمين معلومات إضافية عندما يكون لدى Scorecard تقييم غير مكتمل لممارسات الأمان الخاصة بالمشروع. لعرض تعليقات المشرفين لكل فحص، استخدم الخيار --show-annotations.
لمزيد من المعلومات حول التعليقات المتاحة أو كيفية إنشاء التعليقات، راجع وثيقة التكوين.
لتشغيل Scorecard على مستودع GitLab، يجب عليك إنشاء رمز وصول GitLab بالصلاحيات التالية:
read_apiread_userread_repositoryيمكنك تشغيل Scorecard على مستودع GitLab عن طريق تعيين متغير البيئة GITLAB_AUTH_TOKEN:```bash
export GITLAB_AUTH_TOKEN=glpat-xxxx
scorecard --repo gitlab.com///
للحصول على مثال لاستخدام Scorecard في GitLab CI/CD، انظر [هنا](https://gitlab.com/ossf-test/scorecard-pipeline-example).
###### الإصدارات المستضافة ذاتيًا
بينما نركز على دعم GitLab.com، فإن Scorecard تعمل أيضًا مع تثبيتات GitLab المستضافة ذاتيًا.
إذا كانت منصتك مستضافة على نطاق فرعي (مثل `gitlab.foo.com`)، فيجب أن تعمل Scorecard مباشرةً.
إذا كانت منصتك مستضافة على مسار slug (مثل `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/main/docs/checks.md#binary-artifacts) | هل المشروع خالٍ من الثنائيات المدرجة؟ | عالية | PAT, GITHUB_TOKEN | مدعوم |
[Branch-Protection](https://github.com/ossf/scorecard/blob/main/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/main/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/main/docs/checks.md#cii-best-practices) | هل حصل المشروع على [شارة أفضل الممارسات من OpenSSF (سابقاً CII)](https://www.bestpractices.dev) بمستوى النجاح أو الفضي أو الذهبي؟ | منخفضة | PAT, GITHUB_TOKEN | قيد التحقق |
[Code-Review](https://github.com/ossf/scorecard/blob/main/docs/checks.md#code-review) | هل يطبق المشروع مراجعة الكود قبل دمج الكود؟ | عالية | PAT, GITHUB_TOKEN | مدعوم |
[Contributors](https://github.com/ossf/scorecard/blob/main/docs/checks.md#contributors) | هل يوجد في المشروع مساهمون من مؤسستين مختلفتين على الأقل؟ | منخفضة | PAT, GITHUB_TOKEN | قيد التحقق |
[Dangerous-Workflow](https://github.com/ossf/scorecard/blob/main/docs/checks.md#dangerous-workflow) | هل يتجنب المشروع أنماط البرمجة الخطيرة في سير عمل GitHub Actions؟ | حرجة | PAT, GITHUB_TOKEN | غير مدعوم |
[Dependency-Update-Tool](https://github.com/ossf/scorecard/blob/main/docs/checks.md#dependency-update-tool) | هل يستخدم المشروع أدوات للمساعدة في تحديث تبعياته؟ | عالية | PAT, GITHUB_TOKEN | مدعوم |
[Fuzzing](https://github.com/ossf/scorecard/blob/main/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/main/docs/checks.md#license) | هل يعلن المشروع عن ترخيص؟ | منخفضة | PAT, GITHUB_TOKEN | قيد التحقق |
[Maintained](https://github.com/ossf/scorecard/blob/main/docs/checks.md#maintained) | هل عمر المشروع 90 يوماً على الأقل، وهل يتم صيانته؟ | عالية | PAT, GITHUB_TOKEN | قيد التحقق |
[Pinned-Dependencies](https://github.com/ossf/scorecard/blob/main/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/main/docs/checks.md#packaging) | هل يقوم المشروع ببناء ونشر حزم رسمية من CI/CD، مثل [نشر GitHub](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/main/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/main/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/main/docs/checks.md#signed-releases) | هل يقوم المشروع [بتوقيع الإصدارات](https://wiki.debian.org/Creating%20signed%20GitHub%20releases) تشفيرياً؟ | عالية | PAT, GITHUB_TOKEN | قيد التحقق |
[Token-Permissions](https://github.com/ossf/scorecard/blob/main/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/main/docs/checks.md#vulnerabilities) | هل يحتوي المشروع على ثغرات غير مثبتة؟ يستخدم [خدمة OSV](https://osv.dev). | عالية | PAT, GITHUB_TOKEN | قيد التحقق |
[Webhooks](https://github.com/ossf/scorecard/blob/main/docs/checks.md#webhooks) | هل يحتوي webhook المُعرَّف في المستودع على رمز مميز لمصادقة أصول الطلبات؟ | حرجة | 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/main/docs/checks.md).
### دليل المبتدئين لفحوصات Scorecard
للحصول على دليل حول الفحوصات التي يجب استخدامها عند البدء، راجع [دليل المبتدئين لفحوصات scorecard](https://github.com/ossf/scorecard/blob/main/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. تحذير: 2FA باستخدام SMS عرضة لهجوم [تبديل 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) لمستوى مخاطرة كل فحص.
## المساهمة
### الإبلاغ عن المشكلات
إذا كان لديك ما يبدو وكأنه خلل، فيرجى استخدام [نظام تتبع المشكلات في GitHub](https://github.com/ossf/scorecard/issues). قبل تقديم مشكلة، يرجى البحث في المشكلات الحالية لمعرفة ما إذا كانت مشكلتك مغطاة بالفعل.
### المساهمة في Scorecard
قبل المساهمة، يرجى اتباع [مدونة قواعد السلوك](https://github.com/ossf/scorecard/blob/main/CODE_OF_CONDUCT.md) الخاصة بنا.
انظر توثيق [المساهمة](https://github.com/ossf/scorecard/blob/main/CONTRIBUTING.md) للحصول على إرشادات حول كيفية المساهمة في المشروع.
### إضافة فحص Scorecard
إذا كنت ترغب في إضافة فحص، فيرجى الاطلاع على الإرشادات [هنا](https://github.com/ossf/scorecard/blob/main/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)
غرفة الاجتماع الافتراضية للمجتمع | [رابط اجتماع z o o m](https://zoom-lfx.platform.linuxfoundation.org/meeting/95007214146?password=250040c3-80c0-48c4-80c1-07a373116d54)
تقويم اجتماع المجتمع | **_مناسب لمنطقة آسيا والمحيط الهادئ_** كل أسبوعين يوم الخميس من 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> **_مناسب لمنطقة أوروبا والشرق الأوسط وأفريقيا_** كل 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/main/.github/CODEOWNERS).
### الإبلاغ عن مشكلة أمنية
للإبلاغ عن مشكلة أمنية، يرجى اتباع التعليمات [هنا](https://github.com/ossf/scorecard/blob/main/SECURITY.md).
### الانضمام إلى اجتماع مشروع Scorecard
#### Zoom
**_مناسب لمنطقة آسيا والمحيط الهادئ_** كل أسبوعين يوم الخميس من 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)
**_مناسب لمنطقة أوروبا والشرق الأوسط وأفريقيا_** كل 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)
## الأسئلة الشائعة
### الأسئلة الشائعة
انظر [الأسئلة الشائعة](https://github.com/ossf/scorecard/blob/main/docs/faq.md) للحصول على إجابات للأسئلة المتكررة حول Scorecard.