WordPress in jail. Securizar Nuestro Sitio Web
Antonio Froufe Gutierrez Colaboraciones 27/09/2018
Se ha realizado una estimación de que tan solo el 45% del tráfico de una página WEB es lícito, el resto es debido a bots, herramientas de piratería y spam. También se calcula que uno 30.000 sitios son vulnerados diariamente lo que se traduce en la importancia de implementar nuestro sitio de la manera lo más segura posible. De cómo poder realizarlo en WordPress vamos a tratar en este artículo.
Que existan mucho sitios WordPress vulnerados no es debido a la creencia de que esta tecnología sea insegura, es debida a fallos en la configuración por parte de los administradores.
Lo primero que se debería tener en cuenta es elegir bien los complementos a utilizar en nuestro proyecto, ya que de no hacerlo de su sitio oficial (WordPress.org), podríamos estar utilizando un plugin vulnerable con código malicioso, creado por un ciberdelincuente para realizar sus actividades malintencionadas. Esta sería una de las vulnerabilidades más presentes, pero también lo son nombres de usuario y contraseñas deducibles además de no mantener nuestro software debidamente actualizado.
Medidas a seguir para que nuestro sitio WordPress sea más seguro:
Realiza una copia de seguridad. Lo primero que tenemos que tener en cuenta es tener un respaldo, de esta manera tendríamos los archivos necesarios para poder replicar nuestro sitio nuevamente. Existen multitud de herramientas para poder realizar nuestra copia de seguridad de forma sencilla, simplemente haciendo una búsqueda en internet. Hay que tener muy en cuenta no hacer una copia de segurida parcial (solo de la base de datos), esta copia debe de ser completa para evitarnos importantes sustos.
Tener una contraseña segura. Teniendo una contraseña robusta tenemos una gran base para empezar a implementar las demás medidas de seguridad. Hay multitud de recomendaciones para tener una contraseña segura, como son incluir número y signos especiales, alternar mayusculas con minusculas pero la mas importante de todas es que sea lo más larga posible como por ejemplo una frase pero sin palabras clave (nombre, edad, años etc). WordPress contiene una herramienta que genera contraseñas seguras si se necesita que se puede encontrar dentro del perfil de usuario.
Nombres de usuario. La otra parte de la ecuación a la hora de autenticarse para acceder a nuestro sitio y así evitar que los ciberdelincuentes puedan acceder de manera maliciosa, es elegir bien el nombre de usuario, puesto que se deben de conocer ambos si se quiere acceder al panel de administración. Cuando se instala WordPress el nombre de usuario por defecto es admin algo que es sobradamente conocido por todo el mundo y que no se suele cambiar por comodidad, pero que estamos ofreciendo a alguien malicioso la mitad del acceso a nuestro sitio. Con lo cual es necesario cambiarlo, para ello se debe de elegir uno siguiendo los mismo criterios que para las contraseñas.
Controlar el contenido publicado. Es muy importante conocer el contenido de lo que publicamos en nuestra página, es de lógica no publicar código del que no se confíe plenamente en la fuente del mismo, puede contener código malicioso. Si permitimos a otros usuarios publicar en nuestro sitio se debe verificar el contenido de la publicación. Si se permiten comentarios no validarlos inmediatamente, puesto que pueden contener código incrustado que podría ser malicioso.
Roles de usuario. Hay que tener especial cuidado con los permisos que se le dan a los usuarios registrados, para que en caso de registrarse un alguien con malas intenciones no pueda hacer mucho daño. Las opciones son dentro del menú ajustes generales:
-
-Suscriptor, tan solo administrar su perfil.
- -Colaborador, puede escribir publicaciones pero no publicarlas.
- Editor, puede escribir, publicar y administrar cuentas.
- Administrador, acceso completo al sitio.
De entre todas las posibilidades siempre se debe escoger la del mínimo privilegio posible con el que se pueda realizar las funciones que necesita cada usuario.
Comentarios spam. Es una práctica habitual y además buena práctica permitir comentarios, puesto que a los buscadores les gusta y nos será de gran utilidad a la hora de elevar puestos en ellos, pero hay que tener especial cuidado porque un ciberdelincuente los puede aprovechar para realizar acciones delictivas. Por lo que no se debe configurar nuestro sitio para que acepte comentarios de forma automatizada, siempre se debe de hacer de forma manual.
Limitar intentos de logging. Debe de limitarse la cantidad de veces que puede un usuario introducir usuario y contraseña con la intención de acceder al sistema, puesto que una práctica habitual de los delincuentes es realizar ataques de fuerza bruta. Este tipo de ataques tratan de conseguir acceso a base de probar de una forma extremadamente rápida multitud de contraseñas hasta que dan con la válida, todo realizado con un software programado a tal efecto. Si nosotros limitamos por ejemplo a 3 veces y un determinado tiempo esos intentos de accesos evitaremos esa práctica. Para realizarlo podemos utilizar los plugins Limit Login Attempts y Login LockDown.
Segundo factor de autenticación. El tener un segundo requisito para poder acceder al sistema, es una buena medida de seguridad, puesto que dificultan de manera exponencial
el que alguien pueda acceder o elevar privilegios sin que deba de tener dicho acceso. Una manera de hacerlo sería que una vez introducimos usuario y contraseña válido, se nos envía a nuestro teléfono móvil un mensaje con un código el cual tengamos que introducir para autenticarnos. Una forma de poder implementar este sistema en WordPress es con el repositorio de plugins para Google Authenticator que se puede descargar desde la siguiente URL.
Proteger pagina de inicio de sesión. Esta página es la puerta de entrada principal a nuestro sitio, con lo cual es lógico que le pongamos una protección extra. Esta protección se puede realizar implementando multitud de medidas, como pueden ser cambiarle el nombre, introducir un captcha o bloquear ciertas direcciones IP que pudieran intentar comprometerla, como se explica en el siguiente tutorial.
Utilizar métodos de cifrado. La información importante como puede ser toda la relacionada con los usuarios debe de estar debidamente cifrada, para que el caso de que un pirata informático tuviera acceso al sistema, no pueda leer la información en ella contenida. Dependiendo del tipo de base de datos que utilicemos tendría una forma u otra en este tutorial se propone un método en el caso de que nuestra base de datos sea MySQL.
Alojamiento WEB. No se suele pensar que uno de los mayores peligros de nuestro sitio pueda ser la empresa de hosting que elegimos. Por ejemplo si eligiéramos un alojamiento barato puede conllevar a que la tecnología utilizada en los servidores sea antigua u obsoleta lo cual perjudica seriamente la seguridad. La seguridad en definitiva cuesta dinero si nuestro alojamiento es demasiado barato seguramente sea en detrimento de la misma. A la hora de elegir el hosting debemos de informarnos de las medidas de seguridad y la tecnología que se utiliza antes de contratar el servicio.
Permisos en los archivos. Los archivos en los servidores al igual que los PC contienen un serie de permisos (acceder, leer y escribir), para dar estos permisos debemos seguir el principio de mínimo privilegio, para que en caso de que un usuario indebido acceda al sistema no pueda acceder a los archivos y comprometer la información.
Configurando la seguridad:
Menú cuentas de usuario:
En la pestaña nombre de usuario de WP hay que asegurarse de no configurar usuarios con el nombre de admin.
Menú de acceso de usuario:
- En la pestaña Bloqueo de inicio de sesión, habilite el Bloqueo de inicio de sesión.
- En la pestaña Forzar sesión, active Force WP User Logout.
Menú de registro de usuario:
- En la pestaña Aprobación manual, habilite la aprobación manual de nuevos registros.
2.En la pestaña Captcha de registro, habilite Captcha en la página de registro.
Seguridad de la base de datos:
1.En la pestaña Prefijo de DB, asegúrese de no estar usando el wp_ predeterminado como prefijo de su tabla.
2.En la pestaña Copia de respaldo de BD, habilite copias de seguridad automáticas.
Seguridad del sistema de archivos:
1.En la pestaña Permisos de archivos realice las acciones recomendadas.
2.En la pestaña Edición de archivos PHP, deshabilite la capacidad de editar archivos PHP.
3.En la pestaña Acceso a archivos WP, evite el acceso a los archivos de instalación predeterminados de WP.
Firewall:
1.En la pestaña Reglas básicas del firewall, habilite la protección básica del firewall.
2.Habilite el acceso de bloque al archivo debug.log.
3.En la pestaña Reglas adicionales del firewall, habilitar Deshabilitar vistas de índice.
4.Habilite el Deshabilitar rastreo y seguimiento.
5.Habilitar la publicación de comentarios de proxies prohibidos.
6.Habilite el Habilitar filtro de cadena de caracteres avanzado.
7.En la pestaña 6G Blackwall Firewall Rules, marque la opción Habilitar protección Firewall 6G.
8.En la pestaña Bots de Internet, habilite la opción Bloquear Googlebots falsos.
9.En la pestaña Evitar enlaces activos, habilite la opción Prevenir interconexión de imágenes.
10.En la pestaña Detección 404, marque la opción Habilitar Detección y Bloqueo de IP 404.
Protección Contra fuerza bruta:
1.En la Prevención de fuerza bruta basada en cookies, realice la prueba de cookies para asegurarse de que su sitio pueda usar este método de protección. Si puede, ingrese una Palabra secreta y luego active Prevención de ataque de fuerza bruta en esta pestaña. Si no puede, vaya a la página Cambiar nombre de inicio de sesión.
2.En la pestaña Login Captcha, habilite cualquiera de los captchas que quiera usar.
3.En la pestaña Honeypot, marque la opción Habilitar Honeypot en la página de inicio de sesión.
Prevención contra SPAM:
1.En la pestaña Comment Spam, marque la opción para habilitar Captcha On Comment Forms. Marque la opción Bloquear Spambots para no publicar comentarios.
2.En la pestaña de Supervisión de IP de SPAM de correo electrónico, marque la opción para habilitar Bloqueo automático de IP de comentario de SPAM. Te recomiendo que ingreses un número bajo en el cuadro Número mínimo de comentarios SPAM.
Conclusiones.
Actualmente una gran cantidad de sitios están creados con WordPress, eso puede ser malo desde el punto de vista de seguridad, puesto que los piratas informáticos estarán más interesados en romperla, pero como en las demás tecnologías si cuidamos su configuración conseguiremos ponérselo mucho más difícil, ya que como se suele decir la seguridad absoluta no existe pero si unos valores de la misma bastante razonables, espero que estas recomendaciones os sean de gran utilidad.
Referencia.
WordPress Security 2017 for Webmasters. Dr Andy Williams. https://www.amazon.it/Wordpress-Beginners-2017-Step-Step-ebook/dp/B01M7YERUP