بامداد ۱۲ آبان ۱۴۰۵، یک مخاطره امنیتی در بخشی از زیرساخت همروش شناسایی شد. سپس برای کاهش ریسک، ارائه برخی سرویسها را بهصورت موقت و کنترلشده متوقف کردیم. این راهنما مراحل تعویض توکنها و سکرتهای دارکوب را گامبهگام توضیح میدهد. توجه داشته باشید تا زمانی که مقادیر قبلی باطل نشود، ریسک باقی میماند.
این راهنما به شما مربوط است اگر…
- هر گونه اپلیکیشن دارکوب دارید؛ از جمله دیتابیسهای آماده دارکوب و اپلیکیشنهای آماده دارکوب
چه مقادیری باید تعویض شود؟
کلیدهای API، توکنها، رمزهای عبور، رشتههای اتصال، کلیدهای SSH و سکرتهای وبهوک
پیشنیازها
- دسترسی به اپلیکیشن با نقشی که اجازه ویرایش متغیرها را دارد
- دسترسی به سرویسهای دیگری که متغیرهایشان را در دارکوب قرار دادهاید
قبل از شروع: فهرست سرویسهای متصل را تهیه کنید
- متغیرهای هر اپلیکیشن در دارکوب
- مقادیر متغیرها در اپلیکیشنهای دیگر همان پروژه، در صورت کپیشدن
- متغیرهای CI در همگیت
- بررسی کنید که در کنسول همروش چه «متغیرهای محیطی مشترک»، «متغیرهای محیطی» و «متغیرهای محیطی امن» دارید. توجه داشته باشید که در قسمت «متغیرهای محیطی مشترک» فقط متغیرهایی را مشاهده میکنید که بین چند اپلیکیشن شما مشترک هستند و به همین دلیل، ممکن است تنها تغییر این متغیرها کافی نباشد و برخی از اپلیکیشنهای شما متغیر محیطی مشترک با سایر اپلیکیشنها نداشته باشند. به همین دلیل حتما لازم است با کلیک روی هر اپلیکیشن دارکوب خود نیز از تغییر مقادیر متغیرهای محیطی اطمینان حاصل کنید.
مراحل
۱. در کنسول همروش به صفحه سرویس دارکوب بروید.
از منوی سمت راست، گزینه «متغیرهای محیطی» را انتخاب کنید.
در صفحه اپلیکیشنهای دارکوب به ۳ متغیرهای زیر دسترسی دارید:
- متغیرهای محیطی مشترک که نوعی از متغیرهای محیطی هستند که در لیستهای ساخته شده توسط شما قرار گرفتهاند و با سایر اپلیکیشنهای مرتبط با آن لیست، مشترک هستند.
- متغیرهای محیطی
- متغیرهای محیطی امن

۲. تغییر متغیرهای محیطی مشترک

- اگر گزینه متغیرهای محیطی مشترک برای اپلیکیشنهای شما نمایش داده میشود، روی گزینه «متغیرهای محیطی مشترک» (تصویر بالا) کلیک کنید.

- در پنجرهای که باز میشود (تصویر بالا)، لیستی از متغیرها را مشاهده میکنید. با توجه به مخاطره فعلی، لیستهایی که مقابل آنها عبارت «نیازمند تغییر» نمایش داده میشود را انتخاب و مقادیر آنها را روتیت کنید. علاوه بر این اگر متغیر حساسی دارید، آن موارد را نیز روتیت کنید.
- در نهایت روی گزینه «ویرایش» کلیک کنید.
- در نهایت پس از ویرایش این موارد، لازم است گزینه «ذخیره تغییرات» در بالا سمت راست صفحه اپلیکیشن دارکوب کلیک کنید تا تمام تغییرات اعمال شوند. تا وقتی «ذخیره تغییرات» انجام نشود، اپلیکیشن همچنان از مقدار قبلی استفاده میکند. اما در نظر داشته باشید که میتوانید سایر تغییرات مربوط به متغیرهای در مرحله بعدی (مرحله ۳) را نیز انجام دهید و در نهایت اقدام به «ذخیره تغییرات» کنید.
۳- تغییر متغیرهای محیطی و متغیرهای محیطی امن
- حالا باید وارد هر یک از اپلیکیشنها شوید و بهصورت جداگانه مقادیر مورد نیاز را تغییر دهید. به این منظور به ترتیب روی هر یک از اپلیکیشنهای خود کلیک کنید و در بخش «متغیرهای محیطی»، متغیرهایی که مقابل آنها «نیازمند تغییر» ذکر شده را روتیت کنید. علاوه بر این اگر متغیر حساسی دارید، آن موارد را نیز روتیت کنید. در نظر داشته باشید که ممکن است پیش از این در مرحله ۲، مقادیر متغیرها را از بخش «متغیرهای محیطی مشترک» تغییر داده باشید و نیاز به تغییر مجدد در برخی از اپلیکیشنها نداشته باشید.

