امنیت

آموزش اسکن امنیتی تصاویر Docker با Anchore

Anchore Engine یک ابزار اسکن منبع باز است که امنیت تصاویر Docker شما را ارزیابی می کند. گزارش Anchore به شما بینش هایی در مورد نسخه های بسته قدیمی و آسیب پذیری های پنهان در وابستگی ها می دهد.در ادامه با آموزش نحوه اسکن امنیتی تصاویر Docker با Anchore از جت تک همراه باشید!



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

آموزش نحوه اسکن امنیتی تصاویر Docker با Anchore

راه اندازی Anchore از نظر تاریخی نیازمند نصب اختصاصی Anchore Engine است که مستقل از محیط ساخت تصویر شما عمل می کند. یک CLI جداگانه به شما امکان می دهد با موتور تعامل داشته باشید.

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

Anchore اکنون اسکن های درون خطی را نیز ارائه می دهد. اینها به شما یک فرمان می دهد تا یک تصویر را اسکن کنید و نتایج را در ترمینال خود دریافت کنید. در این مقاله بر روی این قابلیت تمرکز خواهیم کرد.

اجرای اسکریپت درون خطی

اسکن های درون خطی توسط یک اسکریپت Bash که در سرور Anchore میزبانی شده است ارائه می شود. اسکریپت را در دستگاه خود دانلود کنید و آن را قابل اجرا کنید:

Curl -S Https://Ci-Tools.Anchore.Io/Inline_scan-Latest -O Anchore.Sh Chmod +X Anchore.Sh
آموزش نحوه اسکن امنیتی تصاویر Docker با Anchore-جت تک

اکنون می توانید از اسکریپت درون خطی برای شروع اسکن یک تصویر استفاده کنید:

./Anchore.Sh -R Alpine:latest

اولین اسکن ممکن است کمی طول بکشد. اسکریپت تصویر Anchore Engine Docker را می کشد، یک نمونه Anchore جدید راه اندازی می کند و PostgreSQL و یک نمونه رجیستری Docker را پیکربندی می کند. سپس منتظر می ماند تا Anchore Engine روشن شود.

اسکن امنیتی تصاویر Docker با Anchore-جت تک

پس از روشن شدن موتور، تصویر داکر هدف کشیده و تجزیه و تحلیل می شود. سپس گزارش امنیتی را در ترمینال خود خواهید دید. اسکریپت با پاکسازی محیط و توقف کانتینر Anchore Engine Docker به پایان می رسد.

نتایج اسکن

نتایج اسکن شامل ابرداده‌های مربوط به تصویر و به دنبال آن جدولی از مشکلات پیدا شده است. Anchore تصویر را در برابر سیاست های پیکربندی شده خود تجزیه و تحلیل می کند. مجموعه پیش‌فرض به دنبال آسیب‌پذیری‌های شناخته‌شده در بسته‌های نرم‌افزاری و مشکلات احتمالی Dockerfile مورد استفاده برای ساخت تصویر است.

نتیجه کلی اسکن در Status خط بالای جدول آسیب پذیری ها نشان داده شده است . اگر مشاهده کردید pass، Anchore راضی است که تصویر شما امن و آماده برای استفاده تولید است. fail وسیله ای است که باید عیوب را بررسی کنید و در صورت امکان آنها را برطرف کنید.

هر آسیب‌پذیری یافت شده شامل درجه‌بندی شدت آن از LOWتا است CRITICAL. مشکلات مربوط به شناسه CVE شامل پیوندی برای مشاهده جزئیات در وب سایت MITER است.

تولید فایل های گزارش

در حالی که جدول خروجی پیش‌فرض برای مصرف انسان به خوبی کار می‌کند، Anchore همچنین می‌تواند فایل‌های گزارش JSON را تولید کند که می‌توانید آن‌ها را بایگانی کنید یا به ابزارهای دیگر وارد کنید. -r هنگام اجرای اسکریپت اسکن ، پرچم را اضافه کنید تا این ویژگی فعال شود.

Anchore گزارش ها را anchore-reports در دایرکتوری کاری شما می نویسد . هر اسکن مجموعه‌ای از فایل‌های JSON مربوط به بخش‌های مختلف گزارش، مانند آسیب‌پذیری‌ها، بسته‌های سیستم‌عامل و الزامات خط‌مشی را تولید می‌کند.

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

