Ricerca nel sito web

LFCA: Suggerimenti di sicurezza di base per proteggere il sistema Linux – Parte 17


Ora più che mai viviamo in un mondo in cui le organizzazioni sono costantemente bombardate da violazioni della sicurezza motivate dall’acquisizione di dati altamente sensibili e riservati che sono di grande valore e rappresentano un’enorme ricompensa finanziaria.

È piuttosto sorprendente che, pur correndo un rischio elevato di subire un attacco informatico potenzialmente devastante, la maggior parte delle aziende non sia ben preparata o semplicemente ignori i segnali di allarme, spesso con conseguenze devastanti.

Nel 2016, Equifax ha subito una catastrofica violazione dei dati in cui milioni di record altamente riservati dei clienti sono stati rubati a seguito di una serie di errori di sicurezza. Un rapporto dettagliato indicava che la violazione era prevenibile se il team di sicurezza di Equifax avesse implementato le giuste misure di sicurezza.

Infatti, mesi prima della violazione, Equifax è stata avvisata di una potenziale vulnerabilità nel loro portale web che avrebbe compromesso la loro sicurezza, ma purtroppo l'avvertimento è rimasto inascoltato con gravi conseguenze. Molte altre grandi aziende sono state vittime di attacchi, la cui complessità continua a crescere ogni momento che passa.

Non possiamo sottolineare abbastanza quanto sia cruciale la sicurezza del tuo sistema Linux. Potresti non essere un istituto finanziario di alto profilo potenzialmente bersaglio di violazioni, ma ciò non significa che dovresti abbassare la guardia.

La sicurezza dovrebbe essere una delle tue priorità quando configuri il tuo server Linux, soprattutto se sarà connesso a Internet e sarà accessibile da remoto. Avere competenze di sicurezza di base è essenziale per salvaguardare il tuo server Linux.

In questa guida ci concentreremo su alcune delle misure di sicurezza di base che puoi adottare per proteggere il tuo sistema dagli intrusi.

Vettori di attacchi informatici

Gli intrusi sfrutteranno una varietà di tecniche di attacco per accedere al tuo server Linux. Prima di approfondire alcune delle misure che puoi adottare per salvaguardare il tuo sistema, sfruttiamo alcuni dei vettori di attacco comuni che un hacker può utilizzare per infiltrarsi nei sistemi.

1. Attacchi di forza bruta

Un attacco di forza bruta è un attacco in cui l'hacker procede per tentativi ed errori per indovinare le credenziali di accesso dell'utente. Di solito, l'intruso utilizza script automatizzati per ottenere continuamente l'accesso fino a ottenere la giusta combinazione di nome utente e password. Questo tipo di attacco è più efficace quando vengono utilizzate password deboli e facilmente indovinabili.

2. Credenziali deboli

Come accennato in precedenza, le credenziali deboli come password brevi e facilmente indovinabili come password1234 rappresentano un potenziale rischio per il tuo sistema. Più una password è corta e meno complessa, maggiori sono le possibilità che il tuo sistema venga compromesso.

3. Phishing

Il phishing è una tecnica di ingegneria sociale in cui l'aggressore invia alla vittima un'e-mail che sembra provenire da un'istituzione legittima o da qualcuno che conosci o con cui fai affari.

Di solito, l'e-mail contiene istruzioni che spingono la vittima a divulgare informazioni sensibili o può contenere un collegamento che la indirizza a un sito falso che si spaccia per il sito dell'azienda. Una volta che la vittima tenta di accedere, le sue credenziali vengono catturate dall'aggressore.

4. Malware

Malware è l'abbreviazione di software dannoso. Comprende un’ampia gamma di applicazioni dannose come virus, trojan, worm e ransomware progettate per diffondersi rapidamente e tenere in ostaggio il sistema della vittima in cambio di un riscatto.

Tali attacchi possono essere debilitanti e paralizzare l’attività di un’organizzazione. Alcuni malware possono essere inseriti in documenti come immagini, video, documenti Word o PowerPoint e inseriti in un'e-mail di phishing.

5. Attacchi Denial of Service (DoS)

Un attacco DoS è un attacco che limita o influisce sulla disponibilità di un server o di un sistema informatico. L'hacker inonda il server con traffico o pacchetti ping che rendono il server inaccessibile agli utenti per periodi prolungati.

Un attacco DDoS (Distributed Denial of Service) è un tipo di DoS che impiega più sistemi che inondano un bersaglio di traffico rendendolo non disponibile.

6. Attacco SQL Injection

Acronimo di Structured Query Language, SQL è un linguaggio utilizzato per comunicare con i database. Consente agli utenti di creare, eliminare e aggiornare i record nel database. Molti server archiviano i dati in database relazionali che utilizzano SQL per interagire con il database.

