(iii) Il numero di nuovi link web dannosi è aumentato del 345% rispetto al 2008. (iv) Il 60,9% degli attacchi di phishing prende di mira il settore finanziario, mentre lo 0,4% prende di mira le organizzazioni governative. (v) La quantità di spam URL che utilizza nomi di dominio affidabili e ben noti continua ad aumentare. (vi) La maggior parte dello spam, circa l'80%, è classificata come URL spam-spam che includono URL su cui una persona clicca per visualizzare contenuti spam. (vii) Il 7,5% di Internet è considerato socialmente inaccettabile, indesiderato o estremamente dannoso. (viii) Le vulnerabilità relative ai PDF hanno superato quelle che interessano i documenti di Office. (ix) La stragrande maggioranza dello sfruttamento basato sul web si concentra su toolkit di sfruttamento web contro fonti a scopo singolo. (x) Gli Stati Uniti si classificano tra le prime posizioni per link web dannosi. A luglio è stata rilevata una crescita spettacolare di botnet, con oltre 6.000 botnet ciascuna con migliaia di nodi, ad esempio Conficker con circa cinque milioni di bot.

 


Sicurezza delle applicazioni web:
si osserva una crescente tendenza verso la trasformazione del software in un servizio basato sul web. Il numero di esempi concreti nella nostra società aumenta quotidianamente: online banking, e-commerce, e-government, e-democracy, e-healthcare, gestione delle relazioni con i clienti, social network, aziende di contenuti, ecc., e persino cloud computing (XaaS, dove X può essere (I) Infrastruttura, (P) Piattaforma, (S) Software, ecc.). Le applicazioni ospitate su server web sono sempre più numerose e scritte in una varietà di linguaggi, tra cui PHP, Java, Perl, Python, C e ASP. La sicurezza web è raramente la principale preoccupazione degli architetti e dei progettisti del software. È possibile identificare le seguenti carenze: (i) Script scritti male (uno script è un insieme di istruzioni che automatizzano le attività, creando utility) con una convalida dell'input inadeguata. (ii) Dati sensibili memorizzati in chiaro in file leggibili da chiunque. (iii) Invio di password non crittografate e utilizzo di HTTP anziché HTTPS (SSL/TLS), ecc. Visa e Mastercard hanno compiuto uno sforzo significativo per migliorare la sicurezza della gestione dei dati con lo standard PCI-DSS; tuttavia, è importante notare che una meticolosa conformità IT (Information Technology) non è sempre sinonimo di una buona gestione della sicurezza all'interno di un'organizzazione. Le applicazioni web vengono eseguite su un server web (reale, virtuale, autonomo o in una server farm) o su un server applicativo. Raccolgono input dagli utenti web tramite il server web e interagiscono con database back-end e di terze parti. Le applicazioni web preparano e forniscono risultati agli utenti tramite il server web e si possono identificare due aspetti chiave: (i) Generano dinamicamente pagine HTML. (ii) Contengono contenuti provenienti da molte fonti diverse, spesso da utenti regolari: blog, social network, siti web per la condivisione di foto, musica, ecc. La sicurezza web può essere suddivisa in due aree principali: (1) Browser web (come Microsoft Internet Explorer 8, Mozilla Firefox 3.5.13, Safari 5 (per PC/MacOS), Netscape 9.0, Opera 9.10, Google Chrome 4.0, micro-browser per PDA, ecc.). Questi possono essere attaccati da qualsiasi sito web visitato. Gli attacchi possono portare all'installazione di malware (sotto forma di keylogger, che catturano i tasti premuti; questo può essere mitigato con tastiere virtuali su schermo), botnet, spyware, ecc. Ad esempio, gli utenti potrebbero essere indotti a scaricare ed eseguire software codec per visualizzare un video interessante), furto di documenti e identità, perdita di dati privati ​​e così via. (2) Applicazioni web. Questi programmi vengono eseguiti su siti web (come banche online, blog, negozi online, Google Apps, ecc.) e sono scritti in PHP, ASP, JSP, Ruby, ecc. Presentano numerose potenziali vulnerabilità (o bug) come XSS, SQL injection (SQL-I), ecc. Inoltre, gli attacchi consentono il furto di dati delle carte di credito, la deturpazione di siti web (come nel caso del sito www.eu-2010.es, dove l'immagine di ZP è stata sostituita con quella del comico Mr. Bean. Questo si sarebbe potuto evitare con un'adeguata verifica del codice per prevenire gli attacchi XSS), ecc.


