كيفية تثبيت واستخدام ماسح أمان صورة الحاويات؟

ال محرك انكور هي أداة مفتوحة المصدر لفحص صور الحاويات وتحليلها بحثًا عن الثغرات الأمنية ومشكلات السياسة. وهي متاحة كصورة حاوية Docker يمكن تشغيلها داخل منصة التزامن ، أو كتثبيت مستقل.


هذه أداة أمان مفيدة تمكّن المطورين وفرق ضمان الجودة من اختبار الثغرات الموجودة في الصور التي يستخدمونها في إنشاء التطبيقات وتحديدها ومعالجتها.

في هذه المقالة ، سنلقي نظرة على كيفية تثبيت واستخدام الماسح الضوئي لصورة ثغرة Anchore. بشكل عام ، هناك العديد من طرق التنفيذ. ومع ذلك ، سوف أركز على الاثنين التاليين,

  • باستخدام AnchoreCLI خيار سطر الأوامر
  • القائم على واجهة المستخدم الرسومية Jenkins Anchore Container Image Scanner توصيل في.

سنوضح لك كيفية تثبيت المحرك ، وتكوينه ، وبدء تشغيله ، وتكوين واستخدام أداة سطر الأوامر AnchoreCLI بالإضافة إلى البرنامج المساعد Jenkins. بالنسبة لكل طريقة من الطريقتين ، ستتعلم كيفية إضافة الصور لمسحها وإجراء المسح وعرض التقارير.

في نهاية المقال ، ستتعلم الأشياء الثلاثة التالية.

  • تثبيت وتكوين محرك انكور
  • التثبيت والتكوين والاستخدام AnchoreCLI
  • تكوين واستخدام البرنامج المساعد الماسح حاوية صورة الماسح في جنكينز

المتطلبات الأساسية

فيما يلي متطلبات هذا البرنامج التعليمي:

  • جهاز محلي أو افتراضي مع Ubuntu 18.04 وما يلي ؛
  • عامل ميناء
  • إنشاء عامل الميناء
  • تركيب وتشغيل Jenkins
  • مستخدم sudo

الخطوة 1: – إعداد أدلة العمل وتنزيل ملفات التكوين.

قم بإنشاء دليل عمل لملفات Anchore الخاصة بك. داخل هذا الدليل ، ستنشئ دليلين فرعيين ، أحدهما للتهيئة والآخر لقاعدة البيانات.

إنشاء دليل رئيسي لملفات الارتساء

مخدر مرسى

انتقل إلى الدليل الجديد وأنشئ الدلائل الفرعية للتكوين وقاعدة البيانات.

مؤتمر نزع السلاح مرساة

تكوين mkdir

مقدير ديسيبل

قم بتنزيل ملفات التكوين

بمجرد أن يصبح الدليل جاهزًا ، سنقوم بتنزيل ملفي تكوين (docker-compose.yaml و config.yaml) من مشروع Github.

لتنزيل docker-compose.yaml

انتقل إلى دليل مرساة الصفحة الرئيسية واستخدم الأمر

تجعيد الشعر https://raw.githubusercontent.com/anchore/anchore-engine/master/scripts/docker-compose/docker-compose.yaml > إرساء-إنشاء. yaml

ثم قم بتنزيل config.yaml إلى الدليل ~ / anchore / config

curl https://raw.githubusercontent.com/anchore/anchore-engine/master/scripts/docker-compose/config.yaml -o ~ / anchore / config / config.yaml

ملف config.yaml هو ملف تكوين بالإعدادات الأساسية التي تتطلبها خدمة محرك الارتساء. يحتوي على العديد من المعلمات ، بما في ذلك الإعدادات الافتراضية ومستوى السجل ومنفذ الاستماع واسم المستخدم وكلمة المرور وغيرها من الميزات التي يمكنك تعديلها لتلبية متطلبات محددة.

من الممارسات الأمنية الجيدة تغيير كلمة المرور ، ويمكنك القيام بذلك عن طريق تحرير ملف config.yaml. ومع ذلك ، في هذا البرنامج التعليمي ، سنستخدم الإعدادات الافتراضية.

لمتابعة بيانات الاعتماد الافتراضية ، (اسم المستخدم – المشرف وكلمة المرور – foobar) ، انتقل إلى الخطوة 2.

تغيير بيانات اعتماد Anchore Engine (اختياري)

من دليل الربط استخدم الأمر

nano ~ / anchore / config / config.yaml

حدد اسم المستخدم (المشرف) وكلمة المرور (foobar) وقم بتغيير قيمك المفضلة.

