🐳 نحوه استفاده از Docker برای بررسی امنیت نرم افزار |

7 دقیقه

نرم‌افزار آن‌ها با عملکرد تقریباً اصلی اجرا می‌شود.

این ظروف Docker را راهی عالی برای آزمایش ایمن بسته‌های جدید بدون نصب آن‌ها بر روی فلز بر روی دستگاه شما می‌کند. 19659006] در اینجا برخی از روش هایی که می توانید استفاده کنید

چرا از Docker برای آزمایش نرم افزار استفاده کنید؟ نمی‌خواهید روی دیمون سخت‌افزاری یا سرویس شبکه آزمایش‌نشده‌تان اجرا شود.

برخی حذف‌کننده‌ها همه فایل‌های مرتبط با یک بسته را حذف نمی‌کنند، اما اگر تصمیم بگیرید که برای مدت طولانی از برنامه ای استفاده نخواهید کرد، اگر تصمیم بگیرید که برای مدت طولانی از یک برنامه استفاده نخواهید کرد، دستگاه خود را پر از تنظیمات یتیم رها کنید.

در بدترین حالت، بسته ای که دانلود می کنید ممکن است مخرب یا در خطر باشد. داده‌های آن‌ها را در معرض خطر قرار می‌دهید.

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

اگر متوجه شدید که بسته‌ای برای شما مناسب نیست، آن را با حذف کردن ظرف Docker خود از جعبه شنی «حذف نصب» کنید.

ردی از این بسته در سیستم شما. ub تصویر کانتینر برای بسته انتخابی شما

تصاویر استقرارهای آماده برای استفاده از نرم‌افزارهای خاص را ارائه می‌دهند، شبیه به ISOهای VM که با مجموعه‌ای از بسته‌ها از پیش پیکربندی شده‌اند

بسیاری از پروژه‌های محبوب اکنون تصاویر رسمی Docker را به عنوان بخشی ارائه می‌کنند.

آنها به وضوح در تصویر رسمی Docker Hub مشخص شده اند. شما به دنبال آن هستید اما عضو انجمن منتشر شده است.

ارزش دارد ابتدا آمار دانلود را بررسی کنید تا ببینید آیا دیگران با موفقیت از تصویر استفاده می کنند یا خیر.

همچنین باید مطمئن شوید که تصویر دارای نسخه ای برای نسخه

تصاویر با استفاده از تگ های Docker مانند mongo: 5 برای MongoDB 5 و mongo: 4 برای MongoDB 4، نسخه های مختلف را تشخیص می دهند. گزینه های موجود و آخرین به روز رسانی آنها

با استفاده از تصویر

هنگامی که تصویر را پیدا کردید، ظرفی را از آن اجرا کنید.

برای دستورالعمل های خاص نرم افزار باید به توضیحات تصویر در Docker Hub مراجعه کنید.

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

 docker run -it example-image: latest 

در عوض، تصاویری را اجرا کنید که فرآیندهای پس زمینه را با پرچم -d ارائه می کنند:

 docker run -d مثال-تصویر: آخرین 

دستور docker run یک ظرف را با استفاده از تصویر مشخص شده راه اندازی می کند.

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

اگر تصویری وجود نداشته باشد چه؟ بسته انتخابی شما پایان سفر Docker شما نیست.

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

سپس می‌توانید روال عادی نصب نرم‌افزار را برای قرار دادن آن اجرا کنید در کانتینر

در اینجا مثالی وجود دارد که یک محیط اوبونتو تازه را در Docker راه اندازی می کند:

 docker run -it ubuntu: 20.04 

پرچم -it به این معنی است که شما به پوسته تعاملی در حال اجرا در ترمینال هدایت خواهید شد.

اکنون می‌توانید از apt، curl، wget یا هر مرحله‌ای که برای نصب و آزمایش بسته هدف لازم است استفاده کنید.

 apt update
apt install-package نمونه
example-package --example-flags 

اگر می خواهید این مراحل را در آینده تکرار کنید، یک Dockerfile بنویسید که به شما امکان می دهد تصویر خود را ایجاد کنید:

 FROM ubuntu: 20.04
آپدیت مناسب
apt install-package نمونه
ENTRYPOINT ["example-package"]
CMD [""] 

🐳 معرفی مختصر Dockerfile

تصویر خود را بسازید:

 docker build -t example-package: آخرین. 

اکنون از تصویر خود برای اجرای خودکار یک کانتینری استفاده کنید. بسته اضافه شده به تصویر پایه اوبونتو:

 docker run -it example-package: آخرین --example-flags 

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

از دستور docker commit برای من در حال ایجاد یک تصویر جدید از سیستم فایل کانتینر هستم:

🐳 چگونه می توانم تصویر داکر را با تغییرات جدید به روز کنم؟

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

اگر می‌خواهید به عقب برگردید، از دستور docker run برای شروع یک محفظه دیگر از بسته عکس فوری استفاده کنید: آخرین تصویر.

Cleanup

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

از آنجایی که همه چیز مربوط به نرم افزار فقط در داخل ظرف شما وجود داشت، سیستم فایل میزبان شما بدون تغییر باقی می ماند.

داده های پایدار

یکی از مشکلاتی که ممکن است با آن مواجه شوید Xia زمانی است که می‌خواهید فرآیندهای خود را به حالت تعلیق درآورید و بعداً آنها را از سر بگیرید.

کانتینرهای Docker وضعیت خود را پس از توقف بازنشانی می‌کنند، بنابراین هر تغییری که در سیستم فایل ایجاد کنید، مانند افزودن فایل‌های پیکربندی، از بین می‌رود.

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

برای این کار، از پرچم -v در اجرای docker استفاده کنید.

 docker run -it -v config-volume: / etc. / example-package /conf.d example-package: آخرین 

حجم‌ها بیشتر از کانتینرهای جداگانه عمر می‌کنند، بنابراین می‌توانید فایل‌های خود را با استفاده از همان پرچم‌های -v به یک ظرف جدید بازیابی کنید.

حجم‌ها را با استفاده از docker volume rm حذف کنید.

نتیجه

Docker یک راه سریع و آسان برای آزمایش ایمن نرم افزار بدون آلودگی محیط میزبان است.

به شما امکان می دهد بسته های جدید را قبل از تزریق آنها به سیستم های حساس و سخت افزار خالی آزمایش کنید.

استفاده از Docker به شما امکان می‌دهد نرم‌افزار را قبل از اجرای آن اسکن کنید.

مؤلفه داخلی Docker Scan آسیب‌پذیری‌های بسته‌های داخل یک تصویر را شناسایی می‌کند و به شما ایده‌ای از پیامدهای امنیتی می‌دهد.

از نمونه اسکن داکر استفاده کنید. -package: آخرین برای اسکن تصاویر دانلود شده

همچنین می توانید از Harbor استفاده کنید:

🐳 نحوه استفاده از Harbor برای اسکن تصاویر Docker برای آسیب پذیری ها

را ببینید همچنین: