¿Qué es una vulnerabilidad de WordPress?
Una vulnerabilidad de WordPress es una debilidad o falla en un plugin, tema o núcleo de WordPress que puede ser aprovechado por un pirata informático para hackear tu página web.
En otras palabras, las vulnerabilidades de WordPress crean un punto de entrada para que un pirata informático pueda realizar actividades maliciosas en tu página web.
Hay dos términos más con los que has de estar familiarizado cuando se habla de las vulnerabilidades de WordPress:
- No autenticado: Una vulnerabilidad de WordPress no autenticada significa que cualquiera puede aprovechar la vulnerabilidad.
- Autenticado: Una vulnerabilidad de WordPress autenticada significa que se requiere que un usuario haya iniciado sesión para explotar la vulnerabilidad.
Una vulnerabilidad que requiera un usuario autenticado será mucho más difícil de explotar por un pirata informático debido a que requerirá privilegios de administrador.
Y, si un hacker ya tiene unas credenciales de administrador realmente no necesitará explotar una vulnerabilidad para causar estragos. De todos modos, existen algunas vulnerabilidades autenticadas que solo requieren nivel de suscriptor para explotarlas.
Por lo tanto, si tu página web permite un registro libre deberás extremar las medidas de seguridad de tu página web.
Las 21 vulnerabilidades más frecuentes de WordPress
1 – Omisión de autenticación (Authentication Bypass)
Una omisión de autenticación de vulnerabilidad permite a un atacante saltarse los requisitos de autenticación en el login de WordPress y realizar tareas normalmente reservadas para los usuarios autenticados.
La autenticación es el proceso de verificación de identidad de un usuario. WordPress requiere que los usuarios ingresen su nombre de usuario y contraseña para verificar su identidad en el inicio de sesión de WordPress.
COMO PREVENIRLO: Puede ayudar a proteger el inicio de sesión y prevenir las vulnerabilidades de la autenticación rota mediante la autenticación de dos factores.
2 – Vulnerabilidad de puerta trasera (Backdoor Vulnerability)
Una vulnerabilidad de puerta trasera (Backdoor) permite a los usuarios no autorizados eludir las medidas de seguridad y obtener acceso de alto nivel al servidor o a la página web.
COMO PREVENIRLO: Muchas puertas traseras pueden reducirse a un solo problema, una mala configuración de seguridad. Los problemas de configuración incorrecta de seguridad se pueden mitigar eliminando las funciones no utilizadas en el código, manteniendo todos los plugins, temas y WordPress actualizados y haciendo que los mensajes de error sean más generales y no por defecto.
3 – Vulnerabilidad de inyección de objetos PHP (PHP Object-Injection Vulnerability)
Se produce una vulnerabilidad de inyección de objetos PHP cuando un usuario envía un código que no está desinfectado (PHP malicioso) a tu página web WordPress y lo publica mediante le método POST.
COMO PREVENIRLO: Restringiendo el uso de la función unserialize() y utilizando JSON en su lugar.
4 – Vulnerabilidad de secuencias de comandos entre sitios (Cross-Site Scripting Vulnerability)
Se produce una vulnerabilidad de XSS o Cross-Site Scripting cuando una página web permite a los usuarios agregar código personalizado en la URL.
Un atacante podrá aprovechar la vulnerabilidad para ejecutar código malicioso en el navegador web de la víctima, crear una redirección a un sitio web malicioso o secuestrar la sesión de un usuario.
Hay tres tipos principales de infección de Cross scripting XSS, reflejados, almacenados y basados en DOM
5 – Vulnerabilidad reflejada de secuencias de comandos (Reflected Cross-Site Scripting Vulnerability)
Un XSS reflejado o una secuencia de comandos entre sitios reflejada se produce cuando se envía una secuencia de comandos maliciosa en una solicitud del cliente (Una solicitud realizada por ti en un navegador) a un servidor y el servidor lo refleja y lo ejecuta tu navegador.
COMO PREVENIRLO: Provocando que la codificación de URL se realice antes de insertar datos que no son de confianza en parámetros de la URL. Esta regla puede agregar datos que no son de confianza en el valor del parámetro GET.
6 – Vulnerabilidad almacenada de secuencias de comandos (Stored Cross-Site Scripting Vulnerability)
Una vulnerabilidad Stored XSS o Stored Cross-Site Scripting permite a los piratas informáticos inyectar código malicioso y almacenarlo en el servidor de la página web.
COMO PREVENIRLO: Codifica el HTML antes de agregar datos que no son de confianza en elementos HTML.
7 – Vulnerabilidad de secuencias de comandos basadas en el DOM (Document Object Model-Based Cross-Site Scripting Vulnerability)
Una vulnerabilidad XSS basada en DOM se produce cuando la secuencia de comandos del lado del cliente de una página web muestra datos proporcionados por un usuario en el DOM. De esta form,a la página web leerá el código malicioso del hacker y lo inyectará en el DOM para que sea leído por el visitante.
Si los datos proporcionados por el usuario no se usan correctamente un atacante podría inyectar código malicioso que se ejecutaría cuando la página web sea visitada.
Nota: El Cross-site reflejado y almacenado son problemas del lado del servidor, mientras que el cross-site basado en DOM es un problema del cliente (navegador).
8 – Vulnerabilidad de falsificación de solicitudes entre sitios (Cross-Site Request Forgery Vulnerability)
Una vulnerabilidad CSRF o de falsificación de solicitudes entre sitios se produce cuando un ciberdelincuente engaña a un usuario para que realice acciones no deseadas. Para ello, el atacante falsificará una solicitud del usuario dentro de la página web.
COMO PREVENIRLO: La mayoría de plugins de seguridad tienen defensas de token sincronizadas integradas para protegerse contra un CSRF, y deben usarse.
9 – Vulnerabilidad de falsificación de solicitudes del lado del servidor (Server-Side Request Forgery Vulnerability)
Una vulnerabilidad SSRF o del falsificador de solicitudes del sitio del servidor permite a un atacante engañar a una página web del lado del servidor para que realice solicitudes HTTP a un dominio arbitrario de su elección.
COMO PREVENIRLO: El primer paso para mitigar las vulnerabilidades de la SSRF es validar las entradas. Por ejemplo, si tu servidor se basa en URLs proporcionadas por el usuario para obtener diferentes archivos has de validar la URL y solo permitir hosts de destino que sean de fiar.
10 – Vulnerabilidad de escalamiento de privilegios (Privilege Escalation Vulnerability)
Una vulnerabilidad de escalamiento de privilegios permite a un atacante ejecutar tareas que normalmente requieren privilegios de nivel superior.
COMO PREVENIRLO: Restringir el acceso de administrador a una lista de dispositivos seguros.
11 – Vulnerabilidad de ejecución remota de código (Remote Code Execution Vulnerability)
Una vulnerabilidad de ejecución remota de código o RCE permite a un atacante acceder y realizar cambios en tu página web o servidor.
COMO PREVENIRLO: La forma más fácil de mitigar una vulnerabilidad RCE es validar la entrada del usuario filtrando y eliminando los caracteres no deseados.
12 – Vulnerabilidad de inclusión de archivos (File Inclusion Vulnerability)
Una vulnerabilidad de inclusión de archivos se produce cuando una página web permite al usuario enviar y subir archivos al servidor.
Hay dos tipos de vulnerabilidades de inclusión de archivos, local y remota.
13 – Vulnerabilidad de inclusión de archivos locales (Local File Inclusion Vulnerability)
Una vulnerabilidad LFI o de inclusión de archivos locales permite a un atacante leer y, en ocasiones, ejecutar archivos en el servidor de una página web.
COMO PREVENIRLO: Crea una lista permitida de archivos que se pueden subir a la página, posteriormente utiliza un identificador para acceder al archivo seleccionado y bloquea cualquier solicitud que contenga un identificador no válido.
14 – Vulnerabilidad de inclusión de archivos remotos (Remote File Inclusion Vulnerability)
Una vulnerabilidad de inclusión remota de archivos o RFI permite a un atacante subir un archivo explotando mecanismos de “inclusión dinámica de archivos” implementados en la aplicación de destino.
COMO PREVENIRLO: Crea una lista permitida de archivos que se pueden subir a la página, posteriormente utiliza un identificador para acceder al archivo seleccionado y bloquea cualquier solicitud que contenga un identificador no válido.
15 – Vulnerabilidad transversal de directorio (Directory Traversal Vulnerability)
Una vulnerabilidad de Directory Traversal o File Traversal permite a un atacante leer archivos arbitrarios en el servidor de la página web.
COMO PREVENIRLO: Los desarrolladores pueden utilizar índices en lugar de nombres de archivos al crear plantillas o utilizar archivos de idioma.
16 – Vulnerabilidad de redireccionamiento malicioso (Malicious Redirect Vulnerability)
Una vulnerabilidad de redireccionamiento malicioso permite a un atacante inyectar código malicioso para redirigir a los usuario de la página web hacia otra web.
COMO PREVENIRLO: Podrás protegerte contra los redireccionamientos maliciosos desinfectando las entradas de tus usuarios, validando las URL y obteniendo la confirmación del visitante para todos los redireccionamientos externos.
17 – Vulnerabilidad de entidad externa XML (XML External Entity Vulnerability)
Una vulnerabilidad de entidad externa XXE o XML permite a un atacante engañar a un archivo XML para que transmita información confidencial a una entidad externa bajo su control.
COMO PREVENIRLO: La mejor forma de prevenir XXE es utilizar formatos de datos menos complejos como JSON y evitar la serialización de datos confidenciales.
18 – Ataque por denegación de servicio (Denial of Service Attack)
Un ataque DoS o de denegación de servicio es un intento deliberado de hacer que tu página web no esté disponible para los usuarios saturando tu servidor de tráfico web.
En un ataque de denegación de servicio distribuido DDoS un atacante utilizará múltiples fuentes para inundar la página web de tráfico. Un atacante secuestrará grupos de ordenadores, enrutadores y dispositivos infectados con malware para aumentar el flujo de tráfico.
COMO PREVENIRLO: Hay 2 formas principales de mitigar un ataque DoS: Adquirir recursos adicionales en tu hosting para suplir la demanda causada por un ataque DDos o utilizar un cortafuegos a nivel de servidor como Cloudflare que podrá detectar un pico inusual en el tráfico y evitar que tu página web se sobrecargue.
19 – Registro de pulsaciones de teclas (Keystroke Logging)
El registro de pulsaciones de teclas, también conocido como captura de teclas o captura de teclado, se produce cuando un pirata informático registra de forma encubierta que teclas son las que han sido pulsadas por los usuarios de la página web.
COMO PREVENIRLO: ¡Actualiza todo! Por lo general, un atacante necesitará aprovechar otra vulnerabilidad existente para inyectar un registrador de teclas en tu servidor.
20 – Phishing
El phishing es un método de ataque cibernético que utiliza el correo electrónico, las redes sociales, los mensajes de texto y las llamadas telefónicas para engañar a la víctima con el fin de que este proporcione información personal.
Una vez obtenida esta información el atacante la utilizará para acceder a cuentas personales o cometer fraudes de identidad.
21 – Credenciales débiles (Weak Credentials)
Los usuarios son con diferencia la mayor vulnerabilidad de seguridad de WordPress.
Ten en cuenta que una contraseña débil convertirá tu inicio de sesión de WordPress en una vulnerabilidad fácil de explotar para los piratas informáticos.
COMO PREVENIRLO: La mejor manera de evitar las contraseñas débiles es creando una política de contraseñas fuerte y utilizando la autenticación de dos factores.