Egwu na ịkpọasị nke DevSecOps

Anyị nwere ndị nyocha koodu 2, ngwa nnwale 4 dị ike, nka nke anyị na edemede 250. Ọ bụghị na ihe a niile dị mkpa na usoro dị ugbu a, ma ozugbo ịmalitere mmejuputa DevSecOps, ị ga-aga na njedebe.

Egwu na ịkpọasị nke DevSecOps

Isi Iyi. Ndị okike agwa: Justin Roiland na Dan Harmon.

Kedu ihe bụ SecDevOps? Kedu maka DevSecOps? Kedu ihe dị iche? Nchekwa ngwa - kedu ihe ọ bụ? Kedu ihe kpatara na usoro kpochapụla anaghị arụ ọrụ ọzọ? Ọ ma azịza ajụjụ ndị a niile Yuri Shabalin si Nchekwa Swordfish. Yuriy ga-aza ihe niile n'ụzọ zuru ezu wee nyochaa nsogbu nke mgbanwe site na ụdị nchekwa ngwa ngwa ngwa gaa na usoro DevSecOps: otu esi abịaru nso nke ọma na ntinye nke usoro mmepe echedoro n'ime usoro DevOps ma ghara imebi ihe ọ bụla, otu esi agabiga usoro isi. nke ule nchekwa, ihe ngwaọrụ nwere ike iji, ihe ha dị iche na otu esi ahazi ha nke ọma iji zere ọnyà.


Banyere ọkà okwu: Yuri Shabalin - Chief Security Architect na ụlọ ọrụ Nchekwa Swordfish. Na-ahụ maka mmejuputa SSDL, maka nchikota ngwa ngwa nyocha ngwa n'ime mmepe jikọtara ọnụ na nyocha gburugburu ebe obibi. Afọ 7 nke ahụmahụ na nchekwa ozi. Na-arụ ọrụ na Alfa-Bank, Sberbank na Teknụzụ Positive, nke na-emepụta ngwanrọ na-enye ọrụ. Ọkà okwu na ogbako mba ụwa ZerONights, PHDays, RISSPA, OWASP.

Nchekwa ngwa: kedu ihe ọ bụ?

Ngwa Nche - Nke a bụ ngalaba nchekwa nke na-ahụ maka nchekwa ngwa. Nke a anaghị emetụta akụrụngwa ma ọ bụ nchekwa netwọkụ, kama maka ihe anyị na-ede na ihe ndị mmepe na-arụ ọrụ - ndị a bụ adịghị ike na adịghị ike nke ngwa ahụ n'onwe ya.

Ntuziaka SDL ma ọ bụ SDLC - okirikiri mmepe nchekwa - Microsoft mepụtara. Eserese ahụ na-egosi ụdị SDLC nke canonical, ọrụ bụ isi bụ ntinye nke nchekwa na ọkwa ọ bụla nke mmepe, site na ihe achọrọ iji wepụta na mmepụta. Microsoft ghọtara na e nwere ọtụtụ ahụhụ na ụlọ ọrụ ahụ, e nwere ọtụtụ n'ime ha na ihe a ga-eme maka ya, ha tụpụtara usoro a, bụ nke ghọrọ akwụkwọ.

Egwu na ịkpọasị nke DevSecOps

Nchekwa ngwa na SSDL abụghị iji chọpụta adịghị ike, dịka a na-ekwenyekarị, kama n'igbochi ime ha. Ka oge na-aga, e meziwanyela, wulitekwa ma webata usoro ntule nke Microsoft n'ime omimi miri emi na nke zuru oke.

Egwu na ịkpọasị nke DevSecOps

SDLC nke canonical ka akọwara nke ukwuu n'usoro dị iche iche - OpenSAMM, BSIMM, OWASP. Usoro ndị ahụ dị iche iche, mana n'ozuzu ha yiri ya.

Nchekwa ụlọ n'ụdị ntozu okè

Ọ masịrị m nke ukwuu BSIMM - Nchekwa ụlọ n'ụdị ntozu okè. Ndabere nke usoro a bụ nkewa nke Usoro Nchebe Ngwa na ngalaba 4: Ọchịchị, ọgụgụ isi, SSDL Touchpoints and Deployment. Ngalaba ọ bụla nwere omume iri na abụọ, nke na-anọchi anya ihe omume 12.

Egwu na ịkpọasị nke DevSecOps

Nke ọ bụla n'ime 112 omume nwere 3 ọkwa nke ntozu okè: mmalite, etiti na elu. Ị nwere ike mụọ akụkụ omume 12 niile site na ngalaba, họrọ ihe ndị dị gị mkpa, chọpụta otu esi eme ya ma jiri nwayọọ nwayọọ tinye ihe, dịka ọmụmaatụ, nyocha koodu static na dynamic ma ọ bụ nyocha koodu. Ị dee atụmatụ ma jiri nwayọọ na-arụ ọrụ dịka akụkụ nke mmejuputa ihe omume ndị a họọrọ.

Gịnị kpatara DevSecOps

DevOps bụ usoro izugbe, nnukwu usoro nke a ga-eburu n'uche na nchekwa.

Ná mmalite DevOps gụnyere nlele nche. Na omume, ọnụ ọgụgụ nke ndị ọrụ nchekwa dị ntakịrị karịa ugbu a, ha emeghịkwa ka ndị na-ekere òkè na usoro ahụ, ma dịka njikwa na nlekọta nke na-etinye ihe ndị a chọrọ na ya ma na-enyocha àgwà ngwaahịa ahụ na njedebe nke ntọhapụ. Nke a bụ usoro kpochapụwo nke ndị otu nchekwa nọ n'azụ mgbidi site na mmepe na esoghị na usoro ahụ.

Egwu na ịkpọasị nke DevSecOps

Isi nsogbu bụ na nchekwa ozi dị iche na mmepe. Ọtụtụ mgbe, nke a bụ ụdị sekit nchekwa ozi yana ọ nwere ngwaọrụ 2-3 buru ibu ma dị oke ọnụ. Otu ugboro n'ọnwa isii ọ bụla, koodu isi mmalite ma ọ bụ ngwa a chọrọ ịlele na-abịarute, a na-emepụtakwa ha otu ugboro n'afọ pentests. Ihe a niile na-eduga n'eziokwu ahụ bụ na ụbọchị ntọhapụ maka ụlọ ọrụ ahụ na-egbu oge, na onye mmepụta na-ekpughere ọnụ ọgụgụ dị ukwuu nke adịghị ike site na ngwaọrụ akpaghị aka. Ọ gaghị ekwe omume ịkwasa na rụkwaa ihe a niile, n'ihi na a naghị edozi nsonaazụ maka ọnwa isii gara aga, mana ebe a bụ batch ọhụrụ.

