Test di Sicurezza avanzati – Sicurezza e Compliance, anime gemelle in un mondo digitale complesso
Nel corso del Forum ICT Security 2024, l’intervento “Test di sicurezza avanzati: La sicurezza va oltre la compliance” del Security Researcher Luca Compagna ha esplorato la relazione tra sicurezza e compliance nel contesto digitale.
L’intervento ha approfondito l’importanza dell’analisi statica e dinamica nel testing del software, nonché i problemi di accuratezza degli strumenti di analisi e il ruolo dell’AI nel migliorare l’interpretazione dei risultati, senza tralasciare le complicazioni dovute a normative complesse e budget limitati.
È stata inoltre sottolineata la responsabilità dei produttori di software in caso di vulnerabilità e l’importanza della trasparenza nei tool di analisi, mettendo in luce aspetti fondamentali per comprendere l’evoluzione dei moderni test di sicurezza.
Guarda il video completo dell’intervento:
Sinergia teorica e complessità operativa
In apertura il relatore ha ricordato che, idealmente, la relazione tra sicurezza e compliance è caratterizzata da una sinergia in cui ciascuna componente rafforza l’altra.
Nel dettaglio la compliance stabilisce il quadro normativo e definisce i requisiti essenziali, mentre la sicurezza garantisce l’implementazione di questi standard attraverso controlli e processi specifici.
Tale sinergia dovrebbe innescare un circolo virtuoso: la sicurezza identifica nuove minacce e vulnerabilità, la compliance traduce queste informazioni in indicazioni normative, quindi la sicurezza implementa misure di mitigazione; a conclusione del processo, la compliance verifica e documenta l’efficacia delle soluzioni adottate tramite processi di auditing.
Tuttavia – come sottolineato da Compagna – nella realtà operativa questa relazione non sempre è lineare.
Il relatore ha descritto sicurezza e compliance come due “anime gemelle sulla carta”: sebbene possano sembrare perfettamente complementari, nella pratica emergono numerose complicazioni che impediscono una collaborazione armoniosa.
Di conseguenza le due funzioni entrano spesso in conflitto, soprattutto quando si tratta di competere per le risorse aziendali e definire le priorità.
La complessità del panorama normativo
Uno dei principali ostacoli alla piena sinergia tra sicurezza e compliance è rappresentato dalla complessità del panorama normativo.
Quest’ultimo è infatti caratterizzato da una vasta rete di direttive e regolamenti, che le organizzazioni devono affrontare con grande attenzione. Come evidenziato da Compagna, “il panorama della compliance è molto complesso”: la molteplicità di normative legate alla sicurezza, alla privacy e ad altri ambiti settoriali rende non poco arduo distinguere ciò che è pertinente da ciò che non lo è.
La necessità di conformarsi a regolamenti sovrapposti e in continuo aggiornamento impone alle aziende uno sforzo considerevole per mantenere aggiornati i propri processi e controlli; una sfida amplificata dalla costante evoluzione delle minacce informatiche, che richiede un costante adattamento delle strategie di sicurezza.
Oggi l’incapacità di rispondere efficacemente a questo panorama mutevole, infatti, può comportare non solo rischi per la sicurezza ma anche sanzioni derivanti dalla mancata conformità al quadro normativo.
Sicurezza vs Compliance: concorrenza per le risorse
Un altro aspetto cruciale che complica la relazione tra sicurezza e compliance riguarda la gestione delle risorse.
Poiché sicurezza e compliance competono per lo stesso budget aziendale, questo conflitto può portare a un paradosso operativo.
Nel tentativo di garantire la compliance – requisito essenziale per operare sul mercato e mantenere la fiducia degli stakeholder – le organizzazioni finiscono spesso per adottare un approccio “minimalista” alla cybersecurity, limitandosi a implementare i controlli necessari a soddisfare i requisiti normativi ma senza migliorare la sicurezza effettiva.
Si tratta di un fenomeno noto come “checkbox compliance”: ossia la tendenza ad applicare misure standardizzate per adempiere ai requisiti di legge, senza porsi ulteriori domande sulla reale efficacia delle misure stesse. In questo modo, le risorse destinate alla compliance possono sottrarre investimenti necessari per l’adozione di soluzioni di sicurezza più urgenti e proattive.
Il relatore ha avvertito che tale approccio può indurre un falso senso di sicurezza, lasciando le organizzazioni vulnerabili a minacce avanzate non contemplate dai requisiti minimi di conformità; al riguardo ha esposto due esempi di “checkbox compliance” nel contesto di una fase cruciale nel ciclo di sviluppo del software, ovvero quella dei test di sicurezza.
Test di Sicurezza nello sviluppo software
Nell’attuale contesto dello sviluppo software, i test di sicurezza rappresentano una fase fondamentale del ciclo di vita del prodotto.
Data la citata complessità del quadro tecnologico e normativo, il relatore ha sottolineato come l’integrazione di tecniche di testing automatizzate sia diventata essenziale per garantire che il codice prodotto sia sicuro e conforme agli standard richiesti.
Tra gli approcci più diffusi vi sono l’analisi statica del codice e la Software Composition Analysis (SCA), strumenti indispensabili per identificare vulnerabilità in fase precoce e ridurre il rischio di vulnerabilità nel prodotto finale.
Il rischio evidenziato da Compagna è che le aziende finiscano per delegare interamente a questi tool il compito di svolgere analisi di sicurezza, senza poi chiedersi quanto i risultati e le azioni correttive suggerite corrispondano alla realtà della loro organizzazione.
Analisi statica: sfide e opportunità
L’analisi statica del codice è spesso rappresentata come un semaforo: verde per il codice sicuro, arancione per potenziali problemi e rosso per criticità che necessitano interventi immediati.
Tuttavia questo processo, raccomandato anche da diverse normative di settore, presenta significative sfide.
Il relatore ha spiegato che l’analisi statica pone problemi teoricamente “indecidibili”, implicando inevitabili compromessi tra l’accuratezza dei risultati e la gestione dei falsi positivi o negativi; in particolare i falsi positivi possono ridurre l’efficienza dei team di sviluppatori, costringendoli a dedicare tempo prezioso alla verifica di segnalazioni che non rappresentano minacce reali.
Ciò rende l’analisi estremamente complessa, portando alla necessità di bilanciare la riduzione dei falsi negativi (ossia il mancato rilevamento di vulnerabilità esistenti) con la minimizzazione dei falsi positivi (ossia l’identificazione di problemi inesistenti).
Una recente ricerca – sviluppata come progetto OWASP – ha esplorato la dimensione della testabilità all’interno dei linguaggi PHP, JavaScript e Java.
Lo studio ha identificato specifici ostacoli allo svolgimento dell’analisi statica, creando cataloghi per ciascun linguaggio e conducendo misurazioni con tool sia commerciali, sia open source.
I risultati sono stati rilevanti:
- oltre il 50% degli ostacoli identificati (40% per JavaScript) impatta seriamente l’efficacia dei tool;
- mediamente, ogni 200 linee di codice si incontra un impedimento all’analisi;
- la riscrittura del codice può ridurre i falsi negativi, rivelando vulnerabilità precedentemente non rilevate.
Questi ostacoli possono derivare da complessità intrinseche del codice, tra cui l’uso di tecniche avanzate di programmazione o di pattern architetturali non convenzionali, che rendono difficile per i tool automatizzati interpretare correttamente le intenzioni degli sviluppatori.
Compagna ha ribadito come la riscrittura del codice, migliorandone l’interpretabilità, possa consentire l’individuazione di vulnerabilità precedentemente trascurate: ciò conferma l’importanza di rimuovere gli ostacoli all’analisi, per migliorare la capacità esplorative degli strumenti e ridurre l’incidenza dei falsi negativi.
Risulta quindi fondamentale integrare un processo di revisione continua del codice, che permetta di adattare e migliorare la testabilità in funzione degli strumenti disponibili.
Software Composition Analysis: la sfida dei falsi positivi
Dal canto suo la Software Composition Analysis (SCA) si concentra sull’analisi delle dipendenze open source all’interno del software, con l’obiettivo di identificare componenti vulnerabili.
Anche in questo contesto emergono sfide significative, in particolare legate ai falsi positivi, che possono raggiungere l’88% dei risultati.
Al riguardo il relatore ha evidenziato – a titolo di esempio – come non basti sapere se una certa versione di Apache contenga delle vulnerabilità, essendo invece fondamentale determinare se il codice dell’applicazione utilizzi le parti vulnerabili.
Questo sottolinea l’importanza della “reachability analysis”, ossia la verifica dell’utilizzo delle parti critiche all’interno del codice: è cruciale che i tool di SCA, anziché limitarsi a identificare una vulnerabilità generica nel componente open source, siano in grado di determinare se le parti vulnerabili del codice siano effettivamente utilizzate.
Un simile approccio consente di ridurre il numero di falsi positivi e, di conseguenza, indirizzare gli sforzi dove siano concretamente necessari, favorendo l’efficienza operativa dei team di sviluppo e sicurezza.
L’Importanza di Benchmark e trasparenza
La necessità di affrontare le sfide relative ai falsi positivi e negativi – sia nell’analisi statica, sia nella SCA – implica che le organizzazioni debbano adottare un approccio più sofisticato e integrato.
Per affrontare queste sfide, è fondamentale che la comunità sviluppi benchmark e test suite per valutare l’efficacia degli strumenti di analisi. Questi benchmark dovrebbero includere una varietà di casi d’uso applicativi, in modo da testare gli strumenti in contesti il più vicini possibile alle condizioni operative reali.
Inoltre, è necessario richiedere una maggiore trasparenza ai fornitori di tool: nessuno meglio del tool stesso può sapere quando incontra un ostacolo all’analisi.
Anche l’integrazione di tecnologie AI e LLM (Large Language Models) può fornire un supporto prezioso, fungendo da “companion” per gli sviluppatori nell’interpretazione dei risultati e nella contestualizzazione delle vulnerabilità rilevate.
In particolare, Compagna ritiene che l’utilizzo di AI e LLM potrebbe contribuire a raccogliere elementi di contesto e determinare se un risultato sia effettivamente un falso positivo o un vero positivo.
L’AI e il futuro dell’analisi della Sicurezza
Attraverso l’uso di tecniche di machine learning, infatti, i tool possono essere addestrati a riconoscere pattern di vulnerabilità più complessi così da ridurre il numero di falsi positivi, aumentando l’affidabilità degli strumenti di analisi automatizzata e migliorando la sicurezza complessiva del software.
Inoltre l’uso dell’AI consente una maggiore personalizzazione degli strumenti di analisi, adattandoli alle specifiche esigenze e al contesto operativo di ciascuna organizzazione.
L’integrazione dell’AI nei processi di analisi della sicurezza può contribuire non solo all’automazione ma anche a una migliore interpretazione dei risultati, fornendo contesto e priorità che possono guidare le decisioni operative: ciò è particolarmente utile quando si tratta di identificare e risolvere problemi in modo efficiente, garantendo che le risorse siano allocate nel modo più efficace possibile.
Evoluzione normativa e responsabilità dei produttori
Un ulteriore aspetto rilevante riguarda l’evoluzione del quadro normativo verso una maggiore responsabilizzazione dei produttori di software.
Sebbene le attuali normative in materia siano relativamente “leggere”, la tendenza verso una maggiore accountability potrebbe favorire un riallineamento tra sicurezza e compliance, spingendo le organizzazioni ad adottare un approccio alla sicurezza informatica meno formale e più integrato.
Un rafforzamento delle normative sulla responsabilità potrebbe altresì incentivare i produttori di software a investire maggiormente nella sicurezza dei propri prodotti, riducendo all’origine il rischio di vulnerabilità e migliorando la resilienza complessiva del panorama digitale.
Tale evoluzione potrebbe favorire un cambiamento culturale significativo, in cui la sicurezza informatica non sia più vista come costo aggiuntivo ma come elemento essenziale della progettazione e dello sviluppo del software.
Conclusioni
In futuro, la principale sfida sarà sviluppare strumenti e metodologie di test che possano conciliare efficacemente le esigenze della compliance con quelle della sicurezza.
Non è più sufficiente acquistare e utilizzare tool di analisi senza interrogarsi sulla loro efficacia e sui loro limiti. Occorre un approccio più critico e maturo, che consideri:
- la valutazione sistematica dell’efficacia degli strumenti di analisi;
- la comprensione e gestione degli ostacoli all’analisi statica;
- l’importanza della reachability analysis nella SCA;
- l’integrazione di tecnologie AI per supportare l’interpretazione dei risultati;
- la considerazione del contesto applicativo nell’analisi delle vulnerabilità;
- la promozione di una cultura orientata alla sicurezza che coinvolga tutti i livelli organizzativi, dal management agli sviluppatori.
In conclusione, i test di sicurezza moderni richiedono un approccio che vada oltre la mera verifica della conformità normativa.
È necessario sviluppare una comprensione profonda delle vulnerabilità software, implementare strumenti più sofisticati per la loro identificazione e adottare un approccio che sappia contemperare gli aspetti tecnici della cybersecurity con le prescrizioni legali.
Per le organizzazioni è inoltre cruciale sviluppare strategie di sicurezza integrate e proattive, che non si limitino a gestire le minacce esistenti ma sappiano anticipare e prevenire le vulnerabilità future.
Solo attraverso l’innovazione tecnologica, la formazione continua e la collaborazione con la comunità di ricerca si potrà garantire la sicurezza di un panorama normativo e digitale in costante evoluzione.
Security researcher consultant for Endor Labs, after more than 15 years at SAP, researching and innovating in the areas of security testing, security engineering, and AI.
Regular presenter at corporate internal events, industrial venues (OWASP) and leading security conferences where he published more than 40 articles.
Current focus is on static and dynamic analysis detecting security and privacy vulnerabilities, how to measure these techniques and how to make them more accurate.