DevSecOps مخفف توسعه، امنیت و عملیات است. این رویکردی به فرهنگ، اتوماسیون و طراحی پلتفرم است که امنیت را به عنوان یک مسئولیت مشترک در کل چرخه حیات فناوری اطلاعات یکپارچه میکند.
DevSecOps در مقابل DevOps
DevOps فقط مربوط به تیمهای توسعه و عملیات نیست. اگر میخواهید از چابکی و پاسخدهی رویکرد DevOps نهایت استفاده را ببرید، امنیت فناوری اطلاعات نیز باید نقش یکپارچه را در چرخه عمر کامل برنامههای شما ایفا کند.
چرا؟ در گذشته، نقش امنیت به یک تیم خاص در مرحله نهایی توسعه منزوی بود. زمانی که چرخههای توسعه ماهها یا حتی سالها طول میکشید، این مسئله چندان مشکلساز نبود، اما آن روزها به پایان رسیدهاند. DevOps موثر چرخههای توسعه سریع و مکرر را تضمین میکند (گاهی اوقات هفتهها یا روزها)، اما شیوههای امنیتی قدیمی میتوانند حتی کارآمدترین طرحهای DevOps را خنثی کنند.
DevSecOps یعنی از همان ابتدا به امنیت برنامه و زیرساخت فکر کنید. همچنین به معنای خودکار کردن برخی از گیتهای امنیتی برای جلوگیری از کند شدن جریان کاری DevOps است. انتخاب ابزارهای مناسب برای ادغام مداوم امنیت، مانند توافق بر روی یک محیط توسعه یکپارچه (IDE) با ویژگیهای امنیتی، می تواند به تحقق این اهداف کمک کند. با این حال، امنیت DevOps مؤثر به چیزی بیش از ابزارهای جدید نیاز دارد – این امنیت مبتنی بر تغییرات فرهنگی DevOps است تا کار تیمهای امنیتی را زودتر و زودتر یکپارچه کند.
امنیت DevOps داخلی است.
چه آن را «DevOps» یا «DevSecOps» بنامید، گنجاندن امنیت به عنوان بخشی جدایی ناپذیر از کل چرخه عمر برنامه همیشه ایده آل بوده است. DevSecOps در مورد امنیت داخلی است، نه امنیتی که به عنوان محیط اطراف برنامهها و دادهها عمل میکند.
اگر امنیت در انتهای خط لوله توسعه باقی بماند، سازمانهایی که DevOps را اتخاذ میکنند میتوانند خود را به چرخههای توسعه طولانی که در وهله اول سعی داشتند از آن اجتناب کنند، بازگردند.
تا حدی، DevSecOps نیاز به دعوت از تیمها و شرکای امنیتی را در ابتدای طرحهای DevOps برای ایجاد امنیت اطلاعات و تنظیم برنامهای برای اتوماسیون امنیتی برجسته میکند. همچنین بر نیاز به کمک به توسعهدهندگان برای کدنویسی با در نظر گرفتن امنیت تأکید میکند، فرآیندی که شامل تیمهای امنیتی به اشتراکگذاری قابلیت مشاهده، بازخورد و بینش در مورد تهدیدات شناخته شده است. این ممکن است شامل آموزشهای امنیتی جدید برای توسعهدهندگان نیز باشد، زیرا همیشه در توسعه برنامههای کاربردی سنتی متمرکز نبوده است.
امنیت داخلی واقعاً چگونه است؟ برای شروع، یک استراتژی DevSecOps خوب، تعیین میزان تحمل ریسک و انجام تجزیه و تحلیل ریسک/منفعت است. چه مقدار از کنترلهای امنیتی در یک برنامه خاص لازم است؟ سرعت بازاریابی برای اپلیکیشنهای مختلف چقدر اهمیت دارد؟ خودکارسازی وظایف تکراری کلید DevSecOps است، زیرا اجرای بررسیهای امنیتی دستی در خط لوله میتواند زمانبر باشد.
همچنین شما میتوانید برای یادگیری تخصصی DevSecOps از کتاب Learning DevSecOps نیز استفاده نمائید.
امنیت DevOps خودکار است.
برای انجام: چرخههای توسعه کوتاه و مکرر را حفظ کنید، اقدامات امنیتی را با کمترین اختلال در عملیات ادغام کنید، با فناوریهای نوآورانه مانند کانتینرها و ریزسرویسها همگام باشید، و در عین حال همکاری نزدیکتر بین تیمهای معمولاً منزوی را تقویت کنید – این امری مهم برای هر سازمانی است. همه این ابتکارات در سطح انسانی شروع میشوند – با نکات و نکات همکاری در سازمان شما – اما تسهیل کننده این تغییرات انسانی در چارچوب DevSecOps اتوماسیون است.
اما چه چیزی را خودکار کنیم و چگونه؟ راهنمایی کتبی برای کمک به پاسخ به این سوال وجود دارد. سازمانها باید به عقب برگردند و کل محیط توسعه و عملیات را در نظر بگیرند. این شامل مخازن کنترل منبع، رجیستری کانتینر، خط لوله یکپارچهسازی و استقرار مداوم (CI/CD)، مدیریت رابط برنامهنویسی برنامه (API)، هماهنگسازی و اتوماسیون انتشار، و مدیریت و نظارت عملیاتی است.
فنآوریهای جدید اتوماسیون به سازمانها کمک کرده تا شیوههای توسعه چابکتری را اتخاذ کنند و همچنین در پیشبرد اقدامات امنیتی جدید نقش داشتهاند. اما اتوماسیون تنها چیزی نیست که در مورد چشمانداز فناوری اطلاعات در سالهای اخیر تغییر کرده است – فناوریهای بومی ابری مانند کانتینرها و میکروسرویسها اکنون بخش عمدهای از ابتکارات DevOps هستند و امنیت DevOps باید با آنها سازگار شود.
امنیت DevOps برای کانتینرها و میکروسرویسها ساخته شده است.
مقیاس بزرگتر و زیرساخت پویاتر که توسط کانتینرها فعال شده است، نحوه انجام تجارت بسیاری از سازمانها را تغییر داده است. به همین دلیل، شیوههای امنیتی DevOps باید با چشمانداز جدید سازگار شوند و با دستورالعملهای امنیتی خاص کانتینر هماهنگ شوند.
فناوریهای بومی ابری خود را به سیاستها و چک لیستهای امنیتی ثابت نمیدهند. بلکه امنیت باید در هر مرحله از چرخه عمر برنامه و زیرساخت مستمر و یکپارچه باشد.
DevSecOps به معنای ایجاد امنیت در توسعه برنامه از انتهای به انتها است. این ادغام در خط لوله به همان اندازه که به ابزارهای جدید نیاز دارد، به یک ذهنیت سازمانی جدید نیز نیاز دارد. با در نظر گرفتن این موضوع، تیمهای DevOps باید امنیت را برای محافظت از محیط کلی و دادهها، و همچنین فرآیند یکپارچهسازی/تحویل مستمر، خودکار کنند – هدفی که احتمالاً شامل امنیت میکروسرویسها در کانتینرها میشود.
محیط زیست و امنیت دادهها
استانداردسازی و خودکارسازی محیط: هر سرویس باید کمترین امتیاز ممکن را برای به حداقل رساندن اتصالات و دسترسیهای غیرمجاز داشته باشد.
متمرکز کردن هویت کاربر و قابلیتهای کنترل دسترسی: کنترل دسترسی دقیق و مکانیسمهای احراز هویت متمرکز برای ایمنسازی ریزسرویسها ضروری هستند، زیرا احراز هویت در چندین نقطه آغاز میشود.
جداسازی کانتینرهایی که ریزسرویسها را از یکدیگر و شبکه اجرا میکنند: این شامل دادههای در حال انتقال و در حالت استراحت است، زیرا هر دو میتوانند اهداف با ارزشی را برای مهاجمان نشان دهند.
رمزگذاری دادهها بین برنامهها و سرویسها: یک پلتفرم هماهنگسازی کانتینر با ویژگیهای امنیتی یکپارچه کمک میکند تا احتمال دسترسی غیرمجاز را به حداقل برسانید.
درگاههای API ایمن را معرفی کنید: API های امن مجوز و دید مسیریابی را افزایش میدهند. با کاهش API های در معرض خطر، سازمانها میتوانند سطوح حملات را کاهش دهند.
امنیت فرآیند CI/CD
یکپارچهسازی اسکنرهای امنیتی برای کانتینرها: این باید بخشی از فرآیند افزودن کانتینرها به رجیستری باشد.
تست امنیتی خودکار در فرآیند CI: این شامل اجرای ابزارهای تجزیه و تحلیل استاتیک امنیتی به عنوان بخشی از ساختها، و همچنین اسکن تصاویر کانتینر از پیش ساخته شده برای آسیبپذیریهای امنیتی شناختهشده در حین کشیدن آنها به خط لوله ساخت است.
آزمایشهای خودکار برای قابلیتهای امنیتی را به فرآیند آزمون پذیرش اضافه کنید: تستهای اعتبارسنجی ورودی و همچنین ویژگیهای تأیید اعتبار و مجوز را بهطور خودکار انجام دهید.
خودکارسازی بهروزرسانیهای امنیتی، مانند وصلههای آسیبپذیری شناخته شده: این کار را از طریق خط لوله DevOps انجام دهید. این باید نیاز ادمینها را برای ورود به سیستمهای تولید حذف کند، در حالی که یک گزارش تغییرات مستند و قابل ردیابی ایجاد میکند.
قابلیتهای مدیریت پیکربندی سیستم و سرویس را خودکار کنید: این امر امکان انطباق با سیاستهای امنیتی و حذف خطاهای دستی را فراهم میکند. حسابرسی و اصلاح نیز باید خودکار باشد.
منبع: redhat