Password dimenticata? Nessun account? Registrati
  • Bassa risoluzione
  • Alta risoluzione
  • Ridimensionamento automatico
  • Increase font size
  • Decrease font size
  • Default font size
  • default
  • rosso
  • verde

Data Security

domenica
05
feb
Home
Vulnerabilitā lato server PDF Stampa E-mail

Le vulnerabilità presenti nei sistemi server, da quelle relative alle applicazioni Web ai software antivirus, dai servizi Windows, Unix e Mac OS ai management server, dai software di backup ai database.

S1 Applicazioni Web

S1.1 Descrizione

Le applicazioni Web come i Content Management System (CMS), Wiky, Portali, Bulletin Board e forum di discussione sono utilizzate da organizzazioni grandi e piccole. Un grande numero di aziende, inoltre, sviluppa e mantiene applicazioni web personalizzate per il proprio business (in verità per molti casi tali applicazioni sono il loro business). Ogni settimana in queste applicazioni, siano esse open source o proprietarie, si scoprono centinaia di vulnerabilità, che vengono regolarmente sfruttate per condurre degli attacchi. Da notare che anche le applicazioni web personalizzate sono costantemente attaccate e colpite, solo che le vulnerabilità presenti in tali applicazioni non sono censite e monitorate dai database pubblici delle vulnerabilità come @RISK, CVE o BugTraq. Il numero di tentativi giornalieri di attacco per alcuni dei maggiori fornitori di web hosting varia da centinaia di migliaia fino a milioni.

web1.jpg

php.jpg


 

Numero di attacchi PHP File Include registrato in una struttura di web hosting da TippingPoint IPS

Tutti gli ambienti web f (PHP, .NET, J2EE, Ruby on Rails, ColdFusion, Perl, ecc) e qualsiasi tipologia di applicazione web è a rischio a causa di problemi di sicurezza delle applicazioni web, che vanno da metodi di validazione insufficienti fino a errori nella logica dell'applicazione. Le vulnerabilità più sfruttate sono:

  • PHP Remote File Include: PHP è il linguaggio e l'ambiente attualmente più utilizzato per applicazioni web. PHP permette per default l'accesso a risorse su Internet come se fossero file utilizzando una funzionalità chiamata "allow_url_fopen". Quando gli script PHP permettono all'utente inserimenti che interagiscano con i nomi dei file, è possibile che si verifichi l'inclusione di file remoti. Questo attacco permette (ma non solo):
    • L'esecuzione di codice da remoto
    • L'istallazione di root kit
    • Su Windows, la compromissione totale del sistema attraverso l'uso dei file wrappers SMB di PHP
  • SQL Injection: Le injection, in particolare le SQL injection, sono piuttosto comuni nelle applicazioni web. Le Injection sono rese possibili dalla mescolanza di dati forniti dall'utente con query dinamiche o all'interno di procedure mal costruite. Le SQL injection permettono ai malintenzionati di:
    • Creare, leggere, modificare o cancellare qualsiasi dato disponibile nell'ambito dell'applicazione
    • Nel peggiore dei casi, di compromettere completamente il sistema del database e i sistemi correlati
  • Cross-Site Scripting (XSS): Il cross site scripting, meglio conosciuto come XSS, è il problema di sicurezza più pernicioso e maggiormente riscontrabile per le applicazioni web. XSS permette agli aggressori di deturpare i siti web, di inserire contenuti dannosi, di condurre attacchi di phishing, di prendere il controllo del browser degli utenti utilizzando codici JavaScript e porta gli utenti ad eseguire comandi non di loro scelta - un attacco conosciuto come cross-site request forgery, meglio noto come CSRF.
  • Cross-site request forgery (CSRF): CSRF forza gli utenti legittimi ad eseguire comandi senza il loro consenso. Questo tipo di attacco è estremamente difficile da prevenire a meno che l'applicazione non sia esente da vettori cross-site scripting, comprese le DOM injection. Con la crescita della diffusione di tecniche Ajax e la conoscenza più approfondita su come sfruttare gli attacchi XSS, gli attacchi CSRF stanno diventando molto sofisticati, sia come attacco specifico attivo, sia come automatismo di worm come il Samy MySpace Worm.

S1.2 Come stabilire se si è a rischio

Gli strumenti di scansione Web possono aiutare a riscontrare queste vulnerabilità, specialmente se si tratta di bug conosciuti. Per trovare le vulnerabilità potenziali è però necessaria una revisione completa del codice sorgente e un penetration test dell'applicazione. Queste operazioni dovrebbero essere eseguite dallo sviluppatore prima del rilascio di qualsiasi applicazione web importante.

Controllare come è configurata la struttura della vostra applicazione web e operate le opportune correzioni per la sicurezza.

Gli amministratori del sistema dovrebbero prevedere una scansione periodica dei web server tramite dei vulnerability scanner, in particolare quando questi ospitano una vasta gamma di script diversi forniti dagli utenti, come accade nelle hosting farm.

Nessuno dovrebbe essere incaricato di scrivere una applicazione web se prima non ha superato l'esame del GSSP Secure Software Programming, che riguarda la teoria e gli strumenti di sicurezza essenziali di cui uno sviluppatore avrebbe bisogno per produrre applicazioni più sicure.

S1.3 Come proteggersi dalla vulnerabilità delle applicazioni web

Dal punto di vista dell'hosting e dell'amministratore del sistema PHP:

  • Effettuate l'aggiornamento a PHP 5.2, in quanto questa versione elimina molti dei problemi di sicurezza di PHP e permette API più sicure come PDO
  • Provate e quindi installate le patch e le nuove versioni di PHP non appena vengono rilasciate
  • Si raccomanda l'uso frequente di scansioni web in particolare per gli ambienti ove sono in uso una grande numero di applicazioni PHP.
  • Verificate la possibilità di utilizzare le seguenti configurazioni di PHP:
    • register_globals dovrebbe essere off (interferirà con applicazioni insicure)
    • allow_url_fopen dovrebbe essere off (interferirà con applicazioni che utilizzano questa funzionalità, ma vi proteggerà da un vettore di attacchi molto dannoso)
    • magic_quotes_gpc dovrebbe essere off (interferirà con applicazioni insicure meno recenti)
    • open_basedir dovrebbe essere abilitato e correttamente configurato
  • Verificate la possibilità di utilizzare funzionalità con privilegi di esecuzione molto bassi come PHPsuexec o suPHP
  • Prendete in considerazione Suhosin per controllare l'ambiente di esecuzione degli script PHP
  • Utilizzate sistemi di Intrusion Prevention/Detection per bloccare o segnalare richieste HTTP sospette. Prendete in considerazione mod_security di Apache per bloccare gli attacchi PHP noti
  • Come ultima risorsa, prendere in considerazione il blocco delle applicazioni in cui sono state rilevate delle vulnerabilità sfruttate e rallentate i tempi di risposta per risolvere i problemi di sicurezza conosciuti.

