secaudit.eu
Proteção

Segurança das funções de utilizador no WordPress: contas admin

Segurança das funções de utilizador no WordPress: encontre todos os admins, remova acessos antigos, revogue palavras-passe de aplicação e reveja tudo a cada trimestre.

Por , AngelForce OÜ 8 min de leitura

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

A maioria dos sites WordPress tem mais administradores do que precisa. Cada uma dessas contas pode instalar um plugin, e instalar um plugin significa executar código no seu servidor. A segurança das funções de utilizador no WordPress resume-se a uma regra, o privilégio mínimo: cada pessoa tem a sua própria conta, com a função mais baixa que ainda lhe permite fazer o trabalho.

A segurança das funções de utilizador no WordPress começa por contar os administradores

Comece por contar os administradores. No painel de controlo, vá a Utilizadores > Todos os utilizadores e clique no filtro «Administrador» por cima da lista. Anote o número e os nomes.

Com a WP-CLI, obtém a mesma lista, já com as datas de registo:

wp user list --role=administrator --fields=ID,user_login,user_email,user_registered

Numa rede multisite, verifique também quem tem controlo sobre toda a rede:

wp super-admin list

Para cada conta, faça uma pergunta simples: consegue indicar a pessoa real por trás dela, e essa pessoa ainda precisa de controlo total? Se a resposta não for clara, a conta entra na lista de revisão. A documentação dos comandos de utilizador da WP-CLI (em inglês) lista todas as opções usadas neste artigo.

Fluxograma para rever cada conta de administrador do WordPress
Uma decisão por conta de administrador: manter, rebaixar ou eliminar, ou tratar como incidente

As cinco funções predefinidas e a quem atribuir cada uma

O núcleo do WordPress inclui cinco funções, mais o Super Administrador em multisite. A página oficial Roles and Capabilities (em inglês) tem a lista completa de capacidades. Em resumo:

FunçãoO que pode fazerPessoa típica
Super AdministradorTudo numa rede multisiteOperador da rede
AdministradorPlugins, temas, utilizadores, definiçõesProprietário, responsável da agência
EditorPublicar e editar todos os artigos e páginasEquipa de marketing
AutorPublicar os próprios artigos, carregar ficheirosRedator regular
ColaboradorEscrever rascunhos próprios, sem publicarRedator convidado
SubscritorEditar o próprio perfilMembro, cliente da loja

Os plugins acrescentam as suas próprias funções e capacidades. O WooCommerce, por exemplo, acrescenta «Gestor da loja» (Shop Manager) e «Cliente» (Customer), e um gestor da loja vê encomendas cheias de dados pessoais de clientes. Plugins de SEO, de formação online (LMS) e de subscrições fazem muitas vezes algo semelhante. Percorra o filtro de funções no ecrã Utilizadores à procura de qualquer função que não reconheça e confirme na documentação do plugin o que ela permite fazer.

A minha recomendação: o trabalho diário de conteúdos faz-se com uma conta de Editor. A conta de administrador serve apenas para atualizações e manutenção. Num site único, os Editores continuam a poder publicar HTML sem filtragem, pelo que isto não é uma barreira de segurança contra pessoas em quem não se confia. Mas significa que uma conta de marketing obtida por phishing já não consegue instalar plugins.

Contas a remover ou rebaixar: ex-colaboradores, agências, logins partilhados

Os mesmos poucos tipos de conta aparecem em quase todos os sites de pequenas empresas:

  • Ex-colaboradores cuja conta nunca foi removida quando saíram.
  • A agência anterior, ainda listada como administradora anos depois de o contrato ter terminado.
  • Um freelancer de um projeto pontual, como uma remodelação do site ou a migração de uma loja.
  • Um login partilhado «escritório» ou «info», usado por várias pessoas.
  • O nome de utilizador «admin» da instalação original.

Os logins partilhados são os mais difíceis de defender. Quando cinco pessoas usam uma única conta, não se sabe quem alterou uma definição ou exportou dados de clientes. Também não se consegue cortar o acesso a uma pessoa sem mudar a palavra-passe de todas. Dê a cada pessoa a sua própria conta nominal.

As agências devem trabalhar da mesma forma. Cada colaborador tem uma conta nominal, e essas contas são removidas no dia em que o contrato termina. Se uma agência tem acesso de administrador a um site com dados pessoais, é normalmente um subcontratante na aceção do art. 28.º do RGPD. O seu acesso deve constar dos registos que mantém juntamente com o contrato de subcontratação. Quanto às provas a guardar, veja o que incluir num relatório de auditoria de segurança.

O nome de utilizador «admin» não pode ser alterado a partir do painel, porque o WordPress mostra «Os nomes de utilizador não podem ser alterados» no ecrã do perfil. Crie antes um novo administrador com um nome de utilizador pessoal:

wp user create jane.doe jane@example.com --role=administrator

Inicie sessão com o novo utilizador, elimine depois a antiga conta «admin» e reatribua o seu conteúdo, como se explica na secção seguinte.

Eliminar em segurança: reatribuir o conteúdo e manter um administrador funcional

wp user delete 7 --reassign=2

Para rebaixar em vez de eliminar, por exemplo um colaborador que ainda escreve artigos:

wp user set-role mark.writer editor

Rebaixar é muitas vezes o primeiro passo mais seguro. Se ninguém se queixar durante duas semanas, elimine a conta.

Palavras-passe de aplicação: os acessos que sobrevivem a uma mudança de palavra-passe