Un attacco SQL injection sfrutta una nota vulnerabilità SQL che fa sì che il server divulghi informazioni sensibili sul database che altrimenti non farebbe iniettando codice SQL dannoso. Ciò rappresenta un rischio enorme se il database memorizza informazioni di identificazione personale come numeri di carte di credito, numeri di previdenza sociale e password.

7. Attacco man-in-the-middle

Comunemente abbreviato in MITM, l'attacco man-in-the-middle prevede che un utente malintenzionato intercetta informazioni tra due punti con l'obiettivo di intercettare o modificare il traffico tra le due parti. L'obiettivo è spiare la vittima, corrompere i dati o rubare informazioni sensibili.

Suggerimenti di base per proteggere il tuo server Linux

Dopo aver esaminato i potenziali gateway che un utente malintenzionato può utilizzare per violare il tuo sistema, esaminiamo alcune delle misure fondamentali che puoi adottare per salvaguardare il tuo sistema.

1. Sicurezza fisica

Non viene prestata molta attenzione alla posizione fisica e alla sicurezza del tuo server, tuttavia, se hai intenzione di avere il tuo server in un ambiente locale, di solito è da qui che inizierai.

È importante garantire che il tuo server sia protetto in modo sicuro in un data center con alimentazione di backup, connettività Internet ridondante e raffreddamento sufficiente. L’accesso al data center dovrebbe essere limitato al solo personale autorizzato.

2. Aggiorna i repository e i pacchetti di sistema

Una volta configurato il server, il primo passo da compiere è aggiornare i repository e i pacchetti software applicativi come segue. L'aggiornamento del pacchetto risolve eventuali lacune che potrebbero presentarsi nelle versioni esistenti delle applicazioni.

Per le distribuzioni Ubuntu/Debian:

sudo apt update -y
sudo apt upgrade -y

Per le distribuzioni RHEL/CentOS:

sudo yum upgrade -y

3. Abilita un firewall

Un firewall è un'applicazione che filtra il traffico in entrata e in uscita. È necessario installare un firewall robusto come il firewall UFW e abilitarlo per consentire solo i servizi richiesti e le relative porte corrispondenti.

Ad esempio, puoi installarlo su Ubuntu utilizzando il comando:

sudo apt install ufw

Una volta installato, abilitalo come segue:

sudo ufw enable

Per consentire un servizio come HTTPS, esegui il comando;

sudo ufw allow https

In alternativa, puoi consentire la porta corrispondente che è 443.

sudo ufw allow 443/tcp

Quindi ricarica per rendere effettive le modifiche.

sudo ufw reload

Per verificare lo stato del firewall inclusi i servizi consentiti e le porte aperte, esegui

sudo ufw status

4. Disattiva tutti i servizi/porte non necessari

Inoltre, valuta la possibilità di disattivare eventuali servizi e porte non utilizzati o non necessari sul firewall. Avere più porte che non vengono utilizzate non fa altro che aumentare il panorama degli attacchi.

5. Protocollo SSH sicuro

Le impostazioni SSH predefinite non sono sicure e pertanto sono necessarie alcune modifiche. Assicurati di applicare le seguenti impostazioni:

  • Disabilitare l'utente root dall'accesso remoto.
  • Abilita l'autenticazione SSH senza password utilizzando le chiavi pubbliche/private SSH.

Per il primo punto, modifica il file /etc/ssh/sshd_config e modifica i seguenti parametri in modo che appaiano come mostrato.

PermitRootLogin no

Dopo aver disabilitato l'accesso remoto all'utente root, crea un utente normale e assegna i privilegi sudo. Per esempio.

sudo adduser user 
sudo usermod -aG sudo user 

Per abilitare l'autenticazione senza password, vai prima su un altro PC Linux, preferibilmente il tuo PC e genera una coppia di chiavi SSH.

ssh-keygen

Quindi copia la chiave pubblica sul tuo server

ssh-copy-id user@server-IP

Una volta effettuato l'accesso, assicurati di disabilitare l'autenticazione della password modificando il file /etc/ssh/sshd_config e modificando il parametro mostrato.

PasswordAuthentication no

Fai attenzione a non perdere la chiave privata ssh poiché è l'unica strada che puoi utilizzare per accedere. Tienila al sicuro e preferibilmente eseguine il backup sul cloud.

Infine, riavvia SSH per rendere effettive le modifiche

sudo systemctl restart sshd
Riepilogo

In un mondo in cui le minacce informatiche sono in continua evoluzione, la sicurezza dovrebbe essere una priorità assoluta quando ti imbarchi nella configurazione del tuo server Linux. In questa guida abbiamo evidenziato alcune delle misure di sicurezza di base che puoi adottare per rafforzare il tuo server. Nel prossimo argomento andremo più in profondità e vedremo i passaggi aggiuntivi che puoi eseguire per rafforzare il tuo server.