DevOps vs DevSecOps: kisa li te sanble nan yon sèl bank

DevOps vs DevSecOps: kisa li te sanble nan yon sèl bank

Bank la externalisation pwojè li pou anpil kontraktè. "Eksteryè" ekri kòd, Lè sa a, transmèt rezilta yo nan yon fòm pa trè pratik. Espesyalman, pwosesis la te sanble sa a: yo te remèt yon pwojè ki te pase tès fonksyonèl ak yo, epi yo te teste andedan perimèt bankè a pou entegrasyon, chaj, ak sou sa. Li te souvan dekouvri ke tès yo te echwe. Lè sa a, tout bagay tounen nan pwomotè ekstèn lan. Kòm ou ka devine, sa vle di tan plon long pou fikse ensèk.

Bank la deside ke li te posib ak nesesè yo trennen tiyo a tout antye anba zèl li yo, ki soti nan komèt yo lage. Se konsa, ke tout bagay se inifòm ak anba kontwòl ekip yo ki responsab pou pwodwi a nan bank la. Sa vle di, kòm si kontraktè ekstèn lan te tou senpleman ap travay yon kote nan chanm kap vini an nan biwo a. Sou pil antrepriz la. Sa a se yon devops òdinè.

Ki kote Sec soti? Sekirite bank la te mete gwo demand sou fason yon kontraktè ekstèn ka travay nan segman rezo a, ki aksè yon moun genyen, ki jan ak ki moun ki travay ak kòd la. Li jis ke IB pa t 'ankò konnen ke lè kontraktè yo travay deyò, kèk estanda bankè yo swiv. Lè sa a, nan yon koup de jou tout moun bezwen kòmanse obsève yo.

Revelasyon an senp ke kontraktè a te gen aksè konplè a kòd pwodwi a te deja vire mond yo tèt anba.

Nan moman sa a, istwa a nan DevSecOps te kòmanse, ki mwen vle di ou sou.

Ki konklizyon pratik bank la te tire nan sitiyasyon sa a?

Te gen anpil konfli sou lefèt ke tout bagay ap fèt nan fason ki mal. Devlopè yo te di ke sekirite se sèlman okipe ap eseye entèfere ak devlopman, epi yo, tankou veye, eseye entèdi san yo pa reflechi. Nan vire, espesyalis sekirite yo ezite ant chwazi ant pwen de vi yo: "devlopè yo kreye vilnerabilite nan kous nou an" ak "devlopè pa kreye frajilite, men se yo menm." Diskisyon an ta kontinye pou yon tan long si se pa pou nouvo demand mache ak Aparisyon nan paradigm DevSecOps. Li te posib yo eksplike ke sa a automatisation trè nan pwosesis pran an kont kondisyon sekirite enfòmasyon "soti nan bwat la" pral ede tout moun rete kontan. Nan sans ke règ yo ekri imedyatman epi yo pa chanje pandan jwèt la (sekirite enfòmasyon an pa pral entèdi yon bagay sanzatann), ak devlopè yo kenbe sekirite enfòmasyon an enfòme sou tout sa k ap pase (sekirite enfòmasyon an pa rankontre yon bagay toudenkou) . Chak ekip responsab tou pou sekirite ultim, epi yo pa kèk gran frè abstrè.

  1. Depi anplwaye ekstèn yo deja gen aksè a kòd la ak yon kantite sistèm entèn, li posib pou retire nan dokiman yo egzijans "devlopman dwe fèt antyèman sou enfrastrikti bank la."
  2. Yon lòt bò, nou bezwen ranfòse kontwòl sou sa k ap pase.
  3. Konpwomi a se te kreyasyon ekip kwa-fonksyonèl, kote anplwaye yo travay kole kole ak moun ekstèn. Nan ka sa a, ou bezwen asire w ke ekip la ap travay sou zouti sou serveurs bank la. Depi nan kòmansman rive nan fen.