صحافة CTRL + X, ثم ص للحفظ والخروج.

مع وجود أدلة العمل وملفات التكوين في مكانها ، يكون النظام جاهزًا لتثبيت محرك Anchore.

الخطوة 2: – تثبيت وبدء تشغيل محرك التثبيت

ستستخدم Docker لإنشاء وتركيب مشغل Anchore وقاعدة البيانات.

من الدليل الرئيسي للمرور ، قم بتشغيل.

إنشاء عامل الميناء -d

سيؤدي هذا إلى سحب صورة Anchore تلقائيًا ثم إنشاء محرك Anchore وقاعدة البيانات في المنزل و ~ / anchore / database / الدلائل على التوالي. عند الانتهاء ، سيبدأ الأمر محرك الارتساء.

بعد تثبيت محرك الارتساء وبدء تشغيله بنجاح ، يمكنك الآن مسح الصور باستخدام سطر أوامر الارتساء AnchoreCLI. ومع ذلك ، تحتاج أولاً إلى تثبيت الأداة المساعدة لسطر الأوامر AnchoreCLI ، كما هو موضح أدناه.

تثبيت وتكوين AnchoreCLI

في هذه الخطوة ، ستتعلم كيفية تثبيت وتكوين AnchoreCLI أداة سطر الأوامر.

الخطوة 3: – تثبيت AnchoreCLI

في هذا البرنامج التعليمي ، سنقوم أولاً بتثبيت أداة python-pip ، والتي ستستخدم بعد ذلك لتثبيت AnchoreCLI من المصدر.

لتثبيت بايثون بايب. إلى دليل الصفحة الرئيسية للمرور وتشغيله

sudo apt-get update
sudo apt-get تثبيت بيثون-بيب
sudo pip install – أدوات إعداد الترقية

تحميل هذا AnchoreCLI باستخدام python-pip

نقطة تثبيت مرساة

سيقوم هذا الأمر بتنزيل وتثبيت ملفات AnchoreCLI. بعد التثبيت ، نحتاج الآن إلى مصدر ملف .profile لاستخدام الأمر

مصدر ~ /. profile

للتحقق من نجاح التثبيت وإصدار Anchorecli ، استخدم الأمر

مرساة cli – نسخة

للتحقق من حالة نظام anchore-CLI ، استخدم الأمر

anchore-cli –url http: // localhost: 8228 / v1 –u admin –p foobar system status

يرجى ملاحظة أنه يجب عليك تمرير عنوان URL لمحرك Anchore واسم المستخدم وكلمة المرور.

تحديد معلمات محرك الربط

بشكل افتراضي ، سيحاول AnchoreCLI الوصول إلى Anchore Engine بدون مصادقة. ومع ذلك ، لن يعمل هذا ، وتحتاج إلى توفير بيانات اعتماد Anchore Engine مع كل أمر.

يتضمن هذا تمرير معلمات اسم المستخدم وكلمة المرور وعنوان URL مع كل أمر Anchore CLI. وبدلاً من تقديمها في كل مرة ، يكون البديل هو تعريفها كمتغيرات بيئية بالصيغة التالية.

لتمرير URL ، قم بتشغيل

ANCHORE_CLI_URL = http: // localhost: 8228 / v1

يحدد هذا عنوان URL لمحرك Anchore مع المنفذ 8228 ، الذي يستخدمه.

تعيين اسم المستخدم وكلمة المرور باستخدام القيم الافتراضية ؛ وإلا ، استبدلها بالقيم الجديدة التي حددتها الخطوة 1.

ANCHORE_CLI_USER = المشرف

ANCHORE_CLI_PASS = foobar

ما سبق يعين المعلمات فقط للغلاف الحالي. لتعيين shell الحالي والعمليات الأخرى التي تبدأ منه ، نستخدم أمر التصدير

تصدير ANCHORE_CLI_URL

تصدير ANCHORE_CLI_USER

تصدير ANCHORE_CLI_PASS

مع تحديد المعلمات ، اكتمل إعداد AchoreCLI ، وأنت على استعداد لمسح الصور ضوئيًا.

الخطوة 4: – إضافة وتحليل الصور

الآن بعد أن تم تشغيل Anchore Engine وتهيئة CLI ، ستتعلم كيفية إضافة الصور وتحليلها لمشكلات الأمان. في هذا البرنامج التعليمي ، سنقوم بتحليل صورتين. -openjdk: 8-jre-alpine مع نقاط الضعف وديبيان: الأحدث بدون .

تحليل الصور

