چالشهای اجرای موفق DevSecOps
DevSecOps یک تغییر فرهنگی و فراتر از یک روش توسعه ساده است. این تحول مستلزم تغییر دیدگاه تیمهای امنیتی نسبت به امنیت، عملیات و توسعه و مهمتر از آن توجه به نقش این عناصر در بهینهسازی چرخه حیات فناوری اطلاعات است.
مدیران پروژه و رهبران سازمانها باید درک کنند که کارمندان این سه حوزه دیدگاههای متفاوتی نسبت به پروژههای فناوری اطلاعات دارند. برقراری توازن در بین این دیدگاهها مستلزم بررسی محدودیتهای ایجاد شده در اثر تفاوتهای فرهنگی و تلاش برای برقراری انسجام و هماهنگی است. در این مطلب از فراست یکسری از چالشهای موجود که در مسیر پیادهسازی DevSecOps وجود دارند مورد بررسی قرار میدهیم.
1. سرزنش کردن یکدیگر
یکی از مهمترین موانع برای پیادهسازی موفق DevSecOps و تحویل مستمر و یکپارچه، تفاوت فرهنگی بین کارشناسان امنیت و توسعهدهندگان است. اولین گام برای پر کردن چنین شکافی، درک تفاوت دیدگاههای موجود در بین این دو گروه میباشد.
ممکن است تیمهای امنیت سایبری به دلیل پیدا کردن مشکلات امنیتی در مراحل یکپارچهسازی و آزمون، به عنوان مقصر اصلی در کند شدن فرایند توسعه شناخته شوند. چنین دیدگاهی باعث میشود که تیمهای امنیت سایبری از پیدا کردن مشکلات امنیتی تا زمان استقرار کد خودداری کنند. در نتیجه این مسأله منجر به ایجاد آسیبپذیریهای بیشماری در محیطهای تولیدی و همچنین مشکلات ناشی از آنها میشود.
البته این سرزنش کردنها به صورت دو طرفه رخ میدهند. زمانی که امنیت در فرایند توسعه تعبیه نشده باشد، توسعهدهندگان نیز برای سایر مشکلات امنیتی که در مراحل بعدی مراحل تحویل نرمافزار پیدا میشوند، سرزنش میگردند.
در نتیجه احتمال دارد که تیمهای توسعه در پی مسیرهای میانبر باشند. برای مثال شاید آنها به راههایی برای دور زدن تیم امنیت سایبری با استفاده از «فناوری اطلاعات سایهای» دست یابند یا نرمافزارهایی را به محیط تولیدی عرضه کنند که به صورت دقیق ارزیابی نشده باشند.
2. فقدان انگیزههای مناسب
معمولاً تفاوتهای زیادی در بین اولویتها، نقشها و انگیزههای تیمهای توسعه، عملیات و امنیت وجود دارد. در نتیجه این تیمها با یکدیگر هماهنگی ندارند.
یکسری از تضادهای رایج در این زمینه عبارتند از:
- کیفیت در مقابل سرعت؛
- بهرهوری عملیاتی در مقابل کاهش ریسک؛
- بهرهوری در مقابل ثبات و پایداری.
توسعهدهندگان عموماً تحت فشار قرار دارند تا کدها را به سرعت منتشر کنند. از طرفی تیمهای امنیت سایبری هم اهداف خاص خودشان را در زمینه کاهش ریسک یا پیروی از استانداردهای قانونی دارند.
بنابراین با توجه به این اولویتهای متناقض، جای تعجب نیست که امنیت معمولاً به عنوان یک مانع تلقی میشود تا یک عامل توانمندساز استراتژیک.
برای غلبه بر چنین تضادهای فرهنگی باید یک محیط فرهنگی ایجاد کنید که در آن همه افراد حاضر در پروژه دارای اهداف و ارزشهای یکسانی باشند. چنین اقدامی میتواند منجر به کاهش ریسک و افزایش مقاومت در سطح کل تیم شود.
سعی کنید حتیالامکان انگیزههای تیمهای مختلف را با یکدیگر هماهنگ کنید تا همه در راستای یک هدف مشترک یعنی عرضه سریع نرمافزار همزمان با ایجاد امنیت و پیشگیری از تأخیرهای غیرضروری کار کنند.
3. عدم اعتماد و شفافیت
در یک سازمان، اعتماد مهمترین عامل برای انسجام تیم و ترویج همکاری است. در حوزه DevSecOps اعتماد فراتر از اطمینان به مهندسان و توسعهدهندگان همکار بوده و باید نسبت به امنیت و کیفیت فرایندهای موجود اعتماد کامل وجود داشته باشد.
شفافیت نیز از اهمیت بسیار زیادی برخوردار است. چنین ویژگی باعث میشود که همه افراد نسبت به آنچه که خود و دیگران انجام میدهند و همچنین دلیل انجام آن آگاهی کامل داشته باشند. به عبارتی اعتماد در گرو شفافیت است.
اعضای تیم DevSecOps باید اطمینان یابند که همه آنها در راستای یک هدف مشترک کار میکنند، اعتماد داشته باشند. دستیابی به این مرحله کار چندان سادهای نیست.
بهترین روش برای حل این مسئله، ترویج همکاری و شفافیت در بین هر دو طرف است. حتی کارشناسان امنیت سایبری مؤسسات دولتی هم معتقدند که ایجاد اعتماد کامل شرط لازم برای دستیابی به موفقیت DevOps است.
باید فرهنگ مسئولیتپذیری و مالکیت را در بین همه اعضای تیم ترویج کنید. آنها باید بدانند که مسئول اصلی اقداماتشان هستند. این موضوع منجر به ترویج اعتماد در بین همه طرفها و افراد میشود.
چگونه DevSecOps را به صورت منسجم پیادهسازی کنیم؟
هر سازمانی پیش از اینکه پیادهسازی روشهای DevSecOps را انجام دهد، بایستی ابتدا یک مرحله به عقب برگشته و فرهنگ کنونیاش را ارزیابی کند. برای مثال یک تحلیل اختلافات میتواند به بهینهسازی فرایند پیادهسازی برای رسیدن به نتایج بهتر کمک کند.
DevSecOps صرفاً یک ابزار یا فناوری جدید نیست بلکه یک رویکرد برای تعبیه امنیت در کل فرایند توسعه است.
رسیدن به این هدف کار سادهای نیست. تغییر فرهنگی مورد نیاز در DevSecOps نسبت به ایجاد تغییر در سایر فناوریها از پیچیدگی بسیار بیشتری برخوردار است. در صورتی که این تغییرات به صورت اصولی پیادهسازی نشوند حتی با وجود استفاده از ابزارهای پیشرفته و پیادهسازی دقیق سایر مراحل، فرایند پیادهسازی DevSecOps با شکست مواجه میشود.
یک فرهنگ DevSecOps منسجم باید شامل خصوصیات زیر باشد:
- قابلیت دید: همه افراد از جمله توسعهدهندگان، تیمهای امنیت سایبری و عملیات باید بتوانند آنچه که در چرخه حیات برنامههای کاربردی رخ میدهد را ببینند.
- همکاری: تیمهای امنیت سایبری بخشی از خط مراحل توسعه هستند نه یک فرایند مجزا که بعداً رخ میدهد. توسعهدهندگان و تیمهای امنیت سایبری میتوانند با یکدیگر کار کنند تا الزامات را برآورده نمایند حتی اگر این الزامات با روش آبشاری سنتی تفاوت داشته باشند.
- اتوماسیون: ساختارها و آزمونهای خودکار امکان تحویل سریع قابلیتها بدون به خطر انداختن امنیت یا کیفیت را فراهم میکنند.
نتیجهگیری
اینکه سازمانها میتوانند DevSecOps را صرفاً با اضافه کردن ابزارهای امنیتی به خط مراحل توسعه پیادهسازی کنند، یک افسانه است و با حقیقت فاصله زیادی دارد.
تیمهای توسعه، امنیت و عملیات همگی در مراحل متفاوتی از چرخه توسعه محصول مشارکت دارند و اولویتها، مسئولیتها و فرایندهای اختصاصی خودشان را دارند.
از این رو DevSecOps بیشتر مستلزم تغییر دیدگاه است تا ابزارها. این حرکت یک تغییر فرهنگی است که به مهندسان عملیات، کارشناسان امنیت سایبری و توسعه دهندگان امکان میدهد با یکدیگر همکاری کرده و متمرکز بر تحویل و قابلیت اطمینان محصول شوند.
اخبار امنیت سایبری را در وبسایت فراست دنبال کنید.
منبع: infosecurity-magazine