Seguridad para WordPress

Seguridad para WordPress

  • Autor de la entrada:
  • Categoría de la entrada:Blog

Uno de mis ámbitos de trabajo en mi pasado fue la seguridad precisamente en páginas web. Aunque se puede extender también hacia otros ámbitos más generales, como la protección frente a amenazas de mayor impacto, como por ejemplo ataques de DDoS o exploiter que hacen saltar tu instalación, troyanos y virus (la culpa la tuvo el chachachá y un poquito Windows), es cierto que construí todo un sistema y logré automatizarlo para buscar vulnerabilidades a través de un sistema.

Por eso mucha gente ya me pregunta directamente que WordPress, el gestor de contenidos, es una chapuza y que el tema de seguridad no está nada bien contemplado. Bueno, maticemos un poco, desde mi experiencia como programador y técnico de seguridad puedo comentar varias cosas:

  • Es bastante cierto que WordPress no ha empezado su andadura siendo un sistema especialmente bien programado.
  • Bastante cierto es también que la seguridad de WordPress en muchos años ha dejado que desear.

Así pues, ¿por qué realizas páginas web en WordPress? Pues porque las cosas cambian, afortunadamente para WordPress su crecimiento y su arquitectura le han permitido crecer de manera exponencial y es gracias a su sistema algo dudoso que pudo incluir los famosos plugins y temas, haciendo de este sistema algo torpe en uno altamente eficiente.

Y la eficiencia ha traído la reprogramación de muchas partes que, ahora sí, se han tornado mucho mejor programadas y su estructura permite realizar grandes cosas.

Y aquí quiero hacer hincapié en el modelo de plugins, que si bien es su gran potencial, también es su gran punto débil. Esa facilidad para tener plugins tambien lo convierte en un punto especialmente crítico en cuanto a seguridad, no entraré en detalles respecto a la programación.

La realidad es que ahora WordPress resulta un sistema muy económico para tener una web sin apenas tener que programar una sola línea de código. Y, por fortuna, su punto débil puede solucionarse precisamente gracias a algunos plugin.

No voy a hacer un recorrido extenso sobre los diferentes plugin que existen en el mercado o perderme en relaciones abstractas de los posibles ataques, si no que, plugin en mano totalmente gratuito y del que no me llevo ninguna comisión ni ningún beneficio crematístico, voy a señalar algunos puntos mientras los solucionamos.

El plugin que yo uso se llama “All-in-one WP Security & Firewall”:

Link al Plugin de WordPress.

La pinta del plugin es más o menos esta, desde nuestro escritorio.

Veréis que tiene como un potenciómetro que nos indica, estilo gamificación, el nivel que él considera en el que está tu web. Obviamente aquí podemos intentar llegar hasta el final, pero va a depender mucho de las características de tu web, como quieres que funcionen las cosas, etcétera.

Se divide en cuatro niveles muy específicos, algo así como áreas que necesitas mejorar en los aspectos. No estoy ni a favor ni en contra de esto, es como organiza sus tareas. Lo suyo sería tener todos a ON, aunque cuando lo instaléis, obviamente lo vais a tener a OFF.

En primer lugar, ¿de qué nos advierte el plugin? De que el nombre de usuario que tenéis configurado es el que está por defecto como “admin”. Esto da muchas pistas a los que os quieran robar las contraseñas, pues ya saben que vuestro usuario es “admin”, así que mejor no ahorrarles trabajo y cambiar el usuario a otro que no sea “admin”. ¿Por qué? Pues porque pueden descargar lo que se llama un “diccionario” y a través de un bot (robot que emula a un usuario) probar miles de contraseñas o combinaciones hasta acertar.

Ahí vamos derechos al segundo paso que deberíamos tener: una contraseña segura. ¿Qué es una contraseña segura? Una contraseña que no signifique nada y sea difícil de reproducir. Ejemplo:

{Ayx”\dTl+rsw;Lmi

Sí, me vais a decir lo que estáis pensando: “Hombre, Fede, de esta contraseña no me voy a acordar nunca en mi vida”. Pero la seguridad no es fácil, como todo en esta vida cuesta esfuerzo 🙂 Para eso están los gestores de contraseñas:

https://www.xataka.com/basics/gestores-contrasenas-que-cuales-populares-como-utilizarlos

Para generarlos también podéis usar esta herramienta online:

https://www.clavesegura.org/es

Vamos con la segunda, el bloqueo de acceso. Esta es muy interesante ya que va a ahorraros un sinfín de problemas a la hora de tener que batallar con usuarios y es que, como en todo buen sistema de usuarios, este es precisamente uno de los puntos básicos de los ataques de los hackers.

Podremos:

  • Bloquear accesos a una dirección IP si ha intentado más de N intentos: es decir, como complemento al anterior punto, nos permitirá que si alguien intenta entrar en nuestro portal como usuario mediante fuerza bruta se le bloquee y no pueda seguir intentando.
  • Ver Registro de accesos fallidos: ver cómo están intentando entrar.
  • Forzar desconexión al cabo de N minutos.
  • Ver Registros de actividad.
  • Ver Usuarios conectados.

Obviamente, nos daremos cuenta de que hay efectos adversos, como que un usuario de verdad se equivoque al entrar su contraseña y lo bloqueemos.

Ya habréis visto que su “puntuación” va en función de lo que vayas señalando. No os fijéis mucho en eso y si no entendéis algo NO le deis clic.

Permisos de archivo.

Cuando lleguéis a esta pantalla bastara que les otorguéis a los siguiente archivos las acciones que os recomiendan en la parte derecha, hasta que os salga que no requiere de ninguna acción, como en esta web. Si tenéis interés en saber qué significan esos números 0755 o 0644, son los permisos de archivos en Linux y es un tema que podéis abordar aquí (un tema algo más complejo si no eres técnico):

https://www.solvetic.com/tutoriales/article/1458-entender-los-permisos-linux-chmod/

La siguiente sección es la del cortafuegos (firewall en inglés) donde vamos a poder establecer una serie de reglas básicas para que nuestro sistema y nuestros plugins especialmente, sean menos vulnerables a ataques de muy diversa índole y que enumero: SQL Injection, Cross Site Scripting (XSS), HTML injection, Frame injection, CSRF, etcétera. Si me pongo a explicar cada uno aquí no acabamos nunca, pero básicamente cada uno se refiere a la “Inyección de código con fines deshonestos” como poder sacar datos de usuarios de vuestra base de datos, intentar que borres datos de tu cuenta sin quererlo, etcétera.

Cuidado aquí con señalar el apartado de Protección de vulnerabilidades XMLRPC y pingback de WordPress, porque hay muchas aplicaciones que usan esta propiedad del sistema que no es más que otra puerta de entrada para otras aplicaciones. Efectivamente, como toda puerta de entrada se encuentran entre los objetivos de ataques más comunes.

Este plugin tiene más funcionalidades que podéis encontrar en el menú lateral, aunque yo os he listado los más comunes también podríamos:

  • Cambiar el prefijo con el que se crean las tablas de la base de datos: habitualmente es wp_ pero nos recomiendan cambiarlo a, por ejemplo: xjfks_. ¿Por qué? Porque estamos, de nuevo, poniéndoles las cosas difíciles a los hackers que hayan podido traspasar alguna barrera de entrada y estén por nuestra base de datos.
  • Administrador de una lista negra por IP.
  • Prevención de SPAM con el llamado captcha que muchos ya conoceréis (y odiaréis).
  • Poner la web en modo mantenimiento.
  • Etcétera.

Otro plugin que os recomiendo muy encarecidamente, sobretodo si tenéis muchos usuarios y comentarios, es:

https://akismet.com/

Es gratuito si lo usáis para vuestra web personal y sin intención comercial. Es cosa fina para el SPAM.

Por cierto, si este tema os interesa, también podéis daros de alta en “Unaaldía” de hispasec, donde cada día revelan un problema de seguridad a nivel global y, entre ellos, los grandes problemas de WordPress:

Una al día de Hispasec, fundamental.

Ya me contaréis si usáis alguno de estos plugins y, ¡avisadme si de repente vuestro sitio deja de funcionar! A veces pasa que entra en conflicto con alguna configuración de servidor y…

¿Ha sido útil esta entrada?

Puntúala

Promedio de puntuación 5 / 5. Recuento de votos: 1

Todavía no hay votos, sé el primero.