للمتابعة ، نحتاج أولاً إلى إضافة الصور إلى المحرك. لإضافة الصور

صورة anchore-cli إضافة openjdk: 8-jre-alpine

إضافة ديبيان صورة ثابتة: الأحدث

صورة anchore-cli أضف docker.io/library/debian:latest

أضف المزيد من الصور

صورة anchore-cli add openjdk: 10-jdk

صورة anchore-cli add openjdk: 11-jdk

بعد إضافة صورة إلى Anchore Engine ، يبدأ التحليل على الفور. إذا كان هناك العديد من الصور التي تم تحميلها ، يتم وضعها في قائمة الانتظار وتحليلها واحدة تلو الأخرى. يمكنك التحقق من التقدم والاطلاع على قائمة الصور المحملة مع حالة تحليلها.

لرؤية القائمة ، قم بتشغيل الأمر

قائمة صور مرساة cli

انتاج |

[البريد الإلكتروني محمي]: ~ / anchore $ قائمة صور anchore-cli
صورة كاملة لتحليل ملخص الحالة
docker.io/openjdk:10-jdk sha256: 923d074ef1f4f0dceef68d9bad8be19c918d9ca8180a26b037e00576f24c2cb4analyzed
docker.io/openjdk:11-jdk sha256: 9923c0853475007397ed5c91438c12262476d99372d4cd4d7d44d05e9af5c077analyzed
docker.io/openjdk:8-jre-alpine sha256: b2ad93b079b1495488cc01375de799c402d45086015a120c105ea00e1be0fd52analyzed

اعتمادًا على عدد الصور والحجم والوقت المنقضي بعد إضافتها ، سيتم تحليلها لأولئك المكتملين ، والتحليل لمن هم قيد التقدم ولن يتم تحليلها للصور المدرجة في قائمة الانتظار.

الخطوة 5: – استرجاع وعرض نتائج التحليل

بمجرد اكتمال التحليل ، يمكنك التحقق من النتائج والاطلاع على نتائج عمليات فحص الثغرات الأمنية وفحوصات السياسة والمشكلات الأخرى التي حددها المحرك.

للتحقق من نتائج مسح الثغرات الأمنية على openjdk: صورة ضعيفة لـ 8-jre-alpine

يركض

anchore-cli image vuln openjdk: 8-jre-alpine all

انتاج |

[البريد الإلكتروني محمي]: ~ / anchore $ anchore-cli image vuln openjdk: 8-jre-alpine all
الثغرات IDPackage الخطورة إصلاح CVE يحيل URL الضعف
CVE-2018-1000654 libtasn1-4.13-r0 High 4.14-r0 http://cve.mitre.org/cgi-bin/cvename.cgi؟name=CVE-2018-1000654
CVE-2019-12900 libbz2-1.0.6-r6 High 1.0.6-r7 http://cve.mitre.org/cgi-bin/cvename.cgi؟name=CVE-2019-12900
CVE-2019-14697 musl-1.1.20-r4 High 1.1.20-r5 http://cve.mitre.org/cgi-bin/cvename.cgi؟name=CVE-2019-14697
CVE-2019-14697 musl-utils-1.1.20-r4 High 1.1.20-r5 http://cve.mitre.org/cgi-bin/cvename.cgi؟name=CVE-2019-14697
CVE-2019-8457 sqlite-libs-3.26.0-r3 High 3.28.0-r0 http://cve.mitre.org/cgi-bin/cvename.cgi؟name=CVE-2019-8457
CVE-2018-14498 libjpeg-turbo-1.5.3-r4 Medium 1.5.3-r5 http://cve.mitre.org/cgi-bin/cvename.cgi؟name=CVE-2018-14498

يعرض التقرير معرف CVE ، الحزمة المعرضة للخطر ، الخطورة ، وما إذا كان هناك إصلاح أم لا. بالنسبة لصورنا openjdk: 8-jre-alpine ، يظهر التحليل أن لديها خمس نقاط ضعف عالية وعددًا كبيرًا من الثغرات المتوسطة والمهملة. (بعضها غير موضح أعلاه).

لعرض نتائج الثغرات للحصول على صورة ثابتة دبيان: الأحدث

قم بتشغيل الأمر

anchore-cli image vuln docker.io/library/debian:latest all

انتاج |

