A resposta curta
Quem faz spam troca letras por caracteres que parecem iguais: um а cirílico no lugar de um a latino, um zero no lugar de um o, ou um caractere invisível no meio da palavra. As pessoas leem a palavra normalmente, mas uma lista de palavras vê outra palavra. A saída é normalizar o texto para letras comuns antes de julgar.
Pontos-chave
- Para o computador, um caractere parecido é outro caractere, mesmo quando aparece igual na tela.
- Nomes de usuário do Telegram só podem ter a-z, 0-9 e sublinhados. Por isso um @username copiado usa números, sublinhados e palavras a mais.
- Nomes de exibição e mensagens não têm esse limite. É ali que aparecem outros alfabetos e caracteres invisíveis.
- Uma lista de palavras compara caracteres exatos. Basta uma letra trocada para passar por ela.
- Um bot precisa converter os caracteres parecidos de volta em texto simples antes de comparar qualquer coisa.
O que é spam com caracteres parecidos?
É spam escrito para que a pessoa leia uma palavra e o filtro leia outra. Quem faz spam troca algumas letras por caracteres desenhados do mesmo jeito, mas que por baixo são outros caracteres. O nome técnico é homóglifo.
"c0inbаse" é um exemplo. Tem um zero onde devia estar o o, e o segundo "a" é uma letra cirílica. Você lê a marca. Uma lista de bloqueio com o nome da marca não encontra nada.
Quais truques são usados?
| Truque | Exemplo | O que a pessoa vê |
|---|---|---|
| Uma letra de outro alfabeto | "аirdrop" com um а cirílico | airdrop |
| Números no lugar de letras | "B1nance", "c0in" | A marca, um pouco estranha |
| Dois alfabetos na mesma palavra | "Suррort" com dois р cirílicos | Support |
| Caracteres invisíveis | Um caractere de largura zero dentro de "airdrop" | airdrop, sem nada de estranho à vista |
| Espaços e pontuação | "a i r d r o p", "air.drop" | Uma palavra que se lê de relance |
| Alfabetos estilizados | Letras "matemáticas" em negrito ou cursivas, versaletes | Uma palavra em uma fonte enfeitada |
| Pares de letras | "rn" no lugar de "m", "vv" no lugar de "w" | A palavra certa, em letra pequena |
Os truques vêm combinados. Uma mensagem pode usar um número no nome da marca, uma letra cirílica em "claim" e um caractere de largura zero no meio do texto do link.
Por que as listas de palavras não pegam?
Uma lista de palavras compara caractere por caractere. O "a" latino e o "а" cirílico são dois caracteres diferentes, então "airdrop" e "аirdrop" são duas palavras diferentes. A lista bloqueia a primeira e deixa passar a segunda.
Você pode acrescentar a segunda grafia à lista. Aí trocam outra letra. Uma palavra de sete letras, com vários substitutos possíveis para cada letra, tem milhares de grafias, e a lista está sempre um passo atrás.
Listas mais longas também aumentam o outro custo: seus próprios membros removidos por citar o spam ou por escrever no idioma deles.
Onde os caracteres parecidos aparecem em nomes de usuário e nomes?
Essa parte costuma ser mal entendida, então vale ser exato.
- @usernames. Nomes de usuário do Telegram só podem ter a-z, 0-9 e sublinhados. Uma letra cirílica não cabe ali. Um nome de usuário copiado usa o que é permitido: um zero no lugar de um o, um 1 no lugar de um l, "rn" no lugar de "m", uma letra dobrada, um sublinhado a mais ou uma palavra acrescentada, como "suporte" ou "oficial".
- Nomes de exibição. Não têm esse limite. Uma cópia do nome de exibição do seu administrador pode ser feita com letras de outro alfabeto ou com caracteres invisíveis, e vai ficar idêntica no chat.
- Bios e mensagens. Igual aos nomes de exibição.
Por isso um impostor costuma ter um nome de exibição perfeito e um nome de usuário um pouco diferente. É por isso que a conferência no guia do golpe do falso administrador é o @username, comparado letra por letra.
Grupos e canais copiados usam os mesmos nomes quase iguais. Esse grupo do Telegram é confiável? lista o que conferir antes de entrar em um.
Como notar caracteres parecidos na mão?
- Digite e busque. Copie o texto suspeito para um editor de texto simples. Digite você a palavra verdadeira e busque por ela. Se a busca não encontrar a palavra copiada, pelo menos um caractere é diferente.
- Percorra com a tecla de seta. Se o cursor não sair do lugar em um toque na tecla, ele acabou de passar por um caractere invisível.
- Troque a fonte. Caracteres que ficam iguais em uma fonte muitas vezes ficam diferentes em outra. Uma fonte monoespaçada mostra a maioria.
- Leia os nomes de usuário em voz alta, caractere por caractere. "Zero" e "sublinhado" são fáceis de dizer e difíceis de deixar passar.
- Não julgue um link pelo texto. Confira para onde ele leva antes de abrir.
Isso funciona para uma mensagem. Não funciona para um grupo movimentado.
O que um bot precisa fazer?
Normalizar primeiro, julgar depois. Antes de comparar uma mensagem com qualquer coisa, o bot deve converter o texto de volta em letras comuns:
- Remover os caracteres de largura zero e outros caracteres invisíveis.
- Converter os caracteres parecidos de outros alfabetos, e as letras estilizadas, na letra comum que eles imitam.
- Ler os números usados como letras como as letras que eles representam.
- Desfazer os truques de espaços e pontuação.
Depois ele julga o resultado. Com os nomes é igual: o bot deve comparar o nome de exibição de cada membro com os nomes dos seus administradores depois de normalizar os dois.
Normalizar tem um risco. Um texto escrito de verdade em russo, grego ou qualquer outro idioma precisa continuar sendo o que é. O sinal é a mistura dentro de uma palavra, não o alfabeto.
A Targa faz isso em todos os planos. Ela converte caracteres parecidos, truques de largura zero e truques de espaços de volta em texto simples antes de comparar. A sua própria lista de bloqueio é aplicada depois da mesma conversão. Um membro cujo nome de exibição ou foto de perfil copia um dos seus administradores é sinalizado, e nomes com cara de "@Marca_Suporte_Oficial" também são verificados. Os membros são conferidos de novo quando mudam o nome, a bio ou a foto. Toda ação vem com um motivo que você lê com /why.
O que ela não consegue fazer: seguir o impostor até uma conversa privada. Um nome copiado é pego enquanto a conta está no seu grupo. Para as configurações que cobrem o resto, veja como barrar bots de spam ou leia como a Targa funciona.
Perguntas frequentes
O que são caracteres parecidos?
São caracteres de outro alfabeto ou conjunto de símbolos que parecem as letras que você espera. Os cirílicos а, е, о, р e с são desenhados como os latinos a, e, o, p e c. Para uma pessoa, é a mesma palavra. Para um filtro, não é.
Por que meu filtro de palavras deixa passar spam óbvio?
Porque ele compara caracteres, não formas. Se você bloqueia a palavra airdrop e quem faz spam escreve com um а cirílico, um caractere de largura zero ou um ponto entre as letras, o filtro está olhando para uma palavra que nunca viu.
Um nome de usuário do Telegram pode ter letras cirílicas?
Não. Nomes de usuário do Telegram só aceitam a-z, 0-9 e sublinhados. As cópias de um nome de usuário usam o que sobra: um zero no lugar de um o, um 1 no lugar de um l, rn no lugar de m, um sublinhado a mais ou uma palavra acrescentada. Nomes de exibição não têm esse limite.
Como conferir uma palavra suspeita na mão?
Copie a palavra para um editor de texto simples, digite você a palavra verdadeira e busque pela versão que você digitou. Se a busca não encontrar a palavra copiada, pelo menos um caractere é diferente. Percorrer a palavra com a tecla de seta também revela caracteres invisíveis.
Texto com alfabetos misturados é sempre spam?
Não. Quem escreve em dois idiomas mistura alfabetos o tempo todo, entre uma palavra e outra. O sinal de alerta são dois alfabetos dentro de uma mesma palavra, principalmente em um nome de marca, um nome de moeda ou na palavra suporte.
Veja o que um golpista vê no seu grupo
A verificação gratuita lê os sinais públicos de um grupo e mostra onde ele está exposto. Não precisa de conta.