1 pontos por GN⁺ 3 시간 전 | 1 comentários | Compartilhar no WhatsApp
  • Defending Code Reference Harness é uma implementação de referência para realizar descoberta e correção autônoma de vulnerabilidades com Claude, estruturada com base nos aprendizados obtidos em colaboração com equipes de segurança de várias organizações
  • Este repositório não é um produto, mas uma implementação de referência, e atualmente não recebe manutenção nem contribuições
  • A Anthropic oferece como alternativa gerenciada o Claude Security, que pode encontrar e corrigir vulnerabilidades no código-fonte de vários projetos, além de gerenciar o ciclo de vida de triagem, validação de correções e geração rápida de correções
  • As skills para Claude Code incluem /quickstart, /threat-model, /vuln-scan, /triage, /patch, /customize, oferecendo suporte a definição interativa de escopo, varredura, triagem e aplicação de patches
  • harness/ é um pipeline autônomo de referência com fluxo recon → find → verify → report → patch, ajustado para busca de vulnerabilidades de memória em C/C++ usando Docker e ASAN
  • A estrutura geral do pipeline de referência, os prompts e a forma de sandboxing podem ser reutilizados, mas não funcionam imediatamente em qualquer codebase, sendo necessário portar com /customize de acordo com a linguagem, detector e tipo de vulnerabilidade
  • /quickstart, /threat-model, /vuln-scan, /triage e /patch para resultados estáticos fazem apenas leitura e escrita de arquivos, e podem ser executados sem sandbox no Claude Code após revisão e aprovação do uso de cada ferramenta
  • O pipeline autônomo de referência e o /patch sobre resultados do pipeline executam o código-alvo, por isso se recusam a rodar fora do sandbox gVisor, a menos que isso seja explicitamente contornado
  • Para executar o pipeline, é preciso preparar o gVisor e a imagem do agente com scripts/setup_sandbox.sh, além de ter Docker e as variáveis de ambiente ANTHROPIC_API_KEY ou CLAUDE_CODE_OAUTH_TOKEN
  • As etapas de execução se dividem em build, recon, find, verify, dedupe, report e patch; o agente de find cria malformed input em um contêiner isolado e continua explorando até que o binário com ASAN falhe 3 de 3 vezes
  • Na etapa verify, um agente grader separado recebe apenas a proof of concept em um novo contêiner para reproduzir a falha, e na etapa dedupe é determinado se se trata de um novo bug, de um exemplo melhor de bug existente ou de um duplicado
  • Na etapa report, é produzida uma análise estruturada de exploitability com primitive class, reachability, escalation path e severity; na etapa patch, uma correção é criada e depois são verificados o build, a ausência de crash na proof of concept original, a aprovação nos testes e uma nova busca por possibilidade de bypass
  • O fluxo inicial de uso consiste em criar no Dia 1 o threat model, a varredura estática, a triagem e candidate patches; no Dia 2, gerar findings validados por execução em bibliotecas C/C++; e nos Dias 3-5, criar targets/<your-service>/ para o próprio alvo
  • Ao portar para sua própria stack, é preciso definir o sinal de finding, o formato da proof of concept e a forma de build e execução; a referência em C/C++ usa como base a assinatura de crash do ASAN, o arquivo de input que causa o crash e um Dockerfile com clang+ASAN
  • Triagem e patching autônomos ainda são problemas em aberto; a estratégia de validação de /patch eleva o padrão, mas severity e prioridade dependem de cada ambiente, e patches validados nem sempre podem ser aceitos upstream