N'ime ọrụ nke ụlọ ọrụ anyị, anyị na-ahụ na nchekwa na mpaghara niile na ụlọ ọrụ na-aghọta na ọ bụ oge ijide ma tụgharịa na mmepe na otu wheel - na Agile. Usoro DevSecOps dabara nke ọma na usoro mmepe agile, mmejuputa, nkwado na isonye na ntọhapụ ọ bụla.

Egwu na ịkpọasị nke DevSecOps

Ntughari na DevSecOps

Okwu kacha mkpa na Security Development Lifecycle bụ "usoro". Ị ga-aghọta nke a tupu ị na-eche banyere ịzụrụ ngwá ọrụ.

Naanị itinye ngwa n'ime usoro DevOps ezughi oke - nkwurịta okwu na nghọta n'etiti ndị sonyere usoro ahụ dị mkpa.

Ndị mmadụ ka mkpa, ọ bụghị ngwá ọrụ.

Ọtụtụ mgbe, atụmatụ maka usoro mmepe echedoro anya na-amalite site n'ịhọrọ na ịzụta ngwá ọrụ, ma kwụsị na mgbalị iji tinye ngwá ọrụ ahụ n'ime usoro dị ugbu a, nke na-anọgide na-anwa. Nke a na-eduga ná nsonaazụ ọjọọ, n'ihi na ngwá ọrụ niile nwere njirimara na njedebe ha.

Otu ihe na-emekarị bụ mgbe ngalaba nchekwa na-ahọrọ ngwá ọrụ dị mma, dị oké ọnụ ahịa nke nwere ikike dị ukwuu, wee bịakwuru ndị mmepe ka ha tinye ya na usoro ahụ. Ma ọ naghị arụ ọrụ - a na-ahazi usoro ahụ n'ụzọ na njedebe nke ngwá ọrụ a zụrụ azụ adịghị adabara na usoro dị ugbu a.

Nke mbụ, kọwaa nsonaazụ ịchọrọ na ihe usoro ahụ ga-adị. Nke a ga-enyere aka ịghọta ọrụ nke ngwá ọrụ na nchekwa na usoro.

Malite na ihe ejirila ya

Tupu ịzụta ngwá ọrụ dị oke ọnụ, lelee ihe ị nwere. Ụlọ ọrụ ọ bụla nwere ihe nchekwa chọrọ maka mmepe, enwere akwụkwọ ndenye ego, penests - gịnị kpatara na ị gaghị agbanwe ihe a niile ka ọ bụrụ ụdị nke kwere nghọta ma dị mma maka onye ọ bụla?

Ọtụtụ mgbe, ihe a chọrọ bụ Talmud akwụkwọ nke dị na shelf. Enwere ikpe mgbe anyị bịara na ụlọ ọrụ iji lelee usoro ahụ wee jụọ ka ọ hụ ihe nchekwa chọrọ maka ngwanrọ. Ọkachamara nke mesoro nke a nọrọ ogologo oge na-achọ:

- Ugbu a, ebe na ndetu e nwere ụzọ ebe akwụkwọ a ụgha.

N’ihi ya, anyị nwetara akwụkwọ ahụ otu izu ka e mesịrị.

Maka ihe achọrọ, ndenye ego na ihe ndị ọzọ, mepụta ibe na eg. Mgbagha - ọ dị mma maka onye ọ bụla.

Ọ dị mfe ịhazigharị ihe ị nwere wee jiri ya malite.

Jiri ndị mmeri nchekwa

A, na nkezi ụlọ ọrụ na 100-200 mmepe, e nwere otu ọkachamara nche na-arụ ọtụtụ ọrụ na-enweghị anụ ahụ oge iji lelee ihe niile. Ọbụna ma ọ bụrụ na ọ na-agbalị ike ya, naanị ya agaghị elele koodu niile nke mmepe ahụ na-emepụta. Maka okwu ndị dị otú ahụ, e mepụtara echiche - Ndị mmeri nchekwa.

Ndị mmeri nchekwa bụ ndị nọ n'ime otu mmepe nwere mmasị na nchekwa nke ngwaahịa gị.

Egwu na ịkpọasị nke DevSecOps

Onye mmeri nchekwa bụ ebe ntinye n'ime otu mmepe na onye mgbasa ozi nchekwa tụbara n'ime otu.

Ọtụtụ mgbe, mgbe onye ọkachamara na-ahụ maka nchekwa na-abịakwute ndị otu mmepe wee gosipụta njehie na koodu ahụ, ọ na-enweta azịza tụrụ anya:

- Ma ị bụ onye? A na m ahụ gị nke mbụ. Ihe niile dị mma na m - enyi m agadi nyere m "itinye" na nyocha koodu, anyị na-aga n'ihu!

Nke a bụ ọnọdụ a na-ahụkarị, n'ihi na enwere ntụkwasị obi karịa na ndị agadi ma ọ bụ naanị ndị otu egwuregwu nke onye nrụpụta na-emekọrịta ihe mgbe niile na ọrụ yana nyocha koodu. Ọ bụrụ na, kama onye na-ahụ maka nchekwa, Onye Nlekọta Nchebe na-egosi mmejọ na nsonaazụ ya, mgbe ahụ okwu ya ga-enwekwu ibu.

Ọzọkwa, ndị mmepe mara koodu ha karịa ọkachamara nchekwa ọ bụla. Maka onye nwere opekata mpe ọrụ 5 na ngwaọrụ nyocha static, ọ na-esikarị ike icheta nuances niile. Ndị mmeri nchekwa maara ngwaahịa ha: ihe na-emekọrịta ihe na ihe ị ga-ele anya na mbụ - ha dị irè karị.

