L’hardening di un sistema informatico significa rendere più difficile l’attacco di un hacker malintenzionato. In termini formali, l’hardening del sistema significa ridurre la superficie di attacco, cioè la combinazione di tutti i punti in cui un attaccante può colpire.

Molti sistemi hanno una superficie di attacco molto ampia di default. Questo perché viene installato molto software con troppe autorizzazioni e quante più funzioni possibili. L’hardening del sistema, quindi, si basa essenzialmente su alcune operazioni di scrematura.

In questa breve guida all’hardening, esamineremo 5 mosse di un processo di hardening che è possibile eseguire come amministratore di un server che ospita applicazioni Web.

Passaggio 1. Hardening del sistema operativo

Il livello base dell’hardening del sistema si occupa della sicurezza del sistema operativo. 

Un sistema operativo rinforzato consente di evitare molte minacce alla sicurezza .

Per rafforzare il sistema operativo del server:

  • Disinstallare tutto il software non necessario. Ogni programma può presentare una potenziale vulnerabilità che può consentire all’attaccante di intensificare l’attacco . Ciò include, ad esempio, anche compilatori / interpreti non necessari, poiché possono consentire all’attaccante di creare reverse shell .
  • Rimuovere tutti gli account utente non necessari e assicurarsi che gli account utente utilizzati per eseguire i servizi non dispongano di privilegi eccessivi. Ad esempio, se si utilizza un account utente per eseguire il proprio server Web, potrebbe non essere necessario l’accesso alla shell e questo account dovrebbe avere privilegi minimi.
  • Per evitare accessi non autorizzati, richiedere password complesse come parte del controllo degli accessi (ma non richiedere modifiche regolari della password – tali pratiche sono risultate meno sicure) o utilizzare l’autenticazione basata su chiave.
  • Attiva la registrazione dettagliata se puoi permetterti le risorse. Più dettagli hai nei tuoi registri, più facile sarà analizzare i registri dopo un attacco.
  • Abilita il patching automatico del sistema operativo o abilita le notifiche delle patch. Le patch di sicurezza sono di fondamentale importanza e installarle automaticamente è più sicura.

Si noti che i suggerimenti generali sopra riportati si applicano a tutti i sistemi operativi: Linux / UNIX, Microsoft Windows, macOS e tutti gli altri. Tuttavia, casi specifici possono applicarsi a sistemi specifici. Ad esempio, su Windows, potresti voler concentrarti sui criteri di gruppo.

Passaggio 2. Hardening della rete

La protezione della rete si estende oltre il server e spesso include dispositivi di rete aggiuntivi. Tuttavia, a livello del server che stai gestendo, ci sono già molte cose che puoi fare per migliorare la sicurezza della rete. Per rafforzare le connessioni di rete sul server:

  • Chiudere e disinstallare tutti i servizi non necessari se non vengono utilizzati su questo server. Ad esempio, FTP, telnet, POP / SMTP e altro. Ciò ti consentirà di eliminare tutte le porte di rete aperte non necessarie.
  • Applicare regole firewall rigide. Se si tratta di un server Web dedicato, assicurarsi che le uniche connessioni in entrata consentite siano connessioni Web e potenzialmente amministrative (ad es. SSH).
  • Se puoi permetterti le risorse, monitora le connessioni in uscita per potenziali inverse shell.

Molto hardening della rete è già fatto quando si rafforza il sistema operativo. Tuttavia, se non si è l’unica persona con accesso al server, è una buona idea proteggersi da qualcun altro utente che potrebbe apre connessioni di rete non sicure.

Passaggio 3. Hardening del server Web

Poiché supponiamo che per questo processo la funzione principale del server sia l’hosting di applicazioni Web, è necessario concentrarsi sull’hardening del software del server Web.

Per rafforzare il tuo server web:

  • Rimuovere tutti i moduli server Web non necessari. Molti server Web per impostazione predefinita sono dotati di diversi moduli che introducono rischi per la sicurezza.
  • Modifica le impostazioni di configurazione predefinite. Ad esempio, molti server Web supportano i vecchi protocolli SSL / TLS nelle loro impostazioni predefinite. Ciò significa che il tuo server è vulnerabile ad attacchi come BEAST o POODLE .
  • Attiva protezione aggiuntiva per le applicazioni web. Ad esempio, introdurre una politica di sicurezza dei contenuti (CSP).
  • Installa ed esegui un firewall per applicazioni Web (WAF). La maggior parte dei server Web supporta il firewall ModSecurity open source.
  • Se possibile, aggiorna automaticamente il software del server patch all’ultima versione o attiva le notifiche per il patching manuale.

Abbiamo anche guide dettagliate per rafforzare i server Web più popolari:

Passaggio 4. Hardening delle applicazioni Web

Conoscendo già un po ‘ la sicurezza web in generale , è noto che la maggior parte delle vulnerabilità del web sono il risultato di errori nelle applicazioni web, non nei software sottostanti (come server web o sistemi operativi). Pertanto, questo è il passo più importante.

Per rafforzare le applicazioni Web:

  • Scansionare regolarmente tutte le tue applicazioni web usando uno scanner di vulnerabilità web . Eliminare tutte le vulnerabilità il prima possibile. Il modo migliore per farlo è scansionare le applicazioni in fase di sviluppo, ad esempio usando Jenkins .
  • Eseguire ulteriori test di penetrazione. Mentre uno scanner di vulnerabilità rileva la maggior parte delle vulnerabilità di sicurezza, i pentester saranno in grado di trovare quelli che non sono rilevabili automaticamente. I pentest e la scansione delle vulnerabilità devono essere considerate come attività complementari, non alternative.
  • Aggiungere regole temporanee al firewall dell’applicazione Web se ci sono vulnerabilità che non si possono eliminare immediatamente.

Sebbene non faccia parte dell’hardening, la codifica sicura è molto importante per la sicurezza delle applicazioni web. Pertanto, se la tua organizzazione lo promuove, avrai meno vulnerabilità di cui preoccuparti.

Passaggio 5. Hardening continuo

La cosa più importante da capire sull’hardening è che si tratta di un processo continuativo. È necessario eseguire regolari controlli di rafforzamento del sistema per assicurarsi che la configurazione di sicurezza sia aggiornata, che tutte le misure di sicurezza siano ancora in atto e che non vi siano nuove minacce alla sicurezza delle informazioni. Tali nuove minacce possono provenire da altri utenti del server, dagli sviluppatori di applicazioni Web o semplicemente a causa di vulnerabilità rilevate nel software esistente.

Fortunatamente, parte del processo può essere automatizzata. Ad esempio, è possibile utilizzare il software di gestione delle patch per assicurarsi che il software chiave sia sempre aggiornato. È inoltre possibile eseguire scansioni pianificate utilizzando uno scanner di vulnerabilità Web per assicurarsi che le applicazioni Web nuove e aggiornate non introducano minacce alla sicurezza informatica.

Il modo migliore per farlo è quello di mantenere una checklist di hardening, che crei inizialmente con il tuo primo esercizio di hardening e poi modifichi mentre scopri nuovi modi per rendere il tuo sistema meno soggetto agli attacchi.

 

Tomasz Andrzej Nidecki (noto anche come tonid) è uno scrittore di contenuti tecnici che lavora per Acunetix. Giornalista, traduttore e scrittore tecnico con 25 anni di esperienza IT, Tomasz è stato Managing Editor della rivista hakin9 IT Security nei suoi primi anni e gestiva un importante blog tecnico dedicato alla sicurezza della posta elettronica.