Informazioni personali

Cerca nel blog

Translate

mercoledì 30 settembre 2009

I’ll held an Online event on IronPort technologies October 21

  People that followed the TechWise TV episode on DLP probably are already aware of this, but for the rest of you: I’ll present an one hour online event on TechWise TV the October 21 on IronPort Technologies.

During the episode I’ll talk mainly about ESA and WSA.

I hope you all to attend, at least to see me in action 🙂

The Agenda will be, more or less:

Title:     Web and Email security: Securing the Communication Channels

 

  • Date and Time:  Oct 21 – 11:00 am Italy time
  • One hour duration
  • Presenter: Antonio Ierano

Description:

In this interactive workshop, you will learn to:

  • · Securing  web browsing and E-mail assets that need protection
  • · Protect a communication channel: process, technologies and interactions
  • · Implement E-mail and Web  security: WSA, ESA and good tips

Cisco-Ironport solutions help you to protect two of  your fundamental assets:

  1. · The channel you need to retrieve information, the web
  2. · The channel you use to exchange info and store your intellectual properties, the mail

Exchanging information is a fundamental need for any organization, but the channels you use to exchange data are seldom safe. Nowadays the two mainstream channels for communication, the web browsing and the email, need to be protected from a various set of threats. Beyond “Spam” and “Virus” we have to face today, there are malware attacks, data loss and blended attacks that mix the two channels into a unique insecurity black hole.

This workshop will give you the information you need to implement solutions that provide a comprehensive set of technologies and a solid layer of integration with your infrastructure, to protect your communication assets from the various risks facing you today. Experts will be available throughout the workshop for Live Q&A.

A

Evento online sulle tecnologie IronPort il 21 Ottobre

  Coloro che hanno seguito il TechWise TV lo sanno probabilmente già, ma per gli altri terrò un evento di un’ora online su TechWiseTV  il 21 di Ottobre sulle tecnologie Ironport.

Durante la puntata parlerò essenzialmente di ESA e WSA.

l’agenda sarà più o meno:

Web ed Email security: proteggere i canali di comunicazione

Outline:              

· perché proteggere la navigazione web e la mail : gli asset da proteggere ed i rischi che si corrono

· come si protegge un canale di comunicazione: processi tecnologie ed interazioni

· implementare la web security: WSA e qualche buon consiglio

· implementare la email  security: ESA e qualche buon consiglio

Intervenite numerosi, non fosse altro perché ci sono io 🙂

ciao

A

mercoledì 23 settembre 2009

Web security: costo o possibilità di business?

Ho esitato prima di postare questo articolo, perche non avevo bene idea di dove metterlo, ma vista la natura descrittiva ho deciso di inserirlo in PostOffice.

Recentemente ho avuto l’occasione di parlare con alcuni clienti di sicurezza della navigazione Web, e ci siamo confrontati su due aspetti:

  • serve davvero visto che già proteggo gli end point?
  • il costo giustifica i vantaggi?

premetto che una risposta assoluta e valida per tutti non esiste, le situazioni vanno affrontate caso per caso, ma vorrei evidenziare alcuni punti che spesso vengono trascurati:

La protezione dell’endpoint:

Sulla protezione dell’endpoint molto si è scritto, ma sarebbe opportuno togliere subito un equivoco fondamentale: la protezione al gateway non serve ad eliminare la protezione all’endpoint, ma è ad essa complementare.

Cercare di offrire il livello di protezione totalmente all’end point significa caricare la macchina di una serie di servizi che ne inficerebbero le performance. Immaginate di installare sullo stesso PC 2 diversi antivirus, un antimalware ed cosi via….

un altro punto da considerare è che in mancanza di un sistema di NAC implementato è difficile assicurare la completa aderenza degli endpoint alle richieste di security.

Infine diversi endpoint possono necessitare di diversi approcci (il browsing viene effettuato non solo dai PC) e questo aumenta la complessità organizzativa ed amministrativa di tener tutto allineato e protetto.

Un discorso particolare poi merita il mondo degli end user, questo è un mondo dove la protezione antivirus eo antimalware è di fato disattesa nel 70% dei casi.

