Mejores prácticas de seguridad de WordPress

Publicado: 2022-03-10

Hay muchos mitos y FUD (miedo, incertidumbre y duda) sobre la seguridad de WordPress. Y hay mucho que considerar al fortalecer un sitio web contra posibles ataques. Entonces, ¿cómo pueden las empresas aprender las mejores prácticas de seguridad de WordPress que les brindarán la mejor protección web posible?

La semana pasada, organicé una conversación de seminario web para desmitificar las preocupaciones de seguridad de WordPress. Me acompañaron en la sesión Ayush Malakar (desarrollador de WordPress y de pila completa en Fresh Consulting) y Sean O'Shaughnessy (jefe de Ingeniería de Soluciones VIP de WordPress).

A través de cuatro preguntas orientadoras, estos dos expertos exploraron las mejores prácticas de seguridad que los desarrolladores, administradores, propietarios de sitios y ejecutivos deben tener en cuenta. Recapitulemos lo que hablamos.

¿Es seguro el software de código abierto?

No todo el código abierto se crea igual. Pero como WordPress existe desde hace 18 años y funciona en más del 40 % de los sitios web del mundo, está claro que la adopción está creciendo. Pero incluso con el software de código abierto más popular del mundo surgen dudas sobre sus vulnerabilidades de seguridad. ¿No es todo ese código, a la intemperie, vulnerable a los ataques?

No necesariamente, dice Ayush: "Dado que tenemos tantos ojos mirándolo, es más seguro".

Aunque pueda parecer contradictorio, el software de código abierto en realidad puede ser más seguro que el software propietario de código cerrado. Este es el por qué.

Más ojos sobre amenazas potenciales

Dado que el código abierto opera al aire libre, no hay nada que ocultar. Muchos desarrolladores de la comunidad lo están analizando y realizando actualizaciones, lo que inspira seguridad y confianza. Si se encuentra una vulnerabilidad, se repara lo antes posible, a menudo en uno o dos días.

Pruebas continuas de código y recompensas por errores

Cualquiera puede contribuir a WordPress, y el código es probado por la comunidad de miles de colaboradores principales de WordPress. Como el código se prueba continuamente, es cada vez más fiable.

Además, los programas de recompensas por errores alientan al público a encontrar agujeros y vulnerabilidades, incluidos ataques de fuerza bruta, DDoS, phishing y más.

Actualizaciones de seguridad

Cuando ocurren actualizaciones de seguridad, corresponde a los desarrolladores de sitios web asegurarse de que el código central se mantenga actualizado y protegido contra los últimos vectores de ataque. Las actualizaciones automáticas también están disponibles y los desarrolladores empresariales deben considerar si estas son la opción correcta para cada proyecto.

¿Mi código es seguro?

El núcleo de WordPress es solo uno de los "cubos" de código que componen un sitio web de WordPress. Sobre el software desarrollado por la comunidad se encuentra el código de aplicación de un sitio web: su tema o interfaz y complementos.

Si bien el código central de WordPress de código abierto es desarrollado por la comunidad, el código de aplicación escrito o implementado en sitios web individuales también puede presentar vulnerabilidades de seguridad.

Hay varias medidas que puede tomar para asegurarse de que el código de su aplicación esté lo más protegido posible contra los ataques. Si bien puede tomar diferentes decisiones para diferentes proyectos, según el nivel de riesgo aceptable, lo más importante es conocer los posibles vectores de ataque.

Aquí, nuestros expertos en seminarios web tienen algunos consejos.

Herramientas para la seguridad de WordPress

Hay varias herramientas que los desarrolladores pueden emplear para ayudar a identificar fallas de seguridad tanto en el código de origen como en el de terceros.

“Cada vez que hablamos de herramientas, debemos comprender cuáles son los pros y los contras de estas herramientas y cómo debemos usarlas mejor para nuestro beneficio”.

— Ayush Malakar, Fresh Consulting

