Informazioni personali

Cerca nel blog

Translate

martedì 9 giugno 2009

Web Security: Rudimenti 3

Eccoci tornati al parlare di web security.
Nell’ultimo post avevo esploso alcune considerazioni inerenti le domande che ci dovremmo porre per delineare il nostro ambiente operativo.
La seconda domanda dell’elenco è probabilmente la più difficile di tutte:

quali sono i criteri di valutazione di rischio e beneficio che intendo usare?

il problema fondamentale in questa area è legato al fatto che la valorizzazione economica dell’IT, e della security in particolar modo, è frammentata in diverse aree di costo e diverse aree di gestione.
Il calcolo apparentemente semplice di quanto mi costa un blocco legato alla navigazione web (perché è di questo che stiamo parlando, ma ragionamenti analoghi si possono estendere a diverse altre aree) è in realtà piuttosto difficile.
Che vantaggio hanno i miei utenti a fare browsing web? Dipende dalla attività svolta e da considerazioni di produttività. in questa area si è detto di tutto di più, e studi diversi portano risultati opposti.  Se è vero che Galbraith sosteneva che l’accesso flat alle informazioni si sarebbe trasformato in uno strumento di produttività aziendale, è anche vero che spesso la gestione non organizzata di queste informazioni, e la arretratezza dei modelli funzionali di flusso informativo legati a distonie organizzative o blocchi culturali, rendono la gestione di tali informazioni difficile.
Il computo dei benefici va valutato in termini generali anche nella qualità del posto di lavoro ed anche nella possibilità di sfruttare in maniera produttiva le informazioni. alcune funzioni aziendali sono sicuramente più portate a sfruttare tali canali, ma è indubbio che funzioni di marketing, tecniche e di vendita possono trovare nel web uno strumento formidabile di raccolta e elaborazione delle informazioni e, contestualmente, di creazione di canali di scambio di comunicazioni.
Analogamente va valutato l’impatto dei rischi, che vanno da infezione virus, a perdita di produttività, a social engineering e cosi via.
Per ogni  funzione aziendale potrebbe essere quindi utile un prospetto che elenchi i pro ed i contro della navigazione web, alla fine di questa analisi diventa più facile dare criteri di valutazione.
ad esempio supponiamo di utilizzare come riferimento le funzioni aziendali di tipo commerciale.
i vantaggi potrebbero essere del tipo:
reperimento rapido informazioni sulla concorrenza per prodottovendor (che prodotti si sostituiscino a quello che vendo io?)
reperimento rapido informazioni sulla concorrenza per azienda (chi va a vendere gli altri prodotti ai miei clienti)
scouting e discovery base clienti
analisi cliente
e via dicendo
analogamente i rischi possono essere catalogati come:
quanto tempo perdo a cercare le cose sul web
quali sono le risorse che uso?
come faccio ad essere sicuro che non do informazioni riservate all’esterno?
…..
come regola generale un corretto uso del web fornisce comunque un meccanismo di approvvigionamento di informazioni estremamente dettagliato, va osservato che molti rischi intrinseci alla navigazione web non sono difformi o dissimili dai rischi dell’uso di un telefono o di concedere un portatile ad un utente mobile. Senza una corretta gestione delle politiche di sicurezza a monte chiudere l’accesso Web assomiglia al chiudere a stalla dopo la fuga dei buoi.
ma allora è lecito domandarsi quali siano i reali rischi che si corrono

quali sono i rischi cui incorro?

i pericoli inerenti la navigazione web si possono ricondurre, in linea di massima, a pochi punti fondamentali

  1. il rischio di infettare la rete interna con qualcosa di proveniente dall’esterno
  2. il rischio di perdere dati a seguito di una attività di social engineering o comunque una attività di Data Stealing
  3. il rischio di perdere produttività per un uso improprio ed eccessivo delle risorse
  4. il rischio di portare al collasso le risorse di connettività

per quello che concerne il punto (1) oggi il vettore web sta diventando il canale preferenziale di distribuzione del cosiddetto malware. i rischi di infezione in realtà non sono limitati al browsing web, mail, storage rimuovibili (chiavette, cd, dischi…) sono ancora un vettore primario di infezione, ma il web assume sempre piu un ruolo primario nella distribuzione di tali attacchi.
Sul punto (2) la criticità è legata, essenzialmente, al fatto che la tecnologia attuale (il web 2.0 se volete) rende di fatto lo scambio di dati bidirezionale, e quindi è possibile rimanere trappola più o meno cosciente di una operazione in cui dati considerati “privati” vengono comunicati all’esterno.
Questo rischio è sicuramente presente nella mail, nella tecnologia di istant messeging e chat, e oggi come oggi anche dalle tecnologie di social networking. Ovviamente la perdita di dati, in questo senso, è più un problema legato alla uscita di informazioni dall’interno verso l’esterno, che ad una intrusione vera e propria. va da se che se un dipendente disonesto cerca di passare informazioni all’esterno non ha solo il web come strumento.
il  punto (3) è di fatto il più controverso, il problema è definire l’uso improprio. Va fuori dai termini di quanto voglio descrivere in questi post entrare nella discussione su come controllare la produttività, ma sono sempre aperto ad intavolare una discussione specifica 🙂
il punto 4 ovviamente dipende da considerazioni di risorse: quanta connettività dedico all’accesso ad internet? per quali servizi? posso instaurare controlli di flusso (QoS) o di banda per garantire che certe applicazioni siano privilegiate rispetto ad altre?
aggiungete voi quello che volete 🙂

