Skip to main content

Guía de seguridad wordpress

1. Introducción

Wordpress es un sistema de gestión de contenido (CMS, Content Management System), que permite crear sitios web, su popularidad ha logrado que resulte muy atractivo para los “ciberatacantes”, con el fin de explotar vulnerabilidad

2. Asegurando Wordpress

Para mitigar el riesgo de ataques a Wordpress, recomendamos las siguientes buenas prácticas de seguridad.

2.1. Configurar el control de acceso de usuarios

Ingresar al panel de administración de usuarios del sitio web: https://[midominio.gob.bo]/wp-admin/users.php y eliminar a los usuarios administradores que no se usan actualmente:

AccesoDeUsuarios.png

2.2. Actualizar el core de Wordpress

Ingresar a su sitio web https://[mi-dominio.gob.bo]/wp-admin/update-core.php y hacer click en el botón “Actualizar ahora”.

ActualizacionDelCore.png

2.3. Actualizar los plugins de Wordpress

Previamente instalar y activar el plugin WP-Rollback (https://es.wordpress.org/plugins/wp-rollback/) que será útil en caso que la actualización de algún plugin no sea exitosa.

Realizar un backup de la base de datos.

Ingresar al sitio https://[mi-dominio.gob.bo]/wp-admin/update-core.php y seleccionar todos los plugins y presionar el botón “Actualizar plugins”.

ActualizacionDePlugins.png

En caso de existir un error durante el proceso de actualización, realizar un ROLLBACK (https://[mi-dominio.gob.bo]/wp-admin/plugins.php).

ActualizacionDePluginsError.png

2.4. Habilitar actualizaciones de seguridad automáticas

Ingresar al panel de administración https://[mi-dominio.gob.bo]/wp-admin/plugins.php y seleccionar todos los plugins.

Seleccionar la acción “habilitar actualizaciones automáticas” y ejecutar “Aplicar”

ActualizacionesDeSeguridadAutomáticas.png

Borrar los themes no usados mediante la URL https://[mi-dominio.gob.bo]/wp-admin/themesphp

2.5. Instalar plugins de seguridad

Instalar y habilitar el plugin “Logonizer” (https://wordpress.org/plugins/loginizer/) para proteger el sitio contra ataques de fuerza bruta.

Instalar y habilitar el plugin “WP Hardening” (https://wordpress.org/plugins/wp-security-hardening/).

En el panel de “WP hardening” https://[mi-dominio.gob.bo]/wp-admin/admin.php? page=wphwp_harden_fixers habilitar todas las opciones (12 en total) menos “Change Login URL”:

PluginsdeSeguridad.png

En el panel de “WP hardening” https://[mi-dominio.gob.bo]/wp-admin/admin.php?page=wphwp_harden realizar la auditoría de seguridad y corregir todas las observaciones críticas (high), obteniendo como resultado final una pantalla similar a la siguiente:

AuditoriaDeSeguridad.png

2.6. Deshabilitar XML-RPC

Wordpress tiene características para interactuar de forma remota con el sitio web, XML- RPC es una función de WordPress que permite la transmisión de datos con HTTP actuando como mecanismo de transporte y XML como mecanismo de codificación.

En la actualidad la funcionalidad del archivo xmlrpc.php ha disminuido considerablemente y su exposición y configuración insegura representa un riesgo en la seguridad del sitio web, provocando las siguientes vulnerabilidades:

  • Ataques de fuerza bruta.
  • Denegación Distribuida de Servicio.
  • XMLRPC pingback.ping.

XMLRPC.png

2.6.1. Restringir el acceso al archivo xmlrpc.php

Para restringir el acceso al archivo xmlrpc.php en apache2, se debe editar el archivo de configuración del sitio web o mediante el archivo .htaccess agregando las siguientes líneas:

<files xmlrpc.php>
	order allow,deny
	deny from all
</files>

Después reiniciar apache:

systemctl restart apache2

2.6.2. Deshabilitar la función XML-RPC

Si se determina que la función XML-RPC no es necesaria, se recomienda deshabilitarla, para ello se debe editar el archivo wp-config.php y agregar la siguiente línea:

add_filter('xmlrpc_enabled', '__return_false');

Otra opción para deshabilitar la función XML-RPC es instalando y activando el complemento “Disable XML-RPC”.

2.7. Enumeración de usuarios

Wordpress a través de su REST API puede exponer datos sensibles, como es el caso de los usuarios del sistema, si el sitio no está configurado de forma segura.

EnumeracionDeUsuarios.png

Para solucionar esta vulnerabilidad se debe actualizar a la versión 4.7.1 o posterior de Wordpress.

Una opción, en caso de no hacer uso del API REST de Wordpress, es deshabilitarlo, para ello se debe agregar las siguientes líneas en el archivo de configuración de wordpress wp-config.php:

add_filter('rest_enabled', '_return_false');
add_filter('rest_jsonp_enabled', '_return_false');