Vue d’ensemble — à quoi cela sert
La consultation de réputation d’IP est une capacité partagée : cliquez sur une IP source suspecte (src_ip) n’importe où dans l’espace Sécurité et le serveur interroge pour vous les renseignements sur les menaces d’AbuseIPDB, puis affiche le résultat dans une fenêtre intégrée à l’application. Vous ne quittez jamais la console : vous jugez « à quel point cette IP est connue » là même où vous effectuez le triage.
Caractéristiques principales :
- Consultation pure (lecture seule). Cette fonction appelle uniquement
/api/v2/checkd’AbuseIPDB. Elle ne signale ni ne publie l’IP à l’extérieur — le signalement sortant (coopération internationale) relève d’une phase de réponse distincte et différée. - Jauge d’indice d’abus 0–100, complétée par le nombre de signalements, les déclarants distincts, le type d’usage, le FAI, le pays, le domaine, les indicateurs Tor/liste blanche et l’historique des signalements récents — le tout normalisé.
- Rotation entre plusieurs clés. Le pool de clés AbuseIPDB enregistré dans API de réputation est consommé dans l’ordre ; en cas de 429 (quota dépassé) ou de 401/403 (problème de clé), le service bascule automatiquement vers la clé suivante (mutualisation des quotas).
- Cache d’une heure par IP. Pour préserver le quota de 1000 requêtes/jour de l’offre gratuite, les consultations répétées de la même IP en moins d’une heure renvoient le résultat mis en cache.
- Mixin partagé. Menaces, Détections, Vue d’ensemble de la sécurité et Liste de blocage réutilisent tous le même composant de fenêtre.
Le bouton en direct de cet article ouvre l’espace Sécurité (
/security). La consultation de réputation n’est pas une page autonome : c’est une fenêtre partagée qui apparaît lorsque vous cliquez sur le symbole bouclier-loupe (.infr-ipsym) à côté d’une IP ou sur un bouton [Vérifier la réputation] d’un écran Sécurité.
Quand l’utiliser
- Lors du triage des IP attaquantes les plus graves dans Menaces — est-elle vraiment malveillante, ou s’agit-il d’un scanner/botnet connu ?
- Pour justifier qu’une IP fautive JA3 ou une IP anormale Kitsune dans Détections constitue bien une menace réelle.
- Pour recouper la réputation externe d’une cible avant de la bloquer ou de la débloquer dans Liste de blocage et réputation.
- Pour parcourir rapidement la réputation d’une IP depuis les panneaux des principales IP menaçantes / des fautifs JA3 de la Vue d’ensemble de la sécurité.
Disposition
La fenêtre (security/partials/abuse-modal.blade.php) s’affiche dans l’un de ces trois états selon le résultat de la consultation.
Succès — carte de réputation
| Zone | Contenu |
|---|---|
| Jauge d’indice | Anneau conique de 0–100 avec score% au centre. La couleur de la tonalité varie selon le score (voir le tableau des verdicts). |
| Étiquette de verdict | No reports (Aucun signalement) / Low risk (Risque faible) / Elevated (Risque élevé) / High risk (Risque important) |
| Indicateurs | Badges Tor node (is_tor) · Whitelisted (is_whitelisted) |
| Deux grands chiffres | Total des signalements · déclarants distincts |
| Métadonnées | Pays · type d’usage · FAI · domaine · date du dernier signalement |
| Signalements récents | Jusqu’à 6 — puces de catégorie + pays du déclarant + heure + commentaire (200 caractères max.) |
| Horodatage de consultation | Moment où le serveur a effectué la consultation (checked_at) |
Score d’indice → tonalité du verdict
| Score | Verdict | Tonalité | Signification |
|---|---|---|---|
| 0 | Aucun signalement (clean) | good | Aucun signalement d’abus sur cette période |
| 1–24 | Risque faible (low) | info | Quelques signalements — à titre informatif |
| 25–74 | Risque élevé (elevated) | warn | Antécédents d’abus significatifs |
| 75–100 | Risque important (high) | crit | Signal malveillant marqué |
États « non configuré » / échec
- Aucune clé configurée : icône d’alerte de clé + avis. Utilisez le bouton [Ouvrir AbuseIPDB] du pied de page pour consulter directement le site externe.
- Échec de la consultation : quota dépassé, erreur réseau, etc. Réessayez sous peu ou repliez-vous sur le lien externe.
Boutons d’action du pied de page
| Bouton | Action |
|---|---|
| Copier l’IP | Copie l’IP dans le presse-papiers (repli sur execCommand dans les contextes non sécurisés) |
| Consultation d’IP | Renvoie vers Connexions IP (/infra/traffic/ips?src_ip=…) |
| Ouvrir AbuseIPDB | Ouvre abuseipdb.com/check/{ip} externe dans un nouvel onglet |
| Ajouter à la liste de blocage | Lien profond pré-remplissant Liste de blocage (/security/blocklist?add={ip}) |
Mode d’emploi
- Sur un écran Sécurité (Menaces, Détections, Vue d’ensemble, Liste de blocage), cliquez sur le symbole bouclier-loupe ou sur le bouton [Vérifier la réputation] à côté d’une IP.
- La fenêtre s’ouvre avec un indicateur de chargement et le frontend demande la consultation au serveur :
GET /security/ip-reputation?ip=203.0.113.10
- Le serveur valide strictement l’IP (
filter_var FILTER_VALIDATE_IP), puis interroge via AbuseIpdbService et renvoie du JSON normalisé. - Examinez la jauge, les chiffres et les signalements récents. Utilisez les boutons du pied de page pour copier, tracer ou bloquer selon les besoins.
Schéma de réponse (normalisé)
En cas de succès, le serveur renvoie le JSON consommé par la fenêtre :
{
"ok": true,
"configured": true,
"ip": "203.0.113.10",
"score": 84,
"reports": 128,
"distinct_users": 41,
"country": "CN",
"usage": "Data Center/Web Hosting/Transit",
"isp": "Example Hosting Ltd",
"domain": "example-host.net",
"is_tor": false,
"is_whitelisted": false,
"last_reported": "2026-08-12T22:14:07+00:00",
"recent": [
{ "at": "2026-08-12T22:14:07+00:00", "country": "US", "categories": [18, 22], "comment": "SSH brute-force" }
],
"checked_at": "2026-08-13 09:31:20",
"external_url": "https://www.abuseipdb.com/check/203.0.113.10"
}
En cas d’échec maîtrisé :
{ "ok": false, "configured": false, "external_url": "https://www.abuseipdb.com/check/203.0.113.10" }
| Champ | Source (AbuseIPDB) | Signification |
|---|---|---|
score |
abuseConfidenceScore | Indice d’abus 0–100 |
reports |
totalReports | Total des signalements |
distinct_users |
numDistinctUsers | Nombre de déclarants distincts |
country |
countryCode | Code pays |
usage |
usageType | Usage (centre de données / FAI / …) |
isp / domain |
isp / domain | FAI · domaine |
is_tor |
isTor | Indicateur de nœud de sortie Tor |
is_whitelisted |
isWhitelisted | Liste blanche AbuseIPDB |
last_reported |
lastReportedAt | Date du dernier signalement |
recent[] |
reports[] | Signalements récents (6 max., commentaire tronqué à 200 caractères) |
Catégories de signalement (1–23)
recent[].categories est un tableau d’identifiants numériques. La fenêtre affiche les libellés via la table de langue security.abuse.cat.
| ID | Libellé | ID | Libellé | ID | Libellé |
|---|---|---|---|---|---|
| 1 | Compromission DNS | 9 | Proxy ouvert | 17 | Usurpation |
| 2 | Empoisonnement DNS | 10 | Spam web | 18 | Force brute |
| 3 | Commandes frauduleuses | 11 | Spam par e-mail | 19 | Robot web malveillant |
| 4 | Attaque DDoS | 12 | Spam de blog | 20 | Hôte compromis |
| 5 | Force brute FTP | 13 | IP de VPN | 21 | Attaque d’application web |
| 6 | Ping of Death | 14 | Balayage de ports | 22 | SSH |
| 7 | Hameçonnage | 15 | Piratage | 23 | Ciblage IoT |
| 8 | Fraude VoIP | 16 | Injection SQL |
Sources de données
Cette fonction ne crée aucune nouvelle table. Elle repose uniquement sur un appel d’API externe + un registre de clés + un cache.
| Composant | Description |
|---|---|
| API AbuseIPDB | https://api.abuseipdb.com/api/v2/check (verbose=1, maxAgeInDays=valeur du fournisseur·90 par défaut). Délai d’expiration de 8 secondes. |
AbuseIpdbService |
Consulte, normalise, met en cache et consomme les clés en rotation. check($ip) (avec cache) · checkWithKey() (test d’une seule clé par l’administrateur, sans cache). |
ReputationProviderService |
Source de vérité du pool de clés. Fournit les lignes actives de infr_reputation_provider triées par priority·id avec un cache de 30 s, rotated() pour la rotation, et se replie sur .env ABUSEIPDB_KEY si aucune n’est enregistrée. |
infr_reputation_provider |
Table de registre multi-clés AbuseIPDB (migration 000733). Les clés sont stockées en secret_enc (Crypt, écriture seule) — jamais renvoyées au navigateur. Gérées dans API de réputation. |
| Cache | Clé Cache infr:sec:abuse:{ip}, TTL de 3600 s (1 heure). Le compteur de rotation est infr:reputation:rr. |
config/services.php |
abuseipdb.key (=.env ABUSEIPDB_KEY) · abuseipdb.max_age_days (90 par défaut). Repli uniquement lorsqu’aucune clé enregistrée n’existe. |
Flux de rotation des clés / bascule
check(ip)
├ cache hit? → return
└ miss → iterate providers.rotated()
key#1 → 200? → normalize·cache·return
→ 429/401/403 → fail over to next key (secret never printed)
key#2 → …
all fail → { ok:false, error:"http_429"|"unreachable" }
Enregistrez plusieurs clés de l’offre gratuite et leurs quotas se mutualisent. Lorsqu’une clé épuise son quota quotidien et renvoie un 429, le service passe automatiquement à la suivante — les équipes fortement sollicitées par les investigations devraient enregistrer 2–3 clés dans API de réputation.
Accès
- Point d’accès de consultation
GET /security/ip-reputation: comme il s’agit d’une consultation pure, il n’y a ni reconfirmation renforcée ni journal d’audit. Il se trouve derrière l’espace de menu Sécurité (min_req 2), si bien que le personnel de sécurité (staff=5) et au-delà y accède en pratique. Il ne publie rien à l’extérieur, ce n’est donc pas une action destructrice. - IP invalide : l’échec de la validation
filter_varrenvoie HTTP 422{"ok":false,"message":"invalid_ip"}. - Gestion des clés API de réputation : le CRUD, le test en direct et le glisser-déposer des priorités sur
infr_reputation_providersont réservés à l’administrateur (admin=10, level≥5) et audités. Les clés sont stockées chiffrées et ne peuvent être que remplacées ou effacées lors de l’édition. - Aucune fuite de secret : les clés d’API ne fuitent jamais dans les réponses ni dans les corps d’erreur (les erreurs ne sont consignées que sous la forme d’une chaîne
http_STATUS).
Dépannage et FAQ
La fenêtre indique « clé d’API non configurée »
Aucune clé n’est enregistrée dans infr_reputation_provider et .env ABUSEIPDB_KEY est vide. Ajoutez une clé AbuseIPDB dans API de réputation ou définissez ABUSEIPDB_KEY=YOUR_KEY dans le .env. En attendant, utilisez le bouton [Ouvrir AbuseIPDB] pour consulter le site externe.
« Échec de la consultation » revient sans cesse
- 429 (quota dépassé) : vous avez peut-être épuisé les 1000 requêtes/jour de l’offre gratuite. Enregistrez des clés supplémentaires pour mutualiser le quota, ou réessayez le lendemain.
- 401/403 (problème de clé) : la clé est expirée, mal saisie ou inactive. Vérifiez-la avec [Test en direct] dans API de réputation.
- Réseau (unreachable) : vérifiez que la sortie vers
api.abuseipdb.com(443) n’est pas bloquée depuis l’hôte de la console.
Une IP que je viens de bloquer affiche encore un score faible
Les résultats sont mis en cache par IP pendant 1 heure (infr:sec:abuse:{ip}). Si vous avez besoin d’une valeur fraîche, relancez la requête après une heure au maximum. Ce cache existe pour préserver votre quota gratuit.
Puis-je signaler l’IP à AbuseIPDB depuis ici ?
Non. Cette fonction est réservée à la consultation. L’envoi de signalements (coopération internationale) relève d’une phase de réponse distincte et différée — rien n’est publié à l’extérieur ici.
Je ne vois que 6 signalements récents
L’étape de normalisation ne conserve que les 6 plus récents (MAX_REPORTS=6). Consultez l’historique complet via [Ouvrir AbuseIPDB] sur le site externe.
C’est une IP interne ou en liste blanche, mais le bouton de consultation est masqué
Les écrans Sécurité marquent les IP des instances enregistrées (votre propre réseau) d’un badge Internal et masquent le bouton de réputation (SecurityScope) — cela évite la confusion lorsque les étiquettes directionnelles de Suricata désignent notre propre serveur comme « source ». Les définitions de réseau interne se gèrent dans Politique d’exploitation.
Voir aussi
- Gestion de l’API de réputation — registre multi-clés AbuseIPDB, rotation, test en direct
- Menaces — vérifier la réputation d’une IP pendant le triage des entités de menace IDS
- Détections · JA3 — vérifier la réputation des IP fautives JA3 ou anormales
- Liste de blocage et réputation — liste de blocage + recoupement de réputation + lien profond de blocage
- Vue d’ensemble de la sécurité — entonnoir de défense et principales IP menaçantes
- Liste blanche — exemption de blocage et mise en liste blanche automatique par innocence srct
