Тарс ва нафрат аз DevSecOps

Мо 2 таҳлилгари код, 4 асбоби динамикии санҷиш, ҳунарҳои худ ва 250 скрипт доштем. Ин на он аст, ки ҳамаи ин дар раванди ҷорӣ лозим аст, аммо вақте ки шумо ба татбиқи DevSecOps шурӯъ мекунед, шумо бояд то ба охир биравед.

Тарс ва нафрат аз DevSecOps

Сарчашма. Офарандагони персонаж: Ҷастин Ройланд ва Дэн Ҳармон.

SecDevOps чист? Дар бораи DevSecOps чӣ гуфтан мумкин аст? Фарқиятҳо чист? Амнияти барнома - ин чӣ аст? Чаро равиши классикӣ дигар кор намекунад? Ҷавоби ҳамаи ин саволҳоро медонад Юрий Шабалин аз он Амнияти шамшер. Юрий ба ҳама чиз муфассал ҷавоб медиҳад ва мушкилоти гузаришро аз модели классикии Амнияти Application ба раванди DevSecOps таҳлил мекунад: чӣ гуна бояд ба ҳамгироии раванди рушди бехатар ба раванди DevOps дуруст муносибат кард ва ҳеҷ чизро вайрон накунад, марҳилаҳои асосиро чӣ гуна бояд тай кард. санҷиши амният, кадом асбобҳоро истифода бурдан мумкин аст ва онҳо аз чӣ фарқ мекунанд ва чӣ гуна онҳоро дуруст танзим кардан мумкин аст, то аз домҳо пешгирӣ карда шавад.


Дар бораи маърузачй: Юрий Шабалин - Сармеъмори амният дар ширкат Амнияти шамшер. Масъул барои татбиқи SSDL, барои ҳамгироии умумии воситаҳои таҳлили барномаҳо ба экосистемаи ягонаи таҳия ва санҷиш. Таҷрибаи 7 сол дар соҳаи амнияти иттилоотӣ. Дар Alfa-Bank, Sberbank ва Positive Technologies кор кардааст, ки нармафзорро таҳия ва хидмат мерасонад. Маърузачӣ дар конфронсҳои байналмилалӣ ZerONights, PHDays, RISSPA, OWASP.

Амнияти барнома: сухан дар бораи чӣ меравад?

Амнияти барнома - Ин бахши амниятест, ки барои амнияти барнома масъул аст. Ин ба инфрасохтор ё амнияти шабака дахл надорад, балки он чизе ки мо менависем ва таҳиягарон дар болои он чӣ кор мекунанд - ин камбудиҳо ва осебпазирии худи барнома мебошанд.

Мақсад SDL ё SDLC - Давраи ҳаёти рушди амният - аз ҷониби Microsoft таҳия шудааст. Диаграмма модели каноникии SDLC-ро нишон медиҳад, ки вазифаи асосии он иштироки амният дар ҳама марҳилаҳои рушд, аз талабот то баровардан ва истеҳсол мебошад. Microsoft дарк кард, ки хатогиҳо дар ин соҳа хеле зиёданд, онҳо бештаранд ва дар ин бора коре кардан лозим буд ва онҳо ин равишро пешниҳод карданд, ки ба қонун табдил ёфтааст.

Тарс ва нафрат аз DevSecOps

Амнияти барнома ва SSDL на ба ошкор кардани осебпазирӣ, тавре ки маъмулан боварӣ доранд, нигаронида шудааст, балки барои пешгирии пайдоиши онҳо. Бо гузашти вақт, равиши каноникии Microsoft такмил дода шуд, таҳия ва ба ғаввоси амиқтар ва муфассалтар ҷорӣ карда шуд.

Тарс ва нафрат аз DevSecOps

SDLC-и каноникӣ дар методологияҳои гуногун хеле муфассал аст - OpenSAMM, BSIMM, OWASP. Методологияҳо гуногунанд, аммо умуман якхелаанд.

Сохтмони амнияти модели камолот

Ба ман бештар маъқул аст BSIMM - Сохтмони амнияти модели камолот. Асоси методология тақсимоти раванди Амнияти Барномаҳо ба 4 домен аст: Идоракунӣ, Intelligence, SSDL Touchpoints ва Deployment. Ҳар як домен 12 амалия дорад, ки ҳамчун 112 фаъолият муаррифӣ мешаванд.

Тарс ва нафрат аз DevSecOps

Ҳар яке аз 112 фаъолият дорад 3 дараҷаи камолот: ибтидоӣ, миёна ва пешрафта. Шумо метавонед ҳамаи 12 амалияро қисм ба бахш омӯзед, чизҳои барои шумо муҳимро интихоб кунед, фаҳмед, ки чӣ тавр татбиқ кардани онҳо ва тадриҷан элементҳоро илова кунед, масалан, таҳлили коди статикӣ ва динамикӣ ё баррасии код. Шумо дар доираи амалисозии чорабиниҳои интихобшуда нақша менависед ва аз рӯи он оромона кор мекунед.

Чаро DevSecOps

DevOps як раванди умумӣ ва бузургест, ки дар он амният бояд ба назар гирифта шавад.

Сароғоз DevOps тафтиши бехатариро дарбар мегирифт. Дар амал шумораи дастадои мудофизатй назар ба дозира хеле кам буд ва ондо на дамчун иштирокчии процесс, балки дамчун органи назорату назорате баромад мекарданд, ки ба ондо талабот мегузоранд ва сифати мадсулотро дар охири баровардан месанчанд. Ин як равиши классикист, ки дар он дастаҳои амниятӣ дар паси девор аз рушд буданд ва дар ин раванд иштирок намекарданд.

Тарс ва нафрат аз DevSecOps

Мушкилоти асосӣ ин аст, ки амнияти иттилоотӣ аз рушд ҷудо аст. Одатан ин як навъ схемаи амнияти иттилоотист ва он дорои 2-3 асбоби калон ва гаронбаҳо мебошад. Як маротиба дар шаш моҳ, рамзи сарчашма ё барномае, ки бояд тафтиш карда шавад, меояд ва дар як сол як маротиба истеҳсол карда мешавад пентестхо. Ҳамаи ин ба он оварда мерасонад, ки санаи барориши ин соҳа ба таъхир меафтад ва таҳиякунанда ба шумораи зиёди осебпазирии воситаҳои автоматӣ дучор мешавад. Хамаи инро ба кисмхо чудо кардану таъмир кардан мум-кин нест, зеро натичахои шашмохаи пештара ба тартиб андохта нашудаанд, вале дар ин чо партияи нав.