Sa vle di, kontraktè yo ka pèmèt yo antre, men yo bezwen yo ba yo segman separe. Pou yo pa pote kèk kalite enfeksyon soti deyò nan enfrastrikti bank la ak pou yo pa wè plis pase sa ki nesesè. Oke, se konsa ke aksyon yo konekte. DLP pou pwoteksyon kont fwit, tout bagay sa yo te enkli.

Nan prensip, tout bank vin jwenn sa pi bonè oswa pita. Isit la nou te desann chemen bat yo ak te dakò sou kondisyon yo pou anviwònman sa yo kote "ekstèn" travay. Te parèt yon seri maksimòm de zouti kontwòl aksè, zouti pou tcheke vilnerabilite, analiz anti-viris sou sikui, asanble ak tès yo. Yo rele sa DevSecOps.

Toudenkou li te vin klè ke si anvan DevSecOps sekirite bankè pa te gen okenn kontwòl sou sa k ap pase sou bò pwomotè a, Lè sa a, nan nouvo paradigm sekirite a kontwole nan menm fason an kòm evènman òdinè sou enfrastrikti a. Se sèlman kounye a gen alèt sou asanble, kontwòl nan bibliyotèk, ak sou sa.

Tout sa ki rete se transfere ekip yo nan nouvo modèl la. Oke, kreye enfrastrikti a. Men, sa yo se vetiy, se tankou trase yon chwèt. Aktyèlman, nou te ede ak enfrastrikti a, e nan moman sa a pwosesis devlopman yo te chanje.

Ki sa ki te chanje

Nou te deside aplike li an ti etap, paske nou te konprann ke anpil pwosesis ta ka dekonpoze, ak anpil "ekstèn" ta ka pa kapab kenbe tèt ak nouvo kondisyon travay yo anba sipèvizyon tout moun.

Premyèman, nou te kreye ekip kwa-fonksyonèl ak aprann òganize pwojè yo pran an kont nouvo kondisyon. Nan sans òganizasyon an nou te diskite ki pwosesis. Rezilta a se te yon dyagram nan tiyo asanble a ak tout moun ki responsab.

  • IC: Git, Jenkins, Maven, Roslyn, Gradle, jUnit, Jira, MF Fortify, CA Harvest, GitlabCI.
  • CD: Ansible, Puppet, TeamCity, Gitlab TFS, Liquidbase.
  • Egzamen an: Sonarqube, SoapUI, jMeter, Selenyòm: MF Fortify, Performance Center, MF UFT, Ataccama.
  • prezantasyon (rapò, kominikasyon): Grafana, Kibana, Jira, Confluence, RocketChat.
  • Operasyon (antretyen, jesyon): Ansible, Zabbix, Prometheus, Elastic + Logstash, Manadjè Sèvis MF, Jira, Confluence, MS Project.

Pile chwazi:

  • Konesans Baz - Atlassian Confluence;
  • Tracker travay - Atlassian Jira;
  • Repozitwa artefact - "Nexus";
  • Sistèm entegrasyon kontinyèl - "Gitlab CI";
  • Sistèm analiz kontinyèl - "SonarQube";
  • Sistèm analiz sekirite aplikasyon - "Micro Focus Fortify";
  • Sistèm kominikasyon - "GitLab Mattermost";
  • Sistèm jesyon konfigirasyon - "Ansible";
  • Sistèm siveyans - "ELK", "TICK Stack" ("InfluxData").

Yo te kòmanse kreye yon ekip ki ta pare pou trennen kontraktè andedan. Gen yon realizasyon ke gen plizyè bagay enpòtan:

  • Tout bagay ta dwe inifye, omwen lè transmèt kòd. Paske te gen anpil kontraktè kòm te gen anpil pwosesis devlopman diferan ak sengularite pwòp yo. Li te nesesè yo anfòm tout moun nan apeprè yon sèl, men ak opsyon.
  • Gen anpil kontraktè, ak manyèl kreyasyon enfrastrikti pa apwopriye. Nenpòt nouvo travay ta dwe kòmanse trè vit - se sa ki, egzanp lan ta dwe deplwaye prèske imedyatman pou devlopè yo gen yon seri solisyon pou jere tiyo yo.