Dal punto di vista dello sviluppatore:

  • Se usate PHP, migrate rapidamente le vostre applicazioni verso PHP 5.2.
  • Per evitare i problemi di codifica illustrati:
    • Sviluppate le applicazioni con la versione più recente di PHP e una configurazione più attenta alla sicurezza (vedi sopra)
    • Convalidate in maniera appropriata tutti gli input
    • Codificate tutti gli output usando htmlentities() o meccanismi simili per evitare gli attacchi XSS
    • Migrate la parte dati verso PDO - non utilizzate le funzioni mysql_*() vecchio stile, notoriamente difettose
    • Non usate funzioni in cui gli input dell'utente interagiscano con file, per evitare attacchi di remote file inclusion
  • Associatevi alle organizzazioni per la codifica sicura come OWASP (vedi riferimenti) per sviluppare le vostre conoscenze e imparare a programmare in modo sicuro
  • Provate le vostre applicazioni utilizzando la OWASP Testing Guide con strumenti quali WebScarab, la Web Developer Toolbar di Firefox, Greasemonkey e XSS Assistant
  • Misurate le vostre conoscenze usando gli esami GSSP e colmando le lacune del vostro sapere.

S1.4 Approfondimenti

OWASP - Open Web Application Security Project
http://www.owasp.org/

OWASP Testing Guide
http://www.owasp.org/index.php/OWASP_Testing_Guide_v2_Table_of_Contents

Guida OWASP Guide - le indicazioni per la codifica sicura
http://www.owasp.org/index.php/Category:OWASP_Guide_Project

OWASP Top 10 - La Top 10 dei problemi di sicurezza delle applicazioni Web
http://www.owasp.org/index.php/Top_10_2007
http://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project

Suhosin, un progetto Hardened PHP per controllare l'ambiente di esecuzione delle applicazioni PHP
http://www.hardened-php.net/suhosin/

PHPSecInfo
http://phpsec.org/projects/phpsecinfo/index.html

GSSP Exam blueprints and testing schedule
http://www.sans.org/gssp

S2. Servizi Windows

S2.1 Descrizione

La famiglia dei sistemi operativi Windows supporta una larga gamma di servizi, procedure di rete e tecnologie. Molti di questi componenti sono implementati come SCP (Service Control Programs) sotto il controllo del Service Control Manager (SCM), che viene eseguito come services.exe. Le vulnerabilità dei servizi che eseguono queste funzioni del sistema operativo sono una delle strade più battute per gli attacchi alla sicurezza. Alla prima installazione di Windows Server 2003, Windows XP o Windows Vista, alcuni servizi sono installati e configurati per essere attivi automaticamente quando il computer viene riavviato. Su Windows Server 2003 sono attivati quei servizi che corrispondono al ruolo che si è assegnato a ciascun server. In alcuni ambienti qualcuno di questi servizi di default potrebbe essere non necessario, per cui si dovrebbero disattivare manualmente tutti i servizi che non servono in modo da aumentare la sicurezza. I servizi devono collegarsi a risorse di accesso e a oggetti del sistema operativo, ma la maggior parte dei servizi non sono progettati per dare la possibilità di cambiare il loro account di default. Se cambiate la password dell'account predefinito per questi servizi è probabile che il servizio smetta di funzionare. Se scegliete un account che non ha i permessi necessari per collegarsi come servizio, la Microsoft Management Console (MMC) gli attribuisce automaticamente la possibilità di collegarsi al computer come servizio, anche se questa configurazione automatica non da la garanzia che il servizio partirà davvero. I sistemi operativi Windows prevedono tre account locali preallestiti che vengono usati come account per il logon di vari servizi di sistema:

Account di sistema locale. L'account di sistema locale (Local System account) è un account molto potente a cui è riservato pieno accesso al computer ed opera come computer nella rete. Se un servizio usa l'account di sistema locale per autenticarsi presso un controller di dominio, il servizio avrà accesso all'intero dominio. Alcuni servizi hanno come configurazione predefinita la possibilità di usare l'account di sistema locale e questa non si può cambiare. L'account di sistema locale non deve avere una password accessibile all'utente.

Account di Servizio locale. L'account di Servizio locale è un account speciale preallestito che assomiglia all'account di un utente autenticato. Possiede lo stesso livello di accesso alle risorse e agli oggetti di un membro di un Gruppo di utenti. Questo accesso limitato iuta a salvaguardare il vostro computer nel caso che un singolo servizio o uno specifico processo sia compromesso. I servizi che usano l'account di Servizio locale accedono alle risorse di rete con una sessione nulla (null session) con credenziali anonime. Il nome di questo account è NT AUTHORITY\Local Service e non ha una password accessibile all'utente.

Account di Servizio di rete. Anche l'account di Servizio di rete è un account speciale predefinito che ha caratteristiche simili a un account utente. Come l'account di Servizio locale ha lo stesso livello di accesso alle risorse e agli oggetti di un membro di un Gruppo di utenti , il che aiuta a salvaguardare il vostro computer. I servizi che usano l'account di Servizio di rete accedono alle risorse di rete con le credenziali del computer. Il nome di questo account è NT AUTHORITY\Network Service e non ha una password accessibile all'utente.

Alcuni strumenti grafici basati su Graphical user interface (GUI) possono essere d'aiuto per gestire i servizi. Le versioni di questi strumenti inserite nelle versioni di Windows precedenti a Windows Server 2003, però, applicano automaticamente i permessi al servizio quando si configura una qualsiasi delle proprietà del servizio. Strumenti come Group Policy Object Editor e il modulo MMC Security Templates usano la DLL Security Configuration Editor per applicare questi permessi. Ad esempio, quando utilizzate il modulo MMC Security Templates per configurare lo stato del servizio all'avvio di Windows XP, la finestra di dialogo seguente mostrerà:

windows.jpg
Figura 1. Finestra di dialogo Services Security