Дар ҷараёни кори ширкати мо, мо мебинем, ки амният дар ҳама соҳаҳо ва соҳаҳо дарк мекунад, ки вақти он расидааст, ки бо рушд дар як чарх - дар Ҷасади. Парадигмаи DevSecOps бо методологияи таҳияи agile, татбиқ, дастгирӣ ва иштирок дар ҳар як нашр ва итератсия комилан мувофиқ аст.

Тарс ва нафрат аз DevSecOps

Гузариш ба DevSecOps

Калимаи муҳимтарин дар давраи рушди амният ин аст "раванд". Пеш аз он ки дар бораи харидани асбобҳо фикр кунед, шумо бояд инро фаҳмед.

Танҳо ворид кардани абзорҳо ба раванди DevOps кофӣ нест - муошират ва фаҳмиши байни иштирокчиёни раванд муҳим аст.

Одамон муҳимтаранд, на асбобҳо.

Аксар вақт, банақшагирии раванди таҳияи бехатар аз интихоб ва харидани асбоб оғоз мешавад ва бо кӯшиши ҳамгироӣ кардани асбоб ба раванди ҷорӣ, ки кӯшишҳо боқӣ мемонанд, анҷом меёбад. Ин ба оқибатҳои ногувор оварда мерасонад, зеро ҳама воситаҳо хусусиятҳо ва маҳдудиятҳои худро доранд.

Ҳолати маъмулӣ он аст, ки шӯъбаи амният асбоби хуб ва гаронбаҳои дорои қобилиятҳои васеъро интихоб кард ва ба таҳиягарон барои ворид кардани он ба раванд омад. Аммо ин кор намекунад - раванд тавре сохта шудааст, ки маҳдудиятҳои асбоби аллакай харидашуда ба парадигмаи ҷорӣ мувофиқат накунанд.

Аввалан, тасвир кунед, ки шумо чӣ натиҷа мехоҳед ва ин раванд чӣ гуна хоҳад буд. Ин барои фаҳмидани нақшҳои асбоб ва бехатарӣ дар раванд кӯмак хоҳад кард.

Аз он чизе, ки аллакай истифода мешавад, оғоз кунед

Пеш аз харидани асбобҳои қиматбаҳо, ба он чизе, ки шумо аллакай доред, назар кунед. Ҳар як ширкат талаботҳои амниятӣ барои рушд дорад, чекҳо, пентестҳо мавҷуданд - чаро ҳамаи инро ба шакле табдил надиҳед, ки барои ҳама фаҳмо ва қулай бошад?

Одатан, талабот як коғази Талмуд, ки дар раф ҷойгир аст. Ҳолате буд, ки мо барои дидани равандҳо ба ширкат омадем ва хоҳиш кардем, ки талаботи амнияти нармафзорро бубинем. Мутахассисе, ки бо ин кор машғул буд, муддати тӯлонӣ ҷустуҷӯ кард:

— Холо дар ягон чо дар кайдхо рохе пайдо шуда буд, ки ин хуччат дар он чо хобидааст.

Дар натиҷа мо ҳуҷҷатро баъди як ҳафта гирифтем.

Барои талабот, чекҳо ва чизҳои дигар, як саҳифа эҷод кунед, масалан. Эътимод - он барои ҳама қулай аст.

Он чизеро, ки аллакай доред, формат кунед ва онро барои оғоз кардан истифода баред, осонтар аст.

Чемпионҳои амниятро истифода баред

Одатан, дар як ширкати миёна бо 100-200 таҳиягар, як мутахассиси амниятӣ вуҷуд дорад, ки якчанд вазифаҳоро иҷро мекунад ва барои тафтиши ҳама чиз вақти ҷисмонӣ надорад. Ҳатто агар ӯ тамоми кӯшишро ба харҷ диҳад, танҳо ӯ тамоми кодеро, ки рушд тавлид мекунад, тафтиш намекунад. Барои чунин ҳолатҳо консепсия таҳия шудааст - Чемпионҳои амният.

Чемпионҳои Амният одамоне ҳастанд, ки дар ҳайати таҳиягарон ба амнияти маҳсулоти шумо таваҷҷӯҳ доранд.

Тарс ва нафрат аз DevSecOps

Чемпиони Амният як нуқтаи воридшавӣ ба дастаи таҳиякунанда аст ва як башоратгари амният ба як дохил карда шудааст.

Одатан, вақте ки мутахассиси амният ба гурӯҳи таҳиягарон меояд ва хатогии кодро нишон медиҳад, ӯ ҷавоби ҳайратовар мегирад:

- Ва шумо кистед? Ман туро бори аввал мебинам. Ҳама чиз бо ман хуб аст - дӯсти калонии ман ба ман дар баррасии код "ариза" дод, мо идома медиҳем!

Ин як ҳолати маъмулист, зеро эътимоди бештар ба пиронсолон ё ҳамкорони оддӣ вуҷуд дорад, ки таҳиягар ҳамеша дар кор ва баррасии код бо онҳо ҳамкорӣ мекунад. Агар ба ҷои афсари амният Чемпиони Амният хато ва оқибатҳоро нишон диҳад, пас сухани ӯ вазни бештар хоҳад дошт.

Инчунин, таҳиягарон рамзи худро аз ҳар як мутахассиси амният беҳтар медонанд. Барои шахсе, ки дар як абзори таҳлили статикӣ ҳадди аққал 5 лоиҳа дорад, одатан дар хотир доштани ҳама нозукиҳо душвор аст. Чемпионҳои амният маҳсулоти худро медонанд: чӣ бо чӣ кор мекунад ва аввал ба чӣ назар кардан лозим аст - онҳо самараноктаранд.

Аз ин рӯ, татбиқи Чемпионҳои Амният ва васеъ кардани таъсири дастаи амниятии худро баррасӣ кунед. Ин барои худи чемпион низ муфид аст: такмили ихтисос дар соҳаи нав, васеъ кардани уфуқҳои техникии ӯ, такмил додани малакаҳои техникӣ, идоракунӣ ва роҳбарӣ, баланд бардоштани арзиши бозор. Ин як унсури муҳандисии иҷтимоӣ, "чашмон" -и шумо дар гурӯҳи таҳиякунанда аст.