Estas herramientas pueden realizar análisis de código estático o dinámico. El análisis estático se realiza sin ejecutar nada del código y, por lo general, puede detectar alrededor del 85 % de las fallas en el código. El análisis de código dinámico se basa en estudiar cómo se comporta el código durante la ejecución y tiene la capacidad adicional de encontrar problemas de seguridad causados ​​por la interacción del código con otros componentes del sistema, como bases de datos SQL, servidores de aplicaciones o servicios web.

Es importante sopesar los beneficios de los humanos frente a las máquinas que realizan este análisis de código. El aprendizaje automático (ML) y la inteligencia artificial (IA) se pueden utilizar como primera línea de defensa para garantizar que se identifiquen los valores comunes. Pero también tiene valor tener una mirada humana al código después. Esto garantiza que los humanos puedan trabajar en diferentes aspectos, como la vulnerabilidad basada en características, los casos extremos, etc.

Algunas herramientas que recomiendan nuestros expertos:

  • WPScan es una herramienta CLI que los desarrolladores pueden usar para escanear su código en busca de agujeros de seguridad. Ayush recomienda que los desarrolladores ejecuten esto en un trabajo cron.
  • PHP_CodeSniffer (PHPCS) inspecciona el código y resalta los problemas que van desde la sintaxis hasta las vulnerabilidades de seguridad. Hay un conjunto de estándares específicos para WordPress. Esto se puede configurar para ejecutarse en una canalización de integración continua (CI) y se ejecuta en todos los repositorios VIP de WordPress.
  • Sonar Cloud, utilizado por Fresh Consulting para el análisis de código estático, escanea el código PHP y JS en busca de vulnerabilidades y una implementación más segura.

“¿Estamos haciendo la cantidad correcta de validación de entrada? ¿Estamos desinfectando adecuadamente cualquier tipo de salida que vamos a tener dentro de nuestro código?

— Sean O'Shaughnessy, VIP de WordPress

Complementos de seguridad y WordPress

Al elegir complementos de terceros, busque un complemento que tenga buenas críticas y calificaciones, una gran cantidad de descargas y flexibilidad para usar en su sitio web. Asegúrese de que el complemento esté actualizado y sea compatible con la última versión de WordPress.

No use un complemento que pueda escribir usted mismo. Especialmente en los casos en los que solo se necesita una pequeña cantidad de código, escriba este código en su tema en lugar de usar un complemento. Eso asegurará que no se introduzcan vulnerabilidades al actualizar el complemento.

“Lo que recomendaría es escribir el código dentro del tema en sí, porque lo que he visto en el pasado son complementos que hacen un trabajo mínimo para realizar actualizaciones. Y es probable que, a medida que la tecnología evolucione, esos complementos no lo hagan. El potencial de esos complementos que introducen vulnerabilidades podría ser mayor de lo que anticipamos”.

— Ayush Malakar, Fresh Consulting

Como siempre, es importante mantener el código actualizado. Esté atento a las actualizaciones del núcleo y de los complementos, y mantenga actualizados WordPress, los complementos y los temas.

Puntos finales de seguridad y WordPress

XML-RPC y la API REST son puntos finales que utiliza WordPress para comunicarse con otros sistemas o con el front-end de una aplicación. Es importante comprender estos puntos finales y saber si serán importantes para su aplicación, ya que son posibles vectores de ataque que se pueden desactivar si no se necesitan.

XML-RPC como potencial vector de ataque

XML-RPC es una especificación que permite la comunicación entre WordPress y otros sistemas. En las primeras versiones de WordPress, XML-RPC estaba desactivado de forma predeterminada. Pero desde la versión 3.5, se ha habilitado de forma predeterminada. La razón principal de esto fue permitir que la aplicación móvil de WordPress se comunique con su instalación de WordPress.

La API REST como potencial vector de ataque

Asegúrese de utilizar las mejores prácticas de seguridad cuando utilice la API REST de WordPress. Si bien es posible que las empresas deban mantenerlos abiertos, por ejemplo, en una arquitectura sin cabeza donde el contenido debe fluir a una interfaz desacoplada, asegúrese de que los que quedan expuestos tengan la autenticación y autorización adecuadas.