Ya mere, tulee itinye n'ọrụ nche Champions na ịgbasa mmetụta nke otu nchekwa gị. Nke a na-abakwa uru maka onye mmeri n'onwe ya: mmepe ọkachamara n'ọhịa ọhụrụ, na-agbasawanye nkà na ụzụ ya, ịkwalite nkà na ụzụ, njikwa na nchịkwa, ịba ụba ahịa ahịa. Nke a bụ ụfọdụ akụkụ nke injinia mmekọrịta mmadụ na ibe ya, "anya" gị na otu mmepe.

Usoro ule

Paragraf nke 20 ruo 80 na-ekwu na 20% nke mbọ na-arụpụta 80% nke nsonaazụ. 20% nke a bụ omume nyocha ngwa nke nwere ike ma kwesị ịbụ akpaaka. Ọmụmaatụ nke mmemme ndị a bụ nyocha static - SAST, dynamic analysis - DAST и Mepee njikwa isi mmalite. M ga-agwa gị n'ụzọ zuru ezu banyere ihe omume, yana gbasara ngwá ọrụ, ihe ndị anyị na-enwekarị mgbe anyị na-ewebata ha na usoro, na otu esi eme ya nke ọma.

Egwu na ịkpọasị nke DevSecOps

Isi nsogbu nke ngwaọrụ

M ga-egosipụta nsogbu ndị dị mkpa maka ngwá ọrụ niile ma chọọ nlebara anya. M ga-enyocha ha n'ụzọ zuru ezu ka ọ ghara ikwugharị ha ọzọ.

Ogologo oge nyocha. Ọ bụrụ na site n'itinye ntọhapụ ọ na-ewe nkeji 30 maka ule na mgbakọ niile, mgbe ahụ nlele nchekwa ozi ga-ewe otu ụbọchị. Ya mere, ọ dịghị onye ga-ebelata usoro ahụ. Buru n'uche njirimara a wee kwubie.

Ọkwa dị elu ụgha adịghị mma ma ọ bụ ezigbo ụgha. Ngwaahịa niile dị iche iche, ha niile na-eji usoro dị iche iche na ụdị nzuzo nke ha. Na codebases na teknụzụ dị iche iche, ngwaọrụ nwere ike igosi ọkwa dị iche iche nke adịgboroja ụgha na adịgboroja. Yabụ lelee ihe dị na ya gị ụlọ ọrụ na maka nke gị ngwa ga-egosi ezi na a pụrụ ịdabere na ya pụta.

Enweghị njikọ na ngwaọrụ ndị dị adị. Lelee ngwaọrụ n'ihe gbasara njikọta na ihe ị na-ejibu. Dịka ọmụmaatụ, ọ bụrụ na ị nwere Jenkins ma ọ bụ TeamCity, lelee njikọ nke ngwaọrụ na ngwa ngwa a, ọ bụghị na GitLab CI, nke ị naghị eji.

Enweghị ma ọ bụ oke mgbagwoju anya nke nhazi. Ọ bụrụ na ngwá ọrụ enweghị API, gịnị kpatara eji achọ ya? Ihe niile enwere ike ime na interface kwesịrị ịdị site na API. Dị ka o kwesịrị, ngwá ọrụ kwesịrị inwe ikike ịhazi ndenye ego.

Enweghị ụzọ mmepe ngwaahịa. Mmepe anaghị eguzo otu ebe, anyị na-eji usoro na ọrụ ọhụrụ mgbe niile, na-edegharị koodu ochie n'asụsụ ọhụrụ. Anyị chọrọ ijide n'aka na ngwá ọrụ anyị na-azụta ga-akwado usoro na teknụzụ ọhụrụ. Ya mere, ọ dị mkpa ịmara na ngwaahịa ahụ nwere ezigbo na nke ziri ezi Roadmap mmepe.

Ihe nhazi

Na mgbakwunye na njirimara nke ngwaọrụ, buru n'uche atụmatụ nke usoro mmepe. Dịka ọmụmaatụ, igbochi mmepe bụ mmejọ nkịtị. Ka anyị leba anya na atụmatụ ndị ọzọ kwesịrị iburu n'uche yana ihe ndị otu nchekwa kwesịrị ịṅa ntị na ya.

Ka ị ghara ịhapụ mmepe na ịhapụ oge njedebe, mepụta iwu dị iche iche na iche gosi nkwụsị - njirisi maka ịkwụsị usoro ihe owuwu na ọnụnọ adịghị ike - maka gburugburu ebe dị iche iche. Dịka ọmụmaatụ, anyị ghọtara na alaka ụlọ ọrụ dị ugbu a na-aga na ntọala mmepe ma ọ bụ UAT, nke pụtara na anyị anaghị akwụsị ma kwuo:

"Ị nwere adịghị ike ebe a, ị gaghị aga ebe ọ bụla ọzọ!"

N'oge a, ọ dị mkpa ịgwa ndị mmepe na enwere nsogbu nchekwa nke chọrọ nlebara anya.

Ọnụnọ nke adịghị ike abụghị ihe mgbochi maka nyocha ọzọ: akwụkwọ ntuziaka, mwekota ma ọ bụ akwụkwọ ntuziaka. N'aka nke ọzọ, anyị kwesịrị n'ụzọ ụfọdụ dịkwuo nche nke ngwaahịa, na ndị mmepe adịghị eleghara ihe ha na-ahụ na nchekwa. Ya mere, mgbe ụfọdụ anyị na-eme nke a: na nkwụnye, mgbe a na-atụgharị ya na gburugburu ebe mmepe, anyị na-ekwupụta mmepe ahụ:

- Ụmụ okorobịa, ị nwere nsogbu, biko ṅaa ntị na ha.

Na ọkwa UAT, anyị na-egosikwa ịdọ aka ná ntị banyere adịghị ike, na n'oge ntọhapụ anyị na-ekwu:

- Ụmụ okorobịa, anyị dọrọ gị aka ná ntị ọtụtụ oge, ị meghị ihe ọ bụla - anyị agaghị ekwe ka ị pụọ na nke a.

Ọ bụrụ na anyị na-ekwu maka koodu na mgbanwe, mgbe ahụ, ọ dị mkpa igosi na ịdọ aka ná ntị banyere adịghị ike naanị nke njirimara na koodu ndị ahụ edere na njirimara a. Ọ bụrụ na onye nrụpụta na-ebugharị bọtịnụ site na pikselụ 3 ma anyị na-agwa ya na o nwere ogwu ogbugba SQL n'ebe ahụ, ya mere ọ dị mkpa ka edozi ya ngwa ngwa, nke a adịghị mma. Lelee naanị ihe edere ugbu a na mgbanwe na-abịa na ngwa ahụ.

