Algunas de las cosas que hacen grande a Wordpress son también la que le hacen objeto de gran cantidad de ataques y vulnerabilidades. Para empezar es uno de los sistemas más usados del mundo para la creación web y su popularidad lo convierten en un blanco apetecible: el 43% de Internet está creado con WordPress (ya sean blogueros o pequeños negocios como empresas de la lista Fortune 500).
Además, se trata de un sistema de código abierto que permite que se implemente constantemente funcionalidades nuevas y a medida, pero esta misma flexibilidad lo hacen más vulnerable ya que todos esos cambios, instalaciones de plugins y temas, etc, a menudo dejan grietas las que se cuelan los hackers.
El principal problema (y por lo tanto, la principal solución) es la actualización del software, que debe ser prioridad para mantener una web segura. Preocuparse de comprobar que tanto la versión de Wordpress como los plugins y los temas estén debidamente actualizados, lejos de ser una pérdida de tiempo, es la mejor manera de proteger tu página.
Además, en este post te contamos las principales vulnerabilidades de Wordpress y cómo solucionarlas para que lo añadas a la lista de tareas de mantenimiento (además de las imprescindibles actualizaciones).
1. Omisión de la autentificación del usuario
También llamado “Authentication Bypass” que es cuando un atacante consigue saltarse el proceso de autentificación y accede al gestor sin haber necesitado la clave al logarse. Así puede entrar en el Wordpress como administrador tranquilamente y hacer lo que quiera.
Para prevenirlo se puede usar un método de verificación con dos factores, así será más complicado de conseguir y también servirá para disuadir al atacante y que se vaya a hackear otra web menos segura.
2. Credenciales débiles
Nada más sencillo para un hacker que el usuario tenga claves débiles, por eso muchas veces nos obligan a cambiar incansablemente las claves de acceso de todo tipo de sitios. Aunque parezca mentira, este fallo es la mayor vulnerabilidad de Wordpress.
Lo bueno es que prevenirlo es muy sencillo, por un lado olvídate de las contraseñas tipo “1234” y utiliza contraseñas fuertes y puedes además usar la identificación de dos factores como te recomendamos para el problema de Authentication Bypass.
3. Secuencias de comandos entre sitios
También conocido como “vulnerabilidad de XSS o Cross-Site Scripting” es uno de los problemas más habituales en Wordpress. Se da en webs que permiten a los usuarios agregar código personalizado en la URL. En este tipo de ataques el hacker carga un código JavaScript malicioso en el navegador web de la víctima y con ello puede secuestrar la sesión de un usuario o crear una redirección a un sitio web malicioso, entre otras cosas.
Hay tres tipos principales de infección de Cross scripting XSS: reflejados, almacenados y basados en DOM.
Un XSS reflejado se produce cuando se envía una secuencia de comandos maliciosa en una solicitud del cliente a un servidor y el servidor lo refleja y lo ejecuta en tu navegador. Esto se previene haciendo que la codificación de url se haga antes de meter datos que no son de confianza.
Cuando esta vulnerabilidad es de datos almacenados, la diferencia es simplemente que el código malicioso que introduce el pirata se almacena en el servidor. Como método de prevención codifica el HTML antes de introducir cualquier dato que no sea de confianza.
Y por último, su la vulnerabilidad de datos está basada en DOM, lo que ocurre es que la secuencia de comandos del lado del cliente de una página web muestra datos proporcionados por un usuario en el DOM. Lo que esto provoca es que la web lee el código malicioso y lo inyecta en el DOM para que el visitante lo lea. La principal diferencia con los dos otros casos de vlneración de datos es que en los anteriores el problema está en el servidos mientras que en este está en el DOM del cliente.
4. Ataques DoS
El ataque DoS de de denegación de servicios es tiene como objetivo saturar tu web para que no esté disponible. La mayoría de los que uséis mucho la web os habréis cruzado alguna vez con este problema. El sistema es tan sencillo como realizar un gran volumen de solicitudes a un servidor web para hacerlo lento y que finalmente se bloquee.
Es difícil contener este tipo de ataques con técnicas convencionales pero te proponemos dos maneras: Adquirir recursos adicionales en tu alojamiento para poder soportar la demanda causada por este tipo de heckeo o utilizar un cortafuegos a nivel de servidor que detecte un pico inusual en el tráfico.
5.Vulnerabilidad de puerta trasera
Esto significa que el pirata aprovecha un huequito para entrar, una puerta de atrás (backdoor). Ocurre cuando hay una grieta el sistema, el pirata se mete eludiendo las medidas de seguridad y consiguiendo acceso de alto nivel ya sea a la web o al servidor.
Esto puede acarrear graves problemas pero muchas veces se puede evitar simplemente configurando bien las medidas de seguridad de la web y por supuesto manteniendo actualizados todos los plugins, temas y nuevas versiones.
6. Inyección de PHP infectado
El procedimiento es que un hacker envía un código PHP malicioso a tu Wordpress y lo publica generalmente a través del método post. Sencillo pero eficaz para el pirata.
Para evitarlo te recomendamos restrringir el uso de la función unserialize() y sustituirlo por JSON.
7.Falsificación de solicitudes entre sitios
Se produce cuando el atacante convence a un usuario para que realice acciones no deseadas falsificando una solicitud del usuario dentro de la web.
Casi todos los plugins buenos de seguridad tienen defensa para ese tipo de ataques también llamados CSRF (Cross-site Request Forgery Vulnerabilitu), así que utiliza uno para tu Wordpress.
8.Escalamiento de privilegios
Este tipo de vulnerabilidad permite que a un hacker realizar tareas que requieren generalmente privilegios de nivel superior, dejando tu Wordpress a su mercé.
Para tratar de prevenirlo restringe la posibilidad de acceder como administrador a una lista controlada de dispositivos que consideres seguros.
9.Falsificación de solicitudes del lado del servidor
La vulnerablidad SSRF (Server-Side Request Forgery Vulnerability) se da cuando un hacker engaña a una web del lado del resvidor para que haga peticiones http a un dominio arbitrario.
Para tratar de evitar este tipo de vulnerabilidad hay que validar las entradas. Una forma de hacerlo es por ejemplo si tu servidor está basado en urls proporcionadas por los usuarios, tendrías que validar dicha url y permitis únicamente hosts de destinos que consideres que son seguros.
10.Ejecución remota de código
Denominada RCE (por sus siglas en inglés Remote Code Execution), esta vulnerabilidad se da cuando un atacante entra a tu servidor o web y realiza cambios.
Una manera poco complicada de prevenirlo sería obligar a la validación de la entrada del usuario eliminando y filtrando caracteres no deseados.
11.Inclusión de archivos
Esta vulnerabilidad se da cuando una web permite que los usuarios envíen y suban archivos al servidor. Este fallo de seguridad se da de dos tipos: local y remoto.
Cuando es local el atacante puede leer e incluso ejecutar archivos en el servidor de una página web.
Cuando es remoto el hacker sube un archivo que explota mecanismos de inclusión dinámica implementados en la aplicación de destino.
Para prevenir la vulnerabilidad de inclusión de archivos tanto local como remota puedes crear una lista de archivos permitidos que sean los que se puedan subir a la web y luego usa un identificador para acceder al archivo seleccionado de manera que puedas bloquear las peticiones con un identificador no válido.
12.Phishing
Es uno de los ataque más habituales últimamente y no sólo afecta a Wordpress, sino a todo tipo de sistemas. Generalmente el ataque se produce a través de correo electrónico, redes sociales, mensajes de texto y hasta llamadas telefónicas de manera que consiguen engañar a la víctima para conseguir información personal y de claves que le dan acceso a las cuentas, suplantar la identidad, etc.
Con esto pueden entrar en Wordpress y en muchos sitios más y la forma de prevenirlo es la prudencia y el sentido común.
13.Registro de pulsaciones de teclas
Este ataque también llamado “Keystroke Logging” consiste en la captura de forma encubierta de las teclas que has utilizado en el teclado.
Prevenirlo es sencillo porque para que un hacker inyecte un registrador de tecclas necesita aprovechar una vulnerabilidad en el sistema, así que evítalo no dejando grietas manteniéndolo todo perfectamente actualizado.
Estos son sólo algunos de los problemas de seguridad más comunes que podemos encontrar en las webs de Wordpress, pero existen muchos más. No es fácil mantenerse a salvo todo el tiempo pero te recomendamos que tengas en cuenta todas estas vulnerabilidades e implementes medidas de seguridad para prevenirlas y evitar daños mayores. Y si te parece demasiado complejo o trabajoso, siempre es rentable contar con un profesional para hacerlo porque la prevención puede ahorrarte mucho tiempo, dinero y dolores de cabeza si al final tu web acaba siendo víctima de un hackeo.