Introducción a la Seguridad de WordPress

Estadísticas recientes indican que un poco más del 29% de los administradores de sitios web en Internet utilizan WordPress y esta popularidad viene con un precio. WordPress es a menudo la atención de hackers y spammers, quienes buscan utilizar sitios web inseguros para sus propios beneficios. La seguridad de WordPress significa disminuir los riesgos, no eliminarlos. Siempre habrá riesgo, y la seguridad es un proceso continuo que requiere evaluaciones frecuentes de los vectores de ataques.

El objetivo de esta guía es educar a los administradores de sitios web WordPress en las técnicas de seguridad básicas y en un plan de acción a seguir para mejorar tu postura de seguridad y así reducir los riesgos de compromiso.

In This Guide

x
1
Vulnerabilidades de Software

El equipo de seguridad de WordPress trabaja de manera diligente para proveer actualizaciones y parches de seguridad importantes. Sin embargo, el uso de plugins y temas de terceros expone a los usuarios a nuevas amenazas de seguridad.

Al instalar de manera regular las últimas versiones del núcleo de WordPress y demás extensiones, puedes asegurarte de que tu sitio web posee todos los parches de seguridad disponibles.

1.1 - Auditando Plugins & Temas

Los plugins pueden volverse obsoletos, o incluir errores en el código que poseen un serio riesgo de seguridad para tu sitio web.

Para proteger tu instalación de WordPress, te recomendamos que realices auditorías a los plugins y temas de manera regular.

Evalúa la Seguridad de tus Plugins

Puedes evaluar la seguridad de los plugins de WordPress al verificar un par de indicadores importantes:

  • ¿El plugin tiene una gran base de instalación?
  • ¿Hay muchas reseñas por parte de los usuarios y la calificación promedio es alta?
  • ¿Los desarrolladores están apoyando el plugin de manera activa y lanzando actualizaciones o parches de seguridad de manera frecuente?
  • ¿El proveedor del plugin define los términos de servicio o una política de privacidad?
  • ¿El vendedor incluye una dirección de contacto física en los Términos de Servicio o en una página de contacto?

Lee los Términos de Servicio de manera cuidadosa, puede incluir extras no deseados que el autor no quiere promocionar en su página de inicio. Si el plugin no cumple alguno de estos requisitos, o si cambió de propietario antes de la última actualización, deberías buscar una solución más segura.

Nota

Algunas veces los malhechores compran un plugin para agregar funcionalidades no deseadas o maliciosas. Ten cuidado al instalar plugins que han cambiado de propietario antes de la última actualización.

Elimina Plugins & Temas que no Utilizas

Cuando se trata de plugins sin utilizar, mientras menos, mejor. Almacenar plugins no deseados en tu instalación de WordPress incrementa las probabilidades de un compromiso, incluso si están deshabilitados y no se usan de manera activa en tu instalación.

¿No estás utilizando un plugin para WordPress? Elimínalo de tu instalación.

1.2 - Actualizaciones

Actualizando WordPress

Cuando una nueva actualización esté disponible, serás notificado en el menú Dashboard > Actualizaciones.

Siempre deberías aplicar las actualizaciones tan pronto como estén disponibles. Iniciar sesión en tu sitio de manera frecuente te garantiza estar consciente de las actualizaciones a medida que se publican. Si no puedes actualizar tu sitio por alguna razón, considera utilizar un firewall de sitios web para parchear el problema y minimizar el riesgo.

Para configurar actualizaciones automáticas en WordPress:

  1. Inicia sesión en tu servidor a través de SFTP o SSH.
  2. Ubica el archivo wp-config.php, normalmente localizado en el directorio public_html.
  3. Agrega el siguiente fragmento de código: define( 'WP_AUTO_UPDATE_CORE', true );

Nota

Algunas actualizaciones pueden romper tu sitio web, asegúrate de verificar que tu sitio está completamente operacional luego de aplicar una actualización.

Los usuarios avanzados pueden echarle un vistazo a la guía del Codex de WordPress sobre cómo actualizar utilizando subversion.

Para aplicar actualizaciones manualmente en WordPress:

  1. Inicia sesión en tu servidor a través de SFTP o SSH.
  2. Elimina los directorios wp-admin y wp-includes de manera manual.
  3. Reemplaza los archivos núcleo del directorio raíz, /wp-admin/ y /wp-includes/ utilizando copias del repositorio oficial de WordPress.
  4. Inicia sesión en WordPress como un administrador, puede que veas una notificación para actualizar la base de datos.
  5. Haz clic en Update WordPress Database.
  6. Una vez que la base de datos ha sido actualizada, navega hasta Dashboard > Actualizaciones.
  7. Aplica todas las actualizaciones.
  8. Abre tu sitio web para verificar que está operacional.

