Snyk - CLI و Build-Time Tool لإيجاد وإصلاح الثغرات الأمنية المعروفة في التبعيات مفتوحة المصدر
يساعدك Snyk في العثور على الثغرات المعروفة في Node.js npm ، و Ruby و Java ، وتحديدها ومراقبتها ، كلاهما على أساس مخصص وكجزء من نظام CI (Build) الخاص بك.
الوثائق الوثائق
الكاملة متاحة على snyk.io
التثبيت
- تثبيت الأداة المساعدة سنيك باستخدام
npm install -g snyk
. - بمجرد التثبيت ، ستحتاج إلى المصادقة باستخدام حساب Snyk الخاص بك:
snyk auth
CLI
snyk [options] [command] [package]
snyk --help
للحصول على نظرة عامة سريعة على جميع الأوامر أو للحصول على التفاصيل الكاملة على CLI قراءة snyk.io CLI مستندات . وسيطة الحزمة اختيارية. إذا لم يتم تقديم أي حزمة ، فسيقوم سنيك بتشغيل الأمر في مقابل دليل العمل الحالي مما يتيح لك اختبار التطبيقات غير العامة.
المميزات
- اعثر على ثغرات أمنية معروفة عن طريق العمل
snyk test
على مشروع إما كواحد أو كجزء من عملية CI الخاصة بك. - أصلح الثغرات باستخدام
snyk wizard
وsnyk protect
.snyk wizard
يرشدك من خلال البحث عن الثغرات المعروفة في مشروعك وإصلاحها. تشتمل خيارات الإصلاح على تهيئة ملف السياسة الخاص بك لتحديثه ، والتصحيح التلقائي وتجاهل الثغرات الأمنية. (npm فقط)snyk protect
رمزك من نقاط الضعف من خلال تطبيق التصحيحات وقمع نقاط الضعف المحددة بشكل اختياري.
-
snyk monitor
يسجل التنبيه حالة التبعيات وأية ثغرات أمنية على snyk.io بحيث يمكن تنبيهك عند الكشف عن ثغرات أمنية جديدة أو تحديثات / تصحيحات تؤثر على مستودعاتك. - منع إضافة تبعيات جديدة ضعيفة إلى مشروعك من خلال العمل
snyk test
كجزء من CI الخاص بك لاختبارات الفشل عند إضافة تبعيات Node.js أو Ruby الضعيفة.
يتم أيضًا توفير Docker Snyk كمجموعة من صور Docker التي تحمل بيئة تشغيل كل مدير حزم. على سبيل المثال ، ستحمل صورة npm كل الإعداد المطلوب لتشغيله
npm install
في الحاوية قيد التشغيل حاليًا. توجد حاليًا صور لـ npm و Ruby و Maven و Gradle و SBT. يمكن أن تعمل الصور
snyk test
بشكل افتراضي على المشروع المحدد الذي تم تحميله على الحاوية كوحدة تخزين للقراءة / الكتابة ،snyk monitor
وإذاMONITOR
تم تعيين متغير البيئة عند تشغيل حاوية المرسِل. عند التشغيلsnyk monitor
باستخدامGENERATE_REPORT
مجموعة متغير البيئة ، سيتم إنشاء ملف HTML يسمىsnyk_report.html
وملف CSS يسمىsnyk_report.css
. الصورة أيضا يكتب ملف يسمىsnyk-res.json
للاستخدام الداخلي وsnyk-error.log
عن الأخطاء التي يمكن أن ننظر إليها إذا حدث خطأ ما. يمكن استخدام متغيرات البيئة التالية عند تشغيل الحاوية في عامل الميناء:
SNYK_TOKEN
- رمز واجهة برمجة تطبيقات Snyk ، تم الحصول عليه من https://snyk.io/account .USER_ID
- [OPTIONAL] معرف المستخدم الحالي على الجهاز المضيف. إذا لم يتم تقديمها ، فستأخذ معرف المستخدم الخاص بالمستخدم الجاري حاليًا داخل الحاوية. يتم استخدام هذا للبناءات CI مثل Jenkins حيث يتم تشغيلها مع مستخدم غير مميز وتريد السماح للمستخدم بالوصول إلى مجلد المشروع المحمل.MONITOR
- [OPTIONAL] في حالة التعيين ، يخبرنا عن الصورة التي نريد تشغيلهاsnyk monitor
بعد التشغيلsnyk test
.PROJECT_FOLDER
- [OPTIONAL] في حالة الضبط ، سيؤدي هذا إلى إدخال الدليل الموجود داخل dir المشروع المحمّل لتشغيل snyk داخله.ENV_FLAGS
- [OPTIONAL] معلمات بيئة إضافية لتمريرهاsnyk test
عند تشغيل الحاوية.
[snyk-version] - إصدار snyk المثبت في الصورة ، إذا تم حذف الإصدار ، فسيستخدم الإصدار الأحدث. [package-manager] - أحد مديري الحزم المتوفرة (مثل: npm ، mvn ، gradle ، الخ ...).
[package-manager-version] - إصدار مدير الحزم المثبت داخل الصورة.
يرجى الاطلاع على الأمثلة التالية حول كيفية تشغيل Snyk داخل عامل ميناء:
Node.js (npm)
سوف نحتاج إلى تركيب مجلد جذر المشروع عند تشغيل الصورة حتى يتمكن Snyk من الوصول إلى الكود داخل الحاوية. سيتم تركيب مجلد المشروع المضيف
/project
على الحاوية وسيتم استخدامه لقراءة ملف التبعيات وكتابة النتائج الخاصة ببنيات CI. في ما يلي مثال للتشغيل snyk test
وفي snyk monitor
الصورة (مع أحدث إصدار من Snyk) لـ npm:docker run -it
-e "SNYK_TOKEN=<TOKEN>"
-e "USER_ID=1234"
-e "MONITOR=true"
-v "<PROJECT_DIRECTORY>:/project"
snyk/snyk-cli:npm test --org=my-org-name
RubyGems
سوف نحتاج لتركيب مجلد جذر المشروع عند تشغيل الصورة حتى يتمكن Snyk من الوصول إلى الكود داخل الحاوية. سيتم تركيب مجلد المشروع المضيف
/project
على الحاوية وسيتم استخدامه لقراءة ملف التبعيات وكتابة النتائج الخاصة ببنيات CI. إليك مثالاً للتشغيلsnyk test
وفيsnyk monitor
الصورة (مع أحدث إصدار من Snyk) لـ RubyGems:docker run -it
-e "SNYK_TOKEN=<TOKEN>"
-e "USER_ID=1234"
-e "MONITOR=true"
-v "<PROJECT_DIRECTORY>:/project"
snyk/snyk-cli:rubygems test --org=my-org-name
Maven 3.5.4
سوف نحتاج لتركيب مجلد الجذر للمشروع عند تشغيل الصورة بحيث يمكن لـ Snyk الوصول إلى الكود داخل الحاوية وتركيب المجلدات المحلية .m2 و .ivy2. سيتم تركيب مجلد المشروع المضيف
/project
على الحاوية وسيتم استخدامه لقراءة ملف التبعيات وكتابة النتائج الخاصة ببنيات CI. في ما يلي مثال للتشغيلsnyk test
وفيsnyk monitor
الصورة (مع أحدث إصدار من Snyk) لـ Maven:docker run -it
-e "SNYK_TOKEN=<TOKEN>"
-e "USER_ID=1234"
-e "MONITOR=true"
-v "<PROJECT_DIRECTORY>:/project"
-v "/home/user/.m2:/home/node/.m2"
-v "/home/user/.ivy2:/home/node/.ivy2"
snyk/snyk-cli:maven-3.5.4 test --org=my-org-name
SBT 0.13.16 / SBT 1.0.4
سوف نحتاج إلى تركيب مجلد جذر المشروع عند تشغيل الصورة بحيث يمكن لـ Snyk الوصول إلى الكود داخل الحاوية وتشغيل المجلدات المحلية .m2 و .ivy2. سيتم تركيب مجلد المشروع المضيف
/project
على الحاوية وسيتم استخدامه لقراءة ملف التبعيات وكتابة النتائج الخاصة ببنيات CI. فيما يلي أمثلة للتشغيلsnyk test
وفيsnyk monitor
الصورة (مع أحدث إصدار من Snyk) لـ SBT:ملاحظة:
dependency-tree
الوحدة النمطية مطلوبةsnyk
لمعالجة مشاريع Scala. استخدام الإصدار 0.8.2 لـ SBT 0.13.16 والإصدار 0.9.0 للإصدار SBT 1.0.4.docker run -it
-e "SNYK_TOKEN=<TOKEN>"
-e "USER_ID=1234"
-e "MONITOR=true"
-v "<PROJECT_DIRECTORY>:/project"
-v "/home/user/.m2:/home/node/.m2"
-v "/home/user/.ivy2:/home/node/.ivy2"
snyk/snyk-cli:sbt-0.13.16 test --org=my-org-name
docker run -it
-e "SNYK_TOKEN=<TOKEN>"
-e "USER_ID=1234"
-e "MONITOR=true"
-v "<PROJECT_DIRECTORY>:/project"
-v "/home/user/.m2:/home/node/.m2"
-v "/home/user/.ivy2:/home/node/.ivy2"
snyk/snyk-cli:sbt-1.0.4 test --org=my-org-name
Gradle 2.8 / Gradle 4.4
سنحتاج لتركيب مجلد جذر المشروع عند تشغيل الصورة حتى يتمكن Snyk من الوصول إلى الشفرة داخل الحاوية وتركيب المجلدات المحلية .m2 و .ivy2. سيتم تركيب مجلد المشروع المضيف
/project
على الحاوية وسيتم استخدامه لقراءة ملف التبعيات وكتابة النتائج الخاصة ببنيات CI. في ما يلي مثال للتشغيلsnyk test
وفيsnyk monitor
الصورة (مع أحدث إصدار من Snyk) لـ Gradle:docker run -it
-e "SNYK_TOKEN=<TOKEN>"
-e "USER_ID=1234"
-e "MONITOR=true"
-v "<PROJECT_DIRECTORY>:/project"
-v "/home/user/.m2:/home/node/.m2"
-v "/home/user/.ivy2:/home/node/.ivy2"
snyk/snyk-cli:gradle-2.8 test --org=my-org-name
docker run -it
-e "SNYK_TOKEN=<TOKEN>"
-e "USER_ID=1234"
-e "MONITOR=true"
-v "<PROJECT_DIRECTORY>:/project"
-v "/home/user/.m2:/home/node/.m2"
-v "/home/user/.ivy2:/home/node/.ivy2"
snyk/snyk-cli:gradle-4.4 test --org=my-org-name
Commentaires
Enregistrer un commentaire