HomeContattaci
Enter Sistemi InformaticiI nostri clientiContattaciEnter Sistemi InformaticiEnter Sistemi

 Chi siamo | Prodotti e Servizi | Offerte | Catalogo prodotti | Area dealer | Area Tecnica | Strumenti

APPROFONDIMENTI

PRODOTTI

Hardware

Software

Reti

ADSL

Normative

Sicurezza

 

SERVIZI

Hosting/Housing

Registrazione Domini

Web Design

Motori di Ricerca

 

 

 

 

AREA TECNICA - SICUREZZA

Sicurezza sul web server

Non adottare criteri di sicurezza adeguati durante la realizzazione e la gestione di un sito Web può generare il rischio di abusi del servizio da parte di soggetti malintenzionati. Ciò può avvenire nei modi più svariati, ma spesso grazie ad errori di configurazione o vulnerabilità a livello di:

  • sistema operativo

  • http od altri servizi di rete (smtp, database, ftp, etc..);

  • programmi e script impiegati per generare il contenuto del sito

  • routers, firewalls e altro hardware per il controllo degli accessi 

La procedura classica degli hacker di solito parte dala ricerca di un accesso al sistema, ad esempio sfruttando script e programmi in buffer overflow (un buffer di input saturato con un valore superiore a quanto può gestire, per eseguire una porzione di codice arbitrario all'interno dello stack di esecuzione del processore), intercettando i file delle password o effettuando veri e propri attacchi di forza. A questo punto inizia ad attribuirsi privilegi amministrativi crackando le password o eseguendo altre aggressioni. Tutto questo processo è seguito dall'immediata cancellazione dei log file per nascondere il suo passaggio e dall'installazione di backdoors per poter riprendere il controllo in un secondo momento. Controllo che gli consentirà di sottrarre, cancellare, modificare informazioni dal server, rendere il servizio indisponibile al pubblico (Denial of Service), lanciare attacchi ad altri sistemi, monitorare il traffico passante.


Effettuare un Vulnerability Assestment permette di identificare con certezza i rischi del sistema e di predisporre precauzioni per portare la sicurezza del sistema ad un livello pari all'importanza delle risorse a rischio. Di seguito analizziamo ogni singolo aspetto di cui si dovrà tener conto.

 

Sistema operativo affidabile

L'affidabilità di un sistema operativo influisce in modo rilevante nel predisporre e mantenere livelli di sicurezza adeguati. Vi sono fattori di cui tener conto che possono produrre risparmi anche sull'amministrazione del sistema: la facilità di gestione è uno di questi, coaì come la possibilità di permettere diversi livelli di privilegi agli utenti. Non vanno trascurate nemmeno l'assenza di vulnerabilità note per tipi di attacco conosciuti, la possibilità di rimuovere e disabilitare servizi non necessari, la registrazione dell'attività degli utenti.

 

Rete e web server separati

La soluzione che da più garanzie è quella di separare web server e rete interna. 

Ciò è possibile con una "zona demilitarizzata" (DMZ) in grado di separare i sistemi interni sicuri da quelli esterni pubblici. Una DMZ è garanzia di sicurezza solo se supportata da strumenti di controllo degli accessi come router o firewall. E' così possibile bloccare il traffico UDP, ICMP e TCP non necessario, le connessioni TCP originate dal web server, il traffico tra web server e rete interna, il source routing (che permette di influenzare il percorso del pacchetto dati lungo la rete). Non è però possibile bloccare le connessioni in uscita dal web server quando questi utilizza servizi erogati da altri server (es. un server SMTP per la posta in uscita). In questo caso collocate anche gli host dei servizi di supporto all'interno di una sottorete separata dalle reti interna ed esterna con un firewall in modo tale da bloccare il traffico tra Internet e questi host e allo stesso tempo quello tra utenti e servizi di supporto.

Nel caso non fosse possibile usare una DMZ si può comunque ricorrere a dispositivi come hub e switch per separare il traffico web da quello interno e criptare quest'ultimo in modo da renderlo incomprensibile in caso di aggressione.
Il web server dovrebbe operare in configurazioni di rete e sistema minime: questa semplice regola da sola produrrà un sensibile miglioramento dei livelli di sicurezza. Ecco alcuni suggerimenti:

  • disabilitate i servizi di rete non essenziali e con vulnerabilità conosciute

  • rimuovete dal sistema i file dei servizi disabilitati

  • eliminate porte TCP e UDP in ascolto superflue

  • rimuovete o disabilitate compilatori, interpreti, shell, scripts ed altri strumenti simili

  • applicate politiche nella gestione di utenti con regole per accesso e uso delle risorse

Questi suggerimenti consentono al tempo stesso di semplificare le attività di amministrazione riducendo la probabilità di commettere quegli errori di configurazione che un aggressore potrebbe sfruttare. L'approccio "deny all, then allow"  consiste infatti nel disabilitare tutti i servizi e le porte TCP/UDP per riattivare solo in seguito solo ciò che è realmente necessario.

Gestione di utenti e privilegi 

Anche in questo caso vanno prefissate delle regole restrittive, con cautela poiché ad esempio bloccare gli utenti può spingere l'aggressore a provocare una situazione di Denial of Service per l'utente attraverso una serie di tentativi di connessione falliti. Consigliamo sia di disabilitare o rimuovere gli account inutili installati dal sistema operativo o altri software, per ridurre, in caso di intrusione, rischi di impersonificazione o scalate dei privilegi, sia di modificare l'account dell'amministratore, adottando in ogni caso criteri di robustezza delle password (lunghezza di almeno 8 caratteri, complessità alfanumerica e durata massima di 3-4 mesi). 

 

Programmi esterni e script

Interpreti, plug-in e script possono aprire falle nei livelli di protezione del web server. Prima di utilizzare script accertatevi della provenienza, con massima attenzione a lunghezza e complessità del codice, interazione con altri programmi e accesso in lettura/scrittura al file system. Buona norma è quella di non installare programmi ed interpreti nella stessa directory degli script. 

L'uso di script può introdurre nell'esecuzione del codice molte variabili sfruttabili per ottenere un accesso non autorizzato. Una delle aggressioni più classiche è l'invio di dati inattesi al server tramite la URL, con quantità eccessive di dati o combinando l'abuso di metacaratteri con l'encoding della stringa. Ciò causa il classico buffer overflow, altera i meccanismi di autenticazione o accesso a funzionalità riservate dell'applicativo, spesso attivando anche funzioni di sistema, di programmi esterni, file e risorse che non fanno parte del contenuto del Web.

Per evitare questi effetti si consigliano tecniche basate sulla qualità della programmazione, l'implementazione di una logica applicativa robusta e sul controllo del flusso.

Se non si è certi della natura dell'input ricevuto è possibile identificarlo avvalendosi delle funzioni messe a disposizione dai più linguaggi di scripting: Perl, PHP, CFML e ASP possiedono queste funzioni. Sia Perl che PHP, inoltre, evitano condizioni di overflow del buffer di input aggiustando in automatico la sua dimensione per supportare la quantità di dati ricevuta realmente. 
Anche disabilitare gli SSI è opportuno: se infatti da un lato offrono utili funzionalità interattive, d'altro canto sono troppo elementari nel funzionamento in quanto basati su tags che possono essere inseriti ovunque in un documento html per forzare l'esecuzione di comandi in locale sul server. Se possibile, infine, evitate tags html nascosti per raccogliere informazioni sensibili che possono essere facilmente alterate.

Identificazione, logging ed auditing

Raccogliere dati relativi a tutto il sistema permette di individuare intrusioni (determinandone l'entità) ed operazioni di "probing", segni di un interesse esterno al sistema e alle sue debolezze.
Per riconoscere questi segni confrontate le informazioni relative al funzionamento del sistema con informazioni analoghe rilevate in fase di prima installazione od operatività. Si potranno utilizzare alcuni indicatori in base all'importanza della situazione e alle risorse disponibili per memorizzarli: 

  • il numero, le intestazioni e il contenuto di pacchetti, bytes e connessioni in entrata/uscita

  • il numero dei socket aperti

  • gli errori sulle varie interfacce di rete ed il loro stato

  • le connessioni effettuate (con durata e flusso), ed i tentativi falliti

  • l'ammontare totale delle risorse in uso (CPU, memoria, dischi)

  • lo stato del file system ed i cambiamenti nello stato del sistema (shutdown e riavvii)

  • la data e l'ora di avvio, la durata e la percentuale di risorse dei vari processi

  • i messaggi di errore inviati dal sistema

  • login (data ed ora, tentativi falliti, accessi come utenti privilegiati) e logout

  • i cambiamenti e le modifiche riguardanti i privilegi degli utenti ed il loro uso

  • l'aggiunta, cancellazione, modifica, il numero e il timestamp di files/directories e loro attributi

  • il checksum per tutti i files e le directories più importanti

  • i cambiamenti nelle dimensioni, nel contenuto e nella protezione dei files

  • la presenza di eventuali "alternate data streaming" all'interno dei files

  • i risultati delle scansioni antivirus

  • raccogliere ed analizzare i log file per i vari servizi di rete (web, mail, ftp,etc...)

Per diminuire il volume dei dati da analizzare esistono tecniche di rotazione che creano periodicamente copie dei logs online per avere sempre una collezione di logs relativi a precisi momenti temporali. E' essenziale poi che la "fotografia" del sistema venga ripetuta in occasione di ogni aggiornamento, in modo da poter effettuare un raffronto dei dati attendibile.
Per non vanificare i meccanismi di logging ed auditing è conveniente proteggere i logs spostandoli su un host protetto, criptandoli ed analizzandoli periodicamente. 



Per mantenere integre le vostre risorse, infine, prendete la saggia precauzione di
creare copie di backup di tutti i files e programmi significativi criptandole su supporti di memorizzazione a sola lettura o su un altro host protetto da firewalls, restringendone l'accesso e l'uso ai soli utenti autorizzati. Esse vi consentiranno di ripristinare files e programmi nel caso la loro integrità fosse compromessa.

     

     

2003 - © Enter Sistemi - Tutti i diritti riservati

Powered by PINGTIMEOUT