A prescindere dal fatto che si selezioni OK o Cancel, i permessi verranno applicati al servizio che è stato configurato. Sfortunatamente i permessi che questa finestra di dialogo propone non corrispondono ai permessi predefiniti per la maggior parte dei servizi inclusi in Windows. In pratica, gestire i permessi dei servizi causa una serie di problemi al funzionamento di molti servizi. Suggeriamo quindi di non alterare i permessi assegnati ai servizi inclusi in Windows XP o Windows Server 2003, poiché quelli impostati per default sono già abbastanza restrittivi. Ci sono diverse linee d'azione che si possono portare avanti in questo scenario:

  • Usare il Security Configuration Wizard, un componente opzionale di Windows incluso in Windows Server 2003 Service Pack 1 (SP1). Usate questo approccio quando avete bisogno di configurare filtri per servizi e porte di rete per i vari ruoli di server da assegnare a Windows Server 2003.
  • Eseguire i moduli MMC Security Template e Group Policy Object Editor su un serve che esegue Windows Server 2003 con SP1. questo approccio quando avete bisogno di configurare servizi per security template o Group Policy che saranno applicati a Windows XP.
  • Usate un editor di testo come Notepad per modificare i security template o le Group Policy su un computer che esegue Windows XP Professional. Questo metodo è il meno desiderabile dei tre, ma in alcuni casi non c'è altra scelta.

Molti dei servizi del nucleo centrale di Windows forniscono punti di collegamento remoti ai componenti del client attraverso le Chiamate di procedura remota (Remote Procedure Calls - RPC). Questi sono esposti soprattutto attraverso le procedure accessibili tramite il protocollo CIFS (Common Internet File System), alcune porte TCP/UDP ben conosciute e in alcuni casi attraverso porte TCP/UDP più transitorie. Storicamente vi sono state numerose vulnerabilità nei servizi Windows che potevano essere sfruttate con utenti anonimi. Quando vengono sfruttate, queste vulnerabilità offrono all'aggressore gli stessi privilegi che ha presso l'host il servizio in quel momento attivo.

S2.2 Sistemi operativi interessati

Sono potenzialmente vulnerabili Windows XP Home e Professional, Windows 2003 e Windows Vista.

S2.3 Riferimenti CVE

CVE-2007-0213, CVE-2007-1748, CVE-2007-0938, CVE-2006-5584, CVE-2006-5583, CVE-2006-4691
CVE-2006-0027, CVE-2006-1314, CVE-2006-2370, CVE-2006-2371, CVE-2006-3439

S2.4 Come stabilire se si è a rischio

  • Utilizzate un qualsiasi vulnerability scanner per verificare se il vostro sistema è protetto rispetto ai problemi elencati. Prendete anche in considerazione l'uso di sistemi per la valutazione dello stato degli aggiornamenti dei vostri sistemi quali Microsoft Windows Server Update Services (WSUS), Microsoft Baseline Security Analyzer (MBSA), Windows Live Scanner o Systems Management Server (SMS).
  • Potete verificare la presenza della patch corrispondente anche controllando la chiave del registro citata nella sezione Controllo delle chiavi del Registro di sistema presente nel relativo Bollettino sulla sicurezza. È opportuno, inoltre, controllare che le versioni aggiornate dei file citati nel bollettino siano installate sul sistema.
  • Per verificare se il vostro sistema sia vulnerabile a un problema presente in un servizio opzionale, dovete prima controllare se il servizio è avviato. Si può fare attraverso la console di amministrazione dei Servizi, che può essere lanciata al menu Servizi in Strumenti di Amministrazione.