Precaución

    Antes de actualizar tu sitio web a la última versión de WordPress, te recomendamos tomar los siguientes pasos preventivos:

    1. Haz una copia de seguridad, especialmente de contenido personalizado.
    2. Verifica las notas del lanzamiento para identificar cualquier cambio que pueda tener un impacto negativo en tu sitio web.
    3. Prueba las actualizaciones en un sitio de pruebas para verificar que tu tema, plugins y otras extensiones son compatibles con la última versión.

Actualización a la Base de Datos Requerida

Database Update Required

Actualizando Plugins

WordPress puede que no sea capaz de actualizar una extensión si ha sido descargada desde un sitio web de terceros. Si este es el caso, vas a necesitar actualizar el plugin de manera manual utilizando FTP o algún actualizador incluído.

Para actualizar plugins de manera manual en WordPress:

  1. Verifica la compatibilidad entre el plugin y tu versión actual de WordPress.
  2. Descarga la última versión del plugin desde una fuente oficial y guárdala en tu computadora local.
  3. Verifica instrucciones adicionales para actualizar el plugin de parte del desarrollador o vendedor. Si no existen, procede con los pasos 4-9.
  4. Inicia sesión en tu servidor a través de SFTP o SSH.
  5. Navega hasta /wp-content/plugins/ y descárgalo a tu computadora para que te pueda servir como una copia de seguridad.
  6. Localiza el directorio del plugin que quieres actualizar y elimínalo utilizando FTP.
  7. Sube la última actualización del plugin en la misma ubicación.
  8. Inicia sesión en WordPress como un administrador y haz clic en Dashboard > Plugins.
  9. Ubica el plugin que acabas de actualizar y haz clic en Activar.

Actualizando Temas

Si no estás utilizando temas hijo/padre para guardar personalizaciones, necesitarás copiar tus modificaciones a un folder nuevo, luego de eso, actualiza utilizando FTP.

Para actualizar temas de manera manual en WordPress:

  1. Conéctate a tu sitio web a través de FTP y ve a /wp-content/themes/, y descarga el directorio a tu computadora.
  2. Visita el sitio web del tema y descarga la última versión, guárdala en tu computadora - ya debes tener dos versiones del mismo tema.
  3. Copia cualquier personalización y cambios en el código en tu tema viejo y agregalos a los archivos del nuevo tema.
  4. Sube la última versión del directorio del tema a tu servidor y completa cualquier personalización a WordPress utilizando FTP.

Nota

Si estás utilizando un tema hijo personalizado que heredó funcionalidad del tema padre, actualizar el tema se convierte en algo bastante sencillo. Simplemente sobreescribe tu copia del tema padre con la última versión de la fuente oficial. Tu personalización quedará intacta en el tema hijo.

2
Control de Acceso

De manera frecuente, los atacantes explotan las credenciales débiles de los usuarios para obtener acceso a los sitios web WordPress.

Al utilizar contraseñas única y fuertes en tu sitio web, restringir los privilegios disponibles para los usuarios a través de la asignación de roles, habilitar segundo factor de autenticación o incluso múltiples factores de autenticación, y limitar las sesiones de los usuarios, puedes reducir el riesgo de que tu sitio web sea comprometido por un malhechor.

2.1 - Cuentas de Usuarios

Administrador

La mayoría de los ataques tienen como objetivo los puntos de acceso wp-admin, wp-login.php, y xmlrpc.php y los atacan utilizando una combinación de nombres de usuarios y contraseñas comunes.

Al utilizar un nombre de usuario único y eliminar la cuenta de usuario administradora por defecto en tu instalación de WordPress, haces que sea mucho más difícil para los atacantes adivinar (fuerza bruta) tus credenciales de acceso.

Reemplaza la cuenta "admin" por defecto:

  1. Inicia sesión en WordPress como un administrador.
  2. Desde el Dashboard, selecciona Usuarios > Agregar Nuevo.
  3. Utilizando una nueva dirección de correo electrónico, crea una nueva cuenta y asigna el Rol Administrator a esa cuenta.
  4. Guarda el nuevo usuario, luego cierra sesión e inicia sesión utilizando tu nueva cuenta de administrador.
  5. Desde el Dashboard, selecciona Usuarios > Todos los Usuarios.
  6. Pasa tu mouse encima del usuario admin, y selecciona Eliminar.
  7. Atribuye las publicaciones antiguas a tu nueva cuenta administradora.

