DevOps vs DevSecOps: kumaha rupana dina hiji bank

DevOps vs DevSecOps: kumaha rupana dina hiji bank

Bank outsources proyék na ka sababaraha kontraktor. "Orang luar" ieu nyerat kodeu teras nganteurkeun hasilna dina format anu kirang idéal. Sacara khusus, prosésna sapertos kieu: aranjeunna bakal nyerahkeun proyék anu parantos lulus tés fungsionalna, teras nguji éta sacara internal pikeun integrasi, beban, sareng sajabana. Tés anu sering kapanggih gagal. Lajeng sagalana dikirim deui ka pamekar éksternal. Sakumaha anjeun tiasa bayangkeun, ieu hartosna waktos anu penting pikeun ngalereskeun bug.

Bank mutuskeun éta mungkin jeung perlu pikeun mawa sakabéh pipa handapeun jangjang na, ti commits mun Kaluaran, ku kituna sagalana bakal ngahiji jeung dina kontrol tim jawab produk bank urang. Saolah-olah hiji kontraktor éksternal ngan saukur gawe di kamar kantor hareup, dina tumpukan perusahaan. Ieu standar DevOps.

Ti mana asalna Sec? Sarat kaamanan bank netepkeun standar anu luhur pikeun kumaha kontraktor luar tiasa damel di bagean jaringan, aksés naon anu dipiboga ku sadayana, kumaha sareng saha anu damel sareng kodeu. Kaamanan inpormasi ngan teu acan terang yén nalika kontraktor damel di luar, sababaraha standar bank anu dititénan. Sareng ayeuna, sadayana kedah matuh aranjeunna dina sababaraha dinten.

Hiji wahyu saderhana yén kontraktor ngagaduhan aksés pinuh kana kode produk parantos ngabalikkeun dunyana.

Ieu dimana carita DevSecOps, anu kuring hoyong terangkeun ka anjeun, dimimitian.

Naon kasimpulan praktis anu ditarik ku bank tina kaayaan ieu?

Aya seueur perdebatan ngeunaan kumaha hal-hal anu dilakukeun sacara teu leres di industri. Pamekar nyatakeun yén kaamanan ngan ukur prihatin pikeun ngahalangan pangwangunan, sareng aranjeunna, sapertos penjaga gerbang, nyobian ngalarang hal-hal tanpa mikir. Samentara éta, professional kaamanan, wavered antara dua posisi: "pamekar nyieun vulnerabilities dina sistem kami" jeung "developer teu nyieun vulnerabilities, aranjeunna vulnerabilities sorangan." Perdebatan bakal dituluykeun pikeun waktos anu lami upami henteu pikeun tungtutan pasar énggal sareng munculna paradigma DevSecOps. Éta jelas yén prosés otomatisasi ieu, ngiringan syarat kaamanan inpormasi "out of the box," bakal ngabantosan sadayana tetep bahagia. Ieu ngandung harti yén aturan anu ditulis handap geuwat sarta teu robah salila game (kaamanan informasi moal larangan hal disangka), sarta pamekar diteundeun kaamanan informasi informed sagalana (kaamanan informasi teu sapatemon nanaon kaduga). Kaamanan pamungkas ogé tanggung jawab unggal tim, sanés sababaraha baraya anu abstrak.

  1. Kusabab karyawan éksternal parantos ngagaduhan aksés kana kode sareng sajumlah sistem internal, sigana kamungkinan pikeun ngaleungitkeun sarat yén "pangwangunan kedah dilaksanakeun sadayana dina infrastruktur bank" tina dokumén.
  2. Di sisi anu sanés, urang kedah nguatkeun kontrol kana naon anu kajantenan.
  3. Kompromi nya éta nyieun tim cross-fungsi, dimana karyawan dianggo raket jeung mitra éksternal. Dina hal ieu, tim perlu ngerjakeun parabot dina server bank urang, ti mimiti nepi ka rengse.

