LA GUIDA

Security-by-design: strumenti e metodologie per lo sviluppo sicuro del software

Il termine security-by-design indica il fatto che, oltre ai requisiti funzionali, la progettazione e lo sviluppo del codice deve tenere in considerazione anche la sicurezza. Ecco gli strumenti per lo sviluppo sicuro del software dalla progettazione fino al testing

Pubblicato il 12 Ott 2018

Gabriele Costa

Assistant Professor (Ricercatore) presso IMT Lucca

security-by-design sviluppo sicuro software

Già da alcuni anni il termine security-by-design si è diffuso nella comunità degli sviluppatori per indicare il fatto che, oltre ai requisiti funzionali, la progettazione e lo sviluppo del codice deve tenere anche in considerazione la sicurezza. La ricerca scientifica e quella industriale hanno prodotto negli ultimi decenni notevoli risultati in questa direzione. Gli strumenti a disposizione degli sviluppatori sono molteplici e si applicano alle diverse fasi dello sviluppo, dalla progettazione fino al testing.

Nonostante questo, molti sistemi vengono compromessi con attacchi che sfruttano (anche e soprattutto) vulnerabilità del software. La scarsa adozione degli strumenti che potrebbero incrementare la qualità del codice, però, non sempre è dovuta a ignoranza o pigrizia. Comprendere le ragioni di questo fenomeno è un passaggio fondamentale per affrontarlo nel modo corretto.

Sviluppo sicuro del software: il concetto di security-by-design

Alcune delle tecniche che fino a qualche anno fa erano note solo nella comunità scientifica sono oggi diventate parte integrante dei principali linguaggi e sistemi per lo sviluppo del software.

Un caso interessante è rappresentato dai linguaggi formali per la specifica delle proprietà del software. Questi linguaggi permettono di comparare (semi-)automaticamente le specifiche, tipicamente prodotte in fase di progettazione, con il codice sviluppato in fase di realizzazione. I benefici in termini di sicurezza sono significativi.

È noto infatti che molte falle derivano da implementazioni scorrette, cioè non rispettose delle specifiche. Esistono ambienti per la scrittura e la verifica di specifiche formali per molti dei principali linguaggi di programmazione, come ad esempio C e Java. Alcuni di questi, per esempio JML e Frama-C, sono strumenti realizzati e manutenuti da comunità di ricercatori e sviluppatori. Altri sono invece veri e propri prodotti sviluppati da importanti attori industriali, come ad esempio Spec# di Microsoft.

Proprio Microsoft ha investito risorse significative per la creazione di strumenti di verifica che aiutino gli sviluppatori a produrre codice di maggiore qualità e, quindi, più sicuro.

Gli stessi linguaggi di programmazione sono stati influenzati significativamente dalle ricerche sulla sicurezza del software. Un esempio interessante è quello dei permessi.

Storicamente, i permessi sono nati come meccanismo di gestione delle autorizzazioni per l’accesso dei programmi alle risorse sotto il controllo del sistema operativo, ad esempio i file. Nel tempo i permessi, insieme alla loro gestione, sono diventati sempre più complessi e raffinati. Ne ha esperienza chiunque usi uno smartphone. È infatti comune, dopo aver installato una nuova app, ricevere un avviso su quali permessi l’applicazione richiede per essere eseguita. È facile notare che i permessi riguardano molti aspetti, dall’uso della fotocamera fino alla possibilità di effettuare pagamenti online. La richiesta di questi permessi è parte integrante del codice dell’applicazione e gli sviluppatori devono necessariamente gestire la logica di queste autorizzazioni come parte del proprio software. Di conseguenza, tramite il controllo del sistema operativo, gli abusi nell’utilizzo dei permessi vengono individuati e impediti prima che si verifichino.

Il fenomeno del software insicuro

Queste premesse delineano uno scenario sostanzialmente ottimistico: gli strumenti per lo sviluppo del software sicuro ci sono e altri arriveranno in futuro. Tuttavia, lo stato della sicurezza dei sistemi e il numero di attacchi di cui si ha notizia non sembrano confermare questa visione.