Tip

Crea un nombre de usuario que sea diferente a tu nombre de usuario actual y haz que ese sea el que esté visible públicamente. Esto hará que sea más difícil para los atacantes adivinar tus credenciales de acceso utilizando fuerza bruta.

Roles & el Principio de Mínimo Privilegio

El principio de mínimo privilegio está compuesto por dos pasos sencillos:

  • Utiliza el menor conjunto de privilegios en un sistema para realizar una acción.
  • Otorga privilegios por la duración exacta en que una acción es necesaria

Con este concepto en mente, WordPress incluye roles por defecto para Administradores, Autores, Editores, Contribuidores y Subscriptores. Estos roles especifican lo que puede y lo que no puede ser realizado por un usuario.

Sigue estas recomendaciones sobre control de acceso para reducir los riesgos de seguridad:

  • Crea nuevas cuentas de usuario con los privilegios más bajos.
  • Concede los privilegios de manera temporal y revoca el acceso cuando ya no sean necesarios.
  • Elimina las cuentas que ya no estén siendo utilizadas.
  • Asegúrate de que el rol por defecto para las cuentas nuevas sea el de Suscriptor:
    1. Inicia sesión en WordPress como un Administrador.
    2. Verifica que los permisos de los Suscriptores solo permitan iniciar sesión y actualizar el perfil.
    3. Desde el Dashboard, selecciona Ajustes > Generales.
    4. Define Suscriptor como el rol por defecto para usuarios nuevos.

2.2 - Contraseñas

Los atacantes utilizan listas de contraseñas para atacar sitios web WordPress por medio de fuerza bruta. Por esta razón, siempre debes utilizar contraseñas únicas y fuertes para todas tus cuentas.

Las contraseñas fuertes deberían contener los siguientes estándares:

  • Al menos 1 caracter en mayúscula
  • Al menos 1 caracter en minúscula
  • Al menos 1 digito
  • Al menos 1 caracter especial
  • Al menos 10 caracteres, con no más de dos caracteres iguales seguidos

Note

Utilizar un generador de contraseñas para generar una cadena de texto compuesta de letras y números es una de las maneras más simples de crear una contraseña segura.

Opciones de Generación de Contraseñas

Password Generation Options

2FA / MFA

La autenticación de dos factores te permite tener un segundo nivel de protección para tus cuentas. Esta funcionalidad requiere que apruebes los inicios de sesión a través de una aplicación y protege tu cuenta en caso de que alguien más adivine tu contraseña.

Para añadir 2FA a WordPress utilizando Google Authenticator:

  1. Descarga e instala Google Authenticator para tu iPhone o Android.
  2. Instala y activa un plugin que permita 2FA para WordPress, como por ejemplo, miniOrange’s 2FA.
  3. Selecciona miniOrange 2-Factor del menú a la izquierda y sigue las instrucciones.
  4. Una vez que obtuviste tu código QR, abre Google Authenticator y haz clic en el botón Agregar, en la parte inferior izquierda de la aplicación.
  5. Utilizando la cámara de tu teléfono, escanea el código QR que muestra el plugin.
  6. Verifica el código en la página del plugin.

La Plataforma de Seguridad de Sitios Web de Sucuri incluye una función que te ayuda a proteger por medio de contraseña o implementar 2FA en cualquier página de tu sitio web.

Para agregar 2FA a cualquier página de tu sitio web utilizando Sucuri:

  1. Descarga e instala Google Authenticator para tu iPhone o Android.
  2. Inicia sesión en el Sucuri Dashboard y navega hasta Website Firewall.
  3. Haz clic en el sitio web que deseas proteger, y luego selecciona Access Control de la navegación superior.
  4. Ingresa el nombre de la página que deseas proteger (ej. /wp-login.php), y luego selecciona 2FA con Google Auth en el menú desplegable.
  5. Haz clic en Protect Page y escanea el código QR con el dispositivo móvil utilizando Google Authenticator.

Agregar 2FA con Sucuri

Agregar 2FA al dashboard de Sucuri

2.3 - Limita los Intentos de Inicio de Sesión

Por defecto, WordPress permite que los usuarios intenten iniciar sesión un número ilimitado de veces, pero esto deja tu sitio web vulnerable a ataques de fuerza bruta ya que los hackers intentan diferentes combinaciones de contraseñas.

