اگر شما فکر می کنید docker-compose.yml فقط چسب زیرساخت است، دوباره فکر کنید. این فایلها اغلب به طور غیرعمدی به محل ذخیرهسازی اسرار، اعتبارنامههای هاردکد شده، توکنهای API و متغیرهای محیطی تبدیل میشوند که راه خود را به کنترل نسخه پیدا میکنند. پس از همگامسازی با GitHub یا هر مخزن دادهای، این اسرار میتوانند برای همیشه در آنجا باقی بمانند. commit تاریخ.
توسعهدهندگان اغلب با docker-compose.yml به عنوان یک فایل غیر حساس، با نادیده گرفتن اینکه چگونه میتواند به عنوان یک بردار حملهیک نشت کوچک در اینجا میتواند به معنای دسترسی به سرویسهای خصوصی، APIهای داخلی یا کل زیرساخت باشد. اینها انواعی از اسرار docker-compose هستند که مهاجمان به دنبال آنها میگردند.
روشهای رایج نشت اطلاعات محرمانه در docker-compose Docker-Compose.yml
در اینجا به برخی از اشتباهات روزمرهای که توسعهدهندگان مرتکب میشوند اشاره میکنیم:
۱. کدگذاری مستقیم اعتبارنامهها
رمز عبور در این docker-compose.yml اکنون بخشی از تاریخچه گیت شما است. بدتر از آن، ممکن است در محیط پروداکشن نیز استفاده شود. این یکی از سرراستترین شکلهای اسرار docker-compose است. قرار گرفتن در معرض.
۲. کپی-پیست کردن از پیکربندیهای مشترک یا StackOverflow
شیوههای نادرست به سرعت گسترش مییابند. کپی کردن نمونههای ناامن و استفاده از آنها به همان شکلی که هستند، منجر به افشای اسرار در هر محیطی، از توسعهدهنده گرفته تا تولیدکننده، میشود.
3. پایه .NS فایلها را مستقیماً بدون ایمنسازی آنها ذخیره کنید
فایل env: – .env
.NS فایلها اغلب حاوی کلیدهای API یا اعتبارنامهها هستند و توسعهدهندگان فراموش میکنند که آنها را به .گیتیگنوراین باعث میشود که اگر مخزن عمومی یا مشترک باشد، اسرار قابل مشاهده باشند. این اسرار هنگام ارجاع به طور غیرمستقیم به اسرار Docker Compose تبدیل میشوند.
تأثیر واقعی اسرار Docker-Compose در CI/CD
In CI/CD pipelineها، اسرار لو رفته از یک docker-compose.yml می توان:
- ایجاد ساختهای غیرمجاز
- دسترسی محدود به خدمات صحنهسازی یا تولید
- تزریق کد مخرب به برنامههای در حال اجرا
- از طریق حرکت جانبی، درهای پشتی را باز کنید
مهاجمان در حال اسکن عمومی هستند مخازن GitHub نگاه کن docker-compose.yml فایلهایی که از dorkهای GitHub یا ابزارهای خودکار استفاده میکنند. هنگامی که اسرار را پیدا کنند، میتوانند خود را به جای مجریان CI جا بزنند، از اعتبارات ابری سوءاستفاده کنند یا بدتر از آن، باجافزار را در زنجیرههای تأمین مستقر کنند. این اسرار Docker Compose نشان دهنده یک مشکل جدی و اغلب آسیبپذیری نادیده گرفته شده
تشخیص و مدیریت ایمن اسرار
از ابزارهای اسکن استفاده کنید:
- ترافل هاگ, Gitleaks، یا شیگنی میتواند اسرار موجود در مخزن شما، از جمله موارد قدیمی را تشخیص دهد commits.
- اسکنها را در CI خود اجرا کنید pipeline برای مسدود کردن PR های حاوی اطلاعات محرمانه.
جایگزین کردن رمزهای مستقیم با متغیرهای محیطی:
خدمات:
برنامه:
تصویر: myapp
محیط:
رمز عبور پایگاه داده: ${DB_PASSWORD}
از یک مدیر اسرار برای تزریق استفاده کنید DB_PASSWORD در زمان اجرا، آن را از دسترس خود دور نگه دارید docker-compose.ymlاین رویکرد به کاهش خطرات مربوط به Docker Compose secrets کمک میکند.
ادغام مدیران مخفی:
ابزارهایی مانند Vault، AWS Secrets Manager یا Doppler به طور ایمن اسرار را مدیریت میکنند و سیاستهای چرخش را ارائه میدهند.
بهترین شیوهها برای توسعهدهندگان در DevSecOps برای جلوگیری از افشای اسرار Docker-Compose
- هرگز اسرار را به صورت کد درنیاورید in docker-compose.yml.
- اضافه کردن .NS به .گیتیگنور، همیشه.
- استفاده کنید ابزارهای اسکن مخفی در توسعه محلی شما و CI/CD pipeline.
- بررسی فایلهای آهنگسازی به عنوان بخشی از چک لیست روابط عمومی امنیتی شما.
- چرخش مخفی خودکارمخصوصاً برای توکنها و اعتبارنامههای سرویس.
- مثالهای حسابرسی شخص ثالث قبل از کپی کردن آنها در پایگاه کد خود.
- با هرگونه داده حساس در این فایلها به عنوان اسرار Docker Compose رفتار کنید و آنها را بر این اساس مدیریت کنید.
شما Docker-Compose.yml ممکن است بزرگترین نقطه کور امنیتی شما باشد
شما docker-compose.yml چیزی بیش از پیکربندی است؛ بخشی از سطح حمله برنامه شماست. با آن مانند کد رفتار کنید. اسراری که درون این فایلها پنهان شدهاند، خطرات واقعی ایجاد میکنند، به خصوص هنگامی که با کنترل نسخه همگامسازی شده و در ... ادغام شوند. CI/CD.
ابزارهایی مانند Xygeni به شناسایی و مدیریت اسرار Docker Compose در سراسر پایگاههای کد کمک میکنند و pipelineها، خطر حملات زنجیره تأمین را کاهش میدهد. آن را در گردش کار خود ادغام کنید تا بر آنچه انجام میدهید، دید و کنترل داشته باشید. docker-compose.yml ممکن است افشاگری کند.





