An Open-Agent Framework for Intelligent Compliance Analysis in Infrastructure as Code Using Large Language Models
Questo articolo presenta un nuovo framework open-agent che ibrida l'applicazione di policy deterministica di Open Policy Agent con il ragionamento contestuale guidato da Large Language Model per fornire un'analisi della conformità e una guida alla rimedio precise e pronte per l'audit per l'Infrastructure as Code, dimostrando miglioramenti delle prestazioni statisticamente significativi rispetto ai tradizionali strumenti di analisi statica.
Articolo originale sotto licenza CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Questa è una spiegazione generata dall'IA dell'articolo qui sotto. Non è stata scritta né approvata dagli autori. Per precisione tecnica, consulta l'articolo originale. Leggi il disclaimer completo
Nel mondo digitale moderno, l'infrastruttura che alimenta le nostre applicazioni, conserva i nostri dati e gestisce i nostri servizi non risiede più in una sala server fisica con file di luci lampeggianti. Al contrario, vive nel cloud, una vasta rete di computer remoti gestiti da colossali aziende tecnologiche. Per le organizzazioni che utilizzano questi servizi, la responsabilità della sicurezza è cambiata. Mentre i fornitori di servizi cloud si assicurano che l'hardware funzioni, i clienti devono garantire che le loro configurazioni digitali siano impostate correttamente. Un singolo errore nel modo in cui un bucket di archiviazione viene aperto o nel modo in cui viene concessa un'autorizzazione di rete può esporre informazioni sensibili all'intero internet. Per gestire questa complessità, gli ingegneri utilizzano un metodo chiamato "Infrastructure as Code" (Infrastruttura come Codice). Questo approccio tratta la configurazione delle risorse digitali come un programma software, scrivendo le regole in file di testo che possono essere letti dalle macchine. Ciò consente coerenza e velocità, ma significa anche che un singolo errore nel codice può essere copiato istantaneamente su centinaia di sistemi, creando una vulnerabilità diffusa prima ancora che qualcuno se ne accorga.
Per individuare questi errori, i team di sicurezza si affidano ad strumenti automatizzati che scansionano il codice alla ricerca di errori noti, proprio come un correttore ortografico trova i refusi. Tuttavia, questi strumenti tradizionali sono spesso rigidi; possono dirti che una regola è stata violata, ma faticano a spiegare perché sia importante o come risolverla in un modo che abbia senso per un auditor umano. D'altro canto, una tecnologia più recente nota come modelli linguistici di grandi dimensioni (LLM) può leggere il codice e generare spiegazioni in linguaggio naturale, ma sono soggetti a inventare cose o a fornire risultati incoerenti quando usati da soli. La sfida per i ricercatori è stata quella di combinare l'affidabilità rigorosa degli scanner automatizzati con la capacità esplicativa dei modelli linguistici intelligenti per creare un sistema che sia allo stesso tempo preciso e comprensibile.
Un team di ricercatori della Princess Sumaya University for Technology ha costruito un nuovo framework che fonde con successo questi due approoli. Hanno creato un sistema che utilizza prima un motore rigido basato su regole per scansionare il codice dell'infrastruttura alla ricerca di violazioni di specifici standard di sicurezza, e poi passa le violazioni confermate a un modello linguistico intelligente per generare report chiari, leggibili dall'uomo, e suggerimenti per le correzioni. I ricercatori hanno testato questo sistema su una vasta collezione di 231 file di configurazione reali. Hanno scoperto che il sistema ibrido era straordinariamente accurato, identificando correttamente le falle di sicurezza in quasi il 97 percento dei casi in cui segnalava un avviso, riuscendo al contempo a catturare più del 90 percento dei problemi effettivi presenti nei file. Questa performance è stata significativamente migliore rispetto agli strumenti industriali esistenti, che tendono a segnalare troppi problemi innocui, causando lavoro non necessario agli ingegneri.
Il cuore di questo nuovo framework è un processo in cinque fasi che trasforma il codice grezzo in un rapporto di audit rifinito. Per prima cosa, il sistema prende i file di configurazione grezzi e li traduce in un formato che il motore di scansione possa comprendere. Successivamente, un motore di policy deterministico, che opera come un arbitro severo, controlla il codice rispetto a un set specifico di 16 regole di sicurezza. Queste regole si basano sullo standard NIST SP 800-53, un catalogo di controlli di sicurezza ampiamente riconosciuto utilizzato da governi e imprese. Il motore cerca pattern specifici, come un'unità di archiviazione che manca di crittografia o una porta di rete lasciata aperta al pubblico. Poiché questo motore segue regole fisse, non indovina mai; riporta solo ciò che può dimostrare essere una violazione.
Una volta che il motore identifica una violazione, il sistema non si ferma lì. Invia i dettagli dell'errore a un modello linguistico di grandi dimensioni, che funge da agente di ragionamento contestuale. Questo modello ha il compito di svolgere tre funzioni specifiche: spiegare il rischio in linguaggio naturale, mappare l'errore sullo standard di sicurezza ufficiale che viola e generare uno snippet di codice corretto per risolvere il problema. Per garantire che il modello non commetta errori nella parte fattuale del report, i ricercatori hanno implementato un meccanismo di sicurezza. Al modello non è permesso indovinare il nome dello standard di sicurezza; invece, il sistema cerca il nome corretto da un elenco verificato e lo inserisce automaticamente. Il modello è libero solo di generare la spiegazione e la correzione del codice. Inoltre, i ricercatori hanno aggiunto istruzioni rigorose al prompt del modello per garantire che il codice scritto sia sintatticamente corretto e privo di testo superfluo, un passaggio che si è rivelato essenziale per l'affidabilità.
I risultati dello studio dimostrano la potenza di questo approccio combinato. Quando testato sui 231 file di configurazione, il sistema ha raggiunto una precisione del 96,9 percento, il che significa che quando segnalava un problema in un file, era quasi sempre corretto. Ha inoltre raggiunto un richiamo (recall) del 90,5 percento, trovando la stragrande maggioranza degli errori reali nascosti nel codice. In confronto, un importante strumento industriale chiamato Checkov, ampiamente utilizzato nel settore, ha trovato ogni singolo errore nel set di test, ma ha anche segnalato quasi la metà dei file puliti come problematici. Questo alto tasso di falsi allarmi costringerebbe i team di sicurezza a sprecare tempo investigando problemi inesistenti. Il nuovo framework, al contrario, ha fornito un segnale molto più chiaro, riducendo il rumore pur mantenendo alti i tassi di rilevamento.
Un esame più approfondito dei dati ha rivelato un modello chiaro nei tipi di errori trovati. La violazione più comune riguardava la mancanza di crittografia per i dati a riposo (data at rest), che ha rappresentato più del 64 percento di tutti i problemi rilevati. Questo risultato concorda con ricerche precedenti che suggeriscono che dimenticare di crirettografare i dati archiviati sia l'errore di sicurezza più frequente negli ambienti cloud. Il sistema ha anche identificato con successo problemi relativi ai controlli di accesso e alla registrazione degli audit (audit logging), coprendo un ampio spettro di requisiti di sicurezza. I ricercatori hanno osservato che la capacità del sistema di generare report accurati e pronti per l'audit è un vantaggio chiave, poiché colma il divario tra il rilevamento tecnico e la documentazione necessaria per la conformità.
Lo studio ha inoltre evidenziato l'importanza delle salvaguardie integrate nel sistema. Quando i ricercatori hanno testato inizialmente il modello linguistico senza vincoli rigorosi, esso produceva correzioni di codice che erano spesso sintatticamente non valide o cariche di prosa superflua. Imponendo regole di formattazione rigide e utilizzando una tabella di ricerca verificata per i dati fattuali, il sistema ha raggiunto un tasso di successo del 100 percento nella generazione di snippet di codice validi e mappature dei controlli accurate. Ciò suggerisce che l'affidabilità di tali sistemi non deriva dall'intelligenza del modello da solo, ma dalla progettazione attenta del flusso di lavoro che lo circonda.
Sebbene il sistema abbia mostrato risultati solidi, i ricercatori sono stati cauti nel sottolinearne i limiti. Il framework si concentra attualmente su un set specifico di controlli di sicurezza e risorse cloud, e opera sul codice prima che venga distribuito (deployed), il che significa che non può rilevare problemi derivanti da modifiche apportate al sistema live dopo la distribuzione. Inoltre, la "verità di base" (ground truth) utilizzata per testare il sistema è derivata da una combinazione di euristiche automatizzate e iniezione manuale, il che potrebbe non catturare perfettamente ogni sfumatura di un ambiente reale. Nonostante questi confini, lo studio fornisce una prova di concetto convincente. Dimostra che combinando la precisione inflessibile dei motori basati su regole con il ragionamento flessibile dei modelli linguistici, è possibile creare uno strumento di analisi della conformità che sia sia altamente accurato che realmente utile per gli operatori umani. Il lavoro suggerisce una strada percorribile in cui gli strumenti di sicurezza automatizzati non si limitino a trovare problemi, ma aiutino i team a comprenderli e risolverli con fiducia.
Sommerso dagli articoli nel tuo campo?
Ricevi digest giornalieri degli articoli più recenti corrispondenti alle tue parole chiave di ricerca — con riassunti tecnici, nella tua lingua.