¿Cómo proteger su sitio web? I DevTeam.Espacio

¿Se ha topado con Drupal Security y se pregunta cómo proteger su aplicación?

Has venido al lugar correcto.

Cada pocos días se informan incidentes de piratería en todo el mundo; algunos incidentes son inocuos, mientras que otros pueden ser más graves y provocar la pérdida de datos personales, financieros o de consumo.

Como propietario del sitio web, no hay nada más aterrador que la idea de que usuarios o software malintencionados cambien o eliminen por completo todo su trabajo.

Los piratas informáticos, los spammers, los ladrones y los intrusos buscan constantemente datos que puedan explotarse fácilmente. La piratería es una de las mayores amenazas para las empresas en el mundo en línea, así que ¿por qué no dedicar algo de tiempo a proteger su sitio web contra tales vulnerabilidades?

En esta publicación de blog, esto es exactamente lo que exploramos. En particular, nos enfocamos en Drupal desde una perspectiva de seguridad, y si usted es un líder técnico de desarrollo web, está involucrado en el mantenimiento del servidor o incluso está considerando implementar Drupal por primera vez después de leer esta publicación de blog, tendrá una comprensión profunda de Drupal, cómo protegerlo de usuarios maliciosos y mantener sus datos seguros.

¿Qué tan vulnerable es Drupal?

¿Alguna vez has pensado en el riesgo que corres cuando se trata de Drupal? Bueno, según Common Vulnerabilities and Exposure (que es una fuente de datos de vulnerabilidades en línea), se han informado más de 290 vulnerabilidades desde 2002.

Tabla de Vulnerabilidades Comunes y Exposición 2002-2015

Profundizar un poco más en estos datos revela que el 46% de las vulnerabilidades de Drupal son causadas por secuencias de comandos entre sitios. Aquí está la ruptura:

Un cuadro de vulnerabilidades de Drupal

Fuente: (Jackson, 2018)

Características de seguridad y factores diferenciadores

Drupal es un sistema de administración de contenido y funciona con aproximadamente el 2,5 % de todos los sitios web. Es un sistema de código abierto escrito en PHP y se diferencia de la competencia al proporcionar actualizaciones periódicas que resultan en más funciones y seguridad mejorada.

Existe una gran comunidad de desarrolladores de Drupal que contribuye continuamente a mejorar los módulos y temas de seguridad de Drupal en el ecosistema de Drupal y se ha desarrollado teniendo en cuenta la seguridad para garantizar que los sitios web creados en la plataforma sean seguros y protegidos.

Dicho esto, los sistemas Drupal desactualizados pueden estar en riesgo de vulnerabilidades, por lo que es esencial seguir las mejores prácticas de seguridad. Proteger su sitio web basado en Drupal solo es posible si comprende cómo funcionan las características de seguridad en Drupal, algunas de las cuales discutiremos a continuación.

Características de seguridad de Drupal

Algunas de las características de seguridad de Dupral incluyen:

Acceso seguro

Las contraseñas para las cuentas de Drupal están fuertemente encriptadas cuando se almacenan en la base de datos y pueden ayudar a una amplia gama de políticas asociadas con la creación de contraseñas, incluida la caducidad, el recuento mínimo de caracteres y el nivel de complejidad.

La autenticación de 2 factores y SSL también admiten varias prácticas de autenticación de la industria. Esta autenticación mantiene a los rastreadores no autorizados alejados de su sitio web.

Control de acceso granular

Con Drupal, los administradores pueden tener un mayor control sobre quién puede ver y quién puede realizar cambios en cada parte del sitio. El software opera en un sistema de roles de usuario y permisos de acceso.

Esto permite a los administradores crear roles que otorgan permisos limitados a los espectadores. Por ejemplo, un sitio puede crear un rol de Autor que le permita actualizar el contenido pero no tendrá la autoridad para publicar o eliminar ningún contenido.

Cuando se compara con otros sistemas de administración de contenido populares, Drupal demuestra estar protegido contra el malware más común. Drupal ofrece una función de flexibilidad con la presencia de múltiples temas atractivos y opciones de personalización para que elijas.

Administrar actualizaciones con Drupal Update Manager

Para cualquier sistema de administración de contenido, las actualizaciones o parches de software son vitales. Cada nueva actualización tiene como objetivo resolver los problemas que enfrenta la versión anterior. Las nuevas actualizaciones también brindan seguridad mejorada y la capacidad de corregir errores.

