Vai al contenuto

Impostazioni cookie

Scelga per ogni tipo quali cookie consente. Può modificare la sua scelta in qualsiasi momento tramite Impostazioni cookie in fondo a ogni pagina. Informativa sulla privacy

Necessari

Sempre attivi

Servono per accedere, conservare il carrello e ricordare le sue scelte. Sono sempre attivi.

Quali cookie?
  • weboke_sessie, weboke_klant, weboke_remember: la sua sessione e la permanenza dell'accesso
  • weboke_basket: il suo carrello
  • wkBtwIncl: visualizzazione dei prezzi con o senza IVA
  • wok_cookies: la sua scelta sui cookie, 12 mesi

Misurano quale annuncio porta a una visita o a un ordine, così non paghiamo annunci che non funzionano.

Quali cookie?
  • Google Ads tramite Google Tag Manager (_gcl_au, _gcl_aw), fino a 90 giorni
  • OpenAI Ads, annunci in ChatGPT
  • wok_aff: tramite quale partner è arrivato da noi (programma di affiliazione), 60 giorni

4,6

Paese e lingua

Ogni paese ha il suo sito, con i prezzi e l'IVA di quel paese.

Vedi

Hardening e principi CIS

Modulo 10: Restare al sicuro · Tempo di lettura: 11 minuti

Obiettivo della lezione: Al termine di questa lezione saprà spiegare che cos'è l'hardening e su quali principi si basa, saprà che cosa sono le CIS Benchmarks e come usarle con criterio, e saprà controllare il Suo server in modo sistematico con Lynis.

Concetti chiave: hardening, superficie di attacco, installazione minima, privilegi minimi (least privilege), difesa a più livelli (defense in depth), CIS Benchmarks, Level 1 e Level 2, CIS Controls, Lynis, hardening index, AppArmor, SELinux, sysctl, sincronizzazione dell'ora

Che cos'è l'hardening?

Un'installazione nuova di Debian o Ubuntu è ragionevolmente sicura, ma è pensata per funzionare nel maggior numero possibile di contesti. L'hardening (irrobustimento) consiste nell'adattare il server esattamente al Suo utilizzo: eliminare tutto ciò che non Le serve e rendere più rigoroso tutto ciò che può esserlo, senza compromettere i Suoi servizi.

Nei moduli precedenti lo ha già fatto passo dopo passo: SSH con chiavi (modulo 2), un utente normale con sudo (modulo 3), aggiornamenti automatici (modulo 4), un firewall e fail2ban (modulo 5), servizi con utenti propri (modulo 6). Questa lezione inserisce queste misure singole in un quadro d'insieme, così vede che cosa manca ancora.

Quattro principi

1. Una superficie di attacco ridotta. Ciò che non c'è non può rompersi. Ogni servizio installato, ogni porta aperta, ogni account è un possibile punto di ingresso (lezione 5.1). Installi il minimo indispensabile e rimuova ciò che non usa più:

anna@web1:~$ systemctl list-units --type=service --state=running
anna@web1:~$ sudo ss -tulpn
anna@web1:~$ apt list --installed | wc -l

Se è in esecuzione un servizio che non conosce, scopra che cosa fa (lezione 6.1). Se non Le serve, rimuova il pacchetto.

2. Privilegi minimi. Ogni utente e ogni programma riceve solo i permessi necessari (lezione 3.2). Niente lavoro quotidiano come root, servizi con utenti propri, utenti del database con permessi solo sul proprio database, nessun chmod 777.

3. Difesa a più livelli. Parta dal presupposto che una misura possa fallire. Un database che è in ascolto solo su 127.0.0.1 e si trova dietro un firewall e ha una password robusta resta sicuro anche se una di queste tre protezioni viene meno per errore. Questo si chiama defense in depth.

4. Sapere che cosa succede. L'hardening non significa solo chiudere, ma anche vedere: log conservati (lezione 6.2), un monitoraggio che invia avvisi (lezione 8.3) e backup con cui tornare indietro (modulo 8). Senza tutto questo, si accorge di un'intrusione solo quando è troppo tardi.

Le CIS Benchmarks

Il Center for Internet Security (CIS) è un'organizzazione statunitense senza scopo di lucro che redige le CIS Benchmarks: elenchi dettagliati di impostazioni consigliate per ciascun prodotto, preparati da volontari del settore della sicurezza. Ne esistono più di cento, anche per Debian Linux e Ubuntu Linux, distinte per versione. I pdf si possono scaricare gratuitamente per uso non commerciale, dopo aver creato un account.

Una benchmark per Linux contiene centinaia di raccomandazioni, ciascuna con una spiegazione, un metodo di verifica e un metodo di configurazione. Sono suddivise in profili:

  • Level 1: misure di base che si possono introdurre abbastanza rapidamente, con un chiaro vantaggio in termini di sicurezza, senza rendere il server molto meno utilizzabile. Per la maggior parte dei server è questo l'obiettivo.
  • Level 2: misure aggiuntive per ambienti in cui la sicurezza ha la priorità (difesa a più livelli). Possono costare funzionalità o prestazioni e, secondo lo stesso CIS, possono causare danni se applicate senza attenzione.

Per Linux esistono profili distinti per server e per postazioni di lavoro.

Esempi di argomenti in una benchmark per Linux: partizioni separate per /tmp e /var/log, disattivazione di file system e protocolli di rete inutilizzati, sincronizzazione dell'ora, registrazione di audit, impostazioni di SSH (molte delle quali le conosce dalla lezione 2.2), criteri per le password, permessi sui file importanti e il firewall.

Accanto alle Benchmarks esistono i CIS Controls (attualmente versione 8.1): non impostazioni per prodotto, ma un elenco di diciotto gruppi di misure per un'intera organizzazione, come "inventario del software", "gestione delle vulnerabilità" e "ripristino dei dati". Per un singolo server le Benchmarks sono più utili; i Controls aiutano quando riflette sull'intera azienda.

Usi una benchmark con criterio

Una benchmark non è un pulsante da premere. Alcune regole:

  • Prima capire, poi applicare. Ogni raccomandazione ha una spiegazione. Se non capisce il perché, non la applichi ancora.
  • Una cosa alla volta, e verificare. Un'impostazione rigorosa del kernel o della rete può bloccare la Sua applicazione. Crei uno snapshot, modifichi una cosa sola e controlli che tutto funzioni ancora.
  • Non tutto fa per Lei. Una raccomandazione per una partizione /var/log separata è complicata su un VPS esistente e porta pochi benefici. Scelga consapevolmente e annoti perché non applica qualcosa.
  • Faccia attenzione agli script di hardening già pronti trovati su internet che applicano "tutto il CIS" in un colpo solo. Possono modificare SSH, il firewall o i log in modo tale da lasciarLa fuori dal server, e in seguito non saprà più che cosa è stato cambiato.

Lynis: un audit dall'interno

Lynis è un programma gratuito e open source (GPL) di CISOfy che esamina il Suo server dall'interno e fornisce avvisi e suggerimenti per ogni argomento. Non modifica nulla da sé: si limita a riferire.

