SafeGuard

Scanner de resources

O scanner analisa a pasta resources do teu servidor e diz-te que scripts têm problemas de segurança. Corre na tua máquina, e o relatório enviado para o painel traz só os resultados, nunca o teu código.

Usa-o depois de instalar scripts novos, antes de atualizar o servidor e sempre que comprares um script que não escreveste.

O que procura

ProblemaPorque importa
Backdoors e execução de código remotoDão controlo total do servidor a quem os colocou
Código ofuscadoCostuma esconder backdoors ou roubo de licenças
Webhooks do Discord e credenciais no códigoPodem ser lidos e abusados
Eventos onde o cliente escolhe o valor, o preço ou o alvoPermitem gerar dinheiro ou agir sobre outros jogadores
Eventos sensíveis sem verificação de permissõesQualquer jogador os pode chamar
SQL construído com dados do clientePermite ler ou alterar a base de dados
Eventos sem proteção do EventShieldMostra quantos eventos estão expostos

Antes de começar

  1. Pede o scanner no Discord: é distribuído a pedido.
  2. Instala o Node.js 24 ou mais recente na máquina onde estão os resources.
  3. Em Integrações → Chaves de API, cria uma chave com as permissões do scanner. Copia-a logo: só aparece uma vez.
  4. Copia o ID da organização. É o código a seguir a /o/ no endereço do painel.

Analisar e enviar o relatório

Só para ver os resultados no terminal:

safeguard-scan scan ./resources

Para os ver no painel, em Operações → Scanner:

safeguard-scan scan ./resources --upload --api https://api.safeguardac.pt --org ID_DA_ORGANIZACAO --key A_TUA_CHAVE

Se a máquina não puder enviar nada, guarda o relatório num ficheiro e carrega-o no painel com Enviar relatório:

safeguard-scan scan ./resources --out relatorio.json

Esse ficheiro inclui a linha de código de cada problema, que pode conter um webhook ou uma senha. Não o partilhes.

Para não deixares a chave no histórico do terminal, define-a na variável SAFEGUARD_API_KEY e omite --key.

No plano mensal, cada envio conta para o limite de 5 análises por mês. Analisar sem enviar não conta.

Ler os resultados

  • Pontuação de segurança: vai de 0 a 100. Compara-a entre análises para ver se está a melhorar, em vez de a tratares como nota absoluta.
  • Severidade: começa pelas críticas e altas. Uma crítica pode significar um backdoor ativo.
  • Correção: cada resultado diz o ficheiro, a linha, o impacto e o que fazer.
  • Estado: marca cada resultado como Aberto, Reconhecido, Corrigido ou Falso positivo.

O que fazer com cada severidade:

  1. Backdoor ou código ofuscado que não conheces: retira o resource, não o tentes corrigir. Muda as palavras-passe e chaves que esse servidor usava.
  2. Webhooks e credenciais: cria novos no serviço de origem. Apagar do código não chega, porque os antigos já podem ter sido copiados.
  3. Eventos inseguros: corrige no script, ou fala com o autor. A validação tem de ser feita no servidor.
  4. Depois de corrigir: corre o scanner outra vez e confirma que o resultado desapareceu.

Proteger eventos com o EventShield

O relatório mostra quantos eventos estão protegidos. Para acrescentar o EventShield aos resources que têm eventos, vê primeiro o que mudaria:

safeguard-scan install-shield ./resources

Se estiver tudo certo, aplica. Cada manifesto alterado fica com uma cópia .safeguard-backup:

safeguard-scan install-shield ./resources --apply

Depois reinicia esses resources. Testa-os num servidor de teste antes de aplicares em produção.

Limites

  • É uma análise estática: lê o código sem o executar, por isso pode dar falsos positivos e deixar passar problemas bem escondidos.
  • Código compilado ou ofuscado não pode ser lido por completo. Um relatório limpo não prova que um script é seguro.
  • O scanner não substitui o anticheat: analisa os teus scripts, não os jogadores.

Usar em automatização

O comando termina com código 2 quando há resultados críticos, por isso pode travar um deploy. Com --strict-eventshield, também falha conforme a cobertura de eventos. --json escreve o relatório no terminal e --server associa-o a um servidor.