Confidence Score
Le Confidence Score est un nombre compris entre 0 et 100 qui exprime la probabilité qu'une adresse IP soit
malveillante. Il ne s'agit ni d'un nombre de signalements ni d'une note moyenne : il prend en compte le nombre de sources indépendantes ayant signalé l'adresse, la date à laquelle ces signalements ont été effectués, la gravité du comportement signalé, ainsi que la présence éventuelle
de signalements provenant d'un Honeypot vérifié. Chaque réponse API contenant
abuseConfidencePercentage comporte ce chiffre.
Comment le score est calculé
Quatre composantes sont additionnées, chacune étant plafonnée afin qu’aucun signal ne puisse à lui seul déterminer le score. Un bonus « Honeypot » est ensuite ajouté, et le total est limité à 100.
| Composante | Dérivé de | Maximum |
|---|---|---|
| Score du rapport | Nombre de signalements, chacun pondéré en fonction de son ancienneté | 30 |
| Score de diversité | Nombre de contributeurs distincts | 15 |
| Pondération en fonction de la date | Ancienneté des rapports les plus récents | 15 |
| Pondération de la gravité | Gravité moyenne des catégories signalées | 15 |
| Bonus « Honeypot » | Reports provenant de systèmes « Honeypot » vérifiés | 25 |
Diversité des signalants
Les reports provenant de sources différentes ont bien plus de poids que les reports répétés provenant d’une seule source. Un report signalé par dix sites différents est traité très différemment d’un report signalé dix fois par un seul site, même si les deux totalisent dix reports.
Deux contraintes garantissent ce principe :
- Moins de 5 Reports effectifs plafonnent le score à 49.
- Moins de 10 Reports valides plafonnent le score à 74.
- Un seul rapporteur ayant effectué plus d’un rapport plafonne le score à 60.
Les « signalements valides » comptent deux fois les signalements provenant de honeypots, car un honeypot ne génère aucun trafic légitime pouvant être confondu avec une attaque.
Dépréciation dans le temps
Les Reports perdent de leur poids à mesure qu’ils vieillissent, avec une demi-vie de 30 jours. Une adresse qui cesse d’attaquer est donc automatiquement retirée de la Blacklist, sans que quiconque ait à déposer de demande de suppression.
| Ancienneté du rapport | Poids restant |
|---|---|
| Récent | 100 % |
| 30 jours | 50 % |
| 60 jours | 25 % |
| 90 jours | 12,5 % |
| Au-delà | 10 % (minimum) |
La pondération n’atteint jamais zéro. Les antécédents d’abus restent vaguement visibles, ce qui explique pourquoi une adresse ayant un historique de plusieurs années se rétablit plus lentement qu’une adresse ayant connu un seul incident récent.
Rapports des Honeypots
Un Honeypot Server n’a pas d’utilisateurs réels ; par définition, toute requête qu’il reçoit est donc non sollicitée. Cela rend ses rapports exceptionnellement « propres », et ils sont pondérés en conséquence : ils comptent double dans le nombre effectif de Reports, ils ajoutent un bonus pouvant aller jusqu’à 25 points, et leur valeur diminue plus lentement que celle des Reports ordinaires.
Le bonus reste toutefois subordonné à la diversité. Un seul Honeypot signalant la même adresse à plusieurs reprises ne reçoit qu’un bonus réduit, et au-delà d’un certain seuil, il encourt une pénalité — sinon, un seul capteur bruyant pourrait fausser le score de l’ensemble du réseau. Voir Honeypot Server pour savoir comment en faire fonctionner un.
Agrégation des rafales
Les rapports répétés concernant la même adresse et provenant du même rapporteur dans un court laps de temps sont fusionnés en un seul enregistrement avec un compteur d’attaques. Une attaque Brute-Force générant 500 tentatives de Login infructueuses en deux minutes est donc enregistrée comme un seul incident prolongé plutôt que comme 500 éléments de preuve distincts.
Lecture de la ventilation via l’API
Ajout verbose=true à une /check requête renvoie les composants individuels
ainsi que le score final, ce qui constitue le moyen le plus rapide de comprendre pourquoi une adresse obtient tel ou tel score.
{
"data": {
"ip": "203.0.113.42",
"abuseConfidencePercentage": 75,
"confidenceBreakdown": {
"reportScore": 12.0,
"diversityScore": 8.0,
"recencyWeight": 10.5,
"severityWeight": 9.3,
"honeypotBonus": 15.0,
"maxConfidence": 100,
"constraintReasons": []
},
"debugInfo": {
"reportCount": 8,
"uniqueReporters": 4,
"honeypotReportsCount": 3,
"effectiveReportCount": 11,
"timeDampeningFactor": 0.85
}
}
}
constraintReasons est le champ à vérifier lorsqu’un score semble inférieur à ce que le nombre de rapports
laisse supposer : il indique le plafond qui a été appliqué. Consultez la
API Reference pour connaître le
format complet de la réponse.
Choisir un seuil
Le seuil approprié dépend des conséquences de son franchissement. Bloquer un client payant coûte plus cher que de laisser passer un scanner ; le seuil doit donc augmenter en fonction de la gravité de l’action.
| Score | Action raisonnable |
|---|---|
| 25–49 | Enregistrer l’incident ; demander au maximum de saisir un CAPTCHA |
| 50–74 | Limiter le débit, exiger une vérification supplémentaire |
| 75–89 | Bloquer au niveau de la couche applicative |
| 90–100 | Rejet au niveau de la couche réseau |
La Community Blacklist utilise 75 comme seuil d’inclusion ; les listes réseau par service utilisent 90, car un rejet au niveau du noyau ne laisse au visiteur aucun moyen de faire appel. Voir Blocage au niveau du réseau .
Si un score semble erroné
Les scores baissent d’eux-mêmes à mesure que les Reports vieillissent ; une adresse qui a cessé d’attaquer ne nécessite donc aucune intervention. Pour une adresse répertoriée par erreur — une passerelle NAT partagée, un serveur de messagerie qui a été brièvement compromis, un scanner exécuté avec autorisation —, voir « IP Delisting ».
Dernière mise à jour: · Maintenu par l’équipe ReportedIP