Skip to main content

La sicurezza dei dati e delle applicazioni non è opzionale e deve essere considerata fin dalle prime fasi del ciclo di sviluppo, partendo dalla progettazione e dalla scrittura del codice. In Intesys, uno degli elementi chiave con cui concretizziamo il concetto di secure code, ovvero di integrazione delle best practice di sicurezza nel codice sorgente delle applicazioni, sono le nostre Linee Guida per lo Sviluppo di Software Sicuro (LGSSS).

Software sicuro per prevenire le minacce cyber

Lo sviluppo di codice sicuro è uno dei componenti chiave della cybersecurity moderna poiché dà sostanza all’idea della prevenzione delle minacce. Il concetto si concretizza in una serie di pratiche, metodologie, strumenti e tecnologie che vengono integrate in ogni fase del ciclo di vita del software per far sì che la sicurezza sia un elemento intrinseco alla sua realizzazione e non un pensiero successivo o collaterale.

Integrare la sicurezza nel processo di sviluppo significa partire con un’analisi dettagliata dei rischi, cui far seguire l’adozione di linee guida rigorose per la progettazione e la scrittura del codice, nonché implementare strumenti avanzati di analisi e di test. Ciò include l’analisi del codice statico, i penetration test e le verifiche di conformità finalizzate a garantire il soddisfacimento dei requisiti di sicurezza. Adottando questo approccio si riduce l’esposizione alle minacce emergenti ottenendo applicativi più resilienti, affidabili e in grado di proteggere le informazioni in un panorama digitale sempre più complesso e, sotto certi aspetti, ostile.

L’obiettivo: diffondere la cultura del software sicuro

In Intesys non ci limitiamo ad adottare un approccio preventivo alla sicurezza degli applicativi che realizziamo per i nostri clienti, ma siamo in prima linea nello sviluppo e nella diffusione della cultura della sicurezza del software. Le nostre Linee Guida per lo Sviluppo di Software Sicuro (LGSSS), frutto di anni di esperienza, sono infatti pubblicamente accessibili, così come il documento metodologico sullo sviluppo del software sicuro che illustra l’intera metodologia che applichiamo per rendere la resilienza degli applicativi, la sicurezza delle informazioni e la protezione dei dati parte integrante del software lifecycle.

Leggi il nostro documento metodologico di Sviluppo Software Sicuro:

SCARICA IL DOCUMENTO

Nella nostra visione, il processo di secure coding parte da una dettagliata valutazione dei rischi, o risk assessment, relativi alle funzionalità previste e ai loro flussi di dati. Lo scopo, ovviamente, è quello di identificare in modo chiaro e fin da subito le minacce per la sicurezza dell’applicativo, che vengono poi modellate (threat modeling) prendendo a riferimento il framework STRIDE e le sue 6 dimensioni di indagine, che corrispondono ad altrettante minacce. Viene quindi quantificato il rischio associato a ogni minaccia attraverso una matrice impatto-probabilità e, successivamente, identificate le specifiche misure di sicurezza da integrare (fin da subito) nel codice.

Consulta il documento di Assessment per Sviluppo Software Sicuro:

SCARICA IL DOCUMENTO

Le Linee Guida di Intesys e i tre livelli di rischio

Le nostre Linee Guida per lo Sviluppo di Software Sicuro (LGSSS) entrano in gioco a seguito dell’attività di assessment e vengono adottate per mitigare l’esposizione ai rischi identificati.

LEGGI LE NOSTRE LINEE GUIDA

Le misure di sicurezza che adottiamo in ogni caso

All’interno del documento sono presenti delle linee guida di base (formalmente, di rischio base) che andrebbero adottate in qualsiasi progetto software, indipendentemente dal rischio rilevato nella fase precedente. Nella nostra visione, esse sono le fondamenta su cui costruire, questa volta in modo sartoriale e risk-based, delle misure di sicurezza più avanzate (livelli medio e alto), giungendo all’obiettivo del software sicuro a 360 gradi. Inoltre, ci siamo posti l’obiettivo di accelerare il più possibile l’adozione delle Linee Guida, collegando direttamente ogni attività al ruolo responsabile della sua implementazione, dai backend developer ai DevOps.

Per quanto concerne i contenuti, che riassumiamo brevemente, le linee guida di base toccano molteplici aree della software security, dimostrando di voler coprire l’argomento in modo esaustivo. Nel documento, affrontiamo temi quali la separazione tra gli ambienti di sviluppo, test e produzione, la configurazione del web server e dell’application server, ma senza dimenticare alcune aree chiave come l’autenticazione e l’autorizzazione e un intero capitolo sull’acquisizione e il trattamento (sicuro) dei dati, con focus specifici sulla scadenza, l’oblio, la portabilità, la rettifica e molto altro. Non mancano, infine, indicazioni su come ottimizzare le performance applicative e formattare il codice, nonché delle linee guida tecniche su tematiche specifiche come la prevenzione del Cross Site Scripting, la validazione dei dati di input, il logging del sistema e i controlli crittografici.

Cosa fare se il rischio è più alto

Le linee guida corrispondenti ai livelli di rischio superiori (medio e alto) non vanno invece applicate a prescindere, bensì quando l’assessment ne rileva l’opportunità. Questo accade, ripetiamo, quando il livello di rischio è considerato medio o alto in una (o più) delle 6 dimensioni del framework STRIDE, ovvero Spoofing, Tampering, Repudiation, Information Disclosure, Denial of Service ed Elevation of Privilege.

Volendo fare un esempio, se l’assessment identifica un rischio di Tampering (azioni che modificano o manipolano senza autorizzazione i dati) di livello medio, le linee guida suggeriscono molteplici misure tecniche, come l’impiego di canali di comunicazione sicuri (SSL o TLS) per le informazioni trasmesse tramite Batch Job, oppure l’impiego di meccanismi di cifratura e di pseudonimizzazione dei file per funzioni di importazione e/o esportazione di dati personali, oppure ancora – nell’ambito dell’input data validation – la verifica della congruità di estensione e di dimensione dei file caricati.

Se invece, sempre nell’ambito della stessa minaccia (Tampering), dovesse essere rilevato un rischio alto, verrebbero adottate, o meglio aggiunte, misure ancora più stringenti, come la cifratura dei dati dell’applicazione con algoritmi a chiave simmetrica da almeno 192 bit.

Questo approccio ci consente di adeguare concretamente le misure di sicurezza al livello di rischio, di assicurare la conformità dell’applicazione ai migliori standard di sicurezza e, cosa tutt’altro che secondaria, anche di ottimizzare i tempi e i costi dei progetti, poiché vengono applicate solo le misure necessarie o appropriate al contesto specifico, evitando interventi superflui o ridondanti che potrebbero generare sprechi di risorse e rallentamenti nello sviluppo.

Logo Intesys bianco
SOFTWARE SICURO

Scopri come sviluppiamo
soluzioni a prova di cyberischio

SCOPRI DI PIÙ
3.0/5.0 Article rating
2 Reviews
Cosa ne pensi dell'articolo?
  1. Amazing
  2. Good
  3. Bad
  4. Meh
  5. Pff
Ilario Gavioli
IT expert e General Manager Intesys

Dal 1995, Ilario predispone la strategia e identifica le tecnologie su cui focalizzare le attività in funzione dei piani di business delle aziende.

NEWSLETTER