“Tienes este castillo, WordPress, tu aplicación, y tener la presencia de un puente levadizo no hace que tu aplicación sea inherentemente segura. Pero es una avenida. Es una forma de entrar en ese castillo. Por lo tanto, tener una buena comprensión, conocimiento y contabilidad de esas cosas es definitivamente vital para tener una mejor postura con respecto a la seguridad de su aplicación”.

— Sean O'Shaughnessy, VIP de WordPress

¿Es seguro mi alojamiento?

Hay muchas consideraciones que hacer al determinar si su host es lo suficientemente seguro para sus necesidades. Es una buena idea considerar todas las opciones de seguridad disponibles y no olvidar la importancia de un soporte rápido en caso de emergencias, como la actualización de un complemento que provoca un incidente de seguridad.

“¿Su proveedor de alojamiento ofrece soporte rápido y proactivo? Además, ¿cómo responden cuando se publican vulnerabilidades de aplicaciones o complementos?

— Sean O'Shaughnessy, VIP de WordPress

En general, busque una plataforma que considere albergar una responsabilidad compartida. Algunas características a considerar incluyen:

Permisos del sistema de archivos

Algunos hosts ofrecen un sistema de archivos de solo lectura, en lugar de poder escribir archivos. Esto evita que los usuarios de procesos web puedan escribir archivos en todas partes, cerrando un potencial vector de ataque.

Contenedorización

Busque un host que aísle los recursos de su sitio de los sitios web de sus otros clientes. Si bien esta no es una medida de seguridad integral, la contenedorización proporciona una medida básica de seguridad. Como beneficio adicional, también permite recursos dedicados para la escalabilidad horizontal o incluso vertical.

Control de versiones

Cuando una plataforma de alojamiento de WordPress bloquea SFTP y permite actualizaciones de código a través de un sistema controlado por versión, disminuye la superficie de ataque de su aplicación. Además, la gestión del código fuente de la aplicación a través del control de versiones proporciona una copia "prístina" del código como fuente de la verdad, junto con un historial completo, auditable y rico en contexto de ese código.

¿Cómo puede mi empresa hacer cumplir la seguridad de WordPress?

La seguridad no es solo una consideración a nivel de código o de host. También hay factores humanos, y las empresas pueden incorporar procesos como controles de seguridad regulares y reglas de higiene de contraseñas, que contribuirán en gran medida a aumentar la seguridad de su sitio web.

“A nivel organizacional, es importante pensar en términos de implementar múltiples capas de autenticación o validación continua”.

— Sean O'Shaughnessy, VIP de WordPress

Gestión de acceso de confianza cero y privilegios mínimos

A través de roles cuidadosamente considerados y administración de acceso, las organizaciones pueden equipar a las personas para hacer su trabajo con la menor cantidad de privilegios y, por lo tanto, la menor cantidad de riesgo posible. Asegúrese de definir y asignar correctamente las funciones y capacidades de los usuarios. Esta capacidad viene con WordPress lista para usar y se puede ampliar para cualquier caso de uso.

Higiene de contraseñas

Los usuarios deben crear contraseñas únicas y difíciles de adivinar para cada aplicación. A Sean le gusta especialmente este cómic, que aboga por el uso de una colección de palabras aleatorias, en lugar de una combinación de letras, números y símbolos:

Cómic XKCD

2FA y SSO

Si bien las tecnologías de autenticación de dos factores (2FA) e inicio de sesión único (SSO) no aumentarán inherentemente la seguridad de su sitio web, ofrecen el beneficio de la administración centralizada de usuarios en todas las aplicaciones compatibles.

Puntos clave de seguridad de WordPress

  • El código abierto tiene beneficios de seguridad
  • Mantenga WordPress y complementos actualizados
  • Usar control de versiones
  • Comprender los puntos finales de WordPress
  • Busque un host que tenga en cuenta la seguridad
  • Adoptar prácticas de seguridad maduras a nivel de organización

Cubrimos mucho más sobre la seguridad de WordPress en el seminario web de una hora. Si te lo perdiste en vivo, te animo a que veas la grabación aquí.