Skip to main content

Garantire la sicurezza del software applicativo (Application Security) richiede un approccio che incorpori processi, tool e misure di protezione in ogni fase del ciclo di vita del software. In letteratura, questo principio ha dato origine al modello DevSecOps, che pone la sicurezza al centro fin dalle prime fasi di progettazione e sviluppo del software, trasformandola in un elemento strutturale e continuo all’interno della pipeline di delivery.

In questo articolo spieghiamo come Intesys affronta questa sfida per garantire ai clienti software robusto e resiliente rispetto a molteplici minacce interne ed esterne. In particolare, facciamo un focus specifico sugli strumenti e sulle misure che integriamo nei nostri percorsi di sviluppo. 

Application Security a 360°: dall’infrastruttura al software applicativo

Un software sicuro è la combinazione di due macro-componenti: la sicurezza infrastrutturale, che riguarda l’ambiente in cui il software è eseguito, e la sicurezza dell’applicazione stessa, ovvero la protezione del codice e delle sue dipendenze. Entrambi gli aspetti sono critici e devono essere gestiti con la stessa attenzione e con competenze dedicate, poiché basta una singola vulnerabilità per alzare esponenzialmente il livello di rischio.

Oltre ad essere strettamente interconnessi, questi due layer di software security richiedono strategie e strumenti specifici per garantire un sistema realmente protetto. La sicurezza infrastrutturale, per esempio, include misure come la microsegmentazione della rete, la gestione dei privilegi di accesso, l’adozione di firewall avanzati e di sistemi di rilevamento delle intrusioni, oltre a pratiche di hardening per ridurre la superficie d’attacco e a servizi dedicati come il SOC. La sicurezza applicativa, come si vedrà meglio successivamente, si concentra invece sulle pratiche di sviluppo sicuro del software, comprendenti l’applicazione di linee guida ad hoc, l’esecuzione di test automatizzati e manuali, l’analisi del codice e la gestione puntuale delle dipendenze.

Leggi il nostro documento metodologico di Sviluppo Software Sicuro:

SCARICA IL DOCUMENTO

La vera sfida è costruire un ecosistema in cui sicurezza applicativa e infrastrutturale operino in perfetta sinergia. Nel Gruppo Intesys, questo equilibrio è garantito dalla collaborazione tra le due anime dell’organizzazione: Intesys, specializzata in soluzioni applicative, e Intesys Networking, che può vantare competenze e servizi dedicati alla gestione e protezione delle infrastrutture IT.

Come integriamo la sicurezza nel processo di sviluppo del software

Il nostro approccio, come anticipato, si basa sull’integrazione di strumenti, processi e misure di sicurezza direttamente nelle pipeline di sviluppo del software, per le quali adottiamo metodologie moderne che uniscono agilità ed efficienza.

In questo percorso, alcuni punti saldi dell’application security sono il threat model, che ci permette di identificare le potenziali minacce e valutare i rischi associati; la definizione dei requisiti di sicurezza informatica, così da garantire che ogni componente rispetti elevati standard di protezione; l’osservanza delle nostre Linee Guida per lo Sviluppo di Codice Sicuro, che forniscono criteri e best practice finalizzate a ridurre al minimo le vulnerabilità sin dalle fasi di progettazione e di implementazione del software.

Consulta le nostre Linee Guida per lo Sviluppo di Software Sicuro (LGSSS)

LEGGI LE NOSTRE LINEE GUIDA

A questi step vengono poi correlati da altre attività, come:

1. SAST (Static Application Security Testing)

L’analisi statica del codice (SAST) ci permette di individuare vulnerabilità nel codice sorgente, prima che venga eseguito. Questo processo ha due declinazioni principali:

  • L’analisi del codice proprietario, attività fondamentale per identificare vulnerabilità interne;
  • L’analisi delle librerie di terze parti, per garantire che siano aggiornate e prive di vulnerabilità note. Questa parte, gestita con appositi tool automatizzati, è molto rilevante, poiché il software moderno si basa sempre di più su componenti sviluppati da realtà esterne, che vengono continuamente aggiornati o modificati. A tal fine, risulta anche molto utile definire delle roadmap chiare da seguire nel caso vengano rilevate vulnerabilità che ostacolano il superamento dei controlli di sicurezza. Ciò dovrebbe includere azioni tempestive come l’aggiornamento delle librerie o, nei casi più critici, un refactoring del codice.