Drupal se envía con el ‘Administrador de actualizaciones’, que es un módulo único que realiza un seguimiento de las últimas actualizaciones por usted. Notifica automáticamente sobre nuevos temas y módulos a su sitio web basado en Drupal. Teniendo en cuenta la naturaleza del módulo, esta es una característica imprescindible para su sitio.

Módulos para mejorar aún más la seguridad de Drupal

Considere los siguientes módulos para mejorar la seguridad de los sitios de Drupal.

Módulo de formulario de inicio de sesión

Este módulo de Drupal brinda seguridad en sus formularios de inicio de sesión de Drupal. Los formularios de inicio de sesión son una práctica común para muchos sitios web públicos. Drupal implementa patrones comunes como:

  • limitar el número de intentos fallidos de inicio de sesión;
  • restringir el acceso por dirección IP;
  • ocultar el motivo del error de inicio de sesión, lo que dificulta que el atacante descubra si la cuenta existe o no;
  • proporcionar notificaciones de cualquier esfuerzo que pueda amenazar la seguridad del sitio web.

Políticas de contraseña

Este módulo se utiliza para proporcionar restricciones durante la creación de contraseñas que garanticen la seguridad de la contraseña.

Es necesario el uso de letras mayúsculas, caracteres especiales, números y una longitud específica. No permite la creación de dos contraseñas similares y envía automáticamente la notificación para la renovación de la contraseña después de un período determinado.

captcha

Otro desafío es proteger el sitio web de los spambots. Drupal facilita la detección de si los visitantes de su sitio son humanos o no. Al implementar CAPTCHA, su sitio Drupal bloquea cualquier script automatizado y evita la inundación de su base de datos o servidor de correo.

Control de inundaciones

Los piratas informáticos han estado utilizando recientemente la fuerza bruta para descifrar incluso las contraseñas más robustas. Funciona como el otro módulo y protege Flood Control mediante intentos de inicio de sesión limitados.

Prevención de secuestros

Este módulo se utiliza para brindar un poco de protección adicional a las páginas que ya son seguras y evita el secuestro de páginas SSL en su sitio. Este módulo debe usarse incluso para las páginas más seguras de su sitio web.

Se acabó el tiempo

Este módulo es particularmente crucial para la seguridad de su sitio web, ya que le permite establecer el tiempo de caducidad de una sesión inactiva. Se puede ajustar en función de los roles de los usuarios de Drupal y, en algunos casos, los usuarios pueden configurar su propio tiempo para garantizar la seguridad de las cuentas de usuario.

Sesiones concurrentes

Este módulo se asegura de que un solo usuario no pueda usar múltiples sesiones. Solo proporciona una sesión para un navegador. Una nueva sesión, en el mismo navegador, solo se puede usar después de cerrar sesión en la sesión anterior. Esto proporciona una capa de seguridad adicional al sitio web y protección de las cuentas.

Acceso al contenido

Este módulo lo ayuda a establecer el límite de entrada de un usuario o rol en particular. Los permisos se pueden aplicar al uso, edición y eliminación del contenido. El módulo inicial tiene una función de configuración predeterminada que se puede modificar según los requisitos de dicho usuario.

Consejos para proteger su sitio web Drupal

Ahora que hemos discutido qué es Drupal, cuáles son algunos de los módulos de seguridad y explorado algunas de las vulnerabilidades de seguridad más comunes que tiene Drupal, es hora de centrar nuestra atención en algunos consejos que hemos reunido que lo ayudarán a reforzar ¡aumenta la seguridad para tu implementación de Drupal!

Actualizar a la última versión de Drupal

Si ya es usuario de Drupal, actualizar su software a Drupal 8 es el primer paso que debe dar. Tómese el tiempo para realizar algunas pruebas de humo después de haber realizado la actualización, por ejemplo, hacer clic en los botones que realizan tareas comunes y asegurarse de que su sitio no tenga errores.

Verifique que la interactividad de la base de datos esté operativa y si envía correos electrónicos desde su sitio, valide que el correo electrónico aún se pueda retransmitir a través de SMTP.

La actualización de Drupal no solo le brindará algunas características nuevas e interesantes, sino también correcciones de seguridad avanzadas que ayudarán a mejorar el rendimiento y la seguridad de su sitio web.

Módulos actualizados

Actualizar a la última versión de Drupal no es suficiente para salvarlo de los riesgos de seguridad. Asegúrese de que sus módulos de Drupal también estén actualizados. Al asegurarse de que todos sus módulos existentes o el código central de Drupal estén actualizados, puede disminuir en gran medida el riesgo de que su sitio sea explotado.