Ka anyị kwuo na anyị nwere ụfọdụ ntụpọ arụ ọrụ - ụzọ ngwa ahụ ekwesịghị ịrụ ọrụ: a naghị ebufe ego, mgbe ị pịa bọtịnụ ọ dịghị mgbanwe na ibe na-esote, ma ọ bụ ngwaahịa anaghị ebu. Mmejọ nchekwa - ndị a bụ otu ntụpọ ahụ, ma ọ bụghị n'ihe gbasara ọrụ ngwa, ma na nchekwa.

Ọ bụghị nsogbu ịdịmma ngwanrọ niile bụ nsogbu nchekwa. Mana nsogbu nchekwa niile metụtara ogo ngwanrọ. Sherif Mansour, Expedia.

Ebe ọ bụ na adịghị ike niile bụ otu ntụpọ, ha kwesịrị ịdị n'otu ebe dị ka ntụpọ mmepe niile. Ya mere, chefuo akụkọ na PDF na-atụ egwu na ọ dịghị onye na-agụ.

Egwu na ịkpọasị nke DevSecOps

Mgbe m na-arụ ọrụ na ụlọ ọrụ mmepe, enwetara m akụkọ sitere na ngwaọrụ nyocha static. Emeghere m ya, ụjọ tụrụ m, mee kọfị, wepụta ya na peeji 350, mechie ya ma gaa n'ihu na-arụ ọrụ. Nnukwu akụkọ bụ akụkọ nwụrụ anwụ. Ha na-agakarị ebe ọ bụla, a na-ehichapụ akwụkwọ ozi, chefuo, furu efu, ma ọ bụ azụmahịa na-ekwu na ọ na-anabata ihe ize ndụ.

Ihe a ga-eme? Naanị anyị na-atụgharị ntụpọ ndị ekwenyesiri ike nke anyị chọtara ka ọ bụrụ ụdị dị mma maka mmepe, dịka ọmụmaatụ, anyị na-etinye ha na ndekọ azụ na Jira. Anyị na-ebute ihe ndị na-adịghị mma na-ebute ụzọ ma kpochapụ ha n'usoro dị mkpa, yana ntụpọ arụ ọrụ na ntụpọ ule.

Analysis Static - SAST

Nke a bụ nyocha koodu maka adịghị ike., ma ọ bụghị otu ihe ahụ dị ka SonarQube. Anyị anaghị elele naanị ụkpụrụ ma ọ bụ ụdị. A na-eji usoro dị iche iche eme ihe na nyocha: dị ka osisi adịghị ike, dị ka DataFlow, site na nyochaa faịlụ nhazi. Nke a bụ ihe niile gbasara koodu n'onwe ya.

Uru nke obibia: na-achọpụta adịghị ike na koodu n'oge mmalite nke mmepemgbe enweghị ihe nkwụnye ma ọ bụ ngwaọrụ emebere, na ike nyocha nke mmụba: nyochaa akụkụ nke koodu gbanwere, yana naanị njirimara anyị na-eme ugbu a, nke na-ebelata oge nyocha.

Минусы - nke a bụ enweghị nkwado maka asụsụ ndị dị mkpa.

Ngwakọta dị mkpa, nke kwesịrị ịdị na ngwaọrụ, n'echiche nke onwe m:

  • Ngwá ọrụ njikọta: Jenkins, TeamCity na Gitlab CI.
  • Ebe mmepe: Intellij IDEA, Visual Studio. Ọ ka mma maka onye nrụpụta ka ọ ghara ịnyagharịa interface na-enweghị nghọta nke ka kwesịrị iburu n'uche, mana ịhụ njikọ niile dị mkpa na adịghị ike nke ọ chọtara n'ebe ọrụ na gburugburu mmepe nke ya.
  • Nyochaa koodu: SonarQube na nyocha akwụkwọ ntuziaka.
  • Ndị na-egwu egwu adịghị mma: Jira na Bugzilla.

Foto a na-egosi ụfọdụ ndị nnọchiteanya kachasị mma nke nyocha static.

Egwu na ịkpọasị nke DevSecOps

Ọ bụghị ngwaọrụ ndị dị mkpa, mana usoro ahụ, yabụ enwere ngwọta Open Source dịkwa mma maka ịnwale usoro ahụ.

Egwu na ịkpọasị nke DevSecOps

Ebe mepere emepe SAST agaghị ahụ nnukwu nsogbu nke adịghị ike ma ọ bụ mgbagwoju DataFlows, mana ha nwere ike ma kwesị iji ya mgbe ị na-ewu usoro. Ha na-enyere aka ịghọta otú a ga-esi wuo usoro ahụ, ndị ga-azaghachi ahụhụ, ndị ga-akọ akụkọ, na ndị ga-akọ. Ọ bụrụ n’ịchọrọ ime usoro izizi nke iwulite nchekwa koodu gị, jiri azịza Open Source.

Kedu ka esi ejikọta nke a ma ọ bụrụ na ị nọ na mmalite nke njem gị ma ọ nweghị ihe ọ bụla: enweghị CI, enweghị Jenkins, enweghị TeamCity? Ka anyị tụlee ntinye n'ime usoro.

Mmekọrịta ọkwa CVS

Ọ bụrụ na ị nwere Bitbucket ma ọ bụ GitLab, ị nwere ike ịmekọrịta na ọkwa Sistemụ ụdịdị n'otu oge.

Site na mmemme - ịdọrọ arịrịọ, mee. Ị na-enyocha koodu ahụ na ọkwa ihe nrụpụta na-egosi ma nlele nche gafere ma ọ bụ daa.

Nzaghachi. N'ezie, nzaghachi dị mkpa mgbe niile. Ọ bụrụ na ị mere naanị nchekwa n'akụkụ, tinye ya na igbe ma gwa onye ọ bụla ihe ọ bụla banyere ya, mgbe ahụ na njedebe nke ọnwa tụfuru ụyọkọ ahụhụ - nke a adịghị mma ma ọ dịghị mma.

Mmekọrịta na usoro nyocha koodu

