A equipa da SecureLayer7 lançou o Sandyaa, um auditor de código-fonte autónomo e de código aberto que usa modelos de linguagem para ler bases de código, rastrear o fluxo de dados e produzir exploits funcionais para cada vulnerabilidade confirmada. A ferramenta, distribuída sob licença MIT, promete reduzir o ruído típico dos analisadores estáticos tradicionais ao exigir prova de explorabilidade antes de reportar qualquer falha.
Pontos-chave
O Sandyaa opera sem chave de API dedicada, reaproveitando a sessão do Claude Code já autenticada no terminal do utilizador. Cada descoberta passa por oito fases recursivas de verificação, incluindo encadeamento de vulnerabilidades e prova de explorabilidade. Dois bugs reais no Spring AI já foram divulgados publicamente como resultado do trabalho da ferramenta.
Auditoria autónoma sem paragens
O Sandyaa aceita um diretório local ou um URL Git e executa a auditoria até ao fim sem qualquer prompt interativo. O modelo constrói contexto entre ficheiros, divide bases de código extensas em blocos dimensionados pela densidade do código e pelo orçamento de tokens, e revisita as mesmas secções múltiplas vezes para refinar conclusões.
Cada vulnerabilidade confirmada é escrita numa pasta de resultados contendo uma análise detalhada, um proof-of-concept em Python, um guia de configuração e um ficheiro evidence.json que liga cada afirmação a um caminho de ficheiro e número de linha específicos. Esta estrutura permite que outro investigador reproduza o achado sem ler o código-fonte todo.
Oito fases recursivas de análise
O motor do Sandyaa assenta em oito passos recursivos: rastreio de cadeias de chamada, expansão de fluxo de dados, autoverificação, encadeamento de vulnerabilidades, refinamento do proof-of-concept, deteção de contradições, validação de pressupostos e prova final de explorabilidade. Um analisador de controlo do atacante separado elimina descobertas que não sejam alcançáveis a partir de entrada não confiável, reduzindo falsos positivos teóricos.
A arquitetura baseia-se no que o projeto chama Recursive Language Models. O modelo conduz um REPL Python que aplica filtros de expressões regulares, divide ficheiros em blocos e dispara subconsultas a outros modelos. Os resultados são agregados em código, o que permite ao Sandyaa processar repositórios maiores do que uma única janela de contexto suportaria. O conceito deriva de pesquisa publicada no arXiv sobre recursão em modelos de linguagem.
Duas falhas reais no Spring AI
A SecureLayer7 já usou o Sandyaa para descobrir vulnerabilidades reais em produção. Dois bugs no projeto Spring AI foram divulgados publicamente: uma injeção SQL na classe MariaDBFilterExpressionConverter e uma injeção JSONPath no PgVectorStore AbstractFilterExpressionConverter. Ambos foram confirmados com proof-of-concept executável gerado pela própria ferramenta.
Sandeep Kamble, diretor de tecnologia da SecureLayer7, explicou que a equipa apertou o pipeline de verificação até a taxa de falsos positivos descer para um nível em que rever o output da ferramenta se tornou mais produtivo do que ler o código-fonte do zero. O filtro de controlo do atacante corre antes da geração de qualquer proof-of-concept, evitando que a ferramenta construa exploits para caminhos não alcançáveis.
Execução de exploits opcional e controlada
O Sandyaa pode executar o código de prova que gera para confirmar a explorabilidade de uma vulnerabilidade. Esta funcionalidade está desativada por defeito e exige ativação explícita pelo utilizador. Quando ligada, a execução ocorre num ambiente controlado, e o filtro de controlo do atacante garante que apenas caminhos alcançáveis a partir de entrada externa chegam a esta fase.
A ferramenta suporta ainda o roteamento opcional de algumas fases para o Gemini, caso a CLI do Gemini esteja instalada e autenticada. Nenhuma chave de API é necessária para este caminho alternativo, já que o Sandyaa reaproveita a sessão do CLI tal como faz com o Claude Code.
Cobertura de classes de vulnerabilidade
O Sandyaa procura bugs de segurança de memória como use-after-free, buffer overflow, type confusion e double-free. Detecta ainda falhas lógicas como bypass de autenticação, TOCTOU e erros de máquina de estados. Em injeção, cobre SQL, comando, XSS, SSRF e path traversal. O motor analisa também uso indevido de criptografia, corridas de concorrência, problemas de inteiros e APIs inseguras como desserialização, XXE e prototype pollution.
A configuração vive num ficheiro YAML onde se define o caminho do alvo, tamanho de bloco, severidade mínima, limiar de explorabilidade e opções de output. O projeto inclui checkpointing automático, permitindo retomar auditorias interrompidas sem recomeçar do zero.
Instalar o Sandyaa exige apenas Node.js 18 ou superior e uma instalação autenticada do Claude Code. O projeto corre em macOS de forma ativa e em Linux sem bloqueadores conhecidos, mas não suporta Windows nativo porque invoca comandos exclusivos de Unix e lança o CLI do Claude diretamente sem wrapper de shell. Utilizadores de Windows podem recorrer ao WSL2 para obter o mesmo comportamento que em Linux.
O que fazer a seguir
Equipas de segurança que queiram testar o Sandyaa devem começar por repositórios próprios ou autorizados, dada a capacidade da ferramenta de gerar e executar exploits. O repositório oficial está disponível no GitHub da SecureLayer7, com instruções de instalação para macOS e Linux via WSL2. Para quem procura abordagens complementares de auditoria com IA, vale a pena conhecer o AgentGG, scanner SAST que confirma falhas antes de reportar e a OpenHack da Hadrian para auditoria de código-fonte com IA.