Los piratas informáticos pueden explotar fácilmente los sitios web o los scripts que ejecutan módulos obsoletos. El uso de versiones actualizadas no solo traerá nuevas funciones, sino que también proporcionará correcciones de errores y otras medidas de seguridad. Mantenerse al tanto de las actualizaciones garantiza que su sitio web esté libre de vulnerabilidades conocidas.

Elección de módulos selectivos

Drupal te da la oportunidad de personalizar tu sitio web usando miles de módulos. Es importante que amplíe las capacidades de su sitio web mientras se asegura de que no se vea comprometido a costa de la seguridad. ¡Instale solo los módulos que absolutamente necesita!

Seguridad contra archivos maliciosos

Si les da a los usuarios la opción de cargar documentos en su sitio Drupal y no supervisa los tipos de archivos que pueden cargar, los piratas informáticos pueden cargar scripts maliciosos o virus que pueden causar estragos en su sitio sin su conocimiento.

Este tipo de problema se puede resolver fácilmente con la seguridad de «Tipo de contenido» permitida incorporada de Drupal. Puede realizar cambios realizando los siguientes pasos:

  • Vaya a «Estructura > Tipos de contenido > Administrar campos» y haga clic en «Editar» junto a Imágenes para eliminar los tipos de archivos de imágenes.
  • Para permitir cargas como archivos PDF, vaya a «Administrar > Configuración del sitio > Cargas de archivos». Elimine los archivos HTML y script de las extensiones de archivo permitidas.
  • Clic en Guardar.

Manejar HTML peligroso con «htmLawed»

Los usuarios maliciosos o los piratas informáticos pueden comprometer su sitio web cargando HTML peligroso. Un módulo que puede usar para desinfectar el HTML que cargan los usuarios es ‘htmlLawed’.

El módulo permite definir políticas y estándares de seguridad y ofrece ricas opciones configurables en cuanto a los tipos de HTML que los usuarios pueden usar en su sitio Drupal. Descargue e instale este módulo para agregar otra capa de seguridad a su implementación de Drupal.

Duo Security: módulo de autenticación de dos factores

La verificación en dos pasos puede fortalecer su sitio web de Drupal al obligar a los usuarios a proporcionar dos métodos (o factores) de información que verifican su identidad.

El uso de una verificación de dos pasos brinda una capa adicional de seguridad a su sitio web y habilitar este módulo garantiza que la persona que accede a su sitio Drupal sea quien dice ser.

Los usuarios pueden proporcionar una combinación de nombre de usuario y contraseña y se ven obligados a proporcionar un token o una identificación única desde algo así como una aplicación de teléfono inteligente para aprobar las solicitudes de autenticación.

Puede obtener más información sobre este módulo y descargarlo desde aquí: https://www.drupal.org/project/duo.

Módulo de paranoia

Este módulo busca identificar todos los lugares donde un usuario puede evaluar scripts PHP a través de la interfaz web de Drupal y luego los bloquea y contiene las siguientes características:

  • Deshabilite proporcionar el permiso «Usar PHP para bloquear la visibilidad»;
  • Deshabilitar la realización de cambios en la cuenta del usuario n.º 1;
  • Evita dar permisos riesgosos;
  • Deshabilita la creación de formatos PHP que usan el filtro PHP.

El Módulo Paranoia brinda seguridad adicional a Drupal al reducir la posibilidad de que los piratas informáticos puedan otorgarse permisos elevados en su sitio.

Más información sobre este módulo aquí.

Finalmente

Una vez que haya instalado y configurado algunos de los módulos que acabamos de analizar, tómese el tiempo para realizar una auditoría de su infraestructura existente, las políticas de contraseñas y los programas de copia de seguridad de la base de datos.

En esta sección, reunimos algunos consejos finales y, aunque no todos serán específicos de Drupal, son ciertas ideas que debería considerar implementar para mejorar aún más la seguridad de su sitio web de Drupal.

Usa contraseñas complejas

Aplique una política de contraseñas para su sitio de Drupal con nombres de usuario y contraseñas seguros. Elegir una contraseña compleja actúa como una capa protectora que protege su sitio web de los piratas informáticos.