Janten kontraktor tiasa diidinan, tapi aranjeunna kedah disimpen dina bagian anu misah. Ieu bakal nyegah aranjeunna tina mawa sagala malware luar kana infrastruktur bank sarta nyegah aranjeunna ningali leuwih ti diperlukeun. Jeung lampah maranéhanana bakal asup. DLP bakal aya pikeun ngajagaan tina bocor data, sareng sadaya anu bakal kalebet.

Sacara prinsip, sadaya bank datang ka kacindekan ieu sooner atanapi engké. Di dieu, aranjeunna nuturkeun jalur anu dijalankeun sareng sapuk kana syarat pikeun lingkungan dimana kontraktor éksternal beroperasi. Aranjeunna ngenalkeun set komprehensif alat kontrol aksés, alat panyeken kerentanan, sareng analisa antipirus di tepi, nalika ngawangun, sareng salami tés. Ieu disebut DevSecOps.

Ujug-ujug janten jelas yén nalika DevSecOps saacanna teu gaduh kontrol kana naon anu lumangsung dina tungtung pamekar, dina paradigma anyar, kaamanan diawaskeun sapertos acara infrastruktur biasa. Ngan ayeuna aya béja ngawangun, ngawas perpustakaan, sareng sajabana.

Sadaya anu tetep nyaéta migrasi tim ka modél énggal. Sareng nyiptakeun infrastruktur. Tapi ieu mangrupikeun detil leutik, sapertos ngagambar bueuk. Nyatana, kami ngabantosan infrastruktur, sedengkeun prosés pangwangunan robih.

Naon robah

Kami mutuskeun pikeun nerapkeun éta dina léngkah-léngkah leutik sabab kami ngartos yén seueur prosés anu bakal runtuh, sareng seueur "orang luar" moal tiasa nahan kaayaan kerja énggal dina pangawasan sadaya jalma anu daék damel.

Kahiji, urang nyieun tim cross-fungsi jeung diajar kumaha carana ngatur proyék dumasar kana sarat anyar. Dina basa sejen, urang ngabahas prosés organisasi. Kami ngembangkeun diagram pipa ngawangun sareng sadaya pihak anu tanggung jawab.

  • OH KITU: Git, Jenkins, Maven, Roslyn, Gradle, jUnit, Jira, MF Fortify, CA Panen, GitlabCI.
  • CD: Ansible, Wayang, TeamCity, Gitlab TFS, Liquidbase.
  • test: Sonarqube, SoapUI, jMeter, selenium: MF Fortify, Performance Center, MF UFT, Ataccama.
  • ngawakilan (ngalaporkeun, komunikasi): Grafana, Kibana, Jira, Confluence, RocketChat.
  • operasi (pangropéa, manajemén): Ansible, Zabbix, Prometheus, elastis + Logstash, MF Service Manajer, Jira, Confluence, MS Project.

tumpukan dipilih:

  • Pangetahuan Base - "Atlassian Confluence";
  • Tugas Tracker - "Atlassian Jira";
  • Repository artefak - "Nexus";
  • Sistem integrasi kontinyu - "Gitlab CI";
  • Sistem analisis kontinyu - "SonarQube";
  • Sistem analisis kaamanan aplikasi - "Micro Focus Fortify";
  • Sistem komunikasi - "GitLab Mattermost";
  • Sistim manajemén konfigurasi - "Ansible";
  • Sistem pangimeutan: "ELK", "TICK Stack" ("InfluxData").

Urang mimiti ngawangun tim anu bakal siap mawa kontraktor. Urang sadar aya sababaraha hal penting:

  • Sadayana kedah ngahiji, sahenteuna dina tahap transfer kode. Kusabab aya saloba prosés pangwangunan anu béda-béda kalayan fitur unikna sorangan sapertos aya kontraktor. Ieu diperlukeun pikeun ngembun kabeh kana prosés kasarna seragam, tapi kalawan pilihan.
  • Aya seueur kontraktor, sareng nyiptakeun infrastruktur sacara manual sanés pilihan. Sakur tugas anyar kedah diluncurkeun gancang pisan-nyaéta, conto kedah disebarkeun ampir langsung, supados pamekar gaduh sakumpulan solusi pikeun ngatur pipa na.

