Una guida per rafforzare il tuo server web
Pubblicato: 2022-03-15A causa della loro funzione, i server Web sono diversi da molti altri dispositivi in un tipico ambiente di rete: non solo sono esposti a Internet in base alla progettazione, ma probabilmente servono il traffico Web a perfetti sconosciuti. Inoltre, in molte situazioni, è probabile che i server Web servano applicazioni dinamiche come i siti Web WordPress o agiscano da proxy verso altre applicazioni interne. Non sorprende quindi che i server Web rappresentino obiettivi interessanti per gli aggressori.
Il rafforzamento di un sistema si riferisce al processo di miglioramento delle difese di un sistema in modo tale da rendere più difficile per un hacker malintenzionato compromettere quel sistema e prendere piede all'interno di una rete.
Il processo di rafforzamento di un server Web dipenderà, ovviamente, dal tipo di server Web che stai utilizzando (ad es. Server HTTP Apache, Nginx, Microsoft IIS...), tuttavia, esistono una serie di principi fondamentali e migliori pratiche per migliorare il tuo sicurezza del server web che dovresti tenere a mente, indipendentemente dal server web che stai utilizzando.
Questo articolo è una guida al rafforzamento del server Web. In esso, esamineremo una serie di best practice indipendenti dalla tecnologia con cui puoi migliorare la sicurezza del tuo server web. Per l'indurimento di WordPress, fare riferimento alla nostra guida alla sicurezza e all'indurimento di WordPress.
1. Mantieni aggiornato il tuo server web
Mantenere aggiornato il software potrebbe non sembrare un grosso problema, ma applicare le patch di sicurezza in tempo è probabilmente una delle difese più importanti che puoi implementare. A parte i miglioramenti delle prestazioni e della stabilità, gli aggiornamenti del server Web e del sistema operativo spesso contengono correzioni per le vulnerabilità della sicurezza.
In apparenza può sembrare banale, tuttavia, qualsiasi professionista della sicurezza delle informazioni ti dirà che l'applicazione di patch è più complicata di quanto sembri, non perché l'installazione dell'ultima versione della maggior parte del software sia particolarmente difficile, ma perché l'applicazione di patch è sempre vista come qualcosa che può essere posticipato.
L'approccio migliore per assicurarsi che il software del tuo server web sia costantemente aggiornato è trovare un sistema o una routine che funzioni per te o per chiunque abbia il compito di aggiornare il tuo server web e il software del sistema operativo. Il più delle volte si riduce a un promemoria periodico (ad esempio l'impostazione di un evento del calendario ripetuto) per il quale troverai il tempo.
2. Rimuovere software e moduli non necessari
Anche se potrebbe non sembrare sempre così, i server Web sono software complessi. Alcuni server web, come Apache HTTP Server, vengono forniti con una serie di "moduli" (simili a ciò che i plugin sono per WordPress) che puoi abilitare o disabilitare a seconda del tuo caso d'uso. È noto che gli aggressori dannosi sfruttano le funzionalità e le vulnerabilità di un modulo server Web per raccogliere più informazioni sul server Web. Anche se questo potrebbe non essere l'unico motivo per un attacco riuscito, il punto centrale del rafforzamento del server Web è adottare un approccio di difesa in profondità e rendere difficile per gli attori malintenzionati ottenere anche il più piccolo punto d'appoggio.
Un esempio pratico di ciò sono moduli come mod_status di Apache HTTP Server. Questo modulo è progettato per ottenere una panoramica dell'attività e delle prestazioni del server (host correnti, numero di richieste in elaborazione, numero di lavoratori inattivi e utilizzo della CPU) tramite l'URL /server-status. Tale funzionalità può fornire a un utente malintenzionato un'indicazione abbastanza buona delle prestazioni del tuo server Web, uno strumento piuttosto utile in caso di attacco Denial of Service (DoS).
Allo stesso modo, altri software inutilizzati in esecuzione sul tuo server web potrebbero rappresentare un rischio non necessario. Per esempio:
- Stai eseguendo un server FTP, come vsftpd che non ti serve?
- C'è un agente di trasferimento della posta come Sendmail o Postfix che non ti serve più? Se utilizzi un servizio di terze parti per migliorare la consegna delle e-mail di WordPress, non avrai bisogno di tale servizio.
Queste applicazioni/servizi e molti altri sul server sono tutti componenti che hanno le proprie peculiarità di sicurezza, vulnerabilità e requisiti di patch.
In sintesi, esegui meno software ove possibile. Se non stai utilizzando un modulo o un servizio, dovresti cercare di disabilitarlo o rimuoverlo. Naturalmente, non disabilitare semplicemente i moduli o le applicazioni senza eseguire test approfonditi in un ambiente di sviluppo o staging (a volte potrebbe non essere del tutto chiaro che viene utilizzato un modulo o un'applicazione del server Web).
3. Rafforzare il controllo degli accessi
Controllare l'accesso al tuo server web è essenziale per ottenere il giusto. Dopotutto, vuoi ridurre al minimo la possibilità che l'accesso al tuo server web cada nelle mani sbagliate. Di seguito sono elencate alcune best practice da seguire in relazione al mantenimento di un adeguato controllo degli accessi.
- Non utilizzare l'utente root. Se è necessario eseguire attività amministrative, utilizzare invece sudo;
- Usa password di sistema complesse (e WordPress);
- Usa le chiavi SSH a favore della password quando usi SSH;
- Considerare di limitare l'accesso SSH/RDP da indirizzi IP specifici;
- Abilita l'autenticazione a due fattori (2FA) su qualsiasi account di provider di servizi cloud;
- Assicurarsi che ogni persona che accede al server Web abbia il proprio utente: non condividere account utente tra utenti;
- Limita l'accesso a shell/SSH/Desktop remoto in modo esplicito alle persone che ne hanno bisogno.
4. Configurazione del monitoraggio dell'integrità dei file (FIM)
File Integrity Monitoring (FIM) aiuta gli amministratori di sistema a identificare quando i file cambiano su un server web. Mentre alcuni file cambiano abbastanza frequentemente come parte delle normali operazioni del server web, file come un'installazione di WordPress non dovrebbero mai cambiare a meno che un amministratore non apporti modifiche (ad esempio aggiornando il file wp-config.php) o aggiornando WordPress stesso.
Sebbene ci sia una moltitudine di opzioni che puoi scegliere di utilizzare quando si tratta di monitoraggio dell'integrità dei file, si consiglia di attenersi a qualcosa che sia specifico per l'applicazione in esecuzione, sia semplice da configurare e utilizzare e non richiede un molta messa a punto. Altrimenti, annegherai in notifiche senza senso e prima che tu te ne accorga, si verificherà la stanchezza dell'avviso, cancellando i tuoi sforzi per stare con. In breve, più avvisi e funzionalità non sono migliori quando si tratta di FIM, cerca invece una soluzione che offra il massimo valore con il minor sovraccarico.
5. Utilizzare una mitigazione DDoS e un servizio WAF
Invece di esporre il tuo server web direttamente a Internet, dovresti prendere in considerazione l'utilizzo di un servizio come Cloudflare, Fastly, Akamai o simili per proteggerti da una vasta gamma di attacchi, inclusi gli attacchi DDoS (Distributed Denial of Service). Un attacco Denial of Service (DoS) è un tipo di attacco in cui un utente malintenzionato mira a sovraccaricare un sito Web di richieste e, di conseguenza, impedire al server Web di servire le richieste agli utenti legittimi.
Oltre alla mitigazione del Denial of Service, tali servizi cloud in genere offrono anche funzionalità WAF (Web Application Firewall) che sono in grado di bloccare molti attacchi comuni alle applicazioni Web come SQL injection (SQLi) di base e cross-site semplice Scripting (XSS). Sebbene i WAF non siano una soluzione alle vulnerabilità delle applicazioni Web, offrono una certa protezione contro lo sfruttamento, in particolare con le regole WAF ottimizzate per i siti Web WordPress.
Quali sono i prossimi passi?
Anche se questo articolo copre alcune comuni tecniche di rafforzamento del server Web, nulla in materia di sicurezza è un proiettile d'argento. In quanto tale, nessun metodo per difendere un sistema è infallibile, soprattutto di fronte a un determinato avversario. Quindi, perché è necessario proteggere ogni componente che compone il tuo sito Web WordPress. Non puoi proteggere il tuo server web e ignorare la sicurezza di WordPress o il tuo computer.
Tuttavia, l'applicazione di patch costanti e il rispetto di buone pratiche di sicurezza e igiene possono aumentare drasticamente lo sforzo che un utente malintenzionato deve fare per portare a termine con successo un attacco, il che, il più delle volte, significa frustrare l'attaccante, costringendolo a colpire un bersaglio più morbido.