Puedes agregar otra capa de seguridad al limitar el número de intentos de inicio de sesión en una cuenta a través de un plugin, o utilizar un Firewall para Aplicaciones Web (WAF).

Algunos de los plugins populares que incluyen esta función son Limit Login Attempts, WP Limit Login Attempts y Loginizer.

2.4 - Captchas

El acrónimo significa Prueba de Turing Completamente Automática y Pública para Diferenciar Ordenadores de Humanos (en inglés: Completely Automated Public Turing Test To Tell Computers and Humans Apart). Esta función es extremadamente útil para detener los bots automáticos que intentan acceder a tu panel de WordPress, o que envían spam no deseado a través de formularios.

Plugins populares para agregar CAPTCHA a tu página de inicio de sesión de WordPress incluyen Captcha y Really Simple Captcha.

Captchas

Pre-Login Captchas

2.5 - Restringe el Acceso a URLs Autenticadas

Limitar el acceso a tu página de inicio de sesión a solamente IPs autorizadas prevendrá entradas no autorizadas.

Hay plugins disponibles que pueden hacer esto. Si estás utilizando un WAF basado en la nube, como por ejemplo, el Firewall Sucuri, puedes restringir el acceso a esas URLs a través del panel de administración, sin tener que lidiar con tu archivo .htaccess.

Direcciones IP en Lista Blanca

Agregar dirección IP a la lista blanca del dashboard de Sucuri
3
Seguridad Proactiva para WordPress

En el campo de la Seguridad de la Información (InfoSec) nos gusta utilizar la frase defensa en profundidad.

Para apreciar esta ideología tienes que suscribirte a un principio bastante sencillo: <b>No hay solución 100% completa capaz de proteger cualquier entorno.

En esta sección, encontramos un número de soluciones que puedes aplicar en tu sitio web para desplegar una estrategia de defensa en profundidad efectiva. Al tener esos controles defensivos en capas, serás capaz de identificar y mitigar ataques contra tu sitio web.

3.1 - Plugins de Seguridad

Si vas al repositorio oficial de WordPress y haces una búsqueda rápida de la palabra “seguridad”, encontrarás un poco más de 4,298 plugins con categorizaciones y funciones diferentes.

Vamos a descomponer esas categorías y explicar su importancia de modo que puedas encontrar la solución correcta para tus necesidades.

Plugin de Seguridad para WordPress – Categoría de Prevención

Estos plugins buscan proveer cierto grado de prevención, también conocido como un sistema de defensa perimetral para tu sitio web. El objetivo es detener los hacks al filtrar el tráfico de entrada.

Los plugins de prevención están generalmente limitados a trabajar en la capa de la aplicación, lo que significa que el ataque tiene que golpear la instalación de WordPress para que estos puedan responder. Los ataques contra el software del servidor no pueden ser prevenidos con plugins de seguridad, y esta es la razón por la que recomendamos utilizar un WAF basado en la nube.

Plugin de Seguridad para WordPress – Categoría de Prevención

La protección funciona excelente con problemas conocidos, pero no es así cuando se trata de problemas desconocidos. Detectar algo capaz de pasar tu perímetro de defensa es invaluable, y por esta razón es que la detección es tan importante.

Estos plugins tratarán de identificar intrusos a través de Verificaciones de Integridad a tus Archivos, escaneos en busca de indicadores de compromiso, o una combinación de los dos mecanismos.

La efectividad de estos plugins está determinado estrictamente por el orden en el que fueron instalados. Por ejemplo, si un plugin está basado en verificaciones de integridad, necesita estar instalado en entornos limpios, de modo que pueda tener un punto de comparación.

Algunos plugins pueden hacer comparaciones contra repositorios oficiales de temas y plugins de terceros, todo esto para poder trabajar con sitios web que ya están comprometidos, pero estos no son compatibles con archivos menos conocidos o personalizados.

Tip

Los plugins de detección son importantes para identificar si algo está mal en tu sitio web. Estas herramientas de seguridad se aseguran que estás informado cuando ocurre un incidente de seguridad.

Plugin de Seguridad para WordPress – Categoría de Auditoreo

Contrario a la creencia popular, la seguridad no es algo fijo, que configuras y te olvidas de ello. Tienes que invertir tiempo en el proceso, y en acostumbrarte a lo que está pasando, quién está iniciando sesión, qué está cambiando, y en qué momentos se están haciendo estos cambios.

Los plugins de auditoría te pueden ayudar a responder las preguntas mencionadas anteriormente por medio de funciones de administración básicas que te permiten identificar, frustrar o responder a un compromiso.

