Consenti agli amministratori di modificare sempre le email quando 'Modifica email dopo la registrazione' è disabilitato

Modificato per chiarimenti significativi e criteri di suggerimento meglio strutturati, al fine di aiutare meglio i membri della comunità a comprendere i vantaggi di questo miglioramento della funzionalità.

Aggiorna l’impostazione Modifica Email per consentire opzioni aggiuntive su chi può modificare gli indirizzi email, poiché l’impostazione è progettata, ad esempio, per:

  • Tutti gli utenti
  • Solo utenti [Gli amministratori normali o i moderatori non possono farlo senza utilizzare la console Rails o modificare l’impostazione.]
  • Solo personale
  • Solo amministratori

Se l’impostazione è attiva [come è di default], introduce un meccanismo di sicurezza in modalità Sudo per eseguire l’azione come amministratore [non come l’utente a cui appartiene l’account da modificare]; ciò consente di introdurre questa impostazione con alcuni punti chiave menzionati di seguito, garantendone la sicurezza contro modifiche indesiderate.

Motivazione/Perché è necessario farlo

Se si desidera disattivare l’impostazione perché si vuole avere il controllo su di essa (ad esempio, gli utenti devono richiedere la modifica, lo si fa per motivi di sicurezza o per altre ragioni), ma per qualche motivo è necessario modificare l’email; con questa impostazione disattivata, nemmeno gli amministratori possono modificare le email.

È qui che si presenta un nuovo problema, se si applica uno o più casi d’uso.

Per modificare le email degli utenti attualmente, è possibile: 1) Attivare l’impostazione in un’altra scheda e modificare rapidamente l’email, oppure 2) Aprire la console Rails e modificare manualmente l’email.

Per la maggior parte delle operazioni quotidiane degli amministratori, questo può portare a una sfida tecnica indesiderata se ci si affida esclusivamente alla console Rails per fare tutto, quando esiste un’impostazione specifica.

Perché ulteriori meccanismi di sicurezza potrebbero rendere possibile questa funzionalità:

  • Se lasciata attiva per implicazioni tecniche, utenti compromessi potrebbero vedere le proprie email modificate.
  • Gli amministratori potrebbero commettere errori o effettuare modifiche non autorizzate.
  • Gli utenti avranno la certezza che coloro che dispongono di tale accesso siano protetti da modifiche malevole.

Questo argomento è stato discusso l’ultima volta nel 2015, e sebbene sia vero che si possono modificare le email, non è possibile farlo dalla vista amministratore; il sistema indica di andare alla vista preferenze utente, cosa che faccio, ma anche come amministratore non posso a causa dei vincoli di questa impostazione.

1 Mi Piace

Sì, sono in forte disaccordo. Anche se il tuo caso d’uso specifico può sembrare abbastanza semplice, implementare una semplice sovrascrittura nell’interfaccia utente introdurrebbe un rischio di sicurezza significativo per un guadagno di comodità minimo.

L’attrito è una funzionalità di sicurezza!

Quindi, l’inconveniente di dover utilizzare la console di Rails o attivare un’impostazione a livello di sito è in realtà una funzionalità di sicurezza critica, poiché agisce come un “freno di sicurezza” e costringe un amministratore a eseguire un processo deliberato e ad alto attrito per un’operazione molto sensibile.

Modificare l’indirizzo email di un utente equivale a consegnare le chiavi del suo account, poiché il nuovo indirizzo email può essere utilizzato per attivare un reset della password, bloccando di fatto l’utente originale e dando al nuovo proprietario dell’email il controllo completo.

Alcuni vettori di attacco principali che questo attrito previene:

  • Compromissione degli account amministrativi! - Questo è il rischio più significativo. Se un attaccante ottiene l’accesso a un account amministrativo (tramite phishing, riutilizzo della password, ecc.), un semplice pulsante o un interruttore nell’interfaccia utente gli permetterebbe di prendere in modo silenzioso e facile il controllo di qualsiasi altro account utente, inclusi quelli del personale; la necessità di accedere alla shell tramite la console di Rails fornisce un forte livello di sicurezza.

  • Ingegneria sociale! - Questo apre la porta all’ingegneria sociale. Un utente malevolo potrebbe impersonare un utente legittimo e convincere un amministratore a modificare il suo indirizzo email; ancora una volta, l’attuale processo ad alto attrito rende molto più probabile che un amministratore verifichi o valuti l’autenticità della richiesta.

  • Minacce interne - Un amministratore malintenzionato potrebbe abusare di questa funzionalità per prendere il controllo degli account.