S2.5 Come proteggersi dalle vulnerabilità dei Servizi Windows

  • Gli utenti Windows del Governo degli Stati Uniti sono ora obbligati a utilizzare la Federal Desktop Core Configuration per Windows XP o Vista. (http://fdcc.nist.gov/). Anche gli altri possono adottare questa configurazione e troveranno la FDCC affidabile e sicura.
  • Abilitate il Windows Firewall e/o installate sull'host un firewall di una terza parte. Assicuratevi che siano applicate regole per impedire l'accesso alla macchina Windows a tutte le connessioni ad eccezione di quelle necessarie, esplicitamente indicate. Ad esempio, molte di queste vulnerabilità si trovano sui collegamenti permessi da CIFS e quindi bloccare le porte tcp 139 e 445 è essenziale per prevenire attacchi da remoto. È buona norma anche bloccare le chiamate RPC in entrata provenienti da Internet verso porte superiori alla 1024 per bloccare altre vulnerabilità basate su RPC. In ambienti enterprise i Windows Firewall degli host possono essere configurati con dei General Policy Objects via Microsoft Active Directory.
  • In Windows 2003 SP1 e R2, quando possibile utilizzate il Security Configuration Wizard assieme al Windows firewall per ridurre la possibilità degli attacchi.
  • Utilizzate filtri in uscita (oltre a quelli in entrata) sui firewall perimetrali come parte dell'architettura di difesa della rete per ridurre i problemi causati da attacchi provenienti sia dall'esterno che dall'interno.
  • Mantenete i sistemi aggiornati con le patch e i service pack più recenti. Se possibile, abilitate gli Aggiornamenti automatici su tutti i sistemi.
  • Utilizzate sistemi di Intrusion Prevention/Detection a livello di rete e a livello di host come parte della strategia di difesa per prevenire/identificare attacchi che sfruttino queste vulnerabilità.
  • Eliminate l'esposizione alle vulnerabilità disabilitando i servizi non necessari. Nei client Windows (XP, 2003 o Vista), dovrebbero generalmente essere disabilitati i seguenti servizi:

 

Servizio

Nome visualizzato

Client desktop/laptop in reti aziendali

desktop/laptop non in rete

Alerter

Avvisi

Disabilitato

Disabilitato

ClipSrv

ClipBook

Disabilitato

Disabilitato

Browser

Browser di computer

Non definito

Disabilitato

Fax

Fax

Non definito

Disabilitato

MSFtpsvr

FTP

Disabilitato

Disabilitato

IISADMIN

Amministrazione IIS

Disabilitato

Disabilitato

cisvc

Servizio di indicizzazione

Non definito

Disabilitato

Messenger

Messenger

Disabilitato

Disabilitato

mnmsrvc

Condivisione desktop remoto di NetMeeting

Disabilitato

Disabilitato

RDSessMgr

Gestione sessione di assistenza mediante desktop remoto

Non definito

Disabilitato

RemoteAccess

Routing e Accesso remoto

Disabilitato

Disabilitato

SNMP

Servizio SNMP

Disabilitato

Disabilitato

SNMPTRAP

Servizio SNMP Trap

Disabilitato

Disabilitato

SSDPSrv

Servizio di rilevamento SSDP

Disabilitato

Disabilitato

Schedule

Utilità di pianificazione

Non definito

Disabilitato

TlntSvr

Telnet

Disabilitato

Disabilitato

TermService

Servizi Terminal

Non definito

Disabilitato

Upnphost

Host di periferiche Plug and Play universali

Non definito

Disabilitato

W3SVC

World Wide Web Publishing

Disabilitato

Disabilitato

Tabella 1. Servizi Windows disabilitati sui Client Windows

Nelle versioni precedenti dei sistemi operativi Windows, in particolare in Windows NT e Windows 2000, molti di questi servizi erano abilitati di default per la comodità dell'utente. Questi servizi non essenziali aumentano però significativamente l'esposizione agli attacchi. Per le macchine Windows usate come server (es. Server di stampa, file server) fate riferimento alle configurazioni più appropriate descritte nelle guide elencate negli approfondimenti qui sotto e/o usate strumenti automatici come il Windows 2003 Security Configuration Wizard (Configurazione guidata impostazioni di sicurezza)per configurare correttamente i servizi.

  • In alcuni casi è possibile usare lo stratagemma di impedire l'accesso a sessioni nulle verso l'interfaccia vulnerabile. È buona norma rivedere le vostre impostazioni correnti di RestrictAnonymous e impostarle nella forma più limitativa possibile in base al vostro ambiente di lavoro http://www.securityfocus.com/infocus/1352

S2.6 Approfondimenti

Introduzione ai pericoli e alle contromisure: Impostazioni di sicurezza per Windows Server 2003 e Windows XP
http://www.microsoft.com/italy/technet/security/topics/serversecurity/tcg/tcgch01n.mspx

Guida per la protezione di Windows XP
http://www.microsoft.com/italy/technet/security/prodtech/windowsxp/secwinxp/default.mspx

Guida per la protezione di Windows Server 2003
http://www.microsoft.com/italy/technet/security/prodtech/windowsserver2003/w2003hg/sgch00.mspx

Informazioni su Windows Firewall
http://www.microsoft.com/italy/windows/products/windowsxp/winxp/using/security/internet/sp2_wfintro.mspx

Informazioni sulla Configurazione guidata impostazioni di sicurezza
https://www.microsoft.com/technet/prodtechnol/windowsserver2003/it/library/ServerHelp/eeb7c8c2-3579-47cc-a126-6519321098e6.mspx?mfr=true

Utilizzare gli elenchi di filtri IP IPSec in Windows 2000
http://support.microsoft.com/kb/313190

Blocco di specifici protocolli di rete e porte utilizzando IPSec
http://support.microsoft.com/kb/813878

Configurazione della funzionalità Filtro TCP/IP in Windows 2000
http://support.microsoft.com/kb/309798

S3. Servizi UNIX/Mac OS

S3.1 Descrizione

La maggior parte dei sistemi Unix/Linux include diversi servizi standard nella propria installazione predefinita. Mac OS X spesso soffre delle stesse vulnerabilità dei sistemi Unix, in quanto anch'esso basato su Unix. I servizi non necessari dovrebbero essere disabilitati e i server che si affacciano verso reti pubbliche dovrebbero essere protetti da firewall.

Per i servizi che forniscono login da remoto o comunque servizi da remoto non è possibile bloccare semplicemente il traffico tramite i firewall. Le vulnerabilità di buffer overflow e i problemi nelle funzioni di autenticazione possono spesso diventare un veicolo per l'esecuzione di codice incontrollato, talvolta con privilegi di amministratore, per cui reperire informazioni sulle possibili vulnerabilità e applicare rapidamente le opportune correzioni diventa molto importante. Ogni anno viene scoperta qualche vulnerabilità di buffer overflow nei servizi Unix/Linux.

Questi servizi, anche quando correttamente aggiornati, possono essere l'involontaria causa di danni. Gli attacchi brute-force contro servizi come SSH, FTP e telnet rappresentano ancora la più comune forma di attacco diretto a compromettere i server che si affacciano su Internet. Nel corso degli ultimi due anni si è riscontrato un impegno comune da parte degli aggressori ad operare attacchi brute-force verso le password usate in queste applicazioni. Un numero sempre crescente di worm e bot contengono motori per attacchi brute force alle password. I sistemi con password deboli per gli account utente vengono messi in pericolo; spesso attraverso l'escalation di privilegi si riesce ad ottenere un accesso root e ad installare dei root-kit per nascondere le tracce. È importante ricordare che l'attacco brute force verso le password può essere una tecnica valida per compromettere anche quei sistemi che presentano tutti gli aggiornamenti di sicurezza necessari.

Gli amministratori più attenti alla sicurezza utilizzano SSH come sistema per interagire da remoto con i sistemi. Se la versione di SSH è quella più recente e con tutte le patch installate, si considera generalmente il servizio come sicuro. Ciononostante, per quanto sia recente o aggiornato, può essere ancora compromesso tramite attacchi brute-force che ne individuino le password. Per questo si consiglia di usare per SSH meccanismi di autenticazione a chiave pubblica, che sono in grado di evitare questo tipo di attacco. Per quanto riguarda i restanti servizi di interazione, verificate le password per accertavi che presentino una complessità sufficiente a resistere ad attacchi brute-force.

Ridurre al minimo indispensabile i servizi attivi su un host lo renderà più sicuro. Molti servizi sono stati utilizzati per ulteriori exploit e alcune combinazioni di servizi (come ad esempio i server web e server FTP che condividono le directory) sono particolarmente inclini ad essere attaccati.

S3.2 Sistemi operativi interessati

Tutte le versioni dei server Unix/Linux/Mac OS sono potenzialmente a rischio se presentano le configurazioni predefinite o improprie. Tutti questi sistemi operativi possono essere in pericolo se gli account di autenticazione usano password deboli o presenti in un dizionario.

S3.3 Riferimenti CVE

Servizi remoti
CVE-2006-5815, CVE-2007-0882, CVE-2007-2446, CVE-2007-0731, CVE-2007-2791, CVE-2007-1654

Kernel/Librerie
CVE-2007-4995, CVE-2007-5191, CVE-2006-6652, CVE-2007-3641, CVE-2007-5079, CVE-2007-1351

Management Console/Tool
CVE-2007-3093, CVE-2007-3094, CVE-2007-3260, CVE-2007-3232, CVE-2007-2282, CVE-2007-0980

Altro
CVE-2007-2173, CVE-2006-5616

S3.4 Come stabilire se si è vulnerabili

Le installazioni di default (sia che siano effettuate da un produttore o da un amministratore) di sistemi operativi o di applicazioni di rete possono introdurre una vasta gamma di servizi non necessari e non utilizzati. In molti casi l'indefinibilità a priori su cosa avrà davvero bisogno un sistema operativo o una applicazione porta molti produttori e amministratori a installare tutto il software a disposizione nel caso diventi utile in futuro. Questa pratica semplifica significativamente il processo di installazione ma introduce anche una vasta gamma di servizi non necessari e account con password di default, deboli o altrimenti conosciute.

L'uso di un vulnerability scanner aggiornato o di un port mapper può essere molto efficace per la scoperta di qualche vulnerabilità potenziale ereditata dalle istallazioni di default o da servizi e applicazioni non necessarie e/o obsolete. Anche un password cracker può essere utile per evitare l'utilizzo di password deboli o di facile individuazione.

Nota: Non utilizzate mai un password cracker o un vulnerability scanner, neanche sui sistemi per i quali avete un accesso root, senza autorizzazione esplicita e preferibilmente scritta da parte del vostro datore di lavoro. È già accaduto che amministratori di sistema con le migliori intenzioni siano stati licenziati per aver utilizzato strumenti per la determinazione delle password senza autorizzazione.

S3.5 Come proteggersi da queste vulnerabilità

Disabilitando i servizi non necessari

  • Analizzate il server con un port scanner o uno strumento di vulnerability assessment per determinare quali servizi non necessari siano attivi sul sistema. Disabilitate i servizi che non sono richiesti da qualche applicazione necessaria.
  • Stabilite e applicate procedure affidabili di gestione delle patch
  • Installate regolarmente le più recenti patch rilasciate dal fornitore per attenuare le vulnerabilità nei servizi esposti. La gestione delle patch è una parte fondamentale del processo di gestione del rischio.
  • Gli strumenti di gestione delle patch sono utili per trovare i sistemi non ancora aggiornati. Applicare costantemente le patch ai server è importante specialmente nelle reti in cui sono attivi molti server, in quanto un solo server non aggiornato può mettere in pericolo l'intera rete.

Utilizzando configurazioni sicure

  • Utilizzate i benchmark del Center for Internet Security (http://www.cisecurity.org/) per i sistemi operativi e i servizi che utilizzate. Considerate anche l'utilizzo di Bastille (http://www.bastille-linux.org/) per rafforzare gli host Linux e HP-UX.
  • Considerate la possibilità di trasferire i servizi dalla porte di default non appena possibile. Gli scanner automatici tendono ad analizzare solo le porte di default.
  • Assicuratevi che i servizi siano protetti da meccanismi di sicurezza forniti dal produttore (come ad esempio SELinux o address space randomization).

Migliorando i log per la difesa e il monitoraggio perimetrale

  • Usate firewall hardware o software e IDS/IPS per rilevare e bloccare gli attacchi, proteggendo i servizi necessari. Se possibile, limitate l'accesso e i servizi da remoto a determinati indirizzi IP.
  • Nelle reti mission critical, utilizzante un sistema di controllo in tempo reale dei log per rilevare immediatamente gli attacchi. Gli strumenti SIM e di gestione dei log sono utili per l'analisi real-time di numerose tipologie di log.

Bloccando gli attacchi brute force

  • Non usate le password di default su alcun account.
  • Attuate una politica di password robuste. Non permettete l'utilizzo di password deboli o che contengano parole presenti in un dizionario.
  • Effettuate delle verifiche per accertarvi che la vostra politica di password sia rispettata.
  • Limitate il numero di tentativi di login falliti per i servizi più esposti.
  • Limitate gli account che possono accedere attraverso la rete; root non dovrebbe essere uno di questi.
  • Proibite l'utilizzo di account condivisi e non utilizzate nomi utente generici come tester, guest, sysadmin, admin, ecc.
  • Conservate un registro dei tentativi di login falliti. Un numero alto di tentativi di login falliti a un sistema può richiedere un controllo ulteriore sul sistema vedere se è stato compromesso.
  • Prendete in considerazione un sistema di autenticazione basato su certificati.
  • Se il vostro sistema UNIX permette l'uso di moduli di autenticazione PAM, implementate i moduli PAM per verificare la resistenza delle password.

Evitando interazioni tra i servizi e configurazioni non corrette

  • Dove possibile, limitate le funzioni degli host. Le configurazioni non corrette in diversi servizi possono spesse aumentare i rischi per un servizio.

S3.6 Approfondimenti

Attacchi Brute Force e relative contromisure

http://isc.sans.org/diary.php?storyid=1541
http://isc.sans.org/diary.php?storyid=1491
http://isc.sans.org/diary.html?storyid=3212
http://isc.sans.org/diary.html?storyid=3209
http://isc.sans.org/diary.php?date=2006-08-01

Risorse generali per la sicurezza di UNIX

http://www.cisecurity.org/
http://www.bastille-linux.org/
http://www.puschitz.com/SecuringLinux.shtml

S4. Software di Backup

S4.1 Descrizione

Il software di backup è un bene prezioso per qualsiasi organizzazione. Di solito questi software agiscono su un gran numero di sistemi di ciascuna azienda. Negli ultimi anni, con la crescita della quantità di dati gestiti, la tendenza è stata quella di consolidare la funzione di backup in pochi server, o anche in un unico server dedicato. Di conseguenza i singoli host che necessitano del servizio di backup comunicano con il server di backup attraverso la rete. Ciò può avvenire in modalità push quando il client invia i dati al server o in modalità pull quando è il server a connettersi a sua volta con ciascun client, o in una combinazione di queste due modalità. Nel corso del 2007 sono state scoperte diverse vulnerabilità critiche nei software di backup. Siccome i software di backup di solito operano con privilegi piuttosto alti per poter leggere tutti i file del sistema, queste vulnerabilità hanno portato a gravi problemi di sicurezza. Alcune di queste possono essere sfruttate per ottenere il controllo completo dei sistemi che ospitano i server di backup e/o i client di backup. Un aggressore può far leva su questi difetti del software per compromettere tutti i sistemi aziendali e per ottenere l'accesso a dati riservati presenti nei backup. Alcuni exploit sono stati pubblicati in rete e molte vulnerabilità sono state attaccate in maniera selvaggia.

S4.2 Sistemi operativi e software di backup interessati

Tutti i sistemi operativi su cui operano i software per server o client di backup sono potenzialmente vulnerabili agli exploit. I sistemi operativi interessati sono principalmente sistemi Windows e UNIX, in quanto questi sistemi formano la maggioranza dei client e dei server aziendali.

I seguenti pacchetti software di backup molto diffusi sono affetti da vulnerabilità critiche

  • Computer Associates (CA) BrightStor ARCServe ha dozzine di vulnerabilità di semplice sfruttabilità, per cui il codice è largamente disponibile.
  • Symantec Veritas NetBackup/Backup Exec ha avuto recentemente alcune vulnerabilità riportate.
  • Anche EMC Legato Networker ha presentato una vulnerabilità pubblicamente riportata.

S4.3 Nota speciale sulla sicurezza dei backup

I backup spesso contengono tutti o perlomeno una larga parte dei dati di un sistema. Di solito i dati di backup vengono conservati in un luogo centralizzato e spesso non crittati. La sicurezza fisica dei supporti di backup è argomento di estrema importanza, in quanto il furto o l'analisi di un supporto di backup può fornire gli strumenti per l'accesso completo a dati critici senza ulteriori sforzi. Quando possibile, i dati dei backup dovrebbero essere cifrati con crittografia forte e i metodi di decifrazione dovrebbero essere a conoscenza solo di poche persone fidate.

S4.4 Riferimenti CVE

CVE-2007-5332, CVE-2007-5330, CVE-2007-5328, CVE-2007-5327, CVE-2007-5325, CVE-2007-5006, CVE-2007-5004, CVE-2007-5003, CVE-2007-3825, CVE-2007-3216, CVE-2007-2864, CVE-2007-2863, CVE-2007-2139, CVE-2007-1447, CVE-2007-5126, CVE-2007-3509, CVE-2007-2279, CVE-2007-3618

S4.5 Come stabilire se si è vulnerabili

  • Usate un vulnerability scanner per scoprire le eventuali vulnerabilità del software di backup
  • Aggiornate il vostro software di backup alla versione più recente. Controllate periodicamente il sito del produttore del software e iscrivetevi al sistema di notifica delle patch, se disponibile. Controllate anche nei siti dedicati alla sicurezza come US-CERT, SANS Internet Storm Center se vi sono annunci relativi a vulnerabilità legate al software di backup che avete scelto.
  • Controllate gli accessi alle porte TCP e UDP utilizzate dal vostro software di backup. I prodotti di backup elencati utilizzano le seguenti porte:
    • Symantec Veritas Backup Exec
      • TCP/10000 TCP/8099, TCP/6106, TCP/13701, TCP/13721 e TCP/13724 (Una lista delle porte utilizzate dai daemon di backup di Veritas è disponibile qui).
    • CA BrightStor ARCServe Backup Agent
      • TCP/6050, UDP/6051, TCP/6070, TCP/6503, TCP/41523, UDP/41524.
    • Sun e EMC Legato Networker
      • TCP/7937-9936.

S4.6 Come proteggersi da queste vulnerabilità

  • Assicuratevi che le patch più recenti fornite dal produttore del software siano installate sui client e sui server.
  • Le porte utilizzate dal software di backup dovrebbero essere protette tramite regole dei firewall dall'utilizzo tramite qualsiasi rete non sicura, in particolare Internet.
  • I dati dovrebbero essere cifrati sia quando sono salvati sui supporti di backup, sia quando transitano attraverso la rete.
  • I firewall di rete e relativi al singolo host dovrebbero presentare regole che limitano l'accessibilità ai sistemi su cui operano i software di backup in modo che solo l'host di backup corretto possa comunicare attraverso le porte del server di backup.
  • Suddividete la vostra rete creando una sottorete VLAN separata per il backup.
  • I supporti di backup dovrebbero essere conservati, tracciati e contabilizzati come gli altri asset IT per scoraggiare e individuarne prontamente il furto o la perdita.
  • I supporti di backup dovrebbero essere cancellati in modo sicuro o distrutti fisicamente alla fine del loro periodo di utilizzo.

S5. Software anti-virus

S5.1 Descrizione

Il software anti-virus è visto oggi come uno strumento basilare necessario nel corredo per la protezione dei sistemi. I software anti-virus sono oggi installati su quasi tutti i desktop, server e gateway per la lotta contro le infezioni dei virus.

Durante il 2007 gli aggressori hanno spostato la loro attenzione verso i metodi per colpire proprio i prodotti per la sicurezza utilizzati da un grande numero di utenti finali. Tra questi vi sono software anti-virus e personal firewall. La scoperta di vulnerabilità nei software anti-virus non è limitata alle piattaforme desktop e server: sono colpite anche le soluzioni a livello di gateway, e colpire un gateway può provocare un impatto maggiore, in quanto il gateway è il livello più esterno di protezione e spesso l'unico livello di protezione contro determinati pericoli in molte piccole organizzazioni.

Diverse vulnerabilità che consento l'esecuzione di codice remoto sono state scoperte nei software anti-virus fornito da vari produttori quali Symantec, F-Secure, Trend Micro, McAfee, Computer Associates, ClamAV e Sophos. Queste vulnerabilità in questi sistemi possono spesso essere sfruttate per ottenere il controllo completo del sistema dell'utente con interazioni dell'utente minime o nulle.

Si è scoperto che i software anti-virus sono vulnerabili anche ad attacchi "evasion". Creando con tecniche particolari un file dannoso (ad esempio un file HTML con un header eseguibile) può essere possibile evitare la scansione da parte dell'anti-virus. Questi attacchi elusivi possono essere sfruttati per creare un canale attraverso il quale propagare codice dannoso o per bypassare i sistemi che altrimenti limiterebbero la propagazione del malware.

S5.2 Sistemi operativi interessati

Qualsiasi sistema che abbia installata una applicazione anti-virus o un motore di scansione diretto a rilevare codice dannoso potrebbe essere colpito. L'elenco comprende quindi soluzioni installate su desktop, server e gateway. Qualsiasi piattaforma potrebbero essere colpita, incluse Microsoft Windows e tutti i sistemi Unix.

S5.3 Riferimenti CVE

Avast!
CVE-2007-2845, CVE-2007-2846, CVE-2007-1672

AVIRA
CVE-2007-2974, CVE-2007-2973, CVE-2007-2972, CVE-2007-1671

BitDefender
CVE-2007-0391

ClamAV
CVE-2007-4560, CVE-2007-3023, CVE-2007-2029, CVE-2007-1997, CVE-2007-1745

Computer Associates
CVE-2007-2864, CVE-2007-2523, CVE-2007-2522

HAURI
CVE-2006-0864

F-Secure
CVE-2007-3300, CVE-2007-2967, CVE-2007-2966, CVE-2007-2965, CVE-2007-1557

Kaspersky
CVE-2007-3675, CVE-2007-1879, CVE-2007-1112, CVE-2007-0445, CVE-2007-1281

Mcafee
CVE-2007-2152, CVE-2007-1538

Panda
CVE-2007-3969, CVE-2007-3026, CVE-2007-1670

Sophos
CVE-2006-6335, CVE-2006-0994

Symantec
CVE-2007-3699, CVE-2007-0447, CVE-2007-3802, CVE-2007-3095, CVE-2007-3021

Trend Micro
CVE-2007-1591, CVE-2007-0856, CVE-2007-0851

S5.4 Come stabilire se si è vulnerabili

Se si utilizza una qualsiasi versione di un qualunque software anti-virus che non sia aggiornata alla versione più recente, software, vi sono probabilità di essere colpiti.

S5.5 Come proteggersi dalle vulnerabilità dei software anti-virus

  • Mantenendo i software anti-virus regolarmente e automaticamente aggiornati.
  • Controllando periodicamente i sito del fornitore del software per verificare la presenza di aggiornamenti, patch e avvisi di sicurezza. Una lista di fornitori di anti-virus è fornita nel capitolo seguente. Tale lista può non essere completa.
  • Se avete implementato software anti-virus sia sui desktop che a livello di gateway, utilizzate soluzioni anti-virus di fornitori diversi per i desktop e per il gateway. Se una di queste è vulnerabile, almeno sarete protetti dall'altra.

S5.6 Approfondimenti

Ecco una lista di fornitori di anti-virus per controllare aggiornamenti, patch e avvisi di sicurezza.

Avvisi di sicurezza per anti-virus

Problemi di anti-virus evasion

Altre risorse per anti-virus

S6. Management Server

S6.1 Descrizione

Applicazioni server come i sistemi antivirus e antispam, di directory server e i sistemi di gestione e monitoraggio rappresentano una particolare sfida per la sicurezza; oltre a compromettere i sistemi che li ospitano, forniscono l'opportunità di attaccare altri sistemi.

S6.2 Applicazioni interessate

Le applicazioni interessate al problema possono essere suddivise in diverse categorie:

  • Directory Server - Utilizzati per gestire informazioni riguardanti gli utenti e i sistemi. Compromettere queste applicazioni può consentire l'accesso a grandi quantità di informazioni, compresi gli username e le password (possibilmente cifrate).
  • Sistemi di monitoraggio - Utilizzati per monitorare altri sistemi di vario tipo. Queste applicazioni spesso possiedono degli account sui sistemi monitorati, consentendo agli aggressori di accedere facilmente a tali sistemi client.
  • Sistemi per l'aggiornamento di configurazioni e patch - Questi sistemi sono utilizzati per gestire le configurazioni e le patch dei client. Compromettere questi sistemi offre una via privilegiata per la diffusione di malware.
  • Sistemi antivirus e antispam - Le vulnerabilità in questi sistemi possono spesso essere sfruttate con interazioni dell'utente minime o nulle, inviando semplicemente un messaggio email appositamente predisposto. Una volta compromesso il sistema, l'aggressore può inviare più facilmente email che contengono spam o virus. Inoltre questi sistemi spesso contengono informazioni critiche, come la casella di posta degli utenti.

Queste applicazioni operano su diversi sistemi operativi, da Microsoft Windows a Solaris, HP-UX, Novell Netware e altri.

S6.3 Riferimenti CVE

CVE-2006-5478, CVE-2006-4509, CVE-2006-4510, CVE-2006-4177, CVE-2006-2496, CVE-2006-0992, CVE-2005-3653, CVE-2005-1928, CVE-2005-1929

S6.4 Come stabilire se si è a rischio

  • Usando un vulnerability scanner.
  • Tenendo sotto controllo gli annunci di sicurezza del produttore.

S6.5 Come proteggersi da queste vulnerabilità

  • Mantenendo i sistemi aggiornati con le patch e i service pack più recenti. Se disponibile, utilizzate un sistema di aggiornamento automatizzato.
  • Utilizzando sistemi di Intrusion Prevention/Detection per prevenire/individuare attacchi che utilizzano queste vulnerabilità.
  • Controllando che solo gli utenti e i sistemi autorizzati abbiano accesso ai sistemi a rischio.

S6.6 Approfondimenti

Vulnerabilità di ServerProtect Trend Micro
http://archives.neohapsis.com/archives/vulnwatch/2005-q4/0066.html
http://archives.neohapsis.com/archives/vulnwatch/2005-q4/0067.html
http://archives.neohapsis.com/archives/vulnwatch/2005-q4/0068.html

Home Page di Trend Micro
http://www.trendmicro.com/

Buffer Overflow in iTechnology iGateway CA
http://supportconnectw.ca.com/public/ca_common_docs/igatewaysecurity_notice.asp

Home Page CA
http://www.ca.com/

Buffer Overflows remoto in Novell eDirectory iMonitor
http://www.zerodayinitiative.com/advisories/ZDI-06-016.html

Home Page Novell
http://www.novell.com/

SQL Injection in Sygate Management Server Symantec
http://securityresponse.symantec.com/avcenter/security/Content/2006.02.01.html

Home Page Symantec
http://www.symantec.com/

Esecuzione di comandi da remoto in OpenView HP
http://h20000.www2.hp.com/bizsupport/TechSupport/Document.jsp?objectID=c00672314
http://h20000.www2.hp.com/bizsupport/TechSupport/Document.jsp?objectID=c00671912

Esecuzione di codice da remoto in OpenView Storage Data Protector HP
http://archives.neohapsis.com/archives/bugtraq/2006-08/0273.html

Home Page di OpenView HP
http://h20229.www2.hp.com/

Remote Command Injection in Spam Firewall Barracuda
http://archives.neohapsis.com/archives/bugtraq/2006-08/0093.html

Home Page Barracuda
http://www.barracudanetworks.com/ns/?L=en

S7. Software per database

S7.1 Descrizione

I database danno la possibilità di immagazzinare, cercare e manipolare grandi quantità di dati. Rappresentano degli elementi chiave in molti sistemi, anche se la loro presenza non è sempre direttamente visibile agli utenti. Si trovano praticamente in qualsiasi tipo di business, in applicazioni finanziarie, bancarie, di relazione con il cliente e nei sistemi di monitoraggio.

Siccome nei database sono spesso conservate informazioni molto importanti come dati personali o finanziari, questi sono spesso obiettivo di attacchi e sono particolarmente ambiti dai ladri di identità. I sistemi database sono spesso molto complessi e combinano l'applicazione principale con una serie di altre applicazioni, alcune fornite dagli stessi produttori del database, altre spesso scritte in casa (come le applicazioni web). Un difetto in uno di questi componenti può mettere in pericolo i dati contenuti. Non è sufficiente proteggere il solo database: bisogna mettere in sicurezza anche tutte le applicazioni associate. Le vulnerabilità più comuni nei sistemi database possono essere classificate come:

  • Uso delle configurazioni di default con nomi utente e password predefiniti.
  • SQL Injection attraverso gli strumenti specifici del database o applicazioni web di front-end aggiunte dagli utenti. Ogni anno vengono annunciate moltissime vulnerabilità di questo tipo.
  • Uso di password poco sicure per account con privilegi alti
  • Buffer overflow in processi in ascolto su porte TCP/UDP ben conosciute.

Esistono molti sistemi database diversi. Tra i più diffusi vi sono Microsoft SQL Server (proprietario, gira su Windows), Oracle (proprietario, gira su diverse piattaforme), IBM DB2 e IBM Informix (entrambi sistemi proprietari che possono girare su diverse piattaforme), Sybase (proprietario, gira su diverse piattaforme), MySQL e PostgreSQL (entrambi open source e utilizzabili su molte piattaforme).

A tutti i moderni database si può accedere da rete, il che significa che chiunque abbia accesso in rete e strumenti per la generazione di query di semplice reperimento può provare a connettersi direttamente al database. Le connessioni di default più comunemente utilizzate sono: Microsoft SQL attraverso la porta TCP 1433 e la porta UDP 1434, Oracle attraverso la porta TCP 1521, IBM DB2 attraverso la porta 523 e quelle dalla 50000 in su, IBM Informix attraverso le porte 9088 e 9099, Sybase attraverso la porta TCP 4100 o la 2025, MySQL attraverso la porta TCP 3306 e PostgreSQL attraverso la porta TCP 5432.

A causa delle connessioni di rete che forniscono, i database possono inoltre essere colpiti da worm; vi sono stati esempi di worm che hanno colpito Microsoft SQL e Oracle.

Oltre a correggere le specifiche vulnerabilità menzionate in questo capitolo, I tecnici che hanno a che fare con la sicurezza dei database devono esaminare:

  • Le implicazioni di standard quali il Payment Card Industry Data Security Standard che richiedono la crittografia per alcune informazioni quali i numeri delle carte di credito o proibiscono lo storage di alcuni tipi di informazione.
  • I rischi derivanti dal trasferimento di grandi quantità di dati o interi database verso dispositivi mobili: vi sono state numerose notizie di dati personali smarriti a causa del furto dei laptop in cui erano contenuti.

S7.2 Sistemi operativi interessati

La maggior parte dei sistemi database, sia commerciali che open source, operano su diverse piattaforme. I problemi riguardano indistintamente tutte le piattaforme supportate.

S7.3 Riferimenti CVE

Quelli che seguono sono i riferimenti alle voci che hanno avuto un punteggio CVSS maggiore o uguale a sette dal settembre 2006 in poi. Le vulnerabilità inserite precedentemente possono essere rilevate consultando le edizioni precedenti delle TOP20 SANS. Spesso i problemi non riguardano bachi specifici dei database, ma vulnerabilità nelle applicazioni accessorie, come, ad esempio, le SQL injection nelle interfacce web; questi casi non sono inseriti nel seguente elenco.

IBM DB2
CVE-2007-1086, CVE-2007-1087, CVE-2007-1088, CVE-2007-1089, CVE-2007-2582, CVE-2007-5652.

IBM Informix
Nessuna nel periodo esaminato.

Microsoft SQL Server
CVE-2007-4814

MySQL
Nessuna nel periodo esaminato.

Oracle
CVE-2006-5332, CVE-2006-5333, CVE-2006-5334, CVE-2006-5335, CVE-2006-5336, CVE-2006-5339, CVE-2006-5340, CVE-2006-5341, CVE-2006-5342, CVE-2006-5343, CVE-2006-5344, CVE-2006-5345, CVE-2006-7138, CVE-2007-0272, CVE-2007-1442, CVE-2007-2113, CVE-2007-2118, CVE-2007-5506.

Nota: Oracle pubblica trimestralmente una Critical Patch Update (CPU) che corregge i problemi riscontrati nelle applicazioni database e in quelle correlate. Questa lista contiene vulnerabilità dei programmi fondamentali del database Oracle per le quali esistono informazioni specifiche. Esistono però molte altre vulnerabilità per le quali non vi sono informazioni pubbliche se non l'invito ad applicare la relativa CPU.

PostgreSQL
CVE-2007-0555.

Nota: vi sono altri problemi registrati nelle liste di vulnerabilità come conseguenza di un white paper sulla sicurezza di PostgreSQL, ma gli sviluppatori sostengono che questi non rappresentano dei problemi di sicurezza.

Sybase
Nessuna nel periodo esaminato.

S7.4 Come stabilire se si è vulnerabili

Non basta controllare una semplice lista, mantenuta manualmente, delle applicazioni istallate. Siccome i database sono spesso distribuiti quali componenti di altre applicazioni, capita spesso di installare un database senza rendersene conto. I database possono di conseguenza rimanere privi di patch e aggiornamenti o con le vulnerabilissime configurazioni predefinite.

Eseguite una scansione delle vulnerabilità sui sistemi per stabilire quali software database sono attivi, accessibili e vulnerabili. Oltre ai vulnerability scanner "generalisti", esistono strumenti specifici, sia commerciali che di pubblico dominio; se cercate su un motore di ricerca web "database security scanners" troverete diversi strumenti utilizzabili. Questi variano dai semplici servizi di scansione della rete a sistemi che analizzano le password e le configurazioni predefinite, a sistemi che analizzano punto per punto la configurazione dei specifici software database.

S7.5 Come proteggersi dalla vulnerabilità dei database

  • Controllate che tutti i DBMS siano aggiornati con le patch più recenti. Le versioni obsolete o non corrette molto probabilmente presentano delle vulnerabilità. Controllate spesso il sito del produttore per le informazioni sulle patch. Tenetevi aggiornati riguardo le vulnerabilità e gli avvisi pubblicati dai produttori:
  • Assicuratevi che i DBMS e le applicazioni siano stati messi al sicuro:
    • Eliminate/cambiate le password di default per gli account di sistema e del database con privilegi alti prima di mettere il sistema in rete. Le liste degli account di default sono facilmente reperibili su Internet.
    • Assegnate i privilegi strettamente indispensabili
    • Quando possibile, usate le stored procedure.
    • Eliminate/disabilitate le stored procedure non necessarie.
    • Impostate dei limiti alla lunghezza di tutti i campi dei form.
    • Consultate la sezione Approfondimenti seguente, che indica molte risorse utili per rendere sicuri i DBMS.
    • Usate dei firewall o altri dispositivi per la sicurezza delle reti per limitare gli accessi di rete alla porte associate ai servizi database.
    • È ora disponibile un tipo di strumenti che consentono di catturare il traffico di rete verso un database e di esaminare la struttura della query SQL che vengono eseguite. Questi strumenti sono utili per la revisione delle applicazioni, in quanto identificano una serie di query valide per una applicazione e rilevano comportamenti insoliti o modelli comuni di attacco. Possono anche essere posizionate in linea con il database in modo da agire come una sorta di firewall a livello applicativo o IDS/IPS specifico per l'applicazione
    • Prendete in considerazione la crittografia delle comunicazioni tra gli applicativi e il database.
    • Non fidatevi degli inserimenti degli utenti! Assicuratevi che le applicazioni collegate al database effettuino una pulizia sul lato server di tutti gli input per evitare attacchi come le SQL injection (vedi http://www.sans.org/rr/whitepapers/securecode/23.php)

S7.6 Approfondimenti

Risorse generali e per vari database

IBM DB2

IBM Informix