Բառը[Թաքցնել][Ցուցադրում]
Դուք հավանաբար արդեն գիտեք, թե ինչ է DevOps-ը, եթե աշխատում եք ծրագրային ապահովման ոլորտում:
Զարմանալի չէ, որ խոշոր ընկերությունների մեծամասնությունը ինտեգրում է իր մեթոդաբանությունը իրենց աշխատանքային հոսքերի մեջ, հաշվի առնելով, որ դրանք ավելի ու ավելի տարածված են դառնում մշակողների շրջանում:
Մի քանի ամիս կամ նույնիսկ տարիներ առաջ ծրագրային ապահովման խոշոր ընկերությունները պարբերաբար նոր ծրագրեր էին թողարկում:
Բավարար ժամանակ կար ծածկագիր անվտանգության և որակի փոխանցման համար երաշխիքային ստուգումներ; այս ընթացակարգերն իրականացվել են անկախ փորձագիտական խմբերի կողմից:
Հանրային ամպերի օգտագործման ավելացմամբ, շատ հոսքեր ավտոմատացվել են՝ օգտագործելով նոր գործիքներն ու տեխնոլոգիաները՝ հնարավորություն տալով բիզնեսին ավելի արագ զարգանալ և մեկ քայլ առաջ մնալ մրցակիցներից:
Մոնոլիտ ծրագրերը սկսեցին մասնատվել ավելի փոքր, ինքնավար բաղադրիչների կոնտեյներների և միկրոծառայության հայեցակարգի ներդրումից հետո:
Սա մեծացրեց ծրագրային ապահովման ստեղծման և ներդրման ճկունությունը:
Այնուամենայնիվ, անվտանգության և համապատասխանության մոնիտորինգի համակարգերի մեծ մասը նման զարգացում չի ցուցաբերել:
Նրանցից շատերը չկարողացան փորձարկել իրենց կոդը այնքան արագ, որքան արդյունքում պահանջվում էր սովորական DevOps միջավայրը:
SecDevOps-ի ներդրումը նպատակ ուներ լուծելու այս խնդիրը և ամբողջությամբ ինտեգրելու անվտանգության թեստավորումը շարունակական ինտեգրման (CI) և շարունակական առաքման (CD) խողովակաշարերի մեջ՝ միաժամանակ բարձրացնելով մշակողների թիմի գիտելիքներն ու փորձը՝ ներքին փորձարկումն ու կարկատումը հեշտացնելու համար:
Այս հոդվածում դուք կիմանաք ավելին SecDevOps-ի մասին, ներառյալ դրա կարևորությունը, աշխատանքը, լավագույն փորձը և շատ ավելին:
Այսպիսով, ինչ է SecDevOps-ը:
DevOps-ը արագ է, կոպիտ և ավտոմատացված, և այն ինքնուրույն ունի բազմաթիվ առավելություններ:
Այնուամենայնիվ, անվտանգության ինտեգրումը սահմանափակ է, քանի որ ավելի արագ տեղակայումը նշանակում է ավելի քիչ ժամանակի պատուհաններ անվտանգության թերությունները բացահայտելու և վերացնելու համար:
Եթե անվտանգությունը ներառված չէ ստեղծման և թողարկման գործընթացում՝ արագ տեղակայման նպատակով հավելվածներ մշակելիս (DevOps մեթոդ), դուք կարող եք դրանք բաց թողնել անվտանգության զգալի թերությունների համար:
Այստեղ գործի է դրվում SecDevOps-ը (նաև հայտնի է որպես DevSecOps կամ DevOpsSec): Այս մեթոդը ներառում է անվտանգությունը մշակման և տեղակայման գործընթացներում, ինչպես ենթադրում է անունը:
SecDevOps-ը լավագույն փորձի հավաքածու է, որը նախատեսված է անվտանգ կոդավորումը խորապես ինտեգրելու DevOps-ի զարգացման և տեղակայման գործընթացներին:
Այն հաճախ կոչվում է կոշտ DevOps:
Երբ նրանք ստեղծում են իրենց հավելվածները, դա խրախուսում է մշակողներին ավելի մանրամասն դիտարկել անվտանգության չափանիշներն ու հասկացությունները: DevOps-ի արագ թողարկման մեթոդաբանությանը հետևելու համար անվտանգության գործընթացներն ու ստուգումները ներառված են կյանքի ցիկլի շատ վաղ շրջանում:
SecDevOps-ը բաժանված է երկու հիմնական մասի.
Անվտանգությունը որպես կոդ (SaC)
Այս պահին DevOps խողովակաշարի գործիքներն ու ընթացակարգերը պետք է ներառեն անվտանգությունը:
Հետևում է, որ գործիքների համար կիրառական անվտանգության ստատիկ փորձարկում (SAST) և դինամիկ կիրառական անվտանգության փորձարկում (DAST) ավտոմատ կերպով սկանավորել կառուցված հավելվածները:
Դրա շնորհիվ ավտոմատացված գործընթացներին առաջնահերթություն է տրվում ձեռքով (թեև ձեռքով գործընթացները անհրաժեշտ են հավելվածի անվտանգության կարևոր ոլորտների համար):
DevOps գործընթացները և գործիքների շղթաները պետք է ներառեն անվտանգությունը որպես կոդ: Այս գործիքները և դրանց ավտոմատացումը պետք է համատեղելի լինեն Continuous Delivery ճարտարապետության հետ:
Ենթակառուցվածքը որպես կոդ (IaC)
DevOps գործիքների հավաքածուն, որն օգտագործվում է ենթակառուցվածքի մասերի կազմաձևման և արդիականացման համար՝ ապահով և կառավարվող տեղակայման միջավայր ապահովելու համար, ներկայացված են այստեղ:
Այս գործընթացում հաճախ օգտագործվում են այնպիսի գործիքներ, ինչպիսիք են Chef, Ansible և Puppet:
IaC-ն ենթադրում է նույն կոդի մշակման ուղեցույցների օգտագործումը գործառնական ենթակառուցվածքը կառավարելու համար, ի տարբերություն միանվագ սկրիպտների օգտագործմամբ կազմաձևման ձեռքով թարմացումների կամ փոփոխությունների:
Արդյունքում, տեղակայված սերվերները կարկատելու և թարմացնելու փոխարեն, համակարգի խնդիրը պահանջում է կազմաձևման միջոցով վերահսկվող սերվերի տեղակայում:
Հավելվածի գործարկումից առաջ SecDevOps-ն օգտագործում է շարունակական և ավտոմատացված անվտանգության թեստավորում: Ցանկացած թերությունների վաղ հայտնաբերումը երաշխավորելու համար օգտագործվում է խնդիրների հետագծումը:
Բացի այդ, այն օգտագործում է ավտոմատացում և թեստավորում՝ ապահովելու անվտանգության ավելի արդյունավետ ստուգումներ ծրագրային ապահովման մշակման ողջ կյանքի ցիկլում:
Ինչու՞ է ձեռնարկությունը պահանջում SecDevOps:
Այսօրվա թվային դարաշրջանում անվտանգությունը պետք է լինի առաջնագծում և յուրաքանչյուր կազմակերպության առաջնահերթությունը:
Տեղադրելով SecDevOps մոդելը, ընկերությունը ցույց է տալիս, որ այն ավելի ակտիվ է, քան ռեակտիվ, երբ խոսքը վերաբերում է անվտանգությանը:
Ուժեղ համակարգերի և վստահելի, ճկուն հավելվածների զարգացումը խրախուսվում է «Առաջին հերթին անվտանգության» կորպորատիվ մտածելակերպ ունենալով:
Այսօրվա շատ մրցունակ ՏՏ շուկայում կազմակերպությունները չեն կարող իրենց թույլ տալ անվտանգության թերություններ ունենալ իրենց արտադրական համակարգերում:
Հարձակումները, որոնք օգտագործում են շահագործում, ծախսատար են և հաճախ համակարգը կամ կազմակերպությունը դարձնում են անօգտագործելի: SecDevOps-ը կազմակերպության ներսում թույլ է տալիս շարունակական շեշտադրում կատարել անվտանգության յուրաքանչյուր խողովակաշարի մակարդակում:
Իմանալով, որ դուք ստեղծում եք հատուկ ծրագրեր և համակարգեր՝ սպառողների համար անհրաժեշտ հատկանիշներով և գործառույթներով, ձեզ հանգիստ է տալիս:
Համոզվելու համար, որ ձեռնարկությունը համապատասխանում է անվտանգության լավագույն փորձին, ստանդարտներին և օրենսդրությանը, խորհուրդ է տրվում, որ Անվտանգության թիմը վաղ և հաճախակի ներգրավվի բոլոր ինժեներական և ոչ ինժեներական նախաձեռնություններում:
Ինչպե՞ս է գործում SecDevOps-ը:
SecDevOps-ը մտահոգված է անվտանգությունը ձախ տեղափոխելով: Սա նշանակում է, որ բոլորը պետք է պատասխանատվություն ստանձնեն անվտանգության համար ի սկզբանե, նույնիսկ պլանավորման փուլերում, այլ ոչ թե գործադրեն միջադեպերի արձագանքման համակարգ:
Ի տարբերություն բնորոշ ջրվեժը մոտենում է, որոնք անվտանգությունը դնում են կյանքի ցիկլի վերջում, սա էական փոփոխություն է։ Անվտանգությունը պետք է հաշվի առնել բոլոր ընտրություններում և զարգացման ողջ ցիկլի ընթացքում:
Ի լրումն սպառնալիքների մոդելների կիրառման, նրանք պահպանում են փորձարկման վրա հիմնված զարգացման միջավայր՝ անվտանգության փորձարկման դեպքերով:
Դուք պետք է համոզվեք, որ անվտանգության ավտոմատացված փորձարկումը և շարունակական ինտեգրումը ինտեգրված են գործընթացին:
Հավելվածի պոտենցիալ թույլ կողմերը գտնելու համար SecDevOps-ին անհրաժեշտ է լիարժեք հասկանալ, թե ինչպես է այն գործում:
Դուք կարող եք ավելի լավ պաշտպանել այն անվտանգության ռիսկերից հիմա, երբ դուք տեղյակ եք այս մասին: Սպառնալիքների մոդելները հաճախ օգտագործվում են դա անելու համար զարգացման ողջ ցիկլի ընթացքում:
Ավելի հասկանալու համար, թե ինչպես է այն գործում, եկեք նայենք տիպիկ SecDevOps ընթացակարգին:
Ծրագրավորողների կողմից օգտագործվում է տարբերակների կառավարման կառավարման համակարգ: Արդյունքում, նման նախագծերի վերաբերյալ հաղորդակցությունը հեշտանում է, և նրանք կարողանում են հետևել ծրագրային ապահովման մշակման նախաձեռնությունների ցանկացած փոփոխությանը:
Կոդավորման նախագծի վրա համատեղ աշխատելիս ծրագրավորողները կարող են հեշտությամբ բաժանել իրենց աշխատանքները՝ օգտագործելով մասնաճյուղերը:
- Ծրագրավորողը նախ կոդ կգրի համակարգի համար:
- Այնուհետև համակարգը կընդունի ճշգրտումները:
- Այնուհետև կոդը կվերցվի համակարգից և կուսումնասիրվի մեկ այլ մշակողի կողմից: Անվտանգության թերությունները կամ խոցելիությունները գտնելու համար այս փուլում վերլուծեք ստատիկ կոդը:
Այս փուլից հետո նորմալ SecDevOps ընթացակարգը կշարունակվի հետևյալ կերպ.
- Հավելվածի համար տեղակայման միջավայր ստեղծելը և համակարգում անվտանգության կարգավորումների կիրառումը՝ օգտագործելով IaC տեխնոլոգիաները, ինչպիսիք են Puppet, Chef և Ansible:
- հետին պլանի, ինտեգրման, API-ի, անվտանգության և UI թեստերի անցկացում, որպես թեստային ավտոմատացման փաթեթի մի մաս՝ ընդդեմ նոր տեղակայված հավելվածի:
- հավելվածի տեղակայում և դրա վրա ավտոմատ դինամիկ թեստավորում փորձարկման միջավայրում:
- Երբ այս թեստերը հաջող լինեն, տեղադրեք հավելվածը արտադրական միջավայրում:
- Մշտապես հետևելով արտադրական միջավայրում անվտանգության ցանկացած ակտիվ մտահոգություններին:
SecDevOps-ի առավելությունները
SecDevOps-ում անվտանգության թիմը նախօրոք սահմանում է հիմնական քաղաքականությունը:
Այս կանոնակարգերը կարող են ներառել այնպիսի բաներ, ինչպիսիք են կոդերի ստանդարտները, փորձարկման առաջարկությունները, ստատիկ և դինամիկ վերլուծության ուղեցույցները, թույլ գաղտնագրման և ոչ անվտանգ API-ների օգտագործման արգելքները և այլն:
Բացի այդ, նրանք ուրվագծում են գործոններ, որոնք պահանջում են անվտանգության թիմի ձեռքով գործողություն (օրինակ՝ նույնականացման կամ թույլտվության մոդելի փոփոխություններ կամ անվտանգության համար կարևոր այլ ոլորտներ):
Մշակող թիմը ձեռք է բերում փորձաքննություն անվտանգության ոլորտում՝ այն գործընթացում ներառելու արդյունքում:
Դրանով համոզվում է, որ խողովակաշարի ծայրն ունի անվտանգության ամենաքիչ հնարավոր թերությունները: Եթե խոցելիությունը պահպանվի, պարզ կլինի հետաքննություն կատարելը, ընթացակարգը թարմացնելը և բարելավումներ կատարելը:
Անվտանգության կանոններում և չափորոշիչներում պահանջվող փոփոխություններն ավելի հեշտ է դառնում հիմնական պատճառի վերլուծության օգնությամբ:
Այլ կերպ ասած, յուրաքանչյուր ցիկլով արդյունքը ավելի լավ կլինի: Կրկնվող բարելավումների մեկ այլ նպատակ է ուշ ցիկլի ավելի քիչ խանգարող էսկալացիաների ապահովումը:
Ստորև բերված են SecDevOps-ի ամենաակնառու առավելություններից մի քանիսը.
- Փոփոխություններին և պահանջներին արագ արձագանքելու կարողություն
- Կոդավորման խոցելիության վաղ հայտնաբերում
- Բարելավված շարժունություն և արագություն անվտանգության ստորաբաժանումների համար
- Ավելի թիմային համագործակցություն և հաղորդակցություն
- Ազատել թիմի անդամների ռեսուրսները՝ ավտոմատացման միջոցով բարձրարժեք գործունեության վրա աշխատելու համար
- Ավելի շատ հնարավորություններ որակի և անվտանգության փորձարկման, ինչպես նաև ավտոմատացված կառուցվածքների համար
Արդյունավետ ռազմավարություններ SecDevOps-ի համար
SecDevOps-ն ինտեգրում է անվտանգությունը, զարգացումը և գործառնությունները՝ օգնելու նրանց բոլորին աշխատել մեկ նպատակի ուղղությամբ՝ ուժեղացնելով թիմային աշխատանքը, ընթացակարգերը և գործիքները:
Մշակութային դժկամության, թիմային ոչ պատշաճ հաղորդակցության կամ ժամանակի սահմանափակումների պատճառով, ձեր DevOps-ի աշխատանքային հոսքի մեջ անվտանգություն ներառելը կարող է մի փոքր վախեցնել:
Թեև չկա մեկ, հաջողակ մեթոդ, որը յուրաքանչյուր ընկերություն կարող է օգտագործել SecDevOps ծրագիր մշակելու համար, կան որոշակի ցուցումներ և ռազմավարություններ, որոնք կարող են օգտակար լինել:
Սկսեք իրականացնել անվտանգ զարգացում և ուսուցում:
Սա չի նշանակում, որ դուք պետք է ստիպեք ձեր ինժեներներին դառնալ անվտանգության մասնագետներ կամ հմուտ լինել անվտանգության գերժամանակակից գործիքներում:
Բայց դուք ուզում եք մտածել նրանց անվտանգության ընթացակարգեր սովորեցնելու մասին, որոնք կօգնեն պաշտպանել ձեր ծրագիրը: Տ
o համոզվեք, որ ձեր մշակողները կարող են արագ ընկալել և օգտագործել անվտանգության ապահով ընթացակարգեր, դուք պետք է առաջարկեք անվտանգության դասընթացներ, որոնք եզակիորեն հարմարեցված են նրանց համար:
Օգտագործեք տարբերակի վերահսկողությունը բոլոր իրավիճակներում:
DevOps-ի համատեքստում յուրաքանչյուր կիրառական ծրագրակազմ, օրինաչափություն, դիագրամ և սցենար պետք է օգտագործի տարբերակման արդյունավետ գործիքներ և ռազմավարություններ:
Անվտանգության բազմաթիվ առավելություններ գալիս են տարբերակի վերահսկման հետ, և այն հնարավորություն է տալիս հրահանգներին՝
- Որոշեք, թե որ կառուցվածքը կամ հատկանիշն է օգտագործվել, երբ անվտանգության խնդիր է առաջացել:
- Հետևեք զարգացման գործունեությանը՝ իրավական չափանիշներին համապատասխանելու համար:
- Դիտեք և գտնեք ցանկացած վնասակար կամ խոցելի բաղադրիչներ, որոնք ավելացվել են զարգացման գործընթացին:
Ընդունեք մարդակենտրոն անվտանգության հայեցակարգը
Անվտանգության իրականացումը չպետք է ընկնի մեկ թիմի իրավասության ներքո:
Որպեսզի համոզվեք, որ բոլորն ընդունում են պատասխանատվությունը անվտանգության չափանիշներին հետևելու համար, ձեր ընկերությունը պետք է ընդունի մարդակենտրոն անվտանգության մշակույթ:
Խրախուսեք մշակողներին, փորձարկողներին և անձնակազմի այլ անդամներին անվտանգության ուսուցումից բացի անձնական պատասխանատվություն ստանձնել անվտանգության համար:
SԱնվտանգության մոնիտորինգը կարևոր է, բայց այն նաև պետք է ծագի անհատի ներսից, և թիմի յուրաքանչյուր անդամ պետք է պատասխանատվություն ստանձնի դրա համար:
Ավտոմատացնել կանոնավոր աշխատանքը
Հաստատված DevSecOps համակարգերից շատերը հաճախ և վաղ են օգտագործում ավտոմատացում:
Օրինակ, անվտանգության թեստերի ավտոմատացումը հեշտացնում է ձեր կոդի ցանկացած թերություններ հայտնաբերելը, ինչը արագացնում է զարգացումը և մեծացնում մշակողի արտադրողականությունը:
Սա հատկապես ճիշտ է խոշոր ընկերություններում, որտեղ ինժեներները հաճախ օրվա ընթացքում գործարկում են կոդերի մի քանի տարբերակներ:
SecDevOps-ի սահմանափակումները
Չնայած այն հանգամանքին, որ SecDevOps-ը հավելվածների մշակման ամենավերջին մեթոդաբանությունն է և առաջարկում է մի շարք առավելություններ սովորական տեխնիկայի նկատմամբ:
Այնուամենայնիվ, այն ունի նաև մի քանի սահմանափակումներ, որոնք թվարկված են ստորև:
- Այն չի կարող արագ կիրառվել, քանի որ դա երկար ընթացակարգ է:
- Անհրաժեշտ է մշակողներին վերապատրաստել անվտանգ կոդավորման տեխնիկայի և հաճախակի խոցելիության վերաբերյալ, որոնք պահանջում են ժամանակ և լրացուցիչ ռեսուրսներ։
- Շահերի բախում կարող է առաջանալ, եթե հայտը չի ենթարկվում անվտանգության անկախ գնահատման:
- Ծրագրերի մշակման պլանավորման փուլը սկզբում կարող է ավելի երկար տևել՝ քաղաքականության և գործընթացների լայնածավալ սահմանման շնորհիվ:
Եզրափակում
Քանի որ անվտանգության թիմերը անընդհատ գործելու նոր ուղիներ են գտնում, SecDevOps-ը ոգևորում է ոգևորությունը և խթանում ստեղծագործությունը:
Քանի որ գերատեսչությունները մրցակցային կապեր հաստատելու փոխարեն համագործակցում են միմյանց հետ, դա խթանում է կազմակերպչական աճը:
SecDevOps-ի ներդրումը ձեռնարկություններին առաջարկում է հիմնական տեխնիկական և ֆինանսական առավելություններ:
Հավելվածների մշակումը և հարակից գործընթացներն ավելի ապահով և արդյունավետ են, երբ հիմքում անվտանգությունն է, համաձայն SecDevOps-ի տեսակետի:
Թողնել գրառում