- در بخش «متغیرهای محیطی امن» باید تمام متغیرها را تغییر دهید. برخی از اپلیکیشنهای دارکوب شما ممکن است فاقد بخش مربوط به «متغیرهای محیطی امن» باشند.
- دکمه «ذخیره» را کلیک کنید تا مقدار ویرایش و ذخیره شود. در نهایت پس از ویرایش این موارد، لازم است گزینه «ذخیره تغییرات» در بالا سمت راست صفحه اپلیکیشن دارکوب کلیک کنید تا تمام تغییرات اعمال شوند. تا وقتی «ذخیره تغییرات» انجام نشود، اپلیکیشن همچنان از مقدار قبلی استفاده میکند.
نکته: نباید سکرتها را در «متغیرهای محیطی» یا «متغیرهای محیطی مشترک» ذخیره کنید. در صورتیکه قبلا به اشتباه این کار را انجام دادهاید لازم است این فرایند را طی کنید:
- سکرت هر اپلیکیشن را روتیت کنید
- این سکرتها را از «متغیرهای محیطی» و/یا «متغیرهای محیطی» مشترک حذف کنید
- و در نهایت به «متغیرهای محیطی امن» منتقل کنید.
۴- توکن بهروزرسانی ایمیج اپلیکیشن

- اگر در فرایند CI/CD خود پس از Build شدن ایمیج، درخواستی به دارکوب ارسال میکنید تا ایمیج اپلیکیشن بهروزرسانی شود، باید توکن مربوط به این درخواست را تغییر دهید. برای این کار، ابتدا از منوی سمت راست به بخش «تنظیمات CI/CD» بروید.
- در بخش «توکن دیپلوی» روی گزینه «روتیت» (مرحله ۴ تصویر بالا) کلیک کنید و سپس در پنجره باز شده (تصویر پایین) گزینه «روتیت» را بزنید تا توکن جدید ایجاد شود. سپس مقدار جدید را در تنظیمات CI/CD، مانند متغیرهای CI همگیت، جایگزین کنید.

۵- تغییر سکرت Build Webhook

- اگر برای اجرای فرایند Build از وبهوک همگیت استفاده میکنید، باید سکرت مربوط به آن را نیز تغییر دهید. گیتلب این سکرت را در هدر درخواست Webhook قرار میدهد و به دارکوب ارسال میکند. برای تعویض آن، ابتدا از منوی سمت راست به بخش «تنظیمات CI/CD» بروید.
- در بخش «build webhook secret» نمایش داده میشود. روی گزینه «روتیت» (مرحله ۵ تصویر بالا) کلیک کنید و سپس در پنجره باز شده (تصویر پایین) گزینه «روتیت» را بزنید تا سکرت جدید ایجاد شود. سپس سکرت جدید را در تنظیمات وبهوک گیتلب نیز جایگزین کنید تا درخواستهای ارسالی با مقدار جدید احراز هویت شوند.

نکته: در صورت استفاده از هر یک از این قابلیتها، صرفاً تعویض مقدار در کنسول همروش کافی نیست. باید مقدار جدید را در سمت همگیت یا هر سرویسی که درخواست را ارسال میکند نیز بهروزرسانی کنید.
۶- تغییر رمز عبور دیتابیسهای دارکوب و اپلیکیشنهای آماده دارکوب
در بین اپلکیشنهای دارکوب، رمز عبور اپلیکیشنهای زیر باید به روش متفاوتی تغییر داده شود:
- Redis
- MongoDB
- MariaDB
- SQL Server
- Elasticsearch

برای تغییر رمز عبور، روی اپلیکیشن در صفحه اپلیکیشنهای دارکوب کلیک کنید و در منوی «اطلاعات عمومی» و بخش «رمز عبور» روی گزینه «روتیت» (تصویر بالا) کلیک کنید و رمز را تغییر دهید.
سپس فرایند را (مشابه تصویر زیر» تایید کنید.

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