Otu oge, anyị mere dị ka onye nleba anya ndabara maka onye ọrụ AppSec teknụzụ n'ọtụtụ ọrụ dị mkpa. Dabere na ma achọpụtara njehie na koodu ọhụrụ ma ọ bụ enweghị njehie, onye nyocha ahụ na-edobe ọnọdụ na arịrịọ ịdọrọ ka “nabata” ma ọ bụ “ọrụ mkpa” - ma ihe niile dị mma, ma ọ bụ njikọ nke ihe kwesịrị imeziwanye. kwesịrị imeziwanye. Maka njikọta na ụdị nke na-abanye na mmepụta, anyị enyerela mmachi mmachi ma ọ bụrụ na agafeghị ule nchekwa ozi. Anyị tinyere nke a na nyocha koodu ntuziaka, yana ndị ọzọ sonyere na usoro ahụ hụrụ ọkwa nchekwa maka usoro a.

Mmekọrịta na SonarQube

Ọtụtụ ndị nwere àgwà ọnụ ụzọ ámá n'ihe gbasara àgwà koodu. Ọ bụ otu ihe ebe a - ị nwere ike ịme otu ọnụ ụzọ ámá naanị maka ngwaọrụ SAST. A ga-enwe otu interface, otu ọnụ ụzọ ámá dị mma, naanị ya ka a ga-akpọ nche ọnụ ụzọ ámá. Ọzọkwa, ọ bụrụ na ị nwere usoro iji SonarQube, ị nwere ike iwekota ihe niile n'ebe ahụ ngwa ngwa.

Mmekọrịta na ọkwa CI

Ihe niile ebe a dịkwa nnọọ mfe:

  • Na nha na autotests, unit ule.
  • Nkewa site na usoro mmepe: dev, nwale, prod. Enwere ike ịgụnye usoro iwu dị iche iche ma ọ bụ ọnọdụ ọdịda dị iche iche: kwụsị mgbakọ ahụ, akwụsịla mgbakọ ahụ.
  • Mwepụta mmekọrịta/mmekọrịta ọnụ. Anyị na-eche njedebe nke ule nche ma ọ bụ na ọ bụghị. Ya bụ, anyị malitere ha wee gaa n'ihu, wee nweta ọkwa na ihe niile dị mma ma ọ bụ ihe ọjọọ.

Ihe niile dị na ụwa pink pink zuru oke. Ọ dịghị ihe dị otú ahụ na ndụ n'ezie, ma anyị na-agbalịsi ike. Nsonaazụ nke nlele nchekwa na-agba ọsọ kwesịrị ịdị ka nsonaazụ nke nnwale otu.

Dịka ọmụmaatụ, anyị weere nnukwu ọrụ ma kpebie na ugbu a anyị ga-enyocha ya na SAST - OK. Anyị tinyere ọrụ a na SAST, o nyere anyị adịghị ike 20 na site na mkpebi siri ike anyị kpebiri na ihe niile dị mma. 000 adịghị ike bụ ụgwọ ọrụ nka anyị. Anyị ga-etinye ụgwọ ahụ n'ime igbe, anyị ga-eji nwayọọ nwayọọ kpochapụ ya ma tinye chin na ndị na-achọpụta ntụpọ. Ka anyị were ụlọ ọrụ were, mee ihe niile n'onwe anyị, ma ọ bụ nwee ndị mmeri nchekwa na-enyere anyị aka - ụgwọ ọrụ nka ga-ebelata.

Na adịghị ike niile na-apụta na koodu ọhụrụ a ga-ewepụrịrị n'otu ụzọ ahụ dị ka njehie dị na otu ma ọ bụ na akpaaka. N'ikwu okwu, mgbakọ ahụ malitere, anyị gbara ya, ule abụọ na ule nchekwa abụọ dara. OK - anyị gara leba anya n'ihe merenụ, dozie otu ihe, dozie ihe ọzọ, mee ya oge ọzọ - ihe niile dị mma, ọ dịghị ihe ọhụụ ọhụrụ pụtara, ọ dịghị ule dara. Ọ bụrụ na ọrụ a dị omimi ma ọ dị mkpa ka ị ghọta ya nke ọma, ma ọ bụ na-edozi adịghị ike na-emetụta nnukwu ọkwa nke ihe dị n'okpuru mkpuchi: a na-agbakwunye mperi na tracker ntụpọ, a na-ebute ya ụzọ ma mezie ya. N'ụzọ dị mwute, ụwa ezughị oke na ule na-ada mgbe ụfọdụ.

Ihe atụ nke ọnụ ụzọ nchekwa bụ ihe analog nke ọnụ ụzọ ámá dị mma, n'ihe gbasara ọnụnọ na ọnụ ọgụgụ nke adịghị ike na koodu.

Egwu na ịkpọasị nke DevSecOpsAnyị na SonarQube jikọtara - ngwa mgbakwunye ahụ, ihe niile dị mma ma dị mma.

Mmekọrịta na gburugburu mmepe

Nhọrọ njikọta:

  • Na-agba ọsọ nyocha site na gburugburu mmepe tupu emee.
  • Lelee nsonaazụ.
  • Nyocha nke nsonaazụ.
  • Mmekọrịta na ihe nkesa.

Nke a bụ ihe ọ dị ka ịnata nsonaazụ sitere na sava ahụ.

Egwu na ịkpọasị nke DevSecOps

Na gburugburu mmepe anyị IDEA Intellij ihe mgbakwunye na-apụta naanị nke na-agwa gị na achọpụtara adịghị ike dị otú ahụ n'oge nyocha ahụ. Ị nwere ike idezi koodu ozugbo, lelee ndụmọdụ na Ihe eserese. Ihe a niile dị n'ebe ọrụ nke onye nrụpụta, nke dị mma - ọ dịghị mkpa ịgbaso njikọ ndị ọzọ ma lelee ihe ọzọ.

Isi Iyi

Nke a bụ isiokwu kacha amasị m. Onye ọ bụla na-eji ọba akwụkwọ mepere emepe - kedu ihe kpatara ị ga-eji dee ụyọkọ crutches na igwe kwụ otu ebe mgbe ị nwere ike iburu ọbá akwụkwọ emeberela nke etinyerelarị ihe niile?

Egwu na ịkpọasị nke DevSecOps