Plugin de Seguridad para WordPress – Categoría de Utilidad

Esta es, quizás, la categoría más diversa en el ecosistema de Plugins de Seguridad para WordPress. Hay algunos plugins que consideramos ser los cuchillos del ejército suizo en cuanto a seguridad, estos plugins tienen un conjunto de funcionalidades mucho más pequeño.

Pero estos plugins pueden ser exhaustivos en sus opciones de configuración, tienen cada configuración que puedas querer desplegar, y están construidos para los usuarios a los que les gusta jugar o quieren la habilidad de poder configurar opciones específicas para satisfacer sus necesidades. Por ejemplo, algunos plugins de seguridad simplemente desactivan XML-RPC, o mueven tu página de inicio de sesión.

También reservamos esta categoría para plugins de mantenimiento o que cubren funciones de seguridad específicas, como crear copias de seguridad.

3.2 - Alojamiento Web

La seguridad para los hostings de sitios web ha madurado en años recientes, y esto es un tema complejo.

La mayoría de los de los alojadores web proveen la seguridad que necesitas en varios niveles, pero no para el sitio web en sí. Hay un número de proveedores de hosting que proveen seguridad por un costo adicional, pero a menos que hayas comprado un producto de seguridad de parte de ellos, es poco probable que resuelvan un compromiso para ti.

Hay cuatro entornos de hosting principales que se pueden usar para tu instalación de WordPress:

  • Entornos de Hosting Compartidos
  • Entornos de Servidores Privados Virtuales (VPS)
  • Entornos de Hosting Gestionados
  • Servidores Dedicados

En teoría, los entornos que eliminan la dependencia del usuario serán los que ofrezcan mayor seguridad. Si tienes el tiempo y las habilidad para asegurar tu propio entorno, tienes más opciones pero también más responsabilidad.

Sin embargo, en la realidad, el tipo de entorno de alojamiento que elijas debe ser dictado por tus necesidades y experiencia:

  • Si eres alguien con poco conocimiento sobre cómo funcionan los sitios web, entonces está en tu mejor interés elegir un entorno gestionado.
  • Si eres parte de una organización con su propio centro de operaciones de datos (NOC, por sus siglas en inglés), centro de operaciones de seguridad de la información (SOC, por sus siglas en inglés), o sysadmins dedicados, entonces un VPS o servidor dedicado proveerá un mejor aislamiento de tu entorno (asumiento que está configurado apropiadamente).

También puedes iniciar una conversación con tu proveedor de hosting para identificar cuál es su postura de seguridad. Estos son algunos puntos clave que debes tocar:

  • ¿Qué precauciones están tomando para proteger tu sitio web (no solo su servidor)?
  • ¿Qué acciones tomarán si identifican malware en uno de tus sitios?
  • ¿Qué tan frecuente hacen escaneos en busca de malware?
  • ¿Ofrecen servicios de respuesta a incidentes?
  • ¿Tendrás que contratar servicios de terceros si tu sitio web es hackeado?

Nota

Para prevenir contaminación cruzada en entornos de servidores compartidos, utiliza cuentas de usuario FTP cuidadosamente aisladas.

Conexiones SFTP/SSH

La transferencia de datos segura desde y hasta tu servidor es una faceta importante de la seguridad de tu entorno de alojamiento. La encriptación se asegura de que cualquier dato siendo enviado es protegido de ojos curiosos que puedan estar interceptando tu tráfico de red.

Recomendamos utilizar uno de los siguientes métodos para conectarte a tu servidor:

SSH: Intérprete de Órdenes Seguro (Secure Socket Shell en inglés) es un protocolo de red seguro y la manera más popular de administrar servidores remotos de manera segura. Con SSH, cualquier tipo de autenticación, incluyendo autenticación por contraseña y transferencia de archivos, es totalmente encriptada.

SFTP: El Protocolo de Transferencia de Archivos SSH es una extensión de SSH y permite la autenticación sobre un canal seguro. Si estás utilizando FileZilla o algún otro cliente FTP, puedes utilizar SFTP en su lugar, el puerto por defecto para SFTP en la mayoría de servicios FTP es el 22.

3.3 - Copias de Seguridad

Mantener copias de seguridad actualizadas debe ser una de las tareas recurrentes más importantes para un administrador de sitios web.