Los piratas informáticos pueden crear bots que funcionan las 24 horas del día, los 7 días de la semana, que constantemente intentan rastrear Internet y encontrar lagunas de seguridad, como intentos de inicio de sesión de fuerza bruta con contraseñas de administrador predeterminadas. Puede mitigar este riesgo implementando una política de contraseñas que exija el uso de contraseñas complejas.

Hacer uso de conexiones seguras
Asegúrese de que las conexiones que está utilizando sean seguras sin importar dónde esté trabajando. Debe hacer uso del “cifrado SFTP” (FTP seguro).

Nota: algunos clientes FTP guardan contraseñas codificadas en sus sistemas. Algunas contraseñas codificadas se pueden volver a convertir a su forma original. Se recomienda que los usuarios no guarden contraseñas de FTP en los clientes o eviten configurar contraseñas maestras.

También es importante asegurarse de que las reglas del firewall estén configuradas en casa y en sus enrutadores. Tenga en cuenta que estas no son redes confiables mientras trabaja en un lugar público.

Certificados HTTPS y SSL

Esto debe configurarse en el comercio electrónico o cualquier otro sitio web que contenga datos críticos o confidenciales. SSL o Secure Sockets Layer, por dar su nombre completo, ayuda a cifrar la comunicación entre el navegador web del usuario y su sitio web de Drupal.

Es posible que no piense que necesita cifrar publicaciones de blog o contenido en su sitio Drupal y puede tener razón, dicho esto, podría estar considerando instalar un módulo de comercio electrónico como Drupal Commerce, y si este es el caso, usted sin duda debería instalar un certificado SSL en su sitio Drupal.

Planificación para la peor situación con copia de seguridad y migración

¿Le gustaría que sus datos fueran explotados por piratas informáticos? ¡Por supuesto no! Sin embargo, es importante planificar para la peor situación posible y realizar copias de seguridad periódicas de la base de datos debe formar parte de esta estrategia.

Si su base de datos se ve comprometida o, lo que es peor, se borra por completo, siempre que tenga copias de seguridad periódicas, podrá volver a poner su sitio en línea con una pérdida de datos mínima.

«Copia de seguridad y migración» es un módulo que lo ayuda a crear y restaurar copias de seguridad de datos con relativa facilidad y admite formatos de archivo como gzip, bzip y zip.

El módulo le permite hacer una copia de seguridad de todas o algunas tablas de la base de datos en un archivo que puede descargar o en un servidor si lo desea. Los horarios de copia de seguridad también están disponibles en el módulo para ayudarlo a poner algo de esto en piloto automático.

Restrinja el acceso a archivos importantes en su servidor web

Otro mecanismo de seguridad que puede implementar es restringir o bloquear el acceso a archivos importantes en su servidor web a través del archivo de configuración «.htaccess».

Este es un archivo que puede editar con comandos detallados que le indican a su implementación de Drupal cómo manejar tipos específicos de archivos y los comandos que se pueden ejecutar contra ellos, como otorgar o denegar acceso.

Los comandos en su archivo .htaccess afectan el contenido del directorio en el que se crea este archivo. Esto significa que puede crear varias instancias de .htaccess para satisfacer sus requisitos de seguridad por directorio. Considere el siguiente archivo .htaccess de ejemplo:


Orden permitir, denegar
Permitir de todos

¡Esto le dice a Drupal que otorgue acceso al archivo robots.txt a TODOS los visitantes del sitio web, lo cual es fundamental para todos los sitios web ya que no desea negar el acceso a eso!

Alternativamente, puede negar el acceso a archivos de configuración específicos, excepto a los usuarios administradores que se encuentran en el servidor web localmente. Un comando similar al siguiente puede lograr esto:


Orden denegar, permitir
Negar todo
Permitir desde 127.0.0.1
Permitir desde 123.123.123.123

Módulos y puntos de acceso innecesarios

Solo instale módulos que planee ejecutar en su sitio de Drupal. Tener menos funciones o módulos en su sitio significa que, en última instancia, tiene menos cosas para protegerse contra las vulnerabilidades de seguridad. Si hay un módulo que no necesita, elimínelo.

Otra precaución que quizás desee considerar es restringir el acceso del administrador a su sitio de Drupal en función de la dirección IP del usuario.

La mayoría de las empresas tienen direcciones IP estáticas que se encuentran dentro de una subred o rango en particular, considere restringir los inicios de sesión a su consola de administración de Drupal en función de un rango particular de direcciones IP. Si los empleados necesitan acceder a la consola de administración externamente, también puede considerar una VPN.

Acceso de usuario sensible

