secaudit.eu
Proteção

Autenticação de dois fatores para administradores WordPress

Como configurar a autenticação de dois fatores no WordPress: apps TOTP, passkeys, códigos de reserva, fragilidades do SMS, quem precisa de 2FA, implementação e NIS2.

Por , AngelForce OÜ 7 min de leitura

Também em: English Deutsch Français Español Italiano Polski Türkçe

Com a autenticação de dois fatores (2FA) no WordPress, uma palavra-passe deixa de bastar para abrir o painel. Depois da palavra-passe, o início de sessão pede uma segunda prova, normalmente um código de seis dígitos gerado por uma aplicação no telemóvel. É uma das proteções mais baratas e eficazes para contas de administrador e, como o núcleo do WordPress não traz autenticação de dois fatores, acrescenta-se com um plugin.

Este guia explica como funcionam os códigos, que segundo fator escolher, quem na equipa precisa de um, como fazer a implementação sem deixar ninguém trancado do lado de fora e qual a relação da 2FA com o RGPD e a Diretiva NIS2.

Porque é que as palavras-passe, sozinhas, falham

As palavras-passe acabam por ser divulgadas. Quando outro serviço perde a sua base de dados de utilizadores, os atacantes experimentam os pares de e-mail e palavra-passe roubados em formulários de início de sessão por toda a web. Chama-se a isto credential stuffing, e resulta sempre que alguém reutilizou uma palavra-passe. O phishing é a segunda via: uma página de início de sessão falsa, mas convincente, recolhe a palavra-passe diretamente.

Todos os sites WordPress têm um formulário de início de sessão público em /wp-login.php, e o XML-RPC, ativo por omissão, também aceita palavras-passe. Um Administrador pode instalar plugins, o que equivale a executar código no servidor. Consoante os plugins instalados, um Editor pode ver mensagens de formulários ou dados de clientes. Uma única palavra-passe divulgada pode, assim, transformar-se numa violação de dados pessoais.

Um segundo fator quebra esta cadeia. O atacante pode ter a palavra-passe, mas não tem o seu telemóvel nem a sua chave de segurança.

Como funciona a autenticação de dois fatores no WordPress

O método mais comum é o TOTP, sigla de time-based one-time password (palavra-passe única baseada no tempo), normalizado no RFC 6238. Em termos simples:

  1. Ao ativar a 2FA, o plugin mostra um código QR. Este contém uma chave secreta que a aplicação de autenticação guarda; o servidor fica com uma cópia.
  2. A aplicação combina esse segredo com a hora atual e calcula um código curto, normalmente de seis dígitos. Na configuração habitual, aparece um código novo a cada 30 segundos.
  3. No início de sessão, depois da palavra-passe correta, o WordPress pede o código em vigor. O servidor faz o mesmo cálculo e compara os resultados.
Uma palavra-passe roubada fica pelo segundo passo: o atacante não tem o código do telemóvel do utilizador
A mesma palavra-passe, dois resultados: sem o código do telemóvel, o início de sessão falha.

Como os dois lados calculam o código de forma independente, nada é enviado para o telemóvel e a aplicação funciona sem ligação à internet. O relógio do telemóvel, porém, conta: se os códigos forem sempre rejeitados, confirme que o telemóvel acerta a hora automaticamente.

Convém ser claro quanto ao que a 2FA não faz. Não corrige um plugin vulnerável, porque um atacante que explora uma falha num plugin nunca passa pelo formulário de início de sessão; é por isso que as atualizações continuam no topo da nossa lista de verificação de segurança para WordPress. E uma página de início de sessão falsa pode reencaminhar um código TOTP para o site verdadeiro em poucos segundos. Só os métodos resistentes a phishing, como as passkeys e as chaves de segurança físicas, travam este tipo de phishing em tempo real.

Escolher o segundo fator: aplicação, passkey, SMS ou e-mail

Nem todos os segundos fatores oferecem a mesma proteção:

MétodoRobustezNotas
Passkey ou chave de segurançaMáximaResistente a phishing; exige suporte no plugin
Aplicação de autenticação (TOTP)AltaGratuita, funciona offline, amplamente suportada
Código por e-mailMédiaTão seguro como a caixa de correio
Código por SMSMínimaTroca de SIM, interceção

As passkeys (chaves de acesso) assentam na norma WebAuthn e usam um par de chaves guardado no telemóvel, no computador ou numa chave física. O navegador só usa uma passkey no domínio para o qual foi criada, por isso um site de phishing com aspeto idêntico não obtém nada. Se o plugin de 2FA suportar passkeys, ofereça-as primeiro aos administradores.

As aplicações de autenticação são a opção prática por omissão. Qualquer aplicação TOTP serve: por exemplo o Google Authenticator, o Microsoft Authenticator, aplicações de código aberto como o Aegis ou o 2FAS, e muitos gestores de palavras-passe.

Os códigos por SMS são mais fracos: os criminosos podem apoderar-se de um número de telefone através da troca de SIM (SIM swapping), e as mensagens podem ser intercetadas. Por isso, a norma norte-americana NIST SP 800-63B classifica os códigos enviados pela rede telefónica, como o SMS, como autenticadores "restritos" (restricted). É melhor do que nada, mas não o recomendamos para contas de administrador.

Os códigos de reserva são a chave suplente. A maioria dos plugins gera um conjunto de códigos de utilização única. Guarde-os no gestor de palavras-passe ou imprima-os e guarde-os num local seguro, mas não junto ao telemóvel.

Quem deve usar 2FA no WordPress

