Como auditar acessos remotos e chaves API no site da sua empresa

Como auditar acessos remotos e chaves API no site da sua empresa

Última verificação: 23 de outubro de 2026
12 min de leitura
Guia
Auditor de segurança

Em outubro de 2026, dois fornecedores de plugins WordPress tiveram de avisar os clientes de que um canal de confiança tinha sido usado contra eles. Os atacantes entraram por ligações que os próprios donos dos sites tinham aprovado, por vezes sem saber. Este guia serve qualquer empresa com site ou loja online, seja em WordPress, WooCommerce, Shopify ou código próprio: mostra como listar os serviços que têm uma chave para o seu site, revogar as que já não fazem falta, renovar as restantes e o que exigir por escrito a fornecedores e agências.

#O que aconteceu no incidente do UpdraftCentral

No aviso de incidente da TeamUpdraft, a empresa explica que detetou acesso não autorizado a teamupdraft.com no fim de semana de 17 e 18 de outubro e acredita que a base de dados de clientes foi lida. Continha nomes, endereços de email, palavras-passe em hash, definições de autenticação de dois fatores e as chaves de ligação do UpdraftCentral, UpdraftVault e UpdraftClone. Dados de cartão não eram guardados. O atacante usou a ligação aos sites dos clientes para criar contas de administrador e instalar plugins maliciosos, e mais tarde a TeamUpdraft alertou para um padrão de contas inesperadas com a função de editor. O UpdraftPlus 1.26.13 (gratuito) e 2.26.13 (Premium), publicados a 19 de outubro, desligam todas as ligações ao UpdraftCentral criadas antes das 13:07 (hora britânica) de 18 de outubro.

A análise da Patchstack explica por que as proteções habituais não serviram. Os comandos vinham assinados com chaves verdadeiras do painel, por isso passavam em todas as verificações do plugin. Um site ligado executa qualquer comando assinado com as permissões do utilizador que criou a ligação, e ninguém confirma comandos um a um. Muitos donos nunca escolheram isto: ao ligar uma conta TeamUpdraft.com, a caixa que adicionava o site ao UpdraftCentral vinha assinalada por omissão. As chaves também não expiravam, e a Patchstack viu chaves de novembro de 2025 a funcionar em outubro de 2026. As contas da porta das traseiras apareciam como editores, mas tinham as capacidades manage_options e install_plugins, pelo que uma revisão da lista de administradores não as mostrava.

#O que aconteceu com o download do Rank Math PRO

Segundo o comunicado do Rank Math, a versão PRO 3.0.123 descarregada entre as 20:02 UTC de 15 de outubro e as 07:12 UTC de 16 de outubro continha malware. A 3.0.124 é a versão limpa, e a versão gratuita do WordPress.org não foi afetada. Quem ativou a versão infetada deve partir do princípio de que todos os segredos do site foram expostos e mudar: palavras-passe do WordPress, credenciais da base de dados, chaves e salts do wp-config.php, chaves dos gateways de pagamento, credenciais SMTP, outras chaves API, acessos ao alojamento, FTP e SSH, e rever a autenticação de dois fatores dos administradores.

Esta lista descreve bem o que um site guarda. O seu site guarda chaves para sistemas de terceiros, e sistemas de terceiros guardam chaves para o seu site. A auditoria cobre as duas direções. O contexto mais amplo está no nosso artigo sobre ataques à cadeia de fornecimento no WordPress em 2026.

#Como saber quem tem acesso ao meu site

Reúna a lista a partir de três sítios: o próprio site (utilizadores, plugins ou apps, definições), as contas da empresa (faturas, gestor de palavras-passe, a caixa de email onde chegam as confirmações de registo) e a infraestrutura (DNS, CDN, painel do alojamento, repositório de código). Para cada entrada anote o serviço, o que pode fazer, quem criou a chave, onde está a chave nas duas pontas, quando foi usada pela última vez e quem na empresa é responsável. Uma entrada sem responsável é a primeira candidata a ser apagada.

#Painéis de gestão de vários sites

UpdraftCentral, ManageWP, MainWP e Jetpack ligam-se ao site através de um componente instalado no WordPress: o UpdraftPlus traz o cliente do UpdraftCentral, o ManageWP usa o plugin ManageWP Worker e o MainWP o plugin MainWP Child. A outra metade das credenciais fica nos servidores do fornecedor ou num servidor da agência. Reveja a lista de plugins, incluindo o separador de plugins obrigatórios (must-use), e pergunte à sua agência que painéis utiliza. A lição da Patchstack vale para qualquer produto deste tipo: remover o site do painel não chega, porque a chave que conta está guardada no site.

#Apps da loja e integrações com acesso à API

Na Shopify, abra as definições, a secção de apps, e clique em cada uma. Segundo a documentação da Shopify, a página da app mostra as áreas da loja que pode ver ou editar e a data da última atividade em cada área. As permissões não usadas nos últimos 30 dias aparecem numa subsecção própria de acesso não utilizado. O âmbito read_all_orders alarga o acesso para além da janela habitual de encomendas dos últimos 60 dias (âmbitos de acesso), por isso pergunte por que motivo a app precisa dele. Antes de desinstalar, exporte os dados de que precisa, porque algumas apps guardam dados que não podem ser recuperados depois.

No WooCommerce, as chaves estão nas definições do WooCommerce, em avançado, REST API. Cada chave está associada a um utilizador do WordPress e tem acesso de leitura, escrita ou ambos, e o segredo só é mostrado uma vez (documentação do WooCommerce). Verifique a quem pertence cada chave e se essa pessoa ainda trabalha consigo. O mesmo vale para as chaves de MB WAY ou Multibanco guardadas nas definições do plugin de pagamentos.

#Palavras-passe de aplicação e contas técnicas

As palavras-passe de aplicação permitem que uma ferramenta entre na REST API com Basic Auth. Criam-se e revogam-se no ecrã de edição do utilizador. O núcleo do WordPress não limita o seu âmbito: o guia de integração refere essa limitação como desenvolvimento futuro, por isso uma palavra-passe de aplicação pode fazer tudo o que o seu utilizador pode. O WordPress regista a última utilização (com precisão de um dia) e o último endereço IP. Com WP-CLI:

wp user list --role=administrator
wp user list --role=editor
wp user application-password list 1 --fields=name,created,last_used,last_ip

A lista de editores faz parte da revisão depois do caso UpdraftCentral, porque as contas da porta das traseiras tinham precisamente essa função.

#Tokens de CDN e DNS

Um token com permissão de edição de DNS basta para desviar o domínio ou os registos de email. Na Cloudflare, um token API fica limitado às permissões e zonas escolhidas e pode ainda ser restringido por endereço IP e por prazo de validade (criar um token). A antiga Global API key tem acesso a todos os recursos do utilizador com as permissões completas dele, e a Cloudflare desaconselha-a em novas configurações (Global API key). Se um plugin, um processo de CI ou um script de limpeza de cache ainda a usa, substitua-a por um token limitado a uma zona.

#Chaves de implementação no GitHub

Uma chave de implementação (deploy key) do GitHub é uma chave SSH com acesso a um único repositório. Por omissão só lê, e com permissão de escrita pode fazer o mesmo que um membro da organização com acesso de administrador. Segundo a documentação do GitHub, estas chaves não têm data de expiração, normalmente não têm frase-passe e continuam ativas quando a pessoa que as adicionou é removida do repositório. Reveja-as nas definições do repositório, na secção de chaves de implementação: apague as que não reconhece e aprove as válidas.

#Chaves de pagamento, email e cópias de segurança

A Stripe permite criar chaves restritas com as permissões que escolher, e ao rodar uma chave no painel decide quando expira a antiga: de imediato ou após um prazo que dá tempo à integração para mudar (chaves API da Stripe). A palavra-passe SMTP ou a chave API do serviço de email está num plugin ou no wp-config.php; onde exatamente, mostramos no guia de SMTP.

Uma cópia de segurança contém a base de dados completa, com dados de clientes e todas as chaves guardadas nas definições. A TeamUpdraft desligou todos os sites do UpdraftVault e emitiu novas credenciais, e recomendou aos sites acedidos através do UpdraftCentral que voltassem a autorizar o armazenamento remoto (Google Drive, Dropbox, Amazon S3) e mudassem as chaves de acesso. Verifique quem pode ler o armazenamento das cópias e se a ferramenta de cópias pode apagar versões antigas.

#Lista de verificação de acessos ao site e à loja

Tipo de serviçoOnde está a chaveComo revogarQuando renovar
Painel de gestão (UpdraftCentral, ManageWP, MainWP, Jetpack)Definições do plugin de ligação no site e painel do fornecedor ou da agênciaApagar primeiro a chave no site, depois o site do painelIncidente no fornecedor, mudança de agência, painel sem uso
App ShopifyPermissões da app nas definições da lojaExportar dados, desinstalar a appAcesso não utilizado, incidente no fornecedor, app dispensável
Chave REST API do WooCommerceDefinições do WooCommerce, associada a um utilizador WordPressLigação de revogação junto à chaveSaída do utilizador associado, troca de integração
Palavra-passe de aplicação do WordPressPerfil do utilizador, guardada em hashRevogar no perfil ou com WP-CLISem uso desde a última auditoria, saída da pessoa, intrusão
Token de CDN ou DNS (Cloudflare)Conta Cloudflare e a ferramenta que chama a APIApagar o token no perfil CloudflareToken visto em logs ou repositório, saída de pessoa ou ferramenta
Chave de implementação (GitHub)Chave privada no servidor, pública nas definições do repositórioApagar na secção de chaves de implementaçãoServidor reconstruído ou comprometido, mudança de agência
Chave de pagamento (Stripe, MB WAY, Multibanco)Definições do plugin da loja ou variáveis de ambienteRodar com prazo de expiração para a chave antigaIntrusão, fim da colaboração com o programador
Chave de email ou SMTPPlugin SMTP, wp-config.php, variáveis de ambienteApagar a chave no fornecedor de emailIntrusão, troca de plugin ou fornecedor
Credenciais do armazenamento de cópiasDefinições do plugin de cópias e permissões no fornecedor de armazenamentoRevogar no fornecedor e voltar a autorizarIncidente no fornecedor, intrusão

#Como revogar uma chave API sem parar o site

Num site saudável, siga esta ordem: descubra o que usa a chave (descrição, última utilização, registos da ferramenta), crie uma substituta com permissões mais estreitas, coloque-a na ferramenta e confirme que funciona, e só então revogue a antiga. Durante alguns dias, vigie encomendas falhadas, emails em falta e implementações interrompidas. O prazo de expiração da Stripe existe precisamente para esta troca.

Num site comprometido, a ordem inverte-se: revogue primeiro e volte a ligar depois as integrações que pararem. As instruções da TeamUpdraft para utilizadores do UpdraftCentral seguem essa lógica: entrar diretamente em cada site, atualizar, apagar a chave de ligação, remover contas e plugins desconhecidos, mudar as palavras-passe de administrador e só depois voltar a ligar. Se a chave tem duas pontas, revogue nas duas. Uma chave apagada apenas no painel do fornecedor pode continuar a ser aceite pelo site, e uma chave apagada apenas no site pode continuar na base de dados do fornecedor.

#Quando renovar chaves API

Renove quando algo acontece, porque um calendário sozinho não teria ajudado ninguém em outubro de 2026. Vale a pena escrever nos procedimentos:

  • um incidente de segurança num fornecedor que tem uma chave para o seu site ou recebe uma dele,
  • código malicioso que correu no site, ou seja, tudo o que está na lista do Rank Math acima,
  • a saída de um colaborador, freelancer ou agência com acesso,
  • uma chave encontrada onde não devia estar: num repositório, num pedido de suporte, numa troca de emails, numa captura de ecrã,
  • a substituição de uma integração por outra ferramenta.

Junte uma revisão fixa por ano e apague todas as chaves que ninguém sabe explicar. Chaves sem data de expiração, como as chaves de implementação do GitHub ou as chaves do UpdraftCentral que a Patchstack analisou, continuam válidas até alguém as remover.

#O que exigir à agência e aos fornecedores de software

Uma agência que mantém o seu site cria chaves em seu nome. O Decreto-Lei n.º 125/2025, que transpõe a NIS2 e reforça o CNCS como autoridade nacional de cibersegurança, dedica o artigo 28.º à cadeia de abastecimento, incluindo as relações de cada entidade com os seus fornecedores e prestadores de serviços diretos. Mesmo que a sua empresa não esteja abrangida, estes pontos devem constar do contrato:

  • um registo de todas as chaves, tokens e contas que a agência cria, com finalidade e responsável, entregue a pedido e no fim do contrato,
  • chaves criadas nas suas próprias contas sempre que a plataforma o permita, por exemplo um token Cloudflare na sua conta limitado à sua zona, para que a revogação não dependa da agência,
  • uma chave por site e por ferramenta, e contas nominais em vez de um login partilhado da agência,
  • revogação de todos os acessos num número de dias acordado após o fim do contrato, confirmada por escrito,
  • um prazo de notificação de incidentes. Uma agência com acesso a dados de clientes é em regra subcontratante, por isso precisa de um contrato nos termos do artigo 28.º do RGPD. Pelo artigo 33.º do RGPD, o subcontratante notifica o responsável sem demora injustificada, e o responsável tem 72 horas, sempre que possível, para notificar a CNPD. Escreva um número concreto de horas no contrato.

Antes de instalar software com funções remotas, pergunte ao fornecedor se a ligação remota vem ativa por omissão e se as chaves expiram. No UpdraftCentral, a Patchstack encontrou uma caixa já assinalada e chaves sem prazo de validade.

Fazemos esta revisão no âmbito da auditoria de segurança WordPress e mantemos o registo de chaves atualizado na manutenção de sites WordPress. Em lojas WooCommerce faz parte do plano de fiabilidade da loja, e em lojas Shopify revemos as permissões das apps no trabalho de desenvolvedor Shopify. Para perceber como as atualizações de plugins chegam ao site e onde uma versão adulterada pode passar, leia sobre o atraso de atualizações no WordPress.org e sobre quatro backdoors em plugins num mês.

Próximo passo

Transforme o artigo numa implementação real

Este bloco reforça a ligação interna e conduz o leitor para o passo seguinte mais útil dentro da arquitetura do site.

Cluster relacionado

Explorar outros serviços WordPress e base de conhecimento

Reforce o seu negócio com suporte técnico profissional em áreas-chave do ecossistema WordPress.

Perguntas frequentes

Respostas práticas para aplicar o tema na execução real.

Basta remover o site do painel do UpdraftCentral#
Não. A Patchstack sublinha que a chave que conta está guardada no próprio site. Apague-a nas definições do UpdraftPlus de cada site e atualize para a 1.26.13 (gratuita) ou 2.26.13 (Premium), que desligam as ligações anteriores às 13:07 (hora britânica) de 18 de outubro de 2026. Depois reveja os utilizadores, incluindo os editores, e a lista de plugins.
Com que frequência uma empresa deve renovar as chaves API#
Sempre que algo acontece: um incidente num fornecedor ligado, código malicioso no site, uma pessoa ou agência que perde o acesso, ou uma chave que aparece num repositório, pedido de suporte ou email. Além disso, uma revisão fixa por ano para apagar as chaves que ninguém sabe explicar.
Esta auditoria aplica-se a lojas Shopify#
Sim. Na Shopify, as chaves estão nas apps instaladas. A página de cada app nas definições mostra que áreas da loja pode ver ou editar, quando as usou pela última vez e que permissões estão sem uso há 30 dias.
Qual é a diferença entre rodar e apagar um token Cloudflare#
Ao rodar, a Cloudflare gera um novo segredo para o mesmo token e invalida o anterior, mantendo as permissões. Ao apagar, o token desaparece por completo. Rode quando o segredo foi exposto mas a integração continua necessária.

Precisa de FAQ adaptado ao setor e mercado? Criamos uma versão alinhada com os seus objetivos de negócio.

Fale connosco

Artigos Relacionados

Ataques à cadeia de fornecimento no WordPress em 2026

Numa única semana de junho de 2026 surgiram a violação do CDN da Awesome Motive, o comprometimento da pipeline de compilação da ShapedPlugin e a exposição de uma campanha de backdoor com 13 anos. O fio comum: o canal oficial de atualização foi o vetor de ataque. O que os donos de lojas devem realmente mudar.

Plugins desatualizados no WordPress, caso real com CVE

Uma auditoria real de um site WordPress de uma PME: Elementor fixado em 3.11.1, abaixo das correções de cinco CVE registadas no NVD, e Contact Form 7 em 5.8 exposto à CVE-2023-6449 (upload arbitrário de ficheiros). Padrão de plugins desatualizados, triagem de CVE, atualizações em staging e limites do WAF.