Se è vero che quasi tutti i PC acquistati hanno un antivirusantimalware on board OEM, è anche vero che pochi sono gli utenti che alla scadenza rinnovano il prodotto o ne installano uno freeware alternativo. La maggior parte degli utenti, nonostante la offerta abbastanza diffusa di prodotti free, semplicemente ignora il problema.

Ho postato su PostOffice2 un articolo che riporta un caso di vendor che era involontaria causa di infezione attraverso i suoi driver, del malware trovato su sito del New Your Times, e cosi via. All’aumentare dei veicoli di infezione non aumenta il livello di protezione offerto sugli endpoint.

La questione del costo

Il secondo punto di discussione è sempre quello inerente i costi.

il classico problema è che i costi sono una componente essenziale ma che andrebbe calcolata nel suo complesso: la soluzione si sicurezza ha un costo di acquisto, gestione e manutenzione. Ma ha anche ricadute in termini di produttività e di costi legati alla insicurezza ed al trasferimento del rischio.

La produttività in particolare è un aspetto abbastanza trascurato: quanto incide la protezione (o non protezione) dell’ endpoint sulla produttività?

Purtroppo questo aspetto viene spesso trascurato a scapito o della sicurezza o della effettiva capacità di lavoro.

In realtà una buona politica di sicurezza può persino portare ad interessanti risvolti economici.

Prendiamo il caso di un ISP, solitamente chi offre connettività ha un approccio abbastanza lassista nei confronti della sicurezza del canale che offre (almeno in Italia) eppure offrire alla clientela residenziale o enterprise dei layer di sicurezza potrebbe avere delle ricadute interessanti anche dal punto di vista economico. Servizi di protezione al gateway o “in the cloud” potrebbero essere pacchettizzati ed offerti al cliente come valore aggiunto. inoltre una maggiore pulizia della rete gestita dal provider in termini di emissione di malwarespam sicuramente aiuterebbe in termini di appealing commerciale verso una clientela esigente.

ma quali servizi offrire?

beh non sono un esperto marketing, ma proprio per andare sul banale possiamo fare qualche esempio:

immaginiamo un offering di connettività domestica ADSL.

a questo tipo di connettività associamo:

  • un accesso da parte di utenti di capacità e conoscenza informatica differente,
  • HWSW eterogeneo,
  • nessuna manutenzione garantita,
  • accesso possibile da parte di Minori
  • ….

risulta evidente come in queste condizioni risulta comprensibile offrire almeno un servizio di:

  • Secure browsing
  • Parental Control

tenendo presente che non ci si limita in questo caso ad un PC offerto dal provider ma ad un vero e proprio servizio trasparente.

Risulta evidente come tali servizi possano trovare, equivalentemente, spazio per offerte PMI dove si abbassa sensibilmente il costo legato alla gestione e manutenzione dalla soluzione.

Dal punto di vista della implementazione è possibile pensare in tutti i casi di sfruttare servizi di transparent proxyng che rendono il deploy e la gestione della offerta agile e semplice.

Se nel mondo ISP un approccio che coniughi sicurezza e guadagno è quindi possibile, che dire dell’enterprise?

Se ragioniamo in termini di enterprise la questione deve essere affrontata sotto un aspetto diverso: quanto mi costa non avere questo tipo di soluzioni e quale è la perdita di produttività associata?

Potremmo pensare ai costi di protezione dell’endpoint ed il relativo costo, ma più semplicemente:

  • quanti blue screen ti ha provocato il tuo antivirus?
  • quanta ram ti mangia?
  • riesci a montare on board anche un antimalware?
  • quale è l’ultima verifica antimalware che hai fatto su i tuoi sistemi?
  • come gestisci i cookie?

e cosi via…… (sono stato su questi punto qualche post fa 🙂 )

Un approccio più coerente alle policy di sicurezza ed un poco di iniziativa imprenditoriale anche in termini di gestione di security permetterebbe un cambio di gestione delle questioni legate alla sicurezza informatica e offrirebbe alla azienda un asset che potrebbe portare direttamente, o indirettamente, valore ed alla fine guadagno.

ciao

a

lunedì 21 settembre 2009

Configurazione WCCP: WSA Ironport con Switch Catalyst

