Skip to main content

Explicación del puntaje de seguridad de sitios web

Escrito por
Licenting blog feature

13 de mayo de 2020

0 minutos de lectura

Snyk lanzó una integración con WebPageTest que informa sobre aspectos de seguridad en una verificación de seguridad de sitios web, además de las pruebas de velocidad y las métricas de rendimiento que ofrece WebPageTest.

Si ejecutas un análisis con WebPageTest, obtienes un puntaje de seguridad. ¿Qué mide este puntaje y cómo lo calculamos?

¿Qué es WebPageTest?

WebPageTest es un servicio que realiza una prueba gratuita de velocidad de sitios web desde distintas ubicaciones del mundo con navegadores reales. Ofrece métricas de rendimiento que ayudan a los desarrolladores a optimizar sus sitios web.

Para obtener un puntaje de seguridad y comprobar la seguridad de un sitio web, visita WebPageTest, ingresa la dirección de tu sitio web y haz clic en el botón Start Test. Cuando termine el análisis, obtendrás un puntaje de seguridad.

Para explicar el puntaje de seguridad, analicé el sitio web https://www.foxnews.com y, como puedes ver en la imagen de abajo, obtuvo una calificación E, lo que demuestra que hay mucho por corregir:

Página de resultados de WebPageTest con la puntuación de seguridad calificada con E y resaltada con un círculo y una flecha magenta
Haz clic en la puntuación de seguridad para ver más información sobre la seguridad del sitio web

Pero ¿cuál es exactamente el problema y por qué este sitio web obtuvo una E?

Si haces clic en el puntaje, verás resultados más detallados de los problemas en la página de resultados de Snyk:

Análisis de seguridad del sitio web que muestra una calificación E, bibliotecas de JavaScript vulnerables y encabezados de seguridad HTTP faltantes.
Bibliotecas de JavaScript vulnerables y encabezados de seguridad HTTP faltantes en la puntuación de seguridad de este sitio web

Como puedes ver, los puntajes se basan en dos métricas principales:

  1. Versiones vulnerables de bibliotecas de JavaScript detectadas en la página que representan una posible amenaza para la seguridad.

  2. Encabezados de seguridad: comprobamos qué encabezados de seguridad HTTP están configurados en el sitio web y cuáles faltan, aunque se recomienda habilitarlos.

Verificación de seguridad de sitios web

¿Qué significa que un sitio web no sea seguro?

Antes de explicar cómo calculamos el puntaje, veamos con más detalle las métricas que medimos en la página:

Encabezados de seguridad HTTP

En la imagen de arriba, que muestra los resultados detallados en la página de Snyk, podemos ver que se usó un encabezado de seguridad HTTP: strict-transport-security. Obtén más información al respecto en las páginas para desarrolladores de MDN. Sin embargo, al sitio web que analizamos le faltan los siguientes encabezados de seguridad:

  • X-Content-Type-Options

  • X-Frame-Options

  • Content-Security-Policy

  • X-XSS-Protection

Bibliotecas de JavaScript vulnerables

La segunda parte de la página de resultados de la prueba muestra una lista de las bibliotecas de JavaScript detectadas en el sitio web cuyas versiones presentan vulnerabilidades de seguridad. Entre las vulnerabilidades que encontramos hay una contaminación de prototipos en jQuery y otra contaminación de prototipos en Lodash.

¿Cómo asignamos un puntaje al análisis de seguridad de un sitio web?

La calificación más alta que puedes obtener es A+ y la más baja es F. Las calificaciones se asignan según el siguiente puntaje:

  • A+ para un puntaje igual o superior a 95

  • A para un puntaje igual o superior a 75

  • B para un puntaje igual o superior a 60

  • C para un puntaje igual o superior a 50

  • D para un puntaje igual o superior a 29

  • E para un puntaje igual o superior a 14

  • F para un puntaje igual o superior a 0

Los puntajes se calculan con la fórmula que Scott Helm creó para https://securityheaders.com. La fórmula es pública e incluye un factor que reduce el puntaje cuando se detectan vulnerabilidades de JavaScript.

Los encabezados de seguridad se puntúan de la siguiente manera:

  • Content-Security-Policy suma 25 puntos

  •  X-Frame-Options suma 20 puntos

  • X-XSS-Protection suma 20 puntos

  • X-Content-type-options suma 20 puntos

  • Strict-transport-security suma 25 puntos, solo si el sitio web analizado usa HTTPS

Las vulnerabilidades de JavaScript detectadas en la página reducirán el puntaje total de la siguiente manera:

  • Cuando se detecte al menos una biblioteca vulnerable:

  • las vulnerabilidades de gravedad alta reducen el puntaje a 70

  • De lo contrario:

  • cada vulnerabilidad de gravedad media reduce el puntaje en 25 puntos

  • cada vulnerabilidad de gravedad baja reduce el puntaje en 20 puntos

Si todavía no tienes una cuenta de Snyk, regístrate gratis y usa Snyk para analizar dependencias de código abierto, como los paquetes de npm que usas para crear tus aplicaciones web, y asegurarte de que no tengan vulnerabilidades de seguridad. Snyk las monitorea, te envía alertas y también abre pull requests automáticamente para corregir los problemas.

Comienza con Capture the Flag

Aprende a resolver desafíos de Capture the Flag con nuestro taller virtual 101 a pedido.

Leer más

Blog

Los modelos de frontera encontraron las vulnerabilidades. Solo el atacante encontró las cadenas.

El análisis estático encontró las fallas, pero solo las pruebas de ataque en vivo demostraron cómo podían encadenarse para provocar brechas. Una comparación de Evo COS, Claude Security y Claude Code Security.

feature insights context
Blog

Los ataques autónomos ya están aquí. La defensa debe estar a su altura.

Los atacantes autónomos están reduciendo el tiempo disponible para defenderse. Descubre cómo el descubrimiento, la corrección, la validación y la prevención continuos pueden ayudar a los equipos de seguridad a seguirles el ritmo.

Blog

Por qué los agentes de programación con IA siguen generando fallas de control de acceso

Los agentes de programación con IA pueden generar lógica de autorización que compila y supera la revisión, pero expone los datos de un inquilino a otro. Descubre por qué es difícil detectar el control de acceso roto y cómo prevenirlo.