Snyk - CLI و Build-Time Tool لإيجاد وإصلاح الثغرات الأمنية المعروفة في التبعيات مفتوحة المصدر


يساعدك Snyk في العثور على الثغرات المعروفة في Node.js npm ، و Ruby و Java ، وتحديدها ومراقبتها ، كلاهما على أساس مخصص وكجزء من نظام CI (Build) الخاص بك. 

الوثائق الوثائق
الكاملة متاحة على snyk.io 

التثبيت
  1. تثبيت الأداة المساعدة سنيك باستخدام npm install -g snyk.
  2. بمجرد التثبيت ، ستحتاج إلى المصادقة باستخدام حساب Snyk الخاص بك: snyk auth
لمزيد من التفاصيل حول كيفية المصادقة ، ألق نظرة على قسم مصادقة CLI في وثائق Snyk.

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عند تشغيل الحاوية.
يتم تمييز صور Docker وفقًا لوقت تشغيل مدير الحزم الذي تتضمنه ، إصدار مدير الحزم وإصدار snyk. التنسيق العام للعلامات هو [snyk-version] - [package-manager] - [package-manager-version] أو فقط [package-manager] - [package-manager-version] إذا أردنا استخدام أحدث إصدار من snyk . يرجى الاطلاع على العلامات المتاحة لمعرفة الخيارات المتاحة. 
[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

Posts les plus consultés de ce blog