[البريد الإلكتروني محمي]: ~ / anchore $ anchore-cli image vuln debian: أحدث الكل
الثغرة الأمنية IDPackage Severity Fix CVE RefsVulnerability URL
CVE-2005-2541 tar-1.30 + dfsg-6 لا يذكر أي شيء https://security-tracker.debian.org/tracker/CVE-2005-2541
CVE-2019-1010022libc-bin-2.28-10 لا يكاد يذكر https://security-tracker.debian.org/tracker/CVE-2019-1010022
CVE-2019-1010022libc6-2.28-10 لا يذكر أي شيء https://security-tracker.debian.org/tracker/CVE-2019-1010022
CVE-2019-1010023libc-bin-2.28-10 لا يكاد يذكر https://security-tracker.debian.org/tracker/CVE-2019-1010023
CVE-2019-1010023libc6-2.28-10 لا يذكر أي شيء https://security-tracker.debian.org/tracker/CVE-2019-1010023
CVE-2019-1010024libc-bin-2.28-10 لا يكاد يذكر https://security-tracker.debian.org/tracker/CVE-2019-1010024

كما يتبين من التقرير ، فإن الصورة debian: الأحدث لديها نقاط ضعف لا تذكر ولا إصلاحات.

لمشاهدة نتائج تقييم السياسة للصورة غير المستقرة openjdk: 8-jre-alpine

يركض

anchore-cli تقييم check openjdk: 8-jre-alpine

الإخراج – تظهر النتائج فشل

[البريد الإلكتروني محمي]: ~ / anchore $ anchore-cli تقييم الشيك openjdk: 8-jre-alpine
ملخص الصورة: sha256: b2ad93b079b1495488cc01375de799c402d45086015a120c105ea00e1be0fd52
العلامة الكاملة: docker.io/openjdk:8-jre-alpine
الحالة: فشل
آخر تقييم: 2019-09-20T12: 03: 32Z
معرف السياسة: 2c53a13c-1765-11e8-82ef-23527761d060

الصورة openjdk: 8-jre-alpine تنتهك معرف السياسة المحدد (معرف السياسة: 2c53a13c-1765-11e8-82ef-23527761d060) وبالتالي تُرجع حالة الفشل.

الآن بعد أن رأينا كيف يستجيب محرك Anchore بعد اكتشاف انتهاك السياسة ، فقد حان الوقت للتحقق مما إذا كان سلوكه مستقرًا مع صورة دبيان الثابتة: الأحدث.

التحقق من سياسة دبيان: أحدث صورة مستقرة

anchore-cli تقييم check docker.io/library/debian:latest –detail

[البريد الإلكتروني محمي]: ~ / anchore $ anchore-cli تقييم الشيكات docker.io/library/debian:latest –detail
ملخص الصورة: sha256: d3351d5bb795302c8207de4db9e0b6eb23bcbfd9cae5a90b89ca01f49d0f792d
علامة كاملة: docker.io/library/debian:latest
رقم الصورة: c2c03a296d2329a4f3ab72a7bf38b78a8a80108204d326b0139d6af700e152d1
الحالة: تمرير
آخر تقييم: 2019-09-20T12: 00: 06Z
معرف السياسة: 2c53a13c-1765-11e8-82ef-23527761d060
الإجراء النهائي: تحذير
سبب الإجراء النهائي: تقييم السياسة
مشغل البوابة تفاصيل الحالة
لم يتم العثور على توجيه ملف الخزانة “HEALTHCHECK” ، تطابق حالة “not_exists”

تُظهر النتائج حالة مرور وإجراء نهائي للتحذير بسبب عدم تطابق المعلومات مع توجيه ملف Dockerfile. هذا لا يفشل ولكن قد يتطلب التحقق من المشكلة ومعالجتها.

تكوين واستخدام البرنامج المساعد الماسح لصور الحاويات في جينكينز

الخطوة 6: – إضافة وتكوين البرنامج المساعد الماسح لصور الحاويات في مرساة جينكينز

في هذه الخطوة ، سوف ندمج محرك Anchor مع خادم Jenkins. Jenkins هو خادم مفتوح المصدر يعتمد على جافا لأتمتة مجموعة واسعة من المهام المتكررة في دورة تطوير البرمجيات.

ال البرنامج المساعد مرساة متاح في Jenkins ولكن غير مثبت افتراضيًا.

سجّل الدخول إلى Jenkins باستخدام متصفح الويب

http: // your_server_ip_or_domain: 8080

أدخل اسم المستخدم وكلمة المرور.

اذهب إلى قائمة جنكينز

حدد موقع وحدد إدارة جنكينز

اذهب إلى إدارة الإضافات

على ال علامة التبويب المتاحة, قم بالتمرير لأسفل إلى أدوات البناء وحدد الماسح صورة حاوية الماسح

انقر على التثبيت بدون إعادة تشغيل اختيار.

