Sieun sareng Sieun tina DevSecOps

Kami ngagaduhan 2 analisa kode, 4 alat uji dinamis, karajinan urang sorangan sareng 250 naskah. Henteu sadayana ieu diperyogikeun dina prosés ayeuna, tapi sakali anjeun ngamimitian ngalaksanakeun DevSecOps, anjeun kedah dugi ka tungtungna.

Sieun sareng Sieun tina DevSecOps

sumber. Panyipta karakter: Justin Roiland sareng Dan Harmon.

Naon SecDevOps? Kumaha upami DevSecOps? Naon bédana? Kaamanan Aplikasi - naon éta? Naha pendekatan klasik henteu dianggo deui? Nyaho jawaban ka sadaya patarosan ieu Yuri Shabalin ti Kaamanan Swordfish. Yuri bakal ngajawab sadayana sacara rinci sareng nganalisa masalah transisi tina modél Kaamanan Aplikasi klasik ka prosés DevSecOps: kumaha leres ngadeukeutan integrasi prosés pamekaran anu aman kana prosés DevOps sareng henteu ngalanggar nanaon, kumaha ngaliwat tahapan utama. tina uji kaamanan, alat naon anu tiasa dianggo, sareng naon bédana sareng kumaha cara ngonpigurasikeunana kalayan leres pikeun nyegah pitfalls.


Ngeunaan speaker: Yuri Shabalin - Kapala Arsitek Kaamanan di perusahaan Kaamanan Swordfish. Tanggung jawab pikeun palaksanaan SSDL, pikeun integrasi sakabéh alat analisis aplikasi kana ngembangkeun ngahiji jeung nguji ékosistem. 7 taun pangalaman dina kaamanan informasi. Digawekeun di Alfa-Bank, Sberbank sareng Positive Technologies, anu ngembangkeun parangkat lunak sareng nyayogikeun jasa. Speaker dina konferensi internasional ZerONights, PHDays, RISSPA, OWASP.

Kaamanan Aplikasi: naon éta?

Kaamanan Aplikasi - Ieu mangrupikeun bagian kaamanan anu tanggung jawab pikeun kaamanan aplikasi. Ieu henteu dilarapkeun ka infrastruktur atanapi kaamanan jaringan, tapi pikeun naon anu urang tulis sareng naon anu dianggo ku pamekar - ieu mangrupikeun kakurangan sareng kerentanan tina aplikasi éta sorangan.

tuju SDL atanapi SDLC - Kaamanan ngembangkeun lifecycle - dikembangkeun ku Microsoft. Diagram nunjukkeun model SDLC canonical, tugas utama nyaéta partisipasi kaamanan dina unggal tahapan pangwangunan, ti sarat pikeun ngaleupaskeun sareng produksi. Microsoft sadar yén aya loba teuing bug di industri, aya leuwih ti aranjeunna sarta hal anu kudu dipigawé ngeunaan eta, sarta aranjeunna ngajukeun pendekatan ieu, nu geus jadi canonical.

Sieun sareng Sieun tina DevSecOps

Kaamanan Aplikasi sareng SSDL henteu ditujukeun pikeun ngadeteksi kerentanan, sapertos anu biasa dipercaya, tapi pikeun nyegah kajadianana. Lila-lila, pendekatan kanonik Microsoft parantos ningkat, dimekarkeun, sareng diwanohkeun kana beuleum anu langkung jero, langkung detil.

Sieun sareng Sieun tina DevSecOps

SDLC kanonik sacara rinci pisan dina sababaraha metodologi - OpenSAMM, BSIMM, OWASP. Métodologina béda, tapi umumna sami.

Ngawangun Kaamanan Dina Modél Kematangan

Abdi paling resep BSIMM - Ngawangun Kaamanan Dina Modél Kematangan. Dasar metodologi nyaéta ngabagi prosés Kaamanan Aplikasi kana 4 domain: Governance, Intelligence, SSDL Touchpoints and Deployment. Unggal domain boga 12 prakték, nu digambarkeun salaku 112 kagiatan.

Sieun sareng Sieun tina DevSecOps

Tiap tina 112 kagiatan boga 3 tingkat kematangan: pemula, panengah jeung maju. Anjeun tiasa diajar sagala 12 prakték bagian ku bagian, pilih hal anu penting pikeun anjeun, angka kaluar kumaha carana nerapkeun aranjeunna sarta laun nambahkeun elemen, Contona, analisis kode statik tur dinamis atawa review kode. Anjeun nyerat rencana sareng kalem damel dumasar kana éta salaku bagian tina palaksanaan kagiatan anu dipilih.

Naha DevSecOps

DevOps mangrupikeun prosés umum anu ageung dimana kaamanan kedah dipertimbangkeun.

Mimitina DevOps aub cék kaamanan. Dina prakna, jumlah tim kaamanan éta leuwih leutik batan ayeuna, sarta aranjeunna acted teu salaku pamilon dina prosés, tapi salaku kontrol jeung awak pangawas nu imposes sarat dina eta jeung pariksa kualitas produk dina ahir release. Ieu mangrupikeun pendekatan klasik dimana tim kaamanan aya di tukangeun témbok tina pangwangunan sareng henteu ilubiung dina prosésna.

Sieun sareng Sieun tina DevSecOps

