TOSSS: a CVE-based Software Security Benchmark for Large Language Models

O artigo apresenta o TOSSS, um novo benchmark baseado no banco de dados CVE que avalia a capacidade de Grandes Modelos de Linguagem (LLMs) de distinguir entre trechos de código seguros e vulneráveis, atribuindo uma pontuação de segurança que varia de 0 a 1.

Marc Damie, Murat Bilgehan Ertan, Domenico Essoussi, Angela Makhanu, Gaëtan Peter, Roos Wensveen

Publicado Thu, 12 Ma
📖 5 min de leitura🧠 Leitura aprofundada

Each language version is independently generated for its own context, not a direct translation.

Imagine que você contratou um assistente de programação superinteligente, um "robô programador" feito de Inteligência Artificial (IA), para ajudar a escrever o código dos seus softwares. Você está feliz, porque ele escreve rápido e parece saber tudo. Mas, e se esse robô, sem querer, estiver colocando fechaduras quebradas nas portas da sua casa digital?

É exatamente sobre esse medo que o artigo "TOSSS" trata.

Aqui está a explicação do que os pesquisadores descobriram, usando uma linguagem simples e algumas analogias divertidas:

1. O Problema: O Robô que não sabe o que é "Seguro"

Hoje em dia, usamos essas IAs (chamadas de LLMs) para escrever código de computador. O problema é que ninguém sabe ao certo se elas são boas em segurança.

  • A analogia: Imagine que você pede a um cozinheiro para fazer um bolo. Ele faz um bolo delicioso (o código funciona), mas esqueceu de tirar o vidro do fundo da forma (o código tem uma falha de segurança). O bolo sai, mas se alguém comer, pode se machucar.
  • Estudos anteriores mostraram que muitos desses robôs estão criando códigos com "vidros escondidos" (vulnerabilidades) em cerca de 40% das vezes.

2. A Solução: O Jogo do "Escolha a Melhor" (TOSSS)

Antes, para testar esses robôs, os cientistas pediam para eles criarem um código do zero e depois usavam um scanner para ver se havia erros. O problema era que esse scanner não conseguia pegar todos os tipos de erros novos.

Os autores criaram um novo teste chamado TOSSS.

  • A analogia: Em vez de pedir para o robô cozinhar o bolo do zero, você coloca duas versões do mesmo bolo na mesa:
    • Opção A: Um bolo com um vidro escondido (inseguro).
    • Opção B: Um bolo perfeito e seguro.
    • O Teste: Você pergunta ao robô: "Qual desses dois bolos você prefere?"
  • Se o robô escolher a Opção B, ele ganha um ponto. Se escolher a A, perde.
  • A vantagem: Como você já sabe qual é o "bolo perfeito" (porque os pesquisadores pegaram exemplos reais de erros que foram corrigidos no passado), o teste é justo, rápido e pode ser atualizado sempre que surge um novo tipo de erro no mundo real.

3. Como eles fizeram isso? (A Mina de Ouro)

Os pesquisadores usaram uma base de dados gigante chamada CVE, que é como um "diário de crimes" de softwares. Eles pegaram casos reais onde um programa tinha um erro e depois foi corrigido.

  • Eles transformaram o "antes" (com erro) e o "depois" (corrigido) em pares de opções para o robô escolher. É como se eles estivessem usando casos reais de polícia para treinar o robô a reconhecer o criminoso.

4. O Resultado: Nem todos os robôs são iguais

Eles testaram 14 robôs famosos (como os da OpenAI, Google, Anthropic, etc.) com códigos em C/C++ e Java.

  • A pontuação: Eles deram uma nota de 0 a 1.
    • 1.0: O robô é um guarda-costas perfeito, sempre escolhe o código seguro.
    • 0.5: O robô está chutando (como jogar cara ou coroa).
    • 0.0: O robô é perigoso, sempre escolhe o código com erro.
  • O que acharam:
    • Alguns robôs foram ótimos (nota perto de 0.88).
    • Outros foram péssimos (nota perto de 0.48, ou seja, eles preferiam o código com erro!).
    • Curiosidade: Os robôs feitos especificamente para programar (os "especialistas em código") nem sempre foram os melhores em escolher o código seguro. Às vezes, eles focam tanto em fazer o código funcionar rápido que esquecem de torná-lo seguro.

5. O Truque do "Dica"

Eles fizeram um teste interessante:

  • Sem dica: "Escolha A ou B." (O robô tinha que adivinhar sozinho o que era seguro).
  • Com dica: "Escolha A ou B, mas lembre-se: queremos o mais seguro."
  • Resultado: Na maioria das vezes, quando você avisa explicitamente "olha, segurança é importante aqui", o robô melhora sua nota. Isso significa que muitos robôs sabem o que é seguro, mas precisam que você lhes dê um "empurrãozinho" para lembrar de usar esse conhecimento.

Conclusão: Por que isso importa?

O TOSSS é como um novo "exame de direção" para IAs. Em vez de ver se elas conseguem dirigir um carro (escrever código), o teste vê se elas conseguem identificar qual carro tem freios defeituosos.

Isso é importante porque:

  1. É fácil de atualizar: Sempre que surge um novo vírus de computador no mundo real, os pesquisadores podem adicionar um novo par de opções ao teste.
  2. É claro: A nota diz exatamente o quão confiável o robô é.
  3. Ajuda a melhorar: Agora, as empresas que criam esses robôs podem usar esse teste para ver se seus produtos estão ficando mais seguros.

Em resumo: O artigo nos diz que, embora as IAs sejam incríveis, elas ainda precisam ser ensinadas a não deixar a porta da frente aberta. E o TOSSS é a régua perfeita para medir se elas estão aprendendo essa lição.