Марҳилаҳои санҷиш

Парадигма аз 20 то 80 мегӯяд, ки 20% кӯшиш 80% натиҷа медиҳад. Ин 20% таҷрибаҳои таҳлили барномаҳост, ки метавонанд ва бояд автоматӣ карда шаванд. Намунаҳои чунин фаъолиятҳо таҳлили статикӣ мебошанд - Савол, таҳлили динамикӣ - ДАСТ и Назорати кушодаасос. Ман ба шумо дар бораи фаъолиятҳо, инчунин дар бораи асбобҳо, ки мо одатан ҳангоми ворид кардани онҳо ба раванд бо кадом хусусиятҳо дучор мешавем ва чӣ гуна онро дуруст иҷро кардан лозим аст, бештар мегӯям.

Тарс ва нафрат аз DevSecOps

Проблемаҳои асосии асбобҳо

Ман проблемаҳоеро, ки барои ҳама асбобҳо мувофиқанд ва таваҷҷӯҳро талаб мекунанд, таъкид мекунам. Ман онҳоро муфассалтар таҳлил мекунам, то минбаъд такрор нашаванд.

Муҳлати таҳлили дароз. Агар барои ҳама санҷишҳо ва ҷамъбаст 30 дақиқа вақт ҷудо карда шавад, пас санҷиши амнияти иттилоотӣ як рӯзро мегирад. Бинобар ин, ҳеҷ кас ин равандро суст намекунад. Ин хусусиятро ба назар гирифта, хулоса бароред.

Сатҳи баланди манфии бардурӯғ ё мусбати бардурӯғ. Ҳама маҳсулот гуногунанд, ҳама чаҳорчӯбаҳои гуногун ва услуби рамзгузории худро истифода мебаранд. Дар асоси кодҳо ва технологияҳои гуногун, асбобҳо метавонанд сатҳҳои гуногуни манфии бардурӯғ ва мусбати бардурӯғро нишон диҳанд. Пас, бубинед, ки маҳз дар чист аз шумо ширкатҳо ва барои шумо барномаҳо натиҷаҳои хуб ва боэътимод нишон медиҳанд.

Интегратсия бо асбобҳои мавҷуда вуҷуд надорад. Ба асбобҳо аз нуқтаи назари ҳамгироӣ бо он чизе, ки шумо аллакай истифода мекунед, нигаред. Масалан, агар шумо Jenkins ё TeamCity дошта бошед, ҳамгироии асбобҳоро бо ин нармафзор санҷед, на бо GitLab CI, ки шумо истифода намебаред.

Набудани ё мураккабии аз ҳад зиёди мутобиқсозӣ. Агар асбоб API надошта бошад, пас чаро он лозим аст? Ҳама чизе, ки дар интерфейс анҷом дода мешавад, бояд тавассути API дастрас бошад. Идеалӣ, асбоб бояд қобилияти танзими чекҳоро дошта бошад.

Харитаи роҳи рушди маҳсулот вуҷуд надорад. Рушд дар як ҷо намеистад, мо ҳамеша чаҳорчӯба ва функсияҳои навро истифода мебарем, рамзи кӯҳнаро ба забонҳои нав аз нав менависем. Мо мехоҳем итминон дошта бошем, ки асбобе, ки мо мехарем, чаҳорчӯба ва технологияҳои навро дастгирӣ мекунад. Аз ин рӯ, муҳим аст, ки бидонед, ки маҳсулот воқеӣ ва дуруст аст харитаи инкишоф.

Хусусиятҳои раванди

Илова ба хусусиятҳои асбобҳо, хусусиятҳои раванди рушдро ба назар гиред. Масалан, монеъ шудан ба рушд хатои маъмулист. Биёед бубинем, ки кадом хусусиятҳои дигар бояд ба назар гирифта шаванд ва гурӯҳи амниятӣ бояд ба он диққат диҳанд.

Барои аз даст надодани мӯҳлатҳои таҳия ва озодкунӣ, эҷод кунед қоидаҳои гуногун ва гуногун бандҳоро нишон диҳед - меъёрҳои қатъ кардани раванди сохтмон дар ҳолати осебпазирӣ - барои муҳитҳои гуногун. Масалан, мо мефаҳмем, ки филиали ҳозира ба стенди рушд ё UAT меравад, ки ин маънои онро дорад, ки мо таваққуф намекунем ва мегӯем:

"Шумо дар ин ҷо осебпазирӣ доред, шумо дигар ба ҷое намеравед!"

Дар ин лаҳза, муҳим аст, ки ба таҳиягарон бигӯем, ки масъалаҳои амниятӣ мавҷуданд, ки ба онҳо таваҷҷӯҳ доранд.

Мавҷудияти осебпазирӣ монеа барои санҷиши минбаъда нест: дастӣ, ҳамгироӣ ё дастӣ. Аз тарафи дигар, мо бояд бо ягон роҳ амнияти маҳсулотро зиёд кунем ва таҳиягарон он чизеро, ки бехатар мешуморанд, фаромӯш накунанд. Аз ин рӯ, баъзан мо ин корро мекунем: дар стенд, вақте ки он ба муҳити рушд интиқол дода мешавад, мо танҳо таҳияро огоҳ мекунем:

-Бачаҳо, шумо мушкилот доред, лутфан ба онҳо диққат диҳед.

Дар марҳилаи UAT мо боз дар бораи осебпазириҳо огоҳӣ медиҳем ва дар марҳилаи озодкунӣ мо мегӯем:

- Бачаҳо, мо шуморо борҳо огоҳ карда будем, шумо ҳеҷ кор накардед - мо шуморо бо ин роҳ намедиҳем.

Агар мо дар бораи код ва динамика сухан ронем, пас дар бораи осебпазирӣ танҳо он хусусиятҳо ва кодҳое, ки дар ин хусусият навишта шудаанд, нишон додан ва огоҳ кардан лозим аст. Агар таҳиякунанда тугмаро ба 3 пиксел ҳаракат кунад ва мо ба ӯ гӯем, ки вай дар он ҷо тазриқи SQL дорад ва аз ин рӯ бояд фавран ислоҳ карда шавад, ин нодуруст аст. Танҳо ба он чизе, ки ҳоло навишта шудааст ва тағироте, ки ба ариза меояд, нигаред.

