AI assistant? Parliamone. Secondo uno studio condotto da Snyk, società specializzata in CyberSecurity nell'ambito della programmazione, attualmente gli assistenti al coding basati sulle AI genererebbero una quantità elevata di codice insicuro. Fin qui nessuna sorpresa. Si tratta di strumenti ancora molto lontani dalla perfezione. Ad essere particolarmente interessanti sono invece le conclusioni della ricerca. I problemi di sicurezza del codice, infatti, deriverebbero non tanto dalle competenze degli sviluppatori o dal modello generativo di riferimento ma dai tipi di prompt che vengono utilizzati.
Gli assistenti al coding più utilizzati
Il sondaggio ha coinvolto un campione composto da oltre 500 professionisti tra programmatori e manager del comparto IT. La maggior parte impiegati in aziende di medie dimensioni o comunque non particolarmente strutturate. Stando alle risposte fornite nel 70.3 dei casi l'AI assistant di riferimento sarebbe ChatGPT, nel 47.4% Amazon CodeWhisperer e nel 43.7% GitHub CoPilot. Chiaramente la stessa azienda potrebbe utilizzare più di uno strumento alla volta o anche tutti e tre.
Circa il 75% degli intervistati riterrebbe il codice prodotto con le AI (o dalle AI) più sicuro di quello creato dai soli programmatori in carne ed ossa. Si tratterebbe però di un bias con implicazioni spesso molto rischiose. Basti pensare che, ad esempio, secondo i ricercatori della New York University ben il 40% del codice generato tramite GitHub CoPilot presenterebbe delle vulnerabilità di qualche tipo. L'impressione è che in molti casi gli aspetti legati alla sicurezza vengano sacrificati in favore delle produttività.
56.4% of technology professionals say insecure AI suggestions are common — but few have changed processes to improve #AI security.
Read more in Snyk's 2023 AI-Generated Code Security Report: https://t.co/dW3LzzPghg pic.twitter.com/hSSMmR7Dzk
— Snyk (@snyksec) November 28, 2023
Le ragioni dell'insicurezza
Come anticipato, e come confermato da una ricerca della Stanford University, le ragioni che portano alla grande quantità di codice insicuro creato dagli assitenti andrebbero ricercati nel modo in cui gli sviluppatori interagiscono con essi. A questo proposito sarebbero stati rilevati numerosi sorgenti il cui le querystring vengono realizzate tramite la concatenazione di stringhe. Una modalità che nel caso delle applicazioni che operano con i database potrebbe spianare la strada alle SQL injection.
Tra i bias che andrebbero eliminati vi è il fatto che molto spesso la soluzione ad un problema venga considerata sicura. Proprio perché in grado di rimuovere il problema stesso. Si tratta di una dinamica simile a quella che si presenta quando viene copiato e incollato del codice da Stack Overflow. Dando per scontato che chi lo ha scritto sia abbastanza competente da aver escluso qualsiasi vulnerabilità. Nel caso di quest'ultimo la situazione non sarebbe infatti migliore: il 15.4% delle App Android presenterebbe codice ripreso da Stack Overflow e in quasi il 98% dei casi esso sarebbe vulnerabile.