N'ezie, nke a bụ eziokwu, mana ndị mmadụ na-edekwa ụlọ akwụkwọ, ha na-agụnyekwa ihe ize ndụ ụfọdụ na enwerekwa adịghị ike nke a na-akọ kwa oge, ma ọ bụ mgbe niile. Ya mere, enwere nzọụkwụ ọzọ na Nchebe Ngwa - nke a bụ nyocha nke ihe mejupụtara Open Source.

Nchịkọta Isi mmalite mepere emepe - OSA

Ngwá ọrụ na-agụnye nnukwu ọkwa atọ.

Na-achọ adịghị ike na ụlọ akwụkwọ. Dịka ọmụmaatụ, ngwá ọrụ ahụ maara na anyị na-eji ụfọdụ ọbá akwụkwọ, na nke ahụ CVE ma ọ bụ enwere ụfọdụ adịghị ike na ndị na-ahụ maka ahụhụ na-emetụta ụdị ọba akwụkwọ a. Mgbe ị na-agbalị iji ya, ngwá ọrụ ga-enye ịdọ aka ná ntị na ọbá akwụkwọ adịghị mfe ma na-adụ ọdụ ka ị na-eji ọzọ version na-enweghị vulnerabilities.

Nyocha nke ịdị ọcha ikike. Nke a amachaghị ewu ewu ebe a, mana ọ bụrụ na ị na-arụ ọrụ na mba ofesi, mgbe ahụ site n'oge ruo n'oge ị nwere ike nweta ụtụ isi ebe ahụ maka iji akụrụngwa mepere emepe nke enweghị ike iji ma ọ bụ gbanwee. Dịka iwu ọbá akwụkwọ nyere ikike si dị, anyị enweghị ike ime nke a. Ma ọ bụ, ọ bụrụ na anyị megharịa ya ma jiri ya, anyị kwesịrị biputere koodu anyị. N'ezie, ọ dịghị onye chọrọ ibipụta koodu nke ngwaahịa ha, ma ị nwekwara ike ichebe onwe gị na nke a.

Nyocha nke ihe ndị a na-eji na gburugburu ụlọ ọrụ mmepụta ihe. Ka anyị were were were ọnọdụ echiche nke anyị mechachara mmepe wee wepụta mwepụta kacha ọhụrụ nke microservice anyị. Ọ na-ebi n'ebe ahụ magburu onwe ya - otu izu, otu ọnwa, otu afọ. Anyị anaghị anakọta ya, anyị anaghị eduzi nyocha nchekwa, ihe niile yiri ka ọ dị mma. Ma na mberede, izu abụọ ka ahapụchara, adịghị ike dị egwu na-apụta na Open Source akụrụngwa, nke anyị na-eji na-ewu ụlọ a, na gburugburu ebe obibi mmepụta ihe. Ọ bụrụ na anyị edekọghị ihe na ebe anyị na-eji, mgbe ahụ anyị agaghị ahụ adịghị ike a. Ngwá ọrụ ụfọdụ nwere ike nyochaa adịghị ike na ụlọ akwụkwọ ndị a na-eji ugbu a na ụlọ ọrụ. Ọ bara uru nke ukwuu.

Atụmatụ:

  • Amụma dị iche iche maka ọkwa dị iche iche nke mmepe.
  • Ihe nlekota oru na gburugburu ulo oru.
  • Njikwa nke ọba akwụkwọ n'ime nzukọ.
  • Nkwado maka sistemu ewu na asụsụ dị iche iche.
  • Nyocha nke onyonyo Docker.

Ihe atụ ole na ole nke ndị isi ụlọ ọrụ na-etinye aka na nyocha Open Source.

Egwu na ịkpọasị nke DevSecOps
Naanị nke efu bụ nke a Ndabere- Lelee sitere na OWASP. Ị nwere ike ịgbanye ya na ọkwa mbụ, hụ ka o si arụ ọrụ na ihe ọ na-akwado. N'ụzọ bụ isi, ndị a niile bụ ngwaahịa igwe ojii, ma ọ bụ na-arụ ọrụ, mana n'azụ ntọala ha ka a na-ezigara na ịntanetị. Ha na-ezigaghị ọba akwụkwọ gị, kama hashes ma ọ bụ ụkpụrụ nke ha, nke ha na-agbakọ, na akara mkpịsị aka na ihe nkesa ha iji nweta ozi gbasara ọnụnọ nke adịghị ike.

Usoro ntinye

Njikwa gburugburu nke ọba akwụkwọ, nke a na-ebudata site na isi mmalite. Anyị nwere ebe nchekwa mpụga na nke ime. Dịka ọmụmaatụ, Event Central na-agba Nexus, anyị chọrọ ijide n'aka na ọ dịghị adịghị ike n'ime ebe nchekwa anyị nwere ọkwa "dị oke egwu" ma ọ bụ "elu". Ị nwere ike hazie proxying site na iji Nexus Firewall Lifecycle ngwá ọrụ ka ebipụ adịghị ike dị otú ahụ ma ghara ịbanye na ebe nchekwa dị n'ime.

Ntinye n'ime CI. Na otu larịị na autotests, unit ule na nkewa n'ime mmepe nkebi: dev, test, prod. Na ọkwa ọ bụla, ị nwere ike ibudata ọbá akwụkwọ ọ bụla, jiri ihe ọ bụla mee ihe, ma ọ bụrụ na e nwere ihe siri ike na ọnọdụ "dị oke egwu", ikekwe ọ bara uru ịdọrọ uche nke ndị mmepe na nke a na ọkwa nke ntọhapụ na mmepụta.

Mwekota na artifact: Nexus na JFrog.

Ntinye n'ime gburugburu mmepe. Ngwa ndị ị na-ahọrọ kwesịrị inwe njikọ na gburugburu mmepe. Onye nrụpụta ga-enwerịrị ike nweta nsonaazụ nyocha site na ebe ọrụ ya, ma ọ bụ ikike inyocha na lelee koodu ahụ n'onwe ya maka adịghị ike tupu itinye aka na CVS.

CD mwekota. Nke a bụ akụkụ dị mma nke na-amasị m nke ukwuu na nke m kwuwororịị - nyochaa mpụta nke adịghị ike ọhụrụ na gburugburu ụlọ ọrụ mmepụta ihe. Ọ na-arụ ọrụ dị ka nke a.

Egwu na ịkpọasị nke DevSecOps