perché mi dovrebbero attaccare?

Qui entriamo nel nocciolo del problema.
Capire perché siamo potenziali vittime ci permette di misurare il livello di esposizione e quindi di adottare le metriche necessarie a valutare le contromisure.
Innanzi tutto occorre rendersi conto che le attività malevoli su internet non sono una cosa legata alla espressione di ego di un ragazzino, ma attività criminose il cui scopo è, fondamentalmente, monetizzare quanto fatto.
In altre parole il malware esiste per motivi di guadagno.
Ma come si guadagna col malware? Come può un “virus” essere una fonte di reddito?
Esistono diverse modalità di monetizzare il malware su internet. Ancora una vota semplificando possiamo definire una serie di punti:

  • offerta servizi
  • vendita prodotti
  • proselitismo
  • raccolta informazioni
  • marketing
  • furto
  • spionaggio industriale
  • cyber terrorismocriminalità

i primi 3 punti sono in realtà all’origine della maggior parte dei malware oggi esistenti.
la idea di base è fare questa cosa:

  1. infetto un computer con un programma per creare una botnet
  2. la botnet la uso o per mandare direttamente ad esempio spam (marketing, vendita prodotti, proselitismo)
  3. o ne rivendo i servizi a terzi per le loro attività

tra Marketing e raccolta di informazioni la differenza è sottile, direi che questa risiede sulla natura delle informazioni raccolte:
da un lato c’è la tipica attività del marketing che è la profilazione delle abitudini commerciali dell’utente: su qual siti vai, se compri o meno, cosa compri, ogni quanto, come paghi……
dall’altro c’è la raccolta di dati sensibili, social security number piuttosto che codice fiscale, banca di appoggio, numeri telefonici
complementare alla raccolta di informazioni c’è il furto, sia esso scam, phishing, raccolta dati carta di credito, vendita fasulla.
i punti sullo spionaggio industriale e il cyber terrorismo sono abbastanza lontani dalla maggior parte delle implementazioni di security che sono oggetto di questa dissertazione.
le tecnologie che consentono di effettuare queste attività sono varie e disparate, le più semplici si si traducono in 3 grandi famiglie:
1) cambiare i flussi web dell’utente vittima prelevandone i dati in maniera truffaldina o direzionando la sua navigazione su appositi siti
2) effettuare il deploy sulla macchina dell’utente vittima di software che consenta ad esterni, senza autorizzazione, di prendere il controllo di uno o più servizi
3) attività di hacking
della prima famiglia fanno ovviamente parte i cookie traccianti, l’hijacking, il dns poisononig e cosi via, il secondo punto è tipicamente legato alla attività di creazione di una botnet,ma non solo. un esempio tipico è il prendere possesso delle risorse di disco di una macchina per trasformarlo in un ftpweb server. Molti siti warez o pedopornografici sfruttano questo approccio.
Il terzo punto è terreno tipico del cyber crimine dallo spionaggio industriale, al ricatto (ad esempio minacciando Ddos) o del cyber terrorismo.

Quale è la configurazione esterna del mondo cui mi devo interfacciare?

