Évaluation des outils
Trois outils renvoient un nombre plutôt qu’une liste : la vérification des e-mails, la vérification des en-têtes et le rapport réseau . Chacun pondère ses résultats, car une liste de contrôle qui attribue la même valeur à chaque élément manquant donnerait à un site dépourvu de Content-Security-Policy la même note qu’à un site dépourvu de Permissions-Policy. Cette page répertorie chaque pondération et explique pourquoi elle a cette valeur.
Sécurité des e-mails
Sept contrôles, 100 points. L’authentification détermine si une tierce personne peut envoyer des e-mails en votre nom ; c’est donc elle qui a le plus de poids. Viennent ensuite le transport et les rapports.
| Contrôle | Points | Pourquoi cette pondération |
|---|---|---|
| DMARC | 25 | Le seul enregistrement qui indique à un destinataire comment réagir en cas d’échec, et le seul qui génère des Reports |
| SPF | 20 | Désigne les expéditeurs autorisés. Sans lui, DMARC ne dispose que de la moitié de ses preuves. |
| DKIM | 20 | Signe le message, ce qui lui permet de survivre au transfert là où SPF échoue |
| DNSSEC | 15 | Empêche que les enregistrements ci-dessus ne soient validés par quelqu'un d'autre |
| MTA-STS | 12 | Empêche le passage au texte clair, mais uniquement pour les expéditeurs qui prennent en charge ce protocole |
| TLS-RPT | 8 | Reports les échecs de transport. Utile, mais ne change rien en soi |
| BIMI | 0 | Un logo. Cela ne change rien au fait qu'un message soit fiable ou non |
Le BIMI obtient un score de zéro par nature. Il est vérifié et signalé car il est utile de
savoir si un enregistrement BIMI est corrompu, et parce que ses prérequis méritent d’être précisés : il nécessite DMARC à
p=quarantine ou p=reject pour avoir le moindre effet. Ce qu’il ne fait pas,
c’est rendre un domaine plus sûr ; il n’influe donc pas sur le score.
Seules les vérifications effectivement demandées comptent. En désélectionnant l’une d’entre elles, celle-ci est retirée du calcul au lieu d’être notée zéro, ce qui explique pourquoi un cycle comportant trois vérifications peut tout de même atteindre 100. Le score correspond à la part des points disponibles, et non au nombre de coches vertes.
Security Headers for HTTP
Sept résultats notés, pondérés en fonction de ce que chaque en-tête empêche plutôt que de la facilité avec laquelle il est configuré.
| Résultat | Poids | Empêche |
|---|---|---|
| Content-Security-Policy | 25 | Injection de script, la catégorie présentant le champ d'action le plus large |
| Strict-Transport-Security | 20 | La première requête HTTP en clair lors de chaque visite ultérieure |
| Protection contre le framing | 15 | Clickjacking, provenant soit de frame-ancestors ou X-Frame-Options |
| X-Content-Type-Options | 15 | Le « MIME sniffing » transformant un fichier téléchargé en script |
| Referrer-Policy | 10 | Fuite de chemins d'accès et de chaînes de requête vers des tiers |
| Permissions-Policy | 10 | Contenu intégré accédant à la caméra, au microphone ou à la localisation |
| Divulgation de la version | 5 | Indication de la version exacte dans Server ou X-Powered-By |
| Isolement inter-origines | 0 | Signalé, mais non noté : COOP, COEP et CORP dépendent de la situation |
Comment le score est calculé
Chaque critère se voit attribuer un score compris entre 0 et 100, puis ces scores sont pondérés. Un critère marqué comme « non applicable » est exclu à la fois du numérateur et du dénominateur ; il n’a donc aucune incidence positive ou négative :
score = sum(points x weight) / sum(100 x weight) x 100
C’est pourquoi un site peut obtenir un bon score même s’il lui manque un en-tête, si tous les autres éléments sont solides, et pourquoi un CSP parfait ne sauve pas un site qui n’a rien d’autre.
Trois résultats qui ne se résument pas à une simple présence ou absence
-
max-age=0obtiennent un score pire qu’un en-tête HSTS manquant. C’est la méthode documentée pour désactiver HSTS : chaque visiteur est redirigé vers le protocole HTTP standard dès sa prochaine première requête. Un site qui n’a jamais envoyé cet en-tête n’a au moins jamais fait de promesse qu’il revient maintenant sur. -
frame-ancestorsest considéré comme une protection contre le framing. Il s’agit du remplaçant spécifié de X-Frame-Options ; ainsi, un site qui le configure correctement n’est pas pénalisé pour avoir supprimé l’ancien en-tête. -
Une politique CSP est lue, pas seulement détectée.
unsafe-inlineouunsafe-evaldans une directive de script, ou l’absence d’undefault-srcpour détecter les directives non nommées, entraîne des points de pénalité même si l’en-tête est présent.
Chaque constat mentionne la directive à modifier plutôt que simplement l’en-tête manquant. Voir Security Headers .
Classement réseau
Le rapport réseau n'attribue pas de note, il établit un classement. Un simple décompte total des rapports suffit à faire passer n'importe quel grand fournisseur d'hébergement pour un criminel : un fournisseur comptant un million de clients recevra toujours davantage de rapports qu'une plage de dix adresses, ce qui ne dit rien sur la façon dont il est géré.
Trois chiffres sont donc attribués à chaque réseau dans les données :
| Chiffre | Ce qu’il distingue |
|---|---|
| Adresses répertoriées ici | L'ampleur de la présence du réseau dans les données |
| Nombre de Reports par adresse | Un grand fournisseur par rapport à un fournisseur très actif |
| Nombre total de rapports | Contexte uniquement, cela découle des deux premiers |
L'écart entre les deux premières positions en est le résultat. Un grand fournisseur se classe en tête en nombre d'adresses et en bas du classement en nombre de rapports par adresse. Un réseau concentré fait l'inverse, et c'est cette tendance qui mérite d'être prise en compte : bloquer une plage entière est une décision que le deuxième graphique soutient, contrairement au premier .
Comment le centile est-il calculé ?
Tous les réseaux comportant au moins un rapport et ne figurant pas sur la Whitelist sont regroupés, les trois chiffres sont triés, puis une échelle de 101 niveaux est établie, allant du 0e au 100e centile. Une recherche permet ensuite de placer le réseau sur cette échelle. Celle-ci est reconstruite une fois par jour et partagée par chaque requête, de sorte qu’une simple recherche ne parcourt jamais la table d’adresses.
Les adresses figurant sur la Whitelist sont totalement exclues du classement. Sinon, elles feraient basculer la distribution vers zéro et donneraient une image plus négative que la réalité de chaque réseau ordinaire.
Ce qu’un classement élevé ne signifie pas
Deux des réseaux les plus denses dans les données sont des services de scan. Ils génèrent des Reports parce qu’ ils scannent Internet délibérément, et non parce qu’ils sont compromis. Les Reports par adresse indiquent où l’activité est concentrée ; leur interprétation nécessite toutefois le contexte fourni par l’opérateur. Il en va de même pour les FAI grand public derrière un NAT de niveau opérateur, où une seule adresse achemine le trafic de nombreux abonnés.
Voir le rapport ASN. Pour le score d’une seule adresse, qui repose sur une arithmétique entièrement différente, voir le Confidence Score.
Dernière mise à jour: · Maintenu par l’équipe ReportedIP