Modelli di minaccia/attaccante web.
Gli attaccanti web possono essere molto diversi: (i) Controllano siti web dannosi e possono persino ottenere certificati SSL/TLS per i loro siti. I motivi per cui un utente potrebbe visitare questi siti web dannosi sono vari: ricezione di un'e-mail di phishing, incontro con contenuti molto attraenti (da una prospettiva ricreativa o professionale), a causa dei risultati di ricerca di un motore di ricerca web, posizionamento da parte di una rete pubblicitaria, sfortuna, ecc. (ii) L'attaccante non ha altro accesso al computer dell'utente. (iii) Attaccante tramite gadget. Ad esempio, un gadget dannoso incluso in un mashup legittimo. Un gadget è un oggetto programma/mini-applicazione che fornisce servizi dinamici; i gadget in Windows 7/Vista si trovano nella barra laterale. (iv) Attaccante di rete. Possono essere passivi (eseguendo intercettazioni wireless o cablate clandestine utilizzando sniffer), attivi utilizzando un router dannoso, eseguendo avvelenamento DNS (o pharming), utilizzando l'avvelenamento ARP per eseguire attacchi man-in-the-middle, ecc. (v) Attaccante malware. L'attaccante ottiene il controllo del computer dell'utente in vari modi: (a) Sfruttando bug dell'applicazione o del sistema operativo (ad esempio, buffer overflow) dovuti alla mancanza di audit del codice e patch del sistema operativo. (b) Convincendo l'utente a installare contenuti dannosi in vari modi, ad esempio: inducendolo a eseguire un programma antivirus gratuito o a installare un codec speciale per riprodurre un video in un nuovo formato, ecc. (vi) Rischi XSS/CSS (Cross-Site Scripting). XSS è un tipo di attacco riflessivo; l'utente viene indotto a visitare un sito web scritto male, un bug nel codice del sito web ne causa la visualizzazione e il browser dell'utente esegue uno script di attacco arbitrario. Può: (a) Modificare il contenuto del sito web interessato manipolando i componenti DOM (Document Object Model) (la pagina HTML è costituita da dati strutturati e il DOM fornisce la rappresentazione di questa gerarchia), visualizzando informazioni false, richiedendo dati sensibili e controllando i campi dei moduli su questa pagina e sulle pagine collegate. Ad esempio, un attacco di phishing su MySpace.com inietta il campo della password, consentendo l'invio della password a un amico malintenzionato. (b) Può indurre il browser dell'utente ad attaccare altri siti web.