Pou fè premye etap la, li te nesesè yo konprann sa ki te fèt. Epi nou te oblije detèmine ki jan yo rive la. Nou te kòmanse pa ede trase achitekti solisyon sib la tou de nan enfrastrikti ak automatisation CI/CD. Lè sa a, nou te kòmanse rasanble sa a CONVEYOR. Nou te bezwen yon sèl enfrastrikti, menm bagay la tou pou tout moun, kote menm transporteur yo ta kouri. Nou te ofri opsyon ak kalkil, bank la te panse, Lè sa a, deside ki sa ki ta dwe bati ak ki lajan.

Next se kreyasyon an nan kous la - enstalasyon lojisyèl, konfigirasyon. Devlopman scripts pou deplwaman enfrastrikti ak jesyon. Apre ap vini tranzisyon an nan sipò CONVEYOR.

Nou deside teste tout bagay sou pilòt la. Enteresan, pandan pilotaj la, yon pil sèten parèt nan bank la pou premye fwa. Pami lòt bagay, yo te ofri yon machann domestik nan youn nan solisyon yo pou sijè ki abòde lan pilòt la pou yon lansman rapid. Sekirite te vin konnen l pandan l t ap pilote, epi li te kite yon enpresyon inoubliyab. Lè nou deside chanje, erezman, kouch enfrastrikti a te ranplase ak yon solisyon Nutanix, ki te deja nan bank la anvan. Anplis, anvan sa li te pou VDI, men nou te reitilize li pou sèvis enfrastrikti. Nan ti komèsan li pa t 'anfòm nan ekonomi an, men nan volim gwo li te vin yon anviwònman ekselan pou devlopman ak tès.

Rès pil la se plis oswa mwens abitye pou tout moun. Yo te itilize zouti automatisation nan Ansible, epi espesyalis sekirite yo te travay kole kole ak yo. Pile Atlassin la te itilize pa bank la anvan pwojè a. Zouti sekirite Fortinet - li te pwopoze pa moun sekirite yo tèt yo. Bank la te kreye ankadreman tès la, pa gen okenn kesyon yo te poze. Sistèm depo a te poze kesyon; mwen te oblije abitye avèk li.

Kontraktè yo te bay yon nouvo pil. Yo te ban nou tan pou nou reekri li pou GitlabCI, epi pou nou imigre Jira nan segman bankè a, ak sou sa.

pa za pa

Etap 1. Premyèman, nou te itilize yon solisyon ki soti nan yon machann domestik, pwodwi a te konekte ak yon nouvo kreye segman rezo DSO. Te platfòm la chwazi pou tan livrezon li yo, fleksibilite dekale ak posibilite pou automatisation konplè. Tès ki fèt:

  • Posiblite pou jesyon fleksib ak konplètman otomatize nan enfrastrikti platfòm Virtualization (rezo, sous-sistèm disk, sous-sistèm resous enfòmatik).
  • Otomatik jesyon lavi machin vityèl (modèl, snapshots, sovgad).

Apre enstalasyon ak konfigirasyon debaz nan platfòm la, li te itilize kòm pwen an nan plasman nan dezyèm etap subsystems (DSO zouti, detay devlopman sistèm deskripsyon). Yo te kreye ansanm ki nesesè nan tiyo - kreyasyon, sipresyon, modifikasyon, backup nan machin vityèl. Tiyo sa yo te itilize kòm premye etap pwosesis deplwaman an.

Rezilta a se ke ekipman yo bay la pa satisfè kondisyon bank la pou pèfòmans ak tolerans fay. DIT bank la deside kreye yon konplèks ki baze sou pake lojisyèl Nutanix la.

