Chiosa
Software & Code

Le false rassicurazioni sulla sicurezza possono fuorviare i modelli che verificano il codice

Trusting the Tool: Asymmetric Deference of LLM Vulnerability Auditors to Static-Analysis Evidence · arXiv:2610.32876

4 min
Aggiornato

In parole semplici

Quando i modelli linguistici cercano vulnerabilità nel codice C/C++, possono ricevere note da un programma che analizza il codice. Questo paper presenta un metodo controllato per verificare se i modelli confrontano quelle note con il codice, soprattutto quando una nota dice che un controllo di sicurezza è presente o manca.

Per uno dei modelli testati, le note false secondo cui un controllo era presente hanno fatto sì che sfuggissero più funzioni vulnerabili; i falsi allarmi sulla mancanza di controlli non hanno ridotto l’accuratezza. In un test successivo, una fase separata di verifica ha aiutato quel modello.

La ricerca

Quando un modello linguistico verifica il codice con l’aiuto di un analizzatore, controlla le affermazioni di quest’ultimo confrontandole con il codice? La risposta conta perché una nota secondo cui un controllo di sicurezza è presente può provocare una reazione diversa da una nota secondo cui manca.

Lo studio verifica se questa differenza emerge quando le affermazioni riguardano le stesse operazioni nel codice.

Gli autori confrontano le verifiche dei modelli linguistici con note vere e inventate dell’analizzatore per capire se esaminano diversamente le affermazioni di sicurezza e quelle di pericolo.

Gli autori hanno confrontato le verifiche delle stesse funzioni C/C++ vulnerabili o corrette in presenza di note diverse dell’analizzatore. Per deepseek-chat, le false affermazioni secondo cui un controllo era presente hanno ridotto l’accuratezza sulle funzioni vulnerabili da 0.75, con note vere e pertinenti, a 0.64; i falsi allarmi sulla mancanza di un controllo hanno aumentato l’accuratezza sulle funzioni corrette da 0.67 a 0.79. In questi confronti abbinati cambiava la veridicità delle note sulle stesse operazioni.

Dato che i modelli possono avere una diversa tendenza iniziale a segnalare problemi nel codice, gli autori hanno misurato anche gli spostamenti verso ciascuna affermazione falsa rispetto alle note vere. In una replica con sette nuovi modelli, lo spostamento medio favoriva le false rassicurazioni.

I risultati supportano l’esistenza di un’asimmetria nel modo in cui i modelli testati hanno risposto ai due tipi di affermazione.

I risultati derivano da verifiche isolate di brevi funzioni C/C++, usando evidenze costruite dall’analizzatore degli autori.

Il passaggio di verifica proposto ha migliorato i risultati di deepseek-chat in un test definito in anticipo, ma il suo guadagno più contenuto per qwen-plus non è stato statisticamente significativo.

Cosa mostrano le prove

  • La domanda sulle evidenze

    Il paper presenta un metodo controllato per studiare come i modelli linguistici usano le evidenze dell’analisi statica quando cercano vulnerabilità in funzioni C/C++. La domanda è se i modelli confrontino con il codice le affermazioni sui controlli e se esaminino in modo diverso l’affermazione che un controllo esista rispetto a quella che manchi.

    Il metodo isola la risposta dei modelli alle evidenze, invece di misurare soltanto il rilevamento delle vulnerabilità.

  • Note che si possono verificare

    Per stabilire quali note fossero vere, gli autori hanno costruito un analizzatore che elenca le operazioni sensibili e le condizioni che valgono in ogni percorso fino a esse, insieme ai rischi che la funzione non esclude.

    Hanno abbinato funzioni vulnerabili e corrette, poi hanno variato le note mostrate ai modelli. Le affermazioni false potevano essere confrontate con la funzione; il modello non vedeva la correzione. Così è stato possibile confrontare note vere e false sulle stesse operazioni.

  • La veridicità ha cambiato l’effetto

    Nelle configurazioni DeepSeek flash riportate, le note vere dell’analizzatore hanno prodotto pochi cambiamenti misurabili nell’accuratezza: mostrarle tutte l’ha modificata di +0.02 per ciascuna configurazione, una variazione non statisticamente significativa.

    Nel confronto più mirato, la funzione e la pertinenza della nota restavano uguali, mentre cambiava la sua veridicità. Per deepseek-chat, le false affermazioni secondo cui un controllo era presente hanno ridotto l’accuratezza sulle funzioni vulnerabili, mentre i falsi allarmi sulla mancanza di un controllo non l’hanno ridotta sulle funzioni corrette.

  • Il confronto tra gli spostamenti dei giudizi

    L’accuratezza da sola può rispecchiare la tendenza iniziale di un modello a classificare il codice come vulnerabile. Gli autori hanno quindi misurato anche se le note false spostassero i giudizi verso le proprie affermazioni, rispetto a note vere sulle stesse operazioni.

    In una replica registrata internamente con sette nuovi modelli, l’asimmetria media era positiva: le false rassicurazioni spostavano i giudizi verso «sicuro» più di quanto i falsi allarmi li spostassero verso «vulnerabile». L’entità variava tra i modelli.

  • La prova di una fase di verifica

    Gli autori interpretano i risultati come una differenza nel modo in cui le affermazioni vengono esaminate: dire che un controllo manca può spingere il modello a cercarlo, mentre dire che esiste può indurlo ad accettare l’affermazione senza verificarla.

    In un test definito in anticipo, una chiamata separata che verificava le note e mostrava quelle confutate ha migliorato l’accuratezza di deepseek-chat in presenza di false rassicurazioni, senza modificare l’accuratezza con note vere e pertinenti. Il guadagno per qwen-plus era minore e non statisticamente significativo.

Dettagli

Paper successivoVulnSAGE checks the code evidence behind security warnings