Configuration de la Protection contre les Menaces
Auris fournit trois couches de protection configurables qui fonctionnent ensemble dans le pipeline de sécurité de connexion : règles IP (blocage au niveau réseau), détection de connexions suspectes (analyse comportementale) et CAPTCHA (atténuation des bots). Chaque couche opère indépendamment et peut être configurée selon tes exigences de sécurité.
Ce guide détaille la configuration pratique de chaque couche et explique comment elles s’intègrent dans le pipeline de connexion complet.
Aperçu des Couches de Protection
| Couche | Ce qu’elle fait | Où elle s’exécute | Impact sur la latence |
|---|---|---|---|
| Listes d’IP Autorisées/Bloquées | Bloque ou autorise les requêtes en fonction de l’IP/plage CIDR source | Avant l’authentification | Négligeable (correspondance CIDR en mémoire) |
| CAPTCHA | Défie les bots et les scripts automatisés | Avant l’authentification | 100-500ms (API de vérification externe) |
| Détection de Connexions Suspectes | Détecte les comportements de connexion anomaux (nouvel appareil, voyage impossible, VPN) | Après l’authentification | 50-300ms (recherche GeoIP) |
Les trois couches ne se bloquent pas mutuellement — configurer l’une n’affecte pas les autres.
Listes d’IP Autorisées/Bloquées
Les règles IP utilisent la notation CIDR pour contrôler quelles adresses IP peuvent accéder aux endpoints d’authentification de ton tenant.
Types de Règles et Priorité
| Type de règle | Comportement |
|---|---|
| BLOCK | Refuse immédiatement les requêtes depuis les IP correspondantes avec HTTP 403 |
| ALLOW | Autorise explicitement le trafic depuis les IP correspondantes |
Priorité : Les règles BLOCK ont toujours la priorité sur les règles ALLOW dans le même scope. Si une IP correspond à la fois à une règle BLOCK et à une règle ALLOW, elle est bloquée.
Scope
Les règles peuvent être scopées à deux niveaux :
- Scope tenant (
scope: TENANT) — s’applique à toutes les applications du tenant - Scope application (
scope: APPLICATION) — s’applique uniquement à une application spécifique
Les règles avec scope application sont évaluées après les règles avec scope tenant. Un BLOCK au niveau tenant ne peut pas être remplacé par un ALLOW au niveau application.
Configuration des Règles IP
Accède aux Règles IP
Dans la Console Auris, va sur Paramètres → Règles IP.
Crée une Règle de Blocage
Clique sur Ajouter une Règle et configure :
{
"cidr": "203.0.113.0/24",
"type": "BLOCK",
"scope": "TENANT",
"label": "Source d'attaque connue",
"note": "Bloqué après une attaque de credential stuffing le 01/06/2025"
}Crée un Blocage Temporaire
Pour des blocages limités dans le temps (ex. pendant une attaque active), active le flag temporaire :
{
"cidr": "198.51.100.42/32",
"type": "BLOCK",
"scope": "TENANT",
"label": "Blocage temporaire - attaque active",
"isTemporary": true,
"expiresAt": "2025-07-01T00:00:00Z"
}Les règles temporaires sont automatiquement désactivées après le délai d’expiration.
Crée une Liste Blanche pour le Bureau
Si tu souhaites t’assurer que tes IP d’entreprise sont toujours autorisées (même pendant des blocages larges) :
{
"cidr": "10.0.0.0/8",
"type": "ALLOW",
"scope": "TENANT",
"label": "Réseau d'entreprise"
}Gestion Programmatique
Les règles IP peuvent être gérées via API pour une réponse automatisée aux incidents :
// Bloque une plage d'IP programmatiquement après avoir détecté une attaque
await fetch('https://auth.votredomaine.com/api/ip-rules', {
method: 'POST',
headers: {
'Authorization': `Bearer ${adminToken}`,
'Content-Type': 'application/json',
'x-tenant': 'votre-tenant',
},
body: JSON.stringify({
cidr: '192.0.2.0/24',
type: 'BLOCK',
scope: 'TENANT',
label: 'Blocage automatique - limite de débit dépassée',
isTemporary: true,
expiresAt: new Date(Date.now() + 24 * 60 * 60 * 1000).toISOString(),
}),
})Référence Rapide CIDR
| Notation | Adresses | Exemple |
|---|---|---|
/32 | 1 (IP unique) | 203.0.113.42/32 |
/24 | 256 | 203.0.113.0/24 |
/16 | 65 536 | 203.0.0.0/16 |
/8 | 16 777 216 | 10.0.0.0/8 |
Détection de Connexions Suspectes
Une fois que les credentials de l’utilisateur sont vérifiés, Auris analyse le contexte de connexion pour des anomalies comportementales en utilisant cinq détecteurs indépendants.
Méthodes de Détection
1. Nouvel Appareil
Une empreinte hash est calculée depuis le user agent du navigateur, la résolution d’écran et d’autres signaux stables. Les appareils jamais vus auparavant sont signalés. L’empreinte est enregistrée après une connexion réussie pour les comparaisons futures.
2. Nouvelle Adresse IP
Auris trace les adresses IP depuis lesquelles un utilisateur a précédemment effectué une connexion. Une connexion depuis une IP jamais vue pour ce compte déclenche le détecteur.
3. Nouveau Pays
La recherche GeoIP détermine le pays de l’IP de connexion. Un pays jamais vu dans l’historique de connexions de l’utilisateur déclenche le détecteur.
4. Voyage Impossible
La distance géographique entre la connexion courante et la plus récente est divisée par le temps écoulé pour calculer la vitesse de déplacement implicite. Si la vitesse dépasse le seuil configuré (défaut : 800 km/h), la connexion est signalée comme voyage impossible.
5. VPN / Proxy / Datacenter
Les métadonnées GeoIP identifient les IP appartenant à des fournisseurs VPN connus, des proxies ou des datacenters cloud. Ces IP sont signalées par défaut mais peuvent être autorisées pour les organisations dont les utilisateurs se connectent couramment via VPN.
Configuration des Actions
Chaque détecteur peut être configuré indépendamment avec l’une des quatre actions :
| Action | Effet |
|---|---|
log | Enregistre l’événement uniquement dans les logs d’audit. Aucun impact sur l’utilisateur. |
notify | Envoie un e-mail de notification à l’utilisateur. La connexion continue. |
block | Refuse complètement la connexion. L’utilisateur doit contacter un administrateur. |
require_mfa | Autorise la connexion mais force la complétion MFA, même si la MFA n’est pas normalement requise pour cet utilisateur. |
Configure via Console → Paramètres → Détection de Connexions Suspectes :
| Détecteur | Action recommandée | Notes |
|---|---|---|
| Nouvel appareil | notify | Avertit l’utilisateur, mais ne bloque pas — les nouveaux appareils sont courants |
| Nouvelle IP | log | La plupart des utilisateurs ont des IP dynamiques. Le blocage serait trop agressif. |
| Nouveau pays | require_mfa | Signal fort de compromission. Force la vérification MFA. |
| Voyage impossible | block | Signal très fort. Bloquer et avertir. |
| VPN/proxy | log | Dépend de ta base d’utilisateurs. Bloque si l’utilisation VPN n’est pas attendue. |
Fournisseurs GeoIP
| Fournisseur | Configuration | Latence | Confidentialité |
|---|---|---|---|
| ip-api.com (défaut) | Aucune configuration requise | 50-200ms par connexion (appel API externe) | IPs envoyées à un service tiers |
| MaxMind GeoLite2 | GEO_IP_PROVIDER=maxmind, MAXMIND_DB_PATH=/chemin/vers/db | <1ms (recherche sur fichier local) | Aucun appel externe |
Pour les déploiements en production avec un volume élevé de connexions, utilise la base de données locale MaxMind pour éviter les limites de débit du niveau gratuit d’ip-api.com et pour éliminer la dépendance aux API externes. Un compte MaxMind gratuit est nécessaire pour télécharger la base de données GeoLite2.
Révision des Événements
Les événements de connexions suspectes sont visibles dans Console → Paramètres → Détection de Connexions Suspectes → Événements. Chaque événement affiche :
- Email et ID de l’utilisateur
- Raison de la détection (nouvel appareil, voyage impossible, etc.)
- Gravité (faible, moyenne, élevée)
- Action entreprise (enregistré, notifié, bloqué, MFA requise)
- Adresse IP, pays et informations sur l’appareil
- Horodatage
Les administrateurs peuvent marquer les événements comme révisés pour suivre l’état de l’investigation.
CAPTCHA
Le CAPTCHA protège les pages de connexion, d’inscription et de réinitialisation de mot de passe contre les bots automatisés. Auris supporte trois fournisseurs et trois modes d’activation.
Fournisseurs Supportés
| Fournisseur | Type | Configuration |
|---|---|---|
| Cloudflare Turnstile | Preuve de travail, sans défis d’images | dash.cloudflare.com → Turnstile → Ajouter un site |
| hCaptcha | Défis basés sur des images | dashboard.hcaptcha.com |
| reCAPTCHA v3 | Basé sur un score, invisible | www.google.com/recaptcha |
Cloudflare Turnstile est recommandé pour la plupart des déploiements. Il fournit une forte protection contre les bots sans défis d’images (meilleure expérience utilisateur) et dispose d’un généreux niveau gratuit.
Modes d’Activation
| Mode | Quand le CAPTCHA apparaît | Idéal pour |
|---|---|---|
ALWAYS | Chaque tentative de connexion, d’inscription et de réinitialisation de mot de passe | Environnements haute sécurité |
ON_SUSPICIOUS | Quand le score de risque de la MFA adaptative dépasse le seuil configuré | Équilibre sécurité et UX |
AFTER_FAILURES | Après N tentatives de connexion consécutives échouées depuis le même IP | Friction minimale pour les utilisateurs légitimes |
Étapes de Configuration
Choisis un Fournisseur
Sélectionne ton fournisseur CAPTCHA dans Console → Paramètres → CAPTCHA.
Configure les Clés
Saisis la Site Key (utilisée dans le navigateur pour afficher le widget CAPTCHA) et la Secret Key (utilisée côté serveur pour vérifier les réponses) depuis le tableau de bord de ton fournisseur.
Définis le Mode d’Activation
Choisis quand le CAPTCHA doit apparaître :
- Pour
AFTER_FAILURES, définis le seuil d’échecs (ex. 3 échecs consécutifs) - Pour
ON_SUSPICIOUS, le seuil est dérivé du score de risque de la MFA adaptative
Définis le Seuil de Score (reCAPTCHA v3 uniquement)
reCAPTCHA v3 retourne un score entre 0.0 (probablement un bot) et 1.0 (probablement humain). Définis le score minimum pour réussir la vérification (recommandé : 0.5).
Active sur les Pages
Active/désactive sur quelles pages le CAPTCHA est requis :
- Page de connexion (recommandé)
- Page d’inscription (recommandé)
- Page de réinitialisation de mot de passe (optionnel)
La vérification CAPTCHA est effectuée côté serveur sur l’API Auris avant que les credentials soient vérifiés. Même si un client contourne le widget CAPTCHA dans le navigateur, la requête de connexion échouera sans un token de vérification valide du fournisseur CAPTCHA.
Le Pipeline Complet de Sécurité de Connexion
Quand un utilisateur tente de se connecter, la requête passe par toutes les couches de protection en séquence. Chaque couche peut court-circuiter le pipeline :
Requête de connexion entrante
|
v
1. Vérification IP Allow/Block
Règle BLOCK correspondante ? --> HTTP 403, arrêt
|
v
2. Vérification CAPTCHA (si configuré)
Token invalide ou manquant ? --> HTTP 400, arrêt
|
v
3. Limitation de Débit
Limite par IP ou par utilisateur dépassée ? --> HTTP 429, arrêt
|
v
4. Vérification Blocage Brute-Force
Compte ou IP bloqué ? --> HTTP 423, arrêt
|
v
5. Authentification Keycloak
Credentials invalides ? --> enregistrer échec, HTTP 401, arrêt
|
v
6. Analyse de Connexions Suspectes
Exécute 5 détecteurs, exécute les actions configurées
Action = block ? --> HTTP 403, arrêt
Action = require_mfa ? --> force l'étape MFA
|
v
7. Calcul du Score de Risque MFA Adaptative
Score pondéré à 5 facteurs
Score au-dessus du seuil ? --> exiger MFA step-up
|
v
8. Émission de Token
Définit les claims ACR/AMR
Retourne access token + refresh tokenLes étapes 1-4 sont des vérifications rapides et synchrones qui filtrent le trafic clairement malveillant avant d’atteindre les étapes d’authentification et d’analyse plus coûteuses.
Bonnes Pratiques pour la Production
-
Commence par le logging : Active tous les détecteurs de connexions suspectes en mode
logd’abord. Révise les événements pendant une semaine pour comprendre ta baseline avant de passer àblockourequire_mfa. -
Utilise des blocages IP temporaires : Pendant une attaque active, crée des règles BLOCK temporaires avec une expiration de 24-48 heures plutôt que des blocages permanents. Cela prévient les blocages involontaires à long terme.
-
Combine CAPTCHA avec la limitation de débit : Utilise le mode d’activation
AFTER_FAILURESpour que les utilisateurs légitimes ne voient jamais le CAPTCHA, tandis que les attaquants le rencontrent après 3-5 tentatives échouées. -
Déploie MaxMind localement : Pour les déploiements qui gèrent plus de 1 000 connexions par heure, passe d’ip-api.com à MaxMind GeoLite2 pour éviter les limites de débit de l’API gratuite d’ip-api.com et réduire la latence.
-
Surveille le pipeline : Révise régulièrement les logs d’audit pour les patterns. Un pic soudain de détections
impossible_travelounew_countrypeut indiquer une attaque de credential stuffing. -
Combine avec la MFA : La protection contre les menaces fonctionne mieux avec l’Authentification Multi-Facteur. Active la MFA pour tous les utilisateurs et utilise la détection de connexions suspectes pour déclencher l’authentification step-up pour les connexions anomales.
Endpoints API
/api/ip-rulesRequires: manage:usersListe toutes les règles IP pour le tenant. Supporte le filtrage par type, scope et état actif.
/api/ip-rulesRequires: manage:usersCrée une nouvelle règle IP de type allow ou block.
/api/ip-rules/:idRequires: manage:usersMet à jour une règle IP existante (change le libellé, prolonge l’expiration, active/désactive).
/api/ip-rules/:idRequires: manage:usersSupprime une règle IP.
/api/suspicious-login/eventsRequires: manage:usersListe les événements de connexions suspectes. Filtrable par gravité, raison, utilisateur et plage de dates.
/api/suspicious-login/events/:id/reviewRequires: manage:usersMarque un événement de connexion suspecte comme révisé.
/api/suspicious-login/configRequires: manage:usersRécupère la configuration actuelle de la détection de connexions suspectes.
/api/suspicious-login/configRequires: manage:usersMet à jour les paramètres de détection de connexions suspectes (active/désactive les détecteurs, définit les actions, configure les seuils).
/api/captcha/configRequires: manage:usersRécupère la configuration CAPTCHA actuelle.
/api/captcha/configRequires: manage:usersMet à jour les paramètres CAPTCHA (fournisseur, clés, mode d’activation, seuil de score).
Permissions Requises
| Opération | Permission |
|---|---|
| Gérer les règles IP | manage:users |
| Voir/réviser les événements de connexions suspectes | manage:users |
| Configurer la détection de connexions suspectes | manage:users |
| Configurer le CAPTCHA | manage:users |
| Configurer les paramètres de sécurité (Console) | OWNER ou ADMIN du tenant uniquement |
Guides Associés
- Protection contre les Attaques — Limitation de débit, blocage brute-force, sécurité des mots de passe et référence complète du pipeline
- Authentification Multi-Facteur — TOTP, SMS OTP, WebAuthn et MFA adaptative
- Implémenter DPoP — Liaison de tokens pour prévenir le vol de tokens
- Gestion des Sessions — Gestion des sessions utilisateur et politiques de session