Es posible que tenga varios inicios de sesión en su sitio; de ser así, determine los tipos de funciones y los permisos asociados que debe tener cada usuario.

Implemente una política de «privilegios mínimos» para garantizar que los usuarios solo tengan permiso para ejecutar la funcionalidad necesaria para su conjunto de responsabilidades.

Por ejemplo, si un colega tiene la tarea de escribir publicaciones de blog, asegúrese de que su cuenta no tenga privilegios de administrador completos. La cuenta de su colega solo debe permitirle crear o editar blogs y no es necesario que tenga acceso a la actualización de la configuración administrativa dentro de su sitio de Drupal.

Tener un acceso cuidadosamente definido reducirá cualquier error que se pueda cometer y limitará el daño que pueden causar los usuarios «falsos».

Eliminar puertas traseras ocultas

Los piratas informáticos hacen todo lo posible para encontrar una manera de ingresar a su sitio web. Puede haber varios números de puertas traseras de varios tipos que pueden explotar fácilmente. Estas puertas traseras pueden tener la forma de archivos legítimos dentro del marco oficial de Drupal, pero ubicados en los directorios incorrectos.

Los atacantes pueden inyectar software como virus a través de puertas traseras y directorios como «/módulos, /temas, /sitios/todos/módulos y /sitios/todos/temas».

Las funciones comunes de PHP en las que se pueden inyectar puertas traseras incluyen, entre otras, las siguientes:

  • str_rot13
  • gzuncompress
  • gzinflate
  • evaluar
  • ejecutivo
  • crear_funcion
  • href
  • curl_exec
  • arroyo

Identifique si tiene posibles fallas de seguridad o parches que deban instalarse para cualquiera de los anteriores para ayudar a mitigar este riesgo.

Revisa tus fuentes

Al seleccionar un tema o módulo de Drupal, dedique algún tiempo a verificar que la empresa o el desarrollador que ha escrito dicho tema/módulo sea profesional.

Solo seleccione módulos que se mantengan y soporten regularmente y que cumplan con sus requisitos. No descargue temas aleatorios que están disponibles en Internet. Utilice únicamente aquellos temas que pertenezcan a la biblioteca Download and Extend de Drupal y que se hayan mantenido recientemente.

Resumiendo la seguridad de Drupal

Entonces, ahí lo tiene, cómo proteger su sitio web de Drupal. En este artículo, exploramos qué tan vulnerable puede ser Drupal, cuáles son algunas de sus características de seguridad existentes y detallamos algunos consejos que le muestran cómo proteger mejor su sitio web de Drupal.

Esperamos que al leer este artículo haya obtenido información valiosa y consejos sobre cómo su equipo de seguridad de Drupal puede proteger su sitio web de Drupal contra piratas informáticos sin escrúpulos.

Siéntete libre de compartir o comentar este artículo. ¿Estás usando Drupal en tu negocio? ¿Qué medidas de seguridad ha implementado?

Si necesita desarrolladores de software experimentados para garantizar un desarrollo y una implementación de software sólidos y seguros, asóciese con desarrolladores de software competentes y expertos. Si no encuentra tales desarrolladores en su equipo de proyecto, comuníquese con DevTeam.Space.

Puede subcontratar fácilmente a desarrolladores de software expertos en el campo escribiéndonos las especificaciones iniciales de su proyecto. Uno de nuestros gerentes de cuenta se comunicará con usted con más detalles.

Referencias
Jackson, B. (2018). Guía completa sobre la seguridad de Drupal. Blog de KeyCDN. Recuperado el 2 de febrero de 2018, de https://www.keycdn.com/blog/drupal-security/

Preguntas frecuentes sobre la seguridad de Drupal

¿Cómo proteger mi sitio web?

Hay una variedad de métodos y aplicaciones que pueden ayudarlo a proteger su sitio web de ataques. Un ejemplo es Drupal, que es una aplicación de seguridad muy querida. Asegurarse de que sus desarrolladores escriban código Drupal libre de errores es otro ejemplo.

Actualizaciones de seguridad de Drupal: ¿cómo instalar?

Debe habilitar el módulo del administrador de actualizaciones antes de navegar a /admin/reports/status. Luego se le informará si hay nuevas actualizaciones que luego puede elegir instalar.

¿Cómo agregar un certificado de seguridad en Drupal?

Debe obtener un CERTIFICADO (SSL), configurar el servidor, habilitar SSL y luego completar la instalación.

Deja un comentario