Masalah utama nyaéta kaamanan inpormasi anu misah ti pangwangunan. Biasana ieu mangrupikeun sababaraha jinis sirkuit kaamanan inpormasi sareng ngandung 2-3 alat anu ageung sareng mahal. Sakali unggal genep bulan, kode sumber atanapi aplikasi anu kedah dipariksa sumping, sareng sataun sakali aranjeunna diproduksi pentests. Sadaya ieu nyababkeun kanyataan yén tanggal sékrési industri ditunda, sareng pamekar kakeunaan sajumlah ageung kerentanan tina alat otomatis. Teu mungkin pikeun ngabongkar sareng ngalereskeun sadayana ieu, sabab hasil genep bulan sateuacana henteu diurutkeun, tapi ieu mangrupikeun angkatan énggal.

Dina kursus padamelan perusahaan urang, urang ningali yén kaamanan di sadaya daérah sareng industri ngartos yén éta waktuna pikeun nyekel sareng muter sareng pangwangunan dina roda anu sami - di tangkas. Paradigma DevSecOps cocog pisan sareng metodologi pangembangan lincah, palaksanaan, dukungan sareng partisipasi dina unggal pelepasan sareng iterasi.

Sieun sareng Sieun tina DevSecOps

Transisi ka DevSecOps

Kecap anu paling penting dina Lifecycle Development Kaamanan nyaéta "prosés". Anjeun kedah ngartos ieu sateuacan mikir ngeunaan mésér alat.

Kantun ngalebetkeun alat kana prosés DevOps henteu cekap-komunikasi sareng pamahaman antara pamilon prosés penting.

Jalma anu leuwih penting, teu alat.

Seringna, perencanaan pikeun prosés pangwangunan anu aman dimimitian ku milih sareng ngagaleuh alat, sareng ditungtungan ku usaha pikeun ngahijikeun alat kana prosés ayeuna, anu tetep usaha. Ieu ngakibatkeun konsékuansi musibah, sabab sakabeh parabot boga ciri jeung watesan sorangan.

Kasus umum nyaéta nalika departemen kaamanan milih alat anu saé, mahal kalayan kamampuan anu lega, sareng sumping ka pamekar pikeun ngahijikeun kana prosésna. Tapi éta henteu hasil - prosésna disusun ku cara anu keterbatasan alat anu parantos dipésér henteu pas kana paradigma ayeuna.

Kahiji, ngajelaskeun naon hasil nu Anjeun hoyongkeun jeung kumaha prosesna bakal kasampak kawas. Ieu bakal ngabantosan ngartos peran alat sareng kaamanan dina prosésna.

Mimitian ku naon anu parantos dianggo

Sateuacan mésér alat anu mahal, tingali naon anu anjeun gaduh. Saban perusahaan ngagaduhan syarat kaamanan pikeun pangwangunan, aya cek, pentest - naha henteu ngarobih sadayana ieu kana bentuk anu kaharti sareng merenah pikeun sadayana?

Biasana saratna nyaéta kertas Talmud anu perenahna dina rak. Aya pasualan nalika urang sumping ka perusahaan pikeun ningali prosés sareng naroskeun pikeun ningali syarat kaamanan pikeun parangkat lunak. Spesialis anu ngurus ieu parantos lami milarian:

- Ayeuna, tempat dina catetan aya jalur dimana dokumen ieu perenahna.

Hasilna, kami nampi dokumén saminggu ti harita.

Pikeun sarat, cék jeung hal séjén, nyieun kaca on e.g. Confluence - éta merenah pikeun sakabéh.

Éta langkung gampang pikeun ngarobih deui naon anu anjeun gaduh sareng dianggo pikeun ngamimitian.

Paké Champions Kaamanan

Biasana, dina perusahaan rata-rata kalayan 100-200 pamekar, aya hiji spesialis kaamanan anu ngalaksanakeun sababaraha fungsi sareng henteu gaduh waktos fisik pikeun mariksa sadayana. Sanaos anjeunna nyobian pangsaéna, anjeunna nyalira moal pariksa sadaya kode anu dibangkitkeun ku pamekaran. Pikeun kasus sapertos kitu, konsep parantos dikembangkeun - Juara Kaamanan.

Juara Kaamanan nyaéta jalma-jalma dina tim pamekaran anu resep kana kaamanan produk anjeun.

Sieun sareng Sieun tina DevSecOps

Juara Kaamanan mangrupikeun titik éntri kana tim pamekaran sareng evangelist kaamanan digulung janten hiji.

Biasana, nalika spesialis kaamanan sumping ka tim pamekaran sareng nunjukkeun kasalahan dina kode, anjeunna nampi jawaban anu kaget:

- Sareng saha anjeun? Kuring nempo anjeun pikeun kahiji kalina. Sadayana henteu kunanaon - réréncangan senior kuring masihan kuring "larapkeun" dina ulasan kode, urang teraskeun!

Ieu mangrupikeun kaayaan anu biasa, sabab langkung seueur kapercayaan ka manula atanapi ngan ukur batur sapagawean sareng pamekar anu terus-terusan berinteraksi di tempat kerja sareng dina ulasan kode. Lamun, tinimbang perwira kaamanan, Jawara Kaamanan nunjuk kaluar kasalahan sarta konsékuansi, lajeng kecap na bakal leuwih beurat.

Ogé, pamekar terang kodena langkung saé tibatan spesialis kaamanan. Pikeun jalma anu ngagaduhan sahenteuna 5 proyék dina alat analisa statik, biasana sesah émut sadaya nuansa. Juara Kaamanan terang produkna: naon anu berinteraksi sareng naon anu kedah ditingali heula - aranjeunna langkung efektif.

Janten mertimbangkeun ngalaksanakeun Juara Kaamanan sareng ngalegaan pangaruh tim kaamanan anjeun. Ieu ogé mangpaat pikeun juara sorangan: ngembangkeun profésional dina widang anyar, ngembangna horizons teknis na, ngaronjatkeun kaahlian teknis, managerial jeung kapamimpinan, ngaronjatkeun nilai pasar. Ieu sababaraha unsur rékayasa sosial, "panon" anjeun dina tim pamekaran.

Tahap nguji

Paradigma 20 nepi ka 80 nyebutkeun yen 20% usaha ngahasilkeun 80% hasil. 20% ieu mangrupikeun prakték analisa aplikasi anu tiasa sareng kedah otomatis. Conto kagiatan sapertos kitu nyaéta analisis statik - Anggo, analisis dinamis - DAST и Kontrol Open Source. Kuring gé ngabejaan Anjeun leuwih jéntré ngeunaan kagiatan, kitu ogé ngeunaan parabot, fitur naon biasana urang sapatemon nalika ngawanohkeun kana prosés, sarta kumaha carana ngalakukeun eta leres.

Sieun sareng Sieun tina DevSecOps

Masalah utama alat

Kuring bakal nyorot masalah anu relevan pikeun sadaya instrumen sareng peryogi perhatian. Kuring bakal nganalisis aranjeunna sacara langkung rinci supados henteu ngulang deui.

waktos analisis panjang. Upami ti komitmen pikeun ngabebaskeun peryogi 30 menit kanggo sadaya tés sareng perakitan, teras pamariksaan kaamanan inpormasi bakal nyandak sadinten. Janten teu aya anu bakal ngalambatkeun prosésna. Pertimbangkeun fitur ieu sareng tarik kasimpulan.

Tingkat tinggi Palsu Negatip atanapi Palsu Positip. Sadaya produk béda, sadayana nganggo kerangka anu béda sareng gaya coding sorangan. Dina basis kode sareng téknologi anu béda, alat tiasa nunjukkeun tingkat anu béda tina Palsu Negatip sareng Palsu Positif. Janten tingali naon anu aya dina Anjeun pausahaan jeung keur anjeun aplikasi bakal némbongkeun hasil alus tur dipercaya.

Henteu aya integrasi sareng alat anu tos aya. Tingali alat dina hal integrasi sareng naon anu anjeun anggo. Salaku conto, upami anjeun gaduh Jenkins atanapi TeamCity, pariksa integrasi alat sareng parangkat lunak ieu, sanés sareng GitLab CI, anu anjeun henteu anggo.

Kurangna atanapi pajeulitna kaleuleuwihan kustomisasi. Upami alat teu gaduh API, naha éta diperyogikeun? Sadayana anu tiasa dilakukeun dina antarmuka kedah sayogi ngalangkungan API. Ideally, alat kudu boga kamampuhan pikeun ngaropéa cék.

Taya Roadmap Pangwangunan Produk. Pangwangunan teu nangtung kénéh, kami salawasna ngagunakeun frameworks anyar jeung fungsi, nulis balik kode heubeul kana basa anyar. Kami hoyong mastikeun yén alat anu kami mésér bakal ngadukung kerangka sareng téknologi énggal. Kituna, hal anu penting pikeun nyaho yén produk boga nyata jeung bener Roadmap pangwangunan.

Proses fitur

Salian fitur alat, perhatikeun fitur prosés pangwangunan. Salaku conto, ngahalangan pangwangunan mangrupikeun kasalahan umum. Hayu urang tingali fitur-fitur anu sanés anu kedah diperhatoskeun sareng naon anu kedah diperhatoskeun ku tim kaamanan.

Dina raraga teu sono ngembangkeun sarta ngaleupaskeun deadlines, nyieun aturan béda sarta béda némbongkeun stoppers - kriteria pikeun ngeureunkeun prosés ngawangun ku ayana kerentanan - pikeun lingkungan béda. Salaku conto, urang ngartos yén cabang ayeuna nuju ka stand pengembangan atanapi UAT, anu hartosna urang henteu lirén sareng ucapkeun:

"Anjeun ngagaduhan kerentanan di dieu, anjeun moal kamana-mana deui!"

Dina titik ieu, penting pikeun ngawartosan pamekar yén aya masalah kaamanan anu peryogi perhatian.

Ayana kerentanan henteu janten halangan pikeun nguji salajengna: manual, integrasi atawa manual. Di sisi séjén, urang kudu kumaha bae ningkatkeun kaamanan produk, sarta ku kituna pamekar teu maranéh ngalalaworakeun kana naon maranéhna manggihan aman. Ku alatan éta, sakapeung urang ngalakukeun ieu: di stand, nalika digulung kaluar ka lingkungan ngembangkeun, urang ngan ngabéjaan pangwangunan:

- Guys, anjeun gaduh masalah, mangga nengetan aranjeunna.

Dina tahap UAT kami nunjukkeun deui peringatan ngeunaan kerentanan, sareng dina tahap pelepasan kami nyarios:

- Lalaki, kami ngingetkeun anjeun sababaraha kali, anjeun henteu ngalakukeun nanaon - kami moal ngantep anjeun kaluar sareng ieu.

Upami urang ngobrol ngeunaan kode sareng dinamika, maka kedah nunjukkeun sareng ngingetkeun ngeunaan kerentanan ngan ukur fitur sareng kode anu nembé ditulis dina fitur ieu. Upami pamekar ngalihkeun tombol ku 3 piksel sareng kami nyarioskeun ka anjeunna yén anjeunna gaduh suntikan SQL di dinya sahingga kedah dilereskeun sacara gancang, ieu salah. Tingali ngan naon anu ditulis ayeuna sareng parobihan anu aya dina aplikasi.

Hayu urang nyebutkeun urang boga cacad fungsi tangtu - cara aplikasi nu teu kudu jalan: duit teu ditransfer, mun anjeun klik tombol euweuh transisi ka kaca hareup, atawa produk teu muka. Cacad Kaamanan - ieu defects sarua, tapi teu dina watesan operasi aplikasi, tapi dina kaamanan.

Henteu sakabéh masalah kualitas software mangrupakeun masalah kaamanan. Tapi sagala masalah kaamanan nu patali jeung kualitas software. Sherif Mansour, Expedia.

Kusabab sadaya kerentanan mangrupikeun cacad anu sami, aranjeunna kedah ditempatkeun di tempat anu sami sareng sadaya cacad pangwangunan. Janten hilap laporan sareng PDF pikasieuneun anu teu aya anu maca.

Sieun sareng Sieun tina DevSecOps

Nalika kuring damel di perusahaan pamekaran, kuring nampi laporan tina alat analisis statik. Kuring muka, éta horrified, nyieun kopi, leafed ngaliwatan 350 kaca, ditutup deui jeung nuluykeun digawé. Laporan ageung mangrupikeun laporan maot. Biasana aranjeunna henteu ka mana-mana, hurupna dihapus, hilap, leungit, atanapi usaha nyarios yén éta nampi résiko.

Naon anu kedah dilakukeun? Urang ngan saukur ngarobah defects dikonfirmasi nu urang kapanggih kana formulir merenah pikeun ngembangkeun, contona, urang nempatkeun eta dina backlog di Jira. Kami prioritas cacad sareng ngaleungitkeunana dina urutan prioritas, sareng cacad fungsional sareng cacad tés.

Analisis statik - SAST

Ieu mangrupikeun analisis kode pikeun kerentanan., tapi teu sarua SonarQube. Kami henteu ngan ukur mariksa pola atanapi gaya. Sajumlah pendekatan dipaké dina analisis: nurutkeun tangkal kerentanan, nurutkeun DataFlow, ku nganalisis file konfigurasi. Ieu sadayana anu patali jeung kode sorangan.

Pro tina pendekatan: ngaidentipikasi kerentanan dina kode dina tahap awal pangwangunanlamun can aya stand atawa parabot siap-dijieun, jeung kamampuhan scanning incremental: nyeken bagian kode nu geus robah, sarta ngan fitur nu urang ayeuna lakukeun, nu ngurangan waktu scanning.

Минусы - ieu kurangna rojongan pikeun basa diperlukeun.

integrasi diperlukeun, anu kedah aya dina alat, dina pendapat subjektif kuring:

  • Alat integrasi: Jenkins, TeamCity sareng Gitlab CI.
  • lingkungan ngembangkeun: Intellij IDEA, Visual Studio. Éta langkung saé pikeun pamekar henteu nganapigasi antarbeungeut anu teu kaharti anu masih kedah diémutan, tapi ningali sadaya integrasi sareng kerentanan anu dipikabutuh anu anjeunna mendakan langsung di gaw di lingkungan pangembanganana sorangan.
  • Tinjauan kode: SonarQube sareng ulasan manual.
  • Pelacak cacad: Jira sareng Bugzilla.

gambar nembongkeun sababaraha wawakil pangalusna analisis statik.

Sieun sareng Sieun tina DevSecOps

Éta sanés alat anu penting, tapi prosésna, janten aya solusi Open Source anu ogé saé pikeun nguji prosésna.

Sieun sareng Sieun tina DevSecOps

SAST Open Source moal mendakan sajumlah ageung kerentanan atanapi DataFlows kompléks, tapi aranjeunna tiasa sareng kedah dianggo nalika ngawangun prosés. Aranjeunna ngabantosan ngartos kumaha prosésna bakal diwangun, saha anu bakal ngabales bug, saha anu bakal ngalaporkeun, sareng saha anu bakal ngalaporkeun. Upami anjeun hoyong ngalaksanakeun tahap awal ngawangun kaamanan kode anjeun, paké solusi Open Source.

Kumaha ieu tiasa dihijikeun upami anjeun dina awal perjalanan anjeun sareng teu gaduh nanaon: euweuh CI, euweuh Jenkins, euweuh TeamCity? Hayu urang nganggap integrasi kana prosés.

Integrasi tingkat CVS

Upami anjeun gaduh Bitbucket atanapi GitLab, anjeun tiasa ngahijikeun dina tingkat Sistim Vérsi sakaligus.

Ku acara - paménta narik, komitmen. Anjeun nyeken kode sareng status ngawangun nunjukkeun naha pamariksaan kaamanan lulus atanapi gagal.

Eupan Balik. Tangtu, eupan balik salawasna diperlukeun. Upami anjeun ngan ukur ngalaksanakeun kaamanan di sisi, nempatkeun éta dina kotak sareng henteu nyarioskeun ka saha waé ngeunaan éta, teras dina ahir bulan ngalungkeun sakumpulan bug - ieu henteu leres sareng henteu saé.

Integrasi jeung sistem review kode

Sakali, urang meta salaku reviewer standar pikeun pamaké AppSec teknis dina sababaraha proyék penting. Gumantung kana naha kasalahan diidentifikasi dina kode anyar atanapi teu aya kasalahan, reviewer netepkeun status dina pamundut tarik pikeun "nampi" atawa "peryogi gawé" - boh sagalana OK, atawa Tumbu ka naon kahayang kudu ningkat. perlu ditingkatkeun. Pikeun integrasi jeung versi nu bade kana produksi, kami geus diaktipkeun a ngahiji larangan lamun test kaamanan informasi teu lulus. Kami kalebet ieu dina ulasan kode manual, sareng pamilon sanésna dina prosés ningali status kaamanan pikeun prosés khusus ieu.

Integrasi sareng SonarQube

Loba boga gerbang kualitas dina hal kualitas kode. Éta sami di dieu - anjeun tiasa ngadamel gerbang anu sami ngan ukur pikeun alat SAST. Bakal aya antarmuka anu sami, gerbang kualitas anu sami, ngan éta bakal disebut gerbang kaamanan. Sareng ogé, upami anjeun gaduh prosés nganggo SonarQube, anjeun tiasa sacara gampil ngahijikeun sadayana anu aya.

Integrasi dina tingkat CI

Sadayana di dieu ogé saderhana:

  • Dina tara kalawan autotests, tés unit.
  • Divisi ku tahapan pangwangunan: dev, tés, prod. Susunan aturan anu béda-béda atanapi kaayaan gagal anu béda-béda tiasa kalebet: ngeureunkeun rakitan, henteu ngeureunkeun rakitan.
  • Peluncuran sinkron / asinkron. Kami ngantosan tungtung tés kaamanan atanapi henteu. Nyaéta, urang ngan ngaluncurkeun aranjeunna sareng teraskeun, teras urang nampi status yén sadayana saé atanapi goréng.

Éta sadayana dina dunya pink anu sampurna. Henteu aya anu sapertos kitu dina kahirupan nyata, tapi urang narékahan. Hasil tina ngajalankeun pamariksaan kaamanan kedah sami sareng hasil tés unit.

Salaku conto, urang nyandak proyék ageung sareng mutuskeun yén ayeuna urang bakal nyeken kalayan SAST - OKÉ. Kami ngadorong proyék ieu kana SAST, éta masihan kami 20 kerentanan sareng ku kaputusan anu kuat kami mutuskeun yén sadayana henteu kunanaon. 000 kerentanan mangrupikeun hutang téknis urang. Urang bakal nempatkeun hutang dina kotak, urang lalaunan bakal mupus eta up na nambahkeun bug kana trackers cacad. Hayu urang nyewa perusahaan, ngalakukeun sadayana nyalira, atanapi gaduh Juara Kaamanan ngabantosan kami - sareng hutang téknis bakal ngirangan.

Sareng sadaya kerentanan anu nembé muncul dina kode énggal kedah dileungitkeun ku cara anu sami sareng kasalahan dina unit atanapi autotes. Relatip diomongkeun, assembly dimimitian, urang ngajalankeun eta, dua tés jeung dua tés kaamanan gagal. OKÉ - urang indit, nempo naon anu lumangsung, dibereskeun hiji hal, ngalereskeun sejen, ngajalankeun eta waktos salajengna - sagalana éta rupa, euweuh kerentanan anyar mucunghul, euweuh tés gagal. Upami tugas ieu langkung jero sareng anjeun kedah ngartos saé, atanapi ngalereskeun kerentanan mangaruhan lapisan ageung tina naon anu aya di handapeun tiung: kutu ditambah kana tracker cacad, éta prioritas sareng dilereskeun. Hanjakal, dunya teu sampurna jeung tés kadang gagal.

Conto gerbang kaamanan mangrupikeun analog tina gerbang kualitas, dina hal ayana sareng jumlah kerentanan dina kode.

Sieun sareng Sieun tina DevSecOpsUrang ngahijikeun sareng SonarQube - plugin dipasang, sadayana pisan merenah sareng keren.

Integrasi sareng lingkungan pangwangunan

Pilihan integrasi:

  • Ngajalankeun scan ti lingkungan pamekaran sateuacan komitmen.
  • Témbongkeun hasil.
  • Analisis hasil.
  • Sinkronisasi sareng server.

Ieu kumaha sigana nampi hasil tina server.

Sieun sareng Sieun tina DevSecOps

Di lingkungan pangwangunan urang Intellijé IDEA item tambahan ngan saukur nembongan anu ngawartosan yén kerentanan sapertos dideteksi nalika scan. Anjeun tiasa langsung ngedit kode, tingali dina rekomendasi na Grafik Aliran. Ieu sadayana aya di gaw pamekar, anu pohara merenah - teu perlu nuturkeun tumbu séjén sarta kasampak di hal tambahan.

Open Source

Ieu topik favorit kuring. Sarerea nganggo perpustakaan Open Source - naha nyerat sakumpulan crutches sareng sapédah nalika anjeun tiasa nyandak perpustakaan anu siap-siap dimana sadayana parantos dilaksanakeun?

Sieun sareng Sieun tina DevSecOps

Tangtosna, ieu leres, tapi perpustakaan ogé ditulis ku jalma, aranjeunna ogé kalebet résiko anu tangtu sareng aya ogé kerentanan anu périodik, atanapi terus-terusan, dilaporkeun. Ku alatan éta, aya lengkah saterusna dina Kaamanan Aplikasi - ieu analisis komponén Open Source.

Analisis Open Source - OSA

Alatna kalebet tilu tahapan ageung.

Milarian kerentanan dina perpustakaan. Salaku conto, alat terang yén kami nganggo sababaraha perpustakaan, sareng éta CVE atanapi aya sababaraha kerentanan dina pelacak bug anu aya hubunganana sareng versi perpustakaan ieu. Nalika anjeun nyobian nganggo éta, alat éta bakal ngaluarkeun peringatan yén perpustakaan rentan sareng mamatahan anjeun ngagunakeun versi anu sanés anu henteu ngagaduhan kerentanan.

Analisis purity lisénsi. Ieu henteu acan kasohor di dieu, tapi upami anjeun damel di luar negeri, teras ti waktos ka waktos anjeun tiasa nampi pajak di dinya pikeun ngagunakeun komponén open source anu henteu tiasa dianggo atanapi dirobih. Numutkeun kawijakan perpustakaan dilisensikeun urang, urang teu bisa ngalakukeun ieu. Atawa, lamun urang dirobah sarta ngagunakeun éta, urang kedah masangkeun kode urang. Tangtosna, teu aya anu hoyong nyebarkeun kode produkna, tapi anjeun ogé tiasa ngajaga diri tina ieu.

Analisis komponén anu digunakeun dina lingkungan industri. Hayu urang ngabayangkeun kaayaan hipotétis yén kami parantos réngsé pangwangunan sareng ngarilis sékrési pangénggalna microservice kami. Anjeunna hirup di dinya wonderfully - saminggu, sabulan, sataun. Kami henteu ngumpulkeun éta, kami henteu ngalaksanakeun pamariksaan kaamanan, sadayana sigana henteu kunanaon. Tapi ujug-ujug, dua minggu saatos sékrési, kerentanan kritis muncul dina komponén Open Source, anu kami anggo dina ngawangun khusus ieu, di lingkungan industri. Upami urang henteu ngarékam naon sareng dimana urang anggo, maka urang ngan saukur moal ningali kerentanan ieu. Sababaraha alat gaduh kamampuan pikeun ngawas kerentanan dina perpustakaan anu ayeuna dianggo di industri. Mangpaat pisan.

fitur:

  • Kabijakan anu béda pikeun tahap pangwangunan anu béda.
  • Ngawaskeun komponén di lingkungan industri.
  • Kontrol perpustakaan dina organisasi.
  • Rojongan pikeun sababaraha sistem ngawangun sareng basa.
  • Analisis gambar Docker.

Sababaraha conto pamimpin industri anu kalibet dina analisis Open Source.

Sieun sareng Sieun tina DevSecOps
Hiji-hijina anu gratis nyaéta ieu Depéndensi-Cék ti OWASP. Anjeun tiasa ngaktipkeun dina tahap kahiji, tingali kumaha gawéna sarta naon eta ngarojong. Dasarna, ieu sadayana produk awan, atanapi on-premise, tapi di tukangeun dasarna aranjeunna tetep dikirim ka Internét. Aranjeunna ngirimkeun teu perpustakaan anjeun, tapi hashes atawa nilai sorangan, nu maranéhna ngitung, sarta sidik ka server maranéhna pikeun nampa informasi ngeunaan ayana vulnerabilities.

Integrasi prosés

Kontrol perimeter perpustakaan, nu diundeur ti sumber éksternal. Simkuring gaduh repositories éksternal sarta internal. Salaku conto, Event Central ngajalankeun Nexus, sareng kami hoyong mastikeun yén teu aya kerentanan dina gudang kami kalayan status "kritis" atanapi "luhur". Anjeun tiasa ngonpigurasikeun proxy nganggo alat Nexus Firewall Lifecycle supados kerentanan sapertos kitu dipotong sareng henteu dugi ka gudang internal.

Integrasi kana CI. Dina tingkat anu sami sareng autotes, tés unit sareng ngabagi kana tahap pangembangan: dev, uji, prod. Dina unggal tahapan, anjeun tiasa ngaunduh perpustakaan mana waé, nganggo naon waé, tapi upami aya anu sesah sareng status "kritis", sigana éta patut narik perhatian pamekar pikeun ieu dina tahap pelepasan kana produksi.

Integrasi jeung artefak: Nexus jeung JFrog.

Integrasi kana lingkungan pangwangunan. Alat anu anjeun pilih kedah gaduh integrasi sareng lingkungan pangembangan. Pamekar kedah gaduh aksés kana hasil scanning ti tempat kerjana, atanapi kamampuan pikeun nyeken sareng pariksa kodeu nyalira pikeun kerentanan sateuacan ngalakukeun CVS.

integrasi CD. Ieu mangrupikeun fitur anu saé anu kuring resep pisan sareng anu kuring parantos nyarioskeun - ngawaskeun munculna kerentanan anyar dina lingkungan industri. Gawéna sapertos kieu.

Sieun sareng Sieun tina DevSecOps

Kami gaduh Repositories komponén publik - sababaraha alat di luar, sareng gudang internal urang. Simkuring hoyong eta ngandung ukur komponén dipercaya. Nalika proksi pamundut, kami pariksa yén perpustakaan anu diunduh henteu ngagaduhan kerentanan. Upami éta aya dina kawijakan anu tangtu anu kami setel sareng merta koordinat sareng pamekaran, maka kami henteu unggah sareng dipenta pikeun nganggo versi anu sanés. Sasuai, upami perpustakaan aya hal anu kritis sareng goréng, maka pamekar moal nampi perpustakaan dina tahap pamasangan - hayu anjeunna nganggo versi anu langkung luhur atanapi langkung handap.

  • Nalika ngawangun, urang pariksa yen teu saurang geus slipped nanaon goréng, yén sakabéh komponén anu aman tur teu saurang geus mawa nanaon bahaya dina flash drive.
  • Kami ngan ukur gaduh komponén anu dipercaya dina gudang.
  • Nalika deploying, urang sakali deui pariksa pakét sorangan: perang, jar, DL atanapi Docker gambar pikeun mastikeun yén éta luyu jeung kawijakan.
  • Nalika asup ka industri, urang ngawas naon anu lumangsung di lingkungan industri: kerentanan kritis muncul atanapi henteu muncul.

Analisis dinamis - DAST

Alat analisis dinamis dasarna béda ti sadayana anu parantos nyarios sateuacanna. Ieu mangrupikeun jinis imitasi tina karya pangguna sareng aplikasi. Upami ieu mangrupikeun aplikasi wéb, kami ngirimkeun pamundut, simulasi karya klien, klik tombol di payun, kirimkeun data jieunan tina bentuk: tanda petik, kurung, karakter dina encoding anu béda, pikeun ningali kumaha aplikasi sareng prosésna. data éksternal.

Sistem anu sami ngamungkinkeun anjeun mariksa kerentanan template dina Open Source. Kusabab DAST henteu terang mana Open Source anu kami anggo, éta ngan saukur ngalungkeun pola "jahat" sareng nganalisa réspon server:

- Leres, aya masalah deserialization di dieu, tapi henteu di dieu.

Aya résiko anu ageung, sabab upami anjeun ngalaksanakeun uji kaamanan ieu dina bangku anu sami anu dianggo ku tester, hal-hal anu teu pikaresepeun tiasa kajantenan.

  • Beban tinggi dina jaringan server aplikasi.
  • Taya integrasi.
  • Kamampuhan pikeun ngarobih setélan aplikasi anu dianalisis.
  • Henteu aya dukungan pikeun téknologi anu diperyogikeun.
  • Kasesahan nyetél.

Kami ngagaduhan kaayaan nalika kami tungtungna ngaluncurkeun AppScan: urang nyéépkeun waktos anu lami pikeun ngaksés aplikasina, ngagaduhan 3 akun sareng senang - kami tungtungna pariksa sadayana! Kami ngaluncurkeun scan, sareng anu munggaran dilakukeun ku AppScan nyaéta lebet kana panel admin, nembus sadaya tombol, robih satengah data, teras maéhan server kalayan lengkep. bentuk surat-paménta. Pangwangunan sareng tés nyarios:

- Guys, anjeun bercanda kuring?! Kami masihan anjeun akun, sareng anjeun nyetél pendirian!

Mertimbangkeun kamungkinan resiko. Ideally, nyiapkeun stand misah pikeun nguji kaamanan informasi, nu bakal diisolasi tina sesa lingkungan sahenteuna kumaha bae, sarta conditionally pariksa panel admin, preferably dina modeu manual. Ieu mangrupikeun pentest - sésa-sésa perséntase usaha anu urang henteu pertimbangkeun ayeuna.

Perlu dipertimbangkeun yén anjeun tiasa nganggo ieu salaku analog tina uji beban. Dina tahap kahiji, anjeun tiasa ngaktipkeun scanner dinamis kalawan 10-15 threads tur tingal kumaha kajadian, tapi biasana, sakumaha prakték nempokeun, nanaon alus.

Sababaraha sumber anu biasana urang anggo.

Sieun sareng Sieun tina DevSecOps

Pantes disorot Burp Suite mangrupakeun "péso Swiss" pikeun sagala profésional kaamanan. Sarerea ngagunakeun éta sarta pohara merenah. Versi demo énggal édisi perusahaan ayeuna parantos dileupaskeun. Upami sateuacana éta ngan ukur utilitas anu mandiri sareng plugins, ayeuna pamekar tungtungna ngadamel server ageung dimana éta bakal tiasa ngatur sababaraha agén. Ieu keren, abdi nyarankeun Anjeun coba eta.

Integrasi prosés

Integrasi lumangsung cukup saé sareng saderhana: ngamimitian scanning sanggeus instalasi suksés aplikasi pikeun nangtung jeung scanning sanggeus nguji integrasi suksés.

Upami integrasi henteu tiasa dianggo atanapi aya tunggul sareng fungsi moyok, éta henteu aya gunana sareng henteu aya gunana - euweuh urusan naon pola anu kami kirimkeun, server tetep bakal ngabales ku cara anu sami.

  • Ideally, hiji stand nguji misah.
  • Sateuacan nguji, tuliskeun sekuen login.
  • Nguji sistem administrasi ngan sacara manual.

proses

Sakedik digeneralisasikeun ngeunaan prosés sacara umum sareng ngeunaan karya unggal alat khususna. Sadaya aplikasi béda-béda - hiji dianggo langkung saé kalayan analisa dinamis, anu sanés nganggo analisa statik, katilu kalayan analisis OpenSource, pentests, atanapi anu sanés sadayana, contona, acara kalayan Waf.

Unggal prosés butuh kontrol.

Pikeun ngartos kumaha prosésna jalan sareng dimana éta tiasa ningkat, anjeun kedah ngumpulkeun métrik tina sadaya anu anjeun tiasa kéngingkeun, kalebet métrik produksi, métrik tina alat, sareng tina pelacak cacad.

Sakur inpormasi anu mangpaat. Perlu ningali tina sudut anu béda-béda dimana alat ieu atanapi éta langkung saé dianggo, dimana prosésna sacara khusus sags. Éta patut ningali waktos réspon pangembangan pikeun ningali dimana ningkatkeun prosés dumasar kana waktos. Langkung seueur data, langkung seueur bagian anu tiasa diwangun ti tingkat luhur ka detil unggal prosés.

Sieun sareng Sieun tina DevSecOps

Kusabab sadaya analisa statik sareng dinamis gaduh API sorangan, metode peluncuran sorangan, prinsip, sababaraha gaduh jadwal, anu sanés henteu - kami nyerat alat AppSec Orkestra, nu ngidinan Anjeun pikeun nyieun hiji titik asupna kana sakabéh prosés tina produk jeung ngatur eta ti hiji titik.

Manajer, pamekar sareng insinyur kaamanan ngagaduhan hiji titik éntri dimana aranjeunna tiasa ningali naon anu dijalankeun, ngonpigurasikeun sareng ngajalankeun scan, nampi hasil scan, sareng ngalebetkeun syarat. Kami nyobian ngajauhan tina paperwork, pikeun narjamahkeun sadayana kana manusa, anu dianggo ku pamekaran - halaman dina Confluence sareng status sareng métrik, cacad dina Jira atanapi dina sagala rupa pelacak cacad, atanapi integrasi kana prosés sinkron / asinkron dina CI /CD.

Takeaways Key

Parabot sanés hal anu utama. Pikirkeun heula prosésna - teras laksanakeun alat. Alatna saé tapi mahal, ku kituna anjeun tiasa ngamimitian ku prosés sareng ngawangun komunikasi sareng pamahaman antara pamekaran sareng kaamanan. Tina sudut pandang kaamanan, henteu kedah "ngeureunkeun" sadayana.Ti sudut pandang pamekaran, upami aya hal anu mega super kritis, maka éta kedah dileungitkeun, sareng henteu nutup panon kana masalahna.

kualitas produk - tujuan umum duanana kaamanan sarta pangwangunan. Urang ngalakukeun hiji hal, urang nyobian pikeun mastikeun yén sagalana jalan leres tur euweuh resiko reputasi atanapi karugian finansial. Ieu sababna urang ngamajukeun pendekatan DevSecOps, SecDevOps pikeun ningkatkeun komunikasi sareng ningkatkeun kualitas produk.

Mimitian ku naon anu anjeun gaduh: syarat, arsitéktur, cék parsial, palatihan, tungtunan. Henteu kedah langsung nerapkeun sadaya prakték ka sadaya proyék - mindahkeun iteratively. Henteu aya standar tunggal - percobaan sareng cobian pendekatan sareng solusi anu béda.

Aya tanda anu sami antara cacad kaamanan inpormasi sareng cacad fungsional.

Otomatis sadayanaanu gerak. Naon waé anu henteu gerak, pindahkeun sareng otomatiskeunana. Lamun hal anu dipigawé ku leungeun, teu bagian alus tina prosés. Panginten éta patut marios éta sareng ngajadikeun otomatis ogé.

Lamun ukuran tim IS leutik - ngagunakeun Champions Kaamanan.

Panginten naon anu kuring nyarioskeun moal cocog sareng anjeun sareng anjeun bakal mendakan anu anjeun nyalira - sareng éta saé. Tapi milih alat dumasar kana sarat pikeun prosés anjeun. Tong ningali naon anu dicarioskeun ku masarakat, yén alat ieu goréng sareng anu ieu saé. Panginten sabalikna bakal leres pikeun produk anjeun.

Sarat pikeun parabot.

  • Tingkat handap Positip Palsu.
  • waktos analisis nyukupan.
  • Genah dianggo.
  • Kasadiaan integrasi.
  • Ngartos roadmap ngembangkeun produk.
  • Kamungkinan alat ngaropéa.

Laporan Yuri dipilih salaku salah sahiji anu pangsaéna di DevOpsConf 2018. Pikeun ngenalkeun ide anu langkung narik sareng kasus praktis, sumping ka Skolkovo dina 27 sareng 28 Méi. DevOpsConf jero festival RIT ++. Langkung saé, upami anjeun siap ngabagi pangalaman, teras ngalamar pikeun laporan dugi ka 21 April.

sumber: www.habr.com

Tambahkeun komentar