Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
claude-awm — Contorna marcas d'água de texto de LLM injetando seletores de variação Unicode; inclui o gerador SynthID, detector mean-g, defesas de normalização e experimentos de entropia. | Kitploit
Ferramentas/GitHubGitHub/aloshdenny/claude-awm
EsteganografiaPrivacidadeAprendizado de MáquinaSegurança de IAAtaque Adversário
GitHubaloshdenny/claude-awm

claude-awm

Contorna marcas d'água de texto de LLM injetando seletores de variação Unicode; inclui o gerador SynthID, detector mean-g, defesas de normalização e experimentos de entropia.

Ver Repositório
89982há 1 mêsRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
Site

claude-awm: é possível remover uma marca d'água de texto SynthID editando o texto?

o sonho, supostamente

Sim, mas apenas uma família de ataques funciona, e não é a que todos presumem.

Os seletores de variação Unicode (categoria Mn, U+FE00 a U+FE0F e U+E0100 a U+E01EF) levam o detector abaixo do limiar e permanecem lá. Todos os outros ataques com caracteres invisíveis que testei são totalmente revertidos por uma linha de normalização de entrada. Os seletores de variação não são, porque são codepoints significativos (apresentação de emoji, variantes CJK) que o NFKC não vai — e não deveria — eliminar.

Replicado entre modelos e domínios:

modelodomínioz de linha de baseapós vs16_30taxa de edição
gpt-oss-20bprosa45,030,7257%
gpt-oss-20bcódigo37,240,6858%
Qwen3.8-27Bprosa35,50-0,6757%

O limiar é z = 2,33. Todos os três ficam abaixo dele após o ataque, e permanecem abaixo após a normalização (0,09, 0,45, -0,78 respectivamente). O texto é renderizado de forma idêntica para um leitor humano.

A segunda descoberta real não precisa de ataque algum: texto de baixa entropia quase não é marcado desde o início. Com o thinking desativado, a saída de código puro do Qwen3.8-27B pontua z = 4,31 sem ataque, próximo do limiar de 2,33 sem nada feito a ele. Reative o thinking e o mesmo modelo, mesmo domínio, mesmo comprimento atinge z = 25,53, porque o preâmbulo de raciocínio é prosa comum e carrega a marca normalmente.

modelos testados

Tudo neste repositório foi medido nestes modelos, e em nenhum outro:

modeloparâmetrosondeo que foi executado
Qwen3.5-0.8B0,8BMac (MPS)escada completa de ataques, 1k-8k
Qwen3.5-4B4BMac / 4090escada completa de ataques + o experimento de entropia + estego bruto/normalizado
DeepSeek-R1-Distill-Qwen-14B14BMac (MLX, 4-bit)marca d'água + detecção, traços de raciocínio
gpt-oss-20b20B3090 / 4090 / RunPodescada completa de ataques até 32k, prosa + código, seletores de variação, lei de escala da taxa de inserção até 131k
Qwen3.8-27B27BRunPod H100 / Modal H100prosa + código, seletores de variação, contraste do modo thinking
gpt-oss-120b120BModal H100 (MXFP4) / RunPod H100prosa + código + raciocínio em 2k / 8k / 32k, escala parcial da taxa de inserção até 65k
DeepSeek-V4-Flash284B MoERunPod 2x H200 (FP8)prosa + código em 2k / 8k

Nem todo experimento foi executado em todo modelo, e as tabelas abaixo indicam o que foi executado onde. Modelos maiores foram adicionados à medida que as questões interessantes se estreitavam, então a escada de ataques é ampla nos modelos pequenos e o trabalho de comprimento e domínio está concentrado nos grandes.

o que é isto

A Anthropic (e o Google DeepMind antes dela, o artigo SynthID-Text) marca d'água texto gerado enviesando a amostragem de tokens com um torneio com chave. O sinal vive em quais tokens foram escolhidos, não em qualquer caractere oculto. Eu queria saber quão frágil isso é para uma pessoa motivada com um localizar-e-substituir, então construí o gerador mais um detector de média-g não treinado e lancei ataques contra ele.

