Explicación del puntaje de seguridad de sitios web
13 de mayo de 2020
0 minutos de lecturaSnyk 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:

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:

Como puedes ver, los puntajes se basan en dos métricas principales:
Versiones vulnerables de bibliotecas de JavaScript detectadas en la página que representan una posible amenaza para la seguridad.
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.