Il buon Walter Doria mi ha mandato la configurazione e gli step usati per configurare un 3570 con WSA.

Apparati utilizzati

  • Cisco Ironport WSA S360 release software 6.0.1
  • Cisco Catalyst 3750 release software IOS 12.2(50)SE2

Configurazione switch Catalyst

definition of global WCCP instance
ip wccp 80
!
interface GigabitEthernet1/0/1
switchport access vlan 100
!interface GigabitEthernet1/0/2
switchport access vlan 100
!
interface GigabitEthernet1/0/5
switchport access vlan 200
interface GigabitEthernet1/0/6
switchport access vlan 200
!

interface Vlan100

ip address 10.10.10.1 255.255.255.0
# define which VLAN has to be interested on WCCP
ip wccp 80 redirect in
ip wccp 80 group-listen
!

interface Vlan200

ip address 192.168.39.152 255.255.255.0
!
ip default-gateway 192.168.39.254
ip classless
ip route 0.0.0.0 0.0.0.0 192.168.39.254

Configurazione Ironport

Abilitare la transparent redirection WCCP2


Definire uno o più servizi WCCP. Il nome del servizio deve essere lo stesso definito sullo switch (es 80)

creare quindi delle access policies per abilitare il traffico in uscita

Il proxy deve essere configurato il transparent mode

venerdì 18 settembre 2009

WCCP e WSA: guida alla sopravvivenza

Facendo il deploy di un apparato WSA (Web Security Appliance) può venire l’esigenza di effettuare una configurazione che non richieda nessun intervento lato client.
Per configurare tali funzioni su WSA occorre innanzi tutto configurare l’apparato come il transparent proxy. Tale operazione, che si effettua durante il wizard di setup, ci propone come scelta 2 possibili configurazioni transparent: L4 o Wccp.
Ci soffermiamo in questo post sulla configurazione WCCP.
Il WCCP ( Web Cache Communication Protocol) è un protocollo di routing sviluppato da Cisco il cui scopo è quello di ruotare automaticamente il traffico che giunge su di un router verso un apparato  che funga da cache o proxy. Il protocolla, nella sua configurazione base, richiede pochissimi comandi ed è di configurazione abbastanza semplice.
In linea di principio il funzionamento del sistema è il seguente:
Immaginiamo di avere un client che è configurato senza proxy web, e che sia stato opportunamente configurato un router (o switch L3) compatibile WCCP con una unità WSA.

1) Il client  che ha un indirizzo nella subnet A quando cerca di effettuare la navigazione Web esegue una chiamata verso internet attraverso la porta 80 (Http) indirizzando il pacchetto al default gateway (router) che ha abilitato il WCCP
2) il router riceve il pacchetto e il servizio WCCP lo reindirizza verso il proxy che sta nella subnet B
3) il proxy riceve il pacchetto proveniente dal client, e effettua la chiamata verso internet in luogo del client presentando la richiesta come se proveniente dalla rete B ed inviandola al router
4) il router invia il pacchetto trasformato dal proxy verso internet attraverso la opportuna interfaccia (ad esempio nella rete C)
5) il server Web su internet risponde e manda il suo pacchetto al Proxy
6) il proxy elabora il pacchetto e lo manda indietro al client via router
7) il client riceve il pacchetto di risposta dal router come se fosse stato mandato direttamente ad internet
La redirezione verso il proxy, quindi, è trasparente al client in termini di configurazione. Qualsiasi chiamata verso internet di un client che si trova nella rete A verrà quindi rigirata dal servizio WCCP e opportunamente processata dal proxy.
Perché il tutto funzioni dobbiamo tener presente quindi i seguenti punti fondamentali:
1) stiamo parlando di routing, e quindi siamo almeno al layer 3 (anche se lavoriamo su di uno switch)
2) il WCCP deve poter distinguere la rete client da quella che contiene il proxy
3) WSA deve essere in grado di ruotare correttamente il traffico verso le reti cui è connesso.
La configurazione del protocollo, dicevamo, è estremamente semplice. Il motivo principale è che sono i Proxy (Engine o WCCP client) che si annunciano al router (WCCP server) per permettere al protocollo WCCP di funzionare.
L’annuncio è comporto da alcune parti; ogni 10 secondi il WCCP client si annuncia (“here I Am”) al router, dichiarando il suo indirizzo i serviziporte che gestisce, la modalità di autenticazione e via dicendo. se sono presenti più WWCCP client quello con l’indirizzo IP più basso funge da riferimento per il router in termini di protocol/port, assignment, forwarding, e return methods