Ragioniamo quindi sul mondo esterno cui dovremo interfacciarci.
Internet è composta da una moltitudine di macchine che consentono lo scambio di dati attraverso protocolli e applicazioni diverse. Ogni macchina presente su internet è di fatto sia “client” che “server”. la differenza tra i due stati è legato al richiedere o fornire informazioni eo servizi.
Non importa se vi connettete con un laptop o con un web server, dal punto di vista di internet siete dei fornitori o fruitori “potenziali” di servizi.
Il web come siamo usi intenderlo, come cioè una sequenza ordinata di siti riconoscibili, in realtà non esiste.
Innanzi tutto la prima cosa da capire è che non esiste una associazione univoca servizio web => macchina fisica. Dalla introduzione dei protocolli peer to peer allo sviluppo del cloud computing i servizi web sono di fatto composti da una complessa struttura il cui scopo è fornire le componenti di servizio necessarie alla erogazione. La macchia fisica e le sue capacità elaborative sono condivise tra uno o più servizi ed il suo stato cambia a seconda della richiesta.
In altre parole il servizio “x” può essere erogato da una insieme di macchine che può variare a seconda del richiedente in funzione di parametri prestabiliti, come ad esempio lingua, locazione geografica, carico e via dicendo.
Ma una macchina può fare parte di più insiemi eroganti servizi diversi e, contemporaneamente, essere client per altri servizi.
Si pensi, in questa ottica, ad alcune classiche implementazioni quali i web di molte multinazionali, molti servizi di E-commerce (Amazon o E-bay su tutte) o della rete Akamai.
Il problema dei servizi erogati via Web inizia quando a pochi siti riconosciuti aggiungiamo una quantità indefinita di nodi eroganti servizi (dove per nodo si intende un insieme di macchine) e la possibilità di alterare truffaldinamente i flussi di informazioni in qualche punto.
Aggiungiamo, come complicazione, la possibilità di far erogare servizi anche a macchine non ufficialmente prediposte per erogare servizi.
Il risultato diventa ancora più complesso se consideriamo il fatto che, dal punto di vista dell’indirizzamento IP ci troviamo, in linea di massima, davanti a tre classi di macchine:
Macchine con IP pubblico fisso (solitamente servers, macchine di università ed organizzazioni pubbliche)
Macchine con IP privato con NATPAT (Network Address TranslationPort Address Translation) fisso, tipicamente servers dentro una DMZ che espongono servizi su un numero ridotto di IP pubblici.
Macchine con IP privato con NAT variabile, tipicamente “computer” di end users che si connettono via internet tramite un provider, o utenti aziendali che vanno su internet tramite proxy eo Natting.
Queste ultime sono macchine tipicamente poco protette, ma, in termini di capacità di elaborazione, comparabili ad un server. Gli stessi sistemi operativi (Windows, LinuxUnix, Mac OS) sono in grado di gestire efficientemente servizi Web ed interfacciarsi sul TCPIP.
Intervenire, dal punto di vista del malware, su queste macchine risulta particolarmente facile e vantaggioso.
Supponiamo di riuscire a “craccare” una qualche macchina di un nodo che fa riferimento ad un sito web particolarmente visitato. Tramite questo canale potremmo riuscire a fare il deployment di un software su una serie di macchine client che stanno navigando sul sito web di riferimento e che si trovano nello stato opportuno per essere reindirizzate sulla macchina compromessa del nodo.

Ora queste macchine “client”  una volta infettate hanno una caratteristica interessante: L’IP con cui si presenteranno su internet è variabile e virtualmente non prevedibile, il che rende molto più difficile il tracciamento delle attività di questa macchina. Un prodotto ottimo per essere usato per azioni “illecite”.
Il risultato è che da un “buco” di sicurezza legato ad una alterazione di una macchina di un nodo di un sito noto ho ottenuto un imprecisato numero di macchine infette.

Queste macchine infette sono in grado di effettuare operazioni complesse, parlare tra loro e estendere le infezioni. Con meccanismi di comunicazione peer to peer o in pushpull sono in grado di mantenere tra loro sincronia ed essere utilizzate per gli scopi che abbiamo descritto in precedenza.
Il primo importante risultato di questa analisi è che le macchine più a rischio di infezione risultano essere non i “server” aziendali ma i client degli utenti.
Il secondo importante risultato è che per essere economicamente soddisfacente questo meccanismo deve puntare alla infezione di alcune unità di nodo di siti molto visitati e su cui gli utenti si sentano “sicuri”.
Ricapitolando:
Dal punto di vista del rischio di fonte di infezione, data la natura di internet, i target più probabili sono i siti più visitati, indipendentemente dalla natura dei contenuti del sito medesimo.
Ne risulta che, se dovessimo stilare una lista dei più rischiosi, troviamo, al giorno di oggi che il rapporto costibenefici, dove per costo si intende una funzione delle spese per mettere in sicurezza i nodi eroganti e per beneficio il numero di HIT del sito:
siti della pubblica amministrazione
Siti di ricerca
siti di Social networking (da facebook a twitter)
siti di comunicazionenewssportblog
siti di E-commerce
siti Pornografici

In pole position i siti di pubblica amministrazione: comuni, province, regioni, enti statali e parastatali, tutti offrono servizi web; ma il livello di spesa per mettere in sicurezza questi siti è sempre molto basso. se è vero che il numero di HIT non è altissimo è anche vero che è molto facile craccarli e sono soggetti a navigazione end user eterogenea.
viceversa i siti porno sono siti di e-commerce che vivono sul ritorno dell’utente e sulla gestione della sua privacy quindi investono cifre non indifferenti per securizzare il servizio.