anna@web1:~$ sudo apt install lynis
anna@web1:~$ sudo lynis audit system
...
  -[ Lynis 3.x Results ]-

  Warnings (1):
  ----------------------------
  ! Found one or more vulnerable packages. [PKGS-7392]

  Suggestions (34):
  ----------------------------
  * Consider hardening SSH configuration [SSH-7408]
      - Details  : AllowTcpForwarding (set YES to NO)
  ...
  Lynis security scan details:

  Hardening index : 66 [#############       ]
  Tests performed : 262

Come leggere il risultato:

  • Warnings sono elementi da esaminare davvero, come pacchetti con vulnerabilità note (in tal caso ha aggiornamenti in sospeso, lezione 4.1).
  • Suggestions sono consigli. Molti sono utili, alcuni non si adattano al Suo server. Un suggerimento di disattivare AllowTcpForwarding, per esempio, interrompe i Suoi tunnel SSH (lezione 2.3). Scelga consapevolmente.
  • Ogni segnalazione ha un codice tra parentesi quadre, come [SSH-7408]. Con questo codice può cercare nel log /var/log/lynis.log che cosa è stato verificato esattamente.
  • L'hardening index è un numero fino a 100. È un'indicazione di direzione, non un voto da inseguire. Un aumento dopo le Sue modifiche mostra che sta facendo progressi; 100 non è un obiettivo.

La versione di Lynis presente nei repository della Sua distribuzione può essere un po' datata. Per un primo audit non è un problema.

Altri tre argomenti in breve

  • AppArmor e SELinux sono livelli di sicurezza aggiuntivi nel kernel che stabiliscono, per ogni programma, che cosa gli è consentito. Debian e Ubuntu usano AppArmor, attivo per impostazione predefinita; AlmaLinux e Rocky usano SELinux. Non li disattivi "perché qualcosa non funziona": cerchi la segnalazione nel journal e risolva il problema in modo mirato.
  • sysctl imposta parametri del kernel, per esempio per la rete. I valori predefiniti di Debian e Ubuntu sono ragionevoli. Se desidera modificare qualcosa, lo inserisca in un file proprio in /etc/sysctl.d/ (Debian 13 non legge più /etc/sysctl.conf).
  • Ora: un server con l'ora sbagliata rende inutilizzabili i log e può considerare non validi dei certificati. Verifichi con timedatectl che compaia "System clock synchronized: yes".

Nella pratica

Con WebOké, come con altri fornitori di VPS, la sicurezza all'interno del server la gestisce Lei: il fornitore si occupa dell'hardware, della rete e della piattaforma di virtualizzazione. Questo corso è un percorso di autoapprendimento: nessuno controlla il Suo server al posto Suo. Prima di una sessione di hardening crei uno snapshot nel pannello e sappia come aprire la console nel caso in cui resti comunque chiuso fuori.

Riepilogo

  • L'hardening consiste nell'adattare il server al proprio utilizzo: eliminare ciò che non serve, rendere più rigoroso ciò che si può.
  • Quattro principi: superficie di attacco ridotta, privilegi minimi, difesa a più livelli e vedere che cosa succede.
  • Le CIS Benchmarks forniscono per ogni prodotto centinaia di raccomandazioni nei profili Level 1 (base) e Level 2 (rigoroso); le usi con consapevolezza, un passo alla volta.
  • Lynis esamina il server dall'interno e fornisce avvisi, suggerimenti e un hardening index; non modifica nulla da sé.
  • Non disattivare AppArmor/SELinux; impostazioni del kernel personalizzate in /etc/sysctl.d/; verificare la sincronizzazione dell'ora.

Quiz

1. Qual è l'idea alla base della difesa a più livelli (defense in depth)?



2. Qual è la differenza tra Level 1 e Level 2 nelle CIS Benchmarks?



3. Lynis suggerisce di disattivare AllowTcpForwarding in SSH. Lei usa tunnel SSH per raggiungere il Suo database. Che cosa fa?



4. Un collega trova su internet uno script che applica "tutte le raccomandazioni CIS in un colpo solo" al Suo server. Qual è il rischio maggiore?



5. La Sua applicazione non funziona e nel journal compare un rifiuto di AppArmor. Qual è l'approccio corretto?



Esercizio

Esercizio O10.1: Un audit con Lynis. Crei uno snapshot, installi Lynis sul Suo server ed esegua sudo lynis audit system. Annoti l'hardening index, tutti gli avvisi e cinque suggerimenti. Scelga tre suggerimenti da applicare e uno che consapevolmente non applica, indicandone il motivo. Esegua poi di nuovo l'audit e annoti il nuovo indice.

Esercizio O10.1: Un audit con Lynis

Questo esercizio lo svolge da sé; nessuno lo verifica. Spunti ciò che ha fatto e segni l'esercizio come completato.




Le Sue spunte e note restano solo in questo browser; non le inviamo da nessuna parte. Se ha effettuato l'accesso, conserviamo in I miei corsi solo il fatto che ha svolto l'esercizio.

Per approfondire

Un momento…

Configuri i suoi domini

Per ogni dominio imposti i nameserver, il collegamento al suo hosting e chi ne diventa l'intestatario.

Caricamento dei suoi domini…