Фарз мекунем, ки мо як нуқсони функсионалии муайян дорем - тарзи барнома набояд кор кунад: пул интиқол дода намешавад, вақте ки шумо тугмаро пахш мекунед, ба саҳифаи навбатӣ гузариш нест ё маҳсулот бор намекунад. Камбудиҳои амният - инҳо ҳамон нуксонҳо ҳастанд, аммо на аз рӯи кори барнома, балки дар амният.

На ҳама мушкилоти сифати нармафзор мушкилоти амниятӣ мебошанд. Аммо ҳама мушкилоти амниятӣ ба сифати нармафзор алоқаманданд. Шериф Мансур, Expedia.

Азбаски ҳама осебпазириҳо як нуқсонанд, онҳо бояд дар ҳамон ҷое ҷойгир шаванд, ки ҳама камбудиҳои рушд доранд. Пас, дар бораи гузоришҳо ва PDF-ҳои даҳшатнок, ки ҳеҷ кас намехонад, фаромӯш кунед.

Тарс ва нафрат аз DevSecOps

Вақте ки ман дар як ширкати рушд кор мекардам, ман аз воситаҳои таҳлили статикӣ гузориш гирифтам. Ман онро кушодам, даҳшатнок шудам, қаҳва тайёр кардам, 350 саҳифаро варақ задам, онро пӯшидам ва кор кардам. Гузоришҳои калон гузоришҳои мурдаанд. Одатан онҳо ба ҳеҷ ҷо намераванд, ҳарфҳо нест карда мешаванд, фаромӯш мешаванд, гум мешаванд ё тиҷорат мегӯяд, ки хатарҳоро қабул мекунад.

Чӣ бояд кард? Мо танҳо камбудиҳои тасдиқшударо, ки мо пайдо кардем, ба шакли барои рушд мувофиқ табдил медиҳем, масалан, мо онҳоро дар Ҷира дар ақибмонда қарор медиҳем. Мо камбудиҳоро дар ҷои аввал мегузорем ва онҳоро дар баробари нуқсонҳои функсионалӣ ва нуқсонҳои санҷишӣ бо тартиби афзалиятнок бартараф мекунем.

Таҳлили статикӣ - SAST

Ин як таҳлили код барои осебпазирӣ аст., аммо он яксон бо SonarQube нест. Мо на танҳо намуна ё услубро тафтиш мекунем. Дар таҳлил як қатор равишҳо истифода мешаванд: аз рӯи дарахти осебпазирӣ, мувофиқи DataFlow, тавассути таҳлили файлҳои конфигуратсия. Ин ҳама чизест, ки ба худи код дахл дорад.

Тарафҳои равиш: муайян кардани осебпазирӣ дар код дар марҳилаи аввали рушдвакте ки хануз стендхо ва асбобхои тайёр мавчуд нестанд, ва қобилияти сканеркунии афзоянда: скан кардани қисмати рамзи тағирёфта ва танҳо хусусияте, ки мо ҳоло иҷро карда истодаем, ки вақти сканро кам мекунад.

Минусы - ин набудани дастгирии забонҳои зарурӣ аст.

Интегратсияҳои зарурӣ, ки бояд дар асбобҳо бошад, ба андешаи субъективии ман:

  • Воситаи ҳамгироӣ: Ҷенкинс, TeamCity ва Gitlab CI.
  • Муҳити рушд: Intellij IDEA, Visual Studio. Барои таҳиягар қулайтар аст, ки интерфейси нофаҳморо паймоиш накунад, ки то ҳол онро дар хотир нигоҳ доштан лозим аст, балки дидани ҳамаи интегратсияҳо ва осебпазириҳои заруриро, ки ӯ дар ҷои кор дар муҳити рушди худ пайдо кардааст.
  • Баррасии код: SonarQube ва баррасии дастӣ.
  • Назоратчиёни камбудиҳо: Jira ва Bugzilla.

Дар расм баъзе беҳтарин намояндагони таҳлили статикӣ нишон дода шудаанд.

Тарс ва нафрат аз DevSecOps

На абзорҳо, балки раванд муҳиманд, бинобар ин, қарорҳои кушодаасос мавҷуданд, ки барои санҷиши раванд низ хубанд.

Тарс ва нафрат аз DevSecOps

SAST Source шумораи зиёди осебпазирӣ ё DataFlows мураккабро пайдо намекунад, аммо онҳо метавонанд ҳангоми сохтани раванд истифода шаванд ва бояд истифода шаванд. Онҳо барои фаҳмидани он, ки раванд чӣ гуна сохта мешавад, кӣ ба хатогиҳо ҷавоб медиҳад, кӣ гузориш медиҳад ва кӣ гузориш медиҳад. Агар шумо хоҳед, ки марҳилаи ибтидоии эҷоди амнияти коди худро анҷом диҳед, қарорҳои кушодаасосро истифода баред.

Агар шумо дар оғози саёҳати худ бошед ва ҳеҷ чиз надошта бошед: CI, Ҷенкинс, TeamCity нест, инро чӣ гуна метавон муттаҳид кард? Биёед интегратсияро ба раванд баррасӣ кунем.

Интегратсияи сатҳи CVS

Агар шумо Bitbucket ё GitLab дошта бошед, шумо метавонед дар сатҳи ҳамгироӣ кунед Системаи версияҳои ҳамзамон.

Аз рӯи ҳодиса - кашидан дархост, иҷро кардан. Шумо кодро скан мекунед ва ҳолати сохтмон нишон медиҳад, ки оё санҷиши амният гузашт ё ноком шудааст.

Алоқа. Албатта, фикру мулоҳизаҳо ҳамеша лозиманд. Агар шумо танҳо амниятро дар паҳлӯ анҷом додед, онро ба қуттӣ гузоред ва дар ин бора ба касе чизе нагуфтед ва дар охири моҳ як қатор хатогиҳоро партофтаед - ин дуруст нест ва хуб нест.

Интегратсия бо системаи баррасии код

