Configurazione della Protezione dalle Minacce
Auris fornisce tre livelli di protezione configurabili che lavorano insieme nella pipeline di sicurezza del login: regole IP (blocco a livello di rete), rilevamento login sospetti (analisi comportamentale) e CAPTCHA (mitigazione bot). Ogni livello opera indipendentemente e può essere configurato per soddisfare i tuoi requisiti di sicurezza.
Questa guida illustra la configurazione pratica di ogni livello e spiega come si inseriscono nella pipeline di login completa.
Panoramica dei Livelli di Protezione
| Livello | Cosa fa | Dove viene eseguito | Impatto sulla latenza |
|---|---|---|---|
| Liste di IP Consentiti/Bloccati | Blocca o consente richieste in base all’IP/range CIDR sorgente | Prima dell’autenticazione | Trascurabile (corrispondenza CIDR in memoria) |
| CAPTCHA | Sfida bot e script automatizzati | Prima dell’autenticazione | 100-500ms (API di verifica esterna) |
| Rilevamento Login Sospetti | Rileva comportamenti di login anomali (nuovo dispositivo, viaggio impossibile, VPN) | Dopo l’autenticazione | 50-300ms (lookup GeoIP) |
Tutti e tre i livelli non sono bloccanti l’uno per l’altro — configurare uno non influisce sugli altri.
Liste di IP Consentiti/Bloccati
Le regole IP usano la notazione CIDR per controllare quali indirizzi IP possono accedere agli endpoint di autenticazione del tuo tenant.
Tipi di Regola e Precedenza
| Tipo di regola | Comportamento |
|---|---|
| BLOCK | Rifiuta immediatamente le richieste dagli IP corrispondenti con HTTP 403 |
| ALLOW | Consenti esplicitamente il traffico dagli IP corrispondenti |
Precedenza: Le regole BLOCK hanno sempre la precedenza sulle regole ALLOW nello stesso scope. Se un IP corrisponde sia a una regola BLOCK che a una ALLOW, viene bloccato.
Scope
Le regole possono essere scoped a due livelli:
- Scope tenant (
scope: TENANT) — si applica a tutte le applicazioni nel tenant - Scope applicazione (
scope: APPLICATION) — si applica solo a un’applicazione specifica
Le regole con scope applicazione vengono valutate dopo le regole con scope tenant. Un BLOCK a livello tenant non può essere sovrascritto da un ALLOW a livello applicazione.
Configurazione delle Regole IP
Naviga alle Regole IP
Nella Console Auris, vai su Impostazioni → Regole IP.
Crea una Regola di Blocco
Clicca Aggiungi Regola e configura:
{
"cidr": "203.0.113.0/24",
"type": "BLOCK",
"scope": "TENANT",
"label": "Sorgente di attacco nota",
"note": "Bloccato dopo attacco credential stuffing il 01/06/2025"
}Crea un Blocco Temporaneo
Per blocchi a tempo limitato (es. durante un attacco attivo), abilita il flag temporaneo:
{
"cidr": "198.51.100.42/32",
"type": "BLOCK",
"scope": "TENANT",
"label": "Blocco temporaneo - attacco attivo",
"isTemporary": true,
"expiresAt": "2025-07-01T00:00:00Z"
}Le regole temporanee vengono automaticamente disattivate dopo il tempo di scadenza.
Crea una Lista Consentiti per l’Ufficio
Se vuoi assicurarti che i tuoi IP aziendali siano sempre autorizzati (anche durante blocchi ampi):
{
"cidr": "10.0.0.0/8",
"type": "ALLOW",
"scope": "TENANT",
"label": "Rete aziendale"
}Gestione Programmatica
Le regole IP possono essere gestite tramite API per una risposta automatizzata agli incidenti:
// Blocca un range di IP programmaticamente dopo aver rilevato un attacco
await fetch('https://auth.tuodominio.com/api/ip-rules', {
method: 'POST',
headers: {
'Authorization': `Bearer ${adminToken}`,
'Content-Type': 'application/json',
'x-tenant': 'il-tuo-tenant',
},
body: JSON.stringify({
cidr: '192.0.2.0/24',
type: 'BLOCK',
scope: 'TENANT',
label: 'Blocco automatico - rate limit superato',
isTemporary: true,
expiresAt: new Date(Date.now() + 24 * 60 * 60 * 1000).toISOString(),
}),
})Riferimento rapido CIDR
| Notazione | Indirizzi | Esempio |
|---|---|---|
/32 | 1 (IP singolo) | 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 |
Rilevamento Login Sospetti
Dopo che le credenziali dell’utente sono verificate, Auris analizza il contesto del login per anomalie comportamentali usando cinque rilevatori indipendenti.
Metodi di Rilevamento
1. Nuovo Dispositivo
Un fingerprint hash viene calcolato da user agent del browser, risoluzione dello schermo e altri segnali stabili. I dispositivi alla prima visita vengono segnalati. Il fingerprint viene registrato dopo il login riuscito per il confronto futuro.
2. Nuovo Indirizzo IP
Auris traccia gli indirizzi IP da cui un utente ha precedentemente eseguito il login. Un login da un IP non visto per questo account attiva il rilevatore.
3. Nuovo Paese
La ricerca GeoIP determina il paese dell’IP di login. Un paese non visto in precedenza nella cronologia dei login dell’utente attiva il rilevatore.
4. Viaggio Impossibile
La distanza geografica tra il login corrente e quello più recente viene divisa per il tempo trascorso per calcolare la velocità di viaggio implicita. Se la velocità supera la soglia configurata (default: 800 km/h), il login viene segnalato come viaggio impossibile.
5. VPN / Proxy / Datacenter
I metadati GeoIP identificano gli IP appartenenti a provider VPN noti, proxy o datacenter cloud. Questi vengono segnalati di default ma possono essere consentiti per le organizzazioni i cui utenti usano comunemente VPN.
Configurazione delle Azioni
Ogni rilevatore può essere configurato indipendentemente con una di quattro azioni:
| Azione | Effetto |
|---|---|
log | Registra l’evento solo nei log di audit. Nessun impatto sull’utente. |
notify | Invia un’email di notifica all’utente. Il login procede. |
block | Rifiuta completamente il login. L’utente deve contattare un amministratore. |
require_mfa | Consenti il login ma forza il completamento MFA, anche se l’MFA non è normalmente richiesta per questo utente. |
Configura tramite Console → Impostazioni → Rilevamento Login Sospetti:
| Rilevatore | Azione consigliata | Note |
|---|---|---|
| Nuovo dispositivo | notify | Avvisa l’utente, ma non bloccare — i nuovi dispositivi sono comuni |
| Nuovo IP | log | La maggior parte degli utenti ha IP dinamici. Il blocco sarebbe troppo aggressivo. |
| Nuovo paese | require_mfa | Segnale forte di compromissione. Forza la verifica MFA. |
| Viaggio impossibile | block | Segnale molto forte. Blocca e avvisa. |
| VPN/proxy | log | Dipende dalla tua base utenti. Blocca se l’uso di VPN non è previsto. |
Provider GeoIP
| Provider | Configurazione | Latenza | Privacy |
|---|---|---|---|
| ip-api.com (default) | Nessuna configurazione richiesta | 50-200ms per login (chiamata API esterna) | IP inviati a servizio di terze parti |
| MaxMind GeoLite2 | GEO_IP_PROVIDER=maxmind, MAXMIND_DB_PATH=/percorso/al/db | <1ms (lookup su file locale) | Nessuna chiamata esterna |
Per deployment in produzione con alto volume di login, usa il database locale MaxMind per evitare i rate limit sul livello gratuito di ip-api.com e per eliminare la dipendenza da API esterne. Un account MaxMind gratuito è necessario per scaricare il database GeoLite2.
Revisione degli eventi
Gli eventi di login sospetti sono visibili in Console → Impostazioni → Rilevamento Login Sospetti → Eventi. Ogni evento mostra:
- Email e ID utente
- Motivo del rilevamento (nuovo dispositivo, viaggio impossibile, ecc.)
- Gravità (bassa, media, alta)
- Azione intrapresa (registrato, notificato, bloccato, MFA richiesta)
- Indirizzo IP, paese e informazioni sul dispositivo
- Timestamp
Gli amministratori possono contrassegnare gli eventi come revisionati per tracciare lo stato dell’indagine.
CAPTCHA
Il CAPTCHA protegge le pagine di login, signup e reset password dai bot automatizzati. Auris supporta tre provider e tre modalità di attivazione.
Provider Supportati
| Provider | Tipo | Configurazione |
|---|---|---|
| Cloudflare Turnstile | Proof-of-work, nessuna sfida con immagini | dash.cloudflare.com → Turnstile → Aggiungi sito |
| hCaptcha | Sfide basate su immagini | dashboard.hcaptcha.com |
| reCAPTCHA v3 | Basato su punteggio, invisibile | www.google.com/recaptcha |
Cloudflare Turnstile è consigliato per la maggior parte dei deployment. Fornisce una forte protezione dai bot senza sfide con immagini (migliore esperienza utente) e ha un generoso livello gratuito.
Modalità di Attivazione
| Modalità | Quando appare il CAPTCHA | Ideale per |
|---|---|---|
ALWAYS | Ogni tentativo di login, signup e reset password | Ambienti ad alta sicurezza |
ON_SUSPICIOUS | Quando il punteggio di rischio MFA adattiva supera la soglia configurata | Sicurezza e UX bilanciate |
AFTER_FAILURES | Dopo N tentativi di login consecutivi falliti dallo stesso IP | Minimo attrito per utenti legittimi |
Passi di Configurazione
Scegli un provider
Seleziona il tuo provider CAPTCHA in Console → Impostazioni → CAPTCHA.
Configura le chiavi
Inserisci la Site Key (usata nel browser per mostrare il widget CAPTCHA) e la Secret Key (usata lato server per verificare le risposte) dal dashboard del tuo provider.
Imposta la modalità di attivazione
Scegli quando deve apparire il CAPTCHA:
- Per
AFTER_FAILURES, imposta la soglia di fallimenti (es. 3 fallimenti consecutivi) - Per
ON_SUSPICIOUS, la soglia è derivata dal punteggio di rischio MFA adattiva
Imposta la soglia del punteggio (solo reCAPTCHA v3)
reCAPTCHA v3 restituisce un punteggio tra 0.0 (probabilmente bot) e 1.0 (probabilmente umano). Imposta la soglia minima del punteggio per superare la verifica (consigliato: 0.5).
Abilita sulle pagine
Attiva/disattiva su quali pagine è richiesto il CAPTCHA:
- Pagina di login (consigliato)
- Pagina di signup (consigliato)
- Pagina di reset password (opzionale)
La verifica CAPTCHA viene eseguita lato server sull’API Auris prima che le credenziali vengano controllate. Anche se un client bypassa il widget CAPTCHA nel browser, la richiesta di login fallirà senza un token di verifica valido dal provider CAPTCHA.
La Pipeline Completa di Sicurezza del Login
Quando un utente tenta di eseguire il login, la richiesta passa attraverso tutti i livelli di protezione in sequenza. Ogni livello può cortocircuitare la pipeline:
Richiesta di login in arrivo
|
v
1. Controllo IP Allow/Block
Regola BLOCK corrisposta? --> HTTP 403, stop
|
v
2. Verifica CAPTCHA (se configurata)
Token non valido o mancante? --> HTTP 400, stop
|
v
3. Rate Limiting
Limite per IP o per utente superato? --> HTTP 429, stop
|
v
4. Controllo Blocco Brute-Force
Account o IP bloccato? --> HTTP 423, stop
|
v
5. Autenticazione Keycloak
Credenziali non valide? --> registra fallimento, HTTP 401, stop
|
v
6. Analisi Login Sospetti
Esegui 5 rilevatori, esegui azioni configurate
Azione = block? --> HTTP 403, stop
Azione = require_mfa? --> forza step MFA
|
v
7. Calcolo Punteggio di Rischio MFA Adattiva
Punteggio pesato a 5 fattori
Punteggio sopra soglia? --> richiedi MFA step-up
|
v
8. Emissione Token
Imposta claim ACR/AMR
Restituisce access token + refresh tokenI passi 1-4 sono controlli rapidi e sincroni che filtrano il traffico chiaramente malevolo prima di raggiungere i passi di autenticazione e analisi più costosi.
Best Practice per la Produzione
-
Inizia con il logging: Abilita tutti i rilevatori di login sospetti in modalità
logprima. Revisiona gli eventi per una settimana per capire la tua baseline prima di passare ablockorequire_mfa. -
Usa blocchi IP temporanei: Durante un attacco attivo, crea regole BLOCK temporanee con scadenza di 24-48 ore invece di blocchi permanenti. Questo previene blocchi involontari a lungo termine.
-
Combina CAPTCHA con rate limiting: Usa la modalità di attivazione
AFTER_FAILURESin modo che gli utenti legittimi non vedano mai il CAPTCHA, mentre gli attaccanti lo incontrano dopo 3-5 tentativi falliti. -
Deploya MaxMind localmente: Per deployment che gestiscono più di 1000 login all’ora, passa da ip-api.com a MaxMind GeoLite2 per evitare i rate limit della API gratuita di ip-api.com e ridurre la latenza.
-
Monitora la pipeline: Revisiona regolarmente i log di audit per i pattern. Un improvviso picco di rilevamenti
impossible_travelonew_countrypuò indicare un attacco credential stuffing. -
Combina con MFA: La protezione dalle minacce funziona meglio insieme all’Autenticazione Multi-Fattore. Abilita l’MFA per tutti gli utenti e usa il rilevamento login sospetti per attivare l’autenticazione step-up per i login anomali.
Endpoint API
/api/ip-rulesRequires: manage:usersElenca tutte le regole IP per il tenant. Supporta il filtraggio per tipo, scope e stato attivo.
/api/ip-rulesRequires: manage:usersCrea una nuova regola IP di tipo allow o block.
/api/ip-rules/:idRequires: manage:usersAggiorna una regola IP esistente (cambia etichetta, estendi la scadenza, attiva/disattiva).
/api/ip-rules/:idRequires: manage:usersElimina una regola IP.
/api/suspicious-login/eventsRequires: manage:usersElenca gli eventi di login sospetti. Filtrabile per gravità, motivo, utente e intervallo di date.
/api/suspicious-login/events/:id/reviewRequires: manage:usersContrassegna un evento di login sospetto come revisionato.
/api/suspicious-login/configRequires: manage:usersOttieni la configurazione corrente del rilevamento login sospetti.
/api/suspicious-login/configRequires: manage:usersAggiorna le impostazioni di rilevamento login sospetti (abilita/disabilita rilevatori, imposta azioni, configura soglie).
/api/captcha/configRequires: manage:usersOttieni la configurazione CAPTCHA corrente.
/api/captcha/configRequires: manage:usersAggiorna le impostazioni CAPTCHA (provider, chiavi, modalità di attivazione, soglia del punteggio).
Permessi Richiesti
| Operazione | Permesso |
|---|---|
| Gestisci regole IP | manage:users |
| Visualizza/revisiona eventi login sospetti | manage:users |
| Configura il rilevamento login sospetti | manage:users |
| Configura CAPTCHA | manage:users |
| Configura impostazioni sicurezza (Console) | Solo OWNER o ADMIN del tenant |
Guide Correlate
- Protezione dagli Attacchi — Rate limiting, blocco brute-force, sicurezza delle password e riferimento completo alla pipeline
- Autenticazione Multi-Fattore — TOTP, SMS OTP, WebAuthn e MFA adattiva
- Implementare DPoP — Token binding per prevenire il furto dei token
- Gestione delle Sessioni — Gestione delle sessioni utente e policy di sessione