Recomendamos tornar a autenticação de dois fatores obrigatória para:

  • todos os Administradores e Editores e, nas lojas WooCommerce, todos os Gestores de loja;
  • qualquer pessoa que possa ver dados pessoais, como mensagens de formulários, encomendas ou contas de clientes;
  • acessos de agências e freelancers: cada pessoa tem a sua própria conta e o seu próprio segundo fator, nunca um acesso "da agência" partilhado e associado ao telemóvel de uma só pessoa;
  • as contas à volta do WordPress: painel de alojamento, SFTP ou SSH, entidade de registo do domínio e a conta de e-mail que recebe as reposições de palavra-passe.

Para Subscritores e clientes da loja, oferecer a 2FA como opção costuma ser suficiente.

Implementar a 2FA em seis passos

  1. Comece por arrumar as contas. Remova antigos colaboradores e agências e baixe as funções que estejam acima do necessário. Não vale a pena proteger contas que ninguém usa.
  2. Escolha um plugin. Procure TOTP, códigos de reserva, obrigatoriedade por função e, idealmente, passkeys. O plugin gratuito Two Factor, no WordPress.org, é mantido por colaboradores do WordPress e cobre TOTP e códigos de reserva, mas não permite, de origem, impor a 2FA por função. Plugins de segurança como o Security Audit & Compliance da secaudit.eu também incluem início de sessão com 2FA por TOTP.
  3. Teste com a sua própria conta. Ative a 2FA, termine a sessão e volte a entrar numa janela privada do navegador. Mantenha uma segunda conta de administrador com 2FA como recurso.
  4. Anuncie uma data. Envie um guia curto que indique a aplicação a instalar e o prazo.
  5. Torne-a obrigatória para as funções indicadas acima, para que ninguém possa saltar a configuração.
  6. Feche as portas laterais. Desative o XML-RPC se nada o usar, ou confirme que o plugin também o cobre. Reveja as Application Passwords (palavras-passe de aplicação, disponíveis desde o WordPress 5.6): destinam-se ao acesso por API e não passam pelo pedido do segundo fator, por isso mantenha apenas as necessárias.

Telemóvel perdido: recuperar o acesso com segurança

Telemóveis perdidos ou trocados são coisa normal, por isso convém planear antes que aconteça.

  • Código de reserva: o utilizador entra com um código de reserva, volta a configurar a 2FA no telemóvel novo e gera novos códigos de reserva.
  • Outro administrador pode normalmente repor o segundo fator de um utilizador. Confirme o pedido por um canal em que já confia, por exemplo ligando de volta ao colega para um número conhecido. "Perdi o telemóvel, podes repor-me a 2FA?" é uma frase clássica de engenharia social.
  • Último recurso para um administrador único que ficou bloqueado: desative o plugin de 2FA no servidor, inicie sessão e volte a ativá-lo de imediato.

Com o WP-CLI, substitua two-factor pelo nome da pasta do seu plugin:

wp plugin deactivate two-factor

Sem WP-CLI, mudar o nome da pasta do plugin em wp-content/plugins/ por SFTP tem o mesmo efeito; reponha o nome original antes de reativar o plugin. Isto funciona para qualquer pessoa com acesso ao servidor, e é precisamente por isso que as contas de alojamento e de SFTP também precisam de uma proteção forte.

Autenticação de dois fatores, NIS2 e RGPD

A NIS2 é explícita: o art. 21.º, n.º 2, alínea j), da Diretiva NIS2 inclui a autenticação multifator ou contínua entre as medidas mínimas das entidades abrangidas. Se a empresa está ou não abrangida depende da dimensão, do setor e da lei nacional do país, como se explica em A NIS2 e o seu site WordPress. Mesmo que a NIS2 não se aplique diretamente, os clientes abrangidos têm de gerir a segurança da cadeia de abastecimento, nos termos do art. 21.º, n.º 2, alínea d), e perguntam cada vez mais às agências se o acesso de administração está protegido.

O RGPD não menciona a 2FA, mas o art. 32.º exige medidas de segurança que tenham em conta as técnicas mais avançadas. Para contas de administrador com acesso a dados pessoais, a 2FA é barata e está amplamente disponível, o que torna difícil defender que não seria adequada; veja o artigo 32.º do RGPD aplicado ao WordPress. Registe quando a tornou obrigatória e para que funções, porque o art. 5.º, n.º 2, exige que seja possível comprovar as medidas adotadas.

Perguntas frequentes

A 2FA protege totalmente o meu site WordPress?

Não. Protege o início de sessão. Plugins vulneráveis, um alojamento fraco e malware no computador de um utilizador exigem medidas próprias.

Um código por e-mail é suficiente?

É melhor do que não ter segundo fator, mas quem controlar a caixa de correio recebe tanto a ligação para repor a palavra-passe como o código. Para administradores, use uma aplicação ou uma passkey.

Várias pessoas podem partilhar uma conta protegida com 2FA?

Não deviam. Dê a cada pessoa a sua própria conta; é também a única forma limpa de revogar o acesso quando alguém sai.

Este artigo contém informação geral e não constitui aconselhamento jurídico.

Verifique o seu site

O Security Audit & Compliance é o plugin WordPress da secaudit.eu: procura malware, spam oculto, ficheiros do núcleo alterados e código vulnerável, e associa as conclusões ao art. 32.º do RGPD, ao art. 21.º da NIS2 e ao OWASP Top 10.

Ver o que o plugin verifica
Melike Görel

Melike Görel escreve os guias da secaudit.eu sobre segurança do WordPress e conformidade com as regras da UE para a AngelForce OÜ, a empresa de software de Taline responsável pela secaudit.eu.

Elaborado com apoio de IA e verificado antes da publicação. Este artigo é informação geral e não constitui aconselhamento jurídico.