Accedi Prova gratis
← Back to blog

Principio del minimo privilegio: come limitare i danni di un breach

Il principio del minimo privilegio limita ciò che un account compromesso può raggiungere, modificare o distruggere. Ecco come applicarlo a utenti, servizi, reti e backup.

📝 Questo articolo è stato prodotto con l'assistenza di strumenti automatici e revisionato dal team Safenix prima della pubblicazione.

Un account compromesso è pericoloso per ciò che può fare dopo la violazione iniziale. Se le credenziali rubate di un utente consentono di accedere a ogni server, un amministratore di un'agenzia può modificare ogni ambiente cliente oppure un account di servizio può eliminare i backup, un singolo incidente può trasformarsi in un'interruzione operativa estesa a tutta l'azienda.

Il principio del minimo privilegio è un metodo pratico per limitare il raggio d'azione dell'attacco. Ogni identità riceve solo gli accessi necessari per l'attività corrente, per il periodo ragionevolmente più breve e nell'ambito più ristretto possibile. Quando un account viene compromesso, l'attaccante eredita questi limiti invece di ottenere una via libera attraverso l'intero ambiente.

Il minimo privilegio non è una singola impostazione. Combina controllo degli accessi, controllo degli accessi basato sui ruoli, autenticazione avanzata, progettazione della rete, revisioni delle autorizzazioni, monitoraggio e pianificazione del ripristino. Richiede inoltre disciplina per gli account spesso trascurati: identità di servizio, chiavi API, amministratori di emergenza e credenziali dei backup.

Che cosa limita realmente il principio del minimo privilegio

L'accesso ha diverse dimensioni. Un utente può essere autorizzato ad accedere a un server, ma non a leggere una determinata directory. Un amministratore può gestire un ambiente cliente, ma non un altro. Un account di database può leggere tabelle selezionate, ma non modificare gli schemi o creare nuovi utenti. Un processo di backup può scrivere dati di ripristino, ma non eliminare i punti di ripristino esistenti.

Una decisione utile sull'accesso deve quindi rispondere a quattro domande:

  • Chi richiede l'accesso: un dipendente identificato, un amministratore, un servizio, un'API o un account di emergenza?
  • Quale risorsa è coinvolta: un server, un database, un filesystem, una console di gestione o un repository di backup?
  • Quali azioni sono necessarie: leggere, scrivere, eseguire, configurare, creare, eliminare o ripristinare?
  • Quando e da dove deve essere valido l'accesso?

Il minimo privilegio riduce le combinazioni non necessarie di queste autorizzazioni. Non garantisce che un account non possa essere compromesso e non sostituisce l'applicazione delle patch, la sicurezza degli endpoint o il monitoraggio della rete. Il suo valore è il contenimento: un attaccante che ottiene un'identità deve incontrare confini significativi.

Separa i ruoli prima di assegnare le autorizzazioni

La separazione dei ruoli è uno dei metodi più efficaci per impedire che un account compromesso diventi un amministratore senza restrizioni. Una piccola azienda potrebbe separare il lavoro ordinario, l'amministrazione dei server, l'amministrazione dei backup e l'accesso ai dati finanziari o dei clienti. Un'agenzia potrebbe aver bisogno di ruoli distinti per la propria infrastruttura e per ogni ambiente cliente.

Il controllo degli accessi basato sui ruoli rende ripetibili questi confini. Invece di assegnare direttamente le autorizzazioni alle singole persone, definisci ruoli come operatore server, lettore database, tecnico del deployment, revisore della sicurezza e operatore dei backup. Assegna le persone ai ruoli necessari, poi rivedi le definizioni dei ruoli quando i sistemi cambiano.

Non considerare il controllo degli accessi basato sui ruoli come un motivo per creare un unico ruolo sovradimensionato chiamato amministratore. Un ruolo deve rappresentare una reale funzione lavorativa e un ambito limitato. Per esempio, un tecnico del deployment può riavviare un determinato servizio applicativo e aggiornare la relativa directory di rilascio, ma non dovrebbe poter creare utenti del sistema operativo o rimuovere i backup del database.

Mantieni separate le identità amministrative

Chi amministra i server dovrebbe normalmente avere un account standard per email, navigazione e attività ordinarie, oltre a un'identità privilegiata separata per l'amministrazione. Questo riduce la possibilità che un attacco di phishing contro un account usato quotidianamente esponga immediatamente i privilegi amministrativi.

