Desde el minuto 1 en el que acabas de instalar tu primer WordPress notas que empiezas a recibir comentarios un tanto raros ofreciéndote todo tipo de servicios y productos. Tras googlear un rato, lo solucionas rápidamente con Akismet. Poco después, cuando tu blog empieza a crecer, puede que te encuentres (y es muy posible) con que te han hackeado el sitio web y empezarás a ver páginas que tú no has creado.
Ten en cuenta que aproximadamente el 25% de las páginas web de Internet que se encuentran indexadas por los buscadores son WordPress.
La gran ventaja de WordPress es que se utiliza muchísimo en todo el mundo y cuenta con una gran comunidad de desarrolladores. Esta ventaja es un inconveniente al mismo tiempo, ya que cualquier plugin no actualizado o mal desarrollado puede acarrear un problema de seguridad para nuestro sitio web.
Y no te digo nada si has decidido instalarte un theme nulled, las posibilidades de tener problemas de seguridad aumentan exponencialmente.
Un error muy común que es una puerta abierta de par en par para los crakers es no bloquear los permisos del archivo wp-config.php. Parece una tontería, pero según qué hosting usemos, deberemos dar permisos de lectura y escritura a este archivo para instalar WordPress. Lo mismo ocurre con el archivo .htaccess en los servidores Linux (cuando instalas un plugin de cache, por ejemplo).
Así que recuerda restaurar los permisos a 644 una vez los hayas modificado, porque son los principales culpables de inyecciones SQL que pueden desbaratar todo tu contenido web al completo.
Recientemente recibimos un ataque a nuestros soportes, que si bien era poco agresivo, todavía no sabemos cómo lo han hecho. Básicamente consiste en que cambian la codificación de caracteres de WordPress, pasándolo de UTF-8 a UTF-7, con lo que los acentos, eñes y carácteres especiales no se visualizan correctamente. Además, elimina los widgets la columna lateral e incluye uno propio con un script bastante feo.
Para solucionarlo, basta con ir a Ajustes > Lectura y volver a cambiar a UTF-8 en el campo correspondiente. Al guardar los cambios este campo desaparece por motivos obvios de seguridad, y a continuación borra el widget malicioso y restaura los que tenías.
Si quieres evitarte este y otros problemas, a continuación recopilamos los plugins y consejos de seguridad básicos para tu web en WordPress.
Índice de contenidos
Algunos puntos básicos para tener un WordPress seguro
Descárgate siempre los temas y plugins de sitios oficiales, y como es evidente, utiliza una contraseña fuerte (combinación de letras, números y símbolos), así como mantener tu WordPress y plugins actualizados.
También es importante cambiar las rutas de wp-config y wp-content, ya que es donde tenemos datos de acceso y contraseñas a bases de datos. También deberías proteger tu .htaccess (en este enlace se explica cómo hacerlo).
También deberías hacer copias de seguridad regularmente de tu blog. En este post de wordpress.org te lo explican paso a paso.
Algunos plugins para mejorar la seguridad de tu sitio
All in One WP Security & Firewall
Este plugin combina varias funcionalidades que de normal encontraríamos por separado, como un firewall, antivirus o un auditor de seguridad además de otras funciones.
Con este plugin puedes gestionar el .htacces y el wp-config para hacer más seguro tu sitio web WordPress. Este plugin daría para un post en sí mismo, por lo que puedes acceder a su documentación aquí para enterarte bien de todo lo que ofrece.
UpdraftPlus Backup and Restoration
Como ya hemos mencionado, las copias de seguridad son algo básico sino quieres verte en la situación de perder toda tu información ante un determinado problema. Con este plugin podrás hacer copias de seguridad de tu WordPress en la nube y restaurarlas con un solo click.
Login Ninja
Este plugin lo que hace es añadir un captcha a tu formulario de entrada de WordPress. Además, bloquea direcciones IP que han intentado acceder repetitivamente a nuestro sitio, además de avisarnos de todos los intentos de acceso además de otras muchas funcionalidades. Esto mismo lo hace por defecto el hosting de Wemempresa, y funciona realmente bien sin tener que instalar plugins.
Ithemes Security
El antes conocido como Better WP Security es uno de los plugins de seguridad preferidos por la comunidad. Como “contra” a este plugin tendremos que decir que es bastante difícil de configurar, por lo que puedes liarla bastante si te equivocas con su personalización.
Y tú, ¿cómo proteges tu WordPress?
Un plugin muy bueno también es Wordfence, existe versión gratuíta y versión de pago.
Algo que recalcar, darle a un PHP más permisos que 644, es una locura, un PHP no debe tener jamás ejecución, por lo que NUNCA se deben poner permisos al estilo 755, 777 etc…
A poder ser, el archivo .htaccess, solo tiene que tener acceso el usuario root, y permisos como mucho 444 o 644.
Las inyecciones SQL tampoco vienen por ésto, sino por formularios que se envían y la variable no está bien saneada o la consulta bien escapada, constantemente salen fallos de éste tipo en wordpress.
Lo mejor y aconsejable, es tener siempre instalado las últimas actualizaciones, el código bien cuidado, e instalar sistemas anti instrusión (un WAF por ejemplo), o sistemas de baneo automático por fuerza bruta (fail2ban) entre otras cosas.
También se puede cambiar la ruta por defecto para hacer login, etc…
Lo del ataque para cambiar la codificación de la base de datos, es bastante simple y es una vulnerabilidad en un plugin de WordPress, esto entre otras cosas, permitía que se ejecutara código Javascript porque al cambiar el collation WordPress no escapaba bien las querys.
En fín, WordPress si no se fortifica bien, es un auténtico coladero, al igual que Joomla y otros CMS.
Un saludo
Muy buena aportación Juanan, gracias por pasarte y comentar!
La verdad es que después del caso de los papeles de Panamá, muchos se habrán puesto las pilas tapando agujeros de WordPress 😛
Un saludo!