{"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\/it\/blog\/administrirovanie\/strah-i-nenavist-devsecops","title":{"rendered":"Paura e odio per il DevSecOps","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Avevamo 2 analizzatori di codice, 4 strumenti per test dinamici, le nostre creazioni e 250 script. Non che tutto questo fosse necessario nel processo attuale, ma una volta iniziato a implementare il DevSecOps, bisogna andare fino in fondo.<\/p>\n<p><img decoding=\"async\" alt=\"Paura e odio per il 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\">Fonte<\/a><\/noindex>. Autori dei personaggi: Justin Roiland e Dan Harmon.<\/i><\/p>\n<p>Cosa \u00e8 SecDevOps? E DevSecOps? Quali sono le differenze? Sicurezza delle applicazioni: di cosa si tratta? Perch\u00e9 l'approccio classico non funziona pi\u00f9? Queste sono tutte domande a cui <b>Yuri Shabalin<\/b> di\u00a0<b>Swordfish Security. <\/b>Yuri risponder\u00e0 a tutto e analizzer\u00e0 le problematiche della transizione dal modello classico di Sicurezza delle Applicazioni al processo DevSecOps: come affrontare correttamente l'integrazione del processo di sviluppo sicuro nel processo DevOps senza rompere nulla, come superare le fasi fondamentali di test di sicurezza, quali strumenti possono essere utilizzati, in cosa si differenziano e come configurarli correttamente per evitare insidie.<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=\"Riproduci video\" 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>Sul relatore:<\/b> <b>Yuri Shabalin \u00e8 <\/b>Chief Security Architect presso <b>Swordfish Security<\/b>. Si occupa dell'implementazione di SSDL, dell'integrazione generale degli strumenti di analisi delle applicazioni in un'unica ecosistema di sviluppo e test. 7 anni di esperienza nella sicurezza informatica. Ha lavorato in Alfa-Bank, Sberbank e in Positive Technologies, che sviluppa software e fornisce servizi. Relatore a conferenze internazionali come ZerONights, PHDays, RISSPA, OWASP.<\/p>\n<h2>Sicurezza delle Applicazioni: di cosa si tratta?<\/h2>\n<p>\n<b>Sicurezza delle Applicazioni<\/b>\u00a0\u00e8 una branca della sicurezza che si occupa della sicurezza delle applicazioni. Non si riferisce all'infrastruttura o alla sicurezza di rete, ma specificamente a ci\u00f2 che scriviamo e su cui lavorano gli sviluppatori, cio\u00e8 ai difetti e alle vulnerabilit\u00e0 dell'applicazione stessa.<\/p>\n<p>Direzione <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.microsoft.com\/ru-ru\/ef\/ef6\/modeling\/designer\/advanced\/edmx\/ssdl-spec\">SDL o SDLC<\/a><\/noindex>\u00a0\u2014 <b>Ciclo di vita dello sviluppo della sicurezza<\/b>\u00a0\u00e8 stato sviluppato da Microsoft. Nello schema si vede il modello canonico del SDLC, il cui obiettivo principale \u00e8 garantire che la sicurezza sia integrata in ogni fase dello sviluppo, dai requisiti al rilascio e all'entrata in produzione. Microsoft ha riconosciuto che ci sono troppi bug nel mercato, che stanno aumentando e che \u00e8 necessario intervenire, e ha proposto questo approccio che \u00e8 diventato canonico.<\/p>\n<p><img decoding=\"async\" alt=\"Paura e odio per il DevSecOps\" src=\"\/wp-content\/uploads\/2019\/04\/466773b9a5bd355419fa1d6d1ddbca66.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nLa sicurezza delle applicazioni e SSDL non sono rivolte alla rilevazione delle vulnerabilit\u00e0, come comunemente si pensa, ma alla prevenzione della loro comparsa. Nel tempo, l'approccio canonico di Microsoft \u00e8 stato migliorato e sviluppato, con un'approfondita immersione nei dettagli.<\/p>\n<p><img decoding=\"async\" alt=\"Paura e odio per il DevSecOps\" src=\"\/wp-content\/uploads\/2019\/04\/58d3e6aadd30594c018940bcb2a8248b.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIl SDLC canonico \u00e8 molto dettagliato in varie metodologie \u2014 OpenSAMM, BSIMM, OWASP. Le metodologie differiscono, ma, in generale, sono simili.<\/p>\n<h3>Building Security In Maturity Model<\/h3>\n<p>\nMi sta pi\u00f9 a cuore <b>BSIMM<\/b>\u00a0\u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/www.bsimm.com\/\">Building Security In Maturity Model<\/a><\/noindex>. La base della metodologia consiste nella suddivisione del processo di sicurezza delle applicazioni in 4 domini: Governance, Intelligence, SSDL Touchpoints e Deployment. In ogni dominio ci sono 12 pratiche, presentate in 112 attivit\u00e0.<\/p>\n<p><img decoding=\"async\" alt=\"Paura e odio per il DevSecOps\" src=\"\/wp-content\/uploads\/2019\/04\/ae0bbfd0dde335af886282672ed92367.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nOgni una delle 112 attivit\u00e0 ha <b>3 livelli di maturit\u00e0<\/b>: iniziale, medio e avanzato. Tutte e 12 le pratiche possono essere studiate per sezioni, selezionando gli aspetti importanti per voi, approfondendo come implementarli e aggiungendo gradualmente elementi come l'analisi statica e dinamica del codice o la code review. Definite un piano e lavorate serenamente con l'implementazione delle attivit\u00e0 selezionate.<\/p>\n<h2>Perch\u00e9 DevSecOps<\/h2>\n<p><\/p>\n<blockquote><p>DevOps \u00e8 un grande processo integrato in cui \u00e8 necessario prendersi cura della sicurezza.<\/p><\/blockquote>\n<p>\nOriginariamente <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/DevOps\"><b>DevOps<\/b><\/a><\/noindex> Si prevedevano controlli di sicurezza. In pratica, il numero dei team di sicurezza era molto inferiore rispetto a oggi, e agivano pi\u00f9 come un ente di controllo e vigilanza, che stabilisce i requisiti e verifica la qualit\u00e0 del prodotto alla fine del rilascio. Questo \u00e8 un approccio classico, in cui i team di sicurezza si trovavano dietro le quinte dello sviluppo e non partecipavano al processo.<\/p>\n<p><img decoding=\"async\" alt=\"Paura e odio per il DevSecOps\" src=\"\/wp-content\/uploads\/2019\/04\/1c5958fb123313308bdd92c5471c44da.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIl problema principale risiede nel fatto che la sicurezza informatica \u00e8 separata dallo sviluppo. Di solito esiste un certo contorno di sicurezza informatica con 2-3 grandi e costosi strumenti. Ogni sei mesi si riceve il codice sorgente o l'applicazione da controllare, e una volta all'anno si effettuano <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\">penetration test<\/a><\/noindex>. Questo porta al fatto che i tempi di rilascio vengono posticipati, e agli sviluppatori si accumulano un'enorme quantit\u00e0 di vulnerabilit\u00e0 da strumenti automatizzati. \u00c8 tutto impossibile da analizzare e correggere, poich\u00e9 non si sono ancora esaminati i risultati dei sei mesi precedenti, e ora arriva un nuovo carico.<\/p>\n<p>Nel corso dell'attivit\u00e0 della nostra azienda, osserviamo che la sicurezza in tutti i settori e le industrie riconosce che \u00e8 arrivato il momento di unirsi e lavorare insieme nello sviluppo - nel\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>. Il paradigma DevSecOps si integra perfettamente con la metodologia di sviluppo agile, nella sua implementazione, supporto e partecipazione ad ogni rilascio e iterazione.<\/p>\n<p><img decoding=\"async\" alt=\"Paura e odio per il DevSecOps\" src=\"\/wp-content\/uploads\/2019\/04\/cf258bd7efc82ff27787b5029cf2f945.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Transizione a DevSecOps<\/h2>\n<p>\nLa parola pi\u00f9 importante nel Security Development Lifecycle \u00e8 <b>\u00abprocesso\u00bb<\/b>. Devi capirlo prima di pensare di acquistare strumenti.<\/p>\n<blockquote><p>\u00c8 semplicemente insufficiente inserire strumenti nel processo DevOps - \u00e8 fondamentale la collaborazione e la comprensione tra i partecipanti al processo.<\/p><\/blockquote>\n<p><\/p>\n<h3>Le persone sono pi\u00f9 importanti degli strumenti<\/h3>\n<p>\nSpesso la pianificazione del processo di sviluppo sicuro inizia con la scelta e l'acquisto di uno strumento, ma termina con tentativi di integrare lo strumento nel processo attuale, che rimangono tentativi. Questo porta a conseguenze negative, poich\u00e9 ogni strumento ha le proprie peculiarit\u00e0 e limitazioni.<\/p>\n<p>Un caso comune \u00e8 quando il dipartimento di sicurezza sceglie uno strumento costoso e di alta qualit\u00e0 con ampie funzionalit\u00e0 e si rivolge agli sviluppatori per integrarlo nel processo. Ma non funziona: il processo \u00e8 strutturato in modo tale che le restrizioni dello strumento gi\u00e0 acquistato non si adattano all'attuale paradigma.<\/p>\n<blockquote><p>Inizia descrivendo quale risultato desideri e come dovrebbe apparire il processo. Questo aiuter\u00e0 a comprendere i ruoli dello strumento e della sicurezza nel processo.<\/p><\/blockquote>\n<p><\/p>\n<h3>Comincia con ci\u00f2 che \u00e8 gi\u00e0 in uso.<\/h3>\n<p>\nPrima di acquistare strumenti costosi, guarda a ci\u00f2 che hai gi\u00e0. Ogni azienda ha requisiti di sicurezza per lo sviluppo, ci sono controlli, penetration test \u2014 perch\u00e9 non trasformare tutto questo in una forma comprensibile e utile per tutti?<\/p>\n<p>Di solito, i requisiti sono un documento cartaceo che viene lasciato sullo scaffale. C'\u00e8 stata una volta in cui siamo stati in un'azienda per esaminare i processi e abbiamo chiesto di mostrare i requisiti di sicurezza per il software. Il specialista responsabile ha cercato a lungo:<\/p>\n<p><i>\u2014 Adesso, c'era da qualche parte nelle note il percorso per trovare questo documento.<\/i><\/p>\n<p>Alla fine abbiamo ottenuto il documento dopo una settimana.<\/p>\n<p>Per requisiti, controlli e altro, crea una pagina, ad esempio, su\u00a0<b>Confluence<\/b>\u00a0\u2014 \u00e8 comodo per tutti.<\/p>\n<blockquote><p>\u00c8 pi\u00f9 semplice riformattare ci\u00f2 che \u00e8 gi\u00e0 disponibile e utilizzarlo come punto di partenza.<\/p><\/blockquote>\n<p><\/p>\n<h3>Utilizza i Security Champions <\/h3>\n<p>\nDi solito, in un'azienda media con 100-200 sviluppatori lavora un esperto di sicurezza, che svolge diverse funzioni e fisicamente non riesce a controllare tutto. Anche se si impegna al massimo, non pu\u00f2 verificare da solo tutto il codice generato dallo sviluppo. Per questi casi \u00e8 stato sviluppato il concetto di <noindex><a rel=\"nofollow\" href=\"https:\/\/www.owasp.org\/index.php\/Security_Champions\"><b>Security Champions<\/b><\/a><\/noindex>.<\/p>\n<blockquote><p>I Security Champions sono persone all'interno del team di sviluppo, interessate alla sicurezza del tuo prodotto.<\/p><\/blockquote>\n<p><img decoding=\"async\" alt=\"Paura e odio per il DevSecOps\" src=\"\/wp-content\/uploads\/2019\/04\/c67728db4a6e34407da199387eba2bb4.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIl Security Champion \u00e8 un punto di ingresso nel team di sviluppo e un evangelista della sicurezza in una sola persona.<\/p>\n<p>Di solito, quando un esperto di sicurezza entra nel team di sviluppo e segnala un errore nel codice, riceve una risposta sorpresa:<\/p>\n<p><i>\u2014 Chi sei? Ti vedo per la prima volta. Per me va tutto bene \u2014 il mio senior mi ha dato un 'apply' durante il code review, andiamo avanti!<\/i><\/p>\n<p>Questa \u00e8 una situazione tipica, poich\u00e9 c'\u00e8 molta pi\u00f9 fiducia nei confronti dei senior o semplicemente dei colleghi del team con cui il sviluppatore interagisce costantemente nel lavoro e nelle revisioni del codice. Se il Security Champion indica un errore e le conseguenze invece del responsabile della sicurezza, la sua parola avr\u00e0 pi\u00f9 peso.<\/p>\n<p>Inoltre, gli sviluppatori conoscono meglio il proprio codice rispetto a qualsiasi esperto di sicurezza. Per una persona che ha almeno 5 progetti nello strumento di analisi statica, \u00e8 solitamente difficile ricordare tutte le sfumature. I Security Champions conoscono il proprio prodotto: come interagisce con cosa e a cosa prestare attenzione in primo luogo \u2014 sono pi\u00f9 efficaci.<\/p>\n<p>Quindi riflettete sull'introduzione di Security Champions e sull'ampliamento dell'influenza del team di sicurezza. Per il campione stesso \u00e8 anche vantaggioso: sviluppo professionale in un nuovo campo, ampliamento delle competenze tecniche, potenziamento delle abilit\u00e0 tecniche, gestionali e di leadership, aumento del valore sul mercato. Questo \u00e8 un elemento di ingegneria sociale, i vostri \u00abocchi\u00bb nel team di sviluppo.<\/p>\n<h2>Fasi di test<\/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 su 80<\/a><\/noindex>\u00a0afferma che il 20% degli sforzi produce l'80% dei risultati. Questo 20% comprende le pratiche di analisi delle applicazioni che possono e devono essere automatizzate. Esempi di tali attivit\u00e0 includono l'analisi statica \u2014 <b>SAST<\/b>, l'analisi dinamica \u2014 <b>DAST,<\/b> e\u00a0<b>il controllo delle risorse Open Source<\/b>. Spiegher\u00f2 pi\u00f9 nel dettaglio le attivit\u00e0, cos\u00ec come gli strumenti e le peculiarit\u00e0 che incontriamo di solito nel loro implemento nel processo, e come farlo correttamente.<\/p>\n<p><img decoding=\"async\" alt=\"Paura e odio per il DevSecOps\" src=\"\/wp-content\/uploads\/2019\/04\/db720e0879cdd1ed818461ffb5f927da.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Principali problemi degli strumenti<\/h3>\n<p>\nEvidenzier\u00f2 i problemi attuali comuni a tutti gli strumenti che richiedono attenzione. Analizzer\u00f2 questi problemi pi\u00f9 a fondo per evitare ripetizioni.<\/p>\n<p><b>Lunghe tempistiche di analisi. <\/b>Se dal commit al rilascio in produzione passano 30 minuti per tutti i test e la compilazione, i controlli di sicurezza informatica richiederanno giorni. Nessuno vorr\u00e0 rallentare il processo. Tenete presente questa peculiarit\u00e0 e fate le dovute considerazioni.<\/p>\n<p><b>Alto livello di False Negative o False Positive. <\/b>Tutti i prodotti sono diversi, utilizzano framework diversi e il proprio stile di scrittura del codice. Su basi di codice e tecnologie diverse, gli strumenti possono mostrare differenti livelli di False Negative e False Positive. Pertanto, osservate ci\u00f2 che \u00e8 specifico nella\u00a0<b>vostra<\/b> azienda e per <b>i vostri<\/b> le applicazioni mostreranno risultati buoni e affidabili.<\/p>\n<p><b>Nessuna integrazione con strumenti esistenti.<\/b>. Esamina gli strumenti dal punto di vista delle integrazioni, considerando ci\u00f2 che gi\u00e0 utilizzi. Ad esempio, se hai Jenkins o TeamCity, controlla l'integrazione degli strumenti con questo software specifico, non con GitLab CI, che non stai usando.<\/p>\n<p><b>Mancanza o eccessiva complessit\u00e0 nella personalizzazione. <\/b>Se uno strumento non ha API, a cosa serve? Tutto ci\u00f2 che pu\u00f2 essere fatto nell'interfaccia deve essere accessibile tramite API. Idealmente, lo strumento dovrebbe avere la possibilit\u00e0 di personalizzare i controlli.<\/p>\n<p><b>Nessun Roadmap per lo sviluppo del prodotto. <\/b>Lo sviluppo non si ferma mai; utilizziamo sempre nuovi framework e funzionalit\u00e0, riscriviamo il vecchio codice in nuovi linguaggi. Vogliamo essere certi che lo strumento che acquisteremo supporter\u00e0 nuovi framework e tecnologie. Pertanto, \u00e8 importante sapere che il prodotto ha un reale e valido <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> di sviluppo.<\/p>\n<h3>Caratteristiche del processo.<\/h3>\n<p>\nOltre alle caratteristiche degli strumenti, considera anche le peculiarit\u00e0 del processo di sviluppo. Ad esempio, ostacolare lo sviluppo \u00e8 un errore comune. Vediamo quali altre caratteristiche dovremmo considerare e su cosa prestare attenzione per il team di sicurezza.<\/p>\n<p>Per non compromettere le scadenze di sviluppo e rilascio, crea <b>regole diverse<\/b> e differenti <b>show stoppers\u00a0<\/b>\u2014 criteri di interruzione del processo di build in presenza di vulnerabilit\u00e0 \u2014 <b>per diversi ambienti<\/b>. Ad esempio, comprendiamo che l'attuale ramo \u00e8 destinato a un ambiente di sviluppo o UAT, quindi non ci fermiamo e non diciamo:<\/p>\n<p><i>\u2014 Avete qui delle vulnerabilit\u00e0, non andrete oltre!<\/i><\/p>\n<p>In questa fase, \u00e8 importante segnalare agli sviluppatori che ci sono problematiche di sicurezza a cui prestare attenzione.<\/p>\n<p><b>La presenza di vulnerabilit\u00e0 non \u00e8 un ostacolo per i test successivi<\/b>: manuali, di integrazione o manuali. D'altra parte, dobbiamo trovare un modo per aumentare la sicurezza del prodotto, affinch\u00e9 gli sviluppatori non trascurino ci\u00f2 che rileva la sicurezza. Quindi, a volte procediamo in questo modo: nell'ambiente, quando viene distribuito sull'ambiente di sviluppo, informiamo semplicemente lo sviluppo:<\/p>\n<p><i>\u2014 Ragazzi, se avete problemi, vi preghiamo di prestarvi attenzione.<\/i><\/p>\n<p>Nella fase UAT mostriamo di nuovo avvisi sulle vulnerabilit\u00e0, e nella fase di uscita in produzione diciamo:<\/p>\n<p><i>\u2014 Ragazzi, vi abbiamo avvisato pi\u00f9 volte, non avete fatto nulla \u2014 con questo non vi lasceremo andare.<\/i><\/p>\n<p>Se parliamo di codice e di dinamica, dobbiamo mostrare e avvisare sulle vulnerabilit\u00e0 solo delle funzionalit\u00e0 e del codice che sono stati appena scritti in questa funzionalit\u00e0. Se lo sviluppatore ha spostato un pulsante di 3 pixel e gli diciamo che ha un'iniezione SQL e quindi deve correggere urgentemente \u2014 non \u00e8 corretto. Guardate solo a ci\u00f2 che \u00e8 stato scritto ora e al cambiamento che arriva nell'applicazione.<\/p>\n<p>Supponiamo di avere un difetto funzionale \u2014 come non dovrebbe funzionare l'applicazione: i soldi non vengono trasferiti, al clic su un pulsante non si passa alla pagina successiva o il prodotto non viene caricato. <b>Difetti di sicurezza<\/b>\u00a0\u2014 sono difetti uguali, ma non in termini di funzionamento dell'applicazione, bens\u00ec di sicurezza. <\/p>\n<blockquote><p>Non tutti i problemi di qualit\u00e0 del software sono problemi di sicurezza. Ma tutti i problemi di sicurezza sono legati alla qualit\u00e0 del software. Sherif Mansour, Expedia.<\/p><\/blockquote>\n<p>\nPoich\u00e9 tutte le vulnerabilit\u00e0 sono difetti, devono trovarsi nello stesso luogo in cui si trovano tutti i difetti di sviluppo. Quindi dimenticatevi di report e dei terribili PDF che nessuno legge.<\/p>\n<p><img decoding=\"async\" alt=\"Paura e odio per il DevSecOps\" src=\"\/wp-content\/uploads\/2019\/04\/e54e64658a3882bdc68a48c6ef426746.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nQuando lavoravo in una societ\u00e0 di sviluppo, ricevetti un report dagli strumenti di analisi statici. L'ho aperto, mi sono spaventato, ho fatto un caff\u00e8, ho sfogliato 350 pagine, l'ho chiuso e sono tornato a lavorare. <b>I grandi report sono report morti<\/b>. Di solito non vanno da nessuna parte, le e-mail vengono eliminate, dimenticate, perse, o il business dice che si assume i rischi.<\/p>\n<p>Cosa fare? I difetti confermati che sono stati trovati vengono semplicemente trasformati in un formato utile per lo sviluppo, ad esempio accumulandoli nel backlog in Jira. Prioritizziamo e risolviamo i difetti in base all'ordine di priorit\u00e0, insieme ai difetti funzionali e ai difetti di test.<\/p>\n<h2>Analisi statica - SAST<\/h2>\n<p>\n<b>\u00c8 un'analisi del codice per la presenza di vulnerabilit\u00e0<\/b>, ma non \u00e8 la stessa cosa di SonarQube. Non controlliamo solo i pattern o lo stile. Durante l'analisi vengono applicati diversi approcci: sull'albero delle vulnerabilit\u00e0, su\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>, sull'analisi dei file di configurazione. Questo \u00e8 tutto ci\u00f2 che riguarda direttamente il codice.<\/p>\n<p><b>Vantaggi dell'approccio<\/b>: <b>identificazione delle vulnerabilit\u00e0 nel codice nelle fasi iniziali dello sviluppo<\/b>, quando non ci sono ancora ambienti e strumenti pronti, e<b>\u00a0possibilit\u00e0 di scansione incrementale<\/b>: scansione della parte di codice che \u00e8 cambiata e solo della funzionalit\u00e0 su cui stiamo lavorando, il che riduce il tempo di scansione.<\/p>\n<p><b>Svantaggi<\/b>\u00a0\u2014 \u00e8 la mancanza di supporto per i linguaggi necessari.<\/p>\n<p><b>Integrazioni necessarie, <\/b>che dovrebbero esistere negli strumenti, secondo la mia opinione soggettiva:<\/p>\n<ul>\n<li>Strumento di integrazione: Jenkins, TeamCity e Gitlab CI.\n<\/li>\n<li>Ambiente di sviluppo: Intellij IDEA, Visual Studio. \u00c8 pi\u00f9 comodo per lo sviluppatore non dover cercare in un'interfaccia confusa che deve ancora essere memorizzata, ma vedere direttamente nel proprio ambiente di sviluppo tutti i necessari integrazioni e vulnerabilit\u00e0 che ha trovato.\n<\/li>\n<li>Code review: SonarQube e revisione manuale.\n<\/li>\n<li>Tracker di difetti: Jira e Bugzilla.\n<\/li>\n<\/ul>\n<p>\nNell'immagine ci sono alcuni dei migliori rappresentanti dell'analisi statica.<\/p>\n<p><img decoding=\"async\" alt=\"Paura e odio per il DevSecOps\" src=\"\/wp-content\/uploads\/2019\/04\/bab3420874ac090d4d107edb0d2b857b.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNon sono gli strumenti che contano, ma il processo; per questo esistono soluzioni Open Source che sono ugualmente valide per testare il processo.<\/p>\n<p><img decoding=\"async\" alt=\"Paura e odio per il DevSecOps\" src=\"\/wp-content\/uploads\/2019\/04\/4f2c278922c291b15922bc5748f87dc3.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSAST Open Source non trova un'enorme quantit\u00e0 di vulnerabilit\u00e0 o complessi DataFlow, ma nella costruzione del processo possono e devono essere utilizzati. Aiutano a comprendere come sar\u00e0 strutturato il processo, chi sar\u00e0 responsabile dei bug, chi deve fare i report e chi deve riferire. Se desiderate intraprendere la fase iniziale della sicurezza del vostro codice, utilizzate soluzioni Open Source.<\/p>\n<p>Come pu\u00f2 essere integrato se siete all'inizio del percorso e non avete nulla: n\u00e9 CI, n\u00e9 Jenkins, n\u00e9 TeamCity? Esaminiamo le integrazioni nel processo.<\/p>\n<h3>Integrazione a livello CVS<\/h3>\n<p>\nSe avete Bitbucket o GitLab, \u00e8 possibile fare integrazione a livelli <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/CVS\">Concurrent Versions System<\/a><\/noindex>.<\/p>\n<p><b>Su evento<\/b>\u00a0\u2014 pull request, commit. Scansionate il codice e nello stato di build mostrate se il controllo della sicurezza \u00e8 stato superato o meno.<\/p>\n<p><b>Feedback. <\/b>Senza dubbio, il feedback \u00e8 sempre necessario. Se semplicemente avete eseguito il lavoro l\u00ec, per il security, l'avete messo in una scatola e non avete detto nulla a nessuno, e poi alla fine del mese fate emergere un sacco di bug, ci\u00f2 non \u00e8 corretto e non va bene.<\/p>\n<h3>Integrazione con il sistema di code review<\/h3>\n<p>\nUna volta, abbiamo impostato come revisore predefinito per l'utente tecnico AppSec in una serie di progetti importanti. A seconda che vengano trovati errori nel nuovo codice o meno, il revisore del pull request assegna uno stato di \"accept\" o \"need work\" \u2014 o tutto \u00e8 OK, oppure \u00e8 necessario rivedere e ci saranno collegamenti su ci\u00f2 che deve essere modificato. Per l'integrazione con la versione che va in produzione, avevamo abilitato il divieto di merge se il test di sicurezza non veniva superato. Questo lo abbiamo incluso nella revisione manuale del codice, e gli altri membri del processo vedevano gli stati di sicurezza relativi a questo specifico processo.<\/p>\n<h3>Integrazione con SonarQube<\/h3>\n<p>\nMolti hanno <noindex><a rel=\"nofollow\" href=\"https:\/\/de.wikipedia.org\/wiki\/Quality_Gate\">quality gate<\/a><\/noindex> per la qualit\u00e0 del codice. Qui vale lo stesso principio: \u00e8 possibile creare gli stessi gates solo per gli strumenti SAST. Ci sar\u00e0 la stessa interfaccia, lo stesso quality gate, solo che si chiamer\u00e0 <b>security gate<\/b>. E anche, se hai impostato un processo utilizzando SonarQube, puoi facilmente integrare tutto l\u00ec.<\/p>\n<h3>Integrazione a livello CI<\/h3>\n<p>\nQui \u00e8 tutto piuttosto semplice:<\/p>\n<ul>\n<li><b>A un livello con i test automatici<\/b>, i test unitari.\n<\/li>\n<li><b>Divisione per fasi di sviluppo<\/b>: dev, test, prod. Possono essere attivati set di regole diversi o condizioni di errore diverse: fermiamo la build, non fermiamo la build.\n<\/li>\n<li><b>Esecuzione sincrona\/asincrona<\/b>. Stiamo aspettando il completamento dei test di sicurezza o non lo facciamo. In altre parole, li abbiamo semplicemente avviati e andiamo avanti, e poi riceviamo lo stato che tutto va bene o male.\n<\/li>\n<\/ul>\n<p>\nQuesto \u00e8 tutto in un mondo ideale e roseo. Nella vita reale non esiste, ma miriamo a questo. Il risultato delle verifiche di sicurezza deve essere analogo ai risultati dei test unitari.<\/p>\n<p>Ad esempio, abbiamo preso un grande progetto e deciso di scannerizzarlo con SAST \u2014 OK. Abbiamo inserito questo progetto in SAST, ci ha restituito 20.000 vulnerabilit\u00e0 e, con decisione, abbiamo accettato che andasse tutto bene. 20.000 vulnerabilit\u00e0 rappresentano il nostro debito tecnico. Metteremo il debito in una scatola, lo smistiamo pian piano e registriamo i bug nei tracker dei difetti. Assumeremo un'azienda, faremo tutto noi stessi o ci aiuteranno i Security Champions \u2014 e il debito tecnico diminuir\u00e0.<\/p>\n<p>Tutte le vulnerabilit\u00e0 emergenti nel nuovo codice devono essere affrontate come gli errori nei test unitari o nei test automatici. In altre parole, se una build \u00e8 stata lanciata, sono stati eseguiti e sono falliti due test e due test di sicurezza. OK - abbiamo controllato cosa \u00e8 successo, corretto il primo, corretto il secondo, e la prossima volta eseguiamo di nuovo - tutto va bene, non sono emerse nuove vulnerabilit\u00e0 e i test non sono falliti. Se la questione \u00e8 pi\u00f9 complessa e richiede una comprensione pi\u00f9 approfondita, o se la correzione delle vulnerabilit\u00e0 implica componenti significativi del backend: viene aperto un bug nel tracker dei difetti, viene prioritizzato e corretto. Sfortunatamente, il mondo non \u00e8 perfetto e a volte i test falliscono.<\/p>\n<p>Esempio di security gate \u2013 simile al quality gate, basato sulla presenza e sul numero di vulnerabilit\u00e0 nel codice.<\/p>\n<p><img decoding=\"async\" alt=\"Paura e odio per il DevSecOps\" src=\"\/wp-content\/uploads\/2019\/04\/eb30d3c7988b28c2cb25e9656871ec96.png\" style=\"display:block;margin: 0 auto;\" \/>Integriamo con SonarQube \u2013 il plugin viene installato, \u00e8 tutto molto comodo e fantastico.<\/p>\n<h3>Integrazione con l'ambiente di sviluppo<\/h3>\n<p>\n<b>Opzioni di integrazione:<\/b><\/p>\n<ul>\n<li>Avvio della scansione dall'ambiente di sviluppo prima del commit.\n<\/li>\n<li>Visualizzazione dei risultati.\n<\/li>\n<li>Analisi dei risultati.\n<\/li>\n<li>Sincronizzazione con il server.\n<\/li>\n<\/ul>\n<p>\nEcco come appare l'ottenimento dei risultati dal server.<\/p>\n<p><img decoding=\"async\" alt=\"Paura e odio per il DevSecOps\" src=\"\/wp-content\/uploads\/2019\/04\/270d4af76fddc0ceebca908c7d3835b8.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNel nostro ambiente di sviluppo <noindex><a rel=\"nofollow\" href=\"https:\/\/www.jetbrains.com\/idea\/\">IntelliJ IDEA<\/a><\/noindex> appare semplicemente un'ulteriore voce che indica che durante la scansione sono state rilevate vulnerabilit\u00e0. \u00c8 possibile correggere immediatamente il codice, consultare le raccomandazioni e\u00a0<noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Control-flow_graph\">Flow Graph<\/a><\/noindex>. Tutto questo \u00e8 situato nell'area di lavoro dello sviluppatore, il che \u00e8 molto comodo: non \u00e8 necessario navigare tra altri link e cercare qualcosa di aggiuntivo.<\/p>\n<h2>Open Source<\/h2>\n<p>\nQuesto \u00e8 il mio argomento preferito. Tutti usano librerie Open Source: perch\u00e9 scrivere tonnellate di workaround e reinventare la ruota quando si pu\u00f2 semplicemente usare una libreria pronta in cui \u00e8 gi\u00e0 tutto implementato?<\/p>\n<p><img decoding=\"async\" alt=\"Paura e odio per il DevSecOps\" src=\"\/wp-content\/uploads\/2019\/04\/05b9cd5a8b269af2a3f59931a0774778.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nCerto, \u00e8 vero, ma le librerie sono anche scritte da persone, includono quindi certi rischi e presentano vulnerabilit\u00e0 di cui si parla periodicamente o costantemente. Pertanto, c'\u00e8 un ulteriore passo nella Sicurezza delle Applicazioni: l'analisi dei componenti Open Source.<\/p>\n<h3>Analisi Open Source - OSA<\/h3>\n<p>\nLo strumento comprende tre fasi principali.<\/p>\n<p><b>Ricerca di vulnerabilit\u00e0 nelle librerie. <\/b>Ad esempio, lo strumento sa che stiamo utilizzando una certa libreria e che in\u00a0<noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/Common_Vulnerabilities_and_Exposures\">CVE<\/a><\/noindex> o nei bug tracker ci sono vulnerabilit\u00e0 relative a questa versione della libreria. Quando si tenta di utilizzarla, lo strumento emetter\u00e0 un avviso che indica che la libreria \u00e8 vulnerabile e consiglia di utilizzare un'altra versione priva di vulnerabilit\u00e0.<\/p>\n<p><b>Analisi della conformit\u00e0 alle licenze. <\/b>Da noi non \u00e8 ancora molto popolare, ma se si lavora con l'estero, si potrebbe ricevere una reprimenda per l'uso di componenti con codice sorgente aperto che non possono essere utilizzati o modificati. Secondo la politica di licenza della libreria, non possiamo farlo. Oppure, se l'abbiamo modificata e la utilizziamo, dobbiamo rendere il nostro codice pubblico. Naturalmente, nessuno vuole condividere il codice dei propri prodotti, ma ci sono anche modi per proteggersi da questo.<\/p>\n<p><b>Analisi dei componenti utilizzati in ambiente industriale. <\/b>Immaginiamo una situazione ipotetica in cui abbiamo finalmente completato lo sviluppo e rilasciato in produzione l'ultima versione del nostro microservizio. L\u00ec funziona meravigliosamente\u2014una settimana, un mese, un anno. Non lo raccogliamo, non eseguiamo controlli di sicurezza, sembra che tutto vada bene. Ma improvvisamente, due settimane dopo il rilascio, emerge una vulnerabilit\u00e0 critica in un componente Open Source che utilizziamo in questa build, nell'ambiente di produzione. Se non registriamo cosa e dove utilizziamo, non riusciremo a vedere questa vulnerabilit\u00e0. Alcuni strumenti offrono la possibilit\u00e0 di monitorare le vulnerabilit\u00e0 delle librerie attualmente in uso in produzione. Questo \u00e8 molto utile.<\/p>\n<p><b>Funzionalit\u00e0:<\/b><\/p>\n<ul>\n<li>Politiche diverse per fasi di sviluppo diverse.\n<\/li>\n<li>Monitoraggio dei componenti nell'ambiente industriale.\n<\/li>\n<li>Controllo delle librerie nell'ambito dell'organizzazione.\n<\/li>\n<li>Supporto per vari sistemi di build e linguaggi.\n<\/li>\n<li>Analisi delle immagini Docker.\n<\/li>\n<\/ul>\n<p>\nAlcuni esempi di leader del settore che si occupano di analisi Open Source.<\/p>\n<p><img decoding=\"async\" alt=\"Paura e odio per il DevSecOps\" src=\"\/wp-content\/uploads\/2019\/04\/f1b05f86beb4a64f9bf3443963e3603b.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nL'unico gratuito tra di loro \u00e8 <noindex><a rel=\"nofollow\" href=\"https:\/\/www.owasp.org\/index.php\/OWASP_Dependency_Check\">Dependency-Check<\/a><\/noindex> da OWASP. Pu\u00f2 essere attivato nelle prime fasi per vedere come funziona e cosa supporta. Fondamentalmente, si tratta di tutti i prodotti cloud, oppure on-premise, ma con la loro base vengono comunque inviati su Internet. Non inviano le vostre librerie, ma hash o valori calcolati, insieme a fingerprint, ai loro server per ricevere notizie sulla presenza di vulnerabilit\u00e0.<\/p>\n<h3>Integrazione nel processo<\/h3>\n<p>\n<b>Controllo delle librerie nel perimetro<\/b>, che vengono scaricate da fonti esterne. Abbiamo repository esterni e interni. Ad esempio, all'interno di Event Central abbiamo Nexus, e vogliamo che nel nostro repository non ci siano vulnerabilit\u00e0 con stato \u2018critico\u2019 o \u2018alto\u2019. \u00c8 possibile configurare il proxy utilizzando lo strumento Nexus Firewall Lifecycle in modo che tali vulnerabilit\u00e0 vengano bloccate e non entrino nel repository interno.<\/p>\n<p><b>Integrazione nel CI<\/b>. Su un livello con i test automatici, i test unitari e la divisione per fasi di sviluppo: dev, test, prod. In ogni fase \u00e8 possibile scaricare qualsiasi libreria, utilizzare ci\u00f2 che si desidera, ma se c'\u00e8 qualcosa di rigido con lo stato \"critical\", forse \u00e8 il caso di attirare l'attenzione degli sviluppatori in fase di produzione.<\/p>\n<p><b>Integrazione con gli artefatti<\/b>: Nexus e JFrog.<\/p>\n<p><b>Integrazione nell'ambiente di sviluppo. <\/b>Strumenti che scegliete devono avere integrazione con gli ambienti di sviluppo. Lo sviluppatore deve avere accesso dai propri strumenti di lavoro ai risultati della scansione, oppure la possibilit\u00e0 di scansionare e verificare il codice per la presenza di vulnerabilit\u00e0 prima di effettuare il commit in CVS.<\/p>\n<p><b>Integrazione nel CD. <\/b>Questa \u00e8 una funzionalit\u00e0 davvero interessante che mi piace molto e della quale ho gi\u00e0 parlato: il monitoraggio dell'emergere di nuove vulnerabilit\u00e0 nell'ambiente industriale. Funziona pi\u00f9 o meno cos\u00ec.<\/p>\n<p><img decoding=\"async\" alt=\"Paura e odio per il DevSecOps\" src=\"\/wp-content\/uploads\/2019\/04\/605c638df343db5c47ab36b4dc00f41c.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAbbiamo <b>Repository di componenti pubblici<\/b>\u00a0\u2014 alcuni strumenti esterni e il nostro repository interno. Vogliamo che contenga solo componenti affidabili. Durante il proxy della richiesta, verifichiamo che la libreria scaricata non presenti vulnerabilit\u00e0. Se rientra in determinate politiche che impostiamo e che dobbiamo necessariamente concordare con il team di sviluppo, non la scarichiamo e riceviamo una segnalazione per utilizzare una versione diversa. Di conseguenza, se nella libreria c'\u00e8 qualcosa di realmente critico e dannoso, il sviluppatore non ricever\u00e0 la libreria gi\u00e0 in fase di installazione \u2014 sar\u00e0 tenuto a utilizzare una versione superiore o inferiore.<\/p>\n<ul>\n<li>Durante la build, verifichiamo che nessuno abbia sneakyato nulla di dannoso, che tutti i componenti siano sicuri e che nessuno abbia portato nulla di pericoloso su una chiavetta USB.\n<\/li>\n<li>Nel nostro repository ci sono solo componenti affidabili. \n<\/li>\n<li>Durante il deployment, verifichiamo ancora una volta il pacchetto stesso: war, jar, DL o immagine Docker, per assicurarci che rispetti le politiche. \n<\/li>\n<li>All'uscita in produzione monitoriamo ci\u00f2 che accade nell'ambiente di produzione: se compaiono o meno vulnerabilit\u00e0 critiche.\n<\/li>\n<\/ul>\n<p><\/p>\n<h2>Analisi dinamica \u2014 DAST<\/h2>\n<p>\nGli strumenti di analisi dinamica si differenziano notevolmente da tutto ci\u00f2 che \u00e8 stato detto finora. Rappresentano una sorta di simulazione del lavoro dell'utente con l'applicazione. Se si tratta di un'app web, inviamo richieste simulando l'operato del cliente, clicchiamo sui pulsanti dell'interfaccia, inviamo dati artificiali dai moduli: virgolette, parentesi, simboli in diverse codifiche, per osservare come l'applicazione gestisce e processa i dati esterni.<\/p>\n<p>Questo stesso sistema consente di controllare le vulnerabilit\u00e0 di tipo template nell'Open Source. Poich\u00e9 il DAST non sa quale Open Source stiamo utilizzando, semplicemente lancia patter di \"malware\" e analizza le risposte del server:<\/p>\n<p><i>\u2014 Ah, qui c'\u00e8 un problema di deserializzazione, e qui no.<\/i><\/p>\n<p>Ci sono grandi rischi, perch\u00e9 se esegui questo test di sicurezza sulla stessa infrastruttura utilizzata dai tester, potrebbero verificarsi problemi imprevisti.<\/p>\n<ul>\n<li>Elevato carico sulla rete del server applicativo.\n<\/li>\n<li>Nessuna integrazione.\n<\/li>\n<li>Possibilit\u00e0 di modificare le impostazioni dell'applicazione analizzata.\n<\/li>\n<li>Nessun supporto per le tecnologie necessarie.\n<\/li>\n<li>Difficolt\u00e0 di configurazione.\n<\/li>\n<\/ul>\n<p>\nAbbiamo avuto una situazione in cui finalmente abbiamo lanciato AppScan: abbiamo faticato a ottenere accesso all'applicazione, abbiamo ottenuto 3 account e ci siamo rallegrati \u2014 finalmente controlliamo tutto! Abbiamo avviato la scansione e la prima cosa che ha fatto AppScan \u00e8 stata entrare nel pannello di amministrazione, cliccare su tutti i pulsanti, cambiare met\u00e0 dei dati e poi ha anche bloccato il server con le sue <noindex><a rel=\"nofollow\" href=\"https:\/\/www.mailform.io\/\">mailform<\/a><\/noindex>-richieste. Lo sviluppo con i test ha detto:<\/p>\n<p><i>\u2014 Ragazzi, state scherzando?! Vi abbiamo dato gli account e voi avete bloccato il banco!<\/i><\/p>\n<p>Tenete conto dei potenziali rischi. Idealmente, preparate un banco di prova separato per il test della sicurezza informatica, che sar\u00e0 isolato dal resto dell'ambiente, e sarebbe consigliabile controllare il pannello di amministrazione manualmente. Questo \u00e8 un pentest \u2014 i restanti percentuali di sforzo che non stiamo considerando ora. <\/p>\n<p>Vale la pena considerare che si pu\u00f2 utilizzare questo come analogia ai test di carico. Nella prima fase si pu\u00f2 attivare lo scanner dinamico con 10-15 flussi e vedere cosa succede, ma di solito, come dimostra la pratica, non c'\u00e8 nulla di buono.<\/p>\n<p>Alcune risorse che di solito utilizziamo.<\/p>\n<p><img decoding=\"async\" alt=\"Paura e odio per il DevSecOps\" src=\"\/wp-content\/uploads\/2019\/04\/45a25dbe2a2d053e6ed16d31b6ac53ef.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nVale la pena evidenziare <noindex><a rel=\"nofollow\" href=\"https:\/\/portswigger.net\/burp\">Burp Suite<\/a><\/noindex>\u00a0\u00e8 un \"coltellino svizzero\" per ogni esperto di sicurezza. Lo usano tutti ed \u00e8 molto pratico. Ora \u00e8 disponibile una nuova versione dimostrativa dell'enterprise edition. In precedenza era solo un'utilit\u00e0 stand alone con plugin, ma ora finalmente gli sviluppatori stanno creando un grande server da cui sar\u00e0 possibile gestire pi\u00f9 agenti. \u00c8 fantastico, consiglio di provarlo.<\/p>\n<h3>Integrazione nel processo<\/h3>\n<p>\nL'integrazione avviene in modo abbastanza buono e semplice: <b>avvio della scansione dopo un'installazione riuscita <\/b>applicazione su stand e\u00a0<b>scansione dopo il completamento con successo del test di integrazione<\/b>.<\/p>\n<p>Se le integrazioni non funzionano o ci sono dei segnaposto e funzioni mock, \u00e8 senza senso e inutile \u2014 qualunque pattern inviamo, il server risponder\u00e0 comunque in modo identico.<\/p>\n<ul>\n<li>Ideale \u00e8 un ambiente dedicato per i test.\n<\/li>\n<li>Prima dell'inizio dei test, annota la sequenza di login.\n<\/li>\n<li>Il test del sistema di amministrazione \u00e8 solo manuale.\n<\/li>\n<\/ul>\n<p><\/p>\n<h2>Processo<\/h2>\n<p>\nUna panoramica generale sul processo e sul funzionamento di ciascun strumento in particolare. Ogni applicazione \u00e8 diversa: una pu\u00f2 avere un'analisi dinamica pi\u00f9 efficace, un'altra pu\u00f2 eccellere in quella statica, un'altra ancora nell'analisi OpenSource, nei pentest o in qualcos'altro, ad esempio eventi con\u00a0<noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/Waf\">Waf<\/a><\/noindex>.<\/p>\n<blockquote><p>Ogni processo ha bisogno di controllo.<\/p><\/blockquote>\n<p>\nPer comprendere come funziona un processo e dove pu\u00f2 essere migliorato, \u00e8 necessario raccogliere metriche da tutto ci\u00f2 che \u00e8 accessibile, comprese le metriche di produzione, quelle degli strumenti e quelle dei tracker di difetti.<\/p>\n<p>Qualsiasi dato \u00e8 utile. \u00c8 importante guardare attraverso diverse angolazioni per capire dove viene applicato meglio ciascuno strumento e dove il processo ha specifiche difficolt\u00e0. Potrebbe essere utile esaminare il tempo di risposta dello sviluppo per capire dove migliorare il processo in base al tempo. Pi\u00f9 dati ci sono, pi\u00f9 angolazioni si possono costruire, da quelle di alto livello fino ai dettagli di ciascun processo.<\/p>\n<p><img decoding=\"async\" alt=\"Paura e odio per il DevSecOps\" src=\"\/wp-content\/uploads\/2019\/04\/93e079b19c4c8189ce6ca4eaec186eed.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPoich\u00e9 tutti gli analizzatori statici e dinamici hanno proprie API, modi di avvio e principi, alcuni hanno scheduler e altri no, stiamo creando uno strumento <b>AppSec Orchestrator<\/b>, che consente di creare un unico punto di accesso a tutto il processo del prodotto e gestirlo da un'unica posizione.<\/p>\n<p>Per i manager, gli sviluppatori e gli ingegneri della sicurezza c'\u00e8 un punto di accesso da cui si pu\u00f2 osservare cosa \u00e8 attivo, configurare e avviare la scansione, ottenere i risultati della scansione e presentare requisiti. Ci sforziamo di allontanarci dai documenti cartacei, traducendo tutto in formati comprensibili utilizzati nello sviluppo: pagine su Confluence con stato e metriche, difetti in Jira o in diversi tracker di difetti, oppure integrando nel processo sincrono\/asincrono in CI\/CD.<\/p>\n<h2>Punti Chiave<\/h2>\n<p>\n<b>Gli strumenti non sono l'aspetto principale.<\/b> Prima di tutto, bisogna pensare al processo\u2014poi implementare gli strumenti. Gli strumenti sono utili, ma costosi, quindi si pu\u00f2 partire dal processo e impostare l'interazione e la comprensione tra sviluppo e sicurezza. Dal punto di vista della sicurezza, non bisogna 'bloccarsi' su tutto, dal punto di vista dello sviluppo\u2014se c'\u00e8 qualcosa di high mega super critico, allora bisogna risolverlo, non chiudere gli occhi sul problema.<\/p>\n<p><b>Qualit\u00e0 del prodotto<\/b>\u00a0<b>\u2014 obiettivo comune<\/b> sia per la sicurezza che per lo sviluppo. Ci impegniamo a far s\u00ec che tutto funzioni correttamente, evitando rischi reputazionali e perdite finanziarie. \u00c8 proprio per questo motivo che promuoviamo un approccio DevSecOps e SecDevOps, al fine di instaurare una comunicazione efficace e migliorare la qualit\u00e0 del prodotto.<\/p>\n<p><b>Iniziate con ci\u00f2 che gi\u00e0 esiste<\/b>: requisiti, architettura, controlli parziali, formazione, linee guida. Non \u00e8 necessario applicare subito tutte le pratiche a tutti i progetti \u2014 <b>procedete in modo iterativo<\/b>. Non esiste uno standard unico \u2014 <b>sperimentate<\/b> e provate approcci e soluzioni diversi.<\/p>\n<p><b>Tra i difetti della sicurezza informatica e i difetti funzionali c'\u00e8 un segno di uguaglianza.<\/b>.<\/p>\n<p><b>Automatizzate tutto<\/b>, ci\u00f2 che si muove. Tutto ci\u00f2 che non si muove \u2014 movimentatelo e automatizzatelo. Se qualcosa viene fatto manualmente, non \u00e8 un buon segmento del processo. Potrebbe valere la pena rivederlo e automatizzarlo anche.<\/p>\n<p>Se la dimensione del team di sicurezza \u00e8 ridotta \u2014 <b>utilizzate i Security Champions.<\/b>.<\/p>\n<p>\u00c8 possibile che ci\u00f2 di cui ho parlato non sia adatto a voi e che troviate qualcosa di vostro \u2014 ed \u00e8 una cosa positiva. Ma\u00a0<b>scegliete gli strumenti in base ai requisiti specifici del vostro processo.<\/b>. Non dare ascolto a ci\u00f2 che dice la community riguardo a questo strumento, e a questo altro che \u00e8 migliore. Potrebbe essere che il tuo prodotto si dimostri completamente diverso.<\/p>\n<p><b>Requisiti per gli strumenti.<\/b><\/p>\n<ul>\n<li>Basso livello di falsi positivi.\n<\/li>\n<li>Tempo di analisi adeguato.\n<\/li>\n<li>Facilit\u00e0 d'uso.\n<\/li>\n<li>Disponibilit\u00e0 di integrazioni.\n<\/li>\n<li>Comprensione della roadmap di sviluppo del prodotto.\n<\/li>\n<li>Possibilit\u00e0 di personalizzazione degli strumenti.\n<\/li>\n<\/ul>\n<p><\/p>\n<blockquote><p>La presentazione di Yuri \u00e8 stata scelta come una delle migliori al DevOpsConf 2018. Per scoprire ulteriori idee interessanti e casi pratici, vieni il 27 e 28 maggio a Skolkovo per\u00a0<noindex><a rel=\"nofollow\" href=\"https:\/\/devopsconf.io\/moscow-rit\/2019\">DevOpsConf<\/a><\/noindex> nell'ambito di <noindex><a rel=\"nofollow\" href=\"https:\/\/ritfest.ru\/2019\">festival RIT++<\/a><\/noindex>. E ancor meglio, se sei disposto a condividere la tua esperienza, allora <noindex><a rel=\"nofollow\" href=\"https:\/\/conf.ontico.ru\/lectures\/propose\/?conference=dc2019-rit\">invia la tua proposta<\/a><\/noindex> per la presentazione entro il 21 aprile.<\/p><\/blockquote>\n<p>Fonte: <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\/it\/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=\"it_IT\" \/>\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\/it\/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\udd47Paura e odio per il DevSecOps | ProHoster","description":"Avevamo 2 analizzatori di codice, 4 strumenti per il testing dinamico, i nostri progetti e 250 script. Non \u00e8 che tutto questo fosse necessario nel processo attuale, ma una volta che ho iniziato a implementare il DevSecOps, \u00e8 fondamentale andare fino in fondo. Fonte. Autori dei personaggi: Justin Roiland e Dan Harmon. Cos'\u00e8 SecDevOps? E DevSecOps? Quali sono le differenze? Sicurezza delle applicazioni: di cosa si tratta? Perch\u00e9 l'approccio tradizionale non funziona pi\u00f9? Yuri Shabalin ha le risposte a tutte queste domande.","canonical_url":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/strah-i-nenavist-devsecops","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"it_IT","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\/it\/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\/it\/wp-json\/wp\/v2\/posts\/31852","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/comments?post=31852"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/31852\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media\/23720"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=31852"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=31852"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=31852"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}