Le identità amministrative devono essere nominate, riconducibili a una persona e protette individualmente. Le credenziali amministrative condivise eliminano la responsabilità individuale e rendono difficile la revoca. Se più persone conoscono la stessa password, cambiarla durante un incidente diventa problematico e i log non possono indicare in modo affidabile chi ha eseguito un'azione.

Quando un account di emergenza condiviso è inevitabile, conservalo sotto controllo in un apposito vault per le credenziali, richiedi un prelievo documentato, registrane l'utilizzo e ruota la credenziale dopo l'accesso. Deve essere un'eccezione per il ripristino, non il metodo normale con cui un team amministra i server.

Usa l'accesso just-in-time per le attività privilegiate

Un privilegio permanente crea un'opportunità permanente per un attaccante. L'accesso just-in-time riduce questa esposizione concedendo autorizzazioni elevate solo quando un'attività lo richiede. L'approvazione può essere manuale o automatizzata, ma deve specificare sistema di destinazione, ruolo richiesto, motivazione e durata.

Un tecnico del supporto potrebbe ricevere l'accesso a un solo server di produzione per 45 minuti, allo scopo di indagare su un guasto del servizio. Alla scadenza della finestra, l'autorizzazione dovrebbe scomparire senza dipendere dal fatto che qualcuno si ricordi di rimuoverla. Per le azioni sensibili, richiedi a una seconda persona di approvare l'accesso o la modifica stessa.

L'accesso a tempo limitato è particolarmente utile per le agenzie. Uno sviluppatore potrebbe aver bisogno di un accesso temporaneo al server di un cliente durante un deployment, mentre uno specialista esterno potrebbe necessitare di un accesso diagnostico una tantum. Nessuno dei due dovrebbe conservare indefinitamente un accesso esteso a tutti gli ambienti cliente.

Anche l'accesso di emergenza dovrebbe seguire lo stesso principio, persino quando la velocità è essenziale. Mantieni un numero ridotto di account break-glass con ambito definito con precisione, autenticazione avanzata e metodi di ripristino indipendenti. Genera un avviso ogni volta che uno viene utilizzato, registra la motivazione e, quando possibile, i comandi eseguiti, quindi esamina immediatamente l'evento. Un processo di emergenza mai testato non è un processo affidabile: provalo senza rendere le credenziali permanentemente disponibili.

Fai in modo che l'autenticazione supporti il minimo privilegio

Una password dimostra soltanto che qualcuno conosce un segreto. Non limita ciò che quell'identità può fare dopo l'accesso. Il minimo privilegio e l'autenticazione risolvono problemi diversi: l'MFA aiuta a impedire l'accesso non autorizzato, mentre il controllo degli accessi limita i danni se l'accesso viene ottenuto.

Usa l'MFA per gli account amministrativi, VPN, cloud, backup e per gli altri account ad alto impatto. Quando l'ambiente lo consente, preferisci metodi resistenti al phishing ed evita di considerare gli SMS l'unica protezione per l'amministrazione critica. Applica politiche di autenticazione separate alle identità privilegiate, invece di consentire loro di ereditare la politica più debole utilizzata dagli utenti ordinari.

La revoca delle credenziali deve essere rapida e verificata tramite esercitazioni. Mantieni un inventario di utenti, chiavi SSH, token API, certificati, credenziali dei servizi e integrazioni di terze parti. Quando si sospetta che un account sia compromesso:

  1. Disabilita o sospendi l'identità e revoca le sessioni attive.
  2. Rimuovi le appartenenze ai gruppi, le chiavi, i token e le autorizzazioni delegate.
  3. Blocca, quando appropriato, gli indirizzi o i dispositivi di origine noti, senza presumere che ciò sia sufficiente.
  4. Ruota i segreti che l'account poteva leggere, utilizzare o esporre.
  5. Esamina i log relativi all'attività precedente e successiva alla revoca.

Evita di affidarti al solo reset della password. L'attaccante potrebbe aver già creato un altro account, copiato un token API, aggiunto una chiave SSH o stabilito la persistenza tramite un'attività pianificata.

Limita gli account di servizio e l'accesso alle API

Agli account di servizio vengono spesso concessi diritti eccessivi perché funzionano senza la presenza di una persona. Questo è un punto debole comune: un'applicazione deve leggere un database, ma il suo account può amministrare tutti i database presenti sul server. Un token di deployment deve pubblicare un'applicazione, ma può modificare il sistema operativo.

