MFA Adattivo & Risk Scoring
L’MFA tradizionale è binario: o ogni login richiede un secondo fattore, o nessuno lo richiede. Questo crea una tensione tra sicurezza (richiedere sempre MFA) e user experience (MFA aggiunge attrito). L’MFA adattivo risolve questa tensione richiedendo l’autenticazione aggiuntiva solo quando il login sembra rischioso.
Auris implementa l’MFA adattivo attraverso un motore di risk scoring che valuta ogni tentativo di autenticazione su cinque dimensioni. Quando il punteggio di rischio calcolato supera una soglia configurabile, Auris intensifica i requisiti di autenticazione — richiedendo un fattore aggiuntivo, bloccando il tentativo o notificando l’utente.
Come Funziona l’MFA Adattivo
Il sistema MFA adattivo opera come step post-autenticazione. Dopo che le credenziali primarie dell’utente sono state verificate (password, magic link, login social), il motore di risk scoring valuta il contesto del login prima di emettere i token.
L’idea chiave: un utente che accede dal suo solito dispositivo, dal suo solito IP, al suo solito orario passa senza attrito. Lo stesso utente che accede da un nuovo dispositivo in un nuovo paese alle 3 di notte riceve una challenge MFA — o viene bloccato completamente.
Il Modello di Risk Scoring a 5 Fattori
Ogni fattore contribuisce con un punteggio ponderato alla valutazione totale del rischio. I singoli punteggi vengono combinati in un punteggio finale compreso tra 0 (nessun rischio) e 100 (rischio massimo).
Fattore 1: Reputazione IP
Il motore valuta la reputazione dell’indirizzo IP sorgente.
| Segnale | Contributo al Rischio |
|---|---|
| IP residenziale pulito | 0 (baseline) |
| Nodo di uscita VPN noto | +10 a +25 |
| Proxy o anonymizer | +15 a +30 |
| IP data center / cloud hosting | +10 a +20 |
| IP su blocklist di abusi noti | +30 a +50 |
| Nodo di uscita Tor | +25 a +40 |
Fattore 2: Device Trust
Il motore confronta l’impronta del dispositivo corrente con le impronte viste in precedenza per questo utente.
| Segnale | Contributo al Rischio |
|---|---|
| Dispositivo noto (impronta già vista) | 0 (baseline) |
| Nuovo dispositivo (impronta mai vista) | +15 a +25 |
| Calcolo impronta fallito | +10 |
Le impronte dei dispositivi sono calcolate come hash SHA-256 delle caratteristiche del browser (user agent, risoluzione schermo, fuso orario, lingua, plugin installati).
Fattore 3: Anomalia Geografica (Viaggio Impossibile)
Il motore verifica se la posizione del login è fisicamente plausibile dati i login recenti dell’utente.
| Segnale | Contributo al Rischio |
|---|---|
| Stessa città dell’ultimo login | 0 (baseline) |
| Stesso paese, città diversa | +5 |
| Paese diverso, tempo di viaggio plausibile | +10 a +15 |
| Paese diverso, tempo di viaggio impossibile | +30 a +50 |
Il viaggio impossibile viene rilevato usando la formula di Haversine per calcolare la distanza in linea d’aria tra le posizioni corrente e precedente, poi dividendo per il tempo trascorso per calcolare la velocità di viaggio richiesta. La velocità massima di viaggio predefinita è 900 km/h (velocità approssimativa di un aereo commerciale).
Il rilevamento del viaggio impossibile tiene conto dell’utilizzo VPN. Se l’IP è identificato come nodo di uscita VPN, il punteggio di anomalia geografica viene ridotto perché la posizione apparente potrebbe non riflettere la posizione reale dell’utente.
Fattore 4: Segnali Comportamentali
Il motore analizza i pattern nel comportamento di autenticazione dell’utente.
| Segnale | Contributo al Rischio |
|---|---|
| Login all’orario tipico dell’utente | 0 (baseline) |
| Login fuori dall’orario tipico (es. 3 AM ora locale) | +5 a +15 |
| Multipli tentativi falliti recenti (non ancora bloccato) | +10 a +20 |
| Login rapidi successivi su applicazioni diverse | +5 a +10 |
Fattore 5: Sensibilità dell’Azione
Azioni diverse hanno livelli di rischio intrinsecamente diversi, indipendentemente dal contesto dell’utente.
| Azione | Contributo al Rischio |
|---|---|
| Login standard | 0 (baseline) |
| Cambio password | +10 |
| Cambio email | +15 |
| Cambio metodo MFA (aggiunta/rimozione) | +20 |
| Accesso alla console admin | +15 |
| Export dati sensibili | +15 |
Livelli di Rischio
Il punteggio calcolato si mappa su un livello di rischio:
| Livello | Intervallo Punteggio (Default) | Descrizione |
|---|---|---|
| LOW | 0 - 19 | Login normale, nessuna azione aggiuntiva |
| MEDIUM | 20 - 39 | Rischio leggermente elevato, registrato per revisione |
| HIGH | 40 - 69 | Rischio elevato, richiesta step-up MFA |
| CRITICAL | 70 - 100 | Rischio molto alto, può essere bloccato o richiedere il fattore più forte |
Autenticazione Step-Up
L’autenticazione step-up è il processo che richiede fattori di autenticazione aggiuntivi quando il punteggio di rischio supera una soglia. Auris tiene traccia della “forza” dell’autenticazione corrente usando due claim OIDC standard.
ACR (Authentication Context Class Reference)
Auris usa un modello ACR a livelli:
| Valore ACR | Significato |
|---|---|
urn:auris:acr:basic | Autenticazione a fattore singolo (solo password) |
urn:auris:acr:mfa | Autenticazione multi-fattore (password + un fattore aggiuntivo) |
urn:auris:acr:strong | Autenticazione forte (password + fattore forte come WebAuthn) |
AMR (Authentication Methods Reference)
| Valore AMR | Significato |
|---|---|
pwd | Password verificata |
otp | Codice TOTP verificato |
sms | SMS OTP verificato |
hwk | Chiave hardware (WebAuthn/FIDO2) usata |
swk | Chiave software (autenticatore piattaforma WebAuthn) usata |
mca | Magic link (basato su email) usato |
fed | Autenticazione federata (login social, SAML) usata |
ACR e AMR nei Claim JWT
Dopo il completamento dell’autenticazione, il token di accesso include i valori ACR e AMR raggiunti:
{
"sub": "usr_abc123",
"iss": "https://auth.acme-corp.com",
"aud": "your-client-id",
"acr": "urn:auris:acr:mfa",
"amr": ["pwd", "otp"],
"exp": 1739880900
}I resource server possono ispezionare questi claim per applicare i propri requisiti minimi di autenticazione.
Regole di Rischio Personalizzate
Oltre ai cinque fattori integrati, Auris supporta regole di rischio personalizzate — condizioni definite dall’amministratore che aggiungono o sottraggono dal punteggio di rischio.
Esempi di regole:
Ridurre il rischio per IP aziendali:
Condizione: request.ip IN 203.0.113.0/24
Aggiustamento Punteggio: -20Aumentare il rischio per account creati di recente:
Condizione: user.createdAt > NOW - 7 giorni
Aggiustamento Punteggio: +15Il motore di condizioni supporta operatori come EQUALS, NOT_EQUALS, CONTAINS, STARTS_WITH, ENDS_WITH, IN, GREATER_THAN, LESS_THAN.
Confronto con le Policy MFA Statiche
| Funzionalità | MFA Statico | MFA Adattivo |
|---|---|---|
| Attrito utente | Ogni login richiede MFA | MFA solo quando il rischio è elevato |
| Sicurezza | Costante indipendentemente dal contesto | Protezione più forte per i login rischiosi |
| Configurazione | Semplice toggle (on/off) | Richiede tuning delle soglie |
| User experience | Prevedibile ma fastidioso | Fluido in condizioni normali |
| Resistenza agli attacchi | Buona contro password rubate | Migliore contro attacchi sofisticati |
Inizia con le soglie e i pesi predefiniti. Monitora la cronologia delle valutazioni di rischio per due settimane prima di effettuare aggiustamenti. Cerca falsi positivi (utenti legittimi che vengono sfidati inutilmente) e falsi negativi (login sospetti non segnalati) per guidare il tuning.
Concetti Correlati
- Multi-Factor Authentication — Configurare i metodi e le policy MFA
- Attack Protection — Brute-force, login sospetti, CAPTCHA
- Sessions & Token Rotation — Come le valutazioni di rischio influenzano la creazione della sessione
- Impostazioni di Sicurezza — Guida alla Console per tutti i controlli di sicurezza
- Actions Engine — Hook personalizzati che vengono eseguiti insieme al risk scoring