
اكتشاف وتصحيح التكوينات الخاطئة والمخاطر الأمنية عبر جميع أصول GitHub و GitLab الخاصة بك.
عزز الموقف الأمني لإدارة كود المصدر الخاص بك!
اكتشف وأصلح الأخطاء في التهيئة، والمشكلات الأمنية والامتثال عبر جميع أصول GitHub وGitLab الخاصة بك بسهولة 🔥
بواسطة Legit Security.
Legit Security هي حل لإدارة الوضع الأمني للتطبيقات (ASPM) وأمان سلسلة توريد البرمجيات.
لمزيد من المعلومات، تحقق من جدول المقارنة
يمكن التثبيت بعدة طرق:
brew install legitify
يمكنك تنزيل أحدث إصدار من legitify من https://github.com/Legit-Labs/legitify/releases، كل أرشيف يحتوي على:
من المصدر بالخطوات التالية:
git clone [email protected]:Legit-Labs/legitify.git
go run main.go analyze ...
gh extension install legit-labs/gh-legitify
gh legitify
يمكنك تشغيل legitify كجزء من عملية CI باستخدام إجراءات GitHub Action المخصصة لـ Legitify:
name: Legitify Analyze
on:
workflow_dispatch:
schedule:
- cron: '0 11 * * 1-5'
jobs:
analyze:
runs-on: ubuntu-latest
steps:
- name: Legitify Action
uses: Legit-Labs/legitify@main
with:
github_token: ${{ secrets.PAT_FOR_LEGITIFY }}
ignore-policies: |
non_admins_can_create_public_repositories
requires_status_checks
تحقق من ملف الإجراء للمعلمات الإضافية والتكوين.
لتعزيز أمان سلسلة توريد البرمجيات لمستخدمي legitify، اعتبارًا من الإصدار v0.1.6، يحتوي كل إصدار من legitify على وثيقة SLSA Level 3 Provenance.
تشير وثيقة الإثبات إلى جميع القطع الأثرية في الإصدار، بالإضافة إلى صورة docker المولدة.
يمكنك استخدام المدقق الرسمي لإطار SLSA للتحقق من الإثبات.
مثال على الاستخدام لمعمارية darwin_arm64 للإصدار v0.1.6:
VERSION=0.1.6
ARCH=darwin_arm64
./slsa-verifier verify-artifact --source-branch main --builder-id 'https://github.com/slsa-framework/slsa-github-generator/.github/workflows/generator_generic_slsa3.yml@refs/tags/v1.2.2' --source-uri "git+https://github.com/Legit-Labs/legitify" --provenance-path multiple.intoto.jsonl ./legitify_${VERSION}_${ARCH}.tar.gz
SCM_TOKEN=<your_token> legitify analyze
بشكل افتراضي، سيتحقق legitify من السياسات ضد جميع مواردك (المنظمات، المستودعات، الأعضاء، الإجراءات). يتم تخطي المستودعات المؤرشفة.
يمكنك التحكم في الموارد التي سيتم تحليلها باستخدام أعلام سطر الأوامر --namespace و --org:
--namespace (-n): سيحلل السياسات المتعلقة بالموارد المحددة--org: سيحدد التحليل لمنظمات GitHub أو مجموعة GitLab المحددة، مع استبعاد المستودعات المؤرشفة--repo: سيحدد التحليل للمستودعات المحددة في GitHub أو مشاريع GitLab--scm: يحدد منصة إدارة الكود المصدري. القيم الممكنة: github أو gitlab. القيمة الافتراضية: github. يرجى ملاحظة: عند التشغيل على GitLab، يجب استخدام --scm gitlab.--enterprise: سيحدد المؤسسات التي يجب تحليلها. يرجى ملاحظة: لتحليل مؤسسة، يجب تقديم معرف المؤسسة (slug).SCM_TOKEN=<your_token> legitify analyze --org org1,org2 --namespace organization,member
الأمر أعلاه سيختبر سياسات المنظمة والأعضاء ضد org1 و org2.
SCM_TOKEN=<your_token> OPENAI_TOKEN=<token> ./legitify gpt-analysis --repo org1/repo1 --org org1
تحليل قائم على GPT-3 للموقف الأمني للمستودع أو المنظمة المقدمة.
ملاحظة: يتم إرسال بيانات المستودع/المنظمة إلى خوادم OpenAI.
الأعلام:
--org: سيحدد التحليل لمنظمات GitHub أو مجموعة GitLab المحددة--repo: سيحدد التحليل للمستودعات المحددة في GitHub أو مشاريع GitLab--scm: يحدد منصة إدارة الكود المصدري. القيم الممكنة: github أو gitlab. القيمة الافتراضية: github.--token: رمز مميز لـ SCM (أو تعيين متغير البيئة SCM_TOKEN)--openai-token: رمز مميز لواجهة OpenAI API (أو تعيين متغير البيئة OPENAI_TOKEN)يجب تقديم إما --org أو --repo أو كليهما.
توليد رمز OpenAI:
يمكنك أيضًا تشغيل legitify كإجراء GitHub Action في سير العمل الخاصة بك، انظر دليل action_examples للحصول على أمثلة عملية.
-t) أو كمتغير بيئة (SCM_TOKEN).
يحتاج PAT إلى النطاقات التالية للتحليل الكامل:admin:org, read:enterprise, admin:org_hook, read:org, repo, read:repo_hook
انظر إنشاء رمز وصول شخصي لمزيد من المعلومات.
الرموز المميزة للوصول الشخصي ذات التفاصيل الدقيقة غير مدعومة حاليًا.
يمكنك تشغيل legitify ضد مثيل GitHub Enterprise Server إذا قمت بتعيين URL نقطة النهاية في متغير البيئة SERVER_URL:
export SERVER_URL="https://github.example.com/"
SCM_TOKEN=<your_token> legitify analyze --org org1,org2 --namespace organization,member
-t) أو كمتغير بيئة (SCM_TOKEN).
يحتاج PAT إلى النطاقات التالية للتحليل الكامل:
read_api, read_user, read_repository, read_registry
انظر إنشاء رمز وصول شخصي لمزيد من المعلومات.--scm gitlab، وللتشغيل ضد GitLab Server، تحتاج أيضًا إلى توفير SERVER_URL:export SERVER_URL="https://gitlab.example.com/"
SCM_TOKEN=<your_token> legitify analyze --namespace organization --scm gitlab
ملاحظة 1: لتجاهل شهادة الخادم غير الصالحة، يرجى تمرير العلم
ignore-invalid-certificate
ملاحظة 2: بالنسبة لحسابات GitLab غير المميزة (non-premium)، سيتم تخطي بعض السياسات (مثل سياسات حماية الفرع)
المساحات في legitify هي الموارد التي يتم جمعها وتطبيق السياسات عليها. حاليًا، يتم دعم المساحات التالية:
organization - سياسات على مستوى منظمة GitHub (أو مجموعة GitLab) (مثل "Two-Factor Authentication Is Not Enforced for the Organization")actions - سياسات إجراءات GitHub على مستوى المنظمة (مثل "GitHub Actions Runs Are Not Limited To Verified Actions")member - سياسات على مستوى المساهم (مثل "Stale Admin Found")repository - سياسات على مستوى مستودع GitHub (أو مشروع GitLab) (مثل "Code Review By At Least Two Reviewers Is Not Enforced"). ملاحظة: يتم تجاهل المستودعات المؤرشفة ما لم يتم تحديدها مباشرة عبر الوسيط --repo.runner_group - سياسات مجموعة المشغلات (مثل "runner can be used by public repositories")بشكل افتراضي، سيقوم legitify بتحليل جميع المساحات. يمكنك تحديدها فقط باستخدام العلم --namespace، ثم قائمة مفصولة بفواصل للمساحات المحددة.
بشكل افتراضي، سيقوم legitify بإخراج النتائج بتنسيق قابل للقراءة البشرية. يشمل ذلك قائمة انتهاكات السياسات مرتبة حسب الخطورة، بالإضافة إلى جدول ملخص يتم فرزه حسب المساحة.
باستخدام العلم --output-format (-f)، يدعم legitify إخراج النتائج بالتنسيقات التالية:
human-readable - نص قابل للقراءة البشرية (افتراضي).json - JSON قياسي.sarif - تنسيق SARIF (معلومات).باستخدام العلم --output-scheme، يدعم legitify إخراج النتائج بأنماط تجميع مختلفة.
ملاحظة: يجب تحديد --output-format=json لإخراج الأنماط غير الافتراضية.
flattened - بدون تجميع؛ قائمة مسطحة للسياسات مع انتهاكاتها (افتراضي).group-by-namespace - تجميع السياسات حسب المساحة.group-by-resource - تجميع السياسات حسب المورد، مثل منظمة/مستودع معين.group-by-severity - تجميع السياسات حسب الخطورة.--output-file - المسار الكامل لملف الإخراج (الافتراضي: لا يوجد ملف إخراج، الطباعة على stdout).--error-file - المسار الكامل لسجلات الأخطاء (الافتراضي: ./error.log).عند الإخراج بتنسيق قابل للقراءة البشرية، يدعم Legitify العلم التقليدي --color[=when]، والذي يحتوي على الخيارات التالية:
auto - مخرجات ملونة إذا كان stdout طرفية، غير ملونة بخلاف ذلك (افتراضي).always - مخرجات ملونة بغض النظر عن وجهة الإخراج.none - مخرجات غير ملونة بغض النظر عن وجهة الإخراج.--failed-only لتصفية الفحوصات التي تم اجتيازها/تخطيها من النتيجة.--ignore-policies-path $PATH وقدم ملفًا يحتوي على السياسات التي تريد تجاهلها لتخطي سياسات محددة.
سياسة واحدة لكل سطر، مثال:
no_conversation_resolution requires_status_checksScorecard هو مشروع مفتوح المصدر من OSSF:
Scorecards هي أداة آلية تقيّم عددًا من المؤشرات الهامة ("فحوصات") المرتبطة بأمان البرمجيات وتعطي كل فحص درجة 0-10. يمكنك استخدام هذه الدرجات لفهم مجالات محددة للتحسين من أجل تعزيز الموقف الأمني لمشروعك. يمكنك أيضًا تقييم المخاطر التي تقدمها التبعيات، واتخاذ قرارات مستنيرة بشأن قبول هذه المخاطر، أو تقييم الحلول البديلة، أو العمل مع القائمين على الصيانة لإجراء تحسينات.
يدعم Legitify تشغيل scorecard لجميع مستودعات المنظمة، مع فرض سياسات الدرجات وعرض النتائج باستخدام العلم --scorecard:
no - لا تقم بتشغيل scorecard (افتراضي).yes - قم بتشغيل scorecard واستخدم سياسة تنبه على كل مستودع بدرجة أقل من 7.0.verbose - قم بتشغيل scorecard، واستخدم سياسة تنبه على كل مستودع بدرجة أقل من 7.0، ودمج مخرجاته في مخرجات Legitify.يدير Legitify فحوصات scorecard التالية:
يأتي Legitify مع مجموعة من السياسات لكل SCM في دليل policies/.
هذه السياسات موثقة هنا.
شكرًا لاهتمامك بالمساهمة في Legitify! نشجع ونقدر أي نوع من المساهمة. إليك بعض الموارد لمساعدتك على البدء:
إذا كانت لديك أسئلة حول Legitify أو تحتاج إلى أي مساعدة في تشغيله، فلا تتردد في التواصل. فريقنا ملتزم بتقديم الدعم وضمان تجربة سلسة.
إذا أعجبك Legitify، ستعشق منصة Legit Security!
فيما يلي جدول مقارنة بين Legitify و Legit:
للاطلاع على Legit، قم بزيارة موقعنا أو احجز عرضًا توضيحيًا مباشرة.
| الفحص | مستودع عام | مستودع خاص |
|---|
| Security-Policy | V | |
| CII-Best-Practices | V | |
| Fuzzing | V | |
| License | V | |
| Signed-Releases | V | |
| Branch-Protection | V | V |
| Code-Review | V | V |
| Contributors | V | V |
| Dangerous-Workflow | V | V |
| Dependency-Update-Tool | V | V |
| Maintained | V | V |
| Pinned-Dependencies | V | V |
| SAST | V | V |
| Token-Permissions | V | V |
| Vulnerabilities | V | V |
| Webhooks | V | V |
| الإمكانية | Legitify | منصة Legit Security |
|---|
| المنصات المدعومة | GitHub GitLab | جميع SCMs الرئيسية (بما في ذلك Azure DevOps، Bitbucket والمزيد) أنظمة CI/CD (مثل Jenkins) سجلات الحزم (مثل JFrog Artifactory) مزودو السحابة (مثل AWS) |
| كشف المخاطر | فقط أخطاء تكوين SCM | أخطاء تكوين SCMs أخطاء تكوين CI أخطاء تكوين CD أخطاء تكوين سجلات الحزم مخاطر خطوط الأنابيب الأسرار IaC الحوادث الأمنية والمزيد... |
| تقرير الامتثال | أفضل ممارسات OSSF SCM | SSDF SLSA SOC2 ISO 27001 FedRAMP والمزيد... |
| كشف الانجراف في السياسات | يمكن اكتشافه بشكل دوري عبر GitHub Action الخاص بـ Legitify | احصل على تنبيهات فورية عند إدخال خطأ في التكوين |
| إدارة أصول SDLC | - | نعم |
| إدارة المشكلات والسياسات | - | نعم |
| السياق من الكود إلى السحابة | - | نعم (معلومات سياقية تتيح تحديد أولويات أكثر ذكاءً) |
| مساحات العمل ومجموعات المنتجات | - | نعم |
| التذاكر والتنبيهات | - | Jira، Slack، والمزيد |
| استيراد المخاطر | - | واجهات برمجة تطبيقات الاستيراد والتكامل مع SAST و SCA وحلول الاختبار الأخرى |
| REST APIs | - | نعم |