Pikeun nyandak léngkah munggaran, urang kedah ngartos naon anu dilakukeun. Sarta kami kungsi nangtukeun kumaha ka dinya. Kami ngamimitian ku ngabantosan ngadesain arsitéktur solusi target, boh dina hal infrastruktur sareng otomatisasi CI / CD. Lajeng urang mimitian assembling pipa. Kami peryogi infrastruktur tunggal, idéntik pikeun sadayana, dimana jalur pipa anu sami bakal dijalankeun. Urang ngajukeun pilihan kalayan itungan, bank dianggap aranjeunna, lajeng mutuskeun naon anu bakal diwangun jeung naon sumberdaya.

Salajengna, nyiptakeun kerangka - pamasangan sareng konfigurasi parangkat lunak. Ngembangkeun skrip pikeun panyebaran sareng manajemén infrastruktur. Lajeng asalna transisi ka rojongan pipa.

Urang mutuskeun pikeun nguji sagalana dina pilot. Narikna, nalika pilot, tumpukan tangtu diwanohkeun ka bank pikeun kahiji kalina. Diantara hal séjén, hiji ngajual domestik salah sahiji solusi diusulkeun pikeun volume pilot pikeun peluncuran gancang. Kaamanan diwanohkeun ka dinya salila pilot, sarta eta ditinggalkeun hiji gambaran unforgettable. Nalika urang mutuskeun pikeun pindah, untungna, lapisan infrastruktur diganti ku solusi Nutanix anu geus dipaké di bank. Saméméhna, éta pikeun VDI, tapi kami dipaké deui pikeun layanan infrastruktur. Dina jilid leutik, éta henteu tiasa dilaksanakeun, tapi dina jilid ageung, éta janten lingkungan pangembangan sareng uji coba anu saé.

Sésa tumpukan téh leuwih atawa kurang wawuh ka dulur. Alat otomasi, khususna Ansible, dianggo, sareng tim kaamanan damel caket sareng aranjeunna. Bank parantos nganggo tumpukan Atlassian sateuacan proyék éta. Alat kaamanan Fortinet disarankeun ku tim kaamanan sorangan. Kerangka tés diciptakeun ku bank, henteu aya patarosan anu ditaroskeun. Sistem repositori ngajukeun patarosan, sareng peryogi sababaraha waktos.

Para kontraktor dibéré tumpukan anyar. Aranjeunna dibéré waktu pikeun nulis deui pikeun GitlabCI, migrasi Jira ka bagéan bank, jeung saterusna.

Léngkah-léngkah

Tahap 1. Mimitina, kami nganggo solusi ti vendor domestik, anu diintegrasikeun kana bagéan jaringan DSO anu nembé diciptakeun. Platform ieu dipilih pikeun waktos pangiriman, skalabilitas, sareng kamampuan otomatisasi pinuh. Kami ngalaksanakeun tés ieu:

  • Kamampuhan pikeun sacara fleksibel sareng pinuh otomatis ngatur infrastruktur platform virtualisasi (jaringan, subsistem disk, subsistem sumberdaya komputasi).
  • Otomatisasi manajemen siklus hirup mesin virtual (témplat, snapshot, cadangan).

Saatos instalasi sareng konfigurasi dasar platform, éta dianggo salaku host pikeun subsistem tahap kadua (alat DSO, kerangka pangembangan sistem ritel). Pipa anu diperyogikeun diciptakeun-nyieun, ngahapus, ngarobih, sareng nyadangkeun mesin virtual. Pipa ieu dianggo salaku tahap mimiti prosés panyebaran.

Hasilna, alat-alat anu disayogikeun henteu nyumponan syarat kinerja bank sareng kasabaran kasalahan. Departemen IT bank mutuskeun pikeun ngawangun sistem dumasar kana Nutanix.

