Seguridad en Drupal, 5 puntos de porque Drupal es mas seguro que otros CMS

Imagen
Puerta de seguridad

En internet se pueden encontrar muchas comparaciones sobre los distintos CMS. En prácticamente todas las comparaciones, a Drupal se le describe como abierto, seguro y con actualizaciones constantes. Vamos a ver las razones por las que creo que suelen ser comunes esos puntos en las comparativas de los CMS.

1. Código abierto

Al leer este punto, se puede pensar “prácticamente todos los CMS” son de código abierto; si, así es, pero Drupal es un caso un poco especial. El resto de CMS, tienen una parte de extensiones gratuitas y abiertas, y otras que pertenecen a empresas y requieren una licencia de uso.

Esto es una diferencia enorme con Drupal, y es que en Drupal, la comunidad colabora en el desarrollo de las extensiones/módulos. Todos están disponibles en drupal.org estando cubiertos por el equipo de seguridad. En que la comunidad trabaje de manera centralizada compartiendo esfuerzos, también quiere decir, que no vas a encontrar decenas de extensiones para hacer lo mismo, solo vas a encontrar 1, y es mucho más fácil centrarte en la seguridad de una sola extensión, que en la de decenas.

2. Equipo de seguridad

Antes de empezar en Drupal, en varias ocasiones escuche, que era inseguro porque sacaban actualizaciones de seguridad de manera más o menos constante. Mucha gente ve esto como algo negativo. Personalmente, me parece una ventaja enorme, ya que, si sacan actualizaciones de seguridad, quiere decir, que hay gente que busca esos agujeros, los reporta y se corrigen.

El equipo de seguridad, además, está compuesto por un equipo de muchas personas de varias compañías alrededor del mundo. Se ha ganado una reputación a pulso a través de la eficiencia y la inquietud en temas de seguridad. Y lo que para mí es más importante, este equipo es apoyado por voluntarios, de modo que hay gente realmente preocupada por la seguridad.

Tras la experiencia en temas de seguridad en Drupal, confiaría poco en un software, que nunca saca actualizaciones de seguridad, ya que eso quiere decir, que ni sus desarrolladores ni la comunidad, están realmente involucrados con la seguridad, porque todo software, esté quien esté detrás, tiene agujeros de seguridad.

3. Organizaciones

Drupal es usado a nivel mundial por muchos sitios gubernamentales, por esta razón, muchas agencias y corporaciones contribuyen a la seguridad de Drupal.

Recientemente, la misma comunidad europea, financio un programa de seguridad de múltiples sistemas, entre los cuales se encuentra Drupal, recompensando económicamente a la gente que descubra fallos de seguridad y los reporte, la recompensa se basa en la gravedad del fallo encontrado.

4. Composer y Symfony

Una de las mayores novedades de Drupal 8, fue la integración con los componentes de Symfony. Esto fue un avance en estandarización de código. Usa algunos componentes como HttpFoundation, HttpKernel y Routing, esto libera a Drupal de preocuparse del mantenimiento de algunas partes. Al mismo tiempo, la comunidad de Symfony crece en desarrolladores y patrocinadores, lo cual hace que aumente el nivel de seguridad, ya que tienen que mantener un nivel en sus componentes. Recientemente incluso la comunidad europea financio un programa de seguridad para Symfony.

Symfony, además, no es solo un conjunto de componentes, usa además Composer, un gestor de paquetes increíble para PHP. Era posible usarlo en Drupal 7, pero de manera un poco escueta, en Drupal 8 básicamente es obligatorio su uso. Composer nos facilita muchísimo el mantener nuestro sitio web actualizado de las librerías externas, ya que, con un solo comando, podemos actualizarlo todo, de modo que no tenemos que preocuparnos por estar mirando si existen actualizaciones para las librerías que usamos.

5. Mecanismos de seguridad

Hemos comentado en general, ventajas de Drupal en temas de seguridad, pero no hemos comentado medidas internas que tiene para mantener el sitio seguro.

  • Se almacena el hash de las contraseñas. Drupal utiliza un salt y varias pasadas a las contraseñas para asegurarlas, lo cual dificulta mucho los ataques por fuerza bruta.
  • La configuración se puede guardar en archivos .yml y compararse con la configuración previa para ver si se ha modificado en algún punto. Además, puedes almacenarla con el sistema de exportación de Drupal, y si veis algo raro, importarla y aseguraros tener la misma configuración que cuando funcionaba bien.
  • Permisos de gestión avanzados permiten definir roles y asignarles los permisos justos para que hagan lo necesario. Unos permisos tan granulados permiten que un usuario no haga lo que no debe hacer.
  • El reporte de errores te avisa de posibles problemas de seguridad, incluyendo la falta de archivos .htaccess en directorios sensibles.
  • Sistema de actualización sencillo descargando los módulos contribuidos y actualizarlos con un solo clic. Si usas Composer, con un comando puedes hacer lo mismo, y mucho mejor.

Es importante mencionar, que Drupal cumple con el estándar OWASP (Open Application Security Project), la cual define los principios de seguridad básicos que todo proyecto web debería cumplir.