Módulo Security Kit para Drupal

philipp-katzenberger-iIJrUoeRoCQ-unsplash.jpg
Solucionex
25
Jun 21

Security Kit es un módulo que permite configuraciones para mejorar la seguridad del sitio web. Aunque es complejo de configurar ya que son características avanzadas, describe bastante bien qué hace cada configuración y sus opciones.

A continuación se detallan algunas de sus funcionalidades (la configuración se encuentra en /admin/config/system/seckit):

Cross-site scripting

Content Security Policy

Política que permite restringir los orígenes desde los que se puede cargar contenido (scripts, css, imágenes, etc) en la web.

  • Send HTTP response header: Si se marca, se enviará la cabecera Content Security Policy

  • Vendor Prefixed CSP headers: En principio no es encesario configurar esta sección. Son directivas legacy

  • Enable Upgrade Insecure Requests: Hace que las peticiones http pasen a https

  • Report Only: Si se marca, la web no bloqueará el contenido que viole las políticas sino que simplemente lo logueará. Útil cuando no se configura seckit desde el inicio del desarrollo. De esta manera, se ve durante un tiempo si aparece alguna violación que no sea tal y se puede configurar antes de desmarcar finalmente este campo.

  • Directivas:

    • default-src: Directiva por defecto (se usará lo que ponga aquí en caso de que alguno de los siguiente no se rellene). Normalmente puede dejarse en 'self'

    • script-src: Directivas para scripts js. Normalmente puede dejarse en 'self' 'unsafe-inline' (drupal por ejemplo mete scripts "a pelo" para los drupal settings). También hay que añadir urls de recursos externos de la web (ej: google analytics, bootstrap...)

    • object-src: Directivas para `<object>`, `<embed>` y `<applet>`. Normalmente puede dejarse en 'self'

    • style-src: Directivas para estilos css. Normalmente puede dejarse en 'self', aunque también hay que añadir urls de recursos externos de la web (ej: bootstrap, fontawesome...)

    • img-src: Directivas para imágenes. Normalmente puede dejarse en 'self' data: (usado en algunos css para cargar imágenes o svgs)

    • media-src: Directivas para etiquetas `<audio>` y `<video>`. Normalmente puede dejarse en 'self'

    • frame-src: Directivas para `<iframe>` y `<frame>` elements. Está obsoleta y será reemplazada por child-src. Se recomienda usar ambas hasta que todos los navegadores reconozcan child-src.

    • frame-ancestors: Directivas para `<iframe>`, `<frame>`, `<object>`, `<embed>` y `<applet>`

    • child-src: Directivas para `<iframe>` y `<frame>`, así como Web Workers.

    • font-src: Directivas para fuentes de texto. Normalmente valdrá con 'self' [url fontawesome] [url google fonts]

    • connect-src: Directivas para XMLHttpRequest, WebSocket y EventSource

  • report-url: URL a la que se reportarán las violaciones de las políticas. Normalmente puede dejarse la que viene por defecto

  • policy-url: Permite introducir una url relativa en la que haya un archivo que contenga las políticas (si se rellena, se ignorará lo intriducido en los campos de políticas)

En esta respuesta de stackoverflow está bastante bien explicado cómo rellenar los campos de directivas

X-XSS-Protection header

Controla si se deben usar los filtros XSS de los navegadores IE, Chrome y Safari.

Valores permitidos:

  • Disabled: Opción por defecto. Los filtros funcionarán en modo por defecto.

  • 0: Filtros desactivados

  • 1;: Filtros activados, los navegadores modificarán el contenido peligroso.

  • 1; mode=block: Filtros activados, pero los navegadores bloquearán la página entera en caso de encontrar contenido peligroso

Clickjacking

Configuraciones de protección contra Clickjacking

X-Frame-Options header

Configura si la web actual puede mostrarse como iframe dentro de otra.

  • Disabled: No se envía información en las cabeceeras

  • SAMEORIGIN: Permite que la web se muestre como iframe dentro de otra página del mismo dominio. Opción por defecto

  • DENY: El navegador no permitirá que la web se muestre como iframe

  • ALLOW-FROM: El navegador permitirá que la web se muestre como iframe en los dominios listados

SSL/TLS

Permite configurar la cabecera HSTS, que fuerza a que la página se use a través de HTTPS.

  • HTTP Strict Transport Security: Si se marca, la web enviará la cabecera HSTS

  • Max-age: Tiempo que el navegador cacheará la cabecera HSTS

  • Include Subdomains: Indica si el navgeador debe forzar HTTPS también en los subdominios

  • Preload: Usado para poder integrar la web en El listado de webs con HSTS. Este listado va integrado en algunos navegadores y hace que todas las webs que aparezcan en él se fuercen a HTTPS

Miscelánea

Funcionalidades que no pertenecen a ninguna otra categoría específica.

  • From-Origin: Cabecera en desuso. No usar

  • Referrer-Policy: Controla la información sobre la url actual que se envía cuando se va a otra página web distinta

  • Disable autocomplete on login and registration forms: Permite deshabilitar el autocompletado del navegador en las páginas de login y registro

Imagen de cabecera: Philipp Katzenberger de Unsplash