بعد التثبيت الناجح لل البرنامج المساعد الماسح لصورة حاوية, الخطوة التالية هي تكوين أوراق الاعتماد.

انتقل إلى جنكينز القائمة وحدد إدارة جنكينز التبويب.

افتح تكوين النظام.

حدد موقع تكوين مرساة.

تحديد وضع المحرك

دخول محرك انكور التفاصيل (عنوان URL للمحرك واسم المستخدم وكلمة المرور والمنفذ 8228 – المنفذ الافتراضي للمحرك).

URL – http: // your_server_IP: 8228 / v1

أدخل اسم المستخدم = admin
أدخل كلمة المرور = foobar أو كلمة المرور الجديدة إذا قمت بتغييرها الخطوه 3 (في الاعلى)

انقر حفظ

تكوين البرنامج المساعد مرساة

الخطوة 8: – إضافة صور ومسح ضوئي

انقر عنصر جديد في لوحة تحكم Jenkins في القائمة العلوية اليسرى

سيؤدي هذا إلى فتح شاشة بها العديد من الخيارات.
اكتب الاسم المطلوب لمشروع الاختبار الخاص بك في حقل أدخل اسم العنصر.

في هذا المشروع ، سنستخدم بناء خط الأنابيب.
حدد خط انابيب وانقر حسنا.

أنت الآن جاهز لمسح الصور. في حالتنا ، سنستخدم الصور الموجودة بالفعل في سجل عامل الميناء الذي يمكن الوصول إليه بواسطة محرك انكور.

للقيام بذلك ، ستضيف البرنامج النصي لخط الأنابيب الذي سيحدد الصورة لمسحها.

الخطوة 9: – إضافة البرنامج النصي لخط الأنابيب

قم بالتمرير لأسفل إلى قسم خط الأنابيب وأضف البرنامج النصي لتحديد الصورة المراد مسحها ضوئيًا. سنبدأ مع openjdk: 8-jre-alpine الذي يحتوي على بعض الثغرات الأمنية.

العقدة {
def imageLine = ‘openjdk: 8-jre-alpine’`
ملف writeFile: “anchore_images” ، نص: imageLine`
اسم المرساة: “anchore_images”
}}

انقر حفظ

الخطوة 10: – قم بتشغيل الإنشاء ومراجعة تقارير المسح

من قائمة جنكينز

انقر ابني الآن

سيؤدي ذلك إلى بدء عملية البناء ، والتي تستغرق بضع دقائق حسب حجم الصورة. بعد الانتهاء ، سيظهر رقم وزر ملون أسفل تاريخ البناء. سيكون هذا باللون الأحمر لـ Fail أو Blue for Pass. سيؤدي النقر فوق الزر إلى عرض المزيد من النتائج.

الخطوة 11: – مراجعة النتائج

انقر فوق بناء # لعرض المزيد من التفاصيل
هذا يفتح إخراج وحدة التحكم نافذة تشير إلى فشل – تقرير الارتساء (FAIL)

تشير التقارير التفصيلية إلى ما إذا كان التحليل فاشلًا أو تمريرة ويوفر العديد من التقارير التي توضح نقاط الضعف والتحذيرات وغيرها بناءً على التكوين. بشكل افتراضي ، يتم تكوين المكون الإضافي لفشل البناء (قف) كلما كانت هناك نقاط ضعف. فيما يلي لقطات شاشة لتقارير السياسة والأمان.

ملخص تقييم سياسة المرسى

فيما يلي لقطة شاشة لنتائج الأمان للصورة الضعيفة.

قائمة نقاط الضعف والتعرض الشائعة (CVE)

إذا قمنا الآن بمسح صورة مستقرة ، ديبيان: الأحدث ، مع عدم وجود ثغرات ، نحصل على النتائج أدناه.

ملخص تقييم سياسة مرسى (تمرير)

تصريح قائمة نقاط الضعف والتعرض الشائعة (CVE) 

استنتاج

الماسح الضوئي لصور الحاوية Anchore هو أداة قوية لتحليل الصور تحدد مجموعة واسعة من نقاط الضعف وقضايا السياسة في صور Docker. لديها العديد من خيارات التخصيص ويمكن تكوينها حول كيفية الاستجابة عند اكتشاف المشكلات أثناء التحليل. أحدها هو كسر البناء عندما يواجه المحرك ثغرة شديدة.

إذا كنت تتطلع إلى بناء حياتك المهنية في DevSecOps ، فراجع هذا بالطبع Udemy.

العلامات:

  • المصدر المفتوح

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map