Engine assignment : Hash (software) method , Mask (hardware) method , Reassigns on engine failure
Forward to engine methods : L2 MAC rewrite , L3 WCCP GRE forward

il Router (WCCP server):

  • -Accetta la registrazione per il service group
  • -Acks “Here I Am” con “I See You”
  • -Attende 30 (3×10) secondi prima di dare errore di connessione verso un engine
  • -Annuncia l’engine primario agli altri engines
  • -Router id è l’indirizzo IP più alto
  • -redirige il traffico verso il WCCP client (engine)

si noti che  esistono 2 metodologie di forwarding del router verso il WCCP client, e 3 di ritorno da WSA al router:

Redirection from router to WSA

  • -GRE—Entire packet GRE tunneled to the engine
  • Layer 2—Frame MAC address rewritten to engine MAC
  • -WSA will reject packets it does not want to handle

Return from WSA to router

  • -GRE—Entire packet GRE tunneled to the router
  • -Layer 2—Frame MAC address rewritten to router MAC
  • -IP Forward—Engine issues ARP for default gateway

in caso di L2 return occorre ricordarsi di introdurre la opportuna route statica su WSA.

Gli apparati

gli apparati che possono gestire il WCCP sono presenti nel seguente elenco:

Software Routers

§Cisco 7200, 7300, 7400, 7500 family routers

  • -GRE forwarding only
  • -Hash assignment only

§Cisco Integrated Services Routers 1800, 2800, 3800

  • -GRE forwarding only
  • -Hash assignment only

Firewalls

§ASA

  • -GRE forwarding only
  • -Hash assignment only
  • -Single client / no meshing

Hardware Accelerated Switches

  • §Mask assignment only

§Cisco Catalyst® 4500 and 4948 family switches

  • -L2 only
  • -no redirect-list
  • -Inbound only

§Cisco Catalyst 3750 family switches

§Cisco Catalyst 6500 and 7600

  • -WCCP exclude in used with outbound is in software
  • -Sup720
  • •GRE and L2 forwarding in hardware
  • •GRE return in software
  • •L2 return in hardware (future)
  • -Sup2
  • •GRE forwarding in software
  • •L2 forwarding in hardware
  • •GRE and L2 return in software

Configurazione lato WSA

La configurazione di WSA per supportare  WCCP è estremamente semplice:

Dal menu Network si seleziona transparent redirection
si deve quindi creare un service WCCP. Il service WCCP fondamentalmente serve ad istruire il proxy ed il router su quali saranno le porte soggette alla redirezione.
esiste uno standard service ID (web-cache), che però ruota solo la porta 80; se si ha bisogno di ruotare altre porte, come ad esempio la 443 per proxare l’HTTPS, occorre definire un Dynamic service ID e quindi dichiarare le porte che vengono gestite (vedi figura).
Occorre poi dichiarare l’indirizzo del router WCCP, ovviamente questa interfaccia deve risiedere nella stessa rete del proxy.
Vi rimando alla manualistica del prodotto per le ulteriori opzioni.

Configurazione lato WCCP router

La configurazione lato WCCP router varia leggermente da apparato ad apparato.
su di un router la configurazione approssimativamente richiede i seguenti comandi:

il primo comando serve ad abilitare Cisco Express Forwarding, opzionale ma fortemente consigliato
il secondo comando abilita il wccp
il terzo comando assegna al wccp il service ID “80” (lo stesso che avevamo definito sul WSA) e definisce una redirect list
questi comandi abilitano il wccp, adesso occorre definire dove si trovano i client che devono essere rediretti.
Questo si fa su di una interfaccia del router:

il primo comando serve per definire la interfaccia su cui operiamo
il secondo abilita la redirezione sulla interfaccia selezionata per il servizio wccp definito sul service ID “80”
si può infine creare l’opportuna acl per includereescludere nodi dalla redirezione.
 