Entrambi questi ambiti risultano fondamentali per la gestione della sicurezza del software e possono essere adattati alle esigenze specifiche di ciascuna azienda. In altri termini, è possibile definire, di volta in volta, le regole applicate dai tool e le soglie che determinano quando un software sia pronto per essere rilasciato in produzione o, al contrario, necessiti di una revisione più approfondita.

Tutte queste attività possono essere integrate in un processo formale di secure code review, ovvero in una revisione del codice da parte di un supervisore esperto, finalizzata a verificare la sua conformità ai requisiti di sicurezza aziendali, alle linee guida interne e alle informazioni fornite dai tool di analisi.

2. Unit Testing e Integration Testing

I test unitari e di integrazione sono essenziali per validare il comportamento del software anche in ottica di sicurezza. L’implementazione di un sistema di test automatizzati è certamente onerosa, con costi che possono arrivare al 20/30% in più rispetto al solo sviluppo, ma il ritorno sull’investimento è elevato grazie alla riduzione della necessità di test manuali.

L’obiettivo è costruire una solida base di test automatici, che coprano la maggior parte degli scenari possibili e che siano aggiornati in base agli sviluppi del progetto. In questo modo, i test manuali, seppur ancora necessari, vengono limitati solo alle nuove funzionalità che introducono modifiche significative al comportamento del software o che richiedono un’analisi più approfondita.

3. DAST (Dynamic Application Security Testing)

Il DAST è molto utile perché ci permette di rilevare criticità di sicurezza che potrebbero non emergere dall’analisi statica del codice, come vulnerabilità legate a interazioni tra il codice e l’infrastruttura o ai flussi di dati in tempo reale. Si sostanzia in un penetration testing dinamico che può essere condotto in forma automatizzata o manuale e che simula il comportamento di un attaccante esterno che interagisce con il sistema, testando la resistenza dell’applicazione a potenziali exploit.

Oltre alle specifiche attività e misure di sicurezza che adottiamo nei progetti, occorre sottolineare che tutte queste fasi non operano in isolamento, ma sono integrate in modo fluido nelle nostre pipeline di build e deploy. Questo approccio ci consente non soltanto di avere centralizzazione e controllo completo su ogni fase del processo, ma anche di ottenere dei report di sicurezza attendibili, da cui implementare eventuali gate che blocchino il deploy del software non conforme agli standard prefissi, offrendo un ulteriore livello di garanzia e protezione per i nostri clienti.

Sicurezza successiva al rilascio: logging e gestione delle vulnerabilità

La sicurezza rimane un aspetto fondamentale anche dopo il rilascio dell’applicazione. A partire dal go-live, infatti, è fondamentale garantire un monitoraggio continuo per comprendere il comportamento effettivo del software e dei suoi utenti, nonché per identificare eventuali vulnerabilità che potrebbero emergere nel tempo.

Consulta il documento di Assessment per Sviluppo Software Sicuro:

SCARICA IL DOCUMENTO

I servizi inerenti al tema del logging e monitoring che Intesys ed Intesys Networking offrono alla loro clientela sono:

  • yPAM: monitoraggio proattivo delle applicazioni che permette di analizzare velocità, affidabilità ed errori dei software in produzione tramite report e cruscotti in real time
  • Soluzioni di logging monitoring e alerting avanzate: monitoraggio e troubleshooting dei log applicativi ed infrastrutturali per garantire sicurezza, compliance e risoluzione celere degli incident
  • Gestione continua delle vulnerabilità: scansioni automatizzate del software in produzione e/o dei penetration test specifici

Anche in questa fase emerge il valore della sinergia, citata in apertura, tra i servizi di Intesys e Intesys Networking, che possono essere attivati e miscelati a seconda delle specifiche esigenze di ogni progetto.

Logo Intesys bianco
SOFTWARE SICURO

Scopri come sviluppiamo
soluzioni a prova di cyberischio

SCOPRI DI PIÙ
3.8/5.0 Article rating
4 Reviews
Cosa ne pensi dell'articolo?
  1. Amazing
  2. Good
  3. Bad
  4. Meh
  5. Pff
Diego Loro
Project Manager

Entrato in Intesys nel 2021, mi occupo di Project Management e Service Management. Prima di Intesys, dopo la laurea in ingegneria ho lavorato per 15 anni nel settore IT come Senior Java Developer, Software Architect e Project Manager di progettualità ad alto contenuto tecnologico.

NEWSLETTER