Anyị nwere Ebe nchekwa akụkụ Ọha - ụfọdụ ngwaọrụ dị n'èzí, yana ebe nchekwa anyị dị n'ime. Anyị chọrọ ka ọ nwee naanị ngwa ndị tụkwasịrị obi. Mgbe ị na-ezigara arịrịọ, anyị na-elele na ọba akwụkwọ ebudatara enweghị ọghọm. Ọ bụrụ na ọ dabara n'okpuru ụfọdụ atumatu anyị debere na ọ bụchaghị na-ahazi na mmepe ahụ, anyị anaghị ebulite ya ma kpalie anyị iji ụdị ọzọ. N'ihi ya, ọ bụrụ na e nwere ihe dị oke egwu na ihe ọjọọ n'ọbá akwụkwọ, mgbe ahụ, onye mmepụta agaghị enweta ọbá akwụkwọ ahụ na nhazi nhazi - ka o jiri nsụgharị dị elu ma ọ bụ dị ala.

  • Mgbe anyị na-ewu ụlọ, anyị na-achọpụta na ọ dịghị onye ọ bụla ewepụghị ihe ọjọọ ọ bụla, na ihe niile dị na ya dị mma ma ọ dịghị onye wetara ihe ọ bụla dị ize ndụ na draịvụ flash.
  • Anyị nwere naanị akụrụngwa ntụkwasị obi na ebe nchekwa ahụ.
  • Mgbe a na-ebuga ya, anyị na-elele ngwugwu ahụ ọzọ: agha, ite, DL ma ọ bụ onyonyo Docker iji hụ na ọ na-akwado iwu.
  • Mgbe ị na-abanye na ụlọ ọrụ ahụ, anyị na-enyocha ihe na-eme na gburugburu ụlọ ọrụ mmepụta ihe: adịghị ike dị egwu na-apụta ma ọ bụ na-apụtaghị.

Nyocha dị omimi - DAST

Ngwá ọrụ nyocha dị omimi dị iche na ihe niile ekwuru na mbụ. Nke a bụ ụdị nṅomi nke ọrụ onye ọrụ na ngwa ahụ. Ọ bụrụ na nke a bụ ngwa weebụ, anyị na-eziga arịrịọ, na-eme ka ọrụ nke onye ahịa ahụ, pịa bọtịnụ dị n'ihu, zipu data artificial site na ụdị: ntinye okwu, brackets, odide na ntinye ederede dị iche iche, iji hụ ka ngwa ahụ si arụ ọrụ na usoro. data mpụga.

Otu usoro ahụ na-enye gị ohere ịlele adịghị ike nke ndebiri na Open Source. Ebe DAST amaghị isi mmalite mepere emepe anyị na-eji, ọ na-atụfu usoro “obi ọjọọ” wee nyochaa azịza nkesa:

- Ee, enwere nsogbu deserialization ebe a, mana ọ bụghị ebe a.

Enwere nnukwu ihe ize ndụ na nke a, n'ihi na ọ bụrụ na ị na-eme ule nchekwa a n'otu oche ahụ nke ndị na-anwale na-arụ ọrụ, ihe ndị na-adịghị mma nwere ike ime.

  • Ibu dị elu na netwọk nkesa ngwa.
  • Enweghị njikọta.
  • Ikike ịgbanwe ntọala nke ngwa nyochara.
  • Enweghị nkwado maka teknụzụ ndị dị mkpa.
  • Ịtọ ntọala siri ike.

Anyị nwere ọnọdụ mgbe anyị mechara malite AppScan: anyị nọrọ ogologo oge na-agbalị ịnweta ngwa ahụ, nweta akaụntụ 3 ma nwee obi ụtọ - anyị ga-emecha lelee ihe niile! Anyị malitere nyocha, ihe mbụ AppScan mere bụ ịbanye na ngalaba nchịkwa, dụpuo bọtịnụ niile, gbanwee ọkara nke data ahụ wee jiri ya gbuo ihe nkesa ahụ kpamkpam. akwụkwọ ozi-arịọ arịrịọ. Mmepe na ule kwuru:

- Ụmụ okorobịa, ị na-egwu m egwu?! Anyị nyere gị ihe ndekọ ego, ma i guzobe ihe nkwụnye ego!

Tụlee ihe ize ndụ ndị nwere ike ime. Dị ka o kwesịrị, kwadebe nguzo dị iche iche maka ịnwale nchekwa ozi, nke a ga-anọpụ iche na mpaghara ndị ọzọ opekata mpe, wee lelee panel admin, ọkachamma na ọnọdụ ntuziaka. Nke a bụ pentest - pasentị mbọ ndị fọdụrụ nke anyị anaghị atụle ugbu a.

Ọ bara uru ịtụle na ị nwere ike iji nke a dị ka ihe analog nke nnwale ibu. Na ọkwa mbụ, ị nwere ike ịgbanye nyocha dị ike nke nwere eriri 10-15 wee hụ ihe na-eme, ma na-emekarị, dị ka omume na-egosi, ọ dịghị ihe dị mma.

Ihe onwunwe ole na ole anyị na-ejikarị eme ihe.

Egwu na ịkpọasị nke DevSecOps

Kwesịrị ịkọwapụta Burp Suite bụ mma "Swiss" maka ọkachamara nchekwa ọ bụla. Onye ọ bụla na-eji ya ma ọ dị mma nke ukwuu. E wepụtala ụdị ngosi ọhụrụ nke mbipụta ụlọ ọrụ ugbu a. Ọ bụrụ na mbụ ọ bụ naanị ihe nkwụnye naanị ya na plugins, ugbu a, ndị mmepe na-emecha mee nnukwu ihe nkesa nke ọ ga-ekwe omume ijikwa ọtụtụ ndị ọrụ. Nke a dị mma, ana m akwado ka ị nwaa ya.

Usoro ntinye

Mmekọrịta na-eme nke ọma na n'ụzọ dị mfe: malite ịgụ isiokwu mgbe emechara nke ọma ngwa maka nkwụnye na ịgụ isiokwu mgbe ịga nke ọma mwekota ule.