Evolution2.tiffp
L'essenza della sicurezza delle informazioni. Errori. Generazioni di minacce.
L'essenza della sicurezza delle informazioni può essere definita come un processo continuo; è una questione aziendale (non semplicemente una questione di conformità e responsabilità del dipartimento IT/ICT); migliora l'immagine e la reputazione dell'organizzazione; aumenta la fiducia e la credibilità; incrementa la produttività aziendale; è una necessità invisibile giustificabile e utile; è un investimento; è un vantaggio competitivo; è una priorità; è il fulcro della generazione di resilienza aziendale; previene rischi aziendali e perdite finanziarie; è un vero supporto per gli obiettivi aziendali; è il pilastro chiave per la gestione di qualsiasi azienda; la sicurezza supporta e protegge gli obiettivi aziendali; è un problema aziendale di cui è responsabile la direzione dell'organizzazione. Nel corso degli anni, sono stati identificati numerosi e significativi fraintendimenti sulla sicurezza delle informazioni: (i) Se la nostra azienda ha un software antivirus e/o un firewall, siamo al sicuro. (ii) La maggior parte delle minacce gravi proviene dall'esterno. (iii) La nostra azienda non deve preoccuparsi della sicurezza perché eseguiamo il backup dei dati quotidianamente. (iv) La responsabilità della sicurezza spetta al personale addetto alla sicurezza informatica. Se qualcuno in azienda riscontra problemi (può segnalarli inviando una richiesta tramite il web attraverso GP o telefonicamente per una risposta più rapida), questi verranno risolti. (v) Alcuni CEO ignoranti affermano che la loro azienda ha vincoli di bilancio, quindi mettono assurdamente in dubbio la necessità del budget per la sicurezza se il lavoro viene svolto. Inoltre, è un grave errore affermare: (a) La sicurezza aziendale è solo un prodotto da acquistare, o solo una tecnologia da utilizzare, o solo una politica da concordare, o solo un investimento di tempo specifico. Tenete presente che l'anello debole è il fattore umano. Ricordate che la sicurezza copre tutti gli aspetti dell'azienda, permea ogni cosa, indaga quali risorse e rischi sono a rischio e determina come affrontare tali rischi. La conclusione è che la sicurezza è un processo continuo che integra tecnologia, politiche, best practice, formazione e sensibilizzazione, stabilendo una moderna cultura della sicurezza e della privacy. Una minaccia è la probabilità di un attacco, ad esempio, un pacchetto IP che causa un buffer overflow. Una vulnerabilità è la probabilità di una vulnerabilità sfruttabile, ad esempio un buffer overflow. Le conseguenze sono il costo totale di un attacco riuscito. Il rischio è il prodotto di minacce, vulnerabilità e conseguenze, ad esempio il blocco di un sistema.
Nel corso degli anni, si possono identificare le seguenti generazioni di minacce: (1) Prima generazione: sovversione degli elementi infrastrutturali. Ciò riguarda elementi IT, e-mail, server, database, dati, programmi, ecc. (2) Seconda generazione: sovversione dei processi aziendali. Ciò riguarda processi, persone, ecc. (3) Terza generazione: sovversione delle infrastrutture critiche. Ciò riguarda infrastrutture di trasporto e traffico, infrastrutture idriche, infrastrutture di comunicazione, infrastrutture sanitarie pubbliche, infrastrutture bancarie e finanziarie, infrastrutture energetiche e di pubblica utilità, data center vitali, centrali nucleari, infrastrutture di generazione e distribuzione di energia elettrica, ecc.  


Principali vulnerabilità del sito web
Le principali vulnerabilità del sito web, che possono anche essere considerate attacchi web, sono: (i) SQL Injection. Il browser invia input dannosi al server. Una convalida errata dell'input porta a una query SQL dannosa. Il codice dannoso dell'attaccante viene eseguito sul server della vittima. Utilizza SQL per modificare il significato del comando del database. Esistono diverse difese ben note per affrontare efficacemente questo problema, come i firewall per applicazioni web (FortiWeb-400B di Fortinet, NetScaler di Citrix, TrafficShield di F5, ecc.). Gli attacchi di iniezione di codice in generale mirano a eseguire codice arbitrario sul server; nel contesto dell'SQL injection, le query di database PHP sono pericolose perché una stringa dannosa può modificare il significato della query. Possibili misure di prevenzione dell'SQL injection includono: non costruire mai comandi SQL autonomamente, utilizzare SQL parametrizzato o impiegare un framework ORM. (ii) CSRF (Cross-Site Request Forgery) o XSRF. Un sito web malevolo invia una richiesta del browser a un sito web legittimo utilizzando le credenziali di una vittima ignara. Il sito web dell'attaccante falsifica la richiesta del browser della vittima al server della vittima. La sessione dell'utente sul server della vittima viene compromessa. Si tratta di una richiesta falsificata che influisce sulla sessione in corso. Può essere parzialmente prevenuta.
Possibili difese includono: (1) Validazione del token segreto. Ciò richiede l'utilizzo di un token segreto difficile da indovinare. (2) Validazione del referrer. Per la tua sicurezza, non digitare mai la tua password, ad esempio, per Facebook, su siti non ospitati su Facebook.com. (3) Intestazioni HTTP personalizzate. Questo non funziona tra domini diversi. (4) Cross-Site Scripting (XSS). Il sito web malevolo invia a una vittima ignara uno script che ruba informazioni da un sito web legittimo. Il codice malevolo dell'attaccante viene eseguito nel browser della vittima. Lo script malevolo viene iniettato nel contesto attendibile. Il problema ha origine dall'eco dell'input non attendibile. È difficile da prevenire: richiede un attento monitoraggio, test, strumenti, ecc. Una vulnerabilità XSS si verifica quando un utente malintenzionato può iniettare codice di scripting nelle pagine generate da un'applicazione web.