Crea identità di servizio separate per applicazioni e ambienti distinti. Le credenziali di produzione, staging e sviluppo non devono essere intercambiabili. Concedi a ogni identità solo le autorizzazioni necessarie alla sua funzione e vieta l'accesso interattivo agli account che devono eseguire esclusivamente servizi.

Per le API, limita i token in base a operazione, endpoint, ambiente, rete di origine e data di scadenza. Conserva i segreti al di fuori del codice applicativo e ruotali secondo una pianificazione definita o dopo un cambiamento del personale. Monitora volumi insoliti, origine geografica, richieste fallite e tentativi di usare un'API al di fuori della sua funzione prevista.

Non presumere che un account di servizio sia sicuro solo perché nessun essere umano conosce la sua password. Un malware in esecuzione sul server applicativo potrebbe riuscire a usare le sue credenziali e un'applicazione vulnerabile potrebbe consentire a un attaccante di agire tramite quell'identità di servizio. Le autorizzazioni dell'account devono quindi essere abbastanza limitate da contenere anche questa via d'attacco.

Applica il minimo privilegio a server, filesystem e database

Usa policy sudo invece dell'accesso root senza restrizioni

Nei sistemi Linux, usa account individuali e regole sudo definite con attenzione invece di concedere a ogni amministratore un accesso root senza restrizioni. Chi deve soltanto riavviare un servizio non dovrebbe ricevere automaticamente l'autorizzazione a modificare i file di autenticazione, installare pacchetti o cancellare i log.

Specifica i comandi consentiti e, quando possibile, anche gli argomenti e gli host di destinazione autorizzati. Presta attenzione ai comandi che richiamano editor, shell o script, perché una regola apparentemente ristretta può trasformarsi in un accesso root completo tramite un'uscita indiretta. Rivedi le policy sudo come codice o configurazione, testale e rimuovi le regole temporanee al termine dell'attività.

Controlla le autorizzazioni del filesystem

Separa codice applicativo, configurazione, contenuti caricati, log e backup. Il processo web potrebbe dover scrivere in una directory per gli upload, ma non dovrebbe poter modificare codice eseguibile o leggere file di configurazione privati contenenti credenziali. I processi del database non dovrebbero avere accesso generale alle directory home di utenti non correlati.

Usa proprietari, gruppi, liste di controllo degli accessi e isolamento dei servizi quando appropriato. Presta attenzione alle autorizzazioni ereditate: una nuova directory o un nuovo account può ricevere accidentalmente l'accesso da un gruppo padre troppo ampio. Verifica le autorizzazioni usando l'identità effettiva del servizio, non soltanto un account amministrativo che può vedere tutto.

Limita i privilegi del database

Gli utenti del database devono essere separati per applicazione e funzione. Un account per i report potrebbe aver bisogno dell'accesso SELECT a viste definite, mentre un account applicativo potrebbe dover leggere e aggiornare tabelle selezionate, ma non modificare lo schema, creare utenti o eliminare dati. L'accesso amministrativo al database deve essere riservato a un gruppo ristretto e utilizzato tramite identità nominate.

Separa le credenziali di lettura e scrittura quando l'architettura dell'applicazione lo consente. Limita le connessioni al database in base all'host o al segmento di rete, cifra le connessioni e registra le operazioni amministrative. Se un'applicazione web viene compromessa, autorizzazioni ristrette sul database possono impedire all'attaccante di trasformare un accesso all'applicazione in una distruzione illimitata dei dati.

Usa la segmentazione di rete come ulteriore confine di privilegio

Le autorizzazioni delle identità non bastano se ogni server può connettersi liberamente a tutti gli altri server. Segmenta le reti e definisci regole di traffico esplicite tra dispositivi degli utenti, server applicativi, database, interfacce di gestione e sistemi di backup.

Un server frontend potrebbe dover raggiungere una porta applicativa e l'applicazione potrebbe dover raggiungere una porta del database. Nessuno dei due ha necessariamente bisogno dell'accesso SSH a ogni macchina. Le interfacce di gestione devono essere raggiungibili solo da percorsi amministrativi approvati, come una VPN controllata o una rete di gestione. I repository di backup non dovrebbero essere ampiamente raggiungibili dai carichi di lavoro di produzione.