اسکن آرشیو تصاویر ذخیره شده

Anchore می‌تواند دایرکتوری‌های بایگانی تصاویر Docker و همچنین تصاویر واقعی موجود در رجیستری‌ها را اسکن کند . مجموعه ای از تصاویر Docker را با استفاده از اکسپورت کنید docker save، آنها را در یک فهرست قرار دهید، سپس از -vآرگومان استفاده کنید تا اسکریپت Anchore آن آرشیوها را اسکن کند:

Docker Save My-Image:latest -O Docker-Images/My-Image ./Anchore -V Docker-Images

تهیه فایل Docker Image

اسکریپت درون خطی -dآرگومانی را می پذیرد که به شما امکان می دهد مسیر یک Dockerfile محلی را ارائه دهید. Anchore تصویر ساخته شده و Dockerfile را بررسی می‌کند و امکان شناسایی مشکلات زمان ساخت را می‌دهد که می‌تواند بر وضعیت امنیتی تصویر تأثیر بگذارد.

./anchore.sh my-image:latest -d /dockerfiles/my-image

استفاده از سیاست های سفارشی

Anchore از طریق استفاده از مجموعه سیاست های سفارشی قابل توسعه است. سیاست ها از ترکیبی از “دروازه ها”، “محرک ها” و “اقدامات” ایجاد می شوند. اینها به شما امکان می دهد قوانینی بسازید که تصاویر کانتینر را مطابق با الزامات امنیتی دقیق شما بررسی می کند.

دروازه هر خط مشی یکی از سه عملکرد را ایجاد می کند: «برو»، یک پاس که اجازه می دهد اسکن ادامه یابد، «اخطار»، اجازه می دهد اجرا ادامه یابد اما با یک هشدار، و «توقف»، که نشان می دهد تصویر نباید بیشتر پردازش شود.

خط‌مشی‌ها به‌عنوان «بسته‌هایی» بسته‌بندی می‌شوند که مجموعه‌ای از قوانین را به رجیستری‌ها و تصاویری که برای آنها اعمال می‌شوند ترسیم می‌کنند. -b هنگام اجرای اسکریپت می‌توانید با پاس کردن پرچم، یک بسته سیاست به اسکن خود اضافه کنید :

./anchore.sh -b Policy-bundle.json

این شامل خط‌مشی‌های سفارشی شما می‌شود و به شما اطمینان می‌دهد که تصویر با استانداردهای امنیتی شما مطابقت دارد.

در اینجا یک بسته سیاست ساده وجود دارد که در صورت عدم ارائه Dockerfile به Anchore با استفاده از -dپرچم توضیح داده شده در بالا، یک هشدار منتشر می کند . ارائه Dockerfile مورد استفاده برای ساخت تصویر به Anchore وسیع‌ترین پوشش ممکن را می‌دهد، بنابراین هشدار دادن زمانی که هیچ کدام داده نمی‌شود منطقی است.


{ “action”: “WARN”, “comment”: “No Dockerfile given!”, “gate”: “dockerfile”, “params”: [], “trigger”: “no_dockerfile_provided” }

این خط‌مشی در مورد dockerfile دروازه‌ای اعمال می‌شود که در آن Anchore بررسی می‌کند که آیا Dockerfile شما با بهترین استانداردهای عملی مطابقت دارد یا خیر. Anchore no_dockerfile_provided هنگامی که اسکن در غیاب Dockerfile تصویر آغاز می شود، ماشه را اجرا می کند .

نتیجه:

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

اگرچه Anchore از معماری سرویس گیرنده-سرور استفاده می کند، اما اسکریپت “داخلی” پروژه پیچیدگی نصب را انتزاعی می کند تا بتوانید به سرعت تصاویر محلی را اسکن کنید و گزارش را مستقیماً در ترمینال خود دریافت کنید. اگر به طور منظم از Anchore استفاده می کنید، یا تصاویر را در خطوط CI/CD خود اسکن می کنید، همچنان بهترین کار این است که یک نمونه اختصاصی Anchore Engine را نصب کنید، سپس از CLI برای تهیه گزارش استفاده کنید.

 

 

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

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.

دکمه بازگشت به بالا