Diventa Autore per CoreTech | Scopri di più





Apache Security - 10 consigli per un'installazione sicura

15/06/20 CoreTech Blog

Il web server Apache è uno dei server web più popolari disponibili sia per Windows che per Linux / UNIX. Al momento, è utilizzato per ospitare circa il 40% dei siti Web. Viene anche spesso descritto come uno dei server Web più sicuri. In questo articolo, puoi trovare 10 suggerimenti di sicurezza per rafforzare la configurazione di Apache e migliorare la sicurezza di Apache in generale.

1. Disabilitare la direttiva informazioni sul server

Se la  <Location /server-info> direttiva  nel  file di configurazione httpd.conf  è abilitata, è possibile visualizzare informazioni sulla configurazione di Apache accedendo alla pagina  / server-info  (ad esempio,  http://www.example.com/server-info ). Ciò potrebbe potenzialmente includere informazioni riservate sulle impostazioni del server come versione del server, percorsi di sistema, nomi di database, informazioni sulla libreria e così via.

Ad esempio, / server-info  espone la versione di Apache insieme alla versione OpenSSL. In passato, un utente malintenzionato poteva utilizzare queste informazioni per scoprire se il server utilizza una versione di OpenSSL vulnerabile al bug Heartbleed.

È possibile disabilitare questa direttiva commentando l'intero  mod_info modulo nel  file di  configurazione Apache httpd.conf :

#LoadModule info_module modules/mod_info.so

2. Disabilitare la direttiva sullo stato del server

Se abilitata, la <Location /server-status> direttiva elenca informazioni sulle prestazioni del server, come tempo di attività del server, carico del server, richieste HTTP correnti e indirizzi IP del client. Un utente malintenzionato può utilizzare queste informazioni per creare un attacco contro il server Web.

È possibile disabilitare questa direttiva commentandola nel  file di  configurazione Apache httpd.conf :

#<Location /server-status>

# SetHandler server-status

# Order deny,allow

# Deny from all

# Allow from .your_domain.com

#</Location>

3. Disabilitare la Direttiva ServerSignature

La ServerSignature direttiva aggiunge un piè di pagina ai documenti generati dal server. Questo piè di pagina include informazioni sulla configurazione di Apache come la versione di Apache e il sistema operativo. Per impedire ad Apache di visualizzare queste informazioni riservate, è necessario disabilitare questa direttiva nel  file di  configurazione Apache httpd.conf :

Banner

ServerSignature Off

4. Impostare la Direttiva ServerTokens su Prod

La  ServerTokens direttiva controlla le informazioni restituite nel Server campo dell'intestazione della  risposta. È possibile utilizzare diverse sintassi in questa direttiva, come elencato nella documentazione di Apache ServerTokens. La ServerTokens direttiva deve essere impostata su per indicare ad  Prod Apache di restituire solo  Apache  nelle intestazioni di risposta del server. Questo può essere fatto includendo la seguente direttiva nel  file di  configurazione Apache httpd.conf :

ServerTokens Prod

5. Disabilitare l'elenco delle directory

L'elenco delle directory  consente di visualizzare i contenuti completi delle directory. Se questa opzione è abilitata, un utente malintenzionato può semplicemente scoprire e visualizzare qualsiasi file. Ciò potrebbe potenzialmente causare la decompilazione dell'attaccante e il reverse engineering di un'applicazione al fine di ottenere il codice sorgente. Possono quindi analizzare il codice sorgente per possibili difetti di sicurezza o ottenere maggiori informazioni su un'applicazione, come stringhe di connessione al database, password ad altri sistemi, ecc. È possibile disabilitare l'elenco delle directory impostando la  Options direttiva  nel file httpd.conf di Apache:

<Directory /your/website/directory>

Options -Indexes

</Directory>

6. Abilitare solo i moduli richiesti

Un'installazione predefinita del server HTTP Apache può includere molti moduli preinstallati e abilitati non necessari. Per aggiungere la beffa al danno, alcuni amministratori di server web hanno la tendenza a prendere il percorso di minor resistenza e abilitare tutti i moduli rimanenti in  httpd.conf , in modo da garantire che tutto funzioni senza intoppi. Ciò, tuttavia, apre anche il server Apache a qualsiasi problema di sicurezza che potrebbe esistere o essere scoperto in futuro per i moduli abilitati.

La documentazione del modulo Apache elenca e spiega tutti i moduli disponibili per Apache. Cerca i moduli che hai abilitato e assicurati che siano realmente necessari per la funzionalità del sito Web. I moduli non necessari dovrebbero essere disabilitati commentando una LoadModule riga specifica  .

Banner

7.Utilizzare un utente e un gruppo appropriati

Per impostazione predefinita, Apache viene eseguito sotto l'utente e il gruppo daemon. Tuttavia, è consigliabile eseguire Apache utilizzando un account senza privilegi. Inoltre, se due processi (come Apache e MySQL) sono in esecuzione utilizzando lo stesso utente e gruppo, i problemi in un processo potrebbero portare a exploit nell'altro processo. Per modificare l'utente e il gruppo Apache, è necessario modificare le   direttive User e  Group nel file di  configurazione httpd.conf di Apache  .

User apache

Group apache

8. Limitare i servizi indesiderati

Per proteggere Apache, potresti voler disabilitare alcuni servizi, come l'esecuzione CGI e i collegamenti simbolici, se questi non sono necessari. Puoi disabilitare questi servizi usando la  Options drettiva nel  file di  configurazione httpd.conf e puoi anche disabilitare questi servizi solo per una particolare directory. L'esempio seguente mostra cosa è necessario includere nel file di  configurazione httpd.conf per disabilitare l'esecuzione dello script CGI, i collegamenti simbolici e le inclusioni sul  lato server per la directory principale del server Web e le relative sottodirectory.

<Directory /your/website/directory>

Options -ExecCGI -FollowSymLinks -Includes

</Directory>

9. Utilizzare ModSecurity WAF

ModSecurity è un modulo open source che funziona come firewall per applicazioni web. Diverse funzionalità includono il filtro, il mascheramento dell'identità del server e la prevenzione degli attacchi null-byte. Questo modulo consente inoltre di eseguire il monitoraggio del traffico in tempo reale.

Ti consigliamo di seguire il manuale ModSecurity per installare  mod_security  per migliorare la sicurezza del tuo server web e proteggerti da una moltitudine di attacchi, inclusi gli attacchi distribuiti denial of service (DDOS). Puoi anche utilizzare temporaneamente ModSecurity per proteggerti da determinati attacchi come  SQL Injection  e  Cross-site Scripting  fino a quando le vulnerabilità non vengono risolte dallo sviluppatore.

10. Abilita registrazione

La registrazione di Apache fornisce informazioni dettagliate sulle richieste dei client effettuate sul server Web, pertanto abilitare tale registrazione si rivelerà utile quando si studia la causa di problemi particolari. Per abilitare la registrazione, il  modulo mod_log_config  deve essere incluso nel file httpd.conf di Apache. Questo modulo fornisce le direttive TransferLog, LogFormat e CustomLog che vengono rispettivamente utilizzate per creare un file di registro, specificare un formato personalizzato e creare e formattare un file di registro in un solo passaggio. Come visto di seguito, la direttiva LogFormat viene utilizzata per specificare un formato di registrazione personalizzato: in questo caso il referrer e il browser di ciascuna richiesta vengono registrati insieme ai parametri di registrazione predefiniti. Quindi, la direttiva CustomLog verrà utilizzata per istruire Apache a utilizzare questo formato di registrazione.

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" detailed

CustomLog logs/access.log detailed


Articoli su Acunetix

Trovare le vulnerabilità dei siti web prima degli HackerL'importanza della convalida delle correzioni: lezioni da GoogleSDLC agile e sicuro - Best practiceIn che misura le aziende gestiscono la sicurezza delle applicazioni Web?Cross-Origin Resource Sharing (CORS) e intestazione Access-Control-Allow-OriginCosa sono i reindirizzamenti aperti?DevSecOps: come arrivarci da DevOpsIl bigino su SQL Injection per sviluppatoriSfruttare SSTI in ThymeleafSicurezza nginx: come proteggere la configurazione del serverRafforzamento del sistema Web in 5 semplici passaggiCos'è la sicurezza del sito Web - Come proteggere il tuo sito Web dall'hackingRapporto sulle vulnerabilità delle applicazioni Web Acunetix 2020Perché l'elenco delle directory è pericoloso?Cosa sono gli hack di Google?Cosa è l'attacco BEASTWeb Shells in Action - Rilevazione e prevenzione - parte 5Web Shells in Action - parte 4Mantenere le Web Shells sotto copertura - parte 3Introduzione alle web shell - parte 2: 101 Uso di PHPIntroduzione alle web shell - parte 1Debunking 5 miti sulla postura della sicurezza informaticaIniezioni di NoSQL e come evitarleConfigurazione passo passo di Acunetix con JenkinsCosa sono i riferimenti a oggetti diretti non sicuriAnche il più forte cade: un'iniezione SQL in Sophos XG FirewallAcunetix rilascia Business Logic RecorderCome recuperare un sito Web compromessoCome difendersi dagli hacker Black Hat durante la pandemia COVID-19Che cos'è l'inclusione remota dei file (RFI)?Apache Security - 10 consigli per un'installazione sicuraUn nuovo sguardo sugli attacchi correlati al proxy inversoVulnerabilità delle password comuni e come evitarleTutto quello che devi sapere sugli attacchi Man-in-the-MiddleChe cosa sono le iniezioni HTMLRed Teaming – 5 consigli su come farlo in modo sicuroTesta le tue competenze XSS utilizzando siti vulnerabiliPerché hacker malintenzionati hanno messo gli occhi sugli ospedaliPratiche di codifica sicura – I tre principi chiaveLa maledizione delle vecchie librerie JavaMutation XSS nella ricerca GoogleIgnorare SOP utilizzando la cache del browserCome e perché evitare reindirizzamenti e inoltri non convalidati?Dirottamento di sessione e altri attacchi di sessioneCome abbiamo trovato un altro XSS in Google con AcunetixChe cos'è un buffer overflowChe cos'è l'overflow di IntegerChe cos'è HSTS e perché dovrei usarlo?Che cosa è OS Command InjectionVulnerabilità delle entità esterne XML in Internet ExplorerCoreTech assicura protezione dei siti Web con AcunetixCoreTech distributore Acunetix a fianco dei partner per la CyberSecurityCyberSecurity applicativa, nuova opportunità per voi!