tahap 2Kami nyandak tumpukan anu ditetepkeun sareng nyerat instalasi otomatis sareng skrip konfigurasi pos pikeun sadaya subsistem pikeun mastikeun yén sadayana ditransfer tina pilot ka lingkungan target gancang-gancang. Sadaya sistem dipasang dina konfigurasi anu gagal-aman (dimana kamampuan ieu henteu diwatesan ku kawijakan lisénsi anu ngajual) sareng nyambung ka métrik sareng subsistem koleksi acara. Kaamanan inpormasi dianalisis patuh kana syaratna sareng masihan lampu héjo.

tahap 3Migrasi sadaya subsistem sareng setélanna kana pakét parangkat lunak énggal. Skrip otomatisasi infrastruktur ditulis deui, sareng migrasi subsistem DSO réngsé dina modeu otomatis. kerangka ngembangkeun IS diwangun deui ku pipelines tim ngembangkeun.

Tahap 4. Automating pamasangan software aplikasi. Tugas-tugas ieu diatur ku pimpinan tim tim anyar.

Tahap 5. Eksploitasi.

aksés jauh

Tim pamekaran nyuhunkeun kalenturan maksimal dina damel sareng kerangka, sareng sarat pikeun aksés jauh tina laptop pribadi disetél dina awal proyek. Bank parantos ngagaduhan aksés jarak jauh, tapi éta henteu cocog pikeun pamekar. Masalahna éta sistem ngandelkeun sambungan pamaké ka VDI aman. Ieu cocog pikeun jalma anu ngan ukur peryogi email sareng Office suite di mejana. Pamekar bakal peryogi tugas beurat, klien-kinerja tinggi sareng sumber daya anu ageung. Sareng, tangtosna, aranjeunna kedah statis, sabab kaleungitan sési pangguna pikeun anu damel sareng VStudio (contona) atanapi SDK anu sanés henteu katampi. Nyetel sajumlah ageung VDI statik anu ageung pikeun sadaya tim pangembangan bakal sacara signifikan ningkatkeun biaya solusi VDI anu tos aya.

Kami mutuskeun pikeun ngembangkeun aksés jauh langsung kana sumber pangembangan: Jira, Wiki, Gitlab, Nexus, ngawangun sareng uji rig, sareng infrastruktur virtual. Spésialis kaamanan netepkeun yén aksés ngan ukur tiasa disayogikeun upami hal-hal ieu dicumponan:

  1. Ngagunakeun téknologi geus sadia di bank.
  2. Infrastruktur teu kedah nganggo anu tos aya domain- pangontrol anu nyimpen catetan objék akuntansi anu produktif.
  3. Aksés kedah diwatesan ngan ukur sumber anu diperyogikeun ku tim khusus (supaya hiji tim produk teu tiasa ngaksés sumber daya tim sanés).
  4. Kontrol maksimum dina RBAC dina sistem.

Hasilna, hiji domain misah dijieun pikeun bagéan ieu. Domain ieu ngandung sadaya sumber daya bagean pamekaran, kalebet kredensial sareng infrastruktur pangguna. Manajemén siklus kahirupan rékaman dina domain ieu dilakukeun nganggo IdM bank anu aya.

Aksés jarak jauh langsung dilaksanakeun nganggo alat-alat bank anu aya. Kontrol aksés disebarkeun ka grup AD, anu pakait sareng aturan dumasar-kontéks (hiji grup produk = hiji grup aturan).

Manajemén Citakan VM

Laju nyiptakeun lingkungan ngawangun sareng uji mangrupikeun salah sahiji KPI konci anu diatur ku manajer pamekaran, sabab laju persiapan lingkungan langsung mangaruhan kana waktos palaksanaan pipa. Dua pilihan pikeun nyiapkeun gambar dasar VM dianggap. Anu munggaran kalebet ukuran gambar minimal, standar pikeun sadaya sistem produk, sareng patuh maksimal kana kawijakan konfigurasi bank. Anu kadua ngalibatkeun gambar dasar anu ngandung POPPO beurat anu dipasang, waktos pamasangan anu tiasa mangaruhan kana laju palaksanaan pipa.