con leggere differenze si configurano cosi anche gli switch.
sugli switch occorre fare un po’ di attenzione ad alcuni punti:
1) essendo wccp un protocollo di routing occorre elevare la configurazione a layer 3. Se si usano porte singole occorre dare un “no switch”, piu comunemente si utilizzano delle VLAN che raggruppino le porte dedicate ai client, le porte dedicate ai proxy ed eventualmente le porte dedicate all’accesso ad internet.
2) in alcuni switch (ad esempio il 3750 e 3560) è necessario utilizzare il template sdm routing (richiede il reboot)

in un prossimo post vedremo nel dettaglio una configurazione di switch di esempio.
PS: ringrazio Walter Doria di exclusive Network per aver collaborato alla fase di testing da cui sono scaturiti questo articolo ed il prossimo.

martedì 8 settembre 2009

Playing with logos

Ok since I’ve just talked about Google logo, i wouldn’t be able to stop  myself so:

 

Here my personal interpretation of the Cisco logo:

What do you expect from a IronPort guy?

cheers

Antonio

All your base are belong to us

[google-logo.jpg]

I love Google logos,  they use to play with letters and drawings sometimes in a really funny way.

This time some rumors spreads about this UFO Logo, believe it or not someone thought was actually related to a UFO affair  …arrrghhhhhhhhh

those rumors become stronger when in twitter the Google guys wrote an enigmatic: "1.12.12 25.15.21.18 15 1.18.5 2.5.12.15.14.7 20,15 21,19".

the explanation was really more interesting, everything was just a celebration of one of the most infamous translation in the history of information technology : the game “zero wing” from Sega

All your base are belong to us

of course knowing that also the twitter massage assumed a different meaning, and from a cryptic message form outer space become simply:

1=a 12=l 12=l ……… All your….

Some newspapers and bloggers have been captured by the dark side and started to talk about alien connections and so on…..

enjoy the wikipedia article and the translation 🙂

From Wikipedia, the free encyclopedia

 

This article contains Japanese text. Without proper rendering support, you may see question marks, boxes, or other symbols instead of kanji and kana.

The phrase is a line of subtitled dialogue from the introduction to Zero Wing.

"All your base are belong to us" (often shortened to "All Your Base", "AYBABTU", or simply "AYB") is a broken English phrase that was central to an Internet phenomenon, or meme, in 2000-2002, with the spread of a Flash animation that depicted the slogan. The text is taken from the opening cut scene of the 1991 European Sega Mega Drive version of the Japanese video game Zero Wing,[1] by Toaplan which was poorly translated by Sega of Europe. It was popularized by the Something Awful message forums.[2]

Contents

[hide]

[edit] Transcript and translations

A summarized GIF animation of the scene.

[edit] Comparison with original Japanese

It appears from the original text that CATS may be the name of an organization, not just of the particular cyborg villain appearing on the screen.[1]

Original Japanese Text
Game Transcript
Correct Translation

西暦2101年
In A.D. 2101
AD 2101―

戦いは始まった。
War was Beginning.
War has begun.

艦長:一体どうしたと言んだ [sic]!
Captain: What happen ?
Captain: What happened?

機関士:何者かによって、爆発物が仕掛けられたようです。
Mechanic: Somebody set up us the bomb.
Engineer: An unknown assailant has planted an explosive device!

通信士:艦長!通信が入りました!
Operator: We get signal.
Communication operator: Captain! We have received a transmission!

艦長:なにっ!
Captain: What !
Captain: What?!

通信士:メインスクリーンにビジョンが来ます。
Operator: Main screen turn on.
Communication operator: Incoming visual on the main screen.

艦長:おっお前は!!
Captain: It’s you !!
Captain: I … It’s you!!

CATS:おいそがしそうだね、諸君。
CATS: How are you gentlemen !!
CATS: You seem busy, gentlemen.

CATS:連邦政府軍のご協力により、君達の基地は、全てCATSがいただいた。
CATS: All your base are belong to us.
CATS: With the help of the Federation Government forces, CATS has taken all of your bases.