Per questo tipo di azioni amministrative rare e ad alto rischio, la console di Rails è appropriata perché garantisce che la persona che esegue l’azione abbia accesso al server e non una sessione compromessa. Inoltre, l’azione è deliberata, richiede conoscenze tecniche specifiche (ed è registrata nella cronologia della shell).

1 Mi Piace

Apprezzo la preoccupazione, ma credo che tu possa aver frainteso l’intero quadro. C’è anche un grave vuoto nel tuo argomento sulla “sicurezza”.

Puoi già modificare le email se questa impostazione è attiva; lo è di default.

Compromissione degli account amministrativi! - questo è il rischio più significativo. Se un attaccante ottiene l’accesso a un account amministrativo (tramite phishing, riutilizzo della password, ecc.), un semplice pulsante o interruttore nell’interfaccia gli permetterebbe di prendere il controllo silenziosamente e facilmente di qualsiasi altro account utente, inclusi quelli di altri dipendenti; la necessità di accesso alla shell tramite rails console fornisce un forte livello di sicurezza.

Se un amministratore viene compromesso, l’intruso potrebbe semplicemente attivare l’impostazione che esiste già oggi e fare le cose che hai menzionato.

Cambiare l’indirizzo email di un utente equivale a consegnare le chiavi del suo account, poiché il nuovo indirizzo email può essere utilizzato per attivare un reset della password, bloccando di fatto l’utente originale e dando al nuovo proprietario dell’email il controllo completo.

Per questo tipo di azioni amministrative rare e ad alto rischio, la console rails è appropriata perché garantisce che la persona che esegue l’azione abbia accesso al server e non una sessione compromessa. Inoltre, l’azione è deliberata e richiede conoscenze tecniche specifiche (ed è registrata nella cronologia della shell).

Non sempre, e come ho detto nel post iniziale. Puoi semplicemente attivare e disattivare l’impostazione per abilitare la funzione di modifica; l’unico problema è che attivare l’impostazione, che dovrebbe essere disattivata [è attiva di default], introduce la possibilità per utenti che non sono amministratori di modificare la propria email mentre viene effettuata una semplice modifica.

1 Mi Piace

Ok, ora capisco il tuo punto riguardo a quando quell’impostazione viene attivata.

Rimango fermamente dell’idea che la console Rails sia la strada da seguire in questo caso. Forse sarebbe possibile anche un plugin.

Quando l’impostazione è ATTIVA

“Consenti agli utenti di modificare il proprio indirizzo e-mail dopo la registrazione”

Questo abilita la modifica per TUTTI gli utenti (e gli amministratori). La semplice richiesta di funzionalità è: permettere di impostare l’opzione per – ad esempio: “Solo amministratori, Amministratori + Utenti, o Utenti”.

Se si “attiva semplicemente”, si abilita la possibilità a livello di sito per chiunque [o solo per gli amministratori] di modificare l’e-mail di un utente. Una volta abilitata.

Introdurre un’impostazione, che già esiste in parte, da applicare solo agli amministratori, permette di evitare che una funzionalità semplice, che già esiste, diventi uno scenario di tipo tutto o nulla.

1 Mi Piace

Ok, riflettendoci meglio, credo che una modalità UI ad alta frizione tramite sudo possa essere la strada da percorrere, dato che questa impostazione è “insicura” per la finestra di modifica e non tutti gli amministratori hanno accesso alla console Rails (pensiamo ad esempio ai siti ospitati).

Forse qualcosa del genere: quando un amministratore tenta di salvare il nuovo indirizzo email, dovrebbe apparire una finestra di dialogo modale che lo costringe a reinserire la propria password per confermare l’azione (o una sfida 2FA, se abilitata). Si dà per scontato che questa azione debba essere registrata nei log del personale in modo dettagliato. Credo che sia comunque necessaria una verifica obbligatoria dell’utente, in qualche modo, per dare a un utente legittimo la possibilità di segnalare un takeover dell’account. Dovrebbe inoltre essere inviata una notifica al nuovo indirizzo email per confermare la modifica? :thinking:

1 Mi Piace

Sì, questa funzionalità ha decisamente bisogno di un po’ di cura e di aggiornamenti. Al momento, se la si attiva, un amministratore può modificare l’indirizzo email di qualsiasi account utente senza ulteriori protezioni. Mi piace la tua idea del 2FA o della password.

1 Mi Piace

Grazie per avermi fatto riflettere sulla funzionalità email modificabile. È una discussione interessante e piuttosto complessa da considerare! :slight_smile:

1 Mi Piace

Ho apportato una modifica al post originale per migliorare notevolmente la formulazione e aggiungere quei suggerimenti extra sulla precauzione da adottare per il cambiamento :wink: Credo che questo migliorerà le cose in modo significativo nel complesso.

1 Mi Piace