L’arrivo delle intelligenze artificiali ha rivoluzionato interi settori, al punto che oggi facciamo fatica a immaginare un futuro in cui questi sistemi non siano a nostra disposizione.
Da un punto di vista tecnico è corretto parlare di Large Language Models, che da qui in poi citeremo utilizzando l’acronimo LLM. Si tratta di modelli di intelligenza artificiale che sono stati sviluppati sia per capire il linguaggio umano, sia per generare di conseguenza dei risultati. Spesso si pensa agli LLM per la generazione di testo, ma in realtà possono anche realizzare del linguaggio sotto forma di codice.
A tal proposito è utile sapere che gli LLM, con le loro capacità, stanno cambiando radicalmente l’individuazione delle vulnerabilità, superando il classico pentesting. Un ottimo esempio di risorsa da integrare è PentestGPT.
Cerchiamo di capire insieme quali sono i benefici e le novità introdotte da questo nuovo approccio.
Comprensione semantica del codice
Tradizionalmente l’individuazione delle vulnerabilità passava da un test statico. Gli LLM invece adottano un approccio completamente differente. Per prima cosa si effettua una analisi semantica del codice, con lo scopo di verificare quali sono i reali flussi logici che vengono generati. Si ragiona poi sul codice stesso, analizzando qual è il contesto e quali sono gli intenti del programma.
In questo modo si riescono a riconoscere vulnerabilità che potrebbero sfuggire ai test tradizionali. Ciò potrebbe avvenire nel caso di vulnerabilità che non sono legate a uno specifico pattern.
Verifica costante
Il tradizionale pentesting si effettua in maniera periodica. Di solito si definisce l’intervallo da rispettare tra un test e il successivo. Grazie agli LLM, invece, si può contare su un sistema di verifica attivo costantemente. I test vengono eseguiti addirittura simulando dei veri e propri attacchi.
Si tratta di un aspetto da non sottovalutare, visto che in questo modo si possono individuare velocemente eventuali vulnerabilità emergenti.
Simulare gli attacchi
Gli LLM non si limitano a generare semplici attacchi, ma sono in grado di mettere a punto delle strategie dinamiche che rendono tali attacchi molto più efficaci. Non seguono semplicemente uno schema, ma riescono a reagire in base ai risultati che si trovano di fronte. A ciò si aggiunge che possono anche imitare quello che è il comportamento di un essere umano.
Ciò fa sì che si possa vedere se ipotetiche vulnerabilità emergono in situazioni di attacco “reale”, al contrario dei classici e prevedibili schemi che si usano in test di questo genere.
Risolvere i problemi
Gli LLM non si limitano a individuare le vulnerabilità di un’applicazione, ma ragionano su di esse, e possono dare delle preziose indicazioni a coloro che avranno poi il compito di risolverle. Sono in grado in primis di spiegare nei dettagli tali vulnerabilità, così che il tecnico abbia a disposizione una visione chiara e completa della situazione. Inoltre possono generare delle patch e anche dare utili suggerimenti su come effettuare dei fix.
Per questo oggi gli LLM vengono considerati degli importanti alleati nel mondo dello sviluppo di software. Non sono solamente strumenti da usare per il riconoscimento dei problemi, ma possono essere utilizzati come assistenti durante tutto il processo che va dall’individuazione alla risoluzione.
