{"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 DevSecOpsis","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Meil oli 2 koodianal\u00fcsaatorit, 4 d\u00fcnaamilise testimise t\u00f6\u00f6riista, oma loodud t\u00f6\u00f6riistad ja 250 skripti. Ei ole nii, et see k\u00f5ik oleks praeguses protsessis vajalik, aga kui DevSecOpsi rakendamine on juba alustatud, siis tuleb minna l\u00f5puni.<\/p>\n<p><img decoding=\"async\" alt=\"Hirm ja vihkamine DevSecOpsis\" 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>. Isikute autorid: Justin Roiland ja Dan Harmon.<\/i><\/p>\n<p>Mis on SecDevOps? Ja DevSecOps? Millised on erinevused? Rakenduse turvalisus - millest see r\u00e4\u00e4gib? Miks klassikaline l\u00e4henemine enam ei toimi? K\u00f5igile nendele k\u00fcsimustele teab vastust <b>Yuri Shabalin<\/b> API-s\u00a0<b>Swordfish Security. <\/b>Yuri vastab k\u00f5igile k\u00fcsimustele ja k\u00e4sitleb klassikalisest rakenduse turvalisuse mudelist DevSecOpsi protsessile \u00fclemineku probleeme: kuidas \u00f5igesti l\u00e4heneda turvalise arendamise protsessi integreerimisele DevOps-i protsessi, et mitte midagi purustada, kuidas l\u00e4bida p\u00f5hilised turvatestimise etapid, milliseid t\u00f6\u00f6riistu saab kasutada, milles need erinevad ja kuidas neid \u00f5igesti seadistada, et v\u00e4ltida varjatud probleeme.<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=\"M\u00e4ngi 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>Esinejast:<\/b> <b>Yuri Shabalin - <\/b>peamine turvaarhitekt ettev\u00f5ttes <b>Swordfish Security<\/b>. Vastutab SSDL-i rakendamise eest, samuti rakenduste anal\u00fc\u00fcsi t\u00f6\u00f6riistade \u00fcldise integreerimise eest arenduse ja testimise \u00f6kos\u00fcsteemi. 7-aastane kogemus infotehnoloogia valdkonnas. T\u00f6\u00f6tanud Alfa-Bankis, Sberbankis ja Positive Technologies, mis arendab tarkvara ja pakub teenuseid. Esineja rahvusvahelistel konverentsidel ZerONights, PHDays, RISSPA, OWASP.<\/p>\n<h2>Rakenduse turvalisus: millest see r\u00e4\u00e4gib?<\/h2>\n<p>\n<b>Rakenduse turvalisus<\/b>\u00a0on julgeoleku osa, mis vastutab rakenduste turvalisuse eest. See ei seondu infrastruktuuri v\u00f5i v\u00f5rgu turvalisuse, vaid just sellega, mida me kirjutame ja millega arendajad t\u00f6\u00f6tavad - see on rakenduse puudused ja haavatavused.<\/p>\n<p>Suundumus <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>Turvalise arenduse eluts\u00fckkel<\/b>\u00a0on v\u00e4lja t\u00f6\u00f6tatud Microsofti poolt. Skeemil - kanoniline mudel SDLC, mille peamine \u00fclesanne on tagada turvalisuse osalemine arenduse igas etapis, n\u00f5uetest kuni v\u00e4ljaandmise ja tootmisse viimiseni. Microsoft m\u00f5istis, et t\u00f6\u00f6stuses on liiga palju vigu, nende arv kasvab ja midagi tuleb sellega teha, ning pakkus v\u00e4lja selle l\u00e4henemise, mis sai kanoniliseks.<\/p>\n<p><img decoding=\"async\" alt=\"Hirm ja vihkamine DevSecOpsis\" src=\"\/wp-content\/uploads\/2019\/04\/466773b9a5bd355419fa1d6d1ddbca66.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nRakenduse turvalisus ja SSDL ei keskendu haavatavuste avastamisele, nagu sageli arvatakse, vaid nende tekkimise ennetamisele. Aja jooksul on Microsofti kanonilist l\u00e4henemist t\u00e4iustatud, arendatud ja see on saanud s\u00fcgavamale sisule suunatud l\u00e4henemise.<\/p>\n<p><img decoding=\"async\" alt=\"Hirm ja vihkamine DevSecOpsis\" src=\"\/wp-content\/uploads\/2019\/04\/58d3e6aadd30594c018940bcb2a8248b.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKanoniline SDLC on detailne mitmes erinevas metodoloogias - OpenSAMM, BSIMM, OWASP. Metodoloogiad erinevad, kuid \u00fcldiselt on nad sarnased.<\/p>\n<h3>Turvalisuse integreerimise k\u00fcpsusmodell<\/h3>\n<p>\nMulle meeldib k\u00f5ige rohkem <b>BSIMM<\/b>\u00a0\u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/www.bsimm.com\/\">Turvalisuse integreerimise k\u00fcpsusmodell<\/a><\/noindex>. Metodoloogia aluseks on rakenduse turvalisuse protsessi jagamine neljaks valdkonnaks: juhtimine, intel, SSDL puutepunktid ja juurutamine. Igas valdkonnas on 12 praktikat, mis esitatakse 112 tegevusena.<\/p>\n<p><img decoding=\"async\" alt=\"Hirm ja vihkamine DevSecOpsis\" 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 arenenud. K\u00f5iki 12 praktikat saab uurida ja jagada osadeks, valida teile olulised asjad, m\u00f5ista, kuidas neid rakendada ja j\u00e4rk-j\u00e4rgult lisada elemente, nagu staatiline ja d\u00fcnaamiline koodi anal\u00fc\u00fcs v\u00f5i koodi \u00fclevaatus. Koostate plaani ja t\u00f6\u00f6tate selle alusel rahulikult valitud tegevuste rakendamisel.<\/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> ikutati turvalisuse kontrolli. Praktikas oli turvameeskondade arv palju v\u00e4iksem kui praegu ning nad ei osalenud protsessis, vaid tegutsesid kontrolli- ja j\u00e4relevalveorganina, kes esitas n\u00f5udeid ja kontrollis toote kvaliteeti v\u00e4ljaande l\u00f5pus. See on klassikaline l\u00e4henemine, kus turvameeskonnad on arendusest eraldi ja ei osale protsessis.<\/p>\n<p><img decoding=\"async\" alt=\"Hirm ja vihkamine DevSecOpsis\" src=\"\/wp-content\/uploads\/2019\/04\/1c5958fb123313308bdd92c5471c44da.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPeamine probleem ongi see, et infos\u00fcsteemide turvalisus on eraldi arendusest. Tavaliselt on see mingi turvalisuse kontuur ja seal on 2-3 suurt ja kallist t\u00f6\u00f6riista. Kord kuue kuu jooksul saabub l\u00e4htekood v\u00f5i rakendus, mida tuleb kontrollida, ja kord aastas viiakse l\u00e4bi <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\">pentsest<\/a><\/noindex>. See k\u00f5ik toob kaasa pikad toote turuletoomise ajad, samuti paisatakse arendajatele tohutu hulk haavatavusi automatiseeritud t\u00f6\u00f6riistadest. K\u00f5ike seda on v\u00f5imatu m\u00f5ista ja parandada, kuna eelmine poolaasta ei ole tulemusi veel anal\u00fc\u00fcsitud, samal ajal kui n\u00fc\u00fcd on kohale j\u00f5udnud uus partii.<\/p>\n<p>Oma ettev\u00f5tte t\u00f6\u00f6 k\u00e4igus n\u00e4eme, et turvalisus k\u00f5ikides valdkondades ja t\u00f6\u00f6stusharudes m\u00f5istab, et on aeg edasi liikuda ja arendamisega \u00fches r\u00fctmis t\u00f6\u00f6tada - ja\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 paradigma sobib suurep\u00e4raselt paindliku arenduse metodoloogia, rakendamise, toetamise ja iga v\u00e4ljaande ja iteratsiooni osalemise juurde.<\/p>\n<p><img decoding=\"async\" alt=\"Hirm ja vihkamine DevSecOpsis\" 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>\nK\u00f5ige olulisem s\u00f5na turvalisuse arenduse eluts\u00fcklis on <b>\"protsess\"<\/b>Te peate seda m\u00f5istma, enne kui m\u00f5tlete t\u00f6\u00f6riistade ostmisele.<\/p>\n<blockquote><p>Lihtsalt t\u00f6\u00f6riistade kaasamine DevOps-protsessi ei piisa - oluline on koost\u00f6\u00f6 ja arusaamine protsessi osaliste vahel.<\/p><\/blockquote>\n<p><\/p>\n<h3>Olulisemad on inimesed, mitte t\u00f6\u00f6riistad.<\/h3>\n<p>\nTihti algab ohutu arendamise protsessi planeerimine t\u00f6\u00f6riista valimise ja ostmisega ning l\u00f5peb katsedintegreerimisega olemasolevasse protsessi, mis j\u00e4\u00e4b sageli katseteks. See toob kaasa kurvad tagaj\u00e4rjed, sest igal t\u00f6\u00f6riistal on oma omadused ja piirangud.<\/p>\n<p>Levinud olukord on see, et turvameeskond valib hea, kalli t\u00f6\u00f6riista, millel on laiad v\u00f5imalused, ja tulevad arendajate juurde - integreerima protsessi. Aga see ei toimi - protsess on \u00fcles ehitatud nii, et juba ostetud t\u00f6\u00f6riista piirangud ei sobi olemasolevasse paradigmasse.<\/p>\n<blockquote><p>Alustage tulemuse kirjeldusega, mida 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 sellest, mida juba kasutatakse.<\/h3>\n<p>\nEnne kallite t\u00f6\u00f6riistade ostmist vaadake, mis teil juba olemas on. Igas ettev\u00f5ttes on arendusele esitatavad turvan\u00f5uded, on kontrolle, penteste - miks mitte muuta see k\u00f5ik arusaadavaks ja k\u00f5igile mugavaks?<\/p>\n<p>Tavaliselt on n\u00f5uded paberil, mis seisab riiulis. Oli juhtum, kui tulime ettev\u00f5ttesse, et vaadata protsesse ja palusime n\u00e4idata turvan\u00f5udeid tarkvara suhtes. Spetsialist, kes sellega tegeles, otsis pikka aega:<\/p>\n<p><i>\u2014 Praegu, kuskil m\u00e4rkmete seas oli tee, kus see dokument asub.<\/i><\/p>\n<p>L\u00f5puks saime dokumendi n\u00e4dala p\u00e4rast.<\/p>\n<p>N\u00f5uete, kontrolle ja muud jaoks looge leht, n\u00e4iteks\u00a0<b>Confluence<\/b>\u00a0\u2014 see on k\u00f5igile mugav.<\/p>\n<blockquote><p>Lihtsam on olemasolevat \u00fcmber vormistada ja kasutada alustamiseks.<\/p><\/blockquote>\n<p><\/p>\n<h3>Kasutage Security Champions'i. <\/h3>\n<p>\nTavaliselt on keskmises ettev\u00f5ttes 100-200 arendaja kohta \u00fcks turvaexpert, kes t\u00e4idab mitu funktsiooni ja f\u00fc\u00fcsiliselt ei suuda k\u00f5ike kontrollida. Isegi kui ta pingutab, ei saa ta \u00fcksi kontrollida kogu koodi, mida arendamine genereerib. Selliste juhtumite jaoks on v\u00e4lja t\u00f6\u00f6tatud kontseptsioon - <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 isik, kes on arendusmeeskonnas ja kellel on huvi teie toote turvalisuse vastu.<\/p><\/blockquote>\n<p><img decoding=\"async\" alt=\"Hirm ja vihkamine DevSecOpsis\" src=\"\/wp-content\/uploads\/2019\/04\/c67728db4a6e34407da199387eba2bb4.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSecurity Champion on sisene punkt arendusmeeskonda ja turvalisuse evangelist \u00fches isikus.<\/p>\n<p>Tavaliselt, kui turvakonsultant tuleb arendusmeeskonda ja osutab vea eest koodis, saab ta \u00fcllatunud vastuse:<\/p>\n<p><i>\u2014 Kes siis olete? N\u00e4en teid esmakordselt. Minul on k\u00f5ik h\u00e4sti \u2014 mu vanem kolleeg pani koodikontrolli k\u00e4skluse \"rakenda\", me liigume edasi!<\/i><\/p>\n<p>See on t\u00fc\u00fcpiline olukord, sest vanemaid v\u00f5i lihtsalt kolleege, kellega arendaja pidevalt t\u00f6\u00f6alaselt koos suhtleb ja koodikontrollis usaldab, usaldatakse oluliselt rohkem. Kui Security Champion osutab veale ja selle tagaj\u00e4rgedele, on tema s\u00f5nal rohkem kaalu.<\/p>\n<p>Samuti tunnevad arendajad oma koodi paremini kui \u00fckski turvakonsultant. Inimene, kellel on v\u00e4hemalt 5 projekti staatilise anal\u00fc\u00fcsi t\u00f6\u00f6riistas, leiab tavaliselt, et on keeruline meeles pidada k\u00f5iki n\u00fcansse. Security Champions tunnevad oma toodet: mis millega suhtleb ja millele j\u00e4lgida esmakordselt \u2014 nad on t\u00f5husamad.<\/p>\n<p>Nii et m\u00f5elge Security Champions'i rakendamisele ja turvameeskonna m\u00f5ju suurendamisele. Isegi Championile on see kasulik: professionaalne areng uues valdkonnas, tehnilise silmaringi laienemine, tehniliste, juhtimis- ja juhtimisoskuste arendamine, turuv\u00e4\u00e4rtuse t\u00f5us. See on mingi sotsiaalse inseneeria element, 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\">Paradiigma 20 kuni 80<\/a><\/noindex>\u00a0\u00fctleb, et 20% pingutustest toob 80% tulemusi. Need 20% on rakenduste anal\u00fc\u00fcsi praktikad, mida saab ja tuleks 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'i kontrollimine<\/b>. R\u00e4\u00e4gin l\u00e4hemalt tegevustest ning t\u00f6\u00f6riistadest, millega tavaliselt kokku puutume nende rakendamisel protsessi, ja kuidas seda \u00f5igesti teha.<\/p>\n<p><img decoding=\"async\" alt=\"Hirm ja vihkamine DevSecOpsis\" src=\"\/wp-content\/uploads\/2019\/04\/db720e0879cdd1ed818461ffb5f927da.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Peamised t\u00f6\u00f6riistade probleemid<\/h3>\n<p>\nToon v\u00e4lja k\u00f5ikide t\u00f6\u00f6riistade jaoks olulised probleemid, mis vajavad t\u00e4helepanu. Selgitan neid l\u00e4hemalt, et mitte edaspidi korduda.<\/p>\n<p><b>Pikaajaline anal\u00fc\u00fcs. <\/b>Kui kommitamisest kuni tootmisse j\u00f5udmiseni kulub k\u00f5ikide testide ja koostamise jaoks 30 minutit, siis infokaitse kontrolld sobib v\u00f5tma terve p\u00e4eva. Keegi ei soovi protsessi pidurdada. Arvestage seda ise\u00e4rasust ja tehke j\u00e4reldusi.<\/p>\n<p><b>K\u00f5rgem False Negative v\u00f5i False Positive tase. <\/b>K\u00f5ik tooted on erinevad, k\u00f5ik kasutavad erinevaid raamistikku ja kodeerimisstiili. Erinevatel koodibaasidel ja tehnoloogiatel v\u00f5ivad t\u00f6\u00f6riistad n\u00e4idata erinevat False Negative ja False Positive taset. Seet\u00f5ttu vaadake, mis t\u00e4pselt\u00a0<b>teie<\/b> ettev\u00f5ttes ja <b>teie<\/b> rakendustes toob hea ja usaldusv\u00e4\u00e4rse tulemuse.<\/p>\n<p><b>Integratsioonid olemasolevate t\u00f6\u00f6riistadega puuduvad<\/b>. Vaadake t\u00f6\u00f6riistu integratsioonide seisukohast, milliseid te juba kasutate. N\u00e4iteks, kui teil on Jenkins v\u00f5i TeamCity, kontrollige nende t\u00f6\u00f6riistade integratsiooni just selle tarkvaraga, mitte GitLab CI-ga, mida te ei kasuta.<\/p>\n<p><b>Kohandamise puudumine v\u00f5i liigse keerukuse olemasolu. <\/b>Kui t\u00f6\u00f6riistal ei ole API-d, siis miks see vajalik on? K\u00f5ik, mis on tehtav liideses, peaks olema kergesti ligip\u00e4\u00e4setav API kaudu. Ideaalis peaks t\u00f6\u00f6riistal olema v\u00f5imalus kontrolle kohandada.<\/p>\n<p><b>Toote arendusplaani puudumine. <\/b>Arendus ei seisa paigal, me kasutame alati uusi raamistikku ja funktsioone, kirjutame vana koodi uute keeltega \u00fcmber. Soovime olla kindlad, et t\u00f6\u00f6riist, mille me ostame, toetab uusi raamistikku ja tehnoloogiaid. Seet\u00f5ttu on oluline teada, et tootel on tegelik ja \u00f5ige <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\">Teekond<\/a><\/noindex> arendustegevus.<\/p>\n<h3>Protsessi erip\u00e4rad<\/h3>\n<p>\nLisaks t\u00f6\u00f6riistadele arvestage ka arendusprotsessi erip\u00e4radega. N\u00e4iteks arenduse segamine on t\u00fc\u00fcpiline viga. Vaatame, milliseid teisi erip\u00e4rasid tuleks arvesse v\u00f5tta ja millele turvameeskond peaks t\u00e4helepanu p\u00f6\u00f6rama.<\/p>\n<p>Kuna arenduse ja v\u00e4ljalaskmise t\u00e4htaegu ei tohiks rikkuda, looge <b>eraldi reeglid<\/b> ja erinevad <b>show stoppers\u00a0<\/b>\u2014 kriteeriumid, mis peatavad koostamisprotsessi, kui avastatakse haavatavusi \u2014 <b>erinevates keskkondades<\/b>. N\u00e4iteks, me m\u00f5istame, et praegune haru l\u00e4heb arendajate stendile v\u00f5i UAT-le, mist\u00f5ttu me ei peata ega \u00fctle:<\/p>\n<p><i>\u2014 Teil on siin haavatavused, te ei saa edasi minna!<\/i><\/p>\n<p>Sel etapil on oluline \u00f6elda arendajatele, et on turvaprobleeme, millele tuleks t\u00e4helepanu p\u00f6\u00f6rata.<\/p>\n<p><b>Haavat ei ole takistus edasisele testimisele<\/b>: k\u00e4sitsi, integreeritud v\u00f5i manuaalselt. Teisalt peame kuidagi toote turvalisust parandama ning et arendajad ei ignoreeriks turbe leidmisi. Seet\u00f5ttu toimime m\u00f5nikord nii: stendil, kui see v\u00e4lja lastakse arenduskeskkonda, teavitame arendust:<\/p>\n<p><i>\u2014 Poisid, teil on probleeme, palun p\u00f6\u00f6rake neile t\u00e4helepanu.<\/i><\/p>\n<p>UAT etapis anname taas hoiatustest teada, ja produktsiooni etapis \u00fctlemme:<\/p>\n<p><i>\u2014 Poisid, oleme mitu korda hoiatatud, te ei teinud midagi \u2014 sellega ei lase teid v\u00e4lja.<\/i><\/p>\n<p>Kui r\u00e4\u00e4kida koodist ja d\u00fcnaamikast, siis tuleb n\u00e4idata ja hoiatada haavatavustest ainult nende funktsioonide ja koodi osas, mis on just selles funktsioonis kirjutatud. Kui arendaja liigutab nuppu 3 pikslit ning me \u00fctleme talle, et tal on seal SQL-injektsioon ja seet\u00f5ttu peab ta kiirelt parandama \u2014 see on vale. Vaadake ainult seda, mis on praegu kirjutatud, ja sellele muudatusele, mis rakendusse tuleb.<\/p>\n<p>Oletame, et meil on mingi funktsionaalne defekt \u2014 see, kuidas rakendus ei peaks t\u00f6\u00f6tama: raha ei edastata, nuppu kl\u00f5psates ei toimu \u00fcleminekut j\u00e4rgmisele lehele v\u00f5i kaupa ei laadita. <b>Turvadefektid<\/b>\u00a0\u2014 need on samasugused defektid, kuid mitte rakenduse t\u00f6\u00f6 kontekstis, vaid turvalisuse osas. <\/p>\n<blockquote><p>Kauem ei ole k\u00f5ik tarkvarakvaliteedi probleemid turbeprobleemid. Kuid k\u00f5ik turbeprobleemid on seotud tarkvarakvaliteediga. Sherif Mansour, Expedia.<\/p><\/blockquote>\n<p>\nKuna k\u00f5ik haavatavused on samasugused defektid, peaksid nad olema seal, kus on k\u00f5ik arendusvead. Seet\u00f5ttu unustage aruanded ja hirmutavad PDF-d, mida keegi ei loe.<\/p>\n<p><img decoding=\"async\" alt=\"Hirm ja vihkamine DevSecOpsis\" src=\"\/wp-content\/uploads\/2019\/04\/e54e64658a3882bdc68a48c6ef426746.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKui t\u00f6\u00f6tasin ettev\u00f5ttes, mis tegeleb arendamisega, sain aruande staatiliste anal\u00fc\u00fcsivahendite kaudu. Avasin selle, ehmatasin \u00e4ra, keetsin kohvi, sirvisin 350 lehte, sulgesin selle ja l\u00e4ksin edasi t\u00f6\u00f6le. <b>Suured aruanded on surnud aruanded<\/b>. \u00dcldiselt need ei kao kuhugi, kirjad kustutatakse, unustatakse, kaotatakse v\u00f5i \u00e4ri \u00fctleb, et v\u00f5tab riskid.<\/p>\n<p>Mida teha? Tuvastatud vead, mis leiti, muudame lihtsalt arendamiseks sobivaks n\u00e4iteks, kogudes need backlogs Jira-s. Prioriseerime vead ja lahendame need prioriteedi j\u00e4rjekorras koos funktsionaalsete vigade ja testide vigadega.<\/p>\n<h2>Statiline anal\u00fc\u00fcs \u2014 SAST<\/h2>\n<p>\n<b>See on koodi anal\u00fc\u00fcs haavatavuste olemasolu osas<\/b>, kuid see ei ole sama, mis SonarQube. Kontrollime mitte ainult mustrite v\u00f5i stiili j\u00e4rgi. Anal\u00fc\u00fcsi k\u00e4igus rakendatakse mitmeid l\u00e4henemisviise: haavatavuste puu j\u00e4rgi, alusel\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>, konfigureerimisfailide anal\u00fc\u00fcsi j\u00e4rgi. See on k\u00f5ik, mis puudutab otse koodi.<\/p>\n<p><b>L\u00e4henemise plussid<\/b>: <b>haavatavuste tuvastamine koodis arenduse varajases etapis<\/b>, kui pole veel stende ja valmis t\u00f6\u00f6riista ning<b>\u00a0v\u00f5imalus inkrementaalseks skaneerimiseks<\/b>: koodi osa skaneerimine, mis on muutunud, ja ainult seda funktsiooni, mida me praegu teeme, mis v\u00e4hendab skaneerimise aega.<\/p>\n<p><b>Miinused<\/b>\u00a0\u2014 vajalikke keelte toe puudumine.<\/p>\n<p><b>Vajadusel integreerimised, <\/b>mida peaks olema t\u00f6\u00f6riistades, minu subjektiivne arvamus:<\/p>\n<ul>\n<li>Integreerimist\u00f6\u00f6riist: Jenkins, TeamCity ja Gitlab CI.\n<\/li>\n<li>Arenduskeskkond: Intellij IDEA, Visual Studio. Arendajal on mugavam mitte liialdada arusaamatu liidese juurde, mida tuleb veel m\u00e4letada, vaid n\u00e4ha otse oma arenduskeskkonnas k\u00f5iki vajalikke integratsioone ja haavatavusi, mida ta leidis.\n<\/li>\n<li>Koodi \u00fclevaatus: SonarQube ja k\u00e4sitsi \u00fclevaatus.\n<\/li>\n<li>Vea j\u00e4lgimise s\u00fcsteemid: Jira ja Bugzilla.\n<\/li>\n<\/ul>\n<p>\nPildil on m\u00f5ned parimad esindajad statilisest anal\u00fc\u00fcsist.<\/p>\n<p><img decoding=\"async\" alt=\"Hirm ja vihkamine DevSecOpsis\" src=\"\/wp-content\/uploads\/2019\/04\/bab3420874ac090d4d107edb0d2b857b.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nOlulised ei ole t\u00f6\u00f6riistad, vaid protsess, seet\u00f5ttu on olemas avatud l\u00e4htekoodiga lahendused, mis on samuti head protsessi katsetamiseks.<\/p>\n<p><img decoding=\"async\" alt=\"Hirm ja vihkamine DevSecOpsis\" src=\"\/wp-content\/uploads\/2019\/04\/4f2c278922c291b15922bc5748f87dc3.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSAST avatud l\u00e4htekoodiga lahendused ei leia suurt hulka haavatavusi v\u00f5i keerulisi DataFlow, kuid protsessi \u00fclesehitamisel saab ja tuleb neid kasutada. Need aitavad m\u00f5ista, kuidas protsess \u00fcles ehitatakse, kes vastutab vigade eest, kes need raporteerib ja kes aru annab. Kui soovite teha esimest sammu oma koodi turvalisuse \u00fclesehitamiseks \u2014 kasutage avatud l\u00e4htekoodiga lahendusi.<\/p>\n<p>Kuidas seda integreerida, kui olete alguses, teil pole midagi: ei CI, ei Jenkinsit, ei TeamCityt? Vaadakem integratsioone protsessis.<\/p>\n<h3>Integratsioon CVS tasemel<\/h3>\n<p>\nKui teil on Bitbucket v\u00f5i GitLab, siis saab 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 skaneerit koodi ja build'i olekus n\u00e4itate, kas turvakontroll on l\u00e4bitud v\u00f5i mitte.<\/p>\n<p><b>Tagasiside. <\/b>Ilmselt on tagasiside alati vajalik. Kui te lihtsalt tegite turvapoolel t\u00f6\u00f6 \u00e4ra, panite selle kasti ja ei r\u00e4\u00e4kinud sellest kellelegi, ning siis kuu l\u00f5pus tulite v\u00e4lja hulga vigadega \u2014 see ei ole \u00f5ige ega hea.<\/p>\n<h3>Integratsioon koodivaatamise s\u00fcsteemiga<\/h3>\n<p>\nKord m\u00e4\u00e4rasime mitmes olulises projektis vaikimisi \u00fclevaataja tehnilise kasutaja AppSec. S\u00f5ltuvalt sellest, kas uues koodis avastatakse vigu v\u00f5i ei, m\u00e4\u00e4rab pull request\u2019i \u00fclevaataja staatusena \u201eaccept\u201c v\u00f5i \u201eneed work\u201c \u2014 kas k\u00f5ik on OK v\u00f5i tuleb midagi t\u00e4iendada ja viidet sellele, mida t\u00e4pselt t\u00e4iendada. Integreerimisel versiooniga, mis l\u00e4heb tootmisse, keelasime me merge'i, kui turvatest ei ole l\u00e4bitud. Me l\u00fclitasime selle sisse k\u00e4sitsi koodivaatamises ja \u00fclej\u00e4\u00e4nud protsessi osalised n\u00e4gid turbe staatuseid just selle konkreetse protsessi jaoks.<\/p>\n<h3>Integratsioon 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 sama \u2014 saab teha samu gates'e ka SAST-ide jaoks. Graafika j\u00e4\u00e4b samaks, sama quality gate, lihtsalt nimeks saab see <b>security gate<\/b>. Ja sama ka, kui teil on k\u00e4ivitatud protsess SonarQube'iga, saab k\u00f5ik rahulikult sinna integreerida.<\/p>\n<h3>Integreerimine CI tasemel<\/h3>\n<p>\nSiin on k\u00f5ik piisavalt lihtne:<\/p>\n<ul>\n<li><b>\u00dches tasemes automaatsete testide<\/b>, unit-testide.\n<\/li>\n<li><b>Arendusetappide eristamine<\/b>: dev, test, prod. V\u00f5ib kaasata erinevaid reegliste komplekte v\u00f5i erinevaid t\u00f5rke tingimusi: peatame kogumise, ei peata kogumist.\n<\/li>\n<li><b>S\u00fcnkroonne\/As\u00fcnkroonne k\u00e4 \u0437\u0430\u043f\u0443\u0441\u043a<\/b>. Ootame turvatestide kontrollimise l\u00f5ppu v\u00f5i ei oota. Ehk me lihtsalt k\u00e4ivitame need ja liigume edasi, ning seej\u00e4rel saame staatuse, et k\u00f5ik on h\u00e4sti v\u00f5i halvasti.\n<\/li>\n<\/ul>\n<p>\nSee k\u00f5ik on ideaalses roosilises maailmas. Reaalses elus seda ei juhtu, aga me p\u00fc\u00fcame. Turvakontrollide tulemused peaksid olema sarnased unit-testide tulemustele.<\/p>\n<p>N\u00e4iteks, me v\u00f5tsime suure projekti ja otsustasime, et skaneerime seda SAST\u2019iga \u2014 OK. Panime projekti SAST-i, see andis meile 20 000 haavatavust ja me v\u00f5tsime j\u00f5uliselt vastu otsuse, et k\u00f5ik on h\u00e4sti. 20 000 haavatavust \u2014 see on meie tehniline v\u00f5lg. Paneme v\u00f5la karpi, hakkame tasapisi koristama ja loome vead defektide j\u00e4lgimisse. Kindlasti palkame ettev\u00f5tte, teeme k\u00f5ik ise v\u00f5i aitame Security Champions \u2014 ja tehniline v\u00f5lg hakkab v\u00e4henema.<\/p>\n<p>Ja k\u00f5ik uued haavatavused uues koodis peavad olema k\u00f5rvaldatud nagu \u00fcldised vead unit v\u00f5i automatiseeritud testides. \u00dctlemiseks, k\u00e4ivitus kogu koostamine, jooksime, kukkus kaks testi ja kaks testi turvalisuse osas. OK \u2014 l\u00e4ksime, vaatasime, mis juhtus, parandasime \u00fchte, parandasime teist, j\u00e4rgmine kord jooksime \u2014 k\u00f5ik on h\u00e4sti, uusi haavatavusi ei ilmunud, testid ei kukkunud l\u00e4bi. Kui see \u00fclesanne on s\u00fcgavam ja vajab head arusaamist v\u00f5i haavatavuste parandamine h\u00f5lmab suuri osi mingist, mis asub kapoti all: loome vea defektide j\u00e4lgimisse, see prioriseeritakse ja parandatakse. Kahjuks maailm ei ole ideaalne ja testid m\u00f5nikord kukuvad.<\/p>\n<p>Turvav\u00e4rava n\u00e4ide \u2014 sarnane kvaliteediv\u00e4ravale, seoses eba\u00f5nnestumiste arvu ja olemasoluga koodis.<\/p>\n<p><img decoding=\"async\" alt=\"Hirm ja vihkamine DevSecOpsis\" src=\"\/wp-content\/uploads\/2019\/04\/eb30d3c7988b28c2cb25e9656871ec96.png\" style=\"display:block;margin: 0 auto;\" \/>Integreerime SonarQube'iga \u2014 plugin paigaldatakse, k\u00f5ik on v\u00e4ga mugav ja lahe.<\/p>\n<h3>Integreerimine arenduskeskkonnaga<\/h3>\n<p>\n<b>Integreerimise v\u00f5imalused:<\/b><\/p>\n<ul>\n<li>K\u00fclastage skaneerimist arenduskeskkonnast veel enne commit'i.\n<\/li>\n<li>Tulemuste \u00fclevaade.\n<\/li>\n<li>Tulemuste anal\u00fc\u00fcs.\n<\/li>\n<li>S\u00fcnkroonimine serveriga.\n<\/li>\n<\/ul>\n<p>\nNii n\u00e4eb v\u00e4lja tulemuste saamine serverilt.<\/p>\n<p><img decoding=\"async\" alt=\"Hirm ja vihkamine DevSecOpsis\" 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 lihtsalt lisateenus, mis teatab, et skaneerimise ajal avastati sellised haavatavused. Saame kohe koodi parandada, vaadata soovitusi ja\u00a0<noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Control-flow_graph\">Protsessikaart<\/a><\/noindex>. See k\u00f5ik on arendaja t\u00f6\u00f6kohas, mis on v\u00e4ga mugav \u2014 ei ole vaja ringi jalutada ja vaadata midagi lisaks.<\/p>\n<h2>Open Source<\/h2>\n<p>\nSee on minu lemmikteema. K\u00f5ik kasutavad Open Source teeke \u2014 miks kirjutada hunnik klotse ja jalgrattaid, kui on v\u00f5imalik v\u00f5tta valmis teek, kus k\u00f5ik on juba realiseeritud?<\/p>\n<p><img decoding=\"async\" alt=\"Hirm ja vihkamine DevSecOpsis\" src=\"\/wp-content\/uploads\/2019\/04\/05b9cd5a8b269af2a3f59931a0774778.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJah, see on t\u00f5si, kuid raamatukogud on samuti inimeste kirjutatud, need sisaldavad teatud riske ja seal esinevad haavad, millest perioodiliselt v\u00f5i pidevalt teatatakse. Seet\u00f5ttu on j\u00e4rgmine samm rakendusturbe valdkonnas avatud l\u00e4htekoodiga komponentide anal\u00fc\u00fcs.<\/p>\n<h3>Avatud l\u00e4htekoodiga anal\u00fc\u00fcs \u2013 OSA<\/h3>\n<p>\nT\u00f6\u00f6riist sisaldab kolme suurt etappi.<\/p>\n<p><b>Haavatavuste \u00fclesleidmine 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 veat\u00f6\u00f6tlusplatvormidel on mingeid haavatavusi, mis puudutavad selle versiooni raamatukogu. Kui proovid seda kasutada, annab t\u00f6\u00f6riist hoiatuse, et raamatukogu on haavatav ning soovitab kasutada teist versiooni, kus haavatavused puuduvad.<\/p>\n<p><b>Litsentsi puhtuse anal\u00fc\u00fcs. <\/b>K\u00fcsimus pole veel eriti populaarne, kuid kui t\u00f6\u00f6tate rahvusvaheliselt, v\u00f5ib seal aeg-ajalt tulla probleem kasutatava avatud l\u00e4htekoodiga komponendiga, mida ei tohi kasutada v\u00f5i modifitseerida. Vastavalt raamatukogu litsentsipoliitikale ei tohi me seda teha. Kas kui me oleme seda modifitseerinud ja kasutame, peame oma koodi esitama. Loomulikult ei taha keegi oma toote koodi avalikustada, kuid sellest saab samuti kaitsta.<\/p>\n<p><b>Komponentide anal\u00fc\u00fcs, mida kasutatakse t\u00f6\u00f6stuslikus keskkonnas. <\/b>Kujutage ette h\u00fcpoteetilist olukorda, kus oleme l\u00f5puks arenduse l\u00f5petanud ja v\u00e4lja lasknud meie mikroteenuse viimase versiooni. See t\u00f6\u00f6tab seal suurep\u00e4raselt - n\u00e4dala, kuu, aasta. Me ei kogu selle kohta teavet, turvataset ei kontrolli, k\u00f5ik tundub h\u00e4sti. Kuid \u00e4kki, kaks n\u00e4dalat p\u00e4rast v\u00e4ljaandmist, ilmub t\u00f6\u00f6stuskeskkonnas haavatavus avatud l\u00e4htekoodiga komponendis, mida me just selles versioonis kasutame. Kui me ei dokumenteeri, mida ja kus me kasutame, siis ei n\u00e4e me seda haavatavust. M\u00f5ned t\u00f6\u00f6riistad v\u00f5imaldavad raamatukogude haavatavuste j\u00e4lgimist, mis praegu t\u00f6\u00f6stuses on kasutusel. See on v\u00e4ga kasulik.<\/p>\n<p><b>V\u00f5imalused:<\/b><\/p>\n<ul>\n<li>Erinevad poliitikad erinevatele arendusetappidele.\n<\/li>\n<li>Komponentide j\u00e4lgimine t\u00f6\u00f6stuslikus keskkonnas.\n<\/li>\n<li>Teekide kontroll organisatsiooni raames.\n<\/li>\n<li>Erinevate kogumise s\u00fcsteemide ja keelte tugi.\n<\/li>\n<li>Dockeri picturite anal\u00fc\u00fcs.\n<\/li>\n<\/ul>\n<p>\nM\u00f5ned n\u00e4ited valdkonna liidritest, kes tegelevad avatud l\u00e4htekoodiga anal\u00fc\u00fcsiga.<\/p>\n<p><img decoding=\"async\" alt=\"Hirm ja vihkamine DevSecOpsis\" src=\"\/wp-content\/uploads\/2019\/04\/f1b05f86beb4a64f9bf3443963e3603b.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nAinus neist tasuta on <noindex><a rel=\"nofollow\" href=\"https:\/\/www.owasp.org\/index.php\/OWASP_Dependency_Check\">S\u00f5ltuvuste kontroll<\/a><\/noindex> OWASP-i poolt. Seda saab esimestel etappidel sisse l\u00fclitada, et n\u00e4ha, kuidas see t\u00f6\u00f6tab ja mida see toetab. Peamiselt on need k\u00f5ik pilve tooted v\u00f5i kohapealsed, kuid nende baasil saadetakse need ikkagi internetti. Need saadavad mitte teie raamatukogusid, vaid r\u00e4sim\u00e4rke v\u00f5i oma arvutatud v\u00e4\u00e4rtusi ning s\u00f5rmej\u00e4lgi oma serverisse, et saada teavet haavatavuste olemasolu kohta.<\/p>\n<h3>Integratsioon protsessi<\/h3>\n<p>\n<b>Kontrolli teeki perimeetrisse<\/b>, mis allalaaditakse v\u00e4listest allikatest. Meil on v\u00e4line ja sise repos. N\u00e4iteks Event Centralis on Nexus ja me tahame, et meie repos ei oleks haavatavusi, mille staatus on \"kriitiline\" v\u00f5i \"k\u00f5rge\". Proximist saab seadistada Nexus Firewall Lifecyle'i t\u00f6\u00f6riistaga nii, et sellised haavatavused blokeeritakse ja ei p\u00e4\u00e4se siserepositorisse.<\/p>\n<p><b>Integratsioon CI-sse<\/b>. Samal tasemel koos automaatsete testide, \u00fcksuste testide ja arendusetappide jagamisega: dev, test, prod. Igal etapil saab alla laadida mis tahes raamatukogusid ja kasutada k\u00f5ike, kuid kui seal on midagi t\u00f5sist, mille staatus on \"kriitiline\", siis v\u00f5ib-olla tasub sellele arendajate t\u00e4helepanu juhtida, kui aga projekteerimisetapis.<\/p>\n<p><b>Integratsioon artefaktide hoidlatega<\/b>: Nexus ja JFrog.<\/p>\n<p><b>Integratsioon arenduskeskkonda. <\/b>T\u00f6\u00f6riistad, mida valite, peavad olema integreeritavad arenduskeskkondadega. Arendajal peab olema oma t\u00f6\u00f6kohtadelt juurdep\u00e4\u00e4s skaneerimise tulemustele v\u00f5i v\u00f5imalus ise skaneerida ja kontrollida koodi haavatavuste olemasolu enne CVS-sse commitimist.<\/p>\n<p><b>Integratsioon CD-sse. <\/b>See on lahe funktsioon, mis mulle v\u00e4ga meeldib ja millest ma juba r\u00e4\u00e4kinud olen \u2013 haavatavuste uute ilmingute j\u00e4lgimine t\u00f6\u00f6stuskeskkonnas. See t\u00f6\u00f6tab umbes nii.<\/p>\n<p><img decoding=\"async\" alt=\"Hirm ja vihkamine DevSecOpsis\" src=\"\/wp-content\/uploads\/2019\/04\/605c638df343db5c47ab36b4dc00f41c.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMeil on <b>Avalikud koostisosade hoidlad<\/b>\u00a0\u2014 m\u00f5ned t\u00f6\u00f6riistad v\u00e4ljast ja meie sisemine hoidla. Soovime, et seal oleksid ainult usaldusv\u00e4\u00e4rsed koostisosad. K\u00fcsimuste n\u00f5udmisel kontrollime, et allalaaditavas teegis ei esineks haavatavusi. Kui see kuulub teatud poliitikate alla, mille me seame ja peame arendusega kokku leppima, siis ei lae me seda alla ja tuleb teade, et tuleb kasutada teist versiooni. Seega, kui teegis on midagi t\u00f5eliselt kriitilist ja halba, ei saa arendaja juba installimise etapis seda teeki \u2014 las kasutab kas vanemat v\u00f5i uuemat versiooni.<\/p>\n<ul>\n<li>Buildimise ajal kontrollime, et keegi ei oleks sisse suunanud midagi halba, et k\u00f5ik koostisosad on ohutud ja keegi ei tooma ohutust midagi USB-m\u00e4lupulgal.\n<\/li>\n<li>Meie hoidlas on ainult usaldusv\u00e4\u00e4rsed koostisosad. \n<\/li>\n<li>Deployment'i k\u00e4igus kontrollime veel kord t\u00e4pselt paketti: war, jar, DL v\u00f5i Docker-pildid selle \u00fcle, et need vastavad poliitikale. \n<\/li>\n<li>Tootmisre\u017eiimis j\u00e4lgime, mis toimub t\u00f6\u00f6stuskeskkonnas: ilmuvad v\u00f5i ei ilmu kriitilised haavatavused.\n<\/li>\n<\/ul>\n<p><\/p>\n<h2>D\u00fcnaamiline anal\u00fc\u00fcs \u2014 DAST<\/h2>\n<p>\nD\u00fcnaamilise anal\u00fc\u00fcsi t\u00f6\u00f6riistad erinevad radikaalselt k\u00f5ikidest eelnevalt \u00f6eldud asjadest. See on mingi simulatsioon kasutaja tegevusest rakenduse juures. Kui see on veebirakendus, saadame p\u00e4ringud, simuleerides kliendi t\u00f6\u00f6d, vajutame nuppe veebilehe ees, saadame kunstlikke andmeid vormist: jutum\u00e4rgid, sulud, s\u00fcmbolid erinevates kodeeringutes, et vaadata, kuidas rakendus t\u00f6\u00f6tab ja t\u00f6\u00f6tleb v\u00e4liseid andmeid.<\/p>\n<p>Sama s\u00fcsteem v\u00f5imaldab kontrollida mallih\u00e4ireid avatud l\u00e4htekoodis. Kuna DAST ei tea, millist avatud l\u00e4htekoodi me kasutame, siis viskab ta lihtsalt \"pahalaste\" mustrid 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 on suured riskid, sest kui teete seda turvatesti samal keskkonnal, millega t\u00f6\u00f6tavad testijad \u2014 v\u00f5ivad juhtuda ebameeldivad asjad.<\/p>\n<ul>\n<li>Suurekoormus rakenduse serveriv\u00f5rgus.\n<\/li>\n<li>Pole integratsioone.\n<\/li>\n<li>V\u00f5imalus muuta anal\u00fc\u00fcsitava rakenduse seadeid.\n<\/li>\n<li>Ei toetata vajalikke tehnoloogiaid.\n<\/li>\n<li>Seadistamise keerukus.\n<\/li>\n<\/ul>\n<p>\nMeil oli olukord, kui saime l\u00f5puks AppScan'i t\u00f6\u00f6le: pidasime kaua ligip\u00e4\u00e4su taotlema, saime 3 kontot ja olime r\u00f5\u00f5msad \u2013 l\u00f5puks saame k\u00f5ik \u00e4ra kontrollida! K\u00e4ivitasime skaneerimise ja esimene asi, mida AppScan tegi, oli administratiivpaneelile sisse logimine, k\u00f5ik nupud \u00fcle testa, pool andmeid \u00fcmber muuta ja l\u00f5puks tappis serveri. <noindex><a rel=\"nofollow\" href=\"https:\/\/www.mailform.io\/\">mailform<\/a><\/noindex>-p\u00e4ringutega. Arendamine koos testimisega \u00fctles:<\/p>\n<p><i>\u2014 Poisid, te teete nalja?! Me andsime teile kontod, aga teie panite p\u00fcsti katsekeskkonna!<\/i><\/p>\n<p>Arvestage v\u00f5imalikke riske. Ideaalis valmistage ette eraldi katsekeskkond, mis on teistest keskkondadest mingil moel isoleeritud ja administratiivpaneeli kontrollimine peaks olema soovitatavalt k\u00e4sitsi. See on penetratsioonitest \u2013 need viimased protsendid pingutust, mida me praegu ei arvesse v\u00f5ta. <\/p>\n<p>Tasub arvestada, et seda saab kasutada ka koormustestimise analoogina. Esimeses etapis on v\u00f5imalik aktiveerida d\u00fcnaamiline skanner 10-15 voogude jaoks ja vaadata, mis juhtub, kuid tavaliselt, nagu praktika n\u00e4itab, pole tulemused head.<\/p>\n<p>M\u00f5ned ressursid, mida tavaliselt kasutame.<\/p>\n<p><img decoding=\"async\" alt=\"Hirm ja vihkamine DevSecOpsis\" 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 see on \"\u0160veitsi armee nuga\" igasugustele turvaekspertidele. K\u00f5ik kasutavad seda ja see on v\u00e4ga mugav. Praegu on v\u00e4lja tulnud uus demo versioon ettev\u00f5tte v\u00e4ljaandest. Kui varem oli see lihtsalt iseseisev utiliit pluginate kogumiga, siis n\u00fc\u00fcd teevad arendajad l\u00f5puks suurt serverit, millest saab hallata mitmeid agente. See on \u00e4ge, soovitan proovida.<\/p>\n<h3>Integratsioon protsessi<\/h3>\n<p>\nIntegratsioon toimub piisavalt h\u00e4sti ja lihtsalt: <b>skaneerimise k\u00e4ivitamine peale eduka rakenduse installatsiooni <\/b>katse keskkonnale ja\u00a0<b>skaneerimine p\u00e4rast eduka integreerimise testimise l\u00e4biviimist<\/b>.<\/p>\n<p>Kui integratsioonid ei t\u00f6\u00f6ta v\u00f5i seal on vahepealsed ja mock-funktsioonid, on see m\u00f5ttetu ja kasutu \u2013 \u00fcksk\u00f5ik millise mustriga me ka ei saadaks, server vastab ikkagi \u00fchtemoodi.<\/p>\n<ul>\n<li>Ideaalne \u2013 eraldiseisev katse keskkond.\n<\/li>\n<li>Enne testimise alustamist taotlege sisselogimise jada.\n<\/li>\n<li>Administratiiv s\u00fcsteemi testimine \u2013 ainult manuaalne.\n<\/li>\n<\/ul>\n<p><\/p>\n<h2>Protsess<\/h2>\n<p>\nVeidi \u00fcldiselt protsessi kohta ja iga t\u00f6\u00f6riista kohta eraldi. K\u00f5ik rakendused on erinevad \u2013 \u00fchel t\u00f6\u00f6tab d\u00fcnaamiline anal\u00fc\u00fcs paremini, teisel staatiline, kolmandal OpenSource anal\u00fc\u00fcs, penetratsioonitestid v\u00f5i tegelikult 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>\nEt m\u00f5ista, kuidas protsess t\u00f6\u00f6tab ja kus seda saab parandada, tuleb koguda m\u00f5\u00f5dikud igalt poolt, kuhu k\u00e4si ulatub, sealhulgas tootmisn\u00e4itajad, instrumentide m\u00f5\u00f5dikud ja veaparandus s\u00fcsteemidest.<\/p>\n<p>Iga andmed on kasulikud. Tuleb vaadata erinevates l\u00f5ikes, kus \u00fcks v\u00f5i teine t\u00f6\u00f6riist paremini t\u00f6\u00f6tab, kus protsess konkreetselt langeb. V\u00f5ib-olla tasub vaadata arenduse vastamisaja, et m\u00f5ista, kus protsessi ajas parandada. Mida rohkem andmeid, seda rohkem l\u00f5ike saab ehitada alates k\u00f5rgematest tasemetest kuni iga protsessi \u00fcksikasjadeni.<\/p>\n<p><img decoding=\"async\" alt=\"Hirm ja vihkamine DevSecOpsis\" 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\u00e4ivitamisviisid, p\u00f5him\u00f5tted, m\u00f5nel on ajakavad ja teistel mitte \u2014 me kirjutame t\u00f6\u00f6riista <b>AppSec Orkestrator<\/b>, mis v\u00f5imaldab luua \u00fchtse sisendi kogu protsessi jooksul ja hallata seda \u00fchest kohast.<\/p>\n<p>Juhtidel, arendajatel ja turbeinseneridel on \u00fcks sisend, kust saab vaadata, mis on k\u00e4ivitatud, seada \u00fcles ja alustada skaneerimist, saada skaneerimise tulemusi ja esitada n\u00f5udeid. P\u00fc\u00fcame liikuda paberitelt \u00e4ra ja viia k\u00f5ik inimkeelde, mida arendus kasutab \u2014 lehed Confluence'is staatuste ja m\u00f5\u00f5dikutega, vead Jira's v\u00f5i erinevates veaparandus s\u00fcsteemides, v\u00f5i integreerida s\u00fcnkroonsesse\/ as\u00fcnkroonsesse protsessi CI\/CD-s.<\/p>\n<h2>Peamised punktid<\/h2>\n<p>\n<b>T\u00f6\u00f6riistad ei ole peamine.<\/b> Esmalt m\u00f5elge protsess l\u00e4bi \u2014 seej\u00e4rel leidke t\u00f6\u00f6riistu. T\u00f6\u00f6riistad on head, kuid kallid, seega v\u00f5iks alustada protsessist ja seada \u00fcles suhtlemise ja arusaamise arendamise ja turvalisuse vahel. Turbe seisukohalt \u2013 ei ole vaja \"peatada\" k\u00f5ike j\u00e4rjest, arendus seisukohalt \u2013 kui midagi on high mega super kriitiline, siis tuleb see k\u00f5rvaldada, mitte silma kinni panna probleemile.<\/p>\n<p><b>Toote kvaliteet<\/b>\u00a0<b>\u2014 \u00fchine eesm\u00e4rk<\/b> nii turvalisuse kui ka arenduse jaoks. Me teeme sama asja, p\u00fc\u00fcdes, et k\u00f5ik t\u00f6\u00f6taks \u00f5igesti ja et mitte tekiks maineohtusid ja rahalisi kaotusi. Just seet\u00f5ttu propageerime DevSecOps'i, SecDevOps'i l\u00e4henemist, et luua suhtlus ja teha toode kvaliteetsemaks.<\/p>\n<p><b>Alustage sellest, mis juba olemas on<\/b>: n\u00f5udmised, arhitektuur, osalised kontrollid, koolitused, juhised. Ei ole vaja kohe rakendada k\u00f5iki praktikaid k\u00f5ikidele projektidele \u2014 <b>liikuge iteratiivselt<\/b>. \u00dchtset standardit ei ole \u2014 <b>katsetage<\/b> ja proovige erinevaid l\u00e4henemisviise ja lahendusi.<\/p>\n<p><b>IB defektide ja funktsionaalsete defektide vahel on samamoodi<\/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, ei ole see hea protsess. V\u00f5ib-olla tasuks see \u00fcle vaadata ja ka automatiseerida.<\/p>\n<p>Kui IB meeskond on v\u00e4ike \u2014 <b>kasutage Security Champions<\/b>.<\/p>\n<p>V\u00f5ib-olla ei sobi see, millest ma r\u00e4\u00e4kisin, teile ja te leiutate midagi oma \u2014 ja see on hea. Kuid\u00a0<b>valige t\u00f6\u00f6riistad, l\u00e4htuvalt n\u00f5udmistest just teie protsessile<\/b>. \u00c4rge vaadake, mida \u00fctleb kogukond, et see t\u00f6\u00f6riist on halb ja see hea. V\u00f5ib-olla osutub teie tootel k\u00f5ik vastupidiseks.<\/p>\n<p><b>N\u00f5uded t\u00f6\u00f6riistadele.<\/b><\/p>\n<ul>\n<li>Madala vale positiivsete tulemuste tase.\n<\/li>\n<li>M\u00f5istlik anal\u00fc\u00fcsi aeg.\n<\/li>\n<li>Kasutusmugavus.\n<\/li>\n<li>Integratsioonide olemasolu.\n<\/li>\n<li>Toote arendusteede 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. ettekandeks. Et tutvuda veel enam huvitavate ideede ja praktiliste n\u00e4idetega, 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\">festivali RIT++<\/a><\/noindex>. Ja veel parem, kui olete valmis oma kogemust jagama, 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.1.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.\" \/>\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.1.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.\" \/>\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 koodianal\u00fcsaatorit, 4 d\u00fcnaamilise testimise t\u00f6\u00f6riista, oma loodud asjad ja 250 skripti.","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.","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}]}}