أوامر Snyk
أوامر Snyk CLI الشاملة وسير العمل للفحص الأمني عبر المصادر المفتوحة والأكواد والحاويات والبنية التحتية كأكواد.
التثبيت
npm (Node.js)
# تثبيت عام
npm install -g snyk
# تثبيت في المشروع
npm install --save-dev snyk
# التحقق من التثبيت
snyk --version
macOS (Homebrew)
# التثبيت عبر Homebrew
brew install snyk
# تحديث Snyk
brew upgrade snyk
# التحقق من التثبيت
snyk --version
Windows (Scoop)
# التثبيت عبر Scoop
scoop install snyk
# التحقق من التثبيت
snyk --version
الملف الثنائي المستقل
# تحميل CLI المستقل (Linux/macOS)
curl https://static.snyk.io/cli/latest/snyk-linux -o snyk
chmod +x ./snyk
./snyk --version
# أو macOS
curl https://static.snyk.io/cli/latest/snyk-macos -o snyk
chmod +x ./snyk
المصادقة
المصادقة عبر المتصفح
# فتح المتصفح للمصادقة
snyk auth
# الافتراضي: فتح المتصفح وإنشاء رمز مصادقة
snyk auth --token <token>
طرق رمز API
# المصادقة برمز صريح
snyk auth --token <your-api-token>
# تعيين الرمز عبر متغير البيئة
export SNYK_TOKEN=<your-api-token>
snyk test
# التحقق من المصادقة الحالية
snyk config get api
# تعيين المنظمة
snyk config set org=<org-id>
تسجيل الخروج
# مسح بيانات الاعتماد المخزنة
snyk logout
# مسح جميع بيانات الاعتماد
rm ~/.snyk
فحص المصادر المفتوحة (SCA)
الفحص الأساسي
# فحص المشروع الحالي عن الثغرات
snyk test
# فحص مع الحد الأدنى من المخرجات
snyk test --quiet
# فحص مع عرض معلومات تفصيلية
snyk test --verbose
# فحص ملف معين
snyk test --file=package.json
# فحص بجميع مستويات الثغرات
snyk test --severity-threshold=low
تصفية الحدة
# عرض الثغرات الحرجة فقط
snyk test --severity-threshold=critical
# عرض الثغرات الحرجة والعالية
snyk test --severity-threshold=high
# عرض الثغرات الحرجة والعالية والمتوسطة
snyk test --severity-threshold=medium
# عرض الجميع (حرج وعالي ومتوسط ومنخفض)
snyk test --severity-threshold=low
دعم لغات متعددة
# فحص مشاريع npm/Node.js
snyk test
# فحص مشاريع Python
snyk test --file=requirements.txt
# فحص Java (Maven)
snyk test --file=pom.xml
# فحص Java (Gradle)
snyk test --file=build.gradle
# فحص .NET (NuGet)
snyk test --file=packages.config
# فحص Ruby
snyk test --file=Gemfile.lock
# فحص PHP/Composer
snyk test --file=composer.lock
# فحص Go
snyk test --file=go.mod
مراقبة المشاريع
# إنشاء لقطة من الثغرات للمراقبة
snyk monitor
# مراقبة باسم مخصص
snyk monitor --project-name=my-app
# مراقبة منظمة معينة
snyk monitor --org=<org-id>
# مراقبة مع التصنيفات
snyk monitor --tags=production,critical
فحص الأكواد (SAST)
فحص الأكواد الأساسي
# فحص الأكواد عن الثغرات الأمنية
snyk code test
# فحص مع الحد الأدنى من المخرجات
snyk code test --quiet
# فحص مع المخرجات التفصيلية
snyk code test --verbose
# فحص مجلد معين
snyk code test --scan-unmanaged
تصفية حدة الأكواد
# المشاكل الحرجة فقط
snyk code test --severity-threshold=critical
# المشاكل الحرجة والعالية
snyk code test --severity-threshold=high
# جميع المشاكل
snyk code test --severity-threshold=low
فحص الحاويات
فحص الصور
# فحص صورة Docker عن الثغرات
snyk container test <image-name>
# الفحص مع العلامة
snyk container test myapp:latest
# الفحص من السجل
snyk container test docker.io/node:16
# فحص الصورة المحلية حسب المعرف
snyk container test --image=<image-id>
مراقبة الحاويات
# إنشاء لقطة من ثغرات الحاويات
snyk container monitor <image-name>
# مراقبة مع المنظمة
snyk container monitor <image-name> --org=<org-id>
# مراقبة صور متعددة
snyk container monitor myapp:v1.0
snyk container monitor myapp:v1.1
خيارات متقدمة للحاويات
# عرض جميع الثغرات (بما فيها التي لم يتم إصلاحها)
snyk container test <image> --show-vulnerable-paths
# تضمين ثغرات الصورة الأساسية
snyk container test <image> --detect-scan-errors
# الفحص دون التحميل إلى Snyk
snyk container test <image> --skip-unresolved
فحص البنية التحتية كأكواد (IaC)
فحص Terraform
# فحص ملفات Terraform
snyk iac test
# فحص ملف معين
snyk iac test main.tf
# الفحص مع تصفية الحدة
snyk iac test --severity-threshold=high
# الفحص مع الإطار الزمني
snyk iac test --framework=terraform
# توليد تقرير قابل للقراءة من الإنسان
snyk iac test --report
تنسيقات IaC أخرى
# فحص CloudFormation
snyk iac test --framework=cloudformation template.yaml
# فحص بيانات Kubernetes
snyk iac test --framework=k8s deployment.yaml
# فحص قوالب ARM
snyk iac test --framework=arm
# فحص Dockerfile
snyk iac test Dockerfile
# فحص مخططات Helm
snyk iac test --framework=helm chart/
مراقبة IaC
# مراقبة إعدادات IaC
snyk iac describe
# الحصول على معلومات الامتثال
snyk iac describe --framework=terraform
# عرض الإعدادات التفصيلية
snyk iac describe --nested
الإصلاح والمعالجة
إصلاح الثغرات التلقائي
# إصلاح الثغرات تلقائياً
snyk fix
# محاكاة لمعاينة التغييرات
snyk fix --dry-run
# الإصلاح لحدة معينة
snyk fix --severity-threshold=high
# فرض الكتابة فوق التغييرات الموجودة
snyk fix --force
حماية التبعيات
# تطبيق Snyk protect (إضافة رقع أمنية للتبعيات)
snyk protect
# التحقق من تطبيق الحماية
snyk protect --verbose
# إزالة الحماية
snyk protect --uninstall
تجاهل الثغرات
تجاهل الثغرات المحددة
# تجاهل ثغرة بشكل تفاعلي
snyk ignore
# التجاهل مع سبب محدد وتاريخ انتهاء
snyk ignore --id=<vuln-id> --reason=<reason> --expiry=<date>
# مثال: تجاهل لمدة 30 يوم
snyk ignore --id=SNYK-JS-123456 --expiry=2026-04-30
# تعيين تجاهل دائم
snyk ignore --id=SNYK-JS-123456 --permanent
ملفات السياسة
# إنشاء ملف سياسة .snyk
snyk policy --create
# الاختبار مع السياسة
snyk test --policy-path=.snyk
# عرض السياسة
cat .snyk
# تحديث السياسة
snyk ignore --id=SNYK-JS-123456 --reason="False positive"
توليد SBOM
قائمة المكونات البرمجية
# توليد SBOM بصيغة JSON
snyk sbom
# توليد SBOM لصورة Docker
snyk sbom --format=json <image-name>
# الإخراج إلى ملف
snyk sbom > sbom.json
# توليد صيغة SPDX
snyk sbom --format=spdx
# العرض بصيغة جدول
snyk sbom --format=table
تنسيقات الإخراج
إخراج JSON
# الاختبار والإخراج كـ JSON
snyk test --json > results.json
# طباعة JSON بشكل جميل
snyk test --json-file-output=results.json
# فحص الأكواد كـ JSON
snyk code test --json
إخراج SARIF
# توليد صيغة SARIF (لفحص الأكواد على GitHub)
snyk test --sarif > results.sarif
# SARIF لفحص الأكواد
snyk code test --sarif > code-results.sarif
# حاوية SARIF
snyk container test <image> --sarif > container.sarif
تقارير HTML
# توليد تقرير HTML
snyk test --html > report.html
# فتح في المتصفح
snyk test --html > report.html && open report.html
الإعدادات والتكوينات
أوامر التكوين
# عرض الإعدادات الحالية
snyk config show
# تعيين نقطة نهاية API
snyk config set api=https://api.snyk.io
# تعيين المنظمة
snyk config set org=<org-id>
# الحصول على إعداد معين
snyk config get api
# إلغاء التكوين
snyk config unset org
متغيرات البيئة
# تعيين الرمز عبر متغير البيئة
export SNYK_TOKEN=<your-token>
# تعيين المنظمة
export SNYK_ORG=<org-id>
# تعيين نقطة نهاية API
export SNYK_API=https://api.snyk.io
# تعيين شهادة CA مخصصة
export NODE_EXTRA_CA_CERTS=/path/to/ca.crt
# تعطيل التحقق من SSL (استخدم بحذر)
export NODE_TLS_REJECT_UNAUTHORIZED=0
ملف سياسة .snyk
# ملف .snyk لتجاهل الثغرات
version: v1.25.0
ignore:
SNYK-JS-123456:
- '*':
reason: False positive
expires: 2026-04-30
SNYK-PY-789012:
- '*':
reason: Not applicable to our use case
expires: 2026-06-30
patch:
SNYK-JS-111111:
- '*':
patched: '2024-03-15'
التصفية والتنظيم
تصفية الثغرات
# تضمين الثغرات التي لم يتم إصلاحها
snyk test --show-vulnerable-paths
# عرض الثغرات القابلة للإصلاح فقط
snyk test --show-vulnerable-paths=false
# التصفية حسب المشروع
snyk test --project-name=<name>
# التصفية حسب التصنيفات
snyk monitor --tags=team:backend,env:prod
سياق المنظمة
# الاختبار ضمن منظمة محددة
snyk test --org=<org-id>
# تعيين المنظمة الافتراضية
snyk config set org=<org-id>
# عرض معرف المنظمة
snyk org
# قائمة المنظمات
snyk org list
التكامل مع CI/CD
GitHub Actions
# .github/workflows/snyk.yml
name: Snyk Security Scan
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
snyk:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: snyk/actions/setup@master
- env:
SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
run: snyk test --severity-threshold=high
- name: Upload SARIF
uses: github/codeql-action/upload-sarif@v2
with:
sarif_file: results.sarif
GitLab CI
# .gitlab-ci.yml
snyk_scan:
image: snyk/snyk:latest
script:
- snyk auth --token $SNYK_TOKEN
- snyk test --severity-threshold=high --json > results.json
artifacts:
reports:
sast: results.json
Jenkins Pipeline
pipeline {
agent any
environment {
SNYK_TOKEN = credentials('snyk-token')
}
stages {
stage('Snyk Test') {
steps {
sh 'npm install -g snyk'
sh 'snyk auth $SNYK_TOKEN'
sh 'snyk test --severity-threshold=high --json > results.json'
}
}
}
post {
always {
publishHTML target: [
reportDir: '.',
reportFiles: 'results.json',
reportName: 'Snyk Report'
]
}
}
}
مجموعات الأوامر المفيدة
سير عمل الفحص الشامل
# 1. المصادقة
snyk auth
# 2. فحص تبعيات المصادر المفتوحة
snyk test --severity-threshold=high
# 3. فحص الأكواد عن المشاكل الأمنية
snyk code test --severity-threshold=high
# 4. فحص الحاويات
snyk container test myapp:latest
# 5. فحص البنية التحتية كأكواد
snyk iac test terraform/
# 6. توليد SBOM
snyk sbom > sbom.json
# 7. إنشاء لقطة مراقبة
snyk monitor --org=<org-id>
سير عمل CI/CD
# تثبيت التبعيات
npm install
# المصادقة
snyk auth --token $SNYK_TOKEN
# تشغيل جميع الفحوصات مع عتبة صارمة
snyk test --severity-threshold=critical --fail-on=all
snyk code test --severity-threshold=critical
snyk container test $DOCKER_IMAGE --severity-threshold=critical
# توليد التقارير
snyk test --json > sca-results.json
snyk code test --sarif > code-results.sarif
snyk container test $IMAGE --json > container.json
# المراقبة المستمرة
snyk monitor --org=$SNYK_ORG --project-name=$CI_PROJECT_NAME
سير عمل الإصلاح والنشر
# اختبار الحالة الحالية
snyk test
# إصلاح الثغرات تلقائياً
snyk fix
# مراجعة التغييرات
git diff
# الاختبار بعد الإصلاح
snyk test
# الالتزام والدفع
git commit -am "chore: fix security vulnerabilities"
git push
التصحيح ومعالجة الأخطاء
وضع التصحيح
# إخراج مفصل للتصحيح
snyk test --verbose
# وضع التصحيح (تسجيل مفصل جداً)
snyk test --debug
# التحقق من المصادقة
snyk auth --debug
# التحقق من الحزم المثبتة
snyk test --print-deps
المشاكل الشائعة
# مسح الذاكرة المؤقتة
rm -rf ~/.snyk
# فرض إعادة المصادقة
snyk logout && snyk auth
# الاختبار دون تحميل النتائج
snyk test --skip-unresolved
# التحقق من إصدار Snyk CLI
snyk --version
# التحديث إلى أحدث إصدار
npm install -g snyk@latest
ملخص الاختبار
# عرض الملخص فقط
snyk test --quiet
# عد الثغرات
snyk test --json | jq '.vulnerabilities | length'
# الحصول على أعلى حدة
snyk test --json | jq '.metadata.severityHeader'
مرجع متغيرات البيئة
| المتغير | الغرض | مثال |
|---|---|---|
SNYK_TOKEN | رمز المصادقة API | export SNYK_TOKEN=abc123 |
SNYK_ORG | معرف المنظمة الافتراضي | export SNYK_ORG=org-id |
SNYK_API | نقطة نهاية API مخصصة | export SNYK_API=https://custom.snyk.io |
SNYK_INTEGRATION_NAME | معرف التكامل في CI/CD | export SNYK_INTEGRATION_NAME=github-actions |
NODE_EXTRA_CA_CERTS | شهادة CA مخصصة | export NODE_EXTRA_CA_CERTS=/path/ca.crt |
HTTP_PROXY | إعدادات HTTP proxy | export HTTP_PROXY=http://proxy:8080 |
HTTPS_PROXY | إعدادات HTTPS proxy | export HTTPS_PROXY=https://proxy:8080 |
أفضل الممارسات
الأمان
- صادق دائماً برمز API آمن (لا تلتزم بالرموز)
- استخدم
--severity-threshold=criticalفي CI/CD الإنتاجي - حدّث Snyk CLI بانتظام إلى أحدث إصدار
- راجع وافذمّن الإصلاحات التلقائية قبل الدمج
- احفظ ملفات سياسة
.snykتحت التحكم في الإصدار - استخدم سياسات على مستوى المنظمة لضمان الاتساق
- راقب الثغرات بشكل مستمر باستخدام
snyk monitor
الأداء
- استخدم علامة
--quietفي CI/CD لتقليل الإخراج - خزّن التبعيات بين التشغيلات حيث أمكن
- قم بتشغيل فحوصات الحاويات على علامات محددة وليس على الجميع
- استخدم
--skip-unresolvedلتخطي المشاكل التي لا يمكن إصلاحها - صفّ حسب الحدة للتركيز على المشاكل التي يمكن تنفيذها
- فحص المسارات المتأثرة فقط إن أمكن
سير العمل
- تكامل مع فحوصات PR لمنع دمج الأكواد غير الآمنة
- استخدم
snyk fixلأتمتة الإصلاح - راجع قرارات
snyk ignoreقبل الالتزام - استخدم
snyk monitorللمراقبة المستمرة - إعداد تنبيهات للثغرات الجديدة
- توثيق الاستثناءات بالأسباب وتواريخ انتهاء الصلاحية
- مراجعة دورية للثغرات المتجاهلة
الموارد
التوثيق الرسمي
المجتمع والدعم
الأدوات ذات الصلة
- Docker - تكامل فحص الحاويات
- Kubernetes - فحص IaC لـ K8s
- Terraform - أمان البنية التحتية كأكواد
آخر تحديث: 2026-03-30