{"id":31852,"date":"2019-10-31T21:43:30","date_gmt":"2019-10-31T18:43:30","guid":{"rendered":"https:\/\/prohoster.info\/blog\/strah-i-nenavist-devsecops\/"},"modified":"2019-10-31T21:43:30","modified_gmt":"2019-10-31T18:43:30","slug":"strah-i-nenavist-devsecops","status":"publish","type":"post","link":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/strah-i-nenavist-devsecops","title":{"rendered":"A DevSecOps f\u00e9lelme \u00e9s gy\u0171l\u00f6lete","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>K\u00e9t k\u00f3d-analiz\u00e1torunk, n\u00e9gy dinamikus tesztel\u00e9si eszk\u00f6z\u00fcnk, saj\u00e1t k\u00e9sz\u00edtm\u00e9nyeink \u00e9s 250 szkript\u00fcnk volt. Nem mintha mindezekre sz\u00fcks\u00e9g lett volna a jelenlegi folyamatban, de ha m\u00e1r elkezdtem bevezetni a DevSecOps-t, akkor \u00e9rdemes v\u00e9gigmenni a folyamaton.<\/p>\n<p><img decoding=\"async\" alt=\"A DevSecOps f\u00e9lelme \u00e9s gy\u0171l\u00f6lete\" src=\"\/wp-content\/uploads\/2019\/04\/bcd78cc4963e397ecbaa18ffd43ce05e.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<i><noindex><a rel=\"nofollow\" href=\"https:\/\/www.reddit.com\/user\/narkos\">Forr\u00e1s<\/a><\/noindex>. A karakterek alkot\u00f3i: Justin Roiland \u00e9s Dan Harmon.<\/i><\/p>\n<p>Mi az a SecDevOps? \u00c9s a DevSecOps? Miben k\u00fcl\u00f6nb\u00f6znek? Mi az alkalmaz\u00e1sbiztons\u00e1g? Mi\u00e9rt nem m\u0171k\u00f6dik a klasszikus megk\u00f6zel\u00edt\u00e9s? Minden k\u00e9rd\u00e9sre v\u00e1laszol. <b>J\u00fari S\u00e1balin<\/b> a\u00a0<b>Swordfish Security. <\/b>J\u00fari mindent r\u00e9szletesen meg fog v\u00e1laszolni, \u00e9s \u00e1t fogja tekinteni a klasszikus alkalmaz\u00e1sbiztons\u00e1gi modellr\u0151l a DevSecOps folyamatra val\u00f3 \u00e1t\u00e1ll\u00e1s probl\u00e9m\u00e1it: hogyan k\u00f6zel\u00edts\u00fck meg helyesen a biztons\u00e1gos fejleszt\u00e9si folyamat be\u00e9p\u00edt\u00e9s\u00e9t a DevOps folyamatba an\u00e9lk\u00fcl, hogy b\u00e1rmit is t\u00f6nkremenn\u00e9nk, hogyan kell v\u00e9gigmenni a biztons\u00e1gi tesztel\u00e9s f\u0151bb l\u00e9p\u00e9sein, milyen eszk\u00f6z\u00f6ket lehet alkalmazni, mif\u00e9le elt\u00e9r\u00e9sek vannak k\u00f6zt\u00fck, \u00e9s hogyan kell ezeket helyesen be\u00e1ll\u00edtani, hogy elker\u00fclj\u00fck a csapd\u00e1kat.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\n<center><div class=\"youtube-placeholder\" data-id=\"sYMWGw5Lyu4\" onclick=\"loadVideo(this)\">\r\n        <img decoding=\"async\" src=\"https:\/\/img.youtube.com\/vi\/sYMWGw5Lyu4\/hqdefault.jpg\" alt=\"Vide\u00f3 lej\u00e1tsz\u00e1sa\" loading=\"lazy\" width=\"480\" height=\"360\" style=\"width:100%;height:auto;\">\r\n        <div class=\"play-button\"><\/div>\r\n    <\/div><\/center><br \/>\n<b>A el\u0151ad\u00f3r\u00f3l:<\/b> <b>J\u00fari S\u00e1balin \u2013 <\/b>Chief Security Architect a <b>Swordfish Security<\/b>. A SSDL bevezet\u00e9s\u00e9\u00e9rt felel, a k\u00fcl\u00f6nf\u00e9le alkalmaz\u00e1selemz\u0151 eszk\u00f6z\u00f6k integr\u00e1l\u00e1s\u00e1\u00e9rt a fejleszt\u00e9si \u00e9s tesztel\u00e9si \u00f6kosziszt\u00e9m\u00e1ba. 7 \u00e9ves tapasztalattal rendelkezik inform\u00e1ci\u00f3biztons\u00e1g ter\u00e9n. Dolgozott az Alfa-Bankn\u00e1l, a Sberbankn\u00e1l \u00e9s a Positive Technologies-n\u00e9l, amely szoftvereket fejleszt \u00e9s szolg\u00e1ltat\u00e1sokat ny\u00fajt. Nemzetk\u00f6zi konferenci\u00e1k el\u0151ad\u00f3ja, mint a ZerONights, PHDays, RISSPA, OWASP.<\/p>\n<h2>Alkalmaz\u00e1sbiztons\u00e1g: mir\u0151l van sz\u00f3?<\/h2>\n<p>\n<b>Alkalmaz\u00e1sbiztons\u00e1g<\/b>\u00a0\u2013 ez a biztons\u00e1g egyik \u00e1ga, amely a programok biztons\u00e1g\u00e1val foglalkozik. Ez nem vonatkozik az infrastrukt\u00far\u00e1ra vagy a h\u00e1l\u00f3zati biztons\u00e1gra, hanem konkr\u00e9tan arra, amit \u00edrunk \u00e9s amin a fejleszt\u0151k dolgoznak \u2013 ez a program konkr\u00e9t hib\u00e1i \u00e9s sebezhet\u0151s\u00e9gei.<\/p>\n<p>Ir\u00e1nyvonal <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.microsoft.com\/ru-ru\/ef\/ef6\/modeling\/designer\/advanced\/edmx\/ssdl-spec\">SDL vagy SDLC<\/a><\/noindex>\u00a0\u2014 <b>Security development lifecycle<\/b>\u00a0\u2013 a Microsoft \u00e1ltal kifejlesztett. A diagramon a kanonikus SDLC modell l\u00e1that\u00f3, amelynek f\u0151 c\u00e9lja a biztons\u00e1g r\u00e9szv\u00e9tele a fejleszt\u00e9s minden szakasz\u00e1ban, az ig\u00e9nyekt\u0151l a kiad\u00e1sig \u00e9s a termel\u00e9sbe val\u00f3 \u00e1tmenetig. A Microsoft r\u00e1j\u00f6tt, hogy a piacon t\u00fal sok hiba van, ezek egyre gyakoribbak, \u00e9s ezzel kezdeni kell valamit, ez\u00e9rt ezt a megk\u00f6zel\u00edt\u00e9st javasolt\u00e1k, amely kanonikus lett.<\/p>\n<p><img decoding=\"async\" alt=\"A DevSecOps f\u00e9lelme \u00e9s gy\u0171l\u00f6lete\" src=\"\/wp-content\/uploads\/2019\/04\/466773b9a5bd355419fa1d6d1ddbca66.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAz alkalmaz\u00e1sbiztons\u00e1g \u00e9s az SSDL nem a sebezhet\u0151s\u00e9gek felder\u00edt\u00e9s\u00e9re, mint \u00e1ltal\u00e1ban v\u00e9lik, hanem azok megjelen\u00e9s\u00e9nek megakad\u00e1lyoz\u00e1s\u00e1ra ir\u00e1nyulnak. Az id\u0151 m\u00fal\u00e1s\u00e1val a Microsoft kanonikus megk\u00f6zel\u00edt\u00e9se javult, fejl\u0151d\u00f6tt, \u00e9s m\u00e9lyebb r\u00e9szletes betekint\u00e9st nyert.<\/p>\n<p><img decoding=\"async\" alt=\"A DevSecOps f\u00e9lelme \u00e9s gy\u0171l\u00f6lete\" src=\"\/wp-content\/uploads\/2019\/04\/58d3e6aadd30594c018940bcb2a8248b.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nA kanonikus SDLC r\u00e9szletesen kidolgozott k\u00fcl\u00f6nb\u00f6z\u0151 metodol\u00f3gi\u00e1kban - OpenSAMM, BSIMM, OWASP. A metodol\u00f3gi\u00e1k elt\u00e9rnek, de \u00f6sszess\u00e9g\u00e9ben hasonl\u00f3ak.<\/p>\n<h3>Building Security In Maturity Model<\/h3>\n<p>\nAmi a legjobban tetszik nekem <b>BSIMM<\/b>\u00a0\u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/www.bsimm.com\/\">Building Security In Maturity Model<\/a><\/noindex>. A metodol\u00f3gia alapja az Application Security folyamat\u00e1nak 4 ter\u00fcletre val\u00f3 feloszt\u00e1sa: Governance, Intelligence, SSDL Touchpoints \u00e9s Deployment. Minden ter\u00fcleten 12 gyakorlat tal\u00e1lhat\u00f3, amely 112 tev\u00e9kenys\u00e9g form\u00e1j\u00e1ban van bemutatva.<\/p>\n<p><img decoding=\"async\" alt=\"A DevSecOps f\u00e9lelme \u00e9s gy\u0171l\u00f6lete\" src=\"\/wp-content\/uploads\/2019\/04\/ae0bbfd0dde335af886282672ed92367.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMinden 112 tev\u00e9kenys\u00e9gnek van <b>3 \u00e9retts\u00e9gi szintje<\/b>: kezdeti, k\u00f6z\u00e9ps\u0151 \u00e9s halad\u00f3. Az \u00f6sszes 12 gyakorlatot szakaszok szerint lehet tanulm\u00e1nyozni, fontos elemeket kiemelni, kider\u00edteni, hogyan lehet \u0151ket bevezetni, \u00e9s fokozatosan hozz\u00e1adni elemeket, p\u00e9ld\u00e1ul statikus \u00e9s dinamikus k\u00f3dellen\u0151rz\u00e9st vagy code review-t. Megtervezed a tervet, \u00e9s azon nyugodtan dolgozol a v\u00e1lasztott tev\u00e9kenys\u00e9gek bevezet\u00e9se sor\u00e1n.<\/p>\n<h2>Mi\u00e9rt DevSecOps<\/h2>\n<p><\/p>\n<blockquote><p>A DevOps egy \u00e1tfog\u00f3 folyamat, amelyben foglalkozni kell a biztons\u00e1ggal.<\/p><\/blockquote>\n<p>\nKezdetben <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/DevOps\"><b>DevOps<\/b><\/a><\/noindex> a biztons\u00e1g ellen\u0151rz\u00e9s\u00e9t felt\u00e9teleztem. A gyakorlatban a biztons\u00e1gi csapatok sz\u00e1ma sokkal kisebb volt, mint most, \u00e9s nem mint folyamat r\u00e9sztvev\u0151i, hanem mint ellen\u0151rz\u0151 \u00e9s fel\u00fcgyel\u0151 szerv m\u0171k\u00f6dtek, amely k\u00f6vetelm\u00e9nyeket t\u00e1masztott \u00e9s az elk\u00e9sz\u00fclt term\u00e9k min\u0151s\u00e9g\u00e9t ellen\u0151rizte a kiad\u00e1s v\u00e9g\u00e9n. Ez egy klasszikus megk\u00f6zel\u00edt\u00e9s, amelyben a biztons\u00e1gi csapatok a fejleszt\u00e9st\u0151l t\u00e1vol helyezkedtek el, \u00e9s nem sz\u00fclettek r\u00e9szt venni a folyamatban.<\/p>\n<p><img decoding=\"async\" alt=\"A DevSecOps f\u00e9lelme \u00e9s gy\u0171l\u00f6lete\" src=\"\/wp-content\/uploads\/2019\/04\/1c5958fb123313308bdd92c5471c44da.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nA f\u0151 probl\u00e9ma pontosan az, hogy a kiberv\u00e9delem k\u00fcl\u00f6n\u00e1ll\u00f3an m\u0171k\u00f6dik a fejleszt\u00e9st\u0151l. \u00c1ltal\u00e1ban van egy kiberv\u00e9delmi keret, amelybe 2-3 nagy \u00e9s dr\u00e1ga eszk\u00f6z tartozik. F\u00e9l\u00e9vente \u00e9rkezik egy forr\u00e1sk\u00f3d vagy alkalmaz\u00e1s, amelyet ellen\u0151rizni kell, \u00e9s \u00e9vente v\u00e9geznek <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%98%D1%81%D0%BF%D1%8B%D1%82%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BD%D0%B0_%D0%BF%D1%80%D0%BE%D0%BD%D0%B8%D0%BA%D0%BD%D0%BE%D0%B2%D0%B5%D0%BD%D0%B8%D0%B5\">penteszteket<\/a><\/noindex>. Ez mind ahhoz vezet, hogy a kereskedelmi kiad\u00e1s hat\u00e1rideje elcs\u00faszik, \u00e9s a fejleszt\u0151re hatalmas mennyis\u00e9g\u0171 sebezhet\u0151s\u00e9g z\u00fadul az automatiz\u00e1lt eszk\u00f6z\u00f6kb\u0151l. Mindezt lehetetlen feldolgozni \u00e9s jav\u00edtani, mert az el\u0151z\u0151 f\u00e9l\u00e9vr\u0151l kapott eredm\u00e9nyekkel m\u00e9g nem dolgoztak fel, \u00e9s itt van egy \u00fajabb adag.<\/p>\n<p>C\u00e9g\u00fcnk m\u0171k\u00f6d\u00e9se sor\u00e1n azt l\u00e1tjuk, hogy a biztons\u00e1g minden ter\u00fcleten \u00e9s ipar\u00e1gban meg\u00e9rti, hogy ideje felz\u00e1rk\u00f3zni \u00e9s egy ker\u00e9kben forogni a fejleszt\u00e9ssel - az\u00a0<noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%93%D0%B8%D0%B1%D0%BA%D0%B0%D1%8F_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D1%8F_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B8\"><b>Agile<\/b><\/a><\/noindex>. A DevSecOps paradigma remek\u00fcl illeszkedik a rugalmas fejleszt\u00e9si metodol\u00f3gi\u00e1hoz, amelyben minden kiad\u00e1s \u00e9s iter\u00e1ci\u00f3 sor\u00e1n r\u00e9szt vesz \u00e9s t\u00e1mogathat.<\/p>\n<p><img decoding=\"async\" alt=\"A DevSecOps f\u00e9lelme \u00e9s gy\u0171l\u00f6lete\" src=\"\/wp-content\/uploads\/2019\/04\/cf258bd7efc82ff27787b5029cf2f945.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>\u00c1tt\u00e9r\u00e9s DevSecOps-ra<\/h2>\n<p>\nA Security Development Lifecycle legfontosabb szava a <b>\u201efolyamat\u201d<\/b>Ezt meg kell \u00e9rtenie, miel\u0151tt gondolkodna az eszk\u00f6z\u00f6k v\u00e1s\u00e1rl\u00e1s\u00e1r\u00f3l.<\/p>\n<blockquote><p>Csak az eszk\u00f6z\u00f6k beilleszt\u00e9se a DevOps folyamat\u00e1ba nem elegend\u0151 - fontos a r\u00e9sztvev\u0151k k\u00f6z\u00f6tti interakci\u00f3 \u00e9s meg\u00e9rt\u00e9s.<\/p><\/blockquote>\n<p><\/p>\n<h3>Fontosabbak az emberek, nem az eszk\u00f6z\u00f6k.<\/h3>\n<p>\nGyakran a biztons\u00e1gos fejleszt\u00e9si folyamat tervez\u00e9se az eszk\u00f6z kiv\u00e1laszt\u00e1s\u00e1val \u00e9s megv\u00e1s\u00e1rl\u00e1s\u00e1val kezd\u0151dik, majd az eszk\u00f6z integr\u00e1l\u00e1s\u00e1nak pr\u00f3b\u00e1lkoz\u00e1saival v\u00e9gz\u0151dik a jelenlegi folyamatba, amelyek v\u00e9g\u00fcl csak pr\u00f3b\u00e1lkoz\u00e1sok maradnak. Ez szomor\u00fa k\u00f6vetkezm\u00e9nyekhez vezet, mivel minden eszk\u00f6z saj\u00e1t saj\u00e1toss\u00e1gokkal \u00e9s korl\u00e1tokkal rendelkezik.<\/p>\n<p>\u00c1ltal\u00e1nos eset, amikor a biztons\u00e1gi oszt\u00e1ly egy j\u00f3, dr\u00e1ga eszk\u00f6zt v\u00e1lasztott sz\u00e9les lehet\u0151s\u00e9gekkel, \u00e9s megkeresi a fejleszt\u0151ket - beilleszteni a folyamatba. De nem siker\u00fcl - a folyamat \u00fagy van fel\u00e9p\u00edtve, hogy a m\u00e1r megv\u00e1s\u00e1rolt eszk\u00f6z korl\u00e1tai nem illeszkednek a jelenlegi paradigm\u00e1ba.<\/p>\n<blockquote><p>Els\u0151sorban \u00edrja le, hogy milyen eredm\u00e9nyt szeretne, \u00e9s milyen lesz a folyamat. Ez seg\u00edt meg\u00e9rteni az eszk\u00f6z \u00e9s a biztons\u00e1g szerep\u00e9t a folyamatban.<\/p><\/blockquote>\n<p><\/p>\n<h3>Kezdje azzal, ami m\u00e1r haszn\u00e1latban van.<\/h3>\n<p>\nMiel\u0151tt dr\u00e1ga eszk\u00f6z\u00f6ket venn\u00e9l, n\u00e9zd meg, mi van m\u00e1r a birtokodban. Minden v\u00e1llalatnak vannak biztons\u00e1gi k\u00f6vetelm\u00e9nyei, amelyek a fejleszt\u00e9sre vonatkoznak, vannak ellen\u0151rz\u00e9sek, pentestek - mi\u00e9rt ne alak\u00edtan\u00e1nk mindezt \u00e1t egy \u00e9rthet\u0151 \u00e9s mindenki sz\u00e1m\u00e1ra k\u00e9nyelmes form\u00e1ba?<\/p>\n<p>\u00c1ltal\u00e1ban a k\u00f6vetelm\u00e9nyek egy pap\u00edralap\u00fa k\u00f6nyv, ami a polcon hever. Volt m\u00e1r p\u00e9lda arra, hogy bel\u00e9p\u00fcnk egy v\u00e1llalatba, hogy megn\u00e9zz\u00fck a folyamatokat, \u00e9s megk\u00e9rdezz\u00fck, hogy mutass\u00e1k meg a szoftverre vonatkoz\u00f3 biztons\u00e1gi k\u00f6vetelm\u00e9nyeket. A szakember, aki ezzel foglalkozott, sok\u00e1ig keresett:<\/p>\n<p><i>\u2014 Most, valahol a jegyzetek k\u00f6z\u00f6tt volt egy nyom, hol tal\u00e1lhat\u00f3 ez a dokumentum.<\/i><\/p>\n<p>V\u00e9g\u00fcl egy h\u00e9t m\u00falva megkaptuk a dokumentumot.<\/p>\n<p>A k\u00f6vetelm\u00e9nyek, ellen\u0151rz\u00e9sek \u00e9s egyebek sz\u00e1m\u00e1ra hozzon l\u00e9tre egy oldalt, p\u00e9ld\u00e1ul a\u00a0<b>Confluence-on.<\/b>\u00a0Ez mindenkinek k\u00e9nyelmes.<\/p>\n<blockquote><p>K\u00f6nnyebb \u00e1talak\u00edtani azt, ami m\u00e1r l\u00e9tezik, \u00e9s haszn\u00e1lni az indul\u00e1shoz.<\/p><\/blockquote>\n<p><\/p>\n<h3>Haszn\u00e1lj Security Championst. <\/h3>\n<p>\n\u00c1ltal\u00e1ban egy \u00e1tlagos v\u00e1llalatn\u00e1l 100-200 fejleszt\u0151re jut egy biztons\u00e1gi szakember, aki t\u00f6bb feladatot l\u00e1t el, \u00e9s fizikailag nem k\u00e9pes mindent ellen\u0151rizni. M\u00e9g ha mindent meg is tesz - egyed\u00fcl nem tudja ellen\u0151rizni az eg\u00e9sz k\u00f3dot, amelyet a fejleszt\u0151k gener\u00e1lnak. Az ilyen esetekre dolgozt\u00e1k ki a koncepci\u00f3t - <noindex><a rel=\"nofollow\" href=\"https:\/\/www.owasp.org\/index.php\/Security_Champions\"><b>Security Champions.<\/b><\/a><\/noindex>.<\/p>\n<blockquote><p>A Security Champion egy olyan szem\u00e9ly a fejleszt\u0151csapatban, aki \u00e9rdekl\u0151dik a term\u00e9ke biztons\u00e1ga ir\u00e1nt.<\/p><\/blockquote>\n<p><img decoding=\"async\" alt=\"A DevSecOps f\u00e9lelme \u00e9s gy\u0171l\u00f6lete\" src=\"\/wp-content\/uploads\/2019\/04\/c67728db4a6e34407da199387eba2bb4.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nA Security Champion a fejleszt\u0151csapat bel\u00e9p\u00e9si pontja \u00e9s a biztons\u00e1g evangelist\u00e1ja egy szem\u00e9lyben.<\/p>\n<p>\u00c1ltal\u00e1ban, amikor egy biztons\u00e1gi szakember \u00e9rkezik a fejleszt\u0151csapatba, \u00e9s r\u00e1mutat egy hib\u00e1ra a k\u00f3dban, meglep\u0151 v\u00e1laszt kap:<\/p>\n<p><i>\u2014 Ki is vagy te? El\u0151sz\u00f6r l\u00e1tlak. Minden rendben van \u2013 a f\u0151n\u00f6k\u00f6m a code review sor\u00e1n azt mondta, hogy \u00abapply\u00bb, haladunk tov\u00e1bb!<\/i><\/p>\n<p>Ez egy tipikus helyzet, mert a fejleszt\u0151k sokkal jobban b\u00edznak a tapasztalt koll\u00e9g\u00e1kban, akikkel folyamatosan egy\u00fctt dolgoznak \u00e9s akik r\u00e9szt vesznek a code review-ban. Ha a biztons\u00e1gi szakember helyett a Security Champion mutat r\u00e1 a hib\u00e1ra \u00e9s annak k\u00f6vetkezm\u00e9nyeire, akkor a szava nagyobb s\u00falyt kap.<\/p>\n<p>Emellett a fejleszt\u0151k jobban ismerik a saj\u00e1t k\u00f3djukat, mint b\u00e1rmely biztons\u00e1gi szakember. Az \u00e1ltal\u00e1ban 5 projekttel rendelkez\u0151 statikus anal\u00edzis eszk\u00f6z felhaszn\u00e1l\u00f3ja sz\u00e1m\u00e1ra neh\u00e9z \u00e9szben tartani az \u00f6sszes r\u00e9szletet. A Security Championok ismerik a term\u00e9k\u00fcket: tudj\u00e1k, hogy mi mivel l\u00e9p interakci\u00f3ba \u00e9s mire kell el\u0151sz\u00f6r figyelni \u2013 \u0151k hat\u00e9konyabbak.<\/p>\n<p>Teh\u00e1t \u00e9rdemes elgondolkodni a Security Championok bevezet\u00e9s\u00e9n \u00e9s a biztons\u00e1gi csapat befoly\u00e1s\u00e1nak b\u0151v\u00edt\u00e9s\u00e9n. A Champion sz\u00e1m\u00e1ra is hasznos: szakmai fejl\u0151d\u00e9s egy \u00faj ter\u00fcleten, technikai l\u00e1t\u00f3k\u00f6r b\u0151v\u00edt\u00e9se, vezet\u0151i \u00e9s vezet\u0151i k\u00e9szs\u00e9gek fejleszt\u00e9se, piaci \u00e9rt\u00e9k n\u00f6vel\u00e9se. Ez egyfajta t\u00e1rsadalmi m\u00e9rn\u00f6ks\u00e9g, a \u00abszemed\u00bb a fejleszt\u0151csapatban.<\/p>\n<h2>Tesztel\u00e9si l\u00e9p\u00e9sek<\/h2>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%97%D0%B0%D0%BA%D0%BE%D0%BD_%D0%9F%D0%B0%D1%80%D0%B5%D1%82%D0%BE\">A 20 a 80 paradigm\u00e1ja<\/a><\/noindex>\u00a0azt mondja, hogy a befektetett 20% az eredm\u00e9ny 80%-\u00e1t hozza. Ezek a 20% a t\u00e1mogathat\u00f3 alkalmaz\u00e1selemz\u00e9si gyakorlatok. Ilyen aktivit\u00e1sok p\u00e9ld\u00e1ul a statikus elemz\u00e9s \u2013 <b>SAST<\/b>, dinamikus elemz\u00e9s \u2013 <b>DAST,<\/b> \u00e9s\u00a0<b>Open Source ellen\u0151rz\u00e9s<\/b>. R\u00e9szletesebben bemutatom az aktivit\u00e1sokat, valamint az eszk\u00f6z\u00f6ket, amikkel \u00e1ltal\u00e1ban szembes\u00fcl\u00fcnk a bevezet\u00e9s\u00fck sor\u00e1n, \u00e9s hogy hogyan lehet ezt helyesen csin\u00e1lni.<\/p>\n<p><img decoding=\"async\" alt=\"A DevSecOps f\u00e9lelme \u00e9s gy\u0171l\u00f6lete\" src=\"\/wp-content\/uploads\/2019\/04\/db720e0879cdd1ed818461ffb5f927da.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Az eszk\u00f6z\u00f6k f\u0151 probl\u00e9m\u00e1i<\/h3>\n<p>\nFelsorakoztatom az \u00f6sszes eszk\u00f6z eset\u00e9ben relev\u00e1ns probl\u00e9m\u00e1kat, amelyek figyelmet ig\u00e9nyelnek. R\u00e9szletesebben is megvizsg\u00e1lom \u0151ket, hogy ne ism\u00e9teljem magam k\u00e9s\u0151bb.<\/p>\n<p><b>Hossz\u00fa ideig tart\u00f3 elemz\u00e9s. <\/b>Ha a k\u00f6telez\u0151 tesztel\u00e9s \u00e9s az \u00e9p\u00edt\u00e9s 30 percet vesz ig\u00e9nybe a kiad\u00e1s el\u0151tt, akkor az inform\u00e1ci\u00f3biztons\u00e1gi ellen\u0151rz\u00e9sek egy napot fognak ig\u00e9nybe venni. Senki sem akarja lass\u00edtani a folyamatot. Vegye figyelembe ezt a saj\u00e1toss\u00e1got, \u00e9s vonja le a k\u00f6vetkeztet\u00e9seket.<\/p>\n<p><b>Magas False Negative vagy False Positive szint. <\/b>Minden term\u00e9k k\u00fcl\u00f6nb\u00f6z\u0151, mindannyian k\u00fcl\u00f6nb\u00f6z\u0151 keretrendszereket \u00e9s saj\u00e1t k\u00f3d\u00edr\u00e1si st\u00edlust haszn\u00e1lnak. K\u00fcl\u00f6nb\u00f6z\u0151 k\u00f3dalapok \u00e9s technol\u00f3gi\u00e1k eset\u00e9n az eszk\u00f6z\u00f6k k\u00fcl\u00f6nb\u00f6z\u0151 False Negative \u00e9s False Positive szintet mutathatnak. Ez\u00e9rt n\u00e9zze meg, hogy pontosan mit tesz\u00a0<b>az \u00f6n<\/b> c\u00e9g\u00e9ben \u00e9s <b>az \u00f6n<\/b> alkalmaz\u00e1saiban mutat j\u00f3 \u00e9s megb\u00edzhat\u00f3 eredm\u00e9nyt.<\/p>\n<p><b>Nincsenek integr\u00e1ci\u00f3k a megl\u00e9v\u0151 eszk\u00f6z\u00f6kkel<\/b>. N\u00e9zze az eszk\u00f6z\u00f6ket az integr\u00e1ci\u00f3k szempontj\u00e1b\u00f3l, amit m\u00e1r haszn\u00e1l. P\u00e9ld\u00e1ul, ha van Jenkins vagy TeamCity - ellen\u0151rizze az eszk\u00f6z\u00f6k integr\u00e1ci\u00f3j\u00e1t \u00e9ppen e szoftverrel, ne a GitLab CI-vel, amelyet nem haszn\u00e1l.<\/p>\n<p><b>A testreszab\u00e1s hi\u00e1nya vagy t\u00falzott \u00f6sszetetts\u00e9ge. <\/b>Ha az eszk\u00f6znek nincs API-j\u00e1, akkor minek sz\u00fcks\u00e9ges? Minden, amit a fel\u00fcleten v\u00e9grehajthat, el\u00e9rhet\u0151nek kell lennie az API-n kereszt\u00fcl. Ide\u00e1lis esetben az eszk\u00f6znek testreszab\u00e1si lehet\u0151s\u00e9gekkel kell rendelkeznie az ellen\u0151rz\u00e9sekhez.<\/p>\n<p><b>Nincs a term\u00e9k fejleszt\u00e9s\u00e9nek Roadmap-ja. <\/b>A fejleszt\u00e9s nem \u00e1ll meg, mindig \u00faj keretrendszereket \u00e9s funkci\u00f3kat haszn\u00e1lunk, a r\u00e9gi k\u00f3dot \u00faj nyelvekre \u00edrjuk \u00e1t. Biztosak akarunk lenni abban, hogy az eszk\u00f6z, amit megv\u00e1s\u00e1rolunk, t\u00e1mogatni fogja az \u00faj keretrendszereket \u00e9s technol\u00f3gi\u00e1kat. Ez\u00e9rt fontos tudni, hogy a term\u00e9knek van val\u00f3s \u00e9s helyes <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%A2%D0%B5%D1%85%D0%BD%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D0%B4%D0%BE%D1%80%D0%BE%D0%B6%D0%BD%D0%B0%D1%8F_%D0%BA%D0%B0%D1%80%D1%82%D0%B0\">Roadmap<\/a><\/noindex> fejleszt\u00e9si terve.<\/p>\n<h3>A folyamat jellemz\u0151i<\/h3>\n<p>\nAz eszk\u00f6z\u00f6k saj\u00e1toss\u00e1gai mellett vegye figyelembe a fejleszt\u00e9si folyamat saj\u00e1toss\u00e1gait is. P\u00e9ld\u00e1ul a fejleszt\u00e9s zavar\u00e1sa tipikus hiba. N\u00e9zz\u00fck meg, milyen tov\u00e1bbi saj\u00e1toss\u00e1gokat kell figyelembe venni, \u00e9s mire kell figyelni a biztons\u00e1gi csapatnak.<\/p>\n<p>A fejleszt\u00e9si \u00e9s kiad\u00e1si hat\u00e1rid\u0151k be nem tart\u00e1s\u00e1nak elker\u00fcl\u00e9se \u00e9rdek\u00e9ben hozzon l\u00e9tre <b>k\u00fcl\u00f6nb\u00f6z\u0151 szab\u00e1lyokat<\/b> \u00e9s <b>show stoppers\u00a0<\/b>\u2014 a folyamat le\u00e1ll\u00edt\u00e1s\u00e1nak krit\u00e9riumait a sebezhet\u0151s\u00e9gek jelenl\u00e9te eset\u00e9n \u2014 <b>k\u00fcl\u00f6nb\u00f6z\u0151 k\u00f6rnyezetekhez<\/b>. P\u00e9ld\u00e1ul meg\u00e9rtj\u00fck, hogy a jelenlegi \u00e1gon a fejleszt\u0151i tesztk\u00f6rnyezetben vagy UAT-n haladunk, \u00edgy nem \u00e1ll\u00edtjuk le \u00e9s nem mondjuk:<\/p>\n<p><i>\u2014 \u00d6n itt sebezhet\u0151s\u00e9gekkel rendelkezik, nem mehet tov\u00e1bb!<\/i><\/p>\n<p>Ezen a ponton fontos jelezni a fejleszt\u0151knek, hogy biztons\u00e1gi probl\u00e9m\u00e1k vannak, amelyekre \u00e9rdemes figyelni.<\/p>\n<p><b>A sebezhet\u0151s\u00e9gek l\u00e9tez\u00e9se nem akad\u00e1lyozza meg a tov\u00e1bbi tesztel\u00e9st.<\/b>: manu\u00e1lis, integr\u00e1lt vagy manu\u00e1lis. M\u00e1sr\u00e9szt sz\u00fcks\u00e9g\u00fcnk van arra, hogy valahogyan n\u00f6velj\u00fck a term\u00e9k biztons\u00e1g\u00e1t, \u00e9s hogy a fejleszt\u0151k ne hanyagolj\u00e1k el azt, amit a biztons\u00e1g tal\u00e1l. Ez\u00e9rt n\u00e9ha \u00edgy j\u00e1runk el: a standon, amikor kiadjuk a fejleszt\u0151i k\u00f6rnyezetbe, egyszer\u0171en \u00e9rtes\u00edtj\u00fck a fejleszt\u00e9st:<\/p>\n<p><i>\u2014 Fi\u00fak, probl\u00e9m\u00e1itok vannak, k\u00e9rlek, figyeljetek r\u00e1juk.<\/i><\/p>\n<p>A UAT szakaszban ism\u00e9t figyelmeztetj\u00fck a sebezhet\u0151s\u00e9gekre, a piaci megjelen\u00e9s szakasz\u00e1ban pedig azt mondjuk:<\/p>\n<p><i>\u2014 Fi\u00fak, t\u00f6bbsz\u00f6r figyelmeztett\u00fcnk, ti nem csin\u00e1ltatok semmit \u2014 ezzel nem enged\u00fcnk ki titeket.<\/i><\/p>\n<p>Ha a k\u00f3dra \u00e9s a dinamik\u00e1ra gondolunk, akkor csak az \u00e9ppen most \u00edrt funkci\u00f3k \u00e9s k\u00f3d sebezhet\u0151s\u00e9geit kell megjelen\u00edteni \u00e9s figyelmeztetni r\u00f3luk. Ha a fejleszt\u0151 3 pixellel elmozd\u00edt egy gombot, \u00e9s mi azt mondjuk neki, hogy SQL-injekt\u00e1lt, \u00e9s s\u00fcrg\u0151sen ki kell jav\u00edtania \u2014 ez helytelen. Csak arra a k\u00f3dra figyelj, ami most \u00edr\u00f3dik, \u00e9s az \u00e1ltala hozott v\u00e1ltoztat\u00e1sra az alkalmaz\u00e1sban.<\/p>\n<p>Tegy\u00fck fel, hogy van egy funkcion\u00e1lis hiba \u2014 hogy az alkalmaz\u00e1snak hogyan nem szabad m\u0171k\u00f6dnie: a p\u00e9nz nem ker\u00fcl \u00e1tutal\u00e1sra, gombnyom\u00e1sra nem l\u00e9p tov\u00e1bb a k\u00f6vetkez\u0151 oldalra, vagy nem t\u00f6lt\u0151dik be a term\u00e9k. <b>Biztons\u00e1gi hib\u00e1k<\/b>\u00a0\u2014 ezek ugyanazok a hib\u00e1k, de nem az alkalmaz\u00e1s m\u0171k\u00f6d\u00e9s\u00e9nek, hanem a biztons\u00e1gnak a szempontj\u00e1b\u00f3l. <\/p>\n<blockquote><p>Nem minden szoftvermin\u0151s\u00e9gi probl\u00e9ma biztons\u00e1gi probl\u00e9ma. De minden biztons\u00e1gi probl\u00e9ma a szoftvermin\u0151s\u00e9ggel f\u00fcgg \u00f6ssze. Sherif Mansour, Expedia.<\/p><\/blockquote>\n<p>\nMivel minden sebezhet\u0151s\u00e9g ugyanolyan hiba, ott kell lennie, ahol az \u00f6sszes fejleszt\u00e9si hiba van. Ez\u00e9rt felejts\u00e9tek el a jelent\u00e9seket \u00e9s a r\u00e9miszt\u0151 PDF-eket, amelyeket senki sem olvas.<\/p>\n<p><img decoding=\"async\" alt=\"A DevSecOps f\u00e9lelme \u00e9s gy\u0171l\u00f6lete\" src=\"\/wp-content\/uploads\/2019\/04\/e54e64658a3882bdc68a48c6ef426746.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAmikor egy olyan c\u00e9gben dolgoztam, amely fejleszt\u00e9ssel foglalkozott, kaptam egy jelent\u00e9st a statikus elemz\u0151 eszk\u00f6z\u00f6kt\u0151l. Kinyitottam, megd\u00f6bbentem, f\u0151ztem egy k\u00e1v\u00e9t, \u00e1tlapoztam 350 oldalt, bez\u00e1rtam, \u00e9s tov\u00e1bb dolgoztam. <b>A nagy jelent\u00e9sek halott jelent\u00e9sek<\/b>. \u00c1ltal\u00e1ban nem jutnak sehova, az e-mailek t\u00f6rl\u0151dnek, elfelejt\u0151dnek, elvesznek, vagy a v\u00e1llalkoz\u00e1s azt mondja, hogy v\u00e1llalja a kock\u00e1zatokat.<\/p>\n<p>Mit kell tenni? A meger\u0151s\u00edtett hib\u00e1kat, amelyeket tal\u00e1ltunk, egyszer\u0171en \u00e1tkonvert\u00e1ljuk fejleszt\u00e9sre alkalmas form\u00e1ba, p\u00e9ld\u00e1ul a Jira backlogj\u00e1ba helyezz\u00fck. A hib\u00e1kat prioriz\u00e1ljuk \u00e9s a priorit\u00e1soknak megfelel\u0151en jav\u00edtjuk ki \u0151ket, p\u00e1rhuzamosan a funkcion\u00e1lis hib\u00e1kkal \u00e9s a tesztel\u00e9sek hib\u00e1ival.<\/p>\n<h2>Statikus elemz\u00e9s - SAST<\/h2>\n<p>\n<b>Ez a k\u00f3d sebezhet\u0151s\u00e9geinek elemz\u00e9se.<\/b>, de ez nem ugyanaz, mint a SonarQube. Nem csak mint\u00e1k vagy st\u00edlus alapj\u00e1n ellen\u0151rz\u00fcnk. Az elemz\u00e9sben sz\u00e1mos megk\u00f6zel\u00edt\u00e9st alkalmazunk: sebezhet\u0151s\u00e9gi f\u00e1ra,\u00a0<noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA%D0%BE%D0%B2_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85\">DataFlow<\/a><\/noindex>, konfigur\u00e1ci\u00f3s f\u00e1jlok elemz\u00e9s\u00e9re. Ez mind a k\u00f3dra vonatkozik.<\/p>\n<p><b>A megk\u00f6zel\u00edt\u00e9s el\u0151nyei<\/b>: <b>sebezhet\u0151s\u00e9gek korai felfedez\u00e9se a fejleszt\u00e9s sor\u00e1n<\/b>, amikor m\u00e9g nincsenek \u00e1llv\u00e1nyok \u00e9s k\u00e9sz eszk\u00f6z\u00f6k, \u00e9s<b>\u00a0a fokozatos szkennel\u00e9s lehet\u0151s\u00e9ge<\/b>: a k\u00f3d azon r\u00e9sz\u00e9nek szkennel\u00e9se, amely megv\u00e1ltozott, \u00e9s csak annak a funkci\u00f3nak, amin most dolgozunk, cs\u00f6kkentve ezzel a szkennel\u00e9si id\u0151t.<\/p>\n<p><b>H\u00e1tr\u00e1nyok<\/b>\u00a0\u2014 a sz\u00fcks\u00e9ges nyelvek t\u00e1mogat\u00e1s\u00e1nak hi\u00e1nya.<\/p>\n<p><b>A sz\u00fcks\u00e9ges integr\u00e1ci\u00f3k, <\/b>amelyeknek benne kell lenni\u00fck az eszk\u00f6z\u00f6kben, v\u00e9lem\u00e9nyem szerint:<\/p>\n<ul>\n<li>Integr\u00e1ci\u00f3s eszk\u00f6z: Jenkins, TeamCity \u00e9s Gitlab CI.\n<\/li>\n<li>Fejleszt\u0151i k\u00f6rnyezet: Intellij IDEA, Visual Studio. A fejleszt\u0151nek k\u00e9nyelmesebb nem belemer\u00fclni egy meg\u00e9rthetetlen fel\u00fcletbe, amelyet m\u00e9g meg is kell tanulnia, hanem k\u00f6zvetlen\u00fcl a munkater\u00fclet\u00e9n, a saj\u00e1t fejleszt\u0151i k\u00f6rnyezet\u00e9ben l\u00e1tni az \u00f6sszes sz\u00fcks\u00e9ges integr\u00e1ci\u00f3t \u00e9s a sebezhet\u0151s\u00e9geket, amelyeket felfedezett.\n<\/li>\n<li>K\u00f3dellen\u0151rz\u00e9s: SonarQube \u00e9s manu\u00e1lis fel\u00fclvizsg\u00e1lat.\n<\/li>\n<li>Hibak\u00f6vet\u0151k: Jira \u00e9s Bugzilla.\n<\/li>\n<\/ul>\n<p>\nA k\u00e9pen a statikus elemz\u00e9s n\u00e9h\u00e1ny legjobb k\u00e9pvisel\u0151je l\u00e1that\u00f3.<\/p>\n<p><img decoding=\"async\" alt=\"A DevSecOps f\u00e9lelme \u00e9s gy\u0171l\u00f6lete\" src=\"\/wp-content\/uploads\/2019\/04\/bab3420874ac090d4d107edb0d2b857b.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNem az eszk\u00f6z\u00f6k a fontosak, hanem a folyamat, ez\u00e9rt l\u00e9teznek Open Source megold\u00e1sok, amelyek szint\u00e9n j\u00f3k a folyamat kipr\u00f3b\u00e1l\u00e1s\u00e1ra.<\/p>\n<p><img decoding=\"async\" alt=\"A DevSecOps f\u00e9lelme \u00e9s gy\u0171l\u00f6lete\" src=\"\/wp-content\/uploads\/2019\/04\/4f2c278922c291b15922bc5748f87dc3.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAz SAST Open Source nem tal\u00e1lhat meg hatalmas mennyis\u00e9g\u0171 sebezhet\u0151s\u00e9get, vagy bonyolult adat\u00e1raml\u00e1st, de a folyamat ki\u00e9p\u00edt\u00e9sekor haszn\u00e1lni kell \u0151ket. Seg\u00edtenek meg\u00e9rteni, hogyan \u00e9p\u00fcl fel a folyamat, ki fog felelni a bugok\u00e9rt, ki fog jelenteni, ki - sz\u00e1mot adni. Ha az a c\u00e9lja, hogy a k\u00f3dja biztons\u00e1g\u00e1t az alapokt\u00f3l \u00e9p\u00edtse fel - haszn\u00e1ljon Open Source megold\u00e1sokat.<\/p>\n<p>Hogyan lehet ezt integr\u00e1lni, ha a kezdett\u0151l fogva nem rendelkezik semmivel: sem CI-vel, sem Jenkins-el, sem TeamCity-vel? Vizsg\u00e1ljuk meg az integr\u00e1ci\u00f3kat a folyamatban.<\/p>\n<h3>Integr\u00e1ci\u00f3 CVS szinten<\/h3>\n<p>\nHa van Bitbucket vagy GitLab, integr\u00e1ci\u00f3t hozhatunk l\u00e9tre <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/CVS\">Concurrent Versions System<\/a><\/noindex>.<\/p>\n<p><b>Esem\u00e9nyalap\u00fa<\/b>\u00a0\u2014 pull request, commit. A k\u00f3dot \u00e1tvizsg\u00e1lja, \u00e9s a build \u00e1llapot\u00e1n l\u00e1thatja, hogy a biztons\u00e1gi ellen\u0151rz\u00e9s sikeres volt-e vagy sem.<\/p>\n<p><b>Visszajelz\u00e9s. <\/b>Term\u00e9szetesen a visszajelz\u00e9s mindig sz\u00fcks\u00e9ges. Ha csup\u00e1n elv\u00e9gezte a biztons\u00e1gi oldalon, bedobta egy dobozba, \u00e9s senkinek sem mondott r\u00f3la semmit, majd a h\u00f3nap v\u00e9g\u00e9n felhalmoz\u00f3dik egy csom\u00f3 hiba \u2013 ez nem helyes \u00e9s nem is j\u00f3.<\/p>\n<h3>Integr\u00e1ci\u00f3 a k\u00f3dellen\u0151rz\u0151 rendszerrel<\/h3>\n<p>\nEgyszer fontos projektek eset\u00e9n az AppSec technikai felhaszn\u00e1l\u00f3t \u00e1ll\u00edtottuk be alap\u00e9rtelmezett ellen\u0151rnek. A pull requesten az ellen\u0151r hozz\u00e1rendel egy st\u00e1tuszt: \u201eelfogadva\u201d vagy \u201emunk\u00e1t ig\u00e9nyel\u201d \u2013 vagyis minden rendben, vagy jav\u00edtani kell, \u00e9s linkeket arra, hogy pontosan mit kell jav\u00edtani. Az \u00e9les verzi\u00f3 integr\u00e1ci\u00f3j\u00e1hoz tiltotta a merge-t, ha a biztons\u00e1gi teszt nem teljes\u00fclt. Ezt manu\u00e1lis k\u00f3dellen\u0151rz\u00e9sbe \u00e9p\u00edtett\u00fck be, \u00e9s a folyamat t\u00f6bbi r\u00e9sztvev\u0151je a biztons\u00e1gi st\u00e1tuszokat l\u00e1tta kifejezetten erre a folyamatra vonatkoz\u00f3an.<\/p>\n<h3>Integr\u00e1ci\u00f3 a SonarQube-al<\/h3>\n<p>\nSokaknak van <noindex><a rel=\"nofollow\" href=\"https:\/\/de.wikipedia.org\/wiki\/Quality_Gate\">min\u0151s\u00e9gkapu<\/a><\/noindex> a k\u00f3d min\u0151s\u00e9ge szempontj\u00e1b\u00f3l. Itt is ugyanez a helyzet \u2013 ugyanazokat a kapukat meg lehet csin\u00e1lni csak a SAST eszk\u00f6z\u00f6kh\u00f6z. Ugyanaz a fel\u00fclet, ugyanaz a min\u0151s\u00e9gkapu, csak a neve <b>biztons\u00e1gi kapu<\/b>. \u00c9s ha SonarQube-ot haszn\u00e1l\u00f3 folyamatot \u00e1ll\u00edtott be, nyugodtan integr\u00e1lhat mindent oda.<\/p>\n<h3>Integr\u00e1ci\u00f3 CI szinten<\/h3>\n<p>\nItt is minden el\u00e9gg\u00e9 egyszer\u0171:<\/p>\n<ul>\n<li><b>Ugyanazon a szinten az automatiz\u00e1lt tesztekkel<\/b>, egys\u00e9gtesztekkel.\n<\/li>\n<li><b>Fejleszt\u00e9si f\u00e1zisok szerinti elk\u00fcl\u00f6n\u00edt\u00e9s<\/b>: dev, test, prod. K\u00fcl\u00f6nb\u00f6z\u0151 szab\u00e1lyk\u00e9szletek vagy k\u00fcl\u00f6nb\u00f6z\u0151 hibafelt\u00e9telek bevonhat\u00f3k: meg\u00e1ll\u00edtjuk a buildet, vagy nem \u00e1ll\u00edtjuk meg.\n<\/li>\n<li><b>Szincron \u00e9s aszinkron v\u00e9grehajt\u00e1s<\/b>. V\u00e1rjuk a biztons\u00e1gi tesztek befejez\u00e9s\u00e9t vagy nem v\u00e1rjuk. Azaz csak elind\u00edtottuk \u0151ket, \u00e9s tov\u00e1bb haladunk, majd \u00e9rkezik a st\u00e1tusz, hogy minden rendben van vagy nem.\n<\/li>\n<\/ul>\n<p>\nEz mind egy t\u00f6k\u00e9letes r\u00f3zsasz\u00edn vil\u00e1gban van. A val\u00f3s \u00e9letben nincs ilyen, de t\u00f6reksz\u00fcnk r\u00e1. A biztons\u00e1gi ellen\u0151rz\u00e9sek eredm\u00e9nyeinek hasonl\u00f3nak kell lenni\u00fck az egys\u00e9gtesztek eredm\u00e9nyeihez.<\/p>\n<p>P\u00e9ld\u00e1ul, vett\u00fcnk egy nagy projektet, \u00e9s \u00fagy d\u00f6nt\u00f6tt\u00fcnk, hogy mostant\u00f3l SAST-tal fogjuk szkennelni \u2013 rendben. Betett\u00fck ezt a projektet a SAST-ba, 20 000 sebezhet\u0151s\u00e9get kaptunk, \u00e9s akaratunkon k\u00edv\u00fcl elfogadtuk, hogy minden rendben van. 20 000 sebezhet\u0151s\u00e9g \u2013 ez a mi technikai ad\u00f3ss\u00e1gunk. Az ad\u00f3ss\u00e1got egy dobozba tessz\u00fck, lassan sz\u00e9pen elsim\u00edtjuk, \u00e9s a hib\u00e1kat bejegyezz\u00fck a hiba-trackerbe. Felb\u00e9rl\u00fcnk egy c\u00e9get, mindent csin\u00e1lunk magunk, vagy a Security Champions seg\u00edtenek nek\u00fcnk \u2013 a technikai ad\u00f3ss\u00e1g cs\u00f6kkenni fog.<\/p>\n<p>A minden \u00fajonnan megjelen\u0151 sebezhet\u0151s\u00e9get az \u00faj k\u00f3dban is \u00fagy kell kezelni, mint a hib\u00e1kat az egys\u00e9g vagy az automatikus tesztekben. Hogy \u00fagy mondjam, elindult a build, v\u00e9gigpr\u00f3b\u00e1ltuk, k\u00e9t teszt megbukott, \u00e9s k\u00e9t biztons\u00e1gi teszt is. Rendben \u2013 elment\u00fcnk, megn\u00e9zt\u00fck, mi t\u00f6rt\u00e9nt, jav\u00edtottunk egyet, jav\u00edtottunk a m\u00e1sikon, legk\u00f6zelebb v\u00e9gigpr\u00f3b\u00e1ltuk \u2013 minden rendben, \u00faj sebezhet\u0151s\u00e9gek nem jelentkeztek, a tesztek nem buktak meg. Ha a feladat m\u00e9lyebben \u00e9rinti a dolgot, \u00e9s j\u00f3l meg kell \u00e9rteni, vagy ha a sebezhet\u0151s\u00e9gek jav\u00edt\u00e1sa jelent\u0151s r\u00e9szeket \u00e9rint a h\u00e1tt\u00e9rben: bejegyezt\u00fcnk egy hib\u00e1t a hiba-trackerbe, amelyet prioriz\u00e1lni kell \u00e9s jav\u00edtani. Sajn\u00e1latos m\u00f3don a vil\u00e1g nem t\u00f6k\u00e9letes, \u00e9s n\u00e9ha a tesztek megbuknak.<\/p>\n<p>A security gate p\u00e9ld\u00e1ja \u2013 hasonl\u00f3 a min\u0151s\u00e9gi kapuhoz, a k\u00f3dban l\u00e9v\u0151 sebezhet\u0151s\u00e9gek jelenl\u00e9te \u00e9s sz\u00e1moss\u00e1ga alapj\u00e1n.<\/p>\n<p><img decoding=\"async\" alt=\"A DevSecOps f\u00e9lelme \u00e9s gy\u0171l\u00f6lete\" src=\"\/wp-content\/uploads\/2019\/04\/eb30d3c7988b28c2cb25e9656871ec96.png\" style=\"display:block;margin: 0 auto;\" \/>Integr\u00e1l\u00e1s a SonarQube-hoz \u2013 a b\u0151v\u00edtm\u00e9ny telep\u00edt\u00e9se, minden nagyon k\u00e9nyelmes \u00e9s klassz.<\/p>\n<h3>Integr\u00e1ci\u00f3 a fejleszt\u00e9si k\u00f6rnyezettel<\/h3>\n<p>\n<b>Integr\u00e1ci\u00f3s lehet\u0151s\u00e9gek:<\/b><\/p>\n<ul>\n<li>Szkennel\u00e9s ind\u00edt\u00e1sa a fejleszt\u00e9si k\u00f6rnyezetb\u0151l m\u00e9g a commit el\u0151tt.\n<\/li>\n<li>Eredm\u00e9nyek megtekint\u00e9se.\n<\/li>\n<li>Eredm\u00e9nyek elemz\u00e9se.\n<\/li>\n<li>Szinkroniz\u00e1l\u00e1s a szerverrel.\n<\/li>\n<\/ul>\n<p>\nK\u00f6r\u00fclbel\u00fcl \u00edgy n\u00e9z ki az eredm\u00e9nyek megszerz\u00e9se a szerverr\u0151l.<\/p>\n<p><img decoding=\"async\" alt=\"A DevSecOps f\u00e9lelme \u00e9s gy\u0171l\u00f6lete\" src=\"\/wp-content\/uploads\/2019\/04\/270d4af76fddc0ceebca908c7d3835b8.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nA mi fejleszt\u00e9si k\u00f6rnyezet\u00fcnkben <noindex><a rel=\"nofollow\" href=\"https:\/\/www.jetbrains.com\/idea\/\">Intellij IDEA<\/a><\/noindex> csak megjelenik egy tov\u00e1bbi pont, amely jelzi, hogy a szkennel\u00e9s sor\u00e1n ilyen sebezhet\u0151s\u00e9gek ker\u00fcltek el\u0151. Azonnal lehet\u0151s\u00e9g van a k\u00f3d jav\u00edt\u00e1s\u00e1ra, a javaslatok \u00e1tn\u00e9z\u00e9s\u00e9re \u00e9s\u00a0<noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Control-flow_graph\">Flow Graph<\/a><\/noindex>. Mindez a fejleszt\u0151 munkater\u00fclet\u00e9n van, ami nagyon k\u00e9nyelmes \u2013 nem kell m\u00e1s linkekre j\u00e1rni \u00e9s valami m\u00e1st keresni.<\/p>\n<h2>. Nem kell semmit fizetni. Nem kell meg\u00e1llapodni arr\u00f3l, hogy telep\u00edts\u00fck a rendszert a laptopunkra vagy szerver\u00fcnkre. Nincsenek rejtett d\u00edjak. Ugyanakkor egyetlen m\u00e1s Open Source adatb\u00e1zistechnol\u00f3gia sem tud versenyezni a sebess\u00e9ggel a<\/h2>\n<p>\nEz a kedvenc t\u00e9m\u00e1m. Mindenki haszn\u00e1l Open Source k\u00f6nyvt\u00e1rakat \u2013 mi\u00e9rt kellene rengeteg felesleges k\u00f3dot \u00edrni, amikor k\u00e9sz k\u00f6nyvt\u00e1rakat vehet\u00fcnk ig\u00e9nybe, amelyek m\u00e1r mindent megval\u00f3s\u00edtottak?<\/p>\n<p><img decoding=\"async\" alt=\"A DevSecOps f\u00e9lelme \u00e9s gy\u0171l\u00f6lete\" src=\"\/wp-content\/uploads\/2019\/04\/05b9cd5a8b269af2a3f59931a0774778.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPersze, \u00edgy van, de a k\u00f6nyvt\u00e1rakat is emberek \u00edrj\u00e1k, magukban foglalj\u00e1k a bizonyos kock\u00e1zatokat, \u00e9s ott is el\u0151fordulnak sebezhet\u0151s\u00e9gek, amelyekr\u0151l id\u0151szakosan vagy folyamatosan t\u00e1j\u00e9koztatnak. Ez\u00e9rt van a k\u00f6vetkez\u0151 l\u00e9p\u00e9s az Application Securityben \u2013 az Open Source komponensek elemz\u00e9se.<\/p>\n<h3>Open Source elemz\u00e9s \u2013 OSA<\/h3>\n<p>\nAz eszk\u00f6z h\u00e1rom nagy szakaszt tartalmaz.<\/p>\n<p><b>Sebezhet\u0151s\u00e9gek keres\u00e9se a k\u00f6nyvt\u00e1rakban. <\/b>P\u00e9ld\u00e1ul az eszk\u00f6z tudja, hogy haszn\u00e1lunk egy adott k\u00f6nyvt\u00e1rat, \u00e9s hogy a\u00a0<noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/Common_Vulnerabilities_and_Exposures\">CVE<\/a><\/noindex> vagy a hibak\u00f6vet\u0151kben vannak olyan sebezhet\u0151s\u00e9gek, amelyek ehhez a k\u00f6nyvt\u00e1rverzi\u00f3hoz tartoznak. Amikor megpr\u00f3b\u00e1ljuk haszn\u00e1lni, az eszk\u00f6z figyelmeztet\u00e9st ad ki, hogy a k\u00f6nyvt\u00e1r sebezhet\u0151, \u00e9s javasolja egy m\u00e1sik verzi\u00f3 haszn\u00e1lat\u00e1t, ahol nincsenek sebezhet\u0151s\u00e9gek.<\/p>\n<p><b>Licenc tisztas\u00e1gi elemz\u00e9s. <\/b>N\u00e1lunk ez m\u00e9g nem t\u00fal n\u00e9pszer\u0171, de ha k\u00fclf\u00f6ld\u00f6n dolgozik, akkor ott id\u0151szakonk\u00e9nt el\u0151fordulhat, hogy b\u00fcntet\u00e9st kap a ny\u00edlt forr\u00e1sk\u00f3d\u00fa komponens haszn\u00e1lat\u00e1\u00e9rt, amelyet nem lehet haszn\u00e1lni vagy m\u00f3dos\u00edtani. A k\u00f6nyvt\u00e1r licencpolitik\u00e1ja szerint ezt nem tehetj\u00fck. Vagy ha m\u00f3dos\u00edtottuk \u00e9s haszn\u00e1ljuk, akkor k\u00f6telez\u0151 k\u00f6zz\u00e9tenn\u00fcnk a saj\u00e1t k\u00f3dunkat. Term\u00e9szetesen senki sem akarja k\u00f6zz\u00e9tenni a term\u00e9keinek k\u00f3dj\u00e1t, de erre is van v\u00e9dekez\u00e9si lehet\u0151s\u00e9g.<\/p>\n<p><b>A ipari k\u00f6rnyezetben haszn\u00e1lt komponensek elemz\u00e9se. <\/b>K\u00e9pzelj\u00fcnk el egy hipotetikus helyzetet, hogy v\u00e9gre befejezt\u00fck a fejleszt\u00e9st \u00e9s kiadtuk a legutols\u00f3 verzi\u00f3j\u00e1t a mikroszerviz\u00fcnknek. Ott csod\u00e1latosan m\u0171k\u00f6dik \u2013 egy h\u00e9tig, egy h\u00f3napig, egy \u00e9vig. Nem futtatunk ellen\u0151rz\u00e9seket, a biztons\u00e1gi vizsg\u00e1latokat nem v\u00e9gezz\u00fck, \u00fagy t\u0171nik, minden rendben van. De hirtelen k\u00e9t h\u00e9ttel a kiad\u00e1s ut\u00e1n kritikus sebezhet\u0151s\u00e9g ker\u00fcl napvil\u00e1gra a haszn\u00e1lt Open Source komponensben, amely pontosan ebben a buildben szerepel az ipari k\u00f6rnyezetben. Ha nem jegyezz\u00fck fel, hogy mit \u00e9s hol haszn\u00e1lunk, akkor ezt a sebezhet\u0151s\u00e9get egyszer\u0171en nem fogjuk \u00e9szrevenni. N\u00e9h\u00e1ny eszk\u00f6z lehet\u0151s\u00e9get ad a k\u00f6nyvt\u00e1rak sebezhet\u0151s\u00e9g\u00e9nek figyel\u00e9s\u00e9re, amelyek jelenleg az iparban haszn\u00e1latban vannak. Ez nagyon hasznos.<\/p>\n<p><b>Lehet\u0151s\u00e9gek:<\/b><\/p>\n<ul>\n<li>K\u00fcl\u00f6nb\u00f6z\u0151 politik\u00e1k a fejleszt\u00e9s k\u00fcl\u00f6nb\u00f6z\u0151 szakaszaira.\n<\/li>\n<li>Kompontok figyel\u00e9se az ipari k\u00f6rnyezetben.\n<\/li>\n<li>K\u00f6nyvt\u00e1rak ellen\u0151rz\u00e9se a szervezet keretein bel\u00fcl.\n<\/li>\n<li>K\u00fcl\u00f6nb\u00f6z\u0151 build rendszerek \u00e9s nyelvek t\u00e1mogat\u00e1sa.\n<\/li>\n<li>Docker k\u00e9pek elemz\u00e9se.\n<\/li>\n<\/ul>\n<p>\nN\u00e9h\u00e1ny p\u00e9lda ter\u00fcletvezet\u0151kre, akik Open Source elemz\u00e9ssel foglalkoznak.<\/p>\n<p><img decoding=\"async\" alt=\"A DevSecOps f\u00e9lelme \u00e9s gy\u0171l\u00f6lete\" src=\"\/wp-content\/uploads\/2019\/04\/f1b05f86beb4a64f9bf3443963e3603b.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nAz egyetlen ingyenes k\u00f6z\u00fcl\u00fck \u2013 ez <noindex><a rel=\"nofollow\" href=\"https:\/\/www.owasp.org\/index.php\/OWASP_Dependency_Check\">Dependency-Check<\/a><\/noindex> az OWASP. Ezt a korai szakaszokban be lehet kapcsolni, hogy megn\u00e9zze, hogyan m\u0171k\u00f6dik \u00e9s mit t\u00e1mogat. F\u0151k\u00e9nt ezek felh\u0151alap\u00fa term\u00e9kek, vagy on-premise, de az alapjuk \u00edgy is az interneten kereszt\u00fcl ker\u00fcl tov\u00e1bb\u00edt\u00e1sra. Nem az \u00d6n k\u00f6nyvt\u00e1rait k\u00fcldik el, hanem hasheket vagy saj\u00e1t kalkul\u00e1lt \u00e9rt\u00e9keiket, valamint ujjlenyomatokat a saj\u00e1t szerver\u00fckre, hogy \u00e9rtes\u00edt\u00e9st kapjanak a sebezhet\u0151s\u00e9gekr\u0151l.<\/p>\n<h3>Integr\u00e1ci\u00f3 a folyamatba<\/h3>\n<p>\n<b>A k\u00fcls\u0151 forr\u00e1sokb\u00f3l let\u00f6lt\u00f6tt k\u00f6nyvt\u00e1rak ellen\u0151rz\u00e9se. Van k\u00fcls\u0151 \u00e9s bels\u0151 t\u00e1rol\u00f3nk. P\u00e9ld\u00e1ul az Event Centralon bel\u00fcl Nexus m\u0171k\u00f6dik, \u00e9s azt szeretn\u00e9nk, hogy a bels\u0151 t\u00e1rol\u00f3nkban ne legyenek \"kritikus\" vagy \"magas\" besorol\u00e1s\u00fa sebezhet\u0151s\u00e9gek. A Nexus Firewall Lifecycle eszk\u00f6z seg\u00edts\u00e9g\u00e9vel be\u00e1ll\u00edthat\u00f3 a proxyz\u00e1s, hogy az ilyen sebezhet\u0151s\u00e9gek kisz\u0171r\u0151djenek, \u00e9s ne juthassanak be a bels\u0151 t\u00e1rol\u00f3ba.<\/b>Integr\u00e1ci\u00f3 a CI-ba<\/p>\n<p><b>. Az automatikus tesztek, egys\u00e9gtesztek \u00e9s a fejleszt\u00e9si szakaszok (dev, test, prod) sz\u00e9tv\u00e1laszt\u00e1s\u00e1nak egy szintj\u00e9n: minden szakaszban let\u00f6lthet b\u00e1rmilyen k\u00f6nyvt\u00e1rat, haszn\u00e1lhat b\u00e1rmit, de ha ott van valami komoly, ami \"kritikus\" besorol\u00e1s\u00fa - tal\u00e1n \u00e9rdemes, ha a fejleszt\u0151k figyelnek erre a kiad\u00e1s el\u0151tti szakaszban.<\/b>Integr\u00e1ci\u00f3 a m\u0171veletekhez<\/p>\n<p><b>: Nexus \u00e9s JFrog.<\/b>Integr\u00e1ci\u00f3 a fejleszt\u00e9si k\u00f6rnyezetbe.<\/p>\n<p><b>A kiv\u00e1lasztott eszk\u00f6z\u00f6knek integr\u00e1lniuk kell a fejleszt\u00e9si k\u00f6rnyezetekkel. A fejleszt\u0151nek a saj\u00e1t munkahely\u00e9r\u0151l hozz\u00e1f\u00e9r\u00e9se kell, hogy legyen a szkennel\u00e9si eredm\u00e9nyekhez, vagy lehet\u0151s\u00e9ge, hogy \u00f6n\u00e1ll\u00f3an szkennelje \u00e9s ellen\u0151rizze a k\u00f3dot a kompatibilit\u00e1sra az al\u00e1\u00edr\u00e1s el\u0151tt a CVS-ben. <\/b>Integr\u00e1ci\u00f3 a CD-be.<\/p>\n<p><b>Ez egy nagyszer\u0171 funkci\u00f3, ami nagyon tetszik, \u00e9s amir\u0151l m\u00e1r besz\u00e9ltem - a \u00faj sebezhet\u0151s\u00e9gek megjelen\u00e9s\u00e9nek figyel\u00e9se ipari k\u00f6rnyezetben. Ez k\u00f6r\u00fclbel\u00fcl \u00edgy m\u0171k\u00f6dik. <\/b>Van nek\u00fcnk<\/p>\n<p><img decoding=\"async\" alt=\"A DevSecOps f\u00e9lelme \u00e9s gy\u0171l\u00f6lete\" src=\"\/wp-content\/uploads\/2019\/04\/605c638df343db5c47ab36b4dc00f41c.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nK\u00f6z\u00f6ss\u00e9gi Komponens T\u00e1rol\u00f3k <b>Public Component Repositories<\/b>\u00a0\u2014 k\u00fcls\u0151 eszk\u00f6z\u00f6k \u00e9s a bels\u0151 t\u00e1rol\u00f3nk. Azt akarjuk, hogy csak megb\u00edzhat\u00f3 komponenst tartalmazzon. A k\u00e9r\u00e9s k\u00f6zvet\u00edt\u00e9sekor ellen\u0151rizz\u00fck, hogy a let\u00f6lt\u00f6tt k\u00f6nyvt\u00e1rnak nincsenek biztons\u00e1gi r\u00e9sei. Ha megfelel a meg\u00e1llap\u00edtott politik\u00e1inknak, amelyeket k\u00f6telez\u0151en egyeztet\u00fcnk a fejleszt\u00e9ssel, akkor nem t\u00f6ltj\u00fck le, \u00e9s \u00e9rkezik egy \u00fczenet, hogy haszn\u00e1ljon egy m\u00e1sik verzi\u00f3t. Ennek megfelel\u0151en, ha a k\u00f6nyvt\u00e1rban val\u00f3ban kritikus \u00e9s rossz dolog van, akkor a fejleszt\u0151 m\u00e1r a telep\u00edt\u00e9si f\u00e1zisban nem kapja meg a k\u00f6nyvt\u00e1rat \u2014 ink\u00e1bb haszn\u00e1ljon magasabb vagy alacsonyabb verzi\u00f3t.<\/p>\n<ul>\n<li>A build sor\u00e1n ellen\u0151rizz\u00fck, hogy senki sem csemp\u00e9szett be semmi rosszat, hogy minden komponens biztons\u00e1gos, \u00e9s senki sem hozott be a flash meghajt\u00f3n semmi vesz\u00e9lyeset.\n<\/li>\n<li>A t\u00e1rol\u00f3nkban csak megb\u00edzhat\u00f3 komponensek tal\u00e1lhat\u00f3k. \n<\/li>\n<li>A telep\u00edt\u00e9skor ism\u00e9t ellen\u0151rizz\u00fck mag\u00e1t a csomagot: war, jar, DL vagy Docker-ki\u00e9p\u00edt\u00e9s, hogy megfelel-e a politik\u00e1nak. \n<\/li>\n<li>A termel\u00e9sbe l\u00e9p\u00e9skor figyelemmel k\u00eds\u00e9rj\u00fck, mi t\u00f6rt\u00e9nik az ipari k\u00f6rnyezetben: megjelennek-e vagy nem jelennek meg kritikus biztons\u00e1gi r\u00e9sek.\n<\/li>\n<\/ul>\n<p><\/p>\n<h2>Dinamikus anal\u00edzis \u2014 DAST<\/h2>\n<p>\nA dinamikus anal\u00edzis eszk\u00f6z\u00f6k l\u00e9nyegesen elt\u00e9rnek mindatt\u00f3l, amit eddig mondtunk. Ez egyfajta felhaszn\u00e1l\u00f3i munkafolyamat szimul\u00e1ci\u00f3 az alkalmaz\u00e1ssal. Ha webalkalmaz\u00e1sr\u00f3l van sz\u00f3, akkor k\u00e9rd\u00e9seket k\u00fcld\u00fcnk, szimul\u00e1lva a kliens m\u0171k\u00f6d\u00e9s\u00e9t, megnyomjuk a gombokat az el\u00fcls\u0151 fel\u00fcleten, mesters\u00e9ges adatokat k\u00fcld\u00fcnk a form\u00e1b\u00f3l: id\u00e9z\u0151jelek, z\u00e1r\u00f3jelek, karakterek k\u00fcl\u00f6nb\u00f6z\u0151 k\u00f3dol\u00e1sokban, hogy megn\u00e9zz\u00fck, hogyan m\u0171k\u00f6dik az alkalmaz\u00e1s \u00e9s hogyan kezeli a k\u00fcls\u0151 adatokat.<\/p>\n<p>Ez a rendszer lehet\u0151v\u00e9 teszi a sablon biztons\u00e1gi r\u00e9seinek ellen\u0151rz\u00e9s\u00e9t ny\u00edlt forr\u00e1sk\u00f3d\u00fa szoftverekben. Mivel a DAST nem tudja, milyen ny\u00edlt forr\u00e1sk\u00f3dot haszn\u00e1lunk, egyszer\u0171en \u201erosszindulat\u00fa\u201d mint\u00e1kat dob\u00e1l \u00e9s elemzi a szerver v\u00e1laszait:<\/p>\n<p><i>\u2014 Aha, itt van egy deszerializ\u00e1ci\u00f3s probl\u00e9ma, itt pedig nincs.<\/i><\/p>\n<p>Ebben nagy kock\u00e1zatok rejlenek, mert ha ezt a biztons\u00e1gi tesztet ugyanazon a rendszeren hajtja v\u00e9gre, amelyen a tesztel\u0151k dolgoznak - kellemetlen dolgok t\u00f6rt\u00e9nhetnek.<\/p>\n<ul>\n<li>Magas terhel\u00e9s a h\u00e1l\u00f3zat alkalmaz\u00e1sszerver\u00e9n.\n<\/li>\n<li>Nincsenek integr\u00e1ci\u00f3k.\n<\/li>\n<li>Lehet\u0151s\u00e9g a vizsg\u00e1lt alkalmaz\u00e1s be\u00e1ll\u00edt\u00e1sainak m\u00f3dos\u00edt\u00e1s\u00e1ra.\n<\/li>\n<li>Nincs sz\u00fcks\u00e9ges technol\u00f3gi\u00e1k t\u00e1mogat\u00e1sa.\n<\/li>\n<li>A be\u00e1ll\u00edt\u00e1s bonyolults\u00e1ga.\n<\/li>\n<\/ul>\n<p>\nVolt egy helyzet\u00fcnk, amikor v\u00e9gre elind\u00edtottuk az AppScan-t: sok\u00e1ig k\u00fczd\u00f6tt\u00fcnk az alkalmaz\u00e1s el\u00e9r\u00e9s\u00e9\u00e9rt, kaptunk 3 fi\u00f3kot, \u00e9s \u00f6r\u00fclt\u00fcnk - v\u00e9gre mindent ellen\u0151rizhet\u00fcnk! Elind\u00edtottuk a szkennel\u00e9st, \u00e9s az els\u0151 dolog, amit az AppScan tett - bel\u00e9pett az admin panelbe, megnyomkodta az \u00f6sszes gombot, megv\u00e1ltoztatta az adatok fel\u00e9t, majd teljesen le\u00e1ll\u00edtotta a szervert a saj\u00e1t <noindex><a rel=\"nofollow\" href=\"https:\/\/www.mailform.io\/\">mailform<\/a><\/noindex>-k\u00e9r\u00e9sekkel. A fejleszt\u00e9s a tesztel\u00e9s sor\u00e1n azt mondta:<\/p>\n<p><i>\u2014 Fi\u00fak, vicceltek?! Adtunk nektek fi\u00f3kokat, \u00e9s ti t\u00f6nkretett\u00e9tek a k\u00f6rnyezetet!<\/i><\/p>\n<p>Figyelembe kell venni a lehets\u00e9ges kock\u00e1zatokat. Ide\u00e1lis esetben k\u00e9sz\u00edtsetek egy k\u00fcl\u00f6n tesztel\u00e9si k\u00f6rnyezetet az IT biztons\u00e1g sz\u00e1m\u00e1ra, ami legal\u00e1bb valamennyire izol\u00e1lt a t\u00f6bbi k\u00f6rnyezett\u0151l, \u00e9s az admin panelt c\u00e9lszer\u0171 k\u00e9zi m\u00f3dban ellen\u0151rizni. Ez egy pentest - az a n\u00e9h\u00e1ny sz\u00e1zal\u00e9knyi er\u0151fesz\u00edt\u00e9s, amit most nem vesz\u00fcnk figyelembe. <\/p>\n<p>\u00c9rdemes megjegyezni, hogy ezt terhel\u00e9si tesztel\u00e9sk\u00e9nt is haszn\u00e1lhatjuk. Az els\u0151 szakaszban lehet aktiv\u00e1lni a dinamikus szkennert 10-15 folyamattal, \u00e9s megn\u00e9zni, hogy mi sz\u00fcletik, de \u00e1ltal\u00e1ban, ahogy a gyakorlat mutatja, semmi j\u00f3 nem szokott t\u00f6rt\u00e9nni.<\/p>\n<p>N\u00e9h\u00e1ny forr\u00e1s, amit \u00e1ltal\u00e1ban haszn\u00e1lunk.<\/p>\n<p><img decoding=\"async\" alt=\"A DevSecOps f\u00e9lelme \u00e9s gy\u0171l\u00f6lete\" src=\"\/wp-content\/uploads\/2019\/04\/45a25dbe2a2d053e6ed16d31b6ac53ef.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u00c9rdemes kiemelni <noindex><a rel=\"nofollow\" href=\"https:\/\/portswigger.net\/burp\">Burp Suite<\/a><\/noindex>\u00a0\u2014 ez a \"sv\u00e1jci bicska\" b\u00e1rmely biztons\u00e1gi szakember sz\u00e1m\u00e1ra. Mindenki haszn\u00e1lja, \u00e9s nagyon k\u00e9nyelmes. Most jelent meg egy \u00faj dem\u00f3 verzi\u00f3 az enterprise kiad\u00e1sb\u00f3l. Ha kor\u00e1bban ez csak egy \u00f6n\u00e1ll\u00f3 eszk\u00f6z volt pluginokkal, most v\u00e9gre a fejleszt\u0151k egy nagy szervert k\u00e9sz\u00edtenek, ahonnan t\u00f6bb \u00fcgyn\u00f6k\u00f6t lehet kezelni. Ez nagyszer\u0171, javaslom, hogy pr\u00f3b\u00e1lj\u00e1tok ki.<\/p>\n<h3>Integr\u00e1ci\u00f3 a folyamatba<\/h3>\n<p>\nAz integr\u00e1ci\u00f3 meglehet\u0151sen j\u00f3l \u00e9s egyszer\u0171en t\u00f6rt\u00e9nik: <b>a szkennel\u00e9s elind\u00edt\u00e1sa a sikeres telep\u00edt\u00e9s ut\u00e1n <\/b>az alkalmaz\u00e1s a k\u00f6rnyezetbe \u00e9s\u00a0<b>a szkennel\u00e9s az integr\u00e1ci\u00f3s tesztel\u00e9s sikeres elv\u00e9gz\u00e9se ut\u00e1n<\/b>.<\/p>\n<p>Ha az integr\u00e1ci\u00f3k nem m\u0171k\u00f6dnek, vagy ha ott vannak a helyettes\u00edt\u0151 \u00e9s mock-funkci\u00f3k, akkor ez \u00e9rtelmetlen \u00e9s haszontalan - b\u00e1rmilyen mint\u00e1t k\u00fcld\u00fcnk, a szerver akkor is ugyan\u00fagy fog v\u00e1laszolni.<\/p>\n<ul>\n<li>Ide\u00e1lis esetben - k\u00fcl\u00f6n k\u00f6rnyezet a tesztel\u00e9shez.\n<\/li>\n<li>A tesztel\u00e9s megkezd\u00e9se el\u0151tt r\u00f6gz\u00edts\u00e9tek a bejelentkez\u00e9si sorrendet.\n<\/li>\n<li>A rendszergazdai rendszer tesztel\u00e9se - csak k\u00e9zi.\n<\/li>\n<\/ul>\n<p><\/p>\n<h2>Folyamat<\/h2>\n<p>\nKicsit \u00e1ltal\u00e1nos\u00edtva a folyamatr\u00f3l \u00e9s az egyes eszk\u00f6z\u00f6k m\u0171k\u00f6d\u00e9s\u00e9r\u0151l, k\u00fcl\u00f6n\u00f6sen. Minden alkalmaz\u00e1s k\u00fcl\u00f6nb\u00f6z\u0151 - az egyikn\u00e9l a dinamikus elemz\u00e9s m\u0171k\u00f6dik jobban, a m\u00e1sikn\u00e1l a statikus, a harmadikn\u00e1l az OpenSource anal\u00edzis, pentestek vagy ak\u00e1r teljesen m\u00e1s, p\u00e9ld\u00e1ul esem\u00e9nyek.\u00a0<noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/Waf\">Waf<\/a><\/noindex>.<\/p>\n<blockquote><p>Minden folyamatnak sz\u00fcks\u00e9ge van ellen\u0151rz\u00e9sre.<\/p><\/blockquote>\n<p>\nAhhoz, hogy meg\u00e9rts\u00fck, hogyan m\u0171k\u00f6dik a folyamat \u00e9s hol lehetne azt jav\u00edtani, m\u00e9r\u0151sz\u00e1mokat kell gy\u0171jten\u00fcnk mindenhol, ahol csak tudunk, bele\u00e9rtve a gy\u00e1rt\u00e1si mutat\u00f3kat, az eszk\u00f6z\u00f6kb\u0151l sz\u00e1rmaz\u00f3 metrik\u00e1kat \u00e9s a hibak\u00f6vet\u0151kb\u0151l sz\u00e1rmaz\u00f3 adatokat.<\/p>\n<p>B\u00e1rmilyen adat hasznos. K\u00fcl\u00f6nb\u00f6z\u0151 szempontokb\u00f3l kell n\u00e9zni, hogy hol alkalmazhat\u00f3 jobban az adott eszk\u00f6z, hol gyeng\u00e9lkedik a folyamat. Lehet, hogy \u00e9rdemes megn\u00e9zni a fejleszt\u00e9si v\u00e1laszid\u0151t, hogy meg\u00e9rts\u00fck, hol lehetne jav\u00edtani a folyamaton az id\u0151 alapj\u00e1ban. Min\u00e9l t\u00f6bb adat \u00e1ll rendelkez\u00e9sre, ann\u00e1l t\u00f6bb szempontot lehet fel\u00e9p\u00edteni a fels\u0151bb szintt\u0151l a minden egyes folyamat r\u00e9szleteiig.<\/p>\n<p><img decoding=\"async\" alt=\"A DevSecOps f\u00e9lelme \u00e9s gy\u0171l\u00f6lete\" src=\"\/wp-content\/uploads\/2019\/04\/93e079b19c4c8189ce6ca4eaec186eed.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMivel minden statikus \u00e9s dinamikus elemz\u0151nek saj\u00e1t API-ja van, saj\u00e1t elind\u00edt\u00e1si m\u00f3dja, elve, egyeseknek \u00fctemez\u0151i vannak, m\u00e1soknak nincsenek \u2013 egy eszk\u00f6zt \u00edrunk <b>AppSec Orchestr\u00e1tor<\/b>, amely lehet\u0151v\u00e9 teszi, hogy egys\u00e9ges bel\u00e9p\u00e9si pontot hozzunk l\u00e9tre az eg\u00e9sz folyamatban, \u00e9s egyetlen pontr\u00f3l ir\u00e1ny\u00edthassuk azt.<\/p>\n<p>A menedzsereknek, fejleszt\u0151knek \u00e9s biztons\u00e1gi m\u00e9rn\u00f6k\u00f6knek van egy bel\u00e9p\u00e9si pontja, ahonnan l\u00e1thatj\u00e1k, mi van fut\u00e1sban, be\u00e1ll\u00edthatj\u00e1k \u00e9s elind\u00edthatj\u00e1k a szkennel\u00e9st, megkaphatj\u00e1k a szkennel\u00e9s eredm\u00e9nyeit, \u00e9s k\u00f6vetelm\u00e9nyeket ny\u00fajthatnak be. Arra t\u00f6reksz\u00fcnk, hogy ker\u00fclj\u00fck a pap\u00edrmunk\u00e1t, \u00e9s mindent emberi nyelvre ford\u00edtsunk, amit a fejleszt\u00e9s haszn\u00e1l \u2013 Confluence oldalakat st\u00e1tusz- \u00e9s metrik\u00e1kkal, hib\u00e1kat a Jira-ban vagy k\u00fcl\u00f6nb\u00f6z\u0151 hibak\u00f6vet\u0151kben, vagy integr\u00e1ljunk a szinkron \/ aszinkron folyamathoz a CI \/ CD-ben.<\/p>\n<h2>F\u0151bb tanuls\u00e1gok<\/h2>\n<p>\n<b>Az eszk\u00f6z\u00f6k nem a legfontosabbak.<\/b> El\u0151sz\u00f6r \u00e1tgondolni a folyamatot \u2013 csak ut\u00e1na bevezetni az eszk\u00f6z\u00f6ket. Az eszk\u00f6z\u00f6k j\u00f3k, de dr\u00e1g\u00e1k, ez\u00e9rt \u00e9rdemes a folyamatra koncentr\u00e1lni, \u00e9s fel\u00e1ll\u00edtani az egy\u00fcttm\u0171k\u00f6d\u00e9st \u00e9s meg\u00e9rt\u00e9st a fejleszt\u00e9s \u00e9s a biztons\u00e1g k\u00f6z\u00f6tt. A biztons\u00e1g szempontj\u00e1b\u00f3l \u2013 nem sz\u00fcks\u00e9ges mindent meg\u00e1ll\u00edtani. A fejleszt\u00e9s szempontj\u00e1b\u00f3l \u2013 ha van valami hihetetlen\u00fcl kritikus, azt kezelni kell, nem pedig szemet hunyni a probl\u00e9ma felett.<\/p>\n<p><b>A term\u00e9k min\u0151s\u00e9ge<\/b>\u00a0<b>\u2013 k\u00f6z\u00f6s c\u00e9l<\/b> a biztons\u00e1g \u00e9s a fejleszt\u00e9s szempontj\u00e1b\u00f3l. Egy k\u00f6z\u00f6s c\u00e9lt szolg\u00e1lunk, hogy minden rendben m\u0171k\u00f6dj\u00f6n, \u00e9s elker\u00fclj\u00fck a reput\u00e1ci\u00f3s kock\u00e1zatokat \u00e9s a p\u00e9nz\u00fcgyi vesztes\u00e9geket. \u00c9ppen ez\u00e9rt n\u00e9pszer\u0171s\u00edtj\u00fck a DevSecOps, SecDevOps megk\u00f6zel\u00edt\u00e9st, hogy jav\u00edtsuk a kommunik\u00e1ci\u00f3t \u00e9s a term\u00e9k min\u0151s\u00e9g\u00e9t.<\/p>\n<p><b>Kezdje azzal, ami m\u00e1r megvan<\/b>: k\u00f6vetelm\u00e9nyek, architekt\u00fara, r\u00e9szleges ellen\u0151rz\u00e9sek, k\u00e9pz\u00e9sek, ir\u00e1nyelvek. Nem sz\u00fcks\u00e9ges az \u00f6sszes gyakorlatot azonnal alkalmazni minden projektre \u2014 <b>haladjon iter\u00e1ci\u00f3nk\u00e9nt<\/b>. Nincs egyetlen standard \u2014 <b>k\u00eds\u00e9rletezzen<\/b> \u00e9s pr\u00f3b\u00e1ljon ki k\u00fcl\u00f6nb\u00f6z\u0151 megk\u00f6zel\u00edt\u00e9seket \u00e9s megold\u00e1sokat.<\/p>\n<p><b>Az IB hib\u00e1k \u00e9s a funkcion\u00e1lis hib\u00e1k k\u00f6z\u00f6tt egyenl\u0151s\u00e9g jel \u00e1ll.<\/b>.<\/p>\n<p><b>Automatiz\u00e1ljon mindent<\/b>, ami mozog. Minden, ami nem mozog \u2014 mozgassa \u00e9s automatiz\u00e1lja. Ha valamit k\u00e9zzel v\u00e9geznek, az nem j\u00f3 folyamat. Lehet, hogy \u00e9rdemes \u00fajragondolni \u00e9s azt is automatiz\u00e1lni.<\/p>\n<p>Ha az IB csapat m\u00e9rete kicsi \u2014 <b>haszn\u00e1lja a Security Championokat.<\/b>.<\/p>\n<p>Lehets\u00e9ges, hogy amit mondtam, nem felel meg \u00d6nnek, \u00e9s kital\u00e1l valami saj\u00e1tot \u2014 \u00e9s ez rendben van. De\u00a0<b>v\u00e1lassza ki az eszk\u00f6z\u00f6ket, a saj\u00e1t folyamataira vonatkoz\u00f3 k\u00f6vetelm\u00e9nyek alapj\u00e1n<\/b>. Ne n\u00e9zze, mit mond a k\u00f6z\u00f6ss\u00e9g, hogy ez az eszk\u00f6z rossz, m\u00edg az j\u00f3. Lehets\u00e9ges, hogy az \u00d6n term\u00e9k\u00e9n a helyzet \u00e9ppen ellenkez\u0151.<\/p>\n<p><b>K\u00f6vetelm\u00e9nyek az eszk\u00f6z\u00f6kkel szemben.<\/b><\/p>\n<ul>\n<li>Alacsony hamis pozit\u00edv ar\u00e1ny.\n<\/li>\n<li>Megfelel\u0151 elemz\u00e9si id\u0151.\n<\/li>\n<li>K\u00f6nny\u0171 haszn\u00e1lhat\u00f3s\u00e1g.\n<\/li>\n<li>Integr\u00e1ci\u00f3k el\u00e9rhet\u0151s\u00e9ge.\n<\/li>\n<li>A term\u00e9k fejleszt\u00e9si \u00fctemterv\u00e9nek meg\u00e9rt\u00e9se.\n<\/li>\n<li>Az eszk\u00f6z\u00f6k testreszab\u00e1s\u00e1nak lehet\u0151s\u00e9ge.\n<\/li>\n<\/ul>\n<p><\/p>\n<blockquote><p>J\u00fari el\u0151ad\u00e1s\u00e1t az egyik legjobbnak v\u00e1lasztott\u00e1k a DevOpsConf 2018-on. Ha szeretne m\u00e9g t\u00f6bb \u00e9rdekes \u00f6tlettel \u00e9s gyakorlati esettanulm\u00e1nnyal tal\u00e1lkozni, j\u00f6jj\u00f6n el m\u00e1jus 27-28-\u00e1n Szk\u00f3lkov\u00f3ba a\u00a0<noindex><a rel=\"nofollow\" href=\"https:\/\/devopsconf.io\/moscow-rit\/2019\">DevOpsConf<\/a><\/noindex> keretein bel\u00fcl <noindex><a rel=\"nofollow\" href=\"https:\/\/ritfest.ru\/2019\">RIT++ fesztiv\u00e1lra.<\/a><\/noindex>. \u00c9s m\u00e9g jobb, ha k\u00e9sz megosztani tapasztalatait, akkor <noindex><a rel=\"nofollow\" href=\"https:\/\/conf.ontico.ru\/lectures\/propose\/?conference=dc2019-rit\">ny\u00fajtson be p\u00e1ly\u00e1zatot<\/a><\/noindex> az el\u0151ad\u00e1sra \u00e1prilis 21-ig.<\/p><\/blockquote>\n<p>Forr\u00e1s: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/oleg-bunin\/blog\/448488\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0423\u00a0\u043d\u0430\u0441 \u0431\u044b\u043b\u043e 2\u00a0\u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u0430 \u043a\u043e\u0434\u0430, 4\u00a0\u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430 \u0434\u043b\u044f \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0441\u0432\u043e\u0438 \u043f\u043e\u0434\u0435\u043b\u043a\u0438 \u0438\u00a0250\u00a0\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432. \u041d\u0435\u00a0\u0442\u043e, \u0447\u0442\u043e\u0431\u044b \u044d\u0442\u043e \u0432\u0441\u0451 \u0431\u044b\u043b\u043e \u043d\u0443\u0436\u043d\u043e \u0432\u00a0\u0442\u0435\u043a\u0443\u0449\u0435\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435, \u043d\u043e\u00a0\u0440\u0430\u0437 \u043d\u0430\u0447\u0430\u043b \u0432\u043d\u0435\u0434\u0440\u044f\u0442\u044c DevSecOps, \u0442\u043e \u043d\u0430\u0434\u043e\u00a0\u0438\u0434\u0438 \u0434\u043e\u00a0\u043a\u043e\u043d\u0446\u0430. \u0418\u0441\u0442\u043e\u0447\u043d\u0438\u043a. \u0410\u0432\u0442\u043e\u0440\u044b \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436\u0435\u0439: \u0414\u0436\u0430\u0441\u0442\u0438\u043d \u0420\u043e\u0439\u043b\u0430\u043d\u0434 \u0438\u00a0\u0414\u044d\u043d \u0425\u0430\u0440\u043c\u043e\u043d. \u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 SecDevOps? \u0410\u00a0DevSecOps? \u0412\u00a0\u0447\u0435\u043c \u043e\u0442\u043b\u0438\u0447\u0438\u044f? Application Security\u00a0\u2014 \u043e\u00a0\u0447\u0451\u043c \u044d\u0442\u043e? \u041f\u043e\u0447\u0435\u043c\u0443 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435\u00a0\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442? \u041d\u0430\u00a0\u0432\u0441\u0435 \u044d\u0442\u0438 \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u0437\u043d\u0430\u0435\u0442 \u043e\u0442\u0432\u0435\u0442 \u042e\u0440\u0438\u0439 \u0428\u0430\u0431\u0430\u043b\u0438\u043d [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":23720,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-31852","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0423 \u043d\u0430\u0441 \u0431\u044b\u043b\u043e 2 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u0430 \u043a\u043e\u0434\u0430, 4 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430 \u0434\u043b\u044f \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0441\u0432\u043e\u0438 \u043f\u043e\u0434\u0435\u043b\u043a\u0438 \u0438 250 \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/strah-i-nenavist-devsecops\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"hu_HU\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0421\u0442\u0440\u0430\u0445 \u0438 \u043d\u0435\u043d\u0430\u0432\u0438\u0441\u0442\u044c DevSecOps | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0423 \u043d\u0430\u0441 \u0431\u044b\u043b\u043e 2 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u0430 \u043a\u043e\u0434\u0430, 4 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430 \u0434\u043b\u044f \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0441\u0432\u043e\u0438 \u043f\u043e\u0434\u0435\u043b\u043a\u0438 \u0438 250 \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/strah-i-nenavist-devsecops\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T18:43:30+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:43:30+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47 F\u00e9lelem \u00e9s gy\u0171l\u00f6let DevSecOps | ProHoster","description":"K\u00e9t k\u00f3danaliz\u00e1l\u00f3, n\u00e9gy dinamikus tesztel\u0151 eszk\u00f6z, saj\u00e1t k\u00e9sz\u00edtm\u00e9nyeink \u00e9s 250 szkript\u00fcnk volt.","canonical_url":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/strah-i-nenavist-devsecops","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"hu_HU","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0421\u0442\u0440\u0430\u0445 \u0438 \u043d\u0435\u043d\u0430\u0432\u0438\u0441\u0442\u044c DevSecOps | ProHoster","og:description":"\u0423 \u043d\u0430\u0441 \u0431\u044b\u043b\u043e 2 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u0430 \u043a\u043e\u0434\u0430, 4 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430 \u0434\u043b\u044f \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0441\u0432\u043e\u0438 \u043f\u043e\u0434\u0435\u043b\u043a\u0438 \u0438 250 \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432.","og:url":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/strah-i-nenavist-devsecops","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T18:43:30+00:00","article:modified_time":"2019-10-31T18:43:30+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"31852","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 08:08:20","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 18:50:34","updated":"2026-01-21 08:08:20","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/31852","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/comments?post=31852"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/31852\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media\/23720"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media?parent=31852"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/categories?post=31852"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/tags?post=31852"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}