As palavras-passe de aplicação fazem parte do núcleo desde o WordPress 5.6. Permitem que aplicações e integrações, como uma app móvel, uma ferramenta de relatórios ou um serviço de automatização, se autentiquem na API REST. O senão é que continuam a funcionar quando a palavra-passe principal do utilizador é alterada. Se redefinir a palavra-passe de uma antiga agência mas deixar a palavra-passe de aplicação no sítio, a agência continua a ter acesso.

Reveja-as para cada administrador: vá a Utilizadores > Todos os utilizadores, edite o utilizador e desça até Palavras-passe de aplicação. Com a WP-CLI:

wp user application-password list jane.doe

A lista mostra quando cada palavra-passe foi criada e quando foi usada pela última vez. Revogue tudo o que não consiga associar a uma integração em uso:

wp user application-password delete jane.doe <uuid>

Dê a cada nova palavra-passe de aplicação o nome da integração que a utiliza, por exemplo «Zapier – exportação de encomendas», para que a revisão seguinte seja rápida. Se ninguém no site usar esta funcionalidade, muitos plugins de segurança e alguns serviços de alojamento permitem desativá-la por completo.

Contas de administrador ocultas após um ataque: como detetá-las

Os atacantes que conseguem entrar criam por vezes o seu próprio administrador e escondem-no com código que filtra a consulta de utilizadores. A conta deixa então de aparecer em Utilizadores e pode também não aparecer em wp user list, porque a WP-CLI carrega os mesmos plugins. Uma consulta direta à base de dados contorna esse código:

wp db query "SELECT u.ID, u.user_login, u.user_email, u.user_registered FROM wp_users u JOIN wp_usermeta m ON m.user_id = u.ID WHERE m.meta_key = 'wp_capabilities' AND m.meta_value LIKE '%administrator%'"

O prefixo wp_ é apenas o predefinido. Execute primeiro wp db prefix e substitua wp_ nos nomes das duas tabelas e na chave meta. Se o seu prefixo for xy7_, a chave é xy7_capabilities. Em multisite, cada site tem a sua própria chave, como wp_2_capabilities.

Compare o resultado com a contagem que viu no painel. Depois, procure datas user_registered recentes e domínios de email que não pertençam a ninguém com quem trabalhe. Um administrador oculto ou inexplicado é sinal de comprometimento, não uma tarefa de limpeza. Não se limite a eliminá-lo. Siga os passos de sinais de que o seu site WordPress foi pirateado.

A análise de indicadores de comprometimento do plugin da secaudit.eu verifica a existência de administradores ocultos como parte da auditoria.

Revisão trimestral de acessos como prova para a NIS2 e o RGPD

Uma revisão demora cerca de 15 minutos. Faça-a todos os trimestres e também sempre que alguém sair ou o contrato com uma agência mudar:

  • Exporte a lista de administradores (e de Super Administradores em multisite).
  • Confirme a pessoa e a função de cada conta. Rebaixe ou remova as restantes.
  • Verifique as funções acrescentadas por plugins, como o gestor da loja.
  • Liste e elimine as palavras-passe de aplicação de cada administrador.
  • Confirme que todos os administradores usam autenticação de dois fatores.
  • Confirme que o editor de ficheiros do painel está desativado.
  • Registe a data, quem fez a revisão e o que alterou.

Este último registo é o que transforma um hábito em prova. O art. 21.º, n.º 2, alínea i), da Diretiva NIS2 inclui a segurança dos recursos humanos, o controlo de acesso e a gestão de ativos entre as medidas mínimas (Diretiva (UE) 2022/2555). As obrigações concretas decorrem da transposição em cada país, pelo que deve consultar a lei nacional que transpõe a NIS2. No RGPD, o controlo de acessos faz parte das «medidas técnicas e organizativas adequadas» do art. 32.º, e o art. 5.º, n.º 2, exige que seja capaz de as demonstrar (Regulamento (UE) 2016/679).

Uma limitação a ter presente: o núcleo do WordPress não regista quando um utilizador iniciou sessão pela última vez. Para encontrar contas inativas, precisa de um plugin de registo de atividade ou dos registos de acesso do servidor. Caso contrário, pergunte diretamente às pessoas.

O plugin Security Audit & Compliance da secaudit.eu ajuda na parte recorrente. Assinala administradores ocultos, palavras-passe fracas ou predefinidas e lacunas de reforço da segurança, como um editor de ficheiros ativo, associa os resultados ao art. 32.º do RGPD e ao art. 21.º da NIS2, e exporta um relatório que pode arquivar junto das notas da revisão.

FAQ

Mudar o nome de utilizador «admin» chega para travar ataques?

Não. Elimina um palpite fácil, mas os nomes de utilizador descobrem-se muitas vezes por outras vias. Palavras-passe fortes e únicas e a autenticação de dois fatores fazem muito mais.

Pode uma agência partilhar um único login de administrador entre os seus colaboradores?

Não. Cada pessoa precisa de uma conta nominal, para que se saiba quem fez o quê e se possa retirar o acesso a uma pessoa sem afetar as outras.

O que acontece às encomendas do WooCommerce ou aos artigos quando elimino um utilizador?

Os artigos e as páginas são eliminados, a menos que os reatribua. Os plugins guardam os seus dados de formas diferentes, por isso consulte a documentação do plugin antes de eliminar contas de clientes ou de pessoal da loja. Se tiver dúvidas, rebaixe primeiro a conta.

Este artigo é uma 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.