Evolution3.tiffpAlcuni metodi per iniettare codice dannoso includono: (a) XSS riflesso (Tipo 1). Lo script dell'attaccante viene riflesso all'utente come parte di una pagina sul sito web della vittima. (b) XSS memorizzato (Tipo 2). L'attaccante memorizza il codice dannoso in una risorsa gestita dall'applicazione web, come un database. (c) Attacchi basati sul DOM (Document Object Model) che non utilizzano il server.
Alcune difese lato client contro gli attacchi XSS includono: (i) Protezione basata su proxy. Questa analizza il traffico HTTP scambiato tra il browser web dell'utente e il server web di destinazione, scansionando i caratteri HTML speciali e codificandoli prima che la pagina venga eseguita nel browser web dell'utente. (ii) Protezione tramite un firewall a livello di applicazione. Questo analizza le pagine HTML visualizzate alla ricerca di collegamenti ipertestuali che potrebbero portare alla fuga di informazioni sensibili e blocca le richieste dannose utilizzando una serie di regole di connessione. (iii) Protezione tramite un sistema di auditing. Monitora l'esecuzione del codice JavaScript e confronta le operazioni con le policy di alto livello per rilevare potenziali comportamenti dannosi.
Secondo OWASP (Open Web Application Security Project), alcune strategie per proteggersi dagli attacchi XSS sono:
1) Assicurarsi che le applicazioni convalidino tutte le intestazioni, i cookie, le stringhe di query, i campi dei moduli e i campi nascosti (tutti i parametri) rispetto a una specifica rigorosa di ciò che dovrebbe essere consentito. Non fidarsi mai dei dati lato client; la strategia migliore è consentire solo ciò che è previsto. Inoltre, rimuovere/codificare i caratteri speciali, come i caratteri lunghi e le codifiche UFT-8. Esistono strumenti di test black-box automatizzati come Hailstorm, WebInspect, Retina, eEye, Cenzic e Spidynamic, così come strumenti di hardening delle applicazioni web come WebSSARI, basato sul flusso di informazioni, e servizi di test di sicurezza black-box come whitehatsec.com.
2) Non tentare di identificare, rimuovere, filtrare o sanificare il contenuto attivo. Poiché esistono troppi tipi di contenuto attivo e innumerevoli modi per codificarlo per aggirare i filtri dei contenuti,
3) Utilizzare una politica di sicurezza positiva che specifichi ciò che è consentito. Le politiche basate sulle firme di attacco "negative" sono difficili da mantenere e probabilmente incomplete.