CATS:君達の艦も、そろそろ終わりだろう。
CATS: You are on the way to destruction.
CATS: Your ship is about to meet its doom as well.

艦長:ばっばかなっ・・・!
Captain: What you say !!
Captain: It … it can’t be …!

CATS:君達のご協力には感謝する。
CATS: We are grateful for your cooperation.

CATS:せいぜい残り少ない命を、大切にしたまえ・・・・。
CATS: You have no chance to survive make your time.
CATS: Cherish these few remaining moments of your lives.

CATS:ハッハッハッハッハッ・・・
CATS: Ha ha ha ha …
CATS: Ha ha ha ha ha …

通信士:艦長・・・。
Operator: Captain !!
Communication operator: Captain …

艦長:ZIG全機に発進命令!!
Captain: Take off every ‘ZIG’!!
Captain: I order you to launch all ZIG units!

艦長:もう彼らに託すしかない・・。
Captain: You know what you doing.
Captain: We have no choice but to entrust to them …

艦長:我々の未来に希望を・・・
Captain: Move ‘ZIG’.
Captain: Our hopes for our future …

艦長:たのむぞ。ZIG!!
Captain: For great justice.
Captain: We’re counting on you, ZIG!

antonio ierano

antonio ierano

Shared via AddThis

lunedì 7 settembre 2009

Direct Proxy vs Reverse Proxy

Parlando di security i servizi di proxy rivestono da sempre un ruolo fondamentale.

L’idea di base di un proxy è quella di concentrare le richieste in un punto controllabile ed inviarle a destinazione in luogo e per conto del richiedente.

Lo scopo è, ovviamente quello di mettere un layer di divisione tra il client che richiede il servizio e il server che lo eroga, per semplificare:

Client Proxy Server

Il vantaggio di questa operazione è che il proxy è un punto di accesso deterministico, su cui è possibile implementare azioni di controllo e monitoraggio arbitrari indipendentemente dall’origine e destinazione della richiesta.

L’uso di proxy è comune per diverse tecnologie ed è diffusissimo anche se spesso vengono usati nomi diversi. Un esempio su tutti è il servizio di MTA che esegue per conto del protocollo SMTP il servizio di proxy.

Una applicazione classica dei servizi di proxy è legata alla navigazione web. in altri articoli abbiamo parlato diffusamente di come la navigazione web necessiti di una serie di tecnologie concorrenti per proteggere la navigazione dell’utente.

Un errore comune quando si parla di proxy è quello di paragonare il servizio offerto al suo duale: il servizio di Reverse Proxy.

il sevizio di Reverse Proxy, di fatto, serve a  dare un layer di isolamento tra Server e client in una ottica di questo tipo:

Server Reverse Proxy Client

Se pur in apparenza le due attività sembrano analoghe richiedono approcci profondamente diversi in quanto devono indirizzare richieste estremamente diverse.

Cerchiamo quindi di fare un po’ di chiarezza sull’argomento:

Proxy

un proxy tradizionale nasce per indirizzare le richieste di una serie di client verso dei server specifici.

l’approccio ingegneristico tiene conto, nella progettazione, della natura della transazione, tenendo presente che il soggetto della operazione è il client, e l’oggetto il server.

Questo significa che il proxy deve essere progettato per rispondere ad una serie minima di esigenze sia in termini di performance che di sicurezza:

1) controllo del traffico

il controllo del traffico viene demandato, fondamentalmente, a due aspetti salienti: il riconoscimento del client e le sue autorizzazioni di accesso.

Il riconoscimento del client, sempre più spesso, va a sovrapporsi con le problematiche di autenticazione, ma in linea di massima significa trovare quel, o quei, parametri univoci che consentono al proxy di distinguere un client da un altro.

La base elementare di questa analisi è l’indirizzo IP del richiedente la transazione, su cui si possono montare altre proprietà che vanno da propietà LDAPDirectory (ex Microsoft Active Directory) a caratteristiche intrinseche della richiesta (target, protocolli, e cosi via).

2) sicurezza

la sicurezza di un proxy si divide in:

  • sicurezza del servizio (integrita del sistema, integrità delle policy e cosi via)
  • sicurezza del client che richiede il servizio