La segmentazione limita i movimenti laterali dopo la compromissione di un account o di un server. Inoltre rende più visibili le attività anomale: un web server che tenta di connettersi a un'interfaccia di gestione o una workstation che contatta un repository di backup dovrebbe avviare un'indagine.

Proteggi i backup dagli account di produzione compromessi

Un backup accessibile tramite lo stesso account o server che protegge può essere distrutto durante un attacco. Il ransomware tenta comunemente di individuare software, repository e credenziali dei backup prima di cifrare i dati di produzione. Il ripristino dipende dalla separazione dell'accesso ai backup dall'amministrazione della produzione.

Usa un'identità dedicata ai backup con le autorizzazioni più limitate possibile. Un account di produzione non dovrebbe poter eliminare, modificare o ridurre il periodo di conservazione dei dati di backup. Quando il progetto lo consente, l'amministrazione dei backup dovrebbe usare un percorso di gestione separato, credenziali separate e MFA. Anche l'accesso al ripristino deve essere controllato: chi gestisce la produzione non ha automaticamente bisogno dell'autorizzazione per eliminare la cronologia dei backup.

Per i server controllati dal cliente, Safenix offre backup fuori sede cifrati con una chiave che Safenix non conserva, archiviati in Germania e immutabili per tutta la durata del periodo di conservazione. Questa separazione è importante quando un account del server compromesso può danneggiare l'ambiente operativo. Puoi leggere di più su come Safenix mantiene protetti i backup cifrati e controlla chi può leggerli.

Safenix protegge i server aziendali controllati dal cliente. Non offre un piano di backup per i siti web che funzionano su hosting condiviso, dove il cliente non controlla il server sottostante. Questa distinzione è importante per valutare se un progetto di backup possa davvero isolare i dati di ripristino dalle credenziali di produzione.

Rivedi continuamente gli accessi, non solo ogni anno per abitudine

Le autorizzazioni si accumulano. I dipendenti cambiano ruolo, le agenzie terminano i progetti, i collaboratori lasciano l'azienda e l'accesso temporaneo per la risoluzione dei problemi diventa permanente. Gli account inattivi sono particolarmente interessanti per gli attaccanti perché possono conservare diritti utili ricevendo però poca attenzione.

Mantieni un inventario degli accessi che comprenda:

  • Account nominativi di utenti e amministratori
  • Gruppi, ruoli e autorizzazioni delegate
  • Chiavi SSH, token API, certificati e segreti applicativi
  • Account di servizio e attività pianificate
  • Agenzie esterne, collaboratori e fornitori di supporto
  • Identità di emergenza e break-glass
  • Account per backup, monitoraggio e gestione dell'infrastruttura

Rivedi gli accessi dopo l'ingresso, il cambio di ruolo o l'uscita di una persona, al termine di un progetto e dopo importanti modifiche all'infrastruttura. Una revisione programmata può essere mensile per gli accessi privilegiati e trimestrale per gli accessi più ampi, con una frequenza adeguata al rischio. Chiedi al proprietario della risorsa di confermare non solo che un account appartenga alla persona corretta, ma anche che ogni autorizzazione sia ancora necessaria.

Le agenzie devono evitare le autorizzazioni ereditate tra gli ambienti dei clienti. Un tecnico che supporta il Cliente A non dovrebbe ricevere un ruolo che garantisca automaticamente l'accesso ai Clienti B, C e D. Quando possibile, usa tenant, account, gruppi, chiavi o ambiti di gestione separati. Se gli strumenti centralizzati rendono difficile la separazione, consideralo un rischio di progettazione invece di accettare l'accesso esteso come inevitabile.

Monitora l'uso dei privilegi e conserva le prove

Il minimo privilegio funziona meglio quando puoi vedere come vengono utilizzati i privilegi. Registra autenticazione, elevazione dei privilegi, modifiche ai ruoli, nuove chiavi, creazione di token, cambiamenti alle autorizzazioni, amministrazione dei database e operazioni sui backup. Registra identità, destinazione, ora, origine, risultato e, quando appropriato, il ticket o l'approvazione collegati all'azione.

Invia i log importanti lontano dai sistemi amministrati, in modo che un attaccante non possa riscrivere tranquillamente le prove. Proteggi l'accesso ai log con autorizzazioni separate e definisci un periodo di conservazione che supporti le indagini e le esigenze legali o normative. La sincronizzazione dell'orario tra i server rende molto più affidabile la correlazione degli eventi.

