روابط سريعة
Grype هو ماسح ثغرات مفتوح المصدر يبحث عن نقاط الضعف داخل صور الحاويات وأدلة نظام الملفات. تم تطوير Grype بواسطة Anchore ولكنه يعمل كملف ثنائي مستقل يسهل التعامل معه مقارنة بمحرك Anchore.
تتسلل الثغرات الأمنية المعروفة إلى برامجك عبر حزم أنظمة التشغيل القديمة، وتبعيات لغات البرمجة المخترقة، والصور الأساسية غير الآمنة. إن الفحص النشط للقطع الأثرية الخاصة بك يبقيك على اطلاع بالمشكلات قبل أن يكتشفها الجهات الخبيثة. إليك كيفية استخدام Grype للعثور على المشكلات في الكود والحاويات الخاصة بك.
تثبيت Grype
يتم توزيع Grype كملف ثنائي مُجمَّع مسبقًا في
deb
,
rpm
، مصدر Linux، وتنسيقات Mac. يمكنك الحصول على أحدث إصدار من جيثب ويمكنك تثبيته باستخدام مدير الحزم في نظامك أو عن طريق نسخ الملف الثنائي إلى موقع في مسارك. أو يمكنك استخدام البرنامج النصي للتثبيت لأتمتة العملية:
curl -sSfL https:
تحقق من عمل الملف الثنائي الخاص بك عن طريق تشغيل grype
سيتم عرض الوثائق المتعلقة بالأوامر المتاحة.
عمليات المسح الأساسية
في أبسط أشكاله، يأخذ Grype وسيطة واحدة تحدد صورة الحاوية أو مسار نظام الملفات المراد فحصه. لفحص صورة، قم بتوفير علامة تسجيل صالحة. سيستخدم Grype بيانات اعتماد Docker المتاحة لسحب الصور من Docker Hub والسجلات الخاصة.
grype alpine:latest
يمكنك أيضًا مسح أرشيف الصور الذي تم تصديره من Docker:
grype saved-image.tar
سيقوم Grype بتنزيل قاعدة بيانات الثغرات الأمنية الخاصة به في المرة الأولى التي يتم تشغيله فيها. يبلغ حجم هذه القاعدة حاليًا حوالي 90 ميجابايت. بمجرد توفر قاعدة البيانات، سيقوم Grype بسحب صورة Docker، وفهرسة البرنامج الموجود بداخلها، وتحليل الثغرات الأمنية المعروفة الموجودة في قاعدة البيانات.
يتم عرض النتائج في جدول داخل محطتك الطرفية. تتضمن كل ثغرة أمنية معرف CVE، اسم الحزمة المتأثرة ومستوى خطورتها. عندما يتم تصحيح المشكلة في إصدار لاحق، سترى رقم إصدار التحديث في FIXED-IN
يساعدك هذا في تحديد ما إذا كان من الممكن معالجة الثغرة الأمنية بسهولة من خلال تحديث بسيط لمدير الحزم.
يمكن لـ Grype العمل مع الحزم الخاصة بـ كل الاكثر شعبية توزيعات Linux. كما أنها تدعم Ruby Gems وحزم NPM وYarn وPython Eggs وWheels وPoetry ووحدات Java بتنسيقات JAR وWAR وEAR وJPI وHPI.
مسح أنظمة الملفات
يمكن لبرنامج Grype فحص مسارات نظام الملفات على جهازك. يتيح لك هذا اكتشاف نقاط الضعف في مستودعات التعليمات البرمجية المصدرية قبل إنشاء صورة. لاستخدام هذه الميزة، حدد مسار الدليل باستخدام dir:
مخطط:
grype dir:/example-dir
سيبحث Grype عن الملفات المتوافقة الموجودة ضمن جذر الدليل المحدد. سيتم فهرسة كل ملف يتم العثور عليه وفحصه بحثًا عن الثغرات الأمنية.
تكشف عمليات فحص نظام الملفات عن نفس أنواع الثغرات الأمنية التي تكشف عنها عمليات فحص صور الحاويات. قد يستغرق الفحص بضع دقائق حتى يكتمل إذا كنت تعمل مع شجرة دليل كبيرة.
تصفية الثغرات الأمنية
يتم دعم علامتي تصفية لتحديد نطاق التقرير ليشمل فقط الثغرات الأمنية أو خيارات الحل التي تهمك:
--only-fixed
– إظهار الثغرات الأمنية التي تم تصحيحها في إصدار لاحق من الحزمة المتأثرة فقط.--fail-on high
– الخروج فورًا مع رمز الخطأ عندhigh
تم العثور على ثغرة أمنية على مستوى -. يمكنك استبدال أي مستوى خطأ مدعوم (حرج، مرتفع، متوسط، أو منخفض) بدلاً منhigh
.
تجاهل نقاط الضعف
يمكن تجاهل الثغرات الأمنية لإخفاء النتائج الإيجابية الخاطئة أو المشكلات التي قررت عدم معالجتها، ربما لأنها غير ذات صلة باستخدامك للحزمة.
لتجاهل الثغرة الأمنية، تحتاج إلى إنشاء ملف تكوين Grype مخصص بتنسيق YAML. أضف CVE الخاص بالثغرة الأمنية ضمن المستوى الأعلى ignore
مجال:
ignore:- vulnerability: CVE-2021-12345
مجالات أخرى يتم دعمها أيضًا، مثل هذا البديل لتجاهل جميع المشكلات الناجمة عن حزم NPM:
ignore:- package:
type: npm
احفظ ملف التكوين الخاص بك في .grype.yaml
أو .grype/config.yaml
في دليل العمل الخاص بك. سيتم استخدامه تلقائيًا في المرة التالية التي تقوم فيها بتشغيل فحص Grype. ملف التكوين العالمي ~/.grype.yaml
يتم دعم ذلك أيضًا. سيتم دمج الملف الموجود في دليل العمل الخاص بك مع الملف العالمي في وقت التشغيل.
لن تؤثر الثغرات الأمنية على كود خروج Grype إذا تم تجاهلها. سينقلها تقرير JSON إلى ملف منفصل ignoredMatches
في حين أن تقارير الجدول الطرفي تستبعدها تمامًا. إذا تجاهلت ثغرة أمنية، فتذكر توثيق سبب قبولها حتى يفهم كل مساهم المخاطر.
استخدام SBOMs
يمكن لـ Grype العمل مع SBOMs التي تم إنشاؤها بواسطة Syft، وهو مشروع آخر من Anchore. يقوم Syft بفهرسة صور الحاوية الخاصة بك لإنتاج قائمة بالتبعيات التي تحتوي عليها.
استخدم Syft لإنشاء SBOM لصورتك بتنسيق JSON:
syft alpine:latest -o json > alpine-sbom.json
ثم قم بتشغيل فحص Grype باستخدام SBOM:
grype sbom:/alpine-sbom.json
سيقوم Grype بفحص الصورة المرجعية بحثًا عن نقاط ضعف جديدة ناشئة عن قائمة المواد الخاصة بها. استمر في استخدام Grype مع SBOM لمراقبة المشكلات الناشئة في تبعيات الصور التي قمت بالفعل بمراجعتها وفهرستها.
تخصيص مخرجات Grype
يوفر Grype أربعة تنسيقات إخراج مختلفة يمكنك التبديل بينها باستخدام -o
علم CLI:
table
– الجدول الافتراضي القابل للقراءة بواسطة الإنسان للاستخدام داخل المحطة.json
– تقرير بتنسيق JSON يحتوي على معلومات أكثر شمولاً حول كل ثغرة أمنية، بالإضافة إلى تفاصيل قاعدة بيانات Grype المستخدمة في المسح. ملفات JSON مناسبة للأرشفة والمقارنة على المدى الطويل، أو للاستخدام كقطع أثرية لبناء CI.cyclonedx
– أ تقرير متوافق مع CycloneDX بتنسيق XML جاهز للتغذية في أدوات أخرى تدعم SBOMs وقوائم الثغرات الأمنية.template
– يتيح لك هذا المُنسيق المتقدم إنشاء تقاريرك الخاصة بتنسيقات عشوائية.
ال template
يقبل المُنسّق قالب Go الذي سيتم استخدامه لعرض مخرجات التقرير. لاستخدام هذا المُنسّق، لا تحدده بالاسم – بدلاً من ذلك، مرر المسار إلى الملف الذي يحتوي على قالب Go الخاص بك:
grype alpine:latest -o output-template.tmpl
ينبغي أن يستخدم القالب بناء جملة قالب Go للإشارة إلى المتغيرات التي يوفرها Grype. يمكنك إنشاء أي نوع من تنسيقات الملفات التي تحتاجها، مثل صفحة HTML أو ملف Markdown أو بنية JSON مخصصة. تتضمن مستندات Grype مثال على إنتاج ملف CSV من المتغيرات المتاحة.
قاعدة بيانات الثغرات الأمنية
تخزن قاعدة بيانات الثغرات الأمنية تفاصيل جميع الثغرات الأمنية المعروفة لبرنامج Grype. وبمجرد تنزيلها، سيتم إعادة استخدام النسخة المخزنة مؤقتًا حتى يتوفر تحديث. وعادةً ما لا تكون التفاعلات اليدوية مع قاعدة البيانات ضرورية.
في بعض المواقف، قد تحتاج إلى فرض تنزيل قاعدة البيانات. قد يكون هذا بسبب قيامك بإعداد خادم معزول مسبقًا قبل تشغيل الفحص. استخدم grype db check
و grype db update
أوامر للتحقق من وجود إصدار أحدث من قاعدة البيانات وتنزيله.
بمجرد توفر قاعدة البيانات، ستعمل عمليات الفحص أثناء عدم اتصال نظامك بالإنترنت. يمكنك تعطيل عمليات فحص تحديث قاعدة البيانات التلقائية في Grype من خلال ضبط GRYPE_DB_AUTO_UPDATE
متغير البيئة ل false
في قوقعتك.
ملخص
ينبهك Grype إلى الثغرات الأمنية داخل حاوياتك وعلى نظام الملفات لديك. وباعتباره ملفًا ثنائيًا مستقلًا في واجهة سطر الأوامر، فمن الأسهل البدء به مقارنة بتثبيت Anchore بالكامل.
إذا كنت تتساءل عن الخيار الذي يجب عليك اختياره، فإن قيمة Anchore تكمن في إمكانية التوسع وخيارات التكوين المتقدمة. باستخدام Anchore Engine، يمكنك تحديد مجموعات السياسات الخاصة بك بناءً على البوابات والمحفزات والإجراءات. تتيح لك هذه الخيارات تخصيص عمليات المسح بدقة لتناسب بيئتك المحددة. يوفر Grype تجربة أكثر انسيابية عندما تريد فقط قائمة بالثغرات الأمنية المعروفة في صورتك.
أياً كان اختيارك، فإن تبني شكل من أشكال المسح النشط للثغرات الأمنية سيبقيك على اطلاع دائم بنقاط الضعف في سلسلة توريد البرامج الخاصة بك. للحصول على نهج متكامل تمامًا، استخدم Grype كجزء من خط أنابيب CI الخاص بك حتى يتم تنبيهك بالثغرات الأمنية الجديدة أثناء تنفيذ التعليمات البرمجية.