Nel campo dello sviluppo software agile, la sicurezza dei prodotti ricopre un ruolo sempre più im­por­tan­te. Nell’epoca della Continous Delivery e della Continous In­te­gra­tion, tuttavia, il processo di sviluppo diventa una sfida da non sot­to­va­lu­ta­re. Per questo motivo sempre più aziende ampliano l’approccio DevOps, in cui sviluppo (De­ve­lo­p­ment) e ope­ra­ti­vi­tà (Ope­ra­tions) sono stret­ta­men­te in­ter­con­nes­si fin dall’inizio, in­clu­den­do anche la sicurezza (Security): da qui l’ab­bre­via­zio­ne DevSecOps. DevSecOps è una soluzione a portata di mano per i problemi che fanno parte della vita quo­ti­dia­na di molte società di software, che tiene conto in egual misura delle esigenze di velocità di sviluppo e sicurezza.

DevSecOps: una de­fi­ni­zio­ne

Grazie a DevSecOps, l’agilità e la pos­si­bi­li­tà di reagire ra­pi­da­men­te, già previste nell’approccio DevOps, possono essere uti­liz­za­te in modo ottimale. Infatti, l’aspetto della sicurezza è preso in con­si­de­ra­zio­ne già durante la fase pratica dello sviluppo. Ciò distingue chia­ra­men­te il sistema dall’approccio con­ven­zio­na­le, in cui i team di sicurezza for­ni­sco­no ge­ne­ral­men­te la pro­te­zio­ne adeguata solo dopo il com­ple­ta­men­to del prodotto.

Qual è il concetto alla base di DevSecOps?

Il metodo DevSecOps ha lo scopo di as­si­cu­ra­re la con­for­mi­tà agli elevati standard di sicurezza anche nei metodi di sviluppo rapido e agile di Con­ti­nuous Delivery e Con­ti­nuous In­te­gra­tion. I requisiti di sicurezza, spesso molto elevati, devono essere tenuti in con­si­de­ra­zio­ne già nella fase di pro­gram­ma­zio­ne del fun­zio­na­men­to corrente. Una buona co­mu­ni­ca­zio­ne tra i reparti di sicurezza, sviluppo e ope­ra­ti­vi­tà IT è es­sen­zia­le. Pertanto l’approccio in­ter­di­sci­pli­na­re in questo contesto è cruciale per il successo dell’intero sviluppo.

Perché DevSecOps è così im­por­tan­te

All’aspetto della sicurezza è stata conferita da alcuni anni sempre più im­por­tan­za nello sviluppo software. So­prat­tut­to in con­si­de­ra­zio­ne dello sviluppo rapido, ac­com­pa­gna­to da in­ter­val­li di tempo sempre più brevi tra le diverse versioni, il rispetto degli standard di sicurezza diventa una sfida sempre più im­pe­gna­ti­va. Per molte aziende diventa ad­di­rit­tu­ra una sfida in­sor­mon­ta­bi­le quando tale aspetto viene con­si­de­ra­to solo in seguito allo sviluppo effettivo. Spesso le aziende si ritrovano a dover scegliere tra un’elevata sicurezza con il con­se­guen­te dispendio di tempo e una bassa sicurezza con brevi cicli di rilascio. Molti fornitori scelgono quest’ultima opzione. Tuttavia, DevSecOps offre un’ec­cel­len­te soluzione per combinare un’elevata sicurezza a brevi cicli di rilascio.

Perché clienti e aziende possono trarre vantaggio da DevSecOps

Le soluzioni pre­ce­den­ti per l’im­ple­men­ta­zio­ne di im­por­tan­ti funzioni e pro­to­col­li di sicurezza non possono essere pa­ra­go­na­te alla versione nuova e più veloce dello sviluppo software agile. Solo tramite un’attiva in­te­gra­zio­ne degli aspetti di sicurezza nella fase di sviluppo del software e la relativa as­si­mi­la­zio­ne nel processo di sviluppo è possibile garantire la sicurezza de­si­de­ra­ta anche con brevi cicli di sviluppo e di prodotto. Tuttavia, non tutte le aziende seguono questo approccio. Ciò si può fa­cil­men­te dedurre dal fatto che la sicurezza di alcuni prodotti è no­te­vol­men­te diminuita a causa di cicli di versione ab­bre­via­ti e le varie falle di sicurezza sono spesso chiuse solo prov­vi­so­ria­men­te mediante “Day One Patch”.

Se volete affidarvi a un alto livello di sicurezza, dovete essere disposti a un lungo tempo di sviluppo del prodotto oppure affidarvi alla soluzione DevSecOps per ottenere il risultato de­si­de­ra­to.

DevSecOps in pratica: un esempio

Vi il­lu­stria­mo l’ap­pli­ca­zio­ne dell’approccio DevSecOps in un pratico esempio della vita quo­ti­dia­na di un utente privato. L’app nel nostro esempio riguarda la con­ta­bi­li­tà familiare e può essere gestita di­ret­ta­men­te dallo smart­pho­ne. Nell’app, le entrate e le uscite possono essere inserite, ca­te­go­riz­za­te, vi­sua­liz­za­te in diversi colori e valutate. Poiché fino a qui solo una piccola quantità di dati sensibili viene uti­liz­za­ta a questo scopo, non c’è molto da con­si­de­ra­re in termini di sicurezza.

