Che cos’è l’hardening del sistema o “System Hardening“? Vediamo le liste di controllo essenziali dal sistema operativo alle applicazioni.
System Hardening significa bloccare un sistema e ridurne la superficie di attacco: rimuovere i pacchetti software non necessari, proteggere i valori predefiniti con impostazioni il più possibile rigide e configurare il sistema in modo che esegua solo ciò che è esplicitamente richiesto.
Prendiamo un esempio dalla vita quotidiana. Una gioielleria e una drogheria si trovano l’una accanto all’altra, ma ovviamente ci si aspetta che la gioielleria abbia sbarre molto più robuste e serrature più forti che vengono chiuse quando il negozio è chiuso per la notte, poiché il contenuto è più prezioso. In questo caso, l’edificio della gioielleria è stato blindato per proteggere i prodotti preziosi e scoraggiare i ladri.
Anche per i sistemi informatici possiamo adottare un approccio molto simile. Quando viene pubblicato un software come un sistema operativo, chiunque può scaricarlo e utilizzarlo per giocare, gestire una banca online e tutto il resto. Per gestire la banca, però, è necessario adottare alcune precauzioni aggiuntive per rendere il sistema più resistente, al di là della configurazione predefinita.
Il System Hardening mira a ridurne l’esposizione per renderlo più difficile da violare e per diminuire i potenziali danni collaterali in caso di compromissione.
Perché è importante l’hardening del sistema?
Chiunque gestisca un’infrastruttura informatica su cui fa affidamento dovrebbe preoccuparsi di rendere i propri sistemi più resistenti. Ciò è particolarmente importante quando si tratta di dati di utenti come le informazioni di identificazione personale o i registri finanziari, poiché in questi casi le organizzazioni che subiscono una violazione dei dati sono soggette a multe significative, per non parlare del danno alla reputazione causato dai titoli dei giornali.
Quali sono i tipi di System Hardening?
Hardening del server
Ogni livello e componente di un sistema IT deve essere rafforzato per garantire che fornisca una base sicura per il livello successivo. Tutto questo inizia con l’hardware, la base dello stack di applicazioni, quindi il primo punto in cui ci soffermeremo è l’hardening del server.
L’idea è quella di rendere il server il più robusto possibile contro gli attacchi locali, cioè contro le persone che hanno accesso fisico alla macchina, impedendo loro di spiare i dati sul server o di introdurre codice maligno.
Ecco le principali misure di hardening del server da adottare:
- Aggiornare il BIOS. I produttori rilasciano spesso nuove versioni del BIOS per risolvere problemi di sicurezza ed è importante tenerne conto aggiornando alla versione più recente non appena possibile.
- Abilitare SecureBoot. Questo sistema utilizza le firme digitali per garantire che il sistema avvii codice firmato autentico e significa che è più difficile per un aggressore con accesso fisico al server sovvertire il processo di avvio.
- Impostate le password del BIOS e della gestione remota. Funzioni come SecureBoot possono essere disabilitate nel BIOS, quindi è importante impostare una password del BIOS per evitare che ciò accada. Anche le interfacce di gestione remota offrono un’ampia gamma di accessi di basso livello al sistema e dovrebbero essere protette da password e accessibili solo tramite una subnet di gestione fidata.
- Disattivare le porte USB inutilizzate. Se il server non ha bisogno di utilizzare determinate funzioni hardware, spesso queste possono essere disabilitate nel BIOS, per prevenire ulteriormente gli attacchi fisici contro il sistema.
- Configurare i dischi con la crittografia completa del disco. La crittografia dei dischi significa che nessuno può estrarre i dischi dalla macchina e accedere o modificare i contenuti offline. Negli ambienti cloud e nelle macchine virtuali, la crittografia dei dischi impedisce anche a un malintenzionato a livello di hypervisor di accedere ai dischi virtuali.
Operating System hardening
Una volta bloccato l’hardware del server, il passo successivo è la configurazione del sistema operativo.
È qui che si può applicare la maggior parte delle procedure di hardening, poiché il sistema operativo è una tela generica che deve essere personalizzata per ogni singolo caso d’uso; ad esempio, un ambiente di sviluppo ha una postura di sicurezza molto diversa da un server di produzione.
Per l’hardening del sistema operativo si possono seguire diverse strade, che possono essere suddivise nelle seguenti categorie:
- Rimuovere i componenti non necessari e non utilizzati. Un sistema operativo Linux come Ubuntu contiene pacchetti che coprono un’ampia gamma di casi d’uso, ma è probabile che un sistema di produzione abbia solo un piccolo numero di carichi di lavoro critici. Qualsiasi pacchetto che non supporta questi carichi di lavoro dovrebbe essere rimosso.
- Rafforzare le impostazioni predefinite e applicare la crittografia. Assicuratevi che le directory siano configurate in modo da consentire solo i privilegi minimi necessari per eseguire i carichi di lavoro di produzione e crittografate i file system.
- Configurare i log e i controlli di integrità. Tutti i registri di sistema e delle applicazioni devono essere archiviati su un server remoto per garantire che, in caso di violazione, l’aggressore non possa cancellare i registri per coprire le proprie tracce. Il software di monitoraggio dell’integrità dei file dovrebbe essere implementato per fornire avvisi in caso di modifiche inaspettate che potrebbero essere indicative di un attacco.
- Mantenere il software aggiornato e patchato. La maggior parte delle compromissioni del sistema avviene perché gli aggressori sfruttano vulnerabilità conosciute che non sono state corrette. È essenziale che tutte le patch di sicurezza siano applicate rapidamente e automaticamente.
- Eseguire regolarmente una scansione delle vulnerabilità utilizzando software di scansione di terze parti, per identificare eventuali punti deboli nell’integrità generale del sistema.
- Implementare le best practice operative, in particolare per quanto riguarda la gestione degli account utente. In qualsiasi organizzazione, gli utenti vanno e vengono e cambiano ruolo; gli account utente devono essere mantenuti sincronizzati e l’accesso deve essere revocato quando gli utenti non hanno più bisogno degli stessi livelli di accesso.
Sicurezza delle applicazioni e hardening
Per quanto riguarda la sicurezza delle applicazioni, è più difficile essere prescrittivi in materia di hardening, poiché ogni applicazione ha i propri requisiti di sicurezza. Tuttavia, esistono principi generali di sicurezza e di hardening che possono essere applicati alla maggior parte delle applicazioni:
- Applicare una crittografia forte e utilizzare una PKI affidabile per garantire l’autenticità. Ad esempio, le applicazioni basate sul Web utilizzano TLS, per il quale i certificati possono essere forniti tramite Let’s Encrypt.
- Ridurre i livelli di privilegio al minimo necessario. Assicuratevi che gli utenti abituali non abbiano un accesso amministrativo completo.
- Configurare la registrazione e monitorare i log per individuare eventuali anomalie. I log delle applicazioni devono essere aggregati in remoto per garantire che non possano essere alterati o distrutti da un aggressore, e i log devono essere analizzati per rilevare comportamenti anomali che potrebbero rivelare l’inizio di un attacco attivo.
- Controllare le dipendenze per individuare eventuali vulnerabilità. La maggior parte delle applicazioni ha un gran numero di librerie e dipendenze software, ognuna delle quali potrebbe presentare vulnerabilità di sicurezza: tutti i componenti devono essere aggiornati e patchati.
Per qualsiasi applicazione è importante lavorare su fondamenta solide, il che significa che prima di tutto il sistema operativo deve essere protetto e protetto in modo adeguato. Il passo successivo consiste nell’esaminare la catena di fornitura del software su cui si basa l’applicazione, e un ottimo punto di partenza è il consumo di componenti software da una fonte affidabile.
Ubuntu offre a tutti l’accesso alla più ampia gamma di librerie e applicazioni software open source del settore, supportate da una garanzia di manutenzione della sicurezza di dieci anni con un abbonamento Pro, che fornisce alle applicazioni le basi più solide possibili per la sicurezza e l’hardening.
CIS Banchmarks
Poiché il System Hardening è così importante per molte organizzazioni, sono stati sviluppati degli standard di settore per raccogliere le migliori pratiche da tutto il mondo e formulare un approccio comune all’hardening.
Il Center for Internet Security (CIS) pubblica i benchmark di hardening per molte applicazioni software e sistemi operativi comuni, tra cui Ubuntu, e se si implementano i suggerimenti di questi profili di hardening si può essere certi di ottenere un livello di sicurezza completo.
I benchmark CIS hanno un’ampia applicabilità in una vasta gamma di settori e sono utili per qualsiasi organizzazione che distribuisce servizi su Internet. Alcuni settori industriali prevedono requisiti normativi specifici che impongono l’indurimento dei sistemi, come il PCI-DSS, lo standard di sicurezza dei dati dell’industria delle carte di pagamento.
La versione 4 del PCI-DSS richiede che “i componenti del sistema siano configurati e gestiti in modo sicuro” e che “siano coerenti con gli standard di hardening del sistema accettati dal settore o con le raccomandazioni di hardening del fornitore”, con specifico riferimento ai benchmark CIS.
Strumenti di sicurezza informatica automatizzati con Ubuntu Security Guide (USG)
Riconoscendo che l’implementazione delle centinaia di regole contenute nei benchmark CIS è un compito arduo, esistono vari strumenti fra cui Ubuntu Security Guide, uno strumento di sicurezza informatica automatizzato per l’hardening, la correzione e la verifica dei sistemi. USG è disponibile come parte di Ubuntu Pro, che è gratuito per uso personale su un massimo di 5 macchine.
Con USG installato, il System Hardening del sistema Ubuntu secondo gli standard CIS è semplice come eseguire un comando:
usg fix cis_level1_server
Conclusione sul System Hardening
Il rafforzamento dell’infrastruttura e dei sistemi è un passo fondamentale nella creazione di un ambiente di produzione, ma può essere una prospettiva scoraggiante da affrontare da zero.
Sfruttando gli standard di settore, come i benchmark CIS, e utilizzando gli strumenti automatici di sicurezza informatica disponibili (come Ubuntu Pro) è possibile rendere questa operazione molto più gestibile.
(fonte)
Innovaformazione, scuola informatica specialistica promuove la cultura della sicurezza, del penetration testing e del DevSecOps.
Per restare nell’argomento sicurezza, trovate il Corso Owasp Sicurezza Web App (per aziende).
INFO: info@innovaformazione.net – tel. 3471012275 (Dario Carrassi)
