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
| Problema | Porque importa |
|---|---|
| Backdoors e execução de código remoto | Dão controlo total do servidor a quem os colocou |
| Código ofuscado | Costuma esconder backdoors ou roubo de licenças |
| Webhooks do Discord e credenciais no código | Podem ser lidos e abusados |
| Eventos onde o cliente escolhe o valor, o preço ou o alvo | Permitem gerar dinheiro ou agir sobre outros jogadores |
| Eventos sensíveis sem verificação de permissões | Qualquer jogador os pode chamar |
| SQL construído com dados do cliente | Permite ler ou alterar a base de dados |
| Eventos sem proteção do EventShield | Mostra quantos eventos estão expostos |
Antes de começar
- Pede o scanner no Discord: é distribuído a pedido.
- Instala o Node.js 24 ou mais recente na máquina onde estão os resources.
- Em Integrações → Chaves de API, cria uma chave com as permissões do scanner. Copia-a logo: só aparece uma vez.
- 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:
- 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.
- 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.
- Eventos inseguros: corrige no script, ou fala com o autor. A validação tem de ser feita no servidor.
- 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.