Боре, мо ҳамчун барраси пешфарз барои корбари техникии AppSec дар як қатор лоиҳаҳои муҳим баромад кардем. Вобаста аз он ки оё хатогиҳо дар кодекси нав муайян карда шудаанд ё ягон хатогӣ вуҷуд надорад, баррасӣ ҳолати дархостро барои "қабул кардан" ё "кор лозим" муқаррар мекунад - ё ҳама чиз хуб аст ё истинодҳо ба он чизе, ки бояд такмил дода шавад. такмил додан лозим аст. Барои ҳамгироӣ бо версияи дар истеҳсолот қарордошта, мо манъи якҷоякуниро фаъол кардем, агар аз санҷиши амнияти иттилоотӣ нагузашта бошад. Мо инро ба баррасии дастӣ дохил кардем ва дигар иштирокчиёни ин раванд ҳолати амниятии ин равандро диданд.

Интегратсия бо SonarQube

Бисёриҳо доранд дарвозаи сифат аз чихати сифати код. Дар ин ҷо ҳамон як аст - шумо метавонед ҳамон дарвозаҳоро танҳо барои асбобҳои SAST созед. Якхела интерфейс, ҳамон дарвозаи сифат хоҳад буд, танҳо он даъват карда мешавад дарвозаи амният. Ва инчунин, агар шумо бо истифода аз SonarQube раванд дошта бошед, шумо метавонед ҳама чизро дар он ҷо ба осонӣ муттаҳид кунед.

Интегратсия дар сатҳи CI

Дар ин ҷо ҳама чиз хеле оддӣ аст:

  • Дар баробари санҷишҳои автоматӣ, санҷишҳои воҳиди.
  • Тақсим аз рӯи марҳилаҳои рушд: таҳия, озмоиш, истеҳсол. Маҷмӯи қоидаҳо ё шартҳои нокомии гуногун метавонанд дохил карда шаванд: ҷамъомадро қатъ кунед, васлро қатъ накунед.
  • Оғози синхронӣ/асинхронӣ. Мо интизори анҷоми санҷишҳои амниятӣ ҳастем ё не. Яъне мо танҳо онҳоро ба кор андохтаем ва пеш меравем ва баъдан статус мегирем, ки ҳамааш хуб аст ё бад.

Ин ҳама дар ҷаҳони гулобии комил аст. Дар ҳаёти воқеӣ чунин чизе нест, аммо мо кӯшиш мекунем. Натиҷаи санҷиши бехатарӣ бояд ба натиҷаҳои санҷишҳои воҳид монанд бошад.

Масалан, мо як лоиҳаи калонро гирифтем ва қарор додем, ки ҳоло онро бо SAST - OK скан мекунем. Мо ин лоиҳаро ба SAST тела додем, он ба мо 20 осебпазирӣ дод ва бо қарори иродаи қавӣ мо тасмим гирифтем, ки ҳама чиз хуб аст. 000 осебпазирӣ қарзи техникии мост. Мо қарзро ба қуттӣ мегузорем, оҳиста-оҳиста онро тоза мекунем ва хатогиҳоро барои ноқисҳои трекерҳо илова мекунем. Биёед як ширкатро киро кунем, ҳама чизро худамон иҷро кунем ё Чемпионҳои Амният ба мо кӯмак кунанд - ва қарзи техникӣ кам мешавад.

Ва ҳама осебпазириҳои нав пайдошуда дар кодекси нав бояд ҳамон тавре, ки хатогиҳо дар як воҳид ё санҷишҳои автоматӣ бартараф карда шаванд. Нисбатан, маҷлис оғоз шуд, мо онро иҷро кардем, ду озмоиш ва ду санҷиши амниятӣ ноком шуданд. Хуб - мо рафтем, ба чӣ рӯй дод, дида баромадем, як чизро ислоҳ кардем, чизи дигарро ислоҳ кардем, дафъаи дигар онро иҷро кардем - ҳама чиз хуб буд, ягон осебпазирии нав пайдо нашуд, ҳеҷ гуна озмоишҳо ноком шуданд. Агар ин вазифа амиқтар бошад ва ба шумо лозим аст, ки онро хуб дарк кунед, ё ислоҳ кардани осебҳо ба қабатҳои зиёди он чизе, ки дар зери сарпӯш ҷойгир аст, таъсир расонад: хато ба трекери камбудиҳо илова карда шуд, он афзалият дода мешавад ва ислоҳ карда мешавад. Мутаассифона, ҷаҳон комил нест ва санҷишҳо баъзан ноком мешаванд.

Намунаи дарвозаи амниятӣ аналоги дарвозаи сифат аз ҷиҳати мавҷудият ва шумораи осебпазириҳо дар код мебошад.

Тарс ва нафрат аз DevSecOpsМо бо SonarQube ҳамгиро мешавем - плагин насб шудааст, ҳама чиз хеле қулай ва олӣ аст.

Интегратсия бо муҳити рушд

Вариантҳои интегратсия:

  • Иҷрои скан аз муҳити таҳия пеш аз содир.
  • Натиҷаҳоро дидан.
  • Таҳлили натиҷаҳо.
  • Синхронизатсия бо сервер.

Чунин ба назар мерасад, ки натиҷаҳо аз сервер гирифта шаванд.

Тарс ва нафрат аз DevSecOps

Дар муҳити рушди мо Intellect IDEA танҳо як ҷузъи иловагӣ пайдо мешавад, ки ба шумо хабар медиҳад, ки ин гуна осебпазириҳо ҳангоми скан ошкор карда шудаанд. Шумо метавонед фавран кодро таҳрир кунед, тавсияҳоро бубинед ва Графикаи ҷараён. Ин ҳама дар ҷои кории таҳиягар ҷойгир аст, ки хеле қулай аст - лозим нест, ки истинодҳои дигарро пайгирӣ кунед ва ба чизи иловагӣ назар кунед.

Манбаи кушода

Ин мавзӯи дӯстдоштаи ман аст. Ҳама китобхонаҳои кушодаасосро истифода мебаранд - чаро як даста асобаҳо ва дучархаҳо нависед, вақте ки шумо метавонед як китобхонаи тайёреро гиред, ки дар он ҳама чиз аллакай амалӣ шудааст?

Тарс ва нафрат аз DevSecOps

