advanced
Segurança
Proteção em várias camadas para seu servidor Discord. Detecção de VPN, detecção de alt com base na impressão digital do navegador, firewall de 7 tipos, restrições de país, anti-nuke, anti-raid, requisitos de idade da conta e perfil de inteligência.
Visão geral
O Restore Hub oferece um sistema de segurança de defesa em profundidade com várias camadas independentes. Cada camada pode ser ativada ou desativada independentemente, e elas trabalham juntas para oferecer proteção abrangente contra bots, alts, invasões, bombas nucleares e outras ameaças.
Os recursos de segurança são limitados por plano: O plano Free obtém restrições de país, captcha, idade da conta e lista negra. O Premium adiciona detecção de VPN, detecção de alt e o firewall. O Business adiciona anti-nuke, anti-raid e gerenciamento de equipe. O Enterprise adiciona análise entre servidores e suporte dedicado.
Detecção de VPN e proxy
A detecção de VPN/proxy do Restore Hub é totalmente interna. Não há chamadas de API externas durante a verificação - toda a inteligência de IP é pré-carregada em um banco de dados PostgreSQL local e no cache Redis. Isso significa impacto zero de latência no fluxo de verificação.
O banco de dados de inteligência de IP é atualizado diariamente a partir de várias fontes de código aberto e mantidas pela comunidade:
- Nós de saída do Tor - Lista completa de aproximadamente 7.000 IPs de nós de saída do Tor, atualizada diariamente a partir da lista oficial de saída do Projeto Tor (https://check.torproject.org/exit-addresses).
- IPs de VPN - Listas mantidas pela comunidade (X4BNet/lists, firehol/blocklist-ipsets) que abrangem os principais provedores de VPN: NordVPN, ExpressVPN, Surfshark, ProtonVPN, PIA, Mullvad e centenas de outros.
- IPs de data center/hospedagem - Mais de 354 milhões de IPs de mais de 50 ASNs de provedores de hospedagem (AWS, Google Cloud, Azure, DigitalOcean, OVH, Hetzner, Linode, Vultr, etc.). Cobre todas as faixas de IPs de ASNs.
- Faixas de Bogon - IPs privados RFC 1918 (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16), loopback (127.0.0.0/8), CGNAT (100.64.0.0/10) e outros intervalos reservados.
- IPs de proxy - Servidores proxy abertos conhecidos de listas da comunidade, atualizados diariamente.
Dica: como toda a detecção é local, as verificações são concluídas em milissegundos, sem dependências externas. Não há custo por pesquisa e nenhuma API de terceiros que possa ficar inoperante.
Configuração de detecção de VPN
A detecção de VPN tem quatro opções independentes nas configurações do servidor:
| Configuração | O que ele bloqueia |
|---|---|
| Bloqueio de VPN (vpnBlockEnabled) | IPs de provedores de VPN conhecidos de listas de comunidades
| Bloqueio de Tor (blockTor) | Todos os IPs de nós de saída do Tor do Projeto Tor
| Bloqueio de datacenters (blockDatacenters) | Mais de 354 milhões de IPs pertencentes a provedores de hospedagem em nuvem
| Bloqueio de proxy | Servidores proxy abertos conhecidosAviso: O bloqueio de datacenter é agressivo - ele bloqueia qualquer IP pertencente a um ASN de provedor de hospedagem. Isso bloqueará os usuários de algumas operadoras de telefonia móvel que roteiam por meio de provedores de nuvem, usuários atrás de proxies corporativos hospedados na AWS e usuários de algumas VPNs menos conhecidas que alugam IPs de data center. Use com cautela e monitore sua taxa de bloqueio.
Cache de inteligência de IP
Os resultados da pesquisa de IP são armazenados em cache no Redis com um TTL de 24 horas (IP_CACHE_TTL_SECONDS = 86.400). Cada resultado de pesquisa inclui: código do país, ASN, nome do ISP, sinalizador de VPN, sinalizador de proxy, sinalizador de Tor, sinalizador de data center, sinalizador de celular e pontuação de fraude.
O modelo IpIntelligence no banco de dados armazena dados agregados por hash de IP: tentativas totais de verificação, contagens de sucesso/bloqueio, usuários exclusivos do Discord, impressões digitais exclusivas e uma pontuação de risco calculada. Isso cria uma inteligência de longo prazo sobre IPs suspeitos.
Detecção de contas alternativas
A detecção de alt identifica quando a mesma pessoa faz a verificação com várias contas do Discord usando a impressão digital do navegador. Esse é um dos recursos de segurança mais avançados do Restore Hub: ele detecta alts mesmo quando eles usam IPs, VPNs ou navegadores diferentes.
A impressão digital é um hash composto derivado de vários sinais independentes:
- Impressão digital em tela - Renderiza um elemento de tela invisível e faz o hash dos dados de pixel. Diferentes GPUs, renderizadores de fontes e antialiasing produzem resultados exclusivos.
- Impressão digital WebGL - Usa o WebGL para consultar o fornecedor da GPU (UNMASKED_VENDOR_WEBGL) e o renderizador (UNMASKED_RENDERER_WEBGL), depois renderiza uma cena 3D e coloca o resultado em hash.
- Impressão digital de áudio - Cria um AudioContext, gera um sinal de oscilador e faz o hash da saída. Diferentes hardwares e drivers de áudio produzem formas de onda exclusivas.
- Sinais de hardware - Contagem de núcleos de CPU, memória do dispositivo, profundidade de cor, resolução de tela, suporte a toque, contagem de fontes, contagem de plugins.
- Sinais do navegador - Agente do usuário, idioma, fuso horário, tipo de conexão, sinalizador Não rastrear, cookies ativados.
Detecção de alt - como funciona a correspondência entre servidores
Quando um membro faz a verificação, sua impressão digital composta é armazenada na tabela MemberMeta e indexada na tabela FingerprintIntelligence. O Restore Hub consulta a tabela FingerprintIntelligence para encontrar todos os IDs de usuário do Discord associados a essa impressão digital em TODOS os servidores.
Se a mesma impressão digital aparecer em um ID de usuário diferente do Discord, ela será sinalizada como uma possível conta alternativa. O registro FingerprintIntelligence rastreia: usuários exclusivos do Discord, servidores exclusivos, IPs exclusivos, países, fusos horários, variações de SO, variações de dispositivo e se o dispositivo/SO são consistentes.
Você pode configurar o que acontece quando um alt é detectado:
ação | Comportamento | Ação | Comportamento
|---|---|
| Bloqueio | Rejeitar a verificação imediatamente. O membro vê a mensagem bloqueada e não pode obter a função verificada. |
| Permitir e sinalizar: permite que o membro verifique e obtenha a função, mas o marca como um alt sinalizado no painel para revisão manual. |
| Notificar somente | Permitir que o membro verifique normalmente. Envie uma notificação para o canal de registro e/ou e-mail, mas não tome nenhuma ação. |Dica: A detecção de Alt funciona em TODOS os seus servidores, não apenas naquele em que está sendo verificado. Se um membro for verificado no Servidor A com a impressão digital X e uma conta Discord diferente for verificada no Servidor B com a mesma impressão digital X, isso será sinalizado.
Regras de firewall
O firewall (Premium+) permite que você crie regras de bloqueio granular com base em 7 atributos diferentes. As regras de firewall são verificadas antes do OAuth2 - os visitantes bloqueados nunca veem a página de autorização do Discord.
| Tipo de regra | Formato do valor | Exemplo | O que ela bloqueia
|---|---|---|---|
| IP | Endereço IPv4/IPv6 ou intervalo CIDR | 1.2.3.4 ou 10.0.0.0/8 | Um endereço IP específico ou uma sub-rede inteira
| País | Código de país ISO 3166-1 alfa-2 | CN, RU, IR | Todo o tráfego do país especificado
| ASN | Número AS com prefixo AS | AS14061 | Todos os IPs pertencentes a esse ASN (por exemplo, AS14061 = DigitalOcean)
| FINGERPRINT | Hash de impressão digital do navegador | abc123def456... | Uma impressão digital específica do navegador (útil para bloquear o dispositivo de um ator ruim conhecido)
| USER_ID | ID do usuário do Discord (snowflake) | 123456789012345678 | Um usuário específico do Discord pelo seu ID
| SERVER_ID | ID da guilda do Discord (snowflake) | 987654321098765432 | Qualquer usuário que seja membro do servidor do Discord especificado
| REGION | Cadeia de caracteres da região geográfica | EU-WEST, ASIA-EAST | Todo o tráfego da região geográfica especificadaFirewall vs. Lista negra vs. Restrições de país
Esses três recursos se sobrepõem, mas têm finalidades diferentes:
- Regras de firewall - Bloqueio amplo e pré-OAuth com base em 7 atributos. Bloqueia antes mesmo de o membro ver a autorização do Discord. Por servidor, gerenciado pelo proprietário do servidor.
- Lista negra - Bloqueio pós-OAuth de IDs de usuários específicos do Discord. Verificado após o OAuth2 (porque o ID do usuário não é conhecido até depois do OAuth). Por usuário (aplica-se a todos os seus servidores).
- Restrições de país - Pré-OAuth, mais simples que o firewall. Dois modos: permitir (somente os países listados podem verificar) ou bloquear (os países listados são negados). Ideal para servidores que atendem apenas a regiões específicas.
Regras de lista branca
As regras de lista branca (Premium+) permitem que visitantes específicos ignorem TODAS as verificações de segurança. Um visitante na lista branca ignora o firewall, a detecção de VPN, as restrições de país, a detecção de alt e o captcha. Eles ainda passam pelo OAuth2 (já que isso é essencial para a verificação), mas todas as verificações restritivas são ignoradas.
| Tipo de regra | Exemplo de caso de uso
|---|---|
| IP | Coloque o IP do seu escritório na lista de permissões para que a equipe sempre passe na verificação
| USER_ID | Lista de permissões de um ID de usuário específico do Discord para um VIP
| FINGERPRINT | Whitelist a known-good device fingerprint |
| COUNTRY | Lista de permissões de um país que, de outra forma, poderia ser bloqueado
| ASN | Lista de permissões de um ISP ou provedor de rede específicoDica: as regras da lista branca são verificadas PRIMEIRO no fluxo de verificação, antes de qualquer outra verificação de segurança. Se um visitante corresponder a qualquer regra da lista branca, ele irá diretamente para o OAuth2.
Anti-Nuke
O Anti-nuke (Business+) detecta ações destrutivas em massa em seu servidor Discord em tempo real. Ele usa contadores de janela deslizante Redis para rastrear a taxa de eventos destrutivos. Quando um limite é excedido, o Restore Hub aciona ações de alerta.
O Anti-nuke monitora quatro tipos de eventos com os seguintes limites (de constants.ts):
| Tipo de evento | Limite | Janela de tempo | O que ele detecta
|---|---|---|---|
| Exclusões de canais | 3 exclusões | 60 segundos | Alguém excluindo canais em massa |
| Exclusões de funções | 3 exclusões | 60 segundos | Alguém excluindo funções em massa |
| Banimentos | 5 banimentos | 60 segundos | Alguém banindo membros em massa |
| Kicks | 5 kicks | 60 segundos | Alguém chutando membros em massa |Anti-Nuke - Como funcionam os contadores de janela deslizante
Para cada tipo de evento, o Restore Hub mantém um conjunto classificado no Redis, com a chave do ID do servidor. Cada evento é adicionado com uma pontuação de registro de data e hora. Quando um novo evento chega, o Restore Hub conta quantos eventos ocorreram nos últimos N segundos (a janela). Se a contagem exceder o limite, o alerta é acionado.
Essa abordagem é mais precisa do que os contadores de janela fixa porque não tem efeitos de limite. Uma sequência de 4 exclusões de canal em 2 segundos acionará o alerta, independentemente de abranger um limite de minuto.
Anti-Nuke - Ações de resposta
Quando um limite anti-nuke é acionado, o Restore Hub pode executar várias ações configuráveis:
- Alerta por e-mail - Enviar um e-mail para o endereço de alerta configurado com detalhes da ação destrutiva, incluindo quem a executou e o que foi afetado.
- Alerta de webhook do Discord - Envie uma incorporação detalhada para um URL de webhook do Discord com informações em tempo real.
- Auto-puxar - Comece a puxar automaticamente seus membros verificados para um servidor de backup pré-configurado (Business+ com hasAutoPull).
- Registro em log - Todos os eventos anti-nuke são registrados no AuditLog e podem ser visualizados no painel.
Anti-Raid
O Anti-raid (Business+) detecta eventos de ingresso em massa que indicam uma invasão - um fluxo coordenado de bots ou usuários que ingressam no seu servidor simultaneamente. Ele monitora dois padrões:
| Padrão | Limite | Janela de tempo | Detalhes
|---|---|---|---|
| Ingresso em massa | 10 ingressos | 30 segundos | Mais de 10 usuários ingressando em uma janela de 30 segundos, independentemente da idade da conta
| Inundação de novas contas | 5 uniões | 60 segundos | Mais de 5 contas com menos de 7 dias de idade unidas em um intervalo de 60 segundosDica: O Anti-raid e o Anti-nuke usam a mesma configuração de alerta. Você pode configurar alertas para ambos simultaneamente com um único endereço de e-mail e URL de webhook.
Requisitos de idade da conta
Você pode exigir que as contas do Discord tenham uma idade mínima (em dias) para que possam ser verificadas. Essa é uma defesa simples, mas eficaz, contra contas de bots/alt recém-criadas.
A data de criação da conta é derivada do floco de neve do ID do usuário do Discord - os primeiros 42 bits de um floco de neve do Discord codificam o registro de data e hora. O Restore Hub analisa isso para obter a data exata de criação da conta sem uma chamada de API adicional.
Defina minAccountAgeDays nas configurações do servidor. Um valor de 0 desativa a verificação. Valores comuns:
- 0 dias - Sem restrição (padrão)
- 7 dias - Bloqueia contas com menos de uma semana
- 30 dias - Bloqueia contas com menos de um mês (recomendado para a maioria dos servidores)
- 90 dias - Agressivo; bloqueia contas legítimas mais recentes, mas é muito eficaz contra alts
Inteligência e perfil de risco
O Restore Hub cria perfis de inteligência ao longo do tempo para usuários, IPs e impressões digitais. Esses dados potencializam a pontuação de risco e a detecção de anomalias.
- UserBehaviorProfile (Perfil de comportamento do usuário) - Rastreia um usuário do Discord em todos os servidores: total de verificações, taxa de sucesso/bloqueio, IPs exclusivos, impressões digitais exclusivas, dispositivos exclusivos, contagem de países, uso de VPN, uso de proxy, probabilidade de conta alternativa (0-100) e pontuação geral de risco (0-100) com níveis: BAIXO, MÉDIO, ALTO, CRÍTICO.
- IpIntelligence - Rastreia um IP (com hash) em todas as verificações: país, ASN, ISP, sinalizadores de VPN/proxy/Tor/datacenter, total de tentativas, contagens de sucesso/bloqueio, usuários exclusivos do Discord, impressões digitais exclusivas, pontuação de fraude e pontuação de risco.
- FingerprintIntelligence - Rastreia uma impressão digital do navegador em todas as verificações: usuários exclusivos do Discord, servidores exclusivos, IPs exclusivos, detecção de conta alternativa, variações de país/fuso horário/OS/dispositivo, sinalizadores de consistência, pontuação de risco e nível de risco.
- Relatório de risco do servidor - Avaliação de risco por servidor: membros totais/verificados, taxa de verificação, contas alternativas detectadas, contagem de VPNs bloqueadas, contagem de firewall bloqueado, contagem de IPs do datacenter, contagem de ASNs exclusivos, pontuação de diversidade de países e pontuação/nível geral de risco (LIMPO, BAIXO, MÉDIO, ALTO, CRÍTICO).
- AnomalyEvent - Detecções de anomalias individuais: GEO_IMPOSSIBLE_TRAVEL (usuário verificado de dois países distantes em um curto espaço de tempo), MASS_VERIFY (mesma impressão digital verificada rapidamente), FINGERPRINT_REUSE (impressão digital usada por muitos usuários do Discord), IP_SPAM (muitas verificações de um IP), DEVICE_SWITCH (usuário que muda de dispositivo com frequência).
Retenção de dados
Os dados relacionados à segurança têm períodos de retenção definidos:
| Dados | Período de retenção | Período de retenção
|---|---|
| Eventos de verificação | 90 dias |
| Visualizações de página | 90 dias |
| Logs de auditoria | 1 ano |
| Sessões de login | 90 dias |
| Dados de membros (membros verificados) | Mantidos até serem excluídos manualmente ou o servidor removido |
| Perfis de inteligência | Mantidos indefinidamente (agregados, não brutos)