il secondo punto significa mettere in campo tutte quelle tecnologie che sono in gradi di proteggere il client da effetti indesiderati causati durante la transazione. Tipici esempi di ciò sono i servizi antivirus, quelli antimalware, i servizi di reputation, i filtri URL e cosi via.

Tutta la logica implementativa è rivolta a proteggere il client da possibili interferenze.

3) performance

Dal punto di vista prestazionale l’ottica generale di un proxy è quella di cercare di ridurre il numero di chiamate verso i server accorpando più chiamate client in una sola. in quest’ottica spesso i servizi di cache offrono dei miglioramenti a patto che la dinamicità delle risposte sia limitata e che sia possibile implementare efficienti servizi di prefetching.

Il servizio di proxy, quindi, è una componente del mondo client.

Reverse Proxy

Completamente diversa la situazione di un Reverse Proxy.

Il compito del reverse proxy, come si è detto, è isolare il server dai client (e non viceversa). le problematiche cui va incontro sono profondamente diverse perché diverse sono le esigenze di un client rispetto a quelle di un server.

Fondamentalmente un reverse proxy “virtualizza” il server nei confronti dei client e, dal punto di vista ingegneristico, deve essere progettato per tenere presente le esigenze del “server”.

per analogia con il servizio diretto vediamo lacune considerazioni inerenti il reverse:

1) controllo del traffico

il controllo del traffico in ambito reverse proxy si concentra, fondamentalmente, nella distribuzione delle risorse al fine di poter rispondere al maggior numeri possibile di client senza perdita di performance. a parte casi particolari in cui vengono richieste attività di autenticazione lato proxy, la maggior parte delle autenticazioni in ambito reverse vengono effettuate direttamente a livello di server o di protocollo.

2) sicurezza

la sicurezza in ambito reverse è una questione estremamente delicata. I principali aspetti da tenere sotto controllo sono:

  • continuità di erogazione del servizio
  • protezione della integrità dei dati sul server
  • protezione della integrità delle transazioni col client

Il primo problema viene spesso affrontato da un lato moltiplicando le istanze del reverse proxy che espone il servizio, permettendo a costi ridotti, di aumentare il livello di affidabilità del sistema, dall’altro permettendo al proxy di essere rimesso in funzione in tempi brevissimi.

La teoria è quella della scatola vuota, l’idea di base è che il reverse proxy non contiene, di per se, informazioni sensibili o processi complessi, svolti invece dal server. Può essere quindi riattivato in termini estremamente rapidi.

La protezione della integrità dei dati invece si prospetta come un problema estremamente piu complesso e dipende dalla natura dei dati e dal tipo di transazioni offerte dal server.

In linea di massima un proxy per venire incontro a queste esigenze deve essere capace di interpretare le richiesteistruzioni provenienti da un client ed entrarne nel merito.

Si pensi ad esempio alle SQL injection, per poter bloccare questo tipo di attacco occcorre che il proxy conosca la sintassi relativa e sia in grado di accettare solo le stringhe lecite.

Ovviamente per ottenere il massimo della security da un reverse proxy questo dovrebbe essere “dedicato”, ossia costruito sulle esigenze del servizio che sta proxando.

Se il fattore economico diventa critico può essere utile un general reverse proxy, tendndo presente che in questa maniera si abbassa sensibilmente il livello di security.

3) performance

Essendo il server protetto il generatore delle risposte risultano di scarsa utilità per un reverse proxy meccanismi di prefetching e caching, in quanto questi sono uno degli oggetti implementativi del server medesimo.

è impensabile che un reverse proxy possa migliorare le prestazioni di un server mal progettato, può però fornire supporto in termini di distribuzione di carico delle richieste, e alcuni livelli di aggregazione.

I Reverse Web Proxy

A questo punto vale la pena soffermarsi su un tipo particolare di reverse proxy, il Web Reverse Proxy.

Questo particolare servizio ha la funzione di riesporre un servizio Web su Internet isolando il Web server originale.