Etap 2. Nou te pran pil la ki te defini, epi nou te ekri enstalasyon otomatik ak post-konfigirasyon scripts pou tout subsystems pou tout bagay te transfere soti nan pilòt la nan sikwi sib la pi vit posib. Tout sistèm yo te deplwaye nan yon konfigirasyon ki toleran defo (kote kapasite sa a pa limite pa règleman lisans vandè a) epi yo te konekte ak mezi ak sistèm koleksyon evènman yo. IB analize konfòmite ak kondisyon li yo epi li bay limyè vèt la.

Etap 3. Migrasyon tout subsistèm ak paramèt yo nan nouvo PAC. Scripts automatisation enfrastrikti yo te reekri, epi migrasyon subsistèm DSO yo te konplete nan yon mòd konplètman otomatize. Yo te rekreye kontou devlopman IP pa tiyo ekip devlopman yo.

Etap 4. Otomatik enstalasyon lojisyèl aplikasyon an. Travay sa yo te etabli pa dirijan ekip nouvo ekip yo.

Etap 5. Eksplwatasyon.

Aksè Remote

Ekip devlopman yo te mande pou maksimòm fleksibilite nan travay ak kous la, epi egzijans pou aksè aleka nan òdinatè pòtab pèsonèl yo te leve soti nan kòmansman pwojè a. Bank la te deja gen aksè aleka, men li pa t apwopriye pou devlopè yo. Reyalite a se ke konplo a te itilize koneksyon itilizatè a nan yon VDI pwoteje. Sa a te apwopriye pou moun ki sèlman bezwen lapòs ak yon pake biwo nan espas travay yo. Devlopè ta bezwen gwo kliyan, pèfòmans segondè, ak anpil resous. Ak nan kou, yo te dwe estatik, depi pèt la nan sesyon itilizatè a pou moun ki travay ak VStudio (pa egzanp) oswa lòt SDK se akseptab. Òganize yon gwo kantite VDI estatik epè pou tout ekip devlopman anpil ogmante pri a nan solisyon an VDI ki deja egziste.

Nou deside travay sou aksè aleka dirèkteman nan resous yo nan segman devlopman an. Jira, Wiki, Gitlab, Nexus, bati ak tès ban, enfrastrikti vityèl. Gad sekirite yo te mande pou yo ka bay aksè sèlman dapre sa ki annapre yo:

  1. Sèvi ak teknoloji ki deja disponib nan bank la.
  2. Enfrastrikti a pa ta dwe itilize kontwolè domèn ki egziste deja ki estoke dosye objè kont pwodiktif yo.
  3. Aksè yo ta dwe limite a sèlman resous yon ekip espesifik egzije (pou yon ekip pwodwi pa ka jwenn aksè nan resous yon lòt ekip).
  4. Maksimòm kontwòl sou RBAC nan sistèm yo.

Kòm yon rezilta, yo te kreye yon domèn separe pou segman sa a. Domèn sa a te loje tout resous segman devlopman yo, tou de kalifikasyon itilizatè yo ak enfrastrikti. Se sik lavi dosye nan domèn sa a jere lè l sèvi avèk IdM ki egziste nan bank la.

Aksè dirèk aleka te òganize sou baz ekipman ki egziste deja bank la. Kontwòl aksè a te divize an gwoup AD, ak ki règ sou kontèks koresponn (yon gwoup pwodwi = yon gwoup règ).

Jesyon modèl VM

Vitès la nan kreye yon bouk asanble ak tès se youn nan KPI prensipal yo mete tèt la nan inite devlopman an, paske vitès la nan prepare anviwònman an dirèkteman afekte tan an egzekisyon an jeneral nan tiyo a. Yo te konsidere de opsyon pou prepare imaj baz VM yo. Premye a se gwosè minimòm imaj yo, default pou tout pwodwi sistèm, maksimòm konfòmite ak règleman bank la konsènan paramèt. Dezyèm lan se imaj la baz, ki gen yon POPPO lou-devwa enstale, tan an enstalasyon nan ki ta ka anpil enfliyanse vitès la ekzekisyon nan tiyo a.