L’ap­pli­ca­zio­ne viene ora ampliata con una funzione che consente di scan­sio­na­re e re­gi­stra­re au­to­ma­ti­ca­men­te gli scontrini. In questo caso molti dati vanno re­gi­stra­ti e valutati sui server ed è per questo che la sicurezza riveste un ruolo im­por­tan­te nella co­mu­ni­ca­zio­ne e nell’ela­bo­ra­zio­ne. Se l’aspetto della sicurezza viene con­si­de­ra­to solo in un secondo tempo, ci vuole un anno e mezzo prima che la funzione possa essere pub­bli­ca­ta in modo sicuro.

Ora dev’essere aggiunta un’altra funzione: integrare le spese at­tra­ver­so l’online banking di­ret­ta­men­te nel sistema. Ciò comporta il trat­ta­men­to di dati altamente sensibili, per cui l’in­te­gra­zio­ne di una tale soluzione con i più elevati standard di sicurezza potrebbe ri­chie­de­re più di un anno. Durante questo periodo la con­cor­ren­za gua­da­gne­reb­be terreno e il prodotto dell’azienda molto pro­ba­bil­men­te non sarebbe più in­te­res­san­te sul mercato.

Invece, se l’aspetto della sicurezza viene preso di­ret­ta­men­te in con­si­de­ra­zio­ne durante la pro­gram­ma­zio­ne e lo sviluppo con DevSecOps, i tempi di rilascio possono essere ridotti enor­me­men­te senza com­pro­met­te­re la sicurezza. In molti casi la sicurezza è ad­di­rit­tu­ra mi­glio­ra­ta perché può essere integrata di­ret­ta­men­te nella fase di pro­gram­ma­zio­ne e non viene applicata su una pro­gram­ma­zio­ne già esistente sotto forma di kit. In tal modo l’azienda beneficia di cicli di rilascio più brevi e gli utenti di un ag­gior­na­men­to software costante.

I vantaggi di DevSecOps nello sviluppo

I vantaggi di DevSecOps sono evidenti. Quando un’azienda decide di uti­liz­za­re il moderno sistema DevOps per lo sviluppo dei propri prodotti a causa dell’in­cre­men­to della domanda e di requisiti elevati, spesso si rag­giun­go­no velocità ina­spet­ta­ta­men­te elevate nella pro­du­zio­ne e nel rilascio di diverse versioni del proprio software. Tuttavia, durante questo processo, la sicurezza non viene presa in con­si­de­ra­zio­ne. Se, come spesso accade, questa viene integrata nel prodotto finito solo alla fine, possono esserci problemi di fun­zio­na­li­tà e anche la consegna può essere no­te­vol­men­te ritardata.

Se l’aspetto della sicurezza viene preso in con­si­de­ra­zio­ne mentre il processo di sviluppo è in corso, la si­tua­zio­ne è com­ple­ta­men­te diversa: il processo non rallenta affatto, poiché anche il settore della sicurezza trae vantaggio dalle diverse soluzioni di mo­ni­to­ring e au­to­ma­tiz­za­zio­ne. Inoltre, i vari team di sviluppo e ope­ra­ti­vi­tà imparano a prendere in con­si­de­ra­zio­ne i fattori legati alla sicurezza fin dalla fase di sviluppo, in modo da ridurre no­te­vol­men­te e da subito eventuali falle. Ciò significa che le versioni software sicure e comunque stabili vengono prodotte in tempi più brevi e possono essere con­se­gna­te di­ret­ta­men­te ai clienti. In questo modo, tanto i clienti quanto le aziende traggono vantaggio dalle nuove pos­si­bi­li­tà.

Svantaggi e dif­fi­col­tà in DevSecOps

Come nel DevOps, anche nel DevSecOps il successo del sistema e la sua ef­fi­cien­za dipendono da quanto i singoli di­pen­den­ti e i team so­sten­go­no questo nuovo sviluppo. Senza una cultura aziendale aperta e uno scambio tra team e reparti, il concetto DevSecOps non può fun­zio­na­re con successo. Per questo motivo è im­por­tan­te co­mu­ni­ca­re aper­ta­men­te i vantaggi del nuovo sistema e coor­di­na­re in maniera adeguata i cam­bia­men­ti nei reparti e con i di­pen­den­ti.

Se i singoli di­pen­den­ti resistono al sistema, ri­fiu­tan­do ad esempio l’in­se­ri­men­to di esperti di sicurezza nel processo di sviluppo effettivo, possono sorgere notevoli dif­fi­col­tà.

Con­clu­sio­ne: un’abile in­te­gra­zio­ne offre molti vantaggi

L’in­te­gra­zio­ne di im­por­tan­ti funzioni di sicurezza è di enorme im­por­tan­za nello sviluppo software e nelle ope­ra­zio­ni IT dirette. Se le misure di sicurezza ne­ces­sa­rie vengono prese in con­si­de­ra­zio­ne solo dopo lo sviluppo effettivo, non solo si ve­ri­fi­ca­no ritardi molto lunghi, ma possono anche in­si­nuar­si errori che non sono più soggetti a un processo di revisione completo. D’altra parte, se l’aspetto della sicurezza è di­ret­ta­men­te integrato nello sviluppo software, negli ag­gior­na­men­ti e nei rilasci ri­cor­ren­do al DevSecOps, la durata delle misure di sicurezza è no­te­vol­men­te ridotta e la qualità migliora sen­si­bil­men­te anche grazie ai controlli au­to­ma­tiz­za­ti. Pertanto, le aziende traggono vantaggio so­prat­tut­to quando anziché limitarsi al sistema DevOps, integrano l’area della sicurezza dei dati e del software di­ret­ta­men­te nel processo di sviluppo con DevSecOps.

Vai al menu prin­ci­pa­le