1 comentários

 
GN⁺ 3 시간 전
Comentários do Hacker News
  • Isso se parece mais com um gabarito de oficina. Se quiser, você pode comprar um trenó de corte transversal, mas a maioria dos marceneiros faz o seu próprio
    Dois anos atrás a situação era diferente, porque o custo de criar o próprio harness era alto, mas agora o melhor parece ser olhar para isso como referência de ideias e construir o seu do jeito que combine com o seu fluxo de trabalho, interface, definição de alvo e de esforço, e forma de notificação

    • A analogia com gabarito de oficina é perfeita. Muito software está deixando de ser algo para uso geral e virando algo extremamente personalizado
      Antes da IA, criar software para resolver o próprio problema exigia muito esforço humano, então valia a pena fazer o trabalho extra de generalizar para que outras pessoas também pudessem reutilizar. Agora isso quase não exige esforço, então o software permanece sem ser generalizado
      Hoje em dia eu quase não compartilho mais o que faço[0], porque há pouca chance de ser útil para outras pessoas, e porque, se alguém precisar de algo parecido, pode criar algo exatamente adequado para si em vez de expandir ou consertar o meu. Como um gabarito
      0: https://redfloatplane.lol/blog/17-why-share/ e textos relacionados
    • É exatamente isso. Já falei várias vezes que “usar um computador vai passar a incluir de forma transparente o computador escrevendo e executando código por você”, e quem não é técnico pode nem perceber isso. A direção que você descreveu está indo para lá também
      Em muitos casos, na nossa vida, é melhor criar ferramentas de propósito específico, e a complexidade dessas ferramentas cresce a cada novo modelo lançado
      Isso é realmente uma ferramenta pessoal. Resolve problemas que outras pessoas também podem ter, mas está tão fortemente ligada ao jeito de trabalhar de quem a fez que fica difícil explicar ou adaptar para os outros. Por isso é um gabarito de oficina
      Eu também tenho umas 10 dessas scripts e programas sob medida, e é a primeira vez desde a faculdade que sinto isso. Naquela época eu tinha tempo para personalizar tudo à vontade; agora temos agentes
      Tenho vontade de mostrar para os amigos, mas quando tento simular mentalmente como explicaria, acho que eles não entenderiam várias das peculiaridades. Porque são as minhas peculiaridades. São pedaços de tecnologia razoavelmente complexos que resolvem muito bem os meus problemas, e esses problemas são variações pessoais de problemas mais amplos, e pelo menos por enquanto eu não pretendo dar suporte a isso
      É muito óbvio que estamos indo nessa direção, e ainda assim muita gente continua acreditando que código é coisa de elite. Código de produto pode até ser, mas o resto em breve vai fazer até o computador dos nossos pais executar código escrito para eles mesmos. Em termos de segurança isso assusta, mas é interessante de imaginar
    • Qualquer pessoa pode fazer um harness se realmente quiser, mas a maioria não tem essa vontade
      Além disso, mesmo fazendo por conta própria, os fluxos de trabalho com IA que eu refinei por meses ficaram obsoletos de imediato por causa do ultracode
    • Eu estava procurando uma forma de expressar essa mudança, e essa analogia é precisa. O valor de bibliotecas e componentes de infraestrutura em engenharia de software está caindo rapidamente
      Acho que em muitas organizações está diminuindo o número de usuários que procuram as equipes responsáveis por esse tipo de coisa
    • Vejo o futuro do open source mais ou menos assim também. Em vez de pegar bibliotecas open source para usar diretamente, vamos reutilizá-las como inspiração de design para as ferramentas sob medida que criarmos
      O custo de fazer a própria solução ficou barato demais, e o custo de ficar preso aos blocos básicos de outras pessoas ficou caro demais
      Mas ancorar a programação com IA em ferramentas já existentes é incrivelmente poderoso
  • Tenho curiosidade de saber quanto custa rodar isso
    Segundo https://github.com/anthropics/defending-code-reference-harne...:

    Como referência aproximada, espere cerca de 10K tokens de entrada não armazenados em cache por minuto por agente, e cerca de 2K tokens de saída. Você pode aumentar o paralelismo até o limite de ITPM da sua conta (aproximadamente 10 agentes por 100K de ITPM)
    Meu palpite é que com Opus isso sairia por algumas centenas de dólares, e com Mythos por alguns milhares

    • Está ficando cada vez mais claro que é preciso mais tokens para tornar o código seguro do que para escrever o código
      Talvez a diferença chegue até a uma ordem de grandeza de um dígito
    • Eu já acho o custo do Opus caro a ponto de ser difícil de justificar, então não sei como isso se compararia ao Mythos
      Por esta calculadora, uma empresa com 100 desenvolvedores pode chegar a algo como US$ 2,5 milhões por ano em custo de tokens, o que é bem chocante
      https://ai-cost-calculator.arnica.io
    • O fluxo de trabalho do modo ultra code do Claude também funciona de maneira muito parecida e consome uma fatia razoável do limite de uso por sessão, dependendo da complexidade da tarefa
      Só que, via API, parece que o custo cresceria rápido
    • Na verdade eu criei uma calculadora para estimar o custo de varredura, incluindo se ela roda continuamente ou não: https://ai-cost-calculator.arnica.io
      É uma estimativa, então pode estar errada, mas mostra uma faixa aproximada com base na nossa experiência. Gostaria de ouvir feedback
    • Em comparação com o serviço gerenciado deles, essa estimativa pode dar um décimo do custo esperado, dependendo da base de código
      Mas, mesmo usando números maiores, ainda pode equivaler a cerca de um décimo do custo de um contrato formal de segurança para o tipo de descoberta que essas ferramentas buscam. Não são resultados que saem só com revisão de PR ou /security-review; são do tipo em que um especialista precisa conduzir o trabalho preparatório sobre um framework open source. Nem estou colocando na conta o tempo e a demora para descobrir como tocar esse tipo de contrato
      Falando sem rodeios: se isso for importante, mesmo que uma única varredura custe o orçamento de um mês de vibe coding, ainda assim sai muito barato em termos de custo-benefício
      Ao mesmo tempo, o resultado ainda exige especialistas. As sugestões podem ajudar ou podem ser ativamente prejudiciais, e tudo depende da qualidade do trabalho preparatório
      Para um diretor de TI, eu recomendaria gastar alguns milhares de dólares para rodar isso, usar a página de resultados assustadores para conseguir orçamento e, depois, construir relação com um red team que possa encontrar e classificar vulnerabilidades e, se necessário, até ajudar a corrigi-las, além de treinar a equipe interna para pensar com foco em segurança
  • “Este repositório não é mantido e não aceita contribuições.”
    Hmm :)

    • Por que o Claude não está fazendo a manutenção?
    • Isto está sendo mantido e precisa ser adaptado o mais rápido possível a todos os modelos congelados
      https://github.com/space-bacon/SRT
      Dá para melhorar bastante todos os modelos congelados da noite para o dia. Vamos nessa
  • Pela nossa experiência, sem um bom harness não há muito o que extrair do codex/claude. E é preciso gastar tempo e energia para entender por que agentes de programação não conseguem encontrar bugs que humanos encontram
    Como auditor, toda semana vejo bugs que o nosso harness (https://zkao.io/) não encontra, e temos de descobrir técnicas bem interessantes para fazer a ferramenta encontrar esses bugs. Aqui estamos falando principalmente de vulnerabilidades criptográficas, não de simples bugs de webapp
    Por isso, parece plausível que empresas também passem a ter seus próprios harnesses e a pagar por serviços focados em construir bons harnesses com base em experiência. Firmas de auditoria que veem muitos bugs e podem gastar tempo “ensinando” esses bugs ao harness provavelmente serão as melhores nisso
    Por outro lado, a triagem também exige técnicas igualmente boas. Caso contrário, surge o que eu chamo de auditoria vibe, uma máquina que só despeja falsos positivos suficientes para cansar ainda mais desenvolvedores já exaustos com submissões ruins de IA em bug bounty e com ferramentas de IA revisando todos os PRs
    No fim, se o harness não retorna bug nenhum, você acaba se perguntando: “então isso significa que não há bugs?”. No final, voltamos a um jogo de reputação de escolher a melhor ferramenta ou a melhor equipe, isto é, a equipe que sabe qual é a melhor ferramenta, e descobrir quem é essa equipe

  • Segurança é definitivamente um ótimo caso de uso de AI/LLM. Porque uma grande parte do trabalho consiste em casar padrões conhecidos de problemas de segurança com o texto de linguagem de programação sendo analisado, que é extremamente preciso
    O que chama atenção é que, nos casos de uso mais fortes, empresas de IA parecem querer vender a técnica como serviço, em vez de vender saídas brutas. Quando o valor da saída é baixo, vendem tokens
    Se tokens de IA fossem realmente mágicos para criar novo valor no desenvolvimento de aplicações de software em geral, elas não venderiam os tokens diretamente. Acumulariam os tokens e os usariam para dominar o software SaaS de todos os setores que quisessem
    É parecido com alguém que vende cursos caros sobre mercado de ações, sinalizando que há mais a ganhar vendendo cursos do que ganhando dinheiro diretamente no mercado com o próprio conhecimento

    • Ou talvez queiram diversificação
      Para criar produtos com tokens de IA, elas teriam de construir e vender um produto completo, algo em que têm menos experiência, e ainda competir com os próprios clientes. Não é uma boa posição para fornecedores de IA que ainda estão se estabelecendo. Isso já é uma grande distração em cima do negócio atual e, estrategicamente, também não agrega tanto valor assim
    • Não entendo essa lógica de “acumular os tokens e dominar o software SaaS de todos os setores que quiserem”
      Já operei e vendi um SaaS moderadamente bem-sucedido, e as partes cansativas e frustrantes são justamente aquelas em que LLM não pode ajudar. Codificar o produto não é o gargalo, nem o que garante o sucesso
    • Essa conclusão não decorre disso de forma alguma. A Anthropic está vendo a receita com venda de tokens crescer 10x ano a ano
      Mesmo que os tokens deles fossem realmente mágicos e pudessem entrar em setores existentes, desalojar os incumbentes e crescer 100% ao ano nesse setor, ainda assim faria mais sentido priorizar a venda de tokens. Porque isso, por si só, já é um excelente negócio
      O que essa lógica mostra é apenas que há limites. Os tokens não são poderosos a ponto de gerar dinheiro infinito imediatamente em todas as áreas de software. Isso parece verdadeiro
    • Outra interpretação é que construir ecossistema tem mais valor no longo prazo
      No começo, muitas empresas proibiam funcionários de colocar código-fonte em LLMs remotos por preocupações de segurança. Agora, muitas estão começando a acreditar que, justamente por preocupações de segurança, todo o código-fonte deve ser analisado por LLMs remotos
      Se passar a ser normal confiar na Anthropic, ela poderá vender mais serviços que exigem acesso ao código-fonte
    • Surpreende que ainda não tenha surgido uma atualização integrada de MetaSploit AI em que, quando você começa a telefonar e mandar mensagens para várias pessoas dentro de uma empresa até encontrar alguém que pareça vulnerável, um red teamer humano assume ou passa a orientar de forma mais direta
  • Mudando um pouco de assunto, parece que alguém está derrubando com dead/flag todos os bons links do GitHub neste post, mas não entendo por quê

  • Encontrar um único buraco sempre é mais fácil do que tapar todos os buracos. Os hackers também têm as mesmas ferramentas, então esta é uma corrida armamentista impossível de vencer

    • É claro que LLM muda bastante o cálculo do modelo de ameaças, mas essa observação por si só não explica como ou por que isso muda
      A assimetria mencionada já era uma propriedade do software mesmo antes dos LLMs
    • Defensores têm contexto que os atacantes não têm
  • Bastante interessante. Venho criando e usando uma ferramenta parecida há algum tempo:
    https://github.com/bobinson/vulture
    Sofri com falsos positivos e vinha usando Claude + MCP como uma ferramenta de auditoria para pobres. Nos últimos dias, obtive resultados melhores com modelos hospedados pela Nvidia

  • Antes de saber se o Claude usa tokens de forma eficiente com esse harness, talvez isso não seja tão útil quanto parece

  • Está claro que a Anthropic agora está criando e transformando em produto harnesses para casos de uso específicos
    Seria algo equivalente ao Claude Design para segurança
    O harness é diferente, o empacotamento é diferente e a persona-alvo é diferente, então a forma de distribuição naturalmente também é diferente
    O interessante é que, ao olhar os posts das empresas que relataram sobre Mythos, todo mundo está criando o próprio harness. A Cisco chegou a publicar a especificação de um deles
    Mas quem descobriu como empacotar e distribuir isso foi a Anthropic. É uma excelente estratégia de entrada no mercado

    • Este post e a organização no GitHub também induzem a confusão. Anthropics e Anthropic são coisas diferentes