WildCode Revisited: A Comprehensive Empirical Study on the Security of LLM-Generated Code
Questo studio convalida empiricamente che il codice generato da ChatGPT nella vita reale manca frequentemente di sicurezza, confermando i risultati precedenti derivanti da esperimenti sintetici e rivelando al contempo che gli utenti raramente si informano sulle problematiche di sicurezza quando richiedono codice.
Articolo originale dedicato al pubblico dominio sotto CC0 1.0 (http://creativecommons.org/publicdomain/zero/1.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
Immagina di avere un assistente molto talentuoso, incredibilmente veloce, ma un po' ingenuo che può scrivere codice per te. Chiedi una ricetta e lui prepara un pasto in pochi secondi. Ma ecco il problema: ha imparato a cucinare leggendo milioni di libri di cucina, ma non è mai stato in una vera cucina e non capisce davvero perché certi ingredienti possano essere pericolosi se mescolati male.
Questo articolo, "WildCode Revisited," è come una massiccia ispezione sanitaria del mondo reale sul cibo che questo assistente serve. Invece di chiedere all'assistente di cucinare un pasto di prova specifico in un laboratorio (cosa che la maggior parte degli studi precedenti faceva), i ricercatori sono andati nel "mondo reale". Hanno esaminato oltre 82.000 conversazioni reali in cui persone comuni chiedevano a questa IA (ChatGPT) di scrivere codice per loro.
Ecco cosa hanno scoperto, suddiviso in semplici analogie:
1. La cucina "selvaggia" rispetto alla cucina di prova
La maggior parte degli studi precedenti era come uno show di cucina in cui allo chef viene chiesto: "Prepara una lasagna perfetta". Lo chef sa che si tratta di un test, quindi dà il massimo.
Questo studio ha esaminato il dataset WildChat, che è come una tavola calda aperta 24 ore su 24 dove le persone ordinano ciò che vogliono, in qualsiasi lingua parlino. I ricercatori hanno scoperto che quando le persone chiedono semplicemente del codice senza specificare la sicurezza, l'IA spesso serve piatti che sono pieni di buchi. È come se l'assistente dimenticasse di chiudere la porta sul retro, lasciando la casa spalancata ai ladri (hacker).
2. La "perdita" di sicurezza
I ricercatori hanno agito come ispettori di sicurezza, scansionando il codice alla ricerca di errori comuni. Hanno scoperto che l'IA serve frequentemente:
- Serrature deboli: Utilizzo di vecchie serrature facilmente scassinabili (crittografia debole) invece di modelli moderni e indistruttibili.
- Finestre aperte: Lasciare le finestre aperte affinché gli estranei possano entrare (vulnerabilità di SQL injection).
- Ingredienti falsi: L'IA a volte inventa "ingredienti" (librerie software) che non esistono affatto. Se provi a usarli, il tuo programma crasha. Peggio ancora, un malintenzionato potrebbe creare un ingrediente falso con lo stesso nome e infilare dentro un virus.
- Vetro fragile: Il codice è spesso fatto di vetro che si frantuma se lo guardi nel modo sbagliato (problemi di sicurezza della memoria), specialmente in linguaggi come C/C++.
La grande sorpresa: Anche se il codice sembra funzionare (si esegue), è spesso pieno di trappole di sicurezza. L'IA è bravissima a far funzionare le cose, ma terribile nel renderle sicure.
3. I clienti non chiedono la sicurezza
I ricercatori hanno anche esaminato cosa chiedevano i clienti (gli utenti).
- Il gruppo del "Sistemalo e basta": La maggior parte delle persone voleva solo che il codice funzionasse o voleva correggere un bug. Erano come clienti che dicono: "Fammi un sandwich", senza preoccuparsi se il pane abbia la muffa.
- Il silenzio sulla sicurezza: Pochissime persone hanno chiesto: "Questo codice è sicuro?" o "Ha una backdoor?". È come se i clienti ordinassero cibo senza mai chiedere: "È fresco?" o "C'è un ispettore sanitario qui?".
- Il glitch della "Sicurezza": Anche quando gli utenti chiedevano codice sicuro, l'IA non sempre ascoltava, e gli utenti non sempre controllavano se l'IA l'avesse effettivamente reso sicuro.
4. Possiamo addestrare meglio l'assistente? (L'esperimento del "Prompt")
I ricercatori hanno provato alcuni trucchi per vedere se potevano far cucinare all'IA pasti più sicuri. Hanno provato:
- Role-Playing: Dire all'IA: "Agisci come un esperto di sicurezza". (Risultato: Non molto efficace. L'IA fingeva solo di essere un esperto ma continuava a commettere errori.)
- Etichette di avvertenza: Dire all'IA: "Questo codice ha problemi di sicurezza". (Risultato: Un po' meglio, ma non è un miracolo.)
- Il "Foglietto illustrativo": Dare all'IA una lista di errori specifici trovati da uno scanner di sicurezza e dire: "Correggi questi". (Risultato: Questo ha funzionato meglio. Quando all'IA veniva mostrato esattamente cosa non andava, correggeva il codice molto meglio.)
5. Il gioco del "Rifiuto"
A volte, l'IA rifiuta di scrivere codice se pensa che la richiesta sia pericolosa (come scrivere un virus). I ricercatori hanno scoperto che gli utenti potevano talvolta trarre in inganno l'IA per farle scrivere codice pericoloso chiedendo la stessa domanda in un modo leggermente diverso. È come un bambino che chiede: "Posso avere un biscotto?" e riceve un "No", ma poi chiede: "Posso avere un biscotto se ho fame?" e riceve un "Sì". I filtri di sicurezza dell'IA non sono forti quanto spereremmo.
Il punto fondamentale
Questo studio è un bagno di realtà. Dimostra che, sebbene l'IA sia incredibile nel generare codice velocemente, attualmente non è un sostituto sicuro per un esperto di sicurezza umano.
- Il Codice: Spesso contiene trappole nascoste e punti deboli.
- Gli Utenti: Raramente chiedono della sicurezza, assumendo che l'IA sappia cosa sta facendo.
- La Soluzione: Non possiamo limitarci a dire all'IA di "essere sicura". Dobbiamo darle un feedback specifico su cosa non va (come uno scanner di sicurezza) per aiutarla a riparare i buchi.
Lo studio conclude che siamo in una corsa all'uso di questi strumenti, ma lo stiamo facendo senza controllare le serrature sulle porte. Dobbiamo essere molto più cauti e proattivi riguardo alla sicurezza prima di lasciare che l'IA scriva il codice che fa girare il nostro mondo.
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.