Ọ bụrụ na njikọta anaghị arụ ọrụ ma ọ bụ enwere stubs na ọrụ ịkwa emo, ọ nweghị isi na enweghị isi - n'agbanyeghị ụkpụrụ anyị na-eziga, ihe nkesa ahụ ka ga-aza otu ụzọ ahụ.

  • Kwesịrị ekwesị, nkwụnye ule dị iche.
  • Tupu nnwale, dee usoro nbanye.
  • Nnwale usoro nchịkwa bụ naanị akwụkwọ ntuziaka.

usoro

Obere mkpokọta banyere usoro n'ozuzu yana banyere ọrụ nke ngwá ọrụ ọ bụla. Ngwa niile dị iche iche - otu na-arụ ọrụ nke ọma na nyocha siri ike, nke ọzọ nwere nyocha static, nke atọ nwere nyocha OpenSource, pents, ma ọ bụ ihe ọzọ kpamkpam, dịka ọmụmaatụ, ihe omume nwere. Waf.

Usoro ọ bụla chọrọ njikwa.

Iji ghọta otú usoro si arụ ọrụ na ebe enwere ike imeziwanye ya, ịkwesịrị ịnakọta metrics site na ihe niile ị nwere ike nweta aka gị, gụnyere mmepụta metrics, metrics si na ngwá ọrụ, na site na ndị na-achọpụta ntụpọ.

Ozi ọ bụla na-enyere aka. Ọ dị mkpa ile anya site n'akụkụ dị iche iche ebe a na-eji nke a ma ọ bụ ngwá ọrụ ahụ mma, ebe usoro ahụ kpọmkwem sags. Ọ nwere ike ịba uru ileba anya oge nzaghachi mmepe iji hụ ebe a ga-emeziwanye usoro ahụ dabere na oge. Ka data ka ukwuu, enwere ike wulite akụkụ ndị ọzọ site na ọkwa dị elu ruo nkọwa nke usoro ọ bụla.

Egwu na ịkpọasị nke DevSecOps

Ebe ọ bụ na ndị nyocha niile kwụ ọtọ na ndị siri ike nwere API nke ha, ụzọ mmalite nke ha, ụkpụrụ, ụfọdụ nwere ndị nhazi, ndị ọzọ enweghị - anyị na-ede ngwa ọrụ. AppSec Orchestrator, nke na-enye gị ohere ịmepụta otu ntinye ntinye n'ime usoro dum site na ngwaahịa ahụ ma jikwaa ya site n'otu ebe.

Ndị njikwa, ndị mmepe na ndị injinia nchekwa nwere otu ntinye ebe ha nwere ike ịhụ ihe na-agba ọsọ, hazie ma mee nyocha, nweta nsonaazụ nyocha, wee nyefee ihe achọrọ. Anyị na-agbalị ịpụpụ akwụkwọ, iji sụgharịa ihe niile n'ime mmadụ, nke a na-eji mmepe - ibe na Confluence na ọnọdụ na metrics, ntụpọ na Jira ma ọ bụ dị iche iche ntụpọ trackers, ma ọ bụ ntinye n'ime usoro synchronous / asynchronous na CI. /CD.

Etu ụzọ dị mkpa

Ngwá ọrụ abụghị isi ihe. Buru ụzọ chee echiche site na usoro - wee mejuputa ngwaọrụ. Ngwá ọrụ dị mma ma dị oke ọnụ, ya mere ị nwere ike ịmalite usoro ahụ ma wuo nkwurịta okwu na nghọta n'etiti mmepe na nchekwa. Site na echiche nchekwa, ọ dịghị mkpa ka a "kwụsị" ihe niile. Site na mmepe mmepe, ọ bụrụ na e nwere ihe dị elu mega dị oke egwu, mgbe ahụ ọ dị mkpa ka ekpochapụ ya, ma ghara ileghara nsogbu ahụ anya.

Ogo ngwaahịa - otu ihe mgbaru ọsọ ma nchekwa na mmepe. Anyị na-eme otu ihe, anyị na-agbalị ịhụ na ihe niile na-arụ ọrụ nke ọma na ọ dịghị ihe ize ndụ aha ma ọ bụ ego efu. Nke a bụ ya mere anyị ji akwalite ụzọ DevSecOps, SecDevOps iji melite nkwurịta okwu na melite ogo ngwaahịa.

Malite na ihe i nweburu: chọrọ, architecture, ele mmadụ anya n'ihu, ọzụzụ, ụkpụrụ nduzi. Ọ dịghị mkpa ozugbo itinye omume niile na ọrụ niile - aga ugboro ugboro. Enweghị otu ọkọlọtọ - nnwale ma gbalịa ụzọ dị iche iche na ngwọta.

Enwere akara nha anya n'etiti ntụpọ nchekwa ozi yana ntụpọ arụrụ arụ.

Megharịa ihe niilena-akpali. Ihe ọ bụla na-adịghị akwagharị, bugharịa ya ma megharịa ya. Ọ bụrụ na ejiri aka mee ihe, ọ bụghị akụkụ dị mma nke usoro ahụ. Ikekwe, ọ bara uru inyocha ya na akpaghị aka.

Ọ bụrụ na nha nke otu IS dị obere - jiri nchekwa nchekwa.

Ikekwe ihe m kwuru agaghị adabara gị na ị ga-ewepụta ihe nke gị - nke ahụ dịkwa mma. Ma họrọ ngwaọrụ dabere na ihe achọrọ maka usoro gị. Elela ihe obodo na-ekwu, na ngwá ọrụ a dị njọ na nke a dị mma. Ikekwe ihe dị iche ga-abụ eziokwu maka ngwaahịa gị.

Ihe achọrọ maka ngwaọrụ.

  • Ọkwa dị ala adịchaghị mma.
  • Oge nyocha zuru oke.
  • Enweghị ike iji.
  • Nnwekọrịta nke njikọta.
  • Ịghọta ụzọ mmepe ngwaahịa.
  • Enwere ike ịhazi ngwa ọrụ.

A họọrọ akụkọ Yuri dị ka otu n'ime ihe kachasị mma na DevOpsConf 2018. Iji mara ọbụna echiche ndị ọzọ na-adọrọ mmasị na ikpe bara uru, bịa na Skolkovo na May 27 na 28. DevOpsConf n'ime ememe RIT++. Nke ka mma, ọ bụrụ na ị dị njikere ịkọrọ ahụmahụ gị, mgbe ahụ tinye maka akụkọ ahụ ruo Eprel 21.

isi: www.habr.com

Tinye a comment