Албатта, ин дуруст аст, аммо китобхонаҳо низ аз ҷониби одамон навишта мешаванд, онҳо инчунин хатарҳои муайянро дар бар мегиранд ва инчунин осебпазириҳо мавҷуданд, ки давра ба давра ё мунтазам гузориш дода мешаванд. Аз ин рӯ, қадами навбатӣ дар Амнияти Ариза вуҷуд дорад - ин таҳлили ҷузъҳои кушодаасос аст.

Таҳлили кушодаасос - OSA

Восита се марҳилаи калонро дар бар мегирад.

Ҷустуҷӯи осебпазирӣ дар китобхонаҳо. Масалан, асбоб медонад, ки мо ягон китобхонаро истифода мебарем ва он дар CVE ё дар трекерҳои хатогиҳо, ки ба ин версияи китобхона алоқаманданд, баъзе осебпазириҳо мавҷуданд. Ҳангоми кӯшиши истифодаи он, асбоб огоҳӣ медиҳад, ки китобхона осебпазир аст ва ба шумо маслиҳат медиҳад, ки версияи дигареро, ки осебпазирӣ надорад, истифода баред.

Таҳлили тозагии иҷозатнома. Ин ҳоло дар ин ҷо махсусан маъмул нест, аммо агар шумо дар хориҷа кор кунед, гоҳ-гоҳ шумо метавонед дар он ҷо барои истифодаи як ҷузъи кушодаасос, ки истифода ё тағир дода намешавад, андоз гиред. Тибқи сиёсати китобхонаи иҷозатномадор, мо ин корро карда наметавонем. Ё, агар мо онро тағир диҳем ва онро истифода барем, мо бояд рамзи худро ҷойгир кунем. Албатта, ҳеҷ кас намехоҳад рамзи маҳсулоти худро нашр кунад, аммо шумо инчунин метавонед худро аз ин муҳофизат кунед.

Таҳлили ҷузъҳое, ки дар муҳити саноатӣ истифода мешаванд. Биёед вазъияти гипотетикиро тасаввур кунем, ки мо ниҳоят таҳияро ба анҷом расонидем ва версияи охирини хидмати микросервиси худро баровардаем. Ӯ дар он ҷо аҷиб зиндагӣ мекунад - як ҳафта, як моҳ, як сол. Мо онро ҷамъ намекунем, санҷиши бехатарӣ намегузаронем, ҳама чиз хуб ба назар мерасад. Аммо ногаҳон, пас аз ду ҳафтаи нашр, осебпазирии муҳим дар ҷузъи кушодаасос пайдо мешавад, ки мо онро дар ин сохтори мушаххас дар муҳити саноатӣ истифода мебарем. Агар мо сабт накунем, ки чӣ ва дар куҷо истифода мебарем, пас мо ин осебпазириро намебинем. Баъзе асбобҳо қобилияти назорат кардани осебпазириро дар китобхонаҳое доранд, ки ҳоло дар ин соҳа истифода мешаванд. Ин хеле муфид аст.

Хусусиятҳои:

  • Сиёсати гуногун барои марҳилаҳои гуногуни рушд.
  • Мониторинги ҷузъҳо дар муҳити саноатӣ.
  • Назорати китобхонаҳо дар дохили ташкилот.
  • Дастгирии системаҳо ва забонҳои гуногуни сохтмон.
  • Таҳлили тасвирҳои Docker.

Якчанд мисоли пешвоёни соҳа, ки бо таҳлили кушодаасос машғуланд.

Тарс ва нафрат аз DevSecOps
Ягона ройгон ин аст Вобастагӣ - Санҷед аз OWASP. Шумо метавонед онро дар марҳилаҳои аввал фаъол созед, бубинед, ки он чӣ гуна кор мекунад ва он чиро дастгирӣ мекунад. Асосан, ин ҳама маҳсулоти абрӣ ё дар дохили бино мебошанд, аммо дар паси пойгоҳи онҳо онҳо то ҳол ба Интернет фиристода мешаванд. Онҳо на китобхонаҳои шумо, балки хэшҳо ё арзишҳои худро, ки онҳо ҳисоб мекунанд ва изи ангуштонро ба сервери худ мефиристанд, то дар бораи мавҷудияти осебпазирӣ маълумот гиранд.

Интегратсияи равандҳо

Назорати периметрии китобхонаҳо, ки аз манбаъҳои беруна бор карда шудаанд. Мо захираҳои берунӣ ва дохилӣ дорем. Масалан, Event Central Nexus-ро идора мекунад ва мо мехоҳем боварӣ ҳосил кунем, ки дар анбори мо ягон осебпазирии дорои мақоми "интиқодӣ" ё "баланд" мавҷуд нест. Шумо метавонед проксиро бо истифода аз асбоби Lifecycle Nexus Firewall танзим кунед, то ин гуна осебпазириҳо қатъ карда шаванд ва дар анбори дохилӣ хотима наёбанд.

Интегратсия ба CI. Дар як сатҳ бо автотестҳо, санҷишҳои воҳидҳо ва тақсимот ба марҳилаҳои рушд: таҳия, озмоиш, истеҳсол. Дар ҳар як марҳила, шумо метавонед ҳама гуна китобхонаҳоро зеркашӣ кунед, ҳама чизро истифода баред, аммо агар дар ҳолати "интиқодӣ" чизи душвор мавҷуд бошад, шояд дар марҳилаи ба истеҳсолот баровардан диққати таҳиягаронро ба ин ҷалб кардан лозим аст.

Интегратсия бо артефактҳо: Nexus ва JFrog.

Интегратсия ба муҳити рушд. Воситаҳое, ки шумо интихоб мекунед, бояд бо муҳити рушд ҳамгироӣ дошта бошанд. Таҳиягар бояд ба натиҷаҳои сканкунӣ аз ҷои кори худ дастрасӣ дошта бошад ё қобилияти скан ва тафтиши кодро барои осебпазирӣ пеш аз ворид шудан ба CVS дошта бошад.

Интегратсияи CD. Ин як хусусияти аҷибест, ки ба ман хеле маъқул аст ва ман аллакай дар бораи он гуфта будам - ​​мониторинги пайдоиши осебпазириҳои нав дар муҳити саноатӣ. Он чизе монанди ин кор мекунад.

Тарс ва нафрат аз DevSecOps

