.@trailofbits' equipe Buttercup a falar sobre a nossa estratégia de competição agora, no palco da AIxCC. Aqui está a nossa equipe principal (8 pessoas principais + ~3 mercenários):
Os princípios orientadores das nossas estratégias. Resumindo, use a melhor ferramenta para o trabalho. Não espere que os LLMs sejam magicamente bons em coisas que sabemos que não são.
O design original do Buttercup era substancialmente mais sofisticado. Foi reduzido para cumprir as regras e levar em conta as limitações de recursos da nossa equipe.
Fizemos substancialmente bem nas semifinais, marcando muitos primeiros sangramentos, mas o nosso localizador de bugs Java quebrou e ainda não sabemos porquê!
As semifinais validaram a nossa abordagem geral, mas era necessário ajustá-la para acomodar o enorme aumento de escala para as finais. Descartámos o protótipo e começámos do zero para as finais.
Henrik trabalhou no orquestrador: como, o que e quando submeter à API de competição. Decidimos sempre exigir um PoV para maximizar a nossa confiança nas submissões.
O Run trabalhou no nosso motor de descoberta de vulnerabilidades. Utilizámos fuzzers padrão do oss-fuzz. Usámos um corpus partilhado onde LLMs ajudaram os fuzzers a obter cobertura.
Ronald trabalhou no nosso motor de descoberta de vulnerabilidades. Usámos fuzzers padrão do oss-fuzz. Utilizámos um corpus partilhado onde LLMs ajudaram os fuzzers a obter cobertura.
Ronald trabalhou no nosso motor de descoberta de vulnerabilidades. Usámos fuzzers padrão do oss-fuzz. Utilizámos um corpus partilhado onde LLMs ajudaram os fuzzers a obter cobertura.
O patcher é um sistema multi-agente, com 6 mil linhas de código, LangChain/LangGraph, com GPT-4.1 sem raciocínio. O agente de segurança identifica as causas raiz, o agente engenheiro encontra as instruções de teste, e então o agente de QA aplica um patch e valida-o. Se falhar, o agente de reflexão ajusta a estratégia.
Nas rondas de Exibição, marcámos primeiro na ronda 1, colidimos fortemente na 2 e recuperámos na 3. Fomos eficientes em termos de recursos na ronda 1, utilizando apenas $1k de um orçamento de $30k para LLM. Na ronda 2, tivemos um pequeno erro de digitação que fez tudo colapsar.
Na ronda pontuada, encontramos muitos bugs com um orçamento limitado (metade do disponível), com alta precisão, e pontuamos bem em todas as tarefas. Também encontramos pelo menos 1 bug que nenhum outro CRS encontrou, mostrando que cobrimos novos terrenos.
Como conseguimos uma pontuação tão boa? Tivemos 90% de precisão, pontuamos em todas as tarefas e fizemos correções de alta qualidade para todos os nossos bugs.
Passámos o último mês a criar uma versão reduzida do buttercup que funciona no seu portátil. Pretendemos mantê-la com uma parte dos ganhos. Agora é open source!
4K