Sans Top 10 Tendenze di sicurezza ICT. Sans Top 20 Controlli critici.
La classifica Sans Top 10 delle tendenze di sicurezza ICT (Tecnologie dell'Informazione e della Comunicazione) è la seguente: (1) Dispositivi mobili: laptop. Ad esempio, con crittografia del disco rigido. (2) Dispositivi mobili: PDA/Smartphone. (3) Azioni governative: conformità normativa. (4) Attacchi mirati: governo e aziende. (5) Attacchi mirati: telefoni cellulari: GSM/GPRS/
UMTS/HSDPA/Bluetooth. (6) Attacchi mirati: VoIP (Voice over IP). (7) Tecniche di attacco: spyware. (8) Tecniche di attacco: vulnerabilità zero-day. (9) Tecniche di attacco: rootkit. (10) Strategie di difesa: sofisticazione dei NAC (Controlli di accesso alla rete). La classifica Sans Top 20 dei controlli critici è: (1) Inventario dei dispositivi autorizzati e non autorizzati. Utilizzo di uno strumento automatizzato di individuazione dell'inventario delle risorse hardware/software in tempo reale. (2) Inventario del software autorizzato e non autorizzato. (3) Configurazione sicura di hardware e software su laptop, workstation e server. (4) Configurazione sicura di dispositivi di rete come router, switch, firewall, IPS/IDS e UTM. (5) Difesa perimetrale. (6) Manutenzione, monitoraggio e analisi dei log di controllo della sicurezza. (7) Sicurezza del software applicativo. (8) Uso controllato dei privilegi amministrativi. Accesso controllato basato solo su ciò che è necessario sapere. (10) Valutazione e correzione continua delle vulnerabilità. (11) Monitoraggio e controllo degli account. (12) Difesa da malware. Con hardware antivirus di tipo appliance distribuito sulla rete e software sulle workstation. (13) Limitazione e controllo di porte di rete, protocolli e servizi. Utilizzo di NAC hardware. (14) Controllo dei dispositivi wireless. WiFi, Bluetooth, GSM/GPRS/UMTS/HSPD, ecc. (15) Prevenzione della perdita di dati (DLP). (16) Ingegneria di rete sicura. (17) Test di penetrazione ed esercitazioni del Read Team e hacking etico. (18) Capacità di risposta agli incidenti. (19) Capacità di recupero dati. (20) Valutazione delle competenze di sicurezza e formazione adeguata per colmare le lacune.


Correlazione tra livelli di sicurezza e minacce.
Attualmente, esistono diverse aree di minaccia come la distribuzione di malware, phishing/pharming, spam, rootkit, attacchi DoS/DDoS e botnet. Se consideriamo un utente esterno a un'organizzazione che desidera interagire con un database interno all'organizzazione, è possibile identificare i seguenti livelli di protezione dall'esterno verso l'interno, insieme alle minacce associate: (i) Livello client/utente HTTP. Possono essere rilevate minacce come CSS e spoofing/inganni. (ii) Livello di trasporto HTTP(S). Monitoraggio passivo, attacchi MITM (Man-In-The-Middle) e dirottamento di sessione. (iii) Livello firewall. Consentire HTTP(S). (iv) Server Web. Buffer overflow, stringhe di formato, directory traversal, account predefiniti e applicazioni di esempio. (v) Applicazioni Web e CGI. Manipolazione del bypass dei filtri, metacaratteri, caratteri nulli e buffer overflow. (vi) Firewall. Prestare attenzione alle minacce all'interno della rete interna. (vii) Database. Comandi SQL diretti, query di database con restrizioni, exploit di database.


Considerazioni finali
Il nostro gruppo di ricerca opera da oltre quindici anni nel campo della sicurezza web per server, applicazioni, servizi, infrastrutture, ecc. Ci siamo concentrati sulla valutazione e lo sviluppo di progetti di miglioramento nel contesto web, sulla sicurezza e la privacy by design nel mondo del web e sulla sintesi di meccanismi di protezione appropriati, sia software che hardware, nonché sulla logica integrata in micro e nanosistemi.

Questo articolo fa parte delle attività svolte nell'ambito del progetto LEFIS-APTICE (finanziato da Socrates, Commissione Europea).

Bibliografia

- Areitio, J. “Sicurezza delle informazioni: reti, informatica e sistemi informativi”. Cengage Learning-Paraninfo. 2010.
- Areitio, J. “Test di sicurezza per valutare e migliorare il livello di rischio per la sicurezza”. Rivista Conectrónica. N. 134. Febbraio 2010.
- Zittrain, J. “Il futuro di Internet e come fermarlo”. Yale University Press. 2009.
- Strumenti per applicazioni web: http://www.owasp.org: (i) Web Scarab: potente intercettore HTTP (modifica i dati in transito). (ii) Web Goat: applicazioni deliberatamente insicure per l'addestramento all'utilizzo di exploit.
- Nikto Web Application Security Scanner: http://www.cirt.net/nikto2
- Web Dev Toolbar: https://addons.mozilla.org/firefox/addon/60
- Componenti aggiuntivi Firefox XSS e SQL-I: http://securitycompass.com
- N-Stalker: http://www.nstalker.com/products/free
- Wapiti Free Web Application Security Scanner: http://wapiti.sourceforge.net
- Spider Sensitive Information Scanner: http://www.cit.cornell.edu/security/tools
- Absinthe SQL-I (SQL Injection) Tool: http://www.0x90.org/releases/absinthe
- Altri strumenti gratuiti: https://infosec.uga.edu/sate/tools.php

Autore:

Prof. Dr. Javier Areitio Bertolín – E.Mail: Questo indirizzo email è protetto dagli spambot. È necessario abilitare JavaScript per visualizzarlo.
Professore presso la Facoltà di Ingegneria.
Direttore del Gruppo di Ricerca su Reti e Sistemi presso l'Università di Deusto.