Un buen juego de copias de seguridad puede salvar tu sitio web cuando absolutamente todo lo demás ha salido mal. Si un atacante malicioso decide borrar todos tus archivos, o corromper tus archivos con sus ejecutables, el daño puede ser deshecho al restaurar tu sitio web utilizando una copia de seguridad.

Hay cuatro requerimientos clave para emplear una solución de copias de seguridad exitosa:

  1. Ubicación Remota: Tus copias de seguridad deben ser almacenadas en una ubicación remota y no en el mismo servidor que tu sitio web. Las copias de seguridad almacenadas en el mismo servidor son un gran riesgo, porque generalmente contienen software sin parchear y con vulnerabilidades, y debido a su ubicación públicamente accesible, cualquiera las puede explotar para atacar tu sitio web en producción. Las copias de seguridad en una ubicación remota también te pueden ayudar contra fallas de hardware. Si el disco duro de tu servidor web falla, podrías perder toda tu información - el sitio web en producción y tus copias de seguridad.
  2. Automáticas: Los sistemas de copias de seguridad deben ser completamente automáticos para garantizar que las copias de seguridad son hechas de forma regular. Los humanos somos perezosos y olvidadizos, y hoy en día puedes mitigar errores humanos a través de la automatización. Si la única opción que tienes es hacerlo manual, asegúrate de programar el tiempo para hacer las copias de seguridad de manera regular.
  3. Redundantes: La Segunda Ley de la Computación por Schofield dicta que los datos no existen a menos que hayan al menos dos copias de ellos. Esto significa que tu estrategia de copias de respaldo tiene que incluir redundancia, o respaldos de tus copias de respaldo.
  4. Probadas & Funcionales: Asegúrate de que el proceso de restauración funcione. Comienza con un directorio web vacío y un dominio de prueba, y utilizando solamente el archivo de respaldo, asegúrate de que puedas poner de regreso tus datos y sitio web en línea.

3.4 - Detección

Hay un número de herramientas que puedes utilizar para identificar cuando alguien ha hecho algo malo en tu sitio web. Para ayudarte a responder rápidamente a una brecha de seguridad, despliega una herramienta que incluya los siguientes servicios.

Monitoreo de Integridad

Las verificaciones de integridad son un aspecto importante de la auditoría de tu instancia de WordPress, y puede darte una advertencia temprana en el caso que ocurra una intrusión en tu sitio web.

Las herramientas de Monitoreo de Integridad de Archivos normalmente se instalan en servidores donde crean una suma de comprobación criptográfica de los archivos críticos y de las entradas de registro. Si un archivo o registro es modificado de cualquiera manera, recibirás una notificación de los cambios.

Puedes instalar el plugin Sucuri Scanner para WordPress de manera gratuita para utilizar nuestro sistema de monitoreo de integridad.

Auditoría / Alertas

Las herramientas de auditoría te dan visibilidad sobre la actividad de los usuarios en tu sitio web.

Como el administrador de tu sitio web, deberías estar haciendo preguntas como las siguientes:

  1. ¿Quién inició sesión?
  2. ¿Deberían haber iniciado sesión?
  3. ¿Por qué están cambiando esa publicación?
  4. ¿Por qué iniciaron sesión cuando deberían estar dormidos?
  5. ¿Quién instaló ese plugin?

No podemos enfatizar lo suficiente la importancia de tener registros de actividad. Utiliza una herramienta que registre y alerte de cualquier acción tomada en tu sitio web, incluyendo:

  1. Éxitos y fallas de autenticación de usuarios
  2. Creación y eliminación de usuarios
  3. Subidas de archivos
  4. Creación de entradas y páginas
  5. Publicación de nuevas entradas y páginas
  6. Activación/modificación de Widgets
  7. Instalación de plugins
  8. Modificaciones en temas
  9. Modificaciones de ajustes

Alertas de Monitoreo de Integridad para WordPress

Integrity alerts with the Sucuri Plugin

Respuesta y Plan de Recuperación

La respuesta y recuperación no solo se trata de responder a un incidente o compromiso, se trata de analizar los impactos del ataque para entender qué ocurrió, e implementar controles para prevenir que vuelva a ocurrir.

Protege & Limpia WordPress

4
Recomendaciones de Endurecimiento

Precaución: Las siguientes recomendaciones son para los administradores de servidores con el conocimiento de cómo funcionan estos archivos. Si no te sientes cómodo con estas recomendaciones, te recomendamos utilizar un firewall para aplicaciones web que incluya endurecimiento virtual.

4.1 - Configuración .htaccess Básica

El archivo .htaccess es lo que la mayoría de proveedores modificará cuando te digan que están endureciendo tu entorno.

