چگونه می توان اسکنر امنیتی تصویر Anchore Container Image نصب و استفاده کرد؟

موتور لنگر یک ابزار منبع باز برای اسکن و تجزیه و تحلیل تصاویر کانتینر برای آسیب پذیری های امنیتی و مسائل مربوط به خط مشی است. این به عنوان یک تصویر کانتینر Docker در دسترس است که می تواند در یک سکوی ارکسترشن اجرا شود ، یا به عنوان یک نصب مستقل.


این یک ابزار امنیتی مفید است که توسعه دهندگان و تیم های QA را قادر می سازد که در تصویرهایی که از آنها استفاده می کنند ، برای ایجاد برنامه های کاربردی ، آزمایش ، شناسایی و رفع آسیب پذیری را انجام دهند..

در این مقاله ما به نحوه نصب و استفاده از اسکنر آسیب پذیری تصویر Anchore خواهیم پرداخت. بطور کلی چندین روش اجرای مختلف وجود دارد. با این حال ، من به دو مورد بعدی خواهم پرداخت,

  • با استفاده از AnchoreCLI گزینه خط فرمان
  • مبتنی بر رابط کاربری گرافیکی اسکنر تصویر کانتینر کانکس Jenkins افزونه.

ما به شما نحوه نصب ، پیکربندی و راه اندازی موتور ، پیکربندی و استفاده از ابزار خط فرمان AnchoreCLI و همچنین افزونه Jenkins را به شما نشان خواهیم داد. برای هر یک از دو روش یاد می گیرید که چگونه تصاویر را برای اسکن ، انجام اسکن و مشاهده گزارش ها اضافه کنید.

در پایان مقاله ، سه مورد زیر را یاد خواهید گرفت.

  • نصب و پیکربندی موتور لنگر
  • نصب ، پیکربندی و استفاده AnchoreCLI
  • پیکربندی و استفاده افزونه اسکنر تصویر کانتینر Anchore Container که در جنکینز

پیش نیازها

موارد زیر الزامات این آموزش است؛

  • دستگاه محلی یا مجازی با اوبونتو 18.04 و موارد زیر؛
  • داکر
  • Docker-آهنگسازی
  • جنکینز نصب و راه اندازی شده است
  • کاربر سودو

مرحله 1: – دایرکتوری های کاری را تنظیم کرده و پرونده های پیکربندی را بارگیری کنید.

برای پرونده های Anchore خود یک فهرست کار ایجاد کنید. در آن فهرست ، دو زیر شاخه ایجاد می کنید ، یکی برای پیکربندی ، و دیگری برای پایگاه داده.

برای پرونده های Anchore یک فهرست خانه ایجاد کنید

لنگر mkdir

به پوشه جدید بروید و زیرشاخه های پیکربندی و پایگاه داده را ایجاد کنید.

لنگر سی دی

پیکربندی mkdir

mkdir db

فایلهای پیکربندی را بارگیری کنید

پس از آماده شدن دایرکتوری ها ، ما دو پرونده پیکربندی (docker-compose.yaml و config.yaml) را از پروژه Github بارگیری خواهیم کرد..

برای بارگیری docker-compose.yaml

به فهرست خانه لنگرگاه بروید و از دستور استفاده کنید

حلقه https://raw.githubusercontent.com/anchore/anchore-engine/master/scriptts/docker-compose/docker-compose.yaml > docker-compose.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.

تغییر اعتبار موتور لنگر (اختیاری)

از فهرست شاخه ها از دستور استفاده کنید

nano ~ / anchore / config / config.yaml

نام کاربری (مدیر) و رمز عبور (foobar) را پیدا کرده و به مقادیر مورد نظر خود تغییر دهید.

مطبوعات CTRL + ایکس, سپس Y برای نجات و خروج.

با وجود دایرکتوری های کاری و پرونده های پیکربندی موجود ، سیستم آماده نصب موتور Anchore Engine است.

مرحله 2: – موتور Anchore را نصب و راه اندازی کنید

برای نصب و راه اندازی Anchore Engine و بانک اطلاعاتی از نوشتن Docker استفاده خواهید کرد.

از فهرست خانه لنگرگاه ، اجرا کنید.

docker-compose up-d

این به طور خودکار تصویر Anchore را می کشد و سپس به ترتیب موتور و بانک اطلاعاتی Anchore را در خانه و ~ / anchore / database / دایرکتوری ها ایجاد می کند. پس از اتمام ، فرمان موتور Anchore را شروع می کند.