Il numero di violazioni dei sistemi informatici è in aumento e attaccanti con sufficienti risorse e motivazioni possono minacciare molti sistemi, anche critici per i cittadini. Anche se spesso ci immaginiamo hacker dotati di conoscenze e abilità fuori dal comune, comunemente gli attacchi sfruttano vulnerabilità note, anche da parecchio tempo, che sono disseminate nel codice sorgente di scarsa qualità. Questa fenomeno è dovuto a molteplici fattori.

L’obsolescenza dei processi alla base del software difettoso

Le nuove tecnologie devono essere integrate nei processi per lo sviluppo del software. Questi processi sono spesso peculiari di ogni azienda e, in alcuni casi sono andati consolidandosi nel tempo. Integrare o modificare processi di questo tipo ha spesso un costo elevato che può essere (o essere percepito come) superiore al rischio di produrre software difettoso. Chi sviluppa le metodologie per la verifica del software tipicamente non si pone il problema dell’integrazione nei processi industriali delle aziende che potrebbero trarre i maggiori benefici dalle nuove tecniche.

Valutare l’obsolescenza dei sistemi per uno sviluppo sicuro

I processi industriali, per quanto delicati, possono essere aggiornati nel tempo. Ma cosa succede a quei sistemi che, per qualche motivo, si sono consolidati fino a uscire da un vero e proprio processo che ne adegui le caratteristiche allo scenario contemporaneo? Anche se può sembrare strano questo è un caso piuttosto comune.

Negli scorsi decenni l’informatica e l’elettronica sono penetrate rapidamente in molte catene di produzione. Oggetti puramente meccanici sono stati integrati con circuiti e relativo firmware per sfruttare la flessibilità e i bassi costi delle nuove tecnologie.

Purtroppo, in alcuni casi questi software sono stati sviluppati rapidamente per soddisfare precisi requisiti funzionali. Chi poteva prevedere che, in pochi anni, un componente meccanico originariamente isolato sarebbe diventato un dispositivo IoT collegato alla rete ed esposto ad attacchi?

New call-to-action

Verificare sempre la molteplicità delle fonti

Quando si realizza un prodotto che include lo sviluppo di un software è importante chiedersi da dove arriva il codice. Pensiamo per esempio ad una moderna automobile. Molti dei suoi componenti meccanici includono centraline che eseguono del software, ad esempio per la gestione delle frenate. Inoltre, l’automobile monta un navigatore satellitare, magari integrato in un sistema di infotainment di bordo.

Ognuno di questi oggetti, e quindi il software che ospitano, è riconducibile a uno o più fornitori esterni all’azienda che assembla l’automobile. Ogni attore di questa catena ramificata assembla codice esistente e ne produce di nuovo senza conoscere nel dettaglio le specifiche degli altri elementi che andranno a comporre l’oggetto finale.

Il risultato è un’automobile (uno smartphone, un frigorifero…) programmata con codice scritto da vari sviluppatori con diverse affiliazioni. Qualcuno di questi potrebbe anche aver trovato su stack overflow parte del codice che controlla i freni dell’auto.

Costi occulti e limitazioni nello sviluppo del software

Gli strumenti basati sui metodi formali hanno spesso dei costi nascosti che vanno comunque tenuti in considerazione. Per esempio, molte di queste tecniche utilizzano algoritmi computazionalmente complessi che non riescono a scalare adeguatamente su sistemi di complessità reale.

Di conseguenza è possibile procedere a una verifica formale di sottosistemi di dimensione contenuta oppure di astrazioni matematiche dei sistemi reali. Nel primo caso i risultati della verifica formale devono essere interpretati considerando il contesto in cui opera il sottosistema analizzato. Nel secondo la verifica si basa su un modello matematico che deve essere opportunamente realizzato per garantirne la fedeltà rispetto all’originale.

In entrambi i casi è necessario investire risorse significative per ottenere risultati concreti. In assenza di motivazioni adeguate potrebbe essere preferibile investire su tecniche meno sofisticate ma comunque consolidate e spesso efficaci come il testing o l’ispezione manuale del codice sorgente.

Security-by-design come faro dello sviluppo sicuro del software

Alcuni dei sistemi da cui dipendiamo sono controllati da programmi scritti in modo scorretto e insicuro. Il codice di scarsa qualità, però, non sempre è il risultato di una mancanza di competenza o attenzione. In alcuni casi il contesto all’interno del quale viene prodotto un sistema favorisce la diffusione delle vulnerabilità.

