Arvores de comportamento melhoram deteccao de vulnerabilidades por LLMs leves em relacao a ASTs
O artigo testa Behavior Trees (arvores de comportamento) como representacao intermediaria alternativa para deteccao de vulnerabilidades via LLM, mais compacta que Abstract Syntax Trees (ASTs). Usando um unico modelo local quantizado (Mistral Small 3.2 24B) sobre 460 amostras Java do Juliet Test Suite, a representacao BT melhora recall em amostras curtas e, em amostras mais longas, tanto melhora o desempenho geral quanto cabe no limite de contexto onde a AST equivalente estoura.
O desempenho de deteccao de vulnerabilidades via LLM depende fortemente de como o codigo fonte e representado no prompt. A maioria das abordagens usa o codigo bruto, e algumas reestruturam o codigo como Abstract Syntax Tree (AST) para expor sua estrutura -- mas ASTs sao verbosas e frequentemente estouram a janela de contexto de modelos menores, rodados localmente. Este artigo testa Behavior Trees, uma representacao vinda de robotica e IA de jogos que codifica fluxo de controle, condicoes e acoes, como alternativa estruturada e mais compacta especificamente para deteccao de vulnerabilidades.
Os autores constroem um pipeline de pre-processamento que converte codigo Java em AST e depois em uma representacao BT, e comparam tres formatos de entrada -- codigo bruto, AST e BT -- alimentando todos a um unico modelo local quantizado (Mistral Small 3.2 24B, Q4_K_M) sobre 460 amostras Java do Juliet Test Suite, um benchmark padrao de vulnerabilidades rotuladas. BTs superam o codigo bruto em recall nas amostras curtas, o codigo bruto vence em precisao, e nas amostras mais longas as BTs tanto melhoram o desempenho geral quanto cabem dentro da janela de contexto em casos onde a AST da mesma amostra nao cabe.
Para times que querem rodar varredura de vulnerabilidades com LLMs locais quantizados e pequenos -- por custo, latencia ou exigencia de soberania de dados, comum em ambientes regulados que nao podem enviar codigo para uma API na nuvem -- o teto rigido de janela de contexto costuma inviabilizar prompting baseado em AST em arquivos de tamanho real. Uma representacao estruturalmente informativa mas mais barata em tokens e diretamente aplicavel para quem constroi um pipeline proprio de SAST combinado com LLM, embora a avaliacao aqui esteja limitada a amostras sinteticas do benchmark Juliet em uma unica linguagem, deixando em aberto a generalizacao para codigo real, maior e em outras linguagens.