Мо дорем Анборҳои ҷузъҳои ҷамъиятӣ — баъзе асбобхо дар берун ва анбори дохилии мо. Мо мехоҳем, ки он танҳо ҷузъҳои боэътимод дошта бошад. Ҳангоми прокси-серви дархост, мо тафтиш мекунем, ки китобхонаи зеркашида осебпазирӣ надорад. Агар он ба баъзе сиёсатҳое, ки мо муқаррар мекунем ва ҳатман бо таҳия мувофиқат мекунем, мувофиқат кунад, мо онро бор намекунем ва хоҳиш карда мешавад, ки версияи дигарро истифода барем. Мувофиқи он, агар дар китобхона чизи воқеан муҳим ва бад мавҷуд бошад, пас таҳиякунанда дар марҳилаи насб китобхонаро қабул намекунад - бигзор вай версияи баландтар ё пасттарро истифода барад.

  • Ҳангоми сохтан, мо тафтиш мекунем, ки ҳеҷ кас ягон чизи бад назадааст, ҳама ҷузъҳо бехатаранд ва касе ба флеш-диск чизи хатарнок наовардааст.
  • Мо дар анбор танҳо ҷузъҳои боэътимод дорем.
  • Ҳангоми ҷойгиркунӣ, мо бори дигар худи бастаро тафтиш мекунем: war, jar, DL ё тасвири Docker, то боварӣ ҳосил кунед, ки он ба сиёсат мувофиқат мекунад.
  • Ҳангоми ворид шудан ба саноат, мо назорат мекунем, ки дар муҳити саноатӣ чӣ рӯй медиҳад: осебпазирии ҷиддӣ пайдо мешаванд ё пайдо намешаванд.

Таҳлили динамикӣ - DAST

Воситаҳои таҳлили динамикӣ аз ҳама чизҳое, ки қаблан гуфта шуда буданд, ба куллӣ фарқ мекунанд. Ин як навъ тақлид ба кори корбар бо барнома мебошад. Агар ин як веб-барнома бошад, мо дархостҳо мефиристем, ки кори муштариро тақлид мекунад, тугмаҳои пешро пахш мекунем, маълумоти сунъиро аз форма ирсол мекунем: нохунакҳо, қавсҳо, аломатҳо дар рамзгузории гуногун, то бубинем, ки барнома чӣ гуна кор ва коркард мекунад маълумоти беруна.

Ҳамин система ба шумо имкон медиҳад, ки осебпазирии шаблонро дар Сарчашмаи Open тафтиш кунед. Азбаски DAST намедонад, ки мо кадом Манбаи кушодаро истифода мебарем, он танҳо намунаҳои "зараровар" мепартояд ва посухҳои серверро таҳлил мекунад:

- Бале, дар ин ҷо мушкили бесериясозӣ вуҷуд дорад, аммо дар ин ҷо не.

Дар ин ҳолат хатарҳои калон вуҷуд доранд, зеро агар шумо ин санҷиши бехатариро дар ҳамон курсие, ки озмоишгарон бо он кор мекунанд, гузаронед, чизҳои ногувор рӯй дода метавонанд.

  • Сарбории баланд дар шабакаи сервери барномаҳо.
  • Интегратсия нест.
  • Имконияти тағир додани танзимоти барномаи таҳлилшуда.
  • Ба технологиям зарурй ёрй расонда намешавад.
  • Мушкилии танзим.

Вақте ки мо ниҳоят AppScan-ро оғоз кардем, мо вазъияте доштем: мо муддати тӯлонӣ кӯшиш кардем, ки ба барнома дастрасӣ пайдо кунем, 3 ҳисоб гирифтем ва хурсанд шудем - дар ниҳоят ҳама чизро тафтиш хоҳем кард! Мо сканро оғоз кардем ва аввалин коре, ки AppScan кард, ин ба панели администратор ворид шудан, ҳама тугмаҳоро сӯрох кардан, нисфи маълумотро иваз кардан ва сипас бо ёрии он серверро пурра нест кардан буд. шакли почта- дархостҳо. Таҳия бо озмоиш гуфт:

-Бачаҳо, маро шӯхӣ мекунед?! Мо ба шумо ҳисобҳо додем ва шумо стенд гузоштед!

Хавфҳои имконпазирро баррасӣ кунед. Идеалӣ, як стенди алоҳида барои санҷиши амнияти иттилоотӣ омода кунед, ки ҳадди аққал аз боқимондаи муҳит ҷудо карда мешавад ва ба таври шартӣ панели идоракуниро тафтиш кунед, беҳтараш дар ҳолати дастӣ. Ин як пентест аст - он фоизи боқимондаи кӯшишҳое, ки мо ҳоло ба назар намегирем.

Бояд ба назар гирифт, ки шумо метавонед онро ҳамчун аналоги санҷиши сарборӣ истифода баред. Дар марҳилаи аввал, шумо метавонед сканери динамикӣ бо 10-15 риштаро фаъол кунед ва бубинед, ки чӣ рӯй медиҳад, аммо одатан, тавре ки амалия нишон медиҳад, ҳеҷ чизи хубе нест.

Якчанд захираҳое, ки мо одатан истифода мебарем.

Тарс ва нафрат аз DevSecOps

Қобили таъкид Suite Burp як "корди швейтсарӣ" барои ҳар як мутахассиси амният аст. Ҳама аз он истифода мебаранд ва ин хеле қулай аст. Ҳоло версияи нави намоишии нашри корхона бароварда шудааст. Агар пештар он танҳо як утилитаи мустақил бо плагинҳо бошад, ҳоло таҳиягарон ниҳоят сервери калонеро месозанд, ки аз он метавон якчанд агентҳоро идора кард. Ин аҷиб аст, ман тавсия медиҳам, ки онро санҷед.

Интегратсияи равандҳо

Интегратсия хеле хуб ва оддӣ сурат мегирад: пас аз насби бомуваффақият сканро оғоз кунед аризахо барои стенд ва сканкунӣ пас аз санҷиши бомуваффақияти ҳамгироӣ.

Агар интегратсияҳо кор накунанд ё нотаҳо ва функсияҳои масхара вуҷуд дошта бошанд, ин бемаънӣ ва бефоида аст - новобаста аз он ки мо кадом намунаро мефиристем, сервер ҳамон тавр ҷавоб медиҳад.

  • Идеалӣ, стенди озмоишии алоҳида.
  • Пеш аз санҷиш, пайдарпаии воридшавиро нависед.
  • Санҷиши системаи маъмурӣ танҳо дастӣ аст.

