ساخت آرگها: راحتی که میتواند امنیت را به خطر بیندازد
آرگومانهای ساخت داکر، ارسال مقادیر پیکربندی را در زمان ساخت آسان میکنند، اما هزینهای دارند که اغلب نادیده گرفته میشود: این آرگومانها در ابردادهها و لایههای تصویر باقی میمانند. توسعهدهندگان اغلب فرض میکنند که این مقادیر پس از ساخت ناپدید میشوند، اما در واقعیت، آرگومانهای ساخت داکر، دستورالعملهای آنها را در تاریخچه تصویر داکر جاسازی میکنند.
⚠️مثال ناامن، فقط برای اهداف آموزشی. در محیط عملیاتی استفاده نشود.
هر کسی که میدود تاریخچه داکر or داکر بازرسی را پیدا خواهد کرد کلید API مقداری که در فراداده تصویر جاسازی شده است. این اتفاق به این دلیل میافتد که دستور arg مربوط به build در Docker commitهر مرحله ساخت را به عنوان یک لایه دائمی در نظر میگیرد.
نسخه امن:
نکته آموزشی: از تزریق رمزها از طریق آرگومانهای ساخت داکر خودداری کنید. استفاده کنید –راز mountهایی که توسط BuildKit برای دادههای حساس ارائه میشوند؛ آنها هرگز در لایهها یا فرادادهها باقی نمیمانند.
چگونه اسرار در لایهها و فرادادهها باقی میمانند
هر دستورالعمل در یک Dockerfile یک لایه تصویر جدید ایجاد میکند. حتی وقتی فایلها را بازنویسی یا حذف میکنید، لایههای قبلی در حافظه پنهان باقی میمانند. به همین دلیل است که رازهای تزریق شده با آرگومانهای ساخت داکر یا آرگومانهای ساخت داکر به طور نامحدود باقی میمانند.
⚠️مثال ناامن، فقط برای اهداف آموزشی. در محیط عملیاتی استفاده نشود.
با استفاده از ARG به این ترتیب توکن را در لایه تصویر جاسازی میکند که از طریق آن قابل مشاهده است بازرسی تصویر داکر یا از حافظه پنهان استخراج شده است. نسخه امن:
نکته آموزشی: در کاربرد آن، مقادیر حساس در تاریخ باقی میمانند. به جای آن، از پایههای مخفی زودگذر برای محافظت از توکنها و اعتبارنامهها استفاده کنید.
اشتباهات رایج در پیکربندی CI/CD Pipelines
In مدرن pipelinesتوسعهدهندگان اغلب اسرار را منتقل میکنند CI/CD محیطهایی که از آرگومانهای داکر یا حافظههای پنهان مشترک استفاده میکنند. این عادت باعث نشت اطلاعات محرمانه به لاگها، اجراکنندهها و حافظههای پنهان رجیستری میشود. با دوندگان مشترک در اقدامات GitHub، GitLab CI، یا جنکینز، این رازها به راحتی میتوانند به مشاغل غیرمرتبط سرایت کنند.
⚠️مثال ناامن، فقط برای اهداف آموزشی. در محیط عملیاتی استفاده نشود.
راز این ماجرا در لاگهای ساخت و ابردادههای تصاویر خلاصه میشود که اصول حداقل امتیاز را نقض میکند. نسخه امن:
نکته آموزشی: اجتناب از –ساخت-arg برای اسرار. در CI/CD، رازها هرگز نباید از طریق متغیرهای محیطی یا گزارشها عبور کنند. همیشه نصبهای راز زودگذر را ترجیح دهید.
بهترین روشها برای جلوگیری از افشای اطلاعات محرمانه
جلوگیری از افشای مخفیانه با اذعان به این نکته آغاز میشود که آرگومانهای ساخت داکر از اساس عمومی هستند. آنها برای پیکربندی (مانند تگهای نسخه یا پرچمهای ویژگی) عالی هستند، اما برای اعتبارنامهها مناسب نیستند.
بهترین روش
- از BuildKit استفاده کنید — راز برای دادههای حساس.
- هرگز اسرار را از طریق ARG یا ENV تعریف نکنید.
- اضافه کردن .NS, اسرار/و پیکربندی/ دایرکتوریها به .dockerignore.
- اعمال ساختهای چند مرحلهای برای ایزوله کردن صحنههای خصوصی.
- پاک کردن حافظههای پنهان (cache) پس از مراحل حساس ساخت.
- اعتبارسنجی متادیتای تصویر با تاریخچه داکر قبل از انتشار.
چک لیست پیشگیرانه کوچک
- حسابرسی تمام فایلهای داکر برای ساخت آرگومانها داکر استفاده
- اعتبارنامهها را با BuildKit جایگزین کنید –راز.
- حصول اطمینان از .dockerignore فایلهای حساس را حذف میکند.
- تصفیه کردن CI/CD متغیرهای محیطی.
- اسکن مخفی خودکار قبل از ارسال تصاویر.
نکته آموزشی: اگر مقداری از آرگومان ساخت داکر عبور کند، دائمی میشود. برای محافظت از دادههای حساس، از mountهای مخفی و مراحل ساخت ایزوله استفاده کنید.
تشخیص استفاده ناامن از آرگومانهای ساخت قبل از استقرار
اسکن خودکار برای شناسایی الگوهای آرگومانهای ساخت پرخطر داکر قبل از اینکه یک تصویر به مرحله تولید برسد، ضروری است. ابزارهایی مانند بی اهمیت, هادولینتو شیگنی میتواند اعتبارنامههای جاسازیشده در Dockerfiles یا لایههای image را تشخیص دهد.
قطعه کد تابعی، به همراه زمینه و محافظ کنترل
این مرحله به عنوان یک کنترل پیشگیرانه عمل میکند و آرگومانهای ساخت ناامن دستورالعملهای داکر را قبل از استقرار مسدود میکند.
نکته آموزشی: اسکن Dockerfile را به عنوان یک الزام ادغام کنید CI/CD مرحله. ابزارهای خودکار به اجرای بهداشت ساخت و ساز پایدار و ایمن کمک میکنند.
چگونه Xygeni در برابر افشاگریهای مخفی زمان ساخت محافظت میکند
شیگنی امنیت اسرار تشخیص تخصصی برای سوءاستفاده از آرگومانهای داکر را فراهم میکند. این ابزار تعاریف ناامن ARG را شناسایی میکند، مقادیر مخفی را در مراحل ساخت ردیابی میکند و اعتبارنامههای باقیمانده در فرادادههای تصویر یا لایههای ذخیرهشده را علامتگذاری میکند. با ادغام با شما CI/CD pipeline، سیاستهای امنیتی مربوط به آرگومانهای ساخت داکر را قبل از ادغام یا انتشار، اعمال میکند.
قطعه کد تابعی، مثال اجرای زمینهای
این شغل را به شغل خود اضافه کنید pipelineمرحله اعتبارسنجی برای حفاظت مداوم.
نکته آموزشی: Xygeni به طور خودکار شیوههای ایمن Docker را اجرا میکند و از افشای اسرار در محیطهای مختلف توسط پیکربندیهای پرخطر زمان ساخت جلوگیری میکند.
نکتهی پایانی: Docker هرگز نباید با آرگومانهای Build Args کار کند
آرگومانهای ساخت داکر یک شمشیر دولبه هستند، برای پیکربندی مناسب و برای اسرار خطرناک. هر مقدار ساخت داکر که تزریق میکنید میتواند در فراداده، تاریخچه تصویر یا حافظههای پنهان باقی بماند.
از سازههای خود با روشهای زیر محافظت کنید:
- استفاده از BuildKit –راز برای اعتبارنامهها.
- جداسازی دادههای حساس در ساختهای چند مرحلهای
- اسکن مقادیر نشتشده قبل از استقرار.
- اجرای سیاستهای امنیتی از طریق Xygeni Code Security.
ساخت شما pipeline فقط به اندازه اسراری که افشا نمیکنید، ایمن است. هر آرگومان ساخت داکر را به عنوان یک مسیر افشای بالقوه در نظر بگیرید و قبل از اینکه مهاجمان آن را پیدا کنند، آن را قفل کنید.





