{"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\/et\/blog\/administrirovanie\/strah-i-nenavist-devsecops","title":{"rendered":"Hirm ja vihkamine DevSecOps","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Meil oli 2 koodi anal\u00fcsaatorit, 4 d\u00fcnaamilise testimise t\u00f6\u00f6riista, omatehtud lahendusi ja 250 skripti. Ei, et see k\u00f5ik oleks praeguses protsessis h\u00e4davajalik, kuid kui alustasin DevSecOps'i juurutamist, tuleb minna l\u00f5puni.<\/p>\n<p><img decoding=\"async\" alt=\"Hirm ja vihkamine DevSecOps\" 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\">Allikas<\/a><\/noindex>Isiksuste autorid: Justin Roiland ja Dan Harmon.<\/i><\/p>\n<p>Mis on SecDevOps? Ja DevSecOps? Milles need erinevad? Mis on rakenduste turvalisus? Miks traditsiooniline l\u00e4henemine enam ei toimi? K\u00f5igile nendele k\u00fcsimustele oskab vastata <b>Juri \u0160abalin<\/b> kohast\u00a0<b>Swordfish Security. <\/b>Juri vastab k\u00f5igile k\u00fcsimustele ja anal\u00fc\u00fcsib probleeme, mis tulenevad \u00fcleminekust traditsioonilisest rakenduste turvalisuse mudelist DevSecOps'i protsessile: kuidas \u00f5igesti l\u00e4heneda turvalise arendamise protsessi integreerimisele DevOps'i protsessis ja kuidas mitte midagi katki teha, millised on peamised turvatestimise etapid, milliseid t\u00f6\u00f6riistu kasutada, kuidas need erinevad ja kuidas neid \u00f5igesti seadistada, et v\u00e4ltida takistusi.<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=\"Vaata videot\" 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>Ettekandjast:<\/b> <b>Juri \u0160abalin - <\/b>Chief Security Architect ettev\u00f5ttes <b>Swordfish Security<\/b>. Vastutab SSDL rakendamise eest, samuti rakenduste anal\u00fc\u00fcsit\u00f6\u00f6riistade integreerimise eest \u00fchte arenduse ja testimise \u00f6kos\u00fcsteemi. 7 aastat kogemust infotehnoloogia valdkonnas. Olen t\u00f6\u00f6tanud Alfa-Pank, Sberbank ja Positive Technologiesis, mis arendab tarkvara ja pakub teenuseid. Esineja rahvusvahelistel konferentsidel ZerONights, PHDays, RISSPA, OWASP.<\/p>\n<h2>Rakenduste turvalisus: millest see r\u00e4\u00e4gib?<\/h2>\n<p>\n<b>Rakenduste turvalisus<\/b>\u00a0on turvalisuse haru, mis vastutab rakenduste turvalisuse eest. See ei puuduta infrastruktuuri v\u00f5i v\u00f5rgu turvalisust, vaid seda, mida me kirjutame ja mille kallal arendajad t\u00f6\u00f6tavad \u2014 need on rakenduse vead ja haavatavused.<\/p>\n<p>Valdkond <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.microsoft.com\/ru-ru\/ef\/ef6\/modeling\/designer\/advanced\/edmx\/ssdl-spec\">SDL v\u00f5i SDLC<\/a><\/noindex>\u00a0\u2014 <b>Turvalisuse arenduse eluts\u00fckkel<\/b>\u00a0on Microsofti loodud. Skeemil on toodud kanoniline SDLC mudel, mille peamine eesm\u00e4rk on tagada turvalisus igas arenduse etapis, alates n\u00f5uetest kuni v\u00e4ljaandmise ja tootmisse j\u00f5udmiseni. Microsoft m\u00f5istis, et t\u00f6\u00f6stuses on liiga palju vigu, need muutuvad j\u00e4rjest enamaks ja sellega tuleb midagi ette v\u00f5tta, ning pakkus v\u00e4lja selle l\u00e4henemise, mis sai kanoniliseks.<\/p>\n<p><img decoding=\"async\" alt=\"Hirm ja vihkamine DevSecOps\" src=\"\/wp-content\/uploads\/2019\/04\/466773b9a5bd355419fa1d6d1ddbca66.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nRakenduse turvalisus ja SSDL ei ole suunatud haavatavuste tuvastamisele, nagu sageli arvatakse, vaid nende ennetamisele. Aja jooksul on Microsofti kanoniline l\u00e4henemine paranenud ja arenenud, pakkudes s\u00fcgavat detailset sukeldumist.<\/p>\n<p><img decoding=\"async\" alt=\"Hirm ja vihkamine DevSecOps\" src=\"\/wp-content\/uploads\/2019\/04\/58d3e6aadd30594c018940bcb2a8248b.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKanoniline SDLC on erinevates meetodites, nagu OpenSAMM, BSIMM, OWASP, tugevalt detailsustatud. Meetodid erinevad, kuid \u00fcldiselt on nad sarnased.<\/p>\n<h3>Security Maturity Model<\/h3>\n<p>\nMulle meeldib see k\u00f5ige rohkem <b>BSIMM<\/b>\u00a0\u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/www.bsimm.com\/\">Security Maturity Model<\/a><\/noindex>. Meetodoloogia alus on rakenduse turvalisuse protsessi jagamine neljaks valdkonnaks: juhtimine, teave, SSDL kontaktpunktid ja juurutamine. Igas valdkonnas on 12 praktikat, mis on esitatud 112 tegevusena.<\/p>\n<p><img decoding=\"async\" alt=\"Hirm ja vihkamine DevSecOps\" src=\"\/wp-content\/uploads\/2019\/04\/ae0bbfd0dde335af886282672ed92367.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIgal 112 tegevusel on <b>3 k\u00fcpsuse taset<\/b>: algtaseme, kesktaseme ja edasij\u00f5udnud. K\u00f5iki 12 praktikat saab uurida osade kaupa, valida teile olulisi asju ning m\u00f5ista, kuidas neid rakendada ja j\u00e4rk-j\u00e4rgult lisada elemente, n\u00e4iteks staatilist ja d\u00fcnaamilist koodi anal\u00fc\u00fcsi v\u00f5i koodi \u00fclevaatust. Koostate plaani ja t\u00f6\u00f6tate selle alusel rahulikult valitud tegevuste juurutamise raames.<\/p>\n<h2>Miks DevSecOps<\/h2>\n<p><\/p>\n<blockquote><p>DevOps on suur \u00fcldine protsess, kus tuleb hoolitseda turvalisuse eest.<\/p><\/blockquote>\n<p>\nAlguses <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/DevOps\"><b>DevOps<\/b><\/a><\/noindex> eeldati turvakontrolle. Praktikas olid turvameeskonnad palju v\u00e4iksemad kui praegu ning nad ei osalenud protsessis, vaid tegutsesid kontrolli- ja j\u00e4relevalveorganina, mis seadis n\u00f5udeid ja kontrollis toote kvaliteeti v\u00e4ljaandmise l\u00f5pus. See on klassikaline l\u00e4henemine, mille puhul turvameeskonnad olid arendustegevusest eraldatud ja ei osalenud protsessis.<\/p>\n<p><img decoding=\"async\" alt=\"Hirm ja vihkamine DevSecOps\" src=\"\/wp-content\/uploads\/2019\/04\/1c5958fb123313308bdd92c5471c44da.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPeamine probleem ongi see, et infoturbe lahendused on arendusest eraldatud. Tavaliselt on tegemist mingi infoturbe raami ja selles 2\u20133 suure ja kalliga t\u00f6\u00f6riistaga. Kord aastas saadakse l\u00e4htekood v\u00f5i rakendus, mida tuleb kontrollida, ja kord aastas tehakse <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\">penetratsioonitestid<\/a><\/noindex>. See toob kaasa selle, et turule j\u00f5udmise t\u00e4htajad l\u00fckatakse edasi ning arendajatele langeb suur hulk haavatavusi automaatsete t\u00f6\u00f6riistade kaudu. K\u00f5ike seda on v\u00f5imatu anal\u00fc\u00fcsida ja parandada, kuna isegi eelmistel kuudel ei ole tulemusi \u00fcle vaadatud, kuid n\u00fc\u00fcd on juba uus partii.<\/p>\n<p>Meie ettev\u00f5tte t\u00f6\u00f6s n\u00e4eme, et turvalisus k\u00f5igis valdkondades ja t\u00f6\u00f6stustes m\u00f5istab, et on aeg end \u00fcles k\u00e4\u00e4rida ja arendada koos arendusega \u00fches r\u00fctmis \u2014 selles\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>. DevSecOps'i paradigma sobitub suurep\u00e4raselt paindliku arenduse metoodikaga, sealhulgas rakendamise, toe ja osalusega igas v\u00e4ljaandes ja iteratsioonis.<\/p>\n<p><img decoding=\"async\" alt=\"Hirm ja vihkamine DevSecOps\" src=\"\/wp-content\/uploads\/2019\/04\/cf258bd7efc82ff27787b5029cf2f945.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>\u00dcleminek DevSecOps'ile<\/h2>\n<p>\nTurvalise arenduse eluts\u00fckli k\u00f5ige olulisem s\u00f5na on <b>\u201eprotsess\u201c<\/b>. Te peate seda m\u00f5istma, enne kui m\u00f5tlema hakata t\u00f6\u00f6riistade ostmisele.<\/p>\n<blockquote><p>Lihtsalt t\u00f6\u00f6riistade lisamine DevOpsi protsessile ei ole piisav \u2014 oluline on suhtlemine ja arusaam protsessi osaliste vahel.<\/p><\/blockquote>\n<p><\/p>\n<h3>Inimesed on olulisemad kui t\u00f6\u00f6riistad<\/h3>\n<p>\nSageli algab turvalise arenduse protsessi planeerimine t\u00f6\u00f6riista valimise ja ostmisega, kuid l\u00f5ppeb katsetega integreerida t\u00f6\u00f6riista olemasolevasse protsessi, mis j\u00e4etakse katseteks. See toob kaasa kurvad tagaj\u00e4rjed, kuna k\u00f5igil t\u00f6\u00f6riistadel on omad erip\u00e4rad ja piirangud.<\/p>\n<p>Levinud olukord, kus turvaosakond valis hea, kallima t\u00f6\u00f6riista, millel on laiad v\u00f5imalused, ja tuli arendajate juurde \u2014 et seda protsessi integreerida. Aga ei suuda \u2014 protsess on \u00fcles ehitatud nii, et juba ostetud t\u00f6\u00f6riista piirangud ei sobi praegusesse paradigma.<\/p>\n<blockquote><p>Alustage kirjeldamisest, millist tulemust soovite ja kuidas protsess v\u00e4lja n\u00e4eb. See aitab m\u00f5ista t\u00f6\u00f6riista ja turvalisuse rolle protsessis.<\/p><\/blockquote>\n<p><\/p>\n<h3>Alustage juba olemasolust<\/h3>\n<p>\nEnne kallite t\u00f6\u00f6riistade ostmist vaadake, mida teil juba on. Igal ettev\u00f5ttel on arendusele esitatavad turvan\u00f5uded, on kontrolle, penteste \u2014 miks mitte k\u00f5ik see t\u00f5lkida arusaadavasse ja k\u00f5igile mugavasse vormi?<\/p>\n<p>Tavaliselt on n\u00f5uded paberil oleva tomes, mis seisab riiulis. Olime kunagi olukorras, kus tulime ettev\u00f5ttesse protsesside vaatamiseks ja k\u00fcsisime turvan\u00f5uete dokumendi n\u00e4itamist. Spetsialist, kes sellega tegeles, otsis kaua:<\/p>\n<p><i>\u2014 Noh, kuskil m\u00e4rkmetes oli rada, kuhu see dokument oli pandud.<\/i><\/p>\n<p>L\u00f5ppkokkuv\u00f5ttes saime dokumendi alles n\u00e4dala p\u00e4rast.<\/p>\n<p>N\u00f5uete, kontrollide ja muu jaoks looge n\u00e4iteks leht, mis asub\u00a0<b>Confluence<\/b>\u00a0\u2014 see on k\u00f5igile mugav.<\/p>\n<blockquote><p>Lihtsam on \u00fcmber vormindada seda, mis juba olemas on, ja kasutada seda alustamiseks.<\/p><\/blockquote>\n<p><\/p>\n<h3>Kasutage Security Champions <\/h3>\n<p>\nTavaliselt t\u00f6\u00f6tab keskmises ettev\u00f5ttes 100\u2013200 arendaja kohta \u00fcks turbeekspert, kes t\u00e4idab mitmeid \u00fclesandeid ja f\u00fc\u00fcsiliselt ei suuda k\u00f5ike kontrollida. Isegi kui ta p\u00fc\u00fcab oma parima, ei suuda ta \u00fcksi kontrollida k\u00f5iki koode, mida arendus genereerib. Selliste juhtude tarvis on v\u00e4lja t\u00f6\u00f6tatud kontseptsioon \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/www.owasp.org\/index.php\/Security_Champions\"><b>Security Champions<\/b><\/a><\/noindex>.<\/p>\n<blockquote><p>Security Champions on inimene arendustiimis, kellel on huvi teie toote turvalisuse vastu.<\/p><\/blockquote>\n<p><img decoding=\"async\" alt=\"Hirm ja vihkamine DevSecOps\" src=\"\/wp-content\/uploads\/2019\/04\/c67728db4a6e34407da199387eba2bb4.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSecurity Champion on sissep\u00e4\u00e4s arendustiimi ning turvalisuse evangelist \u00fches isikus.<\/p>\n<p>Tavaliselt, kui turbeekspert tuleb arendustiimi ja osutab veale koodis, saab ta \u00fcllatava vastuse:<\/p>\n<p><i>\u2014 Kes teie olete? Ma n\u00e4en teid esmakordselt. Mul on k\u00f5ik h\u00e4sti \u2014 minu vanem koleeg pani code review's 'apply', me l\u00e4heme edasi!<\/i><\/p>\n<p>See on t\u00fc\u00fcpiline olukord, sest usaldus vanemate v\u00f5i lihtsalt meeskonnakaaslaste vastu, kellega arendaja pidevalt t\u00f6\u00f6alaselt suhtleb ja kes osalevad koodi \u00fclevaatuses, on palju suurem. Kui veateate ja tagaj\u00e4rgede eest vastutab turvamees, siis tema s\u00f5na kaalub rohkem.<\/p>\n<p>Arendajad tunnevad oma koodi paremini kui \u00fckski turvamees. Inimesele, kellel on v\u00e4hemalt 5 projekti staatilisest anal\u00fc\u00fcsist, on tavaliselt keeruline meeles pidada k\u00f5iki n\u00fcansse. Turvameistrid tunnevad oma toodet: mida miski m\u00f5jutab ja millele esmalt t\u00e4helepanu p\u00f6\u00f6rata \u2013 nad on t\u00f5husamad.<\/p>\n<p>Seega m\u00f5elge turvameistrite rakendamisele ja turvameeskonna m\u00f5ju suurendamisele. Isegi turvameister saab sellest kasu: professionaalne areng uues valdkonnas, tehnilise silmaringi laiendamine, tehniliste, juhtimis- ja liidrioskuste arendamine, turuv\u00e4\u00e4rtuse t\u00f5stmine. See on teatud element sotsiaalsest inseneriteadusest, teie 'silmad' arendusmeeskonnas.<\/p>\n<h2>Testimise etapid<\/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\">Paradigma 20 80<\/a><\/noindex>\u00a0\u00fctleb, et 20% pingutustest toob 80% tulemustest. Need 20% on rakenduste anal\u00fc\u00fcsi praktikad, mida saab ja tuleb automatiseerida. Selliste tegevuste n\u00e4ideteks on staatiline anal\u00fc\u00fcs \u2014 <b>SAST<\/b>, d\u00fcnaamiline anal\u00fc\u00fcs \u2014 <b>DAST,<\/b> ja\u00a0<b>Open Source kontroll<\/b>. R\u00e4\u00e4gin l\u00e4hemalt tegevustest ning t\u00f6\u00f6riistadest, millega me tavaliselt silmitsi seisame, kui need protsessi rakendame, ja kuidas seda \u00f5igesti teha.<\/p>\n<p><img decoding=\"async\" alt=\"Hirm ja vihkamine DevSecOps\" src=\"\/wp-content\/uploads\/2019\/04\/db720e0879cdd1ed818461ffb5f927da.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>T\u00f6\u00f6riistade p\u00f5hiprobleemid<\/h3>\n<p>\nT\u00f5stan esile k\u00f5iki t\u00f6\u00f6riistu m\u00f5jutavad probleemid, mis vajavad t\u00e4helepanu. Uurin neid p\u00f5hjalikumalt, et hiljem mitte korduda.<\/p>\n<p><b>Pikaajaline anal\u00fc\u00fcs. <\/b>Kui kommitamisest tootmisse minekuks kulub 30 minutit k\u00f5igile testidele ja kogumisele, siis infoturbe kontrollid v\u00f5tavad terve p\u00e4eva. Nii ei saa protsessi pidurdada. Arvestage seda omadust ja tehke j\u00e4reldusi.<\/p>\n<p><b>Korke vale negatiivne v\u00f5i vale positiivne m\u00e4\u00e4r. <\/b>K\u00f5ik tooted on erinevad, k\u00f5ik kasutavad erinevaid raamistikke ja oma koodikirjutamise stiili. Erinevad koodibasid ja tehnoloogiad v\u00f5ivad n\u00e4idata erinevat vale negatiivsete ja vale positiivsete m\u00e4\u00e4rasid. Seega vaadake, mis t\u00e4pselt on\u00a0<b>teie<\/b> ettev\u00f5ttes ja <b>teie<\/b> rakendused n\u00e4itavad head ja usaldusv\u00e4\u00e4rset tulemust.<\/p>\n<p><b>Ei ole integratsioone olemasolevate t\u00f6\u00f6riistadega.<\/b>. Vaadake t\u00f6\u00f6riistu integratsioonide vaatenurgast, mida juba kasutate. N\u00e4iteks, kui teil on Jenkins v\u00f5i TeamCity, kontrollige t\u00f6\u00f6riistade integratsiooni just selle tarkvaraga, mitte GitLab CI-ga, mida te ei kasuta.<\/p>\n<p><b>Kohandamise puudumine v\u00f5i \u00fcleliigne keerukus. <\/b>Kui t\u00f6\u00f6riistal ei ole API-d, siis miks ta vajalik on? K\u00f5ik, mida saab teha liideses, peaks olema saadaval ka API kaudu. Ideaalis peaks t\u00f6\u00f6riistal olema kohandamisv\u00f5ime kontrollide jaoks.<\/p>\n<p><b>Toote arenduse Roadmap'i puudumine. <\/b>Arendus ei seisa paigal, me kasutame alati uusi raamistikke ja funktsioone, kirjutame vana koodi uutele keeltele \u00fcmber. Soovime olla kindlad, et t\u00f6\u00f6riist, mille ostame, toetab uusi raamistikke ja tehnoloogiaid. Seet\u00f5ttu on oluline teada, et tootest on olemas t\u00f5eline ja korrektne <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> arendamiseks.<\/p>\n<h3>Protsessi ise\u00e4rasused<\/h3>\n<p>\nLisaks t\u00f6\u00f6riistade omadustele tuleb arvesse v\u00f5tta ka arendusprotsessi erip\u00e4ra. N\u00e4iteks arendamise segamine on t\u00fc\u00fcpiline viga. Vaadakem, milliseid muid omadusi tuleb arvesse v\u00f5tta ja millele turvameeskond peaks t\u00e4helepanu p\u00f6\u00f6rama.<\/p>\n<p>Et mitte rikkuda arendus- ja v\u00e4ljalasket\u00e4htaegu, looge <b>erinevad reeglid<\/b> ja erinevad <b>show stoppers\u00a0<\/b>\u2014 kriteeriumid, mis peatavad ehitamisprotsessi, kui avastatakse haavatavusi \u2014 <b>erinevates keskkondades<\/b>. N\u00e4iteks m\u00f5istame, et praegune haru suundub arendajate stendi v\u00f5i UAT-i, seega ei peata me ega \u00fctle:<\/p>\n<p><i>\u2014 Teil on siin haavatavusi, te ei tohi edasi liikuda!<\/i><\/p>\n<p>Sellel etapil on oluline \u00f6elda arendajatele, et esinevad turvaprobleemid, millele tuleks t\u00e4helepanu p\u00f6\u00f6rata.<\/p>\n<p><b>Haavatavuste olemasolu ei ole takistus edasiseks testimiseks<\/b>: k\u00e4sitsi, integreerimis- v\u00f5i manuaalselt. Teiselt poolt peame leidma viisi, kuidas toote turvalisust parandada, et arendajad ei ignoreeriks turvameeskonna leidmisi. Seet\u00f5ttu k\u00e4itume m\u00f5nikord nii: stendil, kui see viiakse arenduskeskkonda, lihtsalt teavitame arendust:<\/p>\n<p><i>\u2014 Pois, teil on probleeme, palun p\u00f6\u00f6rake neile t\u00e4helepanu.<\/i><\/p>\n<p>UAT etapis n\u00e4itame taas haavatavuste hoiatusi, ja kui j\u00f5uame tootmisse, \u00fctleme:<\/p>\n<p><i>\u2014 Pois, oleme mitu korda hoiatanud, te ei teinud midagi \u2014 sellega teid ei lasta v\u00e4lja.<\/i><\/p>\n<p>Kui r\u00e4\u00e4kida koodist ja d\u00fcnaamikast, tuleb n\u00e4idata ja hoiatada ainult nende funktsioonide ja koodi eest, mis on just selles funktsioonis kirjutatud. Kui arendaja t\u00f5ukab nuppu 3 pikslit ja me \u00fctleme talle, et tal on SQL-i s\u00fcstimisprobleem ja seega peab kiiresti parandama \u2014 see pole \u00f5ige. Vaadake ainult seda, mis on praegu kirjutatud, ja nende muudatuste \u00fcle, mis rakendusse tulevad.<\/p>\n<p>Oletame, et meil on mingisugune funktsionaalne defekt \u2014 see on see, kuidas rakendus ei tohiks t\u00f6\u00f6tada: raha ei kantud \u00fcle, nupule kl\u00f5psamisel ei toimu \u00fcleminekut j\u00e4rgmisele lehele v\u00f5i kaup ei laadita. <b>Turvavead<\/b>\u00a0\u2014 need on samasugused defektid, kuid mitte rakenduse t\u00f6\u00f6 raames, vaid turvalisuse osas. <\/p>\n<blockquote><p>Kuid k\u00f5ik tarkvara kvaliteediprobleemid ei ole turvaprobleemid. Aga k\u00f5ik turvaprobleemid on seotud tarkvara kvaliteediga. Sherif Mansour, Expedia.<\/p><\/blockquote>\n<p>\nKuna k\u00f5ik haavatavused on samuti defektid, peavad nad olema seal, kus on k\u00f5ik arendusdefektid. Seega unustage aruanded ja hirmutavad PDF-dokumendid, mida keegi ei loe.<\/p>\n<p><img decoding=\"async\" alt=\"Hirm ja vihkamine DevSecOps\" src=\"\/wp-content\/uploads\/2019\/04\/e54e64658a3882bdc68a48c6ef426746.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKui ma t\u00f6\u00f6tasin ettev\u00f5ttes, mis tegeles arendusega, sain ma aruande staatilisest anal\u00fc\u00fcsist. Avasin selle, \u0161okeerisin, keetsin kohvi, sirvisin 350 lehte, sulgesin selle ja l\u00e4ksin edasi t\u00f6\u00f6tama. <b>Suured aruanded on surnud aruanded<\/b>. Tavaliselt ei l\u00e4he need kuhugi, kirjad kustutatakse, unustatakse, kaotatakse v\u00f5i \u00e4ri \u00fctleb, et nad v\u00f5tavad riske.<\/p>\n<p>Mida teha? Kinnitatud defektid, mis leiti, muudetakse lihtsalt arendusele mugavaks vormiks, n\u00e4iteks kogutakse backlog'i Jira-s. Defektid prioriseeritakse ja k\u00f5rvaldatakse prioriteedi j\u00e4rjekorras koos funktsionaalsete defektide ja testide defektidega.<\/p>\n<h2>Statsionaarne anal\u00fc\u00fcs - SAST<\/h2>\n<p>\n<b>See on koodi anal\u00fc\u00fcs haavatavuste tuvastamiseks<\/b>, kuid see ei ole sama mis SonarQube. Me ei kontrolli mitte ainult mustrite v\u00f5i stiili j\u00e4rgi. Anal\u00fc\u00fcsis rakendatakse mitmeid l\u00e4henemisviise: haavatavuste puu,\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>, konfiguratsioonifailide anal\u00fc\u00fcsimine. See k\u00f5ik puudutab otseselt koodi.<\/p>\n<p><b>Meetodi eelised<\/b>: <b>haavatavuste tuvastamine koodi varases arendusetapis<\/b>, kui veel ei ole stende ega valmis t\u00f6\u00f6riistu, ja<b>\u00a0v\u00f5imalus inkrementaalseks skaneerimiseks<\/b>: skaneerimine koodijupist, mis on muutunud, ja ainult selle funktsiooni puhul, mille kallal me praegu t\u00f6\u00f6tame, mis v\u00e4hendab skaneerimise aega.<\/p>\n<p><b>Miinused<\/b>\u00a0\u2014 on vajalikud keelte toetuse puudumine.<\/p>\n<p><b>Vajalikud integratsioonid, <\/b>mis peaksid olema t\u00f6\u00f6riistades, minu subjektiivse arvamuse kohaselt:<\/p>\n<ul>\n<li>Integratsioonit\u00f6\u00f6riist: Jenkins, TeamCity ja Gitlab CI.\n<\/li>\n<li>Arenduskeskkond: Intellij IDEA, Visual Studio. Arendajal on mugavam mitte navigeerida arusaamatusse liidesesse, mida tuleb veel meeles pidada, vaid n\u00e4ha oma t\u00f6\u00f6 kohas k\u00f5iki vajalikke integratsioone ja leitud haavatavusi.\n<\/li>\n<li>Koodikontroll: SonarQube ja k\u00e4sitsi \u00fclevaatus.\n<\/li>\n<li>Defektide j\u00e4lgijad: Jira ja Bugzilla.\n<\/li>\n<\/ul>\n<p>\nPildil on m\u00f5ned parimad esindajad staatilisest anal\u00fc\u00fcsist.<\/p>\n<p><img decoding=\"async\" alt=\"Hirm ja vihkamine DevSecOps\" src=\"\/wp-content\/uploads\/2019\/04\/bab3420874ac090d4d107edb0d2b857b.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nOluline on mitte t\u00f6\u00f6riistad, vaid protsess, seega on olemas avatud l\u00e4htekoodiga lahendused, mis sobivad protsessi katsetamiseks.<\/p>\n<p><img decoding=\"async\" alt=\"Hirm ja vihkamine DevSecOps\" src=\"\/wp-content\/uploads\/2019\/04\/4f2c278922c291b15922bc5748f87dc3.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSAST avatud allikas ei tuvastada tohutul hulgal haavatavusi ega keerulisi andmevooge, kuid nende kasutamine protsessi \u00fclesehitamisel on vajalik. Need aitavad m\u00f5ista, kuidas protsess kujundatakse, kes vastutab vigade eest, kes raportit koostab, ja kes aru annab. Kui soovite alustada oma koodi turvaprotsessi rajamist, kasutage avatud allika lahendusi.<\/p>\n<p>Kuidas seda integreerida, kui olete teel alguses, ja teil pole midagi: ei CI, ei Jenkins, ei TeamCity? Vaatame integraatioone protsessis.<\/p>\n<h3>Integratsioon CVS-i tasemel<\/h3>\n<p>\nKui teil on Bitbucket v\u00f5i GitLab, siis saate teha integratsiooni tasemel <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/CVS\">Concurrent Versions System<\/a><\/noindex>.<\/p>\n<p><b>S\u00fcndmuse p\u00f5hjal<\/b>\u00a0\u2014 pull request, commit. Te skaneerite koodi ja build'i staatuse juures n\u00e4itate, kas turvaskaneerimine on l\u00e4bitud v\u00f5i mitte.<\/p>\n<p><b>Tagasiside. <\/b>Ilmselgelt on tagasiside alati vajalik. Kui lihtsalt teostate turvapoolel \u00fclesande, panete selle k\u00f5ik karpi ja ei r\u00e4\u00e4gi sellest kellelegi ning kuu l\u00f5pus viskate v\u00e4lja hulga vigu \u2014 see ei ole \u00f5ige ja ei ole hea.<\/p>\n<h3>Integraatsioon koodivaatamise s\u00fcsteemiga<\/h3>\n<p>\nKord, kui me seadsime oluliste projektide vahel AppSec tehnilise kasutaja vaikerevision\u00e4\u00e4riks. Olenemata sellest, kas uues koodis on vigu v\u00f5i mitte, m\u00e4\u00e4rab pull request\u2019iga revisjonifond staatuse 'accept' v\u00f5i 'need work' \u2014 kas k\u00f5ik on OK v\u00f5i tuleb midagi t\u00e4iendada koos linkidega, mida t\u00e4pselt parandada. Integreerimisel versiooniga, mis l\u00e4heb tootmisse, oli meil merge\u2019i keelamine, kui turvatest ei olnud l\u00e4bitud. Seda rakendati k\u00e4sitsi koodivaatamisel ja teised protsessi osalejad n\u00e4gid staatuseid, mis olid seotud turvaprotsessiga.<\/p>\n<h3>Integreerimine SonarQube'iga<\/h3>\n<p>\nPaljusid huvitab <noindex><a rel=\"nofollow\" href=\"https:\/\/de.wikipedia.org\/wiki\/Quality_Gate\">quality gate<\/a><\/noindex> koodi kvaliteedi osas. Siin on asi sama \u2014 saame luua samad gates ainult SAST t\u00f6\u00f6riistade jaoks. Oleme sama liidesega, sama quality gate\u2019iga, lihtsalt selle nimi on <b>security gate<\/b>. Ja samuti, kui teil on SonarQube\u2019i kasutamise protsess seadistatud, saate k\u00f5ik sinna rahulikult integreerida.<\/p>\n<h3>Integreerimine CI tasemel<\/h3>\n<p>\nSiin on k\u00f5ik ka \u00fcsna lihtne:<\/p>\n<ul>\n<li><b>\u00dchel tasemel automatiseeritud testimisega<\/b>, unit-testidega.\n<\/li>\n<li><b>Arendusprotsessi etappide jagamine<\/b>: dev, test, prod. V\u00f5ib kasutada erinevaid reeglite kogumeid v\u00f5i erinevaid failitingimusi: peatame kogumise, ei peata kogumist.\n<\/li>\n<li><b>S\u00fcnkroonne\/As\u00fcnkroonne k\u00e4ivitamine<\/b>. Ootame testide turvajuhtimise l\u00f5puleviimist v\u00f5i ei oota. See t\u00e4hendab, et me lihtsalt k\u00e4ivitasime need ja liigume edasi, seej\u00e4rel saame statuseni, et k\u00f5ik on h\u00e4sti v\u00f5i halvasti.\n<\/li>\n<\/ul>\n<p>\nSee k\u00f5ik on ideaalses roosas maailmas. Reaalses elus nii ei ole, aga me p\u00fc\u00fcame. Turvaskanneerimise tulemuseks peab olema sarnane tulemusele, mis saame \u00fche\u00fcksuste testidest.<\/p>\n<p>N\u00e4iteks v\u00f5tsime suure projekti ja otsustasime, et n\u00fc\u00fcd hakkame selle SAST\u2019iga skanneerima \u2014 OK. Panime selle projekti SAST-i, see andis meile 20 000 haavatavust ja me v\u00f5tsime seej\u00e4rel otsuse, et k\u00f5ik on h\u00e4sti. 20 000 haavatavust on meie tehniline v\u00f5lg. Paneme v\u00f5la karpi, hakkame aeglaselt lahendama ja registreerime vead veat\u00f6\u00f6tlejatesse. Palgake ettev\u00f5te, teeme k\u00f5ik ise v\u00f5i aitavad meid Security Champions \u2014 ja tehniline v\u00f5lg hakkab v\u00e4henema.<\/p>\n<p>Kuid k\u00f5ik uued haavatavused uues koodis peavad olema k\u00f5rvaldatud samamoodi nagu vead \u00fchik- v\u00f5i automaatkatsetes. \u00dctleme nii, et koostamine k\u00e4ivitus, testiti, kaks testi kukkus ja kaks testi seonduvalt turvalisusele. OK - l\u00e4ksime vaatasime, mis juhtus, parandasime \u00fcht, parandasime teist, j\u00e4rgmine kord testisime - k\u00f5ik on h\u00e4sti, uusi haavatavusi ei ilmunud ja testid ei kukkunud l\u00e4bi. Kui see \u00fclesanne on s\u00fcgavam ja on vaja sellega head \u00fclevaadet saada, v\u00f5i kui haavatavuste parandused m\u00f5jutavad suuri osi, mis on kapoti all: avame vea defekti j\u00e4lgijasse, see prioriseeritakse ja parandatakse. Kahjuks ei ole maailm ideaalne ja testid kukuvad vahel l\u00e4bi.<\/p>\n<p>N\u00e4ide turvav\u00e4ravast - analoog kvaliteediv\u00e4ravale, kus on olemas ja palju haavatavusi koodis.<\/p>\n<p><img decoding=\"async\" alt=\"Hirm ja vihkamine DevSecOps\" src=\"\/wp-content\/uploads\/2019\/04\/eb30d3c7988b28c2cb25e9656871ec96.png\" style=\"display:block;margin: 0 auto;\" \/>Integreerime SonarQube'iga - plugina paigaldamine on v\u00e4ga mugav ja \u00e4ge.<\/p>\n<h3>Integratsioon arenduskeskkonnaga<\/h3>\n<p>\n<b>Integreerimise v\u00f5imalused:<\/b><\/p>\n<ul>\n<li>Skaneerimise k\u00e4ivitamine arenduskeskkonnas juba enne p\u00fchendamist.\n<\/li>\n<li>Tulemuste vaatamine.\n<\/li>\n<li>Tulemuste anal\u00fc\u00fcs.\n<\/li>\n<li>S\u00fcnkroniseerimine serveriga.\n<\/li>\n<\/ul>\n<p>\nNii n\u00e4eb serverist tulemuste saamine v\u00e4lja.<\/p>\n<p><img decoding=\"async\" alt=\"Hirm ja vihkamine DevSecOps\" src=\"\/wp-content\/uploads\/2019\/04\/270d4af76fddc0ceebca908c7d3835b8.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMeie arenduskeskkonnas <noindex><a rel=\"nofollow\" href=\"https:\/\/www.jetbrains.com\/idea\/\">Intellij IDEA<\/a><\/noindex> ilmub ilmub t\u00e4iendav punkt, mis teatab, et skaneerimise ajal leiti selliseid haavatavusi. Koodiga saab kohe parandada, vaadata soovitusi ja\u00a0<noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Control-flow_graph\">Flow Graph<\/a><\/noindex>. K\u00f5ik see on paigutatud arendaja t\u00f6\u00f6kohale, mis on v\u00e4ga mugav \u2014 ei pea liikuma teistele linkidele ja vaatama midagi lisaks.<\/p>\n<h2>Avatud l\u00e4htekood<\/h2>\n<p>\nSee on minu lemmikteema. K\u00f5ik kasutavad Open Source raamatukogusid \u2014 miks kirjutada tohutult toetusi ja jalgrattaid, kui saab v\u00f5tta valmis raamatukogu, kus k\u00f5ik on juba rakendatud?<\/p>\n<p><img decoding=\"async\" alt=\"Hirm ja vihkamine DevSecOps\" src=\"\/wp-content\/uploads\/2019\/04\/05b9cd5a8b269af2a3f59931a0774778.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMuidugi, see on nii, kuid raamatukogud kirjutavad ka inimesed, sisaldavad endas teatud riske ja seal on ka haavatavused, millest perioodiliselt v\u00f5i pidevalt teavitatakse. Seet\u00f5ttu on j\u00e4rgmine samm rakenduse turvalisuses \u2014 avatud l\u00e4htekoodiga komponentide anal\u00fc\u00fcs.<\/p>\n<h3>Avatud l\u00e4htekoodiga anal\u00fc\u00fcs \u2014 OSA<\/h3>\n<p>\nT\u00f6\u00f6riist sisaldab kolme suurt etappi.<\/p>\n<p><b>Haavatavuste leidmine raamatukogudes. <\/b>N\u00e4iteks teab t\u00f6\u00f6riist, et me kasutame mingit raamatukogu, ja et\u00a0<noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/Common_Vulnerabilities_and_Exposures\">CVE<\/a><\/noindex> v\u00f5i on bug-trackerites haavatavusi, mis seonduvad selle versiooni raamatukoguga. Katse seda kasutada toob esile hoiatuse, et raamatukogu on haavatav, ning soovitab kasutada teist versiooni, kus haavatavusi pole.<\/p>\n<p><b>Litsentsipuhastuse anal\u00fc\u00fcs. <\/b>Meil ei ole see veel eriti populaarne, kuid kui te t\u00f6\u00f6tate v\u00e4lismaal, v\u00f5ib seal aeg-ajalt olla tagaj\u00e4rgi avatud l\u00e4htekoodiga komponentide kasutamise eest, mida ei saa kasutada v\u00f5i muuta. Vastavalt raamatukogu litsentsipoliitikale ei saa me seda teha. Kui me seda muutsime ja kasutame, peame oma koodi jagama. Loomulikult ei taha keegi oma toodete koodi jagada, kuid ka sellest on v\u00f5imalik end kaitsta.<\/p>\n<p><b>Komponentide anal\u00fc\u00fcs, mida kasutatakse t\u00f6\u00f6stuslikus keskkonnas. <\/b>Kujutame ette h\u00fcpoteetilist olukorda, kus oleme l\u00f5puks l\u00f5petanud oma mikroteenuse arendamise ja v\u00e4lja andnud viimase versiooni tootmisse. See elab seal suurep\u00e4raselt \u2014 n\u00e4dala, kuu, aasta. Me ei kogu seda, turvakontrolle ei tehta, k\u00f5ik n\u00e4ib hea. Kuid \u00e4kki, kaks n\u00e4dalat p\u00e4rast v\u00e4ljalaskmist, ilmub kriitiline haavatavus avatud l\u00e4htekoodiga komponendis, mida me kasutame just selles versioonis tootmiskeskkonnas. Kui me ei registreeri, mida ja kus me kasutame, siis me seda haavatavust lihtsalt ei n\u00e4e. M\u00f5nes t\u00f6\u00f6riistades on v\u00f5imalus j\u00e4lgida haavatavusi raamatukogudes, mis on praegu tootmises kasutusel. See on v\u00e4ga kasulik.<\/p>\n<p><b>V\u00f5imalused:<\/b><\/p>\n<ul>\n<li>Erinevad poliitikad erinevate arendusetappide jaoks.\n<\/li>\n<li>Komponentide j\u00e4lgimine tootmiskeskkonnas.\n<\/li>\n<li>Raamatukogude kontroll organisatsiooni piirides.\n<\/li>\n<li>Erinevate ehituss\u00fcsteemide ja keelte toetamine.\n<\/li>\n<li>Docker-piltide anal\u00fc\u00fcs.\n<\/li>\n<\/ul>\n<p>\nM\u00f5ned n\u00e4ited valdkonna liidritest, kes tegelevad avatud l\u00e4htekoodi anal\u00fc\u00fcsiga.<\/p>\n<p><img decoding=\"async\" alt=\"Hirm ja vihkamine DevSecOps\" src=\"\/wp-content\/uploads\/2019\/04\/f1b05f86beb4a64f9bf3443963e3603b.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nAinuke tasuta neist on <noindex><a rel=\"nofollow\" href=\"https:\/\/www.owasp.org\/index.php\/OWASP_Dependency_Check\">Dependency-Check<\/a><\/noindex> OWASP-ist. Seda saab esialgu sissel\u00fclitada, et n\u00e4ha, kuidas see t\u00f6\u00f6tab ja mida see toetab. Peamiselt on need k\u00f5ik pilveteenused v\u00f5i kohapeal, kuid nende andmebaasidega saadetakse ikkagi andmeid internetti. Nad ei saada teie raamatukogusid, vaid hash'e v\u00f5i omi v\u00e4\u00e4rtusi, mida nad arvutavad, ning s\u00f5rmej\u00e4lgi enda serverisse, et saada teavet haavatavuste olemasolu kohta.<\/p>\n<h3>Integreerimine protsessi<\/h3>\n<p>\n<b>Teekide kontroll perimeetris<\/b>, mis on alla laaditud v\u00e4lisest allikast. Meil on v\u00e4line ja sisemine repositoorium. N\u00e4iteks Event Centralis on Nexus ja me soovime, et meie sisemises repositooriumis ei oleks k\u00f5rge v\u00f5i kriitilise staatusega haavatavusi. Saame konfigureerida edastusprotsessi, kasutades t\u00f6\u00f6riista Nexus Firewall Lifecycle, nii, et sellised haavatavused k\u00f5rvaldatakse ja ei j\u00f5ua sisemisse repositooriumisse.<\/p>\n<p><b>Integreerimine CI<\/b>. \u00dchtses tasemes automaattestide, \u00fchiktestide ja arendusetappide jagamisega: dev, test, prod. Igal etapil on v\u00f5imalik alla laadida erinevaid raamatukogusid, kasutada k\u00f5ike, kuid kui seal on midagi kriitilist, tasub sellele arendajate t\u00e4helepanu p\u00f6\u00f6rata etapi ajal, mil tullakse turule.<\/p>\n<p><b>Integreerimine artefaktide haldustesse<\/b>: Nexus ja JFrog.<\/p>\n<p><b>Integreerimine arenduskeskkonda. <\/b>Valitud t\u00f6\u00f6riistadel peab olema integreerimine arenduskeskkondadega. Arendajal peab olema oma t\u00f6\u00f6kohtadel juurdep\u00e4\u00e4s skaneerimistulemustele v\u00f5i v\u00f5imalus ise oma koodi haavatavuste osas enne CVS-i komiteerimist skaneerida ja kontrollida.<\/p>\n<p><b>Integreerimine CD-sse. <\/b>See on lahe funktsioon, mis mulle t\u00f5eliselt meeldib ja millest olen juba r\u00e4\u00e4kinud \u2014 uute haavatavuste j\u00e4lgimine tootmiskeskkonnas. See t\u00f6\u00f6tab umbes nii.<\/p>\n<p><img decoding=\"async\" alt=\"Hirm ja vihkamine DevSecOps\" src=\"\/wp-content\/uploads\/2019\/04\/605c638df343db5c47ab36b4dc00f41c.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMeil on <b>Avalikud komponendi hoidlad<\/b>\u00a0\u2014 m\u00f5ningad t\u00f6\u00f6riistad v\u00e4ljast ja meie sisemine repos. Soovime, et seal oleksid ainult trusted components. Kliendi p\u00e4ringu prox\u00fc\u00fcmisel kontrollime, et allalaaditaval teegil ei oleks haavatavusi. Kui see vastab teatud poliitikatele, mille me seame ja mille osas me kindlasti arutame arendusega, siis me ei t\u00f5mba seda ja tuleb tagasiside teise versiooni kasutamiseks. Seega, kui teegis on midagi t\u00f5eliselt kriitilist ja halba, siis arendaja ei saa teegi isegi installimise ajal - las kasutab k\u00f5rgemat v\u00f5i madalamat versiooni.<\/p>\n<ul>\n<li>Build\u2019imise ajal kontrollime, et keegi ei oleks sisse toonud midagi halba, et k\u00f5ik komponendid on ohutud ja keegi ei tooks m\u00e4lupulgaga midagi ohtlikku.\n<\/li>\n<li>Meie repos on ainult trusted components. \n<\/li>\n<li>Deploimisel kontrollime veel kord just paketti: war, jar, DL v\u00f5i Docker-image selle osas, et see vastab poliitikale. \n<\/li>\n<li>Tootmisse minekul j\u00e4lgime, mis toimub t\u00f6\u00f6stuskeskkonnas: kas ilmnevad v\u00f5i ei ilmne kriitilised haavatavused.\n<\/li>\n<\/ul>\n<p><\/p>\n<h2>D\u00fcnaamiline anal\u00fc\u00fcs - DAST<\/h2>\n<p>\nD\u00fcnaamilise anal\u00fc\u00fcsi t\u00f6\u00f6riistad erinevad kardinaalselt k\u00f5ikidest eelnevalt \u00f6eldud asjadest. See on teatud t\u00fc\u00fcpi kasutaja t\u00f6\u00f6 simuleerimine rakendusega. Kui see on veebirakendus, saadame p\u00e4ringuid, imiteerides kliendi tegevust, klikkides nuppudel, edastades vormidest kunstlikke andmeid: tsitaate, sulge, s\u00fcmboleid erinevates kodeeringutes, et n\u00e4ha, kuidas rakendus t\u00f6\u00f6tab ja kuidas see v\u00e4listatud andmeid t\u00f6\u00f6tleb.<\/p>\n<p>Sama s\u00fcsteem v\u00f5imaldab kontrollida mallivigu avatud l\u00e4htekoodides. Kuna DAST ei tea, millist avatud l\u00e4htekoodi me kasutame, lihtsalt viskab see \"kahjulikke\" mustreid ja anal\u00fc\u00fcsib serveri vastuseid:<\/p>\n<p><i>\u2014 Aha, siin on deserialiseerimise probleem, aga siin ei ole.<\/i><\/p>\n<p>Selles peituvad suured riskid, kuna kui teete selle turvatesti samal keskkonnas, mille kallal t\u00f6\u00f6tavad testijad, v\u00f5ivad juhtuda ebameeldivad asjad.<\/p>\n<ul>\n<li>Rakenduse serveri k\u00f5rge koormus.\n<\/li>\n<li>Puuduvad integratsioonid.\n<\/li>\n<li>V\u00f5imalus muuta anal\u00fc\u00fcsitava rakenduse seadeid.\n<\/li>\n<li>Puudub vajalik tehnoloogiate tugi.\n<\/li>\n<li>Konfigureerimise keerukus.\n<\/li>\n<\/ul>\n<p>\nMeil oli olukord, kus me l\u00f5puks k\u00e4ivitasime AppScan'i: ligip\u00e4\u00e4su rakendusele oli keeruline saada, saime 3 kontot ja olime r\u00f5\u00f5msad \u2014 l\u00f5puks saame k\u00f5ik \u00fcle vaadata! K\u00e4ivitasime skanneerimise, ja esimene, mida AppScan tegi \u2014 l\u00e4ks admin-paneeli, klikkis k\u00f5igil nuppudel, muutis poole andmetest ja siis tappis serveri oma <noindex><a rel=\"nofollow\" href=\"https:\/\/www.mailform.io\/\">mailform<\/a><\/noindex>-p\u00e4ringutega. Arendus koos testimisega \u00fctlesid:<\/p>\n<p><i>\u2014 Poisid, teete nalja?! Me andsime teile kontod, aga teie h\u00e4vitasite keskkonna!<\/i><\/p>\n<p>Arvestage v\u00f5imalikke riske. Ideaalis valmistage testimiseks eraldi keskkond, mis oleks v\u00e4hemalt osaliselt eraldatud \u00fclej\u00e4\u00e4nud keskkonnast, ja soovitatav on administraatori paneeli kontrollimine k\u00e4sitsi. See on pentest \u2014 need viimased protsendid pingutust, mida me praegu ei kaalu. <\/p>\n<p>Tasub arvestada, et seda saab kasutada koormustestimise analoogina. Esimeses etapis v\u00f5ib aktiveerida d\u00fcnaamilise skaneerija 10-15 voogudega ja vaadata, mis juhtub, kuid tavaliselt, nagu praktika n\u00e4itab, ei toimu midagi head.<\/p>\n<p>M\u00f5ned ressursid, mida tavaliselt kasutame.<\/p>\n<p><img decoding=\"async\" alt=\"Hirm ja vihkamine DevSecOps\" src=\"\/wp-content\/uploads\/2019\/04\/45a25dbe2a2d053e6ed16d31b6ac53ef.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTasub v\u00e4lja tuua <noindex><a rel=\"nofollow\" href=\"https:\/\/portswigger.net\/burp\">Burp Suite<\/a><\/noindex>\u00a0\u2014 on \"\u0160veitsi nuga\" iga turbeprofessionaali jaoks. Seda kasutavad k\u00f5ik ja see on v\u00e4ga mugav. Hiljuti ilmus uus demoversioon enterprise edition. Kui varem oli see lihtsalt stand-alone utiliit pluginatega, siis n\u00fc\u00fcd t\u00f6\u00f6tavad arendajad l\u00f5puks v\u00e4lja suure serveri, mida saab kasutada mitme agendi haldamiseks. See on suurep\u00e4rane, soovitan proovida.<\/p>\n<h3>Integreerimine protsessi<\/h3>\n<p>\nIntegreerimine toimub piisavalt h\u00e4sti ja lihtsalt: <b>skaneerimise k\u00e4ivitamine p\u00e4rast edukat installimist <\/b>rakendustes ja\u00a0<b>skaneerimine p\u00e4rast edukat integratsiooni testimist<\/b>.<\/p>\n<p>Kui integratsioonid ei t\u00f6\u00f6ta v\u00f5i seal on vaid pistikprogrammid ja mock-funktsioonid, siis pole sellest lihtsalt kasu \u2014 olenemata sellest, mis mustri me saadame, vastab server ikkagi \u00fchtemoodi.<\/p>\n<ul>\n<li>Ideaalne oleks eraldi testimise keskkond.\n<\/li>\n<li>Enne testimise algust m\u00e4rkige \u00fcles logimise j\u00e4rjestus.\n<\/li>\n<li>S\u00fcsteemi haldamise testimine \u2014 ainult k\u00e4sitsi.\n<\/li>\n<\/ul>\n<p><\/p>\n<h2>Protsess<\/h2>\n<p>\n\u00dcldiselt protsessi ja iga t\u00f6\u00f6riista, sealhulgas, T\u00f6\u00f6riistad on erinevad \u2013 \u00fchel t\u00f6\u00f6tab d\u00fcnaamiline anal\u00fc\u00fcs paremini, teisel staatiline, kolmandal OpenSource anal\u00fc\u00fcs, pentestimine v\u00f5i hoopis midagi muud, n\u00e4iteks s\u00fcndmused.\u00a0<noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/Waf\">Waf<\/a><\/noindex>.<\/p>\n<blockquote><p>Iga protsess vajab kontrolli.<\/p><\/blockquote>\n<p>\nProtsessi toimimise m\u00f5istmiseks ja selle parendamiseks tuleb koguda m\u00f5\u00f5dikuid k\u00f5igest, mis k\u00e4eulatuses on, sealhulgas tootmisn\u00e4itajaid, t\u00f6\u00f6riistade m\u00f5\u00f5dikuid ja defektij\u00e4lgijatest.<\/p>\n<p>Iga andmed on kasulikud. Tuleb vaadata eri aspektidest, kus konkreetset t\u00f6\u00f6riista paremini rakendatakse, kus protsess konkreetselt kipub lagunema. V\u00f5ib-olla tasub vaadata arenduse reageerimise aega, et m\u00f5ista, kus protsessi ajas parandada. Mida rohkem andmeid, seda rohkem aspekte saab luua alates k\u00f5rgetasemelistest detailideni iga protsessi kohta.<\/p>\n<p><img decoding=\"async\" alt=\"Hirm ja vihkamine DevSecOps\" src=\"\/wp-content\/uploads\/2019\/04\/93e079b19c4c8189ce6ca4eaec186eed.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKuna k\u00f5igil staatilistel ja d\u00fcnaamilistel anal\u00fcsaatoritel on oma API-d, k\u00e4ivitamise viisid ja p\u00f5him\u00f5tted; \u00fchel on graafikud, teisel ei ole \u2013 me kirjutame t\u00f6\u00f6riista. <b>AppSec Orkestrator<\/b>, mis v\u00f5imaldab luua \u00fchtse sisenemise punkti kogu protsessi jaoks ja hallata seda \u00fchest kohast.<\/p>\n<p>Projektijuhtidel, arendajatel ja turbeinseneridel on \u00fcks sisenemise punkt, kust saab vaadata, mis on k\u00e4imas, seadistada ja alustada skannimist, saada skannimise tulemusi ja esitada n\u00f5udeid. P\u00fc\u00fcame v\u00e4ltida pabereid, muutes k\u00f5ik inimkeelde, mida arendus kasutab - lehed Confluences staatuste ja m\u00f5\u00f5dikute, defektid Jira-s v\u00f5i erinevates defekti j\u00e4lgimise t\u00f6\u00f6riistades, v\u00f5i integreerida s\u00fcnkroonsesse\/aas\u00fcnkroonsesse protsess CI\/CD-s.<\/p>\n<h2>Peamised j\u00e4reldused<\/h2>\n<p>\n<b>T\u00f6\u00f6riistad ei ole peamine.<\/b> Esmalt tuleks l\u00e4bi m\u00f5elda protsess - siis rakendada t\u00f6\u00f6riistu. T\u00f6\u00f6riistad on head, kuid kallid, seega v\u00f5ib alustada protsessist ja seadistada koost\u00f6\u00f6 ja arusaamise arenduse ja turva vahel. Turbe seisukohalt - ei pea 'kinni panema' k\u00f5ike j\u00e4rjest, arenduse seisukohalt - kui midagi on k\u00f5rge mega super kriitiline, siis tuleb see k\u00f5rvaldada, mitte probleemile silma kinni pigistada.<\/p>\n<p><b>Toote kvaliteet<\/b>\u00a0<b>on \u00fchine eesm\u00e4rk<\/b> nii puhul, nii arenduse osas. Me teeme \u00fchte asja, p\u00fc\u00fcdes, et k\u00f5ik toimiks \u00f5igesti ning et ei tekiks mainekaotusi v\u00f5i rahalisi kaotusi. Just seet\u00f5ttu propageerime DevSecOpsi ja SecDevOpsi l\u00e4henemist, et luua suhtlus ja parandada toote kvaliteeti.<\/p>\n<p><b>Alustage olemasolevast<\/b>: n\u00f5uded, arhitektuur, osalised kontrollid, koolitused, juhendmaterjalid. Ei ole vaja kohe rakendada k\u00f5iki praktikaid k\u00f5ikidel projektidel \u2014 <b>liikuge j\u00e4rk-j\u00e4rgult<\/b>. \u00dchtegi standardit ei ole \u2014 <b>katsetage<\/b> proovige erinevaid l\u00e4henemisviise ja lahendusi.<\/p>\n<p><b>Infoturbe defektide ja funktsionaalsete defektide vahel on v\u00f5rdusm\u00e4rk<\/b>.<\/p>\n<p><b>Automatiseerige k\u00f5ik<\/b>, mis liigub. K\u00f5ik, mis ei liigu \u2014 liigutage ja automatiseerige. Kui midagi tehakse k\u00e4sitsi, siis ei ole see protsessi hea osa. V\u00f5ib-olla tasub seda \u00fcle vaadata ja samuti automatiseerida.<\/p>\n<p>Kui infoturbe meeskonna suurus on v\u00e4ike \u2014 <b>kasutage Security Champions<\/b>.<\/p>\n<p>V\u00f5ib-olla ei sobi see, millest olen r\u00e4\u00e4kinud, teile ja leiutate midagi enda jaoks \u2014 ja see on hea. Kuid\u00a0<b>valige t\u00f6\u00f6riistad, l\u00e4htudes oma protsessi n\u00f5udmistest<\/b>. \u00c4ra lase end petta kogukonna arvamustest, et see t\u00f6\u00f6riist on halb ja teine hea. Just teie tootel v\u00f5ib k\u00f5ik olla vastupidi.<\/p>\n<p><b>T\u00f6\u00f6riistade n\u00f5uded.<\/b><\/p>\n<ul>\n<li>Madala v\u00e4\u00e4rpositiivsete tulemuste tase.\n<\/li>\n<li>M\u00f5istlik anal\u00fc\u00fcsiaeg.\n<\/li>\n<li>Kasutusmugavus.\n<\/li>\n<li>Integratsioonide olemasolu.\n<\/li>\n<li>Toote arendusteed m\u00f5istmine.\n<\/li>\n<li>T\u00f6\u00f6riistade kohandamise v\u00f5imalus.\n<\/li>\n<\/ul>\n<p><\/p>\n<blockquote><p>J\u00fcri ettekannet valiti \u00fcheks parimaks DevOpsConf 2018-l. Et tutvuda veelgi huvitavate ideede ja praktiliste juhtumitega, tulge 27. ja 28. mail Skolkovo\u00a0<noindex><a rel=\"nofollow\" href=\"https:\/\/devopsconf.io\/moscow-rit\/2019\">DevOpsConf<\/a><\/noindex> raames <noindex><a rel=\"nofollow\" href=\"https:\/\/ritfest.ru\/2019\">RIT++ festivali<\/a><\/noindex>. Ja veel parem, kui olete valmis jagama oma kogemusi, siis <noindex><a rel=\"nofollow\" href=\"https:\/\/conf.ontico.ru\/lectures\/propose\/?conference=dc2019-rit\">esitage taotlus<\/a><\/noindex> ettekande jaoks kuni 21. aprillini.<\/p><\/blockquote>\n<p>Allikas: <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.0.1 - 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. \u041d\u0435 \u0442\u043e, \u0447\u0442\u043e\u0431\u044b \u044d\u0442\u043e \u0432\u0441\u0451 \u0431\u044b\u043b\u043e \u043d\u0443\u0436\u043d\u043e \u0432 \u0442\u0435\u043a\u0443\u0449\u0435\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435, \u043d\u043e \u0440\u0430\u0437 \u043d\u0430\u0447\u0430\u043b \u0432\u043d\u0435\u0434\u0440\u044f\u0442\u044c DevSecOps, \u0442\u043e \u043d\u0430\u0434\u043e \u0438\u0434\u0438 \u0434\u043e \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 \u0414\u044d\u043d \u0425\u0430\u0440\u043c\u043e\u043d. \u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 SecDevOps? \u0410 DevSecOps? \u0412 \u0447\u0435\u043c \u043e\u0442\u043b\u0438\u0447\u0438\u044f? Application Security \u2014 \u043e \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 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442? \u041d\u0430 \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\" \/>\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\/et\/blog\/administrirovanie\/strah-i-nenavist-devsecops\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\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. \u041d\u0435 \u0442\u043e, \u0447\u0442\u043e\u0431\u044b \u044d\u0442\u043e \u0432\u0441\u0451 \u0431\u044b\u043b\u043e \u043d\u0443\u0436\u043d\u043e \u0432 \u0442\u0435\u043a\u0443\u0449\u0435\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435, \u043d\u043e \u0440\u0430\u0437 \u043d\u0430\u0447\u0430\u043b \u0432\u043d\u0435\u0434\u0440\u044f\u0442\u044c DevSecOps, \u0442\u043e \u043d\u0430\u0434\u043e \u0438\u0434\u0438 \u0434\u043e \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 \u0414\u044d\u043d \u0425\u0430\u0440\u043c\u043e\u043d. \u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 SecDevOps? \u0410 DevSecOps? \u0412 \u0447\u0435\u043c \u043e\u0442\u043b\u0438\u0447\u0438\u044f? Application Security \u2014 \u043e \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 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442? \u041d\u0430 \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\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/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\udd47Hirm ja vihkamine DevSecOps | ProHoster","description":"Meil oli 2 koodi anal\u00fcsaatorit, 4 d\u00fcnaamilise testimise t\u00f6\u00f6riista, oma leiutised ja 250 skripti. See ei olnud just see, mida praeguses protsessis vaja oli, kuid kuna alustasin DevSecOps'i juurutamist, siis tuli minna l\u00f5puni. Allikas. Isikute autorid: Justin Roiland ja Dan Harmon. Mis on SecDevOps? Ja DevSecOps? Milles on erinevused? Rakenduse turvalisus \u2014 millest see r\u00e4\u00e4gib? Miks klassikaline l\u00e4henemine enam ei toimi? K\u00f5igile nendele k\u00fcsimustele tead vastust J\u00fcri Shabalinski.","canonical_url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/strah-i-nenavist-devsecops","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","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. \u041d\u0435 \u0442\u043e, \u0447\u0442\u043e\u0431\u044b \u044d\u0442\u043e \u0432\u0441\u0451 \u0431\u044b\u043b\u043e \u043d\u0443\u0436\u043d\u043e \u0432 \u0442\u0435\u043a\u0443\u0449\u0435\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435, \u043d\u043e \u0440\u0430\u0437 \u043d\u0430\u0447\u0430\u043b \u0432\u043d\u0435\u0434\u0440\u044f\u0442\u044c DevSecOps, \u0442\u043e \u043d\u0430\u0434\u043e \u0438\u0434\u0438 \u0434\u043e \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 \u0414\u044d\u043d \u0425\u0430\u0440\u043c\u043e\u043d. \u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 SecDevOps? \u0410 DevSecOps? \u0412 \u0447\u0435\u043c \u043e\u0442\u043b\u0438\u0447\u0438\u044f? Application Security \u2014 \u043e \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 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442? \u041d\u0430 \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","og:url":"https:\/\/prohoster.info\/et\/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\/et\/wp-json\/wp\/v2\/posts\/31852","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=31852"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/31852\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/23720"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=31852"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=31852"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=31852"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}