раванди

Дар бораи раванд дар маҷмӯъ ва дар бораи кори ҳар як асбоб каме умумӣ. Ҳама барномаҳо гуногунанд - яке бо таҳлили динамикӣ беҳтар кор мекунад, дигаре бо таҳлили статикӣ, сеюмӣ бо таҳлили OpenSource, пентестҳо ё чизи дигар, масалан, воқеаҳо бо Ваф.

Ҳар як раванд ба назорат ниёз дорад.

Барои фаҳмидани он ки раванд чӣ гуна кор мекунад ва дар куҷо онро беҳтар кардан мумкин аст, ба шумо лозим аст, ки аз ҳама чизҳое, ки ба даст оварда метавонед, ченакҳоро ҷамъ кунед, аз ҷумла ченакҳои истеҳсолӣ, ченакҳо аз асбобҳо ва пайгирии камбудиҳо.

Ҳар гуна маълумот муфид аст. Ба он чое, ки ин ва ё он асбоб нагзтар истифода мешавад, дар он чое, ки процесс махсусан суст мешавад, аз чихати гуногун назар кардан лозим аст. Шояд ба вақтҳои вокуниши рушд назар андозед, то бубинед, ки дар куҷо равандро дар асоси вақт беҳтар кардан лозим аст. Чӣ қадаре ки маълумот бештар бошад, бахшҳои бештарро аз сатҳи боло то тафсилоти ҳар як раванд сохтан мумкин аст.

Тарс ва нафрат аз DevSecOps

Азбаски ҳама анализаторҳои статикӣ ва динамикӣ API-ҳои худро доранд, усулҳои оғозёбӣ, принсипҳои худро доранд, баъзеҳо нақшакаш доранд, дигарон не - мо асбоб менависем. Оркестри AppSec, ки ба шумо имкон медиҳад, ки як нуқтаи вуруд ба тамоми раванд аз маҳсулот эҷод кунед ва онро аз як нуқта идора кунед.

Менеҷерҳо, таҳиягарон ва муҳандисони амният як нуқтаи вуруд доранд, ки аз он онҳо метавонанд дидани он чизеро, ки иҷро шуда истодааст, танзим ва иҷро кунанд, натиҷаҳои сканро қабул кунанд ва талаботро пешниҳод кунанд. Мо кӯшиш мекунем, ки аз коғазбозӣ дур шавем, ҳама чизро ба одам табдил диҳем, ки онро рушд истифода мебарад - саҳифаҳо дар Конфронс бо вазъ ва ченакҳо, нуқсонҳо дар Jira ё дар пайгирии камбудиҳои гуногун ё ҳамгироӣ ба раванди синхронӣ/асинхронӣ дар CI /CD.

Таҷҳизоти асосӣ

Асбобҳо чизи асосӣ нестанд. Аввал ба воситаи раванд фикр кунед - пас воситаҳоро татбиқ кунед. Воситаҳо хубанд, вале гарон ҳастанд, аз ин рӯ шумо метавонед бо раванд оғоз кунед ва иртибот ва фаҳмиши байни рушд ва амниятро эҷод кунед. Аз нуқтаи назари бехатарӣ, ҳама чизро "қатъ кардан" лозим нест.Аз нуқтаи назари рушд, агар ягон чизи баланди мега суперкритикӣ вуҷуд дошта бошад, пас онро бартараф кардан лозим аст ва аз мушкилот чашм намепӯшед.

Сифати махсулот - ҳадафи умумӣ хам амният ва хам тараккиёт. Мо як чизро мекунем, мо кӯшиш мекунем, ки ҳама чиз дуруст кор кунад ва ҳеҷ гуна хатари обрӯ ё талафоти молиявӣ вуҷуд надошта бошад. Аз ин рӯ, мо равиши DevSecOps, SecDevOps-ро барои беҳтар кардани муошират ва беҳтар кардани сифати маҳсулот таблиғ мекунем.

Аз он чизе, ки шумо аллакай доред, оғоз кунед: талабот, меъморӣ, санҷишҳои қисман, тренингҳо, роҳнамо. Ба ҳама лоиҳаҳо фавран татбиқ кардани ҳама амалияҳо лозим нест - ба таври такрорӣ ҳаракат кунед. Стандарти ягона вуҷуд надорад - озмоиш ва роҳҳои ҳалли гуногунро санҷед.

Байни нуқсонҳои амнияти иттилоотӣ ва нуқсонҳои функсионалӣ аломати баробар вуҷуд дорад.

Ҳама чизро автоматӣ кунедки харакат мекунад. Ҳар он чизе ки ҳаракат намекунад, онро интиқол диҳед ва автоматӣ кунед. Агар коре дастй ичро карда шавад, ин як кисми хуби процесс нест. Шояд онро баррасӣ кардан ва автоматикунонии он низ меарзад.

Агар шумораи дастаи IS хурд бошад - Чемпионҳои Амниятро истифода баред.

Шояд он чизе, ки ман дар бораи он гуфтам, ба шумо мувофиқат накунад ва шумо чизе аз худатон пайдо мекунед - ва ин хуб аст. Аммо асбобҳоро дар асоси талабот барои раванди худ интихоб кунед. Набинед, ки ҷомеа чӣ мегӯяд, ки ин асбоб бад асту инаш хуб. Шояд баръакс барои маҳсулоти шумо дуруст бошад.

Талабот ба асбобҳо.

  • Сатҳи пасти мусбати бардурӯғ.
  • Вақти мувофиқи таҳлил.
  • Истифодаи осон.
  • Мавҷудияти ҳамгироӣ.
  • Фаҳмидани харитаи роҳи рушди маҳсулот.
  • Имконияти танзими асбобҳо.

Гузориши Юрий яке аз беҳтаринҳо дар DevOpsConf 2018 интихоб шуд. Барои шиносоӣ бо ғояҳои ҷолибтар ва ҳолатҳои амалӣ рӯзҳои 27 ва 28 май ба Сколково биёед. DevOpsConf дар дохили фестивали RIT++. Беҳтараш, агар шумо омода бошед, ки таҷрибаи худро мубодила кунед, пас муроҷиат кунед барои хисобот то 21 апрель.

Манбаъ: will.com

Илова Эзоҳ