Le score de sécurité d’un site web expliqué
13 mai 2020
0 minutes de lectureSnyk a lancé une intégration avec WebPageTest qui fournit des informations de sécurité lors d’un contrôle de sécurité d’un site web, en plus des autres tests de vitesse et indicateurs de performance proposés par WebPageTest.
Lorsque vous lancez une analyse avec WebPageTest, vous obtenez un score de sécurité. Que mesure ce score et comment le calculons-nous ?
Qu’est-ce que WebPageTest ?
WebPageTest est un service qui réalise gratuitement des tests de vitesse de sites web depuis plusieurs endroits dans le monde, à l’aide de vrais navigateurs. Il fournit des indicateurs de performance qui aident les développeurs à optimiser leurs sites web.
Pour obtenir un score de sécurité et tester la sécurité d’un site web, rendez-vous sur WebPageTest, saisissez l’adresse de votre site web et cliquez sur le bouton Start Test. Vous obtiendrez un score de sécurité une fois l’analyse terminée.
Pour expliquer le score de sécurité, j’ai analysé le site https://www.foxnews.com. Comme vous pouvez le voir sur l’image ci-dessous, il a obtenu la note E, ce qui montre qu’il y a beaucoup de choses à corriger :

Mais quel est exactement le problème et pourquoi ce site a-t-il obtenu un E ?
Cliquez sur le score pour afficher des résultats plus détaillés sur les problèmes détectés, sur la page de résultats Snyk :

Comme vous pouvez le constater, les scores reposent sur deux indicateurs principaux :
Les versions vulnérables des bibliothèques JavaScript détectées sur la page et susceptibles de présenter une menace pour la sécurité.
Les en-têtes de sécurité : nous vérifions quels en-têtes de sécurité HTTP sont configurés pour le site web, ainsi que ceux qui sont absents mais dont l’activation est recommandée.
Contrôle de sécurité d’un site web
Que signifie le fait qu’un site web ne soit pas sécurisé ?
Avant d’expliquer comment nous calculons le score, examinons plus en détail les indicateurs que nous mesurons sur la page :
En-têtes de sécurité HTTP
Sur l’image ci-dessus, qui présente les résultats détaillés sur la page Snyk, nous pouvons voir qu’un en-tête de sécurité HTTP est utilisé : strict-transport-security. Pour en savoir plus, consultez les pages développeur MDN. Cependant, le site testé ne dispose pas des en-têtes de sécurité suivants :
X-Content-Type-Options
X-Frame-Options
Content-Security-Policy
X-XSS-Protection
Bibliothèques JavaScript vulnérables
La deuxième partie de la page de résultats du test répertorie les bibliothèques JavaScript détectées sur le site et les versions présentant des vulnérabilités de sécurité. Parmi les vulnérabilités détectées, on trouve une pollution de prototype dans jQuery et une autre pollution de prototype dans Lodash.
Comment calculons-nous le score d’une analyse de sécurité d’un site web ?
La meilleure note possible est A+ et la plus basse est F. Les notes sont attribuées selon le score suivant :
A+ pour un score égal ou supérieur à 95
A pour un score égal ou supérieur à 75
B pour un score égal ou supérieur à 60
C pour un score égal ou supérieur à 50
D pour un score égal ou supérieur à 29
E pour un score égal ou supérieur à 14
F pour un score égal ou supérieur à 0
Les scores sont calculés à partir de la formule élaborée par Scott Helm pour https://securityheaders.com. Cette formule est publique et comprend un facteur qui réduit le score en cas de détection de vulnérabilités JavaScript.
Les en-têtes de sécurité sont notés comme suit :
Content-Security-Policy ajoute 25 points
X-Frame-Options ajoute 20 points
X-XSS-Protection ajoute 20 points
X-Content-type-options ajoute 20 points
Strict-transport-security ajoute 25 points, uniquement si le site testé utilise HTTPS
Toute vulnérabilité JavaScript détectée sur la page réduit le score global comme suit :
Lorsqu’au moins une bibliothèque présente une vulnérabilité :
les vulnérabilités de gravité élevée font passer le score à 70
Sinon :
chaque vulnérabilité de gravité moyenne réduit le score de 25 points
chaque vulnérabilité de faible gravité réduit le score de 20 points
Si vous n’avez pas encore de compte Snyk, créez-en un gratuitement et utilisez Snyk pour analyser vos dépendances open source, comme les packages npm utilisés pour développer vos applications web, et vérifier qu’elles ne présentent aucune vulnérabilité de sécurité. Snyk surveille vos dépendances, vous envoie des alertes et ouvre automatiquement des demandes de tirage pour corriger les problèmes.
Lancez-vous dans les compétitions Capture The Flag
Apprenez à résoudre des défis Capture The Flag en regardant à la demande notre atelier virtuel d’initiation.