Infrastruktur sareng syarat kaamanan ogé diperhatoskeun nalika pangwangunan-ngajaga gambar anu énggal (patch, jsb.), integrasi sareng SIEM, sareng setélan kaamanan dumasar kana standar anu ditampi bank.

Pamustunganana, kaputusan dijieun pikeun ngagunakeun gambar minimal pikeun ngaleutikan biaya tetep up-to-date. Langkung gampang pikeun ngapdet OS dasar tibatan nambal unggal gambar pikeun vérsi anyar POPPO.

Dumasar kana hasil, daptar sistem operasi minimum anu diperyogikeun disusun, anu diropéa ku tim operasi. Skrip dina pipa tanggung jawab pikeun ngamutahirkeun parangkat lunak. Upami parobihan dina vérsi parangkat lunak anu dipasang diperyogikeun, cukup ku ngirimkeun tag anu diperyogikeun ka pipa. Bari ieu merlukeun Aksara deployment leuwih kompleks ti tim devops produk, éta nyata ngurangan waktu operasional spent dina ngajaga gambar dasar, nu disebutkeun bakal burdened kalayan ngajaga leuwih saratus gambar VM basa.

aksés Internét

blok stumbling sejen kalawan kaamanan perbankan éta aksés ka sumber internét ti lingkungan ngembangkeun. aksés ieu bisa dibagi kana dua kategori:

  1. Aksés Infrastruktur.
  2. Aksés pikeun pamekar.

Aksés infrastruktur disayogikeun ku proxying repositori éksternal ngaliwatan Nexus. Aksés langsung ti mesin virtual teu disadiakeun. Ieu diwenangkeun pikeun kompromi jeung kaamanan informasi, nu ieu categorically sabalikna nyadiakeun sagala aksés ka dunya luar ti bagean ngembangkeun.

Pamekar peryogi aksés internét pikeun alesan anu jelas (stackoverflow). Sarta sanajan sakabeh tim, sakumaha disebutkeun di luhur, miboga aksés jauh ka kerangka, teu salawasna merenah mun anjeun teu bisa ctrl + v kana IDE ti workstation pamekar di bank.

Perjangjian dihontal sareng departemén kaamanan inpormasi yén aksés mimitina bakal disayogikeun ku proxy bank anu didaptarkeun bodas salami fase tés. Kana parantosan proyék, aksés bakal switched kana blacklist a. Méja aksés éksténsif disiapkeun, ngahususkeun sumber daya konci sareng repositori anu diperyogikeun aksés dina mimiti proyék. Koordinasi kadali aksés ieu nyandak waktos considerable, nu diwenangkeun pikeun transisi urgent kana blacklisting.

Hasil

Proyék réngsé ngan dina sataun katukang. Ahéngna, sadaya kontraktor hijrah ka tumpukan énggal dina waktosna, sareng teu aya anu tinggaleun kusabab otomatisasi énggal. Tim kaamanan inpormasi henteu buru-buru ngabagi réspon positip, tapi aranjeunna ogé henteu ngawadul, anu nunjukkeun yén aranjeunna resep. Konflik geus reda sabab tim kaamanan informasi ngarasa di kontrol deui, tapi teu ngaganggu prosés pangwangunan. Tim parantos nyandak tanggung jawab anu langkung ageung, sareng sikep sadayana kana kaamanan inpormasi parantos ningkat. Bank ngartos yén transisi ka DevSecOps ampir teu bisa dihindari, sareng, dina pamanggih kuring, éta dilakukeun ku cara anu paling lembut sareng pas.

Alexander Shubin, arsiték sistem.

sumber: www.habr.com

Mésér hosting anu dipercaya pikeun situs anu gaduh panyalindungan DDoS, server VPS VDS 🔥 Meser hosting situs wéb anu tiasa dipercaya nganggo panyalindungan DDoS, server VPS VDS | ProHoster