DevOps همانطور که از نام آن مشخص است، یک جایگاه واسط را بین توسعهدهندگان برنامههای کاربردی و راهبران زیرساخت دارد. حرکت به سمت این راهکار به عنوان رویکردی سازمانی اقدام نسبتاً جدیدی است که دلیل آن افزایش میزان استفاده از تصویرسازی محاسبات و خودکارسازی در مراکز داده می باشد. این حرکت با عرضه کوبرنتیز (که استانداردی برای هماهنگسازی مخازن بود)، شتاب بیشتری گرفت. اصول معماری میکروسرویسهای کوبرنتیز، تعاریف اعلانی و زیرساخت تغییرناپذیر آن، از جمله عوامل توانمندساز و مؤثر برای DevOps و DevSecOps بودهاند.
DevOps از این جهت که عملیات نرمافزار در محیط تولیدی، جزو ملاحظات تیم طراح برنامههای کاربردی است با روش توسعه سنتی فرق دارد. وقتی از DevOps در یک سازمان استفاده نشود، تیمهای عملیاتی برای دستیابی به توافق نامه سطح خدمات برنامههای کاربردی با مشکل روبرو خواهند شد؛ چون هیچ ادغامی بین تیمها و در نیتجه هیچ بازخوردی نیز از سوی تیم عملیاتی به بخش توسعه نرمافزار وجود ندارد.
DevSecOps بر پایه DevOps ایجاد شده و این اطمینان را می دهد که نه تنها امور مربوط به برنامههای کاربردی و زیرساختها با یکدیگر هماهنگ شده اند بلکه دغدغههای امنیتی هم در نظر گرفته می شوند. از این رو هر سه تیم میتوانند امنیت را در کل چرخه توسعه نرمافزار عملیاتی کنند.
حرکت سازمانها به سمت DevSecOps و استفاده از کوبرنتیز به عنوان یک زبان مشترک و منبع واقعیت منفرد در کل چرخه حیات مخازن (ابر) فواید بسیاری دارد. بعضی از این مزایا شامل موارد زیر است:
- کاهش هزینههای عملیاتی (به دلیل افزایش بهرهوری در اثر وجود یک پلتفرم و یک منبع واقعی مشترک)
- کاهش هزینههای امنیتی
- کاهش مخاطره عملیاتی (کمتر شدن زمان از کار افتادگی، به دلیل وجود تضاد بین پلتفرمهای امنیتی)
- افزایش بهرهوری توسعهدهندگان (از طریق تنظیم مواردی که کنترلهای امنیتی را تبدیل به یکی از اجزای همیشگی و «نامرئی» جریان کار توسعهدهندگان میکند.)
- فراهم کردن امکان اجرای پروژههای تحول دیجیتالی
گاهی وقت ها سازمانها در پیادهسازی طرحهای DevSecOps با شکستهایی مواجه میشوند که البته تا حدودی قابل پیشگیری هستند. در این مطلب از فراست، به بررسی دلایل این شکستها میپردازیم.
1. شکست در ایجاد فرهنگ یادگیری
بر اساس گزارش شرکت بین المللی و معتبر McKinsey که در زمینه مشاوره مدیریت فعالیت دارد و به تازگی منتشر شده، موضوعات فرهنگی جزو مسائل مهم در حوزه تحول دیجیتال محسوب میشوند. سازمانهایی که به آموزش و یادگیری این موضوعات میپردازند، موفقیت بیشتری در حوزه DevSecOps خواهند داشت. در کتاب راهنمای DevOps هم تأکید شده که برای موفقیت DevSecOps و بهبود عملکرد سازمانها وجود فرهنگ یادگیری و آموزش ضروری است.
دستیابی به این هدف، مستلزم توجه کافی به مواردی همچون آموزش روزانه، صرف زمان برای آموزش، اصلاح فرهنگ سازمانی، تلاش برای افزایش مهارتهای نیروی انسانی، سرمایهگذاری در حوزه آموزش، کمک به کاربران در این زمینه و صدور گواهینامههای آموزشی مختلف است. برگزاری جلسات با حضور کارشناسانی از داخل و خارج سازمان که تجربیاتشان و درسهایی را که آموخته اند با کارمندان به اشتراک میگذارند نیز به آموزش بهتر آنها کمک میکند.
2. غفلت از آموزشهای چندمنظوره
بر اساس یک نظرسنجی که در سال 2020 میلادی توسط بنیاد لینوکس (Linux Foundation) انجام شد، توسعهدهندگان نرمافزارهای متن باز و رایگان فقط به طور میانگین 2.3 درصد از وقت خودشان را صرف بهبود امنیت کدها کرده و معمولاً از امنیت و امنسازی آنها فراری هستند. در شرایطی که برقراری امنیت جزو اولویتهای اول هر سازمانی به شمار میرود، بنابراین توسعهدهندگان بیش از پیش مسئولیت اصلی کاهش آسیبپذیریهای امنیتی را پیش از ثبت نهایی کدها بر عهده دارند. از این رو آنها باید با اهمیت کدنویسی امن به خوبی آشنا بوده و آن را در نرم افزارهایشان اجرا کنند.
ما در محیطی هستیم که در آن همه چیز تبدیل به کد میشود. از کد برنامههای کاربردی گرفته تا کدهای زیرساخت و استانداردهای قانونی، اصول تحویل یا یکپارچهسازی مداوم و غیره. با وجود آنکه کارشناسان امنیت الزاماً نباید کدنویسان ماهری باشند اما باید ضمن داشتن درک کلی از روشهای کدنویسی، توانایی بررسی قالبهای کلی کدها را داشته تا آسیبپذیریها و پیکربندیهای نادرست رایج را شناسایی کنند. به این ترتیب زمینه همکاری بین دو گروه امنیت و توسعه نرم افزار فراهم میشود.
3. غفلت از انتقال ارزشهای کسبوکار
هر گونه فعالیت و تلاش از جمله پیادهسازی طرحهای DevSecOps باید با اهداف کلیدی کسبوکار مربوطه همخوانی کامل داشته باشد. DevSecOps یک حرکت تحول آفرین است که نیاز به جلب مشارکت و همکاری بین همه افراد بانفوذ و مهم سازمان دارد. به همین دلیل آنها می بایست با ارزشهای کسبوکاری DevSecOps آشنا شده و با انجام ارزیابیهای دقیق (که دسترسپذیر و مرتبط با اهداف کسبوکار هستند) دلایل استفاده از آن را درک کنند. در کتاب Accelerate معیارهای تحقیق و ارزیابی DevSecOps (DORA[1]) گفته شده است.
بیان ارزشهای کسبوکاری DevSecOps و اثبات آن با استفاده از آمار و ارزیابیهای دقیق، نقش مهمی در کسب پشتیبانی مدیران عامل و افراد کلیدی سازمان دارد.
4. ترس از خطر کردن و شکست خوردن
همانطور که گفتیم، تیمها و سازمانهایی در پیادهسازی طرحهای DevSecOps موفق هستند که دارای فرهنگ یادگیری بوده، از انجام کارهای جدید فراری نیستند و هرگز از شکست نمی ترسند.
اگر سازمانی اشتباه نکند، از اشتباهاتش درس نگیرد و سعی نکند با استفاده از روشهای آزمون و خطا آنها را اصلاح کند، شانس آن برای استفاده موفق از DevSecOps به حداقل میرسد. تیمها باید در محیطی که مبتنی بر شفافیت، امنیت و اعتماد طراحی شده است قدرت یادگیری، شناسایی نقاط ضعف و اصلاح آنها و همچنین ارتقای تواناییهایشان را داشته باشند.
یکی دیگر از دلایلی که باعث فرار سازمانها از انجام کارهای جدید میشود، امنیت است. راهکارهای ایجاد امنیت در سازمانهایی که طرحهای DevSecOps را پیادهسازی میکنند با چالشهای زیادی همراه می باشد. سازمانها باید روشهایی با حداقل سختی و موانع ممکن را برای پیادهسازی امنیت اجرا کنند. این هدف از طریق ادغام با جریانهای کاری توسعهدهندگان، همکاری کارشناسان امنیتی با تیم توسعه، پرورش قهرمانان امنیتی در تیم توسعه و ایجاد فرهنگ امنیت سایبری در سطح سازمان محقق میشود.
5. پراکندگی و جدایی ابزارها
افزایش سرعت تحول و ابتکار دیجیتال باعث سرعت گرفتن رشد راهکارهای مبتنی بر رایانش ابری شده است. این رشد، منجر به شکلگیری مجموعهای متنوع از ابزارها و برنامههای کاربردی مختلف شده که به سازمانها برای دستیابی به اهداف DevSecOps کمک میکند. با این حال تولید روزافزون ابزارهای مختلف در بسیاری از سازمانها محیطی پیچیده و از هم گسیخته را ایجاد کرده است. اگر نگاهی به چشمانداز بنیاد رایانش ابری (CNCF[2]) داشته باشید در جریان پراکندگی و تنوع راهکارهای آن قرار خواهید گرفت.
چشمانداز تعامل ابر CNCF 2021
پراکندگی ابزارها باعث ایجاد چالشهایی در زمینه بهرهوری و قابلیت نظارت و کنترل بر روی آنها میشود. امروزه بیشتر سازمانها به دنبال گزینههایی برای مدیریت زنجیره ابزارها هستند تا از پیچیدگی و ناکارآمدی حاصل از آن پیشگیری کنند.
البته چنین مسائلی محدود به DevOps نیست و حوزه امنیت نیز به دلیل تنوع ابزارها با چالشهای خاص خود روبرو است. بر اساس نتایج مطالعه اتحادیه امنیت ابر در سال 2020 میلای معمولاً سازمانها در زمینه ارزیابی ابزارهای امنیتی و آشنایی کارمندان با همه ابزارهای موجود در محیط سازمان شان با چالش های گوناگونی مواجه هستند.
در دنیای فناوری اطلاعات پویا و رو به رشدی که در آن هستیم، تنوع و پراکندگی ابزارها یک تهدید واقعی محسوب میشود. این مسأله بر قابلیت کنترل و نظارت، بهرهوری و مهمتر از آن بر امنیت نیز تأثیرگذار است. تهدیدات سایبری به صورت مداوم در حال افزایش بوده و اگر سازمان شما کنترل کافی بر روی آنها نداشته باشد بدون شک در معرض مخاطره قرار خواهد گرفت؛ هر چند ممکن است اطلاعی از این تهدیدها نداشته باشید!
6. فرهنگ امنیتی ضعیف
در بیشتر سازمان ها تعداد کارشناسان امنیت سایبری در مقایسه با کارشناسان بخشهای عملیات و توسعه بسیار کم است. طبق مطالعهای که در سال 2020 میلادی توسط مؤسسه امنیتی کنسرسیوم ISC2 صورت گرفت، در صنعت امنیت سایبری جهانی کمبود حدود بسیار شدید کارشناس امنیت سایبری وجود دارد. علاوه بر این توسعهدهندگان در موقعیتهای کلیدیتری قرار داشته و میتوانند مخاطرات امنیتی را در مراحل اولیه توسعه نرمافزار شناسایی کنند. تیمهای عملیاتی هم قابلیت شناسایی ناهنجاریهای عملیاتی را داشته و باید با تیمهای توسعهدهنده همکاری نمایند.
برای ایجاد فرهنگ امنیت سایبری ابتدا باید این واقعیت به رسمیت شناخته شود که همه کارکنان در زمینه امنیت مسئول هستند. برقراری ارتباط، آگاهی از الزامات و دغدغههای مهم امنیتی نیز میتواند نقش به سزایی در شکل گیری فرهنگ امنیتی در یک سازمان داشته باشد. کارشناسان و تیمهای امنیتی باید به گونهای عمل کنند که تمام کارکنان، آنها را به چشم یاورانی ببینند که برای رسیدن به اهداف مشترک با یکدیگر همکاری میکنند و در عین حال نیز نیازمندی های امنیتی اساسی سازمان پوشش داده می شود.
7. تصور اشتباه درباره DevSecOps
یکی از تصورات اشتباهی که بعضی از سازمانها دارند این است که تصور می کنند DevSecOps خریدنی است و تنها اگر اصول یکپارچهسازی پیوسته و تحویل مداوم را پیادهسازی کنند، پس DevSecOps را اجرا نموده اند!
باید به این نکته توجه داشت DevSecOps راهکاری است که با همکاری افراد، فرایندها و فناوریها محقق میشود. همکاری کارمندان و ادغام اصولی فرایندها نقش مهمی در پیادهسازی این راهکار دارد. اگر سازمانها تلاشی برای پیادهسازی فرهنگی که با اصول DevSecOps همخوانی دارد، نکنند در اجرای طرحهای DevSecOps به موفقیت چندانی نخواهند رسید.
این موضوع درباره ناتوانی در به روزرسانی و پیادهسازی فرایندهای سازمانی جدید که با اصول و روشهای گفته شده همخوانی داشته باشد هم صدق میکند. تلاش برای پیادهسازی مدلهای عملیاتی قدیمی در شیوهها و فناوریهای مدرن منجر به ایجاد ابهام، ناکارآمدی، ناامیدی و خستگی در بین کارمندان سازمان میشود. متـأسفانه این وضعیت در تمام تیمهایی که قصد پیادهسازی DevSecOps را دارند، مشاهده میشود.
پیادهسازی DevSecOps کار چندان سادهای نیست. با این حال اگر چنین کاری را درست انجام داده و بر قابلیتهای کلیدی آن تمرکز کنیم، این رویکرد مزایای قابل توجهی را برای سازمان خواهد داشت. این راهکار علاوه بر افزایش سرعت تحویل، پاسخگویی به کاربران و مزایای رقابتی به برطرفسازی سریع، کم هزینه و مؤثر آسیبپذیریها هم کمک میکند.
[1] DevOps Research and Assessment
[2] Cloud Native Computing Foundation