Nell’era del cloud ibrido e del lavoro remoto, il concetto tradizionale di “perimetro di rete” è morto. Affidarsi unicamente a un firewall perimetrale per proteggere un’infrastruttura è oggi l’equivalente di chiudere a chiave la porta di casa ma lasciare la combinazione della cassaforte scritta sul tavolo.
La sicurezza moderna non si basa sulla costruzione di muri invalicabili, ma sulla resilienza interna e sulla presunzione di compromissione (il modello Zero Trust). In questa guida, esploreremo i pilastri fondamentali per proteggere le informazioni riservate all’interno di un sistema.
1. Il Principio del Privilegio Minimo (PoLP)
Il Principio del Privilegio Minimo (Principle of Least Privilege) è la regola d’oro della sicurezza informatica. Afferma che ogni utente, applicazione o processo deve avere solo i permessi strettamente necessari per completare il proprio compito, e nulla di più.
- A livello utente: Nessuno dovrebbe utilizzare account con privilegi di
rootoAdministratorper le operazioni quotidiane. L’elevazione dei privilegi (tramitesudoo UAC) deve essere puntuale, temporanea e tracciata. - A livello applicativo: Se un’applicazione web (come un CMS o uno script di automazione) deve scrivere su un database, l’utente del database assegnato a quell’app non deve avere i permessi per eliminare tabelle (
DROP) o creare nuovi utenti, ma solo per leggere e scrivere (SELECT,INSERT,UPDATE).
Attenzione alle API
Le API Key sono le nuove password. Un errore comune è generare chiavi API con permessi globali (Full Access) per far comunicare due servizi. Se la chiave viene esposta, l’intero sistema è compromesso. Crea sempre chiavi con scope (ambiti) limitati alla singola operazione necessaria.
2. I Tre Stati del Dato e la Crittografia
Proteggere le informazioni significa crittografarle ovunque si trovino. I dati esistono in tre stati fondamentali, e ognuno richiede un approccio diverso:
| Stato del Dato | Descrizione | Soluzioni Standard |
| Data at Rest (A riposo) | Dati salvati fisicamente su dischi, database o storage cloud. Proteggono dal furto fisico dell’hardware o da accessi non autorizzati al file system. | LUKS (Linux), BitLocker (Windows), TDE per i database, crittografia hardware SED. |
| Data in Transit (In transito) | Dati che viaggiano sulla rete, da e verso il server. Proteggono da attacchi Man-in-the-Middle (MitM) e intercettazioni (sniffing). | TLS 1.3, VPN (WireGuard, OpenVPN), SSH. |
| Data in Use (In uso) | Dati caricati nella memoria RAM o elaborati dalla CPU. È la frontiera più complessa, spesso sfruttata dai malware avanzati per estrarre le chiavi crittografiche. | Confidential Computing, Intel SGX, AMD SEV, isolamento tramite macchine virtuali e container rigidi. |
3. Gestione degli Accessi: Oltre la Password
La password, da sola, è uno strumento di sicurezza obsoleto. Qualsiasi sistema che gestisce informazioni riservate deve implementare barriere aggiuntive.
- Multi-Factor Authentication (MFA): Rende inutile il furto di una password. Per i sistemi critici, evita gli SMS (vulnerabili al SIM swapping) e privilegia app TOTP (come Aegis o Raivo) o, ancora meglio, token hardware FIDO2/WebAuthn (es. YubiKey).
- Autenticazione basata su chiavi (SSH): L’accesso remoto ai server Linux non dovrebbe mai consentire il login tramite password. Disabilita
PasswordAuthenticationnel filesshd_confige usa esclusivamente chiavi crittografiche (preferibilmente Ed25519) protette da passphrase.
4. Hardening e Riduzione della Superficie d’Attacco
Meno software c’è su un server, meno vulnerabilità possono essere sfruttate. L’obiettivo dell’hardening è eliminare il superfluo.
- Disabilitare i servizi inutilizzati: Se un server non deve inviare email, non installare o disabilita il demone SMTP. Chiudi tutte le porte di rete non strettamente necessarie tramite firewall (es.
ufwoiptables). - Segmentazione di Rete: Non mettere i database sulla stessa sottorete esposta a internet in cui risiede il web server (DMZ). Usa le VLAN per separare logicamente i comparti dell’infrastruttura.
- Web Application Firewall (WAF): A livello applicativo, usa un WAF (come ModSecurity o NinjaFirewall) per intercettare pattern di attacco noti (SQL Injection, XSS) prima che raggiungano il codice dell’applicazione.
5. Auditing: “Se non lo logghi, non è successo”
Un sistema sicuro è un sistema che lascia tracce inequivocabili di chi ha fatto cosa e quando. Se subisci una violazione, i file di log sono l’unico strumento per capire come è successo e quali informazioni sono state compromesse.
Configura sistemi come Fail2Ban per bloccare automaticamente gli IP dopo ripetuti tentativi di accesso falliti, e usa un sistema centralizzato (come Wazuh o Graylog) per raccogliere i log dei vari server. I log non dovrebbero mai risiedere unicamente sulla macchina che li genera, per evitare che un attaccante li cancelli per coprire le proprie tracce.