Kondisyon enfrastrikti ak sekirite yo te pran an konsiderasyon tou pandan devlopman - kenbe imaj ajou (patch, elatriye), entegrasyon ak SIEM, anviwònman sekirite selon estanda bank yo.

Kòm yon rezilta, li te deside sèvi ak imaj minim yo nan lòd yo minimize pri pou kenbe yo ajou. Li pi fasil pou aktyalize OS debaz la pase patch chak imaj pou nouvo vèsyon POPPO.

Ki baze sou rezilta yo, yo te fòme yon lis nan seri minimòm ki nesesè nan sistèm opere, aktyalizasyon a ki te pote soti nan ekip operasyon an, ak scripts ki soti nan tiyo a se antyèman responsab pou mete ajou lojisyèl an, epi si sa nesesè, chanje vèsyon an. nan lojisyèl an enstale - jis transfere tag ki nesesè yo nan tiyo a. Wi, sa mande pou ekip pwodwi devops la gen senaryo deplwaman pi konplèks, men li redwi anpil tan operasyonèl ki nesesè pou sipòte imaj baz, ki ta ka otreman mande pou plis pase yon santèn imaj baz VM pou kenbe.

Aksè Entènèt

Yon lòt obstak ak sekirite bankè se te aksè a resous Entènèt nan anviwònman devlopman an. Anplis, aksè sa a ka divize an de kategori:

  1. Aksè enfrastrikti.
  2. Aksè devlopè.

Aksè enfrastrikti te òganize pa proxy depo ekstèn ak Nexus. Sa vle di, aksè dirèk nan machin vityèl pa te bay. Sa a te fè li posib yo rive jwenn yon konpwomi ak sekirite enfòmasyon, ki te kategorikman kont bay nenpòt aksè nan mond lan deyò nan segman nan devlopman.

Devlopè yo te bezwen aksè nan entènèt la pou rezon evidan (stackoverflow). Ak byenke tout kòmandman, jan mansyone pi wo a, te gen aksè aleka nan kous la, li pa toujou pratik lè ou pa ka fè ctrl + v soti nan espas travay pwomotè a nan bank la nan IDE la.

Yo te jwenn yon akò ak IS ki okòmansman, nan etap tès la, yo pral bay aksè atravè yon prokurasyon bankè ki baze sou yon lis blan. Lè pwojè a fini, aksè a pral transfere nan lis nwa a. Yo te prepare yon gwo tab aksè, ki te endike resous prensipal yo ak depo yo te gen aksè a nan kòmansman pwojè a. Kowòdinasyon aksè sa yo te pran yon bon kantite tan, ki te fè li posib pou ensiste sou tranzisyon ki pi rapid posib nan lis nwa yo.

Jwenn

Pwojè a te fini yon ti kras mwens pase yon ane de sa. Etranj ase, tout kontraktè chanje nan nouvo chemine a alè epi pèsonn pa kite akòz nouvo automatisation a. IB pa prese pataje fidbak pozitif, men li pa plenyen tou, ki soti nan ki nou ka konkli ke yo renmen li. Konfli yo te bese paske sekirite enfòmasyon ankò santi yo nan kontwòl, men li pa entèfere ak pwosesis devlopman. Ekip yo te bay plis responsablite, ak atitid jeneral anvè sekirite enfòmasyon te vin pi bon. Bank la te konprann ke tranzisyon an nan DevSecOps te prèske inevitab, e li te fè li, nan opinyon mwen, nan fason ki pi dou ak kòrèk.

Alexander Shubin, achitèk sistèm.

Sous: www.habr.com

Add nouvo kòmantè