Este archivo de configuración tan crítico es específico para servidores corriendo Apache. Si estás corriendo tu instancia de WordPress con LAMP utilizando Apache, te recomendamos endurecer tu sitio a través del archivo .htaccess con las siguientes reglas de configuración:

Nota

Algunas de las reglas a continuación son dependientes de la versión de Apache que estés corriendo. En esos casos, incluimos instrucciones para la versión 2.2 y 2.4 del Servidor Apache.

/.HTACCESS Explicación de la Regla

# BEGIN WordPress

# Rewrite rule
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress
	          

Regla de Sobreescritura:

Si tiene privilegios de escritura, WordPress genera esta regla automáticamente, más que todo para arreglar problemas con permalinks.

Si no está al comienzo de tu archivo, colócalo al inicio de tu archivo .htaccess. Cualquier otra regla deberá ir luego de los comentarios # BEGIN WordPress y # END WordPress


# Block IPs for login Apache 2.2
<files /wp-login.php>
 order deny,allow
 allow from MYIP
 allow from MYIP2
 deny from all
</files>

# Block IPS for login Apache 2.4
<Files "wp-login.php">
 Require all denied
</Files>
            

Restringir Inicios de Sesión a un Rango de IPs

Esta regla restringe el acceso al wp-login.php, protegiendo tu sitio de intentos de inicio de sesión no autorizados y provenientes de otras ubicaciones. Incluso si no tienes una IP estática, todavía puedes restringir los intentos de inicio de sesión al rango que utiliza tu ISP.

Utiliza esta misma entrada en otras URLs autenticadas que te gustaría restringir, incluyendo /wp-admin. Si estás utilizando una IP dinámica, puedes leer nuestras instrucciones sobre Cómo Bloquear el Panel de Administración de WordPress con una IP Dinámica


# Protect wp-config Apache 2.2
<files wp-config.php>
order allow,deny
deny from all
</files>

#Protect wp-config Apache 2.4
<Files "wp-config.php">
Require all denied
Require ip 1.1.1.1
</Files>
            

Protege tu wp-config.php

Esta regla restringe a tus visitantes de acceder tu archivo wp-config.php, que contiene información sensible sobre la base de datos, nombre incluido, host, nombre de usuario y contraseña. Este archivo también es utilizado para definir ajustes avanzados, llaves de seguridad y otras opciones para desarrolladores.


# Prevent directory browsing
Options All -Indexes
            

Prevén Navegación de Directorios

Esta regla restringe a los atacantes de ver el contenido de los folders en tu sitio, limitando la información que tienen para explotar tu sitio web.


# Prevent image hotlinking
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} \
!^http://(www\.)example.com/.*$ [NC]
RewriteRule \.(gif|jpg|jpeg|bmp|png)$ - [NC,F,L]
            

Prevén el Hotlinking a tus Imágenes

Esta regla previene que otros sitios web usen las imágenes alojadas en tu sitio web. Y aunque hotlinking no hará que tu sitio web sea hackeado, puede resultar en la explotación de los recursos de tu servidor. Cambia example.com por el nombre de dominio de tu sitio web.


# Protect htaccess Apache 2.2
<files ~ "^.*\.([Hh][Tt][Aa])">
order allow, deny
deny from all
satisfy all
</files>

# Protect htaccess Apache 2.4
<FilesMatch "^.*\.([Hh][Tt][Aa])">
Require all denied
</FilesMatch>
            

Protege .htaccess

Esta regla previene que los atacantes accedan a cualquier archivo cuyo nombre comience con “hta” - esto asegura que los archivos .htaccess están protegidos en todos los directorios de tu servidor.


# Block Includes
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^wp-admin/includes/ - [F,L]
RewriteRule !^wp-includes/ - [S=3]
RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]
RewriteRule ^wp-includes/js/tinymce/langs/.+\.php \
 - [F,L]
RewriteRule ^wp-includes/theme-compat/ - [F,L]
</IfModule>
            

Bloquea los Includes

Esta regla bloquea que los hackers inserten archivos maliciosos en cualquiera de los cuatro folders principales utilizados para incluir otros archivos:

  • /wp-admin/includes/
  • /wp-includes
  • /wp-includes/js/tinymce/langs/
  • /wp-includes/theme-compat/
/WP-INCLUDES/.HTACCESS
/WP-CONTENT/UPLOADS/.HTACCESS
Explicación de la Regla

# Backdoor Protection Apache 2.2
<Files *.php>
deny from all
</Files>

