Skip to main content

Guía de seguridad wordpress

GUÍA DE SEGURIDAD DE WORDPRESS

1. IntroduccióIntroducción

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

2. Asegurando Wordpress

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

2.1. Configurar el control de acceso de usuarios

Ingresar al panel de administració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óbotón Actualizar ahora”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áserá úútil en caso que la actualizacióactualización de algú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óbotón Actualizar plugins”plugins”.

ActualizacionDePlugins.png

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

ActualizacionDePluginsError.png

2.4. Habilitar actualizaciones de seguridad automáautomáticas

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

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

ActualizacionesDeSeguridadAutomáticas.pngActualizacionesDeSeguridadAutomá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ícaracterísticas para interactuar de forma remota con el sitio web, XML- RPC es una funciófunción de WordPress que permite la transmisiótransmisión de datos con HTTP actuando como mecanismo de transporte y XML como mecanismo de codificaciócodificación.

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

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

XMLRPC.png

2.6.5.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óconfiguración del sitio web o mediante el archivo .htaccess agregando las siguientes neas:

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

DespuéDespués reiniciar apache:

systemctl restart apache2

2.6.5.2. Deshabilitar la funciófunción XML-RPC

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

add_filter('xmlrpc_enabled', '__return_false');

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

2.7.6. EnumeracióEnumeración de usuarios

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

EnumeracionDeUsuarios.png

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

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

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

2.2.7. UsaUtiliza contraseñcontraseñas fuertes y seguras

: Utiliza contraseñcontraseñas complejas y úúnicas para todas las cuentas de usuario, especialmente para los administradores.

CreacióCreación de ContraseñContraseñas

  • Longitud: Usa contraseñcontraseñas largas. Se recomienda al menos 12 caracteres, pero cuanto s larga, mejor.

  • Complejidad: Incluye una combinaciócombinación de letras mayúmayúsculas y minúminúsculas, meros y caracteres especiales como !, @, #, $, %, etc.

  • Evita InformacióInformación Personal: No uses informacióinformación personal cilmente disponible como nombres, fechas de nacimiento o meros de telételéfono.

  • GeneracióGeneración Segura: Utiliza generadores de contraseñcontraseñas para crear combinaciones aleatorias y seguras. Hay herramientas en nea y aplicaciones de administracióadministración de contraseñcontraseñas que pueden ayudarte con esto.

  • Almacenamiento Seguro: Usa administradores de contraseñcontraseñas confiables para almacenar y gestionar contraseñcontraseñas de forma segura.

ImplementacióImplementación en WordPress

    • Inicia sesiósesión en tu panel de administracióadministración de WordPress.

    • DiríDirígete a "Usuarios" y luego a "Todos los usuarios".

    • Haz clic en el nombre del usuario para el cual deseas cambiar la contraseñcontraseña.

    • DespláDesplázate hacia abajo hasta la secciósección "Nueva contraseñcontraseña".

    • Ingresa una contraseñcontraseña segura o utiliza el generador de contraseñcontraseñas integrado haciendo clic en "Generar contraseñcontraseña".

    • Confirma la contraseñcontraseña y guarda los cambios.




2.3.8 Implementa AutenticacióAutenticación de Dos Factores (2FA):

Usa un plugin de 2FA para adir una capa adicional de seguridad a las cuentas de usuario.


AutenticacióAutenticación de Dos Factores (2FA)

  • Segunda Capa de Seguridad: Considera habilitar la autenticacióautenticación de dos factores para agregar una capa adicional de seguridad s alláallá de la contraseñcontraseña.

Pasos para Configurar 2FA en WordPress con Google Authenticator:

  • DiríDirígete a tu panel de administracióadministración de WordPress.

  • Ve a Plugins > adir nuevo.

  • Busca "Two Factor Authentication" o "Google Authenticator" y haz clic en Instalar ahora.

  • DespuéDespués de la instalacióinstalación, haz clic en Activar para activar el plugin.

  • Configura el Plugin:

  • Una vez activado, ve a Usuarios > Perfil.

  • DespláDesplázate hacia abajo hasta la secciósección de "AutenticacióAutenticación de dos factores".

  • Selecciona "Habilitar la autenticacióautenticación de dos factores para este usuario".

  • ConfiguracióConfiguración con Google Authenticator:

  • Descarga e instala la aplicacióaplicación "Google Authenticator" en tu dispositivo vil desde la tienda de aplicaciones correspondiente (iOS o Android).

  • Escanea el digo QR:

  • En la configuracióconfiguración de 2FA de tu perfil de WordPress, selecciona "Google Authenticator".

  • Abre la aplicacióaplicación Google Authenticator en tu telételéfono y escanea el digo QR que aparece en pantalla.

  • Alternativamente, puedes introducir el digo secreto manualmente si no puedes escanear el digo QR.

  • VerificacióVerificación:

  • Una vez escaneado o introducido el digo, la aplicacióaplicación generarágenerará digos de verificacióverificación de seis gitos que cambian cada 30 segundos.

  • Introduce el digo de verificacióverificación generado por Google Authenticator en el campo correspondiente en tu perfil de WordPress.

  • Guarda los Cambios:

  • Haz clic en Actualizar perfil para guardar la configuracióconfiguración.

  • Probar la AutenticacióAutenticación de Dos Factores:

  • Cierra sesiósesión en WordPress y vuelve a iniciar sesiósesión.

  • Introduce tu nombre de usuario y contraseñcontraseña como de costumbre.

  • Cuando se te solicite, abre la aplicacióaplicación Google Authenticator en tu telételéfono e introduce el digo de verificacióverificación actual.

  • ConfiguracióConfiguración Adicional:

  • Algunos plugins de 2FA permiten opciones adicionales, como la entrega de digos por correo electróelectrónico o SMS como todo secundario de autenticacióautenticación.

Para aplicar a todos los usuarios de tu sitio wordpress se debe activar la opcióopción todos los usuarios como se ve en la siguiente imagen.



2.4.10. Limita los Intentos de Inicio de SesióSesión: Usa un plugin como "Limit Login Attempts Reloaded" para bloquear direcciones IP despuédespués de varios intentos fallidos de inicio de sesiósesión.


InstalacióInstalación de un Plugin de Seguridad:

ConfiguracióConfiguración del Plugin:

Establecimiento de mites y Acciones:

PersonalizacióPersonalización de Mensajes y Notificaciones:

Prueba y VerificacióVerificación:

Monitoreo Continuo y Ajustes:



2.5.11. Cambia el Prefijo de la Base de Datos: Durante la instalacióinstalación, cambia el prefijo predeterminado wp_ de la base de datos a algo úúnico para prevenir ataques SQL.

Cambiar el prefijo de la base de datos en WordPress es una medida de seguridad que puede ayudar a proteger tu sitio contra ataques SQL Injection. AquíAquí tienes una guíguía paso a paso para hacerlo:

Cambiar el Prefijo de la Base de Datos en WordPress

  1. Realizar una Copia de Seguridad Completa:

  • Antes de realizar cualquier cambio en la base de datos, es crucial hacer una copia de seguridad completa de tu sitio web y de la base de datos.

  • Puedes usar plugins como UpdraftPlus, BackupBuddy, o el propio sistema de backups de tu proveedor de hosting.

  • Desactivar Plugins de CachéCaché y Seguridad:

  • Desactiva temporalmente cualquier plugin de cachécaché o seguridad para evitar conflictos durante el proceso.

  • Editar el Archivo wp-config.php:

  • Accede al archivo wp-config.php en el directorio raíraíz de tu instalacióinstalación de WordPress.

Encuentra la nea que define el prefijo de la base de datos, que generalmente se ve asíasí:
php
Copiar digo
$table_prefix = 'wp_';


Cambia el prefijo wp_ a algo úúnico, por ejemplo:
php
Copiar digo
$table_prefix = 'nuevo_prefijo_';


  1. Actualizar el Prefijo en la Base de Datos:

  • Usa una herramienta como phpMyAdmin o cualquier otro administrador de bases de datos para acceder a tu base de datos de WordPress.

Ejecuta las siguientes consultas SQL para cambiar el prefijo de todas las tablas:
sql
Copiar digo
RENAME table `wp_commentmeta` TO `nuevo_prefijo_commentmeta`;

RENAME table `wp_comments` TO `nuevo_prefijo_comments`;

RENAME table `wp_links` TO `nuevo_prefijo_links`;

RENAME table `wp_options` TO `nuevo_prefijo_options`;

RENAME table `wp_postmeta` TO `nuevo_prefijo_postmeta`;

RENAME table `wp_posts` TO `nuevo_prefijo_posts`;

RENAME table `wp_terms` TO `nuevo_prefijo_terms`;

RENAME table `wp_termmeta` TO `nuevo_prefijo_termmeta`;

RENAME table `wp_term_relationships` TO `nuevo_prefijo_term_relationships`;

RENAME table `wp_term_taxonomy` TO `nuevo_prefijo_term_taxonomy`;

RENAME table `wp_usermeta` TO `nuevo_prefijo_usermeta`;

RENAME table `wp_users` TO `nuevo_prefijo_users`;


  1. Actualizar las Referencias en la Base de Datos:

Algunas tablas contienen referencias al prefijo antiguo. Debes actualizar estas referencias tambiétambién. Ejecuta las siguientes consultas SQL:
sql
Copiar digo
UPDATE `nuevo_prefijo_options` SET `option_name` = REPLACE(`option_name`, 'wp_', 'nuevo_prefijo_') WHERE `option_name` LIKE 'wp_%';

UPDATE `nuevo_prefijo_usermeta` SET `meta_key` = REPLACE(`meta_key`, 'wp_', 'nuevo_prefijo_') WHERE `meta_key` LIKE 'wp_%';


  1. Verificar y Probar:

  • Vuelve a activar los plugins de cachécaché y seguridad.

  • Revisa que todo estéesté funcionando correctamente en tu sitio web.

  • Si encuentras algúalgún problema, verifica las tablas y las referencias en la base de datos para asegurarte de que todas se han actualizado correctamente.

Cambiar el prefijo de la base de datos ayuda a reducir el riesgo de ataques automatizados que se aprovechan de la configuracióconfiguración predeterminada de WordPress. Esta medida, combinada con otras práprácticas de seguridad, puede fortalecer significativamente la proteccióprotección de tu sitio web

TambiéTambién se puede realizar mediante Plugin el cual describimos a continuaciócontinuación:

Desplegamos el Plugin 




 

Desactiva2.12 la Exploración de Directorios: Agrega Options -Indexes a tu archivo .htaccess para evitar que los atacantes puedan explorar tus directorios.

Oculta la VersióVersión de WordPress: Elimina la versión de WordPress del código fuente para dificultar a los atacantes la identificación de posibles vulnerabilidades.


Ocultar la versióversión de WordPress es una medida de seguridad que ayuda a proteger tu sitio de ataques dirigidos a vulnerabilidades especíespecíficas de la versióversión que estáestás utilizando. AquíAquí tienes una guíguía paso a paso para hacerlo:

Ocultar la Versión de WordPress

  1. Eliminar la VersióVersión de WordPress del digo Fuente:

  • Por defecto, WordPress ade la versióversión del sitio en el digo fuente del HTML. Puedes eliminar esto adiendo un pequeñpequeño fragmento de digo en tu archivo functions.php.

  • Ve al panel de administracióadministración de WordPress y navega a "Apariencia" > "Editor de temas" o accede a tu servidor mediante FTP y abre el archivo functions.php de tu tema activo.

ade el siguiente digo al archivo functions.php:
php
Copiar digo
// Eliminar la versióversión de WordPress del digo fuente

remove_action('wp_head', 'wp_generator');

  1. Ocultar la VersióVersión de WordPress en los Feeds RSS:

WordPress tambiétambién incluye la versióversión del sitio en los feeds RSS. Para eliminar esto, ade el siguiente digo al archivo functions.php:
php
Copiar digoocultar
// Eliminar la versióversión de WordPress de los feeds RSS

function remove_wp_version_rss() {

    return '';

}

add_filter('the_generator', 'remove_wp_version_rss');


  1. Eliminar la VersióVersión de WordPress de los Scripts y Estilos:

Los scripts y estilos en WordPress a menudo tienen la versióversión de WordPress adjunta. Puedes eliminar esto adiendo el siguiente digo al archivo functions.php:
php
Copiar digo
// Eliminar la versióversión de WordPress de los scripts y estilos

function remove_wp_version_scripts_styles($src) {

    if (strpos($src, 'ver=')) {

        $src = remove_query_arg('ver', $src);

    }

    return $src;

}

add_filter('style_loader_src', 'remove_wp_version_scripts_styles', 9999);

add_filter('script_loader_src', 'remove_wp_version_scripts_styles', 9999);


  1. Instalar un Plugin de Seguridad:

  • Para mayor conveniencia, puedes usar un plugin de seguridad que incluya la opcióopción de ocultar la versióversión de WordPress. Algunos plugins recomendados son "WP Hardening", "Sucuri Security" y "iThemes Security".

  • Instala y activa el plugin de tu eleccióelección desde "Plugins" > "adir nuevo".

  • Navega a la configuracióconfiguración del plugin y habilita la opcióopción para ocultar la versióversión de WordPress.

  • Verificar la ImplementacióImplementación:

  • DespuéDespués de realizar estos cambios, verifica que la versióversión de WordPress no sea visible en el digo fuente de tu sitio.

  • Abre tu sitio en un navegador, haz clic derecho y selecciona "Ver digo fuente de la gina" (o similar segúsegún el navegador).

  • Busca cualquier menciómención de la versióversión de WordPress. Si la has eliminado correctamente, no deberídeberías encontrarla.

Implementar estas medidas ayuda a reducir el riesgo de que los atacantes exploten vulnerabilidades especíespecíficas de tu versióversión de WordPress, aumentando asíasí la seguridad general de tu sitio web




2.13. Usa HTTPS/SSL: AsegúAsegúrate de que tu sitio web utiliza HTTPS instalando un certificado SSL.

AquíAquí tienes los pasos simplificados para instalar un certificado SSL en WordPress:

2.14. Usa Google reCAPTCHA: ade Google reCAPTCHA a tus formularios de inicio de sesiósesión, registro y comentarios para evitar el spam y los intentos de inicio de sesiósesión automatizados.




Configuració2.15. Configuración de Copias de Seguridad AutomáAutomáticas.


Instala un Plugin de Copias de Seguridad:

  • En el panel de administracióadministración de WordPress, ve a "Plugins" y luego a "adir nuevo".

  • Busca un plugin de copias de seguridad como UpdraftPlus, BackupBuddy o VaultPress.

  • Instala y activa el plugin elegido.

Configura el Plugin de Copias de Seguridad:

  • DespuéDespués de activar el plugin, deberídebería aparecer en el menúmenú lateral de WordPress.

  • Haz clic en el nombre del plugin para acceder a su configuracióconfiguración.

Crea un Nuevo Trabajo de Copia de Seguridad:

  • Dentro del plugin, busca la opcióopción para crear una nueva copia de seguridad o configurar un nuevo trabajo de copia de seguridad.

Selecciona QuéQué Incluir en la Copia de Seguridad:

  • Elige si deseas incluir la base de datos de WordPress, los archivos del sitio, o ambos.

  • Algunos plugins te permiten seleccionar automáautomáticamente los archivos y la base de datos necesarios.

Configura la Frecuencia y Horario:

  • Define la frecuencia de las copias de seguridad automáautomáticas (diariamente, semanalmente, mensualmente) y el horario en que deseas que se realicen.

Elige el Destino de la Copia de Seguridad:

  • Decide nde almacenar las copias de seguridad. Puedes usar servicios de almacenamiento en la nube como Dropbox, Google Drive, Amazon S3, o almacenamiento local en el servidor.

Configura Opciones Avanzadas (si es necesario):

  • Algunos plugins ofrecen opciones avanzadas como compresiócompresión de archivos, cifrado de copias de seguridad, exclusióexclusión de archivos especíespecíficos, etc. Configura segúsegún tus necesidades.

Guarda y Activa el Trabajo de Copia de Seguridad:

  • Una vez configurado, guarda la configuracióconfiguración y activa el trabajo de copia de seguridad. AsegúAsegúrate de que estéesté programado segúsegún tus preferencias.

Prueba y Verifica:

  • Realiza una prueba inicial para asegurarte de que las copias de seguridad automáautomáticas se estáestán realizando correctamente.

  • Verifica que los archivos y la base de datos se estéestén respaldando como esperabas.

Monitoriza y MantéMantén:

  • Supervisa regularmente las copias de seguridad automáautomáticas para asegurarte de que se estéestén realizando correctamente.

  • Ajusta la configuracióconfiguración segúsegún sea necesario para mantener la seguridad y la disponibilidad de las copias de seguridad.


Crea Copias de Seguridad Regularmente: Usa plugins como UpdraftPlus o BackWPup para crear copias de seguridad regulares de tu sitio.


Se puede realizar mediante plugin 



En la parte de ajustes dentro del plugins 



Desactiva la Exploración de Directorios: Agrega Options -Indexes a tu archivo .htaccess para evitar que los atacantes puedan explorar tus directorios.