Generalmente una applicazione web viene divisa in strati distinti per diversi motivi: aumentare la capacità elaborativa, specializzare alcune componenti, proteggere i canali di comunicazione tra le diverse componenti. Nella figura sopra ho schematizzato una soluzione web in un DB server di backend che fornisce i dati ad un application server che di fatto costruisce il servizio Web e passa le informazioni ad un front-end che espone attraverso un webserver la applicazione dotandola delle opportune interfacce di comunicazione verso l’esterno. I proxy sono poi esposti su internet e fanno da intermediari tra il richiedente (client o proxy che sia) ed il webserver che espone i suoi metodi ed interfacce specifiche.

La funzione dei reverse proxy, in quest’ambito è, principalmente, quella di permettere:

1)una distribuzione geografica del carico nei confronti dei client

in quest’ottica è possibile prevedere la pubblicazione su reverse del servizio in aree geografiche anche distanti, per rendere minori le latenze di traffico IP

2) una più alta affidabilità in caso di fault

La moltiplicazione dei punti di accesso rende possibile la creazione di un grid che aumenta la affidabilità del servizio in caso di non raggiungibilità di uno dei nodi

3) un layer di separazione tra il webserver reale ed il client

Se in quest’ottica non possiamo evitare attacchi application aware, e diretti al webserver in quanto erogatore di un specifico servizio, possiamo quantomeno diversificare le piattaforme di esposizione rendendo più difficile l’Hacking e la presa di controllo della piattaforma e, contemporaneamente, più veloce il ripristino della interfaccia esposta.

A questo livello occorre, se vogliamo utilizzare tecniche di protezione più elevate, passare da un general purpose proxy, ad un application specific proxy. In altri termini se vogliamo proteggere anche il webserver e le interfacce e metodi esposti dall’ application server, nonché i dati del DBserver occorre che il porxy sia in gradi di discriminare i linguaggi i metodi e le sintassi utilizzate dai client per escludere quelle non lecite o pericolose.

L’utilizzo di servizi generici, quali antivirus, rendono il servizio solo minimamente protetto, è infatti essenziale procedere al:

Hardening del sistema operativo

Hardening dell’ application server

Hardening del canale di comunicazione tra Webserver ed Application server

Hardening del DB server

Hardening del canale di comunicazione tra DBserver ed application server.

Buona regola di sopravvivenza è impedire cross reference tra i diversi server rendendo la comunicazione piuttosto rigida anche in termini di cosa ed in che forma sia possibile effettuare una richiesta.

Direct vs Reverse

Come si vede il riferimento di sviluppo di un proxy e di un reverse proxy sono estremamente diversi, usi necessità e finalità sono distanti cosi come le tecnologie necessarie al fine di generare un flusso di dati coerente e sicuro.

Mescolare le due tecnologie può dare adito a problemi di tipo sia amministrativo che di deployment; pur avendo sul mercato la disponibilità di macchine multipurpose (ossia che fungono tanto da proxy quanto da reverse) i deploy sono profondamente diversi e richiedono interazioni e locazioni anche in rete abbastanza contrapposti.

Software Vs. Appliance

Non ho in termini generici una preferenza per quello che riguarda il reverse proxy tra applaince eo software.

L’appliance fornisce possibilità di Hardening maggiori ma una minore flessibilità configurativa rispetto al software che invece può vantare, soprattutto grazie alle correnti tecniche di virtualizzazione, una maggiore flessibilità sia in termini di personalizzazione (application aware) che di distribuzione su HW. per entrambi i tempi di recupero in caso di fault sono, generalmente, minimi a patto di aver disegnato correttamente il sistema.

Il confronto col mondo dei proxy web è difficile, in questo caso la scelta di uso dell’appliance risulta generalmente migliore sia in termini di costi che di security, tenendo presente che un webproxy, a differenza di un reverse web proxy, è general purpose e non dedicato ad una specifica applicazione.

Si risparmia allora a prendere un proxy che sia anche reverse?

Se i parametri di calcolo sono il mero costo di acquisto della soluzione (sic) direi che spesso si può risparmiare comprando una unità multipla, ma se nei calcoli di costo consideriamo che il deploy deve essere distinto, i costi di manutenzione e amministrazione, i costi legati ala security una soluzione dedicata risulta decisamente più sensata cost effective.

alla prossima

Antonio