Il monitoraggio deve concentrarsi su segnali significativi, invece di generare avvisi che nessuno è in grado di gestire. Alcuni esempi:

  • Un utente ordinario riceve un ruolo amministrativo
  • Un account di emergenza viene utilizzato al di fuori di un incidente dichiarato
  • Un account di servizio esegue un accesso interattivo
  • Un token viene utilizzato da una rete sconosciuta o in un orario insolito
  • Vengono apportate modifiche estese alle autorizzazioni in più ambienti cliente
  • Si verificano tentativi di accedere, eliminare o modificare i dati di backup

Quando scatta un avviso, conserva i log pertinenti, la cronologia dei comandi, i record di autenticazione e lo stato del sistema prima di apportare modifiche che potrebbero distruggere le prove. Allo stesso tempo, non ritardare il contenimento nel tentativo di ottenere una raccolta forense perfetta. Registra che cosa è stato modificato, da chi e quando, poi collabora con personale qualificato nella risposta agli incidenti per gli eventi gravi.

Punti deboli comuni da eliminare

Molti programmi di minimo privilegio falliscono a causa di scorciatoie operative, non per impossibilità tecniche. Presta attenzione a questi schemi:

  • Credenziali amministrative condivise: impediscono di attribuire le azioni in modo affidabile, complicano la revoca degli accessi e rendono problematica una revoca rapida.
  • Accesso permanente dell'agenzia: un fornitore potrebbe aver bisogno occasionalmente di accedere a un server, non di un accesso continuativo a ogni ambiente cliente.
  • Account inattivi: gli account di ex dipendenti, collaboratori e ambienti di test possono conservare autorizzazioni preziose molto tempo dopo la fine della loro funzione.
  • Autorizzazioni ereditate: gruppi estesi e ruoli annidati possono concedere silenziosamente l'accesso tra clienti, server o archivi di dati.
  • Un solo account per ogni funzione: combinare autorizzazioni di deployment, database, sistema operativo e backup crea un unico obiettivo ad alto impatto.
  • Eccezioni temporanee che non scadono mai: regole sudo di emergenza, aperture del firewall e token API devono avere proprietari e date di scadenza automatiche.
  • Backup gestiti dalla produzione: se lo stesso amministratore può modificare sia i sistemi operativi sia i dati di ripristino, anche un attaccante potrebbe riuscirci.

Per ulteriori approfondimenti, consulta indicazioni pratiche sul principio del minimo privilegio e sugli account compromessi, quindi adatta queste idee ai sistemi e alle responsabilità effettivamente gestiti dalla tua azienda.

Priorità pratiche per piccole aziende e agenzie

I piccoli team non hanno bisogno di una piattaforma enorme per la gestione delle identità per fare progressi significativi. Inizia elencando i sistemi critici e le identità che possono amministrarli, modificarli o eliminarli. Rimuovi le credenziali condivise, disabilita gli account inattivi e richiedi l'MFA per gli accessi privilegiati.

Successivamente, separa le autorizzazioni di produzione, amministrazione e backup. Crea account amministrativi nominativi, limita le identità di servizio, riduci i privilegi degli utenti del database e limita i percorsi di rete tra i server. Aggiungi un processo di approvazione e scadenza per gli accessi esterni, anche se inizialmente utilizza soltanto un ticket e un promemoria sul calendario.

Infine, verifica la risposta. Riesci a disabilitare rapidamente l'accesso di un dipendente? Puoi revocare l'accesso a un membro dell'agenzia senza influire sugli altri clienti? Riesci a identificare quale account ha modificato una regola del firewall? Puoi ripristinare i dati se l'amministratore della produzione viene compromesso? Se la risposta non è chiara, la lacuna non è soltanto un problema di controllo degli accessi: è un problema di resilienza.

Il minimo privilegio può aggiungere una piccola dose di attrito alle attività insolite. Questo attrito è utile quando impedisce agli account ordinari di eseguire azioni distruttive. Progetta ruoli sensati, fornisci una rapida elevazione just-in-time e mantieni l'accesso di emergenza sotto controllo. L'obiettivo non è bloccare le operazioni legittime, ma assicurarsi che un'unica identità rubata non diventi il permesso di controllare l'intera azienda.

Ready to deliver?

Start your 14-day free trial today.

Prova gratis