O limiar do detector é z = 2,33 (taxa de 1% de falsos positivos). Acima disso = marca d'água detectada. Gerei texto com marca d'água, ataquei-o, re-tokenizei e pontuei. Toda tabela de resultados carrega um controle roundtrip (texto com marca d'água não atacado) para que você possa ver que o detector está realmente funcionando naquela linha. Duas vezes neste estudo um bug fez todos os z colapsarem para zero, e o controle foi a única coisa que o detectou.

escopo do ataque: o que realmente funciona

A superfície de ataque se divide claramente por categoria Unicode, o que acabou sendo a história inteira.

Funciona (categoria Mn, marcas não espaçadoras):

ataqueo que faztaxa de ediçãosobrevive à normalização?
vs16_30seletor de variação após ~30% dos caracteres57%sim
vs16seletor de variação após ~10% dos caracteres23%sim (z 3,46)
vs_suppseletores do plano suplementar (U+E0100+)24%sim (z 3,40)
homoglyphcirílico а para latim a (categoria Ll)9%sim, mas efeito fraco

Não funciona (categoria Cf, caracteres de formatação):

ataquez brutoz normalizadoveredito
zwsp_30-0.0935.68totalmente revertido
combo0.9235.68totalmente revertido
bidi24.3735.68totalmente revertido
nbsp41.0446.51quase não se move

Caracteres Cf são formatação pura sem conteúdo semântico, então um normalizador pode removê-los em bloco sem perder nada. Seletores de variação Mn carregam significado real em emoji e texto CJK, então removê-los indiscriminadamente corromperia documentos legítimos. Essa assimetria é o motivo pelo qual uma família é defensável e a outra não.

O escopo prático: isso exige que aproximadamente 20% ou mais dos caracteres sejam afetados para empurrar uma linha de base forte abaixo do limiar, mas os caracteres inseridos são invisíveis, então o texto é lido normalmente em qualquer taxa de edição. É verificado como visualmente idêntico, veja src/fidelity_check.py. Quatro famílias inserem apenas caracteres que não renderizam nada; homóglifos são a exceção honesta (dependente de fonte, não garantidamente invisíveis).

o que não funciona: o óbvio

Meu medo inicial era o mais entediante: que travessões e "and" para "&" e remover markdown simplesmente funcionariam, e a marca d'água acabaria sendo teatro de segurança. Muitas pessoas online assumem exatamente isso.

Não funciona. Toda a escada de edições superficiais no gpt-oss-20b, até 32k tokens:

ataquetaxa de ediçãoz @ 1kz @ 32k
roundtrip (controle)0%25.7104.3
travessão para hífen~0%26.4113.7
remover todo o markdown13.6%27.2103.3
AmE para BrE + abreviações1.3%~28~100
apagar 40% de cada palavra38%4.925.4

Nos três modelos em que essa escada rodou (0.8B, 4B, 20B = 294 células), exatamente uma célula cruzou o limiar: apagar 39% de cada palavra no menor comprimento no 4B. Isso não é um ataque, isso é triturar o documento.

Total de células medidas em todo o estudo: 440 (294 da escada de ataques acima, mais 146 da varredura de lei de escala abaixo, estendendo a prosa até 131072 tokens).

Duas coisas me surpreenderam:

  • A quantidade de edições não prevê o dano, a geometria das edições sim. Remover todo o markdown (13.6% dos tokens) não fez nada; até pontuou ligeiramente acima da linha de base. Injetar espaços avulsos a 1.6% causou 25x mais dano por edição. Marcadores de markdown se agrupam, então suas janelas de corrupção se sobrepõem e os longos trechos de prosa entre eles continuam reproduzindo a semente da marca d'água intacta. Edições espalhadas que dessincronizam o tokenizador atingem janelas novas a cada vez.
  • O comprimento ajuda o detector, não o atacante. z cresce como sqrt(tokens). "Enganá-lo ao longo de um contexto longo" é o contrário, 32k é o caso mais difícil de atacar, não o mais fácil.

Mecanismo completo e tabelas por ataque em docs/FINDINGS.md.

o detector vence esperando

watermark strength vs context

Baixar ferramenta