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.
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:
- 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.
- 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.
- 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.
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étodo | Robustez | Notas |
|---|---|---|
| Passkey ou chave de segurança | Máxima | Resistente a phishing; exige suporte no plugin |
| Aplicação de autenticação (TOTP) | Alta | Gratuita, funciona offline, amplamente suportada |
| Código por e-mail | Média | Tão seguro como a caixa de correio |
| Código por SMS | Mínima | Troca 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
- 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.
- 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.
- 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.
- Anuncie uma data. Envie um guia curto que indique a aplicação a instalar e o prazo.
- Torne-a obrigatória para as funções indicadas acima, para que ninguém possa saltar a configuração.
- 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