Le tecniche di analisi formale del software possono dare un contributo decisivo per contrastare questo fenomeno, ma alcuni ostacoli ne rallentano o impediscono l’applicazione.

Il crescente costo degli attacchi potrebbe in futuro fornire l’incentivo decisivo per superare questo scalino tecnologico.

Valuta la qualità di questo articolo

La tua opinione è importante per noi!

Speciale PNRR

Tutti
Incentivi
Salute digitale
Formazione
Analisi
Sostenibilità
PA
Sostemibilità
Sicurezza
Digital Economy
CODICE STARTUP
Imprenditoria femminile: come attingere ai fondi per le donne che fanno impresa
DECRETI
PNRR e Fascicolo Sanitario Elettronico: investimenti per oltre 600 milioni
IL DOCUMENTO
Competenze digitali, ecco il nuovo piano operativo nazionale
STRUMENTI
Da Istat e RGS gli indicatori per misurare la sostenibilità nel PNRR
STRATEGIE
PNRR – Piano nazionale di Ripresa e Resilienza: cos’è e novità
FONDI
Pnrr, ok della Ue alla seconda rata da 21 miliardi: focus su 5G e banda ultralarga
GREEN ENERGY
Energia pulita: Banca Sella finanzia i progetti green incentivati dal PNRR
TECNOLOGIA SOLIDALE
Due buone notizie digitali: 500 milioni per gli ITS e l’inizio dell’intranet veloce in scuole e ospedali
INNOVAZIONE
Competenze digitali e InPA cruciali per raggiungere gli obiettivi del Pnrr
STRATEGIE
PA digitale 2026, come gestire i fondi PNRR in 5 fasi: ecco la proposta
ANALISI
Value-based healthcare: le esperienze in Italia e il ruolo del PNRR
Strategie
Accordi per l’innovazione, per le imprese altri 250 milioni
Strategie
PNRR, opportunità e sfide per le smart city
Strategie
Brevetti, il Mise mette sul piatto 8,5 milioni
Strategie
PNRR e opere pubbliche, la grande sfida per i Comuni e perché bisogna pensare digitale
Formazione
Trasferimento tecnologico, il Mise mette sul piatto 7,5 milioni
Strategie
PSN e Strategia Cloud Italia: a che punto siamo e come supportare la PA in questo percorso
Dispersione idrica
Siccità: AI e analisi dei dati possono ridurre gli sprechi d’acqua. Ecco gli interventi necessari
PNRR
Cloud, firmato il contratto per l’avvio di lavori del Polo strategico
Formazione
Competenze digitali, stanziati 48 milioni per gli Istituti tecnologici superiori
Iniziative
Digitalizzazione delle reti idriche: oltre 600 milioni per 21 progetti
Competenze e competitività
PNRR, così i fondi UE possono rilanciare la ricerca e l’Università
Finanziamenti
PNRR, si sbloccano i fondi per l’agrisolare
Sanità post-pandemica
PNRR, Missione Salute: a che punto siamo e cosa resta da fare
Strategie
Sovranità e autonomia tecnologica nazionale: come avviare un processo virtuoso e sostenibile
La relazione
Pnrr e PA digitale, l’alert della Corte dei conti su execution e capacità di spesa
L'editoriale
Elezioni 2022, la sfida digitale ai margini del dibattito politico
Strategie
Digitale, il monito di I-Com: “Senza riforme Pnrr inefficace”
Transizione digitale
Pnrr: arrivano 321 milioni per cloud dei Comuni, spazio e mobilità innovativa
L'analisi I-COM
Il PNRR alla prova delle elezioni: come usare bene le risorse e centrare gli obiettivi digitali
Cineca
Quantum computing, una svolta per la ricerca: lo scenario europeo e i progetti in corso
L'indice europeo
Desi, l’Italia scala due posizioni grazie a fibra e 5G. Ma è (ancora) allarme competenze
L'approfondimento
PNRR 2, ecco tutte le misure per cittadini e imprese: portale sommerso, codice crisi d’impresa e sismabonus, cosa cambia
Servizi digitali
PNRR e trasformazione digitale: ecco gli investimenti e le riforme previste per la digitalizzazione della PA
Legal health
Lo spazio europeo dei dati sanitari: come circoleranno le informazioni sulla salute nell’Unione Europea
Servizi digitali
PNRR e PA digitale: non dimentichiamo la dematerializzazione
Digital Healthcare transformation
La trasformazione digitale degli ospedali
Governance digitale
PA digitale, è la volta buona? Così misure e risorse del PNRR possono fare la differenza
Servizi digitali
Comuni e digitale, come usare il PNRR senza sbagliare
La survey
Pnrr e digitale accoppiata vincente per il 70% delle pmi italiane
Missione salute
Fascicolo Sanitario Elettronico alla prova del PNRR: limiti, rischi e opportunità
Servizi pubblici
PNRR: come diventeranno i siti dei comuni italiani grazie alle nuove risorse
Skill gap
PNRR, la banda ultra larga crea 20.000 nuovi posti di lavoro
Il Piano
Spazio, Colao fa il punto sul Pnrr: i progetti verso la milestone 2023
FORUMPA2022
PNRR e trasformazione digitale: rivedi i Talk di FORUM PA 2022 in collaborazione con le aziende partner
I contratti
Avio, 340 milioni dal Pnrr per i nuovi propulsori a metano
Next Generation EU
PNRR, a che punto siamo e cosa possono aspettarsi le aziende private
Fondi
Operativo il nuovo portale del MISE con tutti i finanziamenti per le imprese
Servizi comunali
Il PNRR occasione unica per i Comuni digitali: strumenti e risorse per enti e cittadini
Healthcare data platform
PNRR dalla teoria alla pratica: tecnologie e soluzioni per l’innovazione in Sanità
Skill
Competenze digitali, partono le Reti di facilitazione
Gli obiettivi
Scuola 4.0, PNRR ultima chance: ecco come cambierà il sistema formativo
Sistema Paese
PNRR 2, è il turno della space economy
FORUM PA 2022
FORUM PA 2022: la maturità digitale dei comuni italiani rispetto al PNRR
Analisi
PNRR: dalla Ricerca all’impresa, una sfida da cogliere insieme
Innovazione
Pnrr, il Dipartimento per la Trasformazione digitale si riorganizza
FORUM PA 2022
PA verde e sostenibile: il ruolo di PNRR, PNIEC, energy management e green public procurement
Analisi
PNRR, Comuni e digitalizzazione: tutto su fondi e opportunità, in meno di 3 minuti. Guarda il video!
Rapporti
Competenze digitali e servizi automatizzati pilastri del piano Inps
Analisi
Attuazione del PNRR: il dialogo necessario tra istituzioni e società civile. Rivedi lo Scenario di FORUM PA 2022
Progetti
Pnrr, fondi per il Politecnico di Torino. Fra i progetti anche IS4Aerospace
Analisi
PNRR, Colao fa il punto sulla transizione digitale dell’Italia: «In linea con tutte le scadenze»
La Svolta
Ict, Istat “riclassifica” i professionisti. Via anche al catalogo dati sul Pnrr
Analisi
Spazio, Colao fa il punto sul Pnrr: i progetti verso la milestone 2023
FORUM PA 2022
Ecosistema territoriale sostenibile: l’Emilia Romagna tra FESR e PNRR
Il Piano
Innovazione, il Mise “centra” gli obiettivi Pnrr: attivati 17,5 miliardi
Analisi
PNRR: raggiunti gli obiettivi per il primo semestre 2022. Il punto e qualche riflessione
Analisi
PNRR: dal dialogo tra PA e società civile passa il corretto monitoraggio dei risultati, tra collaborazione e identità dei luoghi
Webinar
Comuni e PNRR: un focus sui bandi attivi o in pubblicazione
Analisi
Formazione 4.0: cos’è e come funziona il credito d’imposta
PA e Sicurezza
PA e sicurezza informatica: il ruolo dei territori di fronte alle sfide della digitalizzazione
PA e sicurezza
PNRR e servizi pubblici digitali: sfide e opportunità per Comuni e Città metropolitane
Water management
Water management in Italia: verso una transizione “smart” e “circular” 
LE RISORSE
Transizione digitale, Simest apre i fondi Pnrr alle medie imprese
Prospettive
Turismo, cultura e digital: come spendere bene le risorse del PNRR
Analisi
Smart City: quale contributo alla transizione ecologica
Decarbonizzazione
Idrogeno verde, 450 milioni € di investimenti PNRR, Cingolani firma
Unioncamere
PNRR, imprese in ritardo: ecco come le Camere di commercio possono aiutare
I fondi
Industria 4.0: solo un’impresa su tre pronta a salire sul treno Pnrr
CODICE STARTUP
Imprenditoria femminile: come attingere ai fondi per le donne che fanno impresa
DECRETI
PNRR e Fascicolo Sanitario Elettronico: investimenti per oltre 600 milioni
IL DOCUMENTO
Competenze digitali, ecco il nuovo piano operativo nazionale
STRUMENTI
Da Istat e RGS gli indicatori per misurare la sostenibilità nel PNRR
STRATEGIE
PNRR – Piano nazionale di Ripresa e Resilienza: cos’è e novità
FONDI
Pnrr, ok della Ue alla seconda rata da 21 miliardi: focus su 5G e banda ultralarga
GREEN ENERGY
Energia pulita: Banca Sella finanzia i progetti green incentivati dal PNRR
TECNOLOGIA SOLIDALE
Due buone notizie digitali: 500 milioni per gli ITS e l’inizio dell’intranet veloce in scuole e ospedali
INNOVAZIONE
Competenze digitali e InPA cruciali per raggiungere gli obiettivi del Pnrr
STRATEGIE
PA digitale 2026, come gestire i fondi PNRR in 5 fasi: ecco la proposta
ANALISI
Value-based healthcare: le esperienze in Italia e il ruolo del PNRR
Strategie
Accordi per l’innovazione, per le imprese altri 250 milioni
Strategie
PNRR, opportunità e sfide per le smart city
Strategie
Brevetti, il Mise mette sul piatto 8,5 milioni
Strategie
PNRR e opere pubbliche, la grande sfida per i Comuni e perché bisogna pensare digitale
Formazione
Trasferimento tecnologico, il Mise mette sul piatto 7,5 milioni
Strategie
PSN e Strategia Cloud Italia: a che punto siamo e come supportare la PA in questo percorso
Dispersione idrica
Siccità: AI e analisi dei dati possono ridurre gli sprechi d’acqua. Ecco gli interventi necessari
PNRR
Cloud, firmato il contratto per l’avvio di lavori del Polo strategico
Formazione
Competenze digitali, stanziati 48 milioni per gli Istituti tecnologici superiori
Iniziative
Digitalizzazione delle reti idriche: oltre 600 milioni per 21 progetti
Competenze e competitività
PNRR, così i fondi UE possono rilanciare la ricerca e l’Università
Finanziamenti
PNRR, si sbloccano i fondi per l’agrisolare
Sanità post-pandemica
PNRR, Missione Salute: a che punto siamo e cosa resta da fare
Strategie
Sovranità e autonomia tecnologica nazionale: come avviare un processo virtuoso e sostenibile
La relazione
Pnrr e PA digitale, l’alert della Corte dei conti su execution e capacità di spesa
L'editoriale
Elezioni 2022, la sfida digitale ai margini del dibattito politico
Strategie
Digitale, il monito di I-Com: “Senza riforme Pnrr inefficace”
Transizione digitale
Pnrr: arrivano 321 milioni per cloud dei Comuni, spazio e mobilità innovativa
L'analisi I-COM
Il PNRR alla prova delle elezioni: come usare bene le risorse e centrare gli obiettivi digitali
Cineca
Quantum computing, una svolta per la ricerca: lo scenario europeo e i progetti in corso
L'indice europeo
Desi, l’Italia scala due posizioni grazie a fibra e 5G. Ma è (ancora) allarme competenze
L'approfondimento
PNRR 2, ecco tutte le misure per cittadini e imprese: portale sommerso, codice crisi d’impresa e sismabonus, cosa cambia
Servizi digitali
PNRR e trasformazione digitale: ecco gli investimenti e le riforme previste per la digitalizzazione della PA
Legal health
Lo spazio europeo dei dati sanitari: come circoleranno le informazioni sulla salute nell’Unione Europea
Servizi digitali
PNRR e PA digitale: non dimentichiamo la dematerializzazione
Digital Healthcare transformation
La trasformazione digitale degli ospedali
Governance digitale
PA digitale, è la volta buona? Così misure e risorse del PNRR possono fare la differenza
Servizi digitali
Comuni e digitale, come usare il PNRR senza sbagliare
La survey
Pnrr e digitale accoppiata vincente per il 70% delle pmi italiane
Missione salute
Fascicolo Sanitario Elettronico alla prova del PNRR: limiti, rischi e opportunità
Servizi pubblici
PNRR: come diventeranno i siti dei comuni italiani grazie alle nuove risorse
Skill gap
PNRR, la banda ultra larga crea 20.000 nuovi posti di lavoro
Il Piano
Spazio, Colao fa il punto sul Pnrr: i progetti verso la milestone 2023
FORUMPA2022
PNRR e trasformazione digitale: rivedi i Talk di FORUM PA 2022 in collaborazione con le aziende partner
I contratti
Avio, 340 milioni dal Pnrr per i nuovi propulsori a metano
Next Generation EU
PNRR, a che punto siamo e cosa possono aspettarsi le aziende private
Fondi
Operativo il nuovo portale del MISE con tutti i finanziamenti per le imprese
Servizi comunali
Il PNRR occasione unica per i Comuni digitali: strumenti e risorse per enti e cittadini
Healthcare data platform
PNRR dalla teoria alla pratica: tecnologie e soluzioni per l’innovazione in Sanità
Skill
Competenze digitali, partono le Reti di facilitazione
Gli obiettivi
Scuola 4.0, PNRR ultima chance: ecco come cambierà il sistema formativo
Sistema Paese
PNRR 2, è il turno della space economy
FORUM PA 2022
FORUM PA 2022: la maturità digitale dei comuni italiani rispetto al PNRR
Analisi
PNRR: dalla Ricerca all’impresa, una sfida da cogliere insieme
Innovazione
Pnrr, il Dipartimento per la Trasformazione digitale si riorganizza
FORUM PA 2022
PA verde e sostenibile: il ruolo di PNRR, PNIEC, energy management e green public procurement
Analisi
PNRR, Comuni e digitalizzazione: tutto su fondi e opportunità, in meno di 3 minuti. Guarda il video!
Rapporti
Competenze digitali e servizi automatizzati pilastri del piano Inps
Analisi
Attuazione del PNRR: il dialogo necessario tra istituzioni e società civile. Rivedi lo Scenario di FORUM PA 2022
Progetti
Pnrr, fondi per il Politecnico di Torino. Fra i progetti anche IS4Aerospace
Analisi
PNRR, Colao fa il punto sulla transizione digitale dell’Italia: «In linea con tutte le scadenze»
La Svolta
Ict, Istat “riclassifica” i professionisti. Via anche al catalogo dati sul Pnrr
Analisi
Spazio, Colao fa il punto sul Pnrr: i progetti verso la milestone 2023
FORUM PA 2022
Ecosistema territoriale sostenibile: l’Emilia Romagna tra FESR e PNRR
Il Piano
Innovazione, il Mise “centra” gli obiettivi Pnrr: attivati 17,5 miliardi
Analisi
PNRR: raggiunti gli obiettivi per il primo semestre 2022. Il punto e qualche riflessione
Analisi
PNRR: dal dialogo tra PA e società civile passa il corretto monitoraggio dei risultati, tra collaborazione e identità dei luoghi
Webinar
Comuni e PNRR: un focus sui bandi attivi o in pubblicazione
Analisi
Formazione 4.0: cos’è e come funziona il credito d’imposta
PA e Sicurezza
PA e sicurezza informatica: il ruolo dei territori di fronte alle sfide della digitalizzazione
PA e sicurezza
PNRR e servizi pubblici digitali: sfide e opportunità per Comuni e Città metropolitane
Water management
Water management in Italia: verso una transizione “smart” e “circular” 
LE RISORSE
Transizione digitale, Simest apre i fondi Pnrr alle medie imprese
Prospettive
Turismo, cultura e digital: come spendere bene le risorse del PNRR
Analisi
Smart City: quale contributo alla transizione ecologica
Decarbonizzazione
Idrogeno verde, 450 milioni € di investimenti PNRR, Cingolani firma
Unioncamere
PNRR, imprese in ritardo: ecco come le Camere di commercio possono aiutare
I fondi
Industria 4.0: solo un’impresa su tre pronta a salire sul treno Pnrr

Articoli correlati