پس از نصب و راه اندازی موفقیت آمیز موتور لنگر ، اکنون می توانید تصاویر را با استفاده از خط فرمان anchore اسکن کنید AnchoreCLI. با این حال ، ابتدا باید همانطور که در شکل زیر مشاهده می کنید ، ابزار خط فرمان AnchoreCLI را نصب کنید.

نصب ، پیکربندی AnchoreCLI

در این مرحله نحوه نصب و پیکربندی آن را یاد خواهید گرفت AnchoreCLI ابزار خط فرمان.

مرحله 3: – نصب AnchoreCLI

در این آموزش ابتدا ابزار python-pip را نصب خواهیم کرد که سپس برای نصب آن استفاده می شود AnchoreCLI از منبع.

برای نصب Python pip. برای به فهرست اصلی Anchore بروید و اجرا کنید

به روز رسانی مناسب سودو
sudo apt-get Python-pip را نصب کنید
sudo pip install – setupools را ارتقا دهید

نصب کنید AnchoreCLI با استفاده از Python-pip

pip نصب anchorecli

این دستور فایل های مربوط به AnchoreCLI را بارگیری و نصب می کند. پس از نصب ، ما اکنون نیاز به تهیه فایل .profile برای استفاده از دستور داریم

منبع ~ /. پروفیلی

برای بررسی اینکه نصب موفقیت آمیز است یا نسخه Anchorecli ، از این دستور استفاده کنید

anchore-cli – چرخش

برای بررسی وضعیت سیستم anchore-CLI ، از دستور استفاده کنید

anchore-cli –url http: // localhost: 8228 / v1 –u admin –p سیستم سیستم فوبار

لطفاً توجه داشته باشید که باید URL موتور Anchore ، نام کاربری و رمز عبور را منتقل کنید.

پارامترهای Anchore Engine را تعریف کنید

به طور پیش فرض ، AnchoreCLI سعی خواهد کرد بدون احراز هویت به موتور Anchore Engine دسترسی پیدا کند. با این حال ، این کار نخواهد کرد ، و شما باید هر دستوری اعتبارنامه موتور Anchore Engine را تهیه کنید.

این شامل انتقال نام کاربری ، گذرواژه و پارامترهای URL با هر فرمان CLI Anchore است. به جای تهیه این موارد ، جایگزین این است که آنها را به عنوان متغیرهای محیطی در قالب زیر تعریف کنید.

برای عبور URL ، را اجرا کنید

ANCHORE_CLI_URL = http: // localhost: 8228 / v1

این URL URL Anchore Engine را به همراه پورت 8228 که از آن استفاده می کند ، تعریف می کند.

نام کاربری و رمزعبور را با استفاده از مقادیر پیش فرض تنظیم کنید. در غیر این صورت ، آنها را با مقادیر جدیدی که تنظیم کرده اید جایگزین کنید مرحله 1.

ANCHORE_CLI_USER = سرپرست

ANCHORE_CLI_PASS = فوبار

موارد فوق پارامترها را فقط برای پوسته فعلی تنظیم می کند. برای تنظیم پوسته فعلی و سایر فرآیندهای شروع شده از آن ، از دستور eksport استفاده می کنیم

صادرات ANCHORE_CLI_URL

صادرات ANCHORE_CLI_USER

صادرات ANCHORE_CLI_PASS

با پارامترهای تعریف شده ، تنظیم AchoreCLI کامل است ، و شما آماده اسکن تصاویر هستید.

مرحله 4: – اضافه کردن و تجزیه و تحلیل تصاویر

اکنون که Anchore Engine در حال کار است و CLI پیکربندی شده است ، شما می آموزید که چگونه می توانید تصاویر را برای موضوعات امنیتی اضافه و تحلیل کنید. در این آموزش دو تصویر را تحلیل خواهیم کرد. -openjdk: 8-alpine با آسیب پذیری و دبیان: آخرین بدون .

تجزیه و تحلیل تصاویر

برای ادامه ، ابتدا باید تصاویر را به موتور اضافه کنیم. برای افزودن تصاویر

تصویر لنگر کلی با اضافه کردن openjdk: 8-jre-alpine

debian تصویر پایدار را اضافه کنید: آخرین

تصویر لنگر cli اضافه کنید docker.io/library/debian:latest

تصاویر بیشتری اضافه کنید

تصویر لنگر کلی با اضافه کردن openjdk: 10-jdk

تصویر لنگر کلی با اضافه کردن openjdk: 11-jdk

پس از افزودن تصویر به موتور 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

اجرا کن

تصویر لنگر cli vuln openjdk: 8-jer-allpine

خروجی

[ایمیل محافظت شده]: ~ / anchore $ anchore-cli تصویر vuln openjdk: 8-jal-all
آسیب پذیری IDPackage رفع شدت CVE Ref 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-ژورنال ، تجزیه و تحلیل نشان می دهد که دارای پنج آسیب پذیری بالا و تعدادی آسیب پذیری متوسط ​​و ناچیز است. (برخی در بالا نشان داده نشده است).

برای مشاهده نتایج آسیب پذیری برای یک دبیان تصویر پایدار: آخرین

دستور را اجرا کنید

anchore-cli تصویر vuln docker.io/library/debian:latest all

خروجی

[ایمیل محافظت شده]: ~ / anchore $ anchore-cli تصویر vuln debian: آخرین همه
آسیب پذیری IDPackage شدت رفع CVE RefsVulnerability URL
CVE-2005-2541 tar-1.30 + dfsg-6 Negligible None https://securance-tracker.debian.org/tracker/CVE-2005-2541
CVE-2019-1010022libc-bin-2.28-10 Negligible None https://securance-tracker.debian.org/tracker/CVE-2019-1010022
CVE-2019-1010022libc6-2.28-10 هیچ کس قابل اغماض نیست https://securance-tracker.debian.org/tracker/CVE-2019-1010022
CVE-2019-1010023libc-bin-2.28-10 Negligible None https://securance-tracker.debian.org/tracker/CVE-2019-1010023
CVE-2019-1010023libc6-2.28-10 هیچ کس قابل اغماض نیست https://securance-tracker.debian.org/tracker/CVE-2019-1010023
CVE-2019-1010024libc-bin-2.28-10 Negligible None https://securance-tracker.debian.org/tracker/CVE-2019-1010024

همانطور که از این گزارش دیده می شود ، نماینده تصویر: آخرین موارد دارای آسیب پذیری های ناچیز است و هیچ گونه اصلاح دیگری ندارد.

برای دیدن نتایج ارزیابی سیاست برای openjdk تصویر ناپایدار: 8-jre-alpine

اجرا کن

anchore-cli ارزیابی بررسی openjdk: 8-jre-alpine

خروجی – نتایج نشان می دهد که شکست وجود دارد

[ایمیل محافظت شده]: ~ / لنگر $ anchore-cli بررسی بررسی openjdk: 8-ژورنال-آلپ
خلاصه عکس: 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 Engine پس از مشاهده نقض خط مشی چگونه پاسخ می دهد ، زمان آن رسیده است که بررسی کنیم که آیا با دیاب تصویر پایدار ما چگونه رفتار می کند: آخرین.

بررسی خط مشی برای debian: آخرین تصویر پایدار

anchore-cli بررسی بررسی 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
اقدام نهایی: هشدار دهید
دلیل اقدام نهایی: Policy_evaluation
وضعیت دروازه TriggerDetail
dockerfileinstructionDocerfile بخشنامه “HEALTHCHECK” یافت نشد ، مطابق با شرایط “not_exists” checkwarn

نتایج نشان می دهد وضعیت Pass و یک اقدام نهایی Warn به دلیل عدم تطابق اطلاعات با بخشنامه Dockerfile. این کار از کار نمی افتد اما ممکن است نیاز به بررسی و رسیدگی به مسئله داشته باشد.

پیکربندی و استفاده از پلاگین اسکنر تصویر Anchore Container در جنکینز

مرحله ششم: – افزونه اسکنر تصویر Anchore Container Image در جنکینز را اضافه و پیکربندی کنید

در این مرحله موتور Anchor Engine را با سرور جنکینز ادغام خواهیم کرد. جنکینز یک سرور با منبع آزاد با جاوا است که می تواند طیف گسترده ای از کارهای تکراری را در چرخه توسعه نرم افزار اتوماسیون کند..

افزونه لنگرگاه در جنکینز موجود است اما به طور پیش فرض نصب نشده است.

با استفاده از یک مرورگر وب به Jenkins وارد شوید

http: // your_server_ip_or_domain: 8080

نام کاربری و رمز عبور را وارد کنید.

قابل اعتماد و متخصص منو جنکینز

پیدا و انتخاب کنید جنکینز را مدیریت کنید

قابل اعتماد و متخصص مدیریت افزونه ها

در برگه موجود, به پایین بروید ابزارهای ساخت و را انتخاب کنید اسکنر تصویر کانتینر Anchore Container

کلیک کنید بر روی بدون راه اندازی مجدد نصب کنید گزینه.

بعد از نصب موفق افزونه Anchore Container Image Scanner, مرحله بعدی پیکربندی اعتبارها است.

برو به جنکینز را انتخاب کنید جنکینز را مدیریت کنید برگه.

باز کن پیکربندی سیستم.

پیدا کردن پیکربندی لنگر.

انتخاب کنید حالت موتور

وارد کنید موتور لنگر جزئیات (URL موتور ، نام کاربری و رمز عبور و پورت 8228 – درگاه پیش فرض موتور).

URL – http: // your_server_IP: 8228 / v1

نام کاربری = مدیر را وارد کنید
اگر آن را وارد کرده اید رمز عبور = foobar یا رمز عبور جدید را وارد کنید مرحله 3 (در بالا)

کلیک صرفه جویی

پلاگین لنگر را پیکربندی کنید

مرحله 8: – اضافه کردن و اسکن تصاویر

کلیک گزینه جدید در داشبورد جنکینز در منوی بالا سمت چپ

با این کار صفحه نمایش با چندین گزینه باز می شود.
نام مورد نظر را برای پروژه آزمایشی خود در قسمت Enter the name name item تایپ کنید.

در این پروژه از ساخت Pipeline استفاده خواهیم کرد.
انتخاب کنید خط لوله و کلیک کنید خوب.

اکنون آماده اسکن تصاویر هستید. در مورد ما ، از تصاویر قبلاً در رجیستری داکر استفاده می کنیم که توسط آن قابل دسترسی است موتور لنگر.

برای این کار ، اسکریپت خط لوله را اضافه خواهید کرد که تصویر را برای اسکن مشخص می کند.

مرحله 9: – خط خط لوله را اضافه کنید

به قسمت Pipeline رفته و اسکریپت را اضافه کنید تا تصویر برای اسکن مشخص شود. ما با openjdk شروع خواهیم کرد: 8-jre-alpine که شامل برخی از آسیب پذیری ها است.

گره {
def imageLine = ‘openjdk: 8-jer-alpine’
نوشتن پرونده پرونده: ‘anchore_images’ ، متن: imageLine ‘
نام لنگر: ‘anchore_images’ ‘
}

کلیک صرفه جویی

مرحله 10: ساخت را اجرا کرده و گزارش های اسکن را مرور کنید

از منوی جنکینز

کلیک اکنون بسازید

این کار مراحل ساخت را شروع می کند که بسته به اندازه تصویر چند دقیقه طول می کشد. پس از اتمام ، یک شماره و یک دکمه رنگی در زیر Build History ظاهر می شود. این یک رنگ قرمز برای Fail یا Blue for Pass خواهد داشت. با کلیک بر روی دکمه نتایج بیشتری نمایش داده می شود.

مرحله 11: – بررسی نتایج

کلیک کنید ساختن # برای مشاهده جزئیات بیشتر
این باز می شود خروجی کنسول پنجره نشانگر عدم موفقیت – گزارش لنگرگاه (FAIL)

گزارش های تفصیلی نشان می دهد که آیا تجزیه و تحلیل دارای نقص یا گذر بوده است و گزارش های متعددی را ارائه می دهد که آسیب پذیری ها ، هشدارها و موارد دیگر را بر اساس پیکربندی نشان می دهد. به طور پیش فرض ، افزونه پیکربندی شده است تا ساخت را خراب کند (متوقف کردن) هر زمان که آسیب پذیری وجود داشته باشد. در زیر تصاویر گزارش های خط مشی و امنیت آورده شده است.

خلاصه ارزیابی سیاست لنگر

در زیر تصویری از نتایج Security برای تصویر آسیب پذیر آورده شده است.

لیست آسیب پذیری ها و قرار گرفتن در معرض (CVE) مشترک

اگر اکنون یک تصویر پایدار را اسکن می کنیم ، debian: آخرین ، بدون آسیب پذیری ، نتایج زیر را می گیریم.

خلاصه ارزیابی سیاست لنگرگاه (پاس)

لیست آسیب پذیریها و قرار گرفتن در معرض (CVE) مشترک 

نتیجه

اسکنر تصویر کانتینر Anchore Container یک ابزار قدرتمند تجزیه و تحلیل تصویر است که طیف گسترده ای از آسیب پذیری ها و مسائل مربوط به خط مشی را در تصاویر 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