# Backdoor Protection Apache 2.4
<FilesMatch ".+\.php$">
Require all denied
</FilesMatch>
            

Prevén Puertas Traseras/Backdoors en PHP

Esta regla previene que los hackers coloquen puertas traseras escritas en PHP en los directorios /wp-includes/ y /wp-content/uploads/, dos ubicaciones populares para subir archivos maliciosos.

4.2 - Configuraciones de Aplicación

WP-Config

El archivo wp-config.php es un archivo muy importante en cuanto a configuraciones y contiene información sensible sobre tu sitio web WordPress, incluyendo datos de conexión a la base de datos.

Si el archivo wp-config.php no existe en el directorio raíz, WordPress buscará este archivo en el directorio que le sigue a este de manera automática. Mover este archivo fuera del directorio raíz previene que sea accesible desde el Internet.

Salts & Llaves

El archivo wp-config.php incluye una sección dedicada a los salts y llaves de autenticación. Estos salts y llaves mejoran la seguridad de las cookies y contraseñas en tránsito entre el navegador y el servidor web.

Puedes configurar estas llaves incluyendo o editando las líneas siguientes a las sentencias de definición en tu archivo wp-config.php:

define('AUTH_KEY', 'incluye tu salt aquí');
define('SECURE_AUTH_KEY', 'incluye tu salt aquí');
define('LOGGED_IN_KEY', 'incluye tu salt aquí');
define('NONCE_KEY', 'incluye tu salt aquí');

Puedes generar tus salts de manera fácil navegando hasta el generador de salts de wordpress.org o utilizando los salts restablecidos + opciones de llaves en nuestro plugin para WordPress

Importante

    Si sospechas que las llaves secretas han sido comprometidas, generalas nuevamente tan pronto como sea posible. Todos los usuarios tendrán que autenticarse nuevamente.

Deshabilita la Edición de Archivos

Por defecto, se pueden realizar cambios en los archivos desde el Dashboard de WordPress en Apariencia > Editor

Puedes incrementar tu seguridad deshabilitando la edición de archivos desde el dashboard. Esto previene que los atacantes modifiquen tus archivos desde el backend o wp-admin. Todavía serás capaz de realizar cambios a través de SFTP/SSH.

Para deshabilitar la edición de archivos desde el dashboard, incluye las siguientes dos líneas de código al final de tu archivo wp-config.php:

## Deshabilitar Edición desde el Dashboard
define('DISALLOW_FILE_EDIT', true);

Nota

    Algunos plugins deshabilitan la edición de archivos como parte de su proceso de endurecimiento, o como un extra en los ajustes.

5
Seguridad como Servicio

Hay un número de servicios profesionales que podrían encargarse de las necesidades de seguridad de tu sitio web. No todos los servicios son los mismos, algunos cobran más por limpiar hacks complejos, y otros proveen un set de funciones distintos. Tienes que elegir el que más te convenga y se ajuste a tus necesidades.

Si tu proveedor de alojamiento ofrece servicios de seguridad, toma un tiempo para investigar las funciones que incluyen. Generalmente estos proveedores están felices de aconsejarte en maneras de complementar su base de servicios con otros adicionales.

Los beneficios de emplear un servicio de seguridad basado en la nube, como Sucuri, es que provee seguridad de sitios web completa de extremo a extremo. Esto significa tener servicios de protección, detección y respuesta incluidos en una plataforma todo-en-uno y sin ningún costo extra.

Nuestra Red Anycast Globalmente Distribuida de alta disponibilidad (GDAN por sus siglas en inglés) se asegura de que los sitios web puedan servir a su audiencia global, y mitigar ataques DDoS.

6
Implementando SSL & HTTPS

SSL se ha vuelto cada vez más importante en los últimos años, no solo por transmitir información de manera segura hasta y desde tu sitio web, pero también por aumentar la visibilidad y disminuir la probabilidad de ser penalizado.

SSL le permite a los sitios web ser accesados desde HTTPS, que encripta la información siendo enviada desde los visitantes y los navegadores web. Desde el año 2014, SSL ha sido un factor de ranking SEO y Google ha comenzado a marcar sitios web sin HTTPS y que transmiten contraseñas e información de tarjetas de crédito.

Escribimos una guía gratuita sobre cómo implementar SSL en tu sitio web. Si necesitas ayuda, puedes escribirnos y aprender cómo podemos ayudarte a activar SSL/HTTPS a través de nuestro WAF basado en la nube.

Contáctanos