Sicurezza di Server WEB e firma di componenti. Overview n Analisi dei tipi di attacco n Aspetti di...

53
Sicurezza di Server WEB Sicurezza di Server WEB e firma di componenti e firma di componenti

Transcript of Sicurezza di Server WEB e firma di componenti. Overview n Analisi dei tipi di attacco n Aspetti di...

Page 1: Sicurezza di Server WEB e firma di componenti. Overview n Analisi dei tipi di attacco n Aspetti di security dei servizi web n Protezione del server web.

Sicurezza di Server WEB Sicurezza di Server WEB e firma di componentie firma di componenti

Page 2: Sicurezza di Server WEB e firma di componenti. Overview n Analisi dei tipi di attacco n Aspetti di security dei servizi web n Protezione del server web.

OverviewOverview

Analisi dei tipi di attacco

Aspetti di security dei servizi web

Protezione del server web

Protezione del browser

Sicurezza in Explorer e Netscape

Firma elettronica dei componenti

Page 3: Sicurezza di Server WEB e firma di componenti. Overview n Analisi dei tipi di attacco n Aspetti di security dei servizi web n Protezione del server web.

HTTP evoluto

HTTP classico

Scenario di riferimentoScenario di riferimento

SERVERWEB

Browser WEB

GET HTML page/document

Ricezione di pagine HTML

Browser WEB

Download di componenti software (Applet o controlli ActiveX) o instanziazione di

componenti software sul server da pilotare mediante scripting

Attivazione di un canale tra client web e

applicazione server (Server web attivi e

passivi)

Page 4: Sicurezza di Server WEB e firma di componenti. Overview n Analisi dei tipi di attacco n Aspetti di security dei servizi web n Protezione del server web.

Punti d’attaccoPunti d’attacco

SERVERWEB

Browser WEB

Attacchi al server WEB

Attacchi al browser WEB

Attacchi al canale di comunicazione

Page 5: Sicurezza di Server WEB e firma di componenti. Overview n Analisi dei tipi di attacco n Aspetti di security dei servizi web n Protezione del server web.

Tipi di attaccoTipi di attacco

SUL SERVER WEB

– SHADOW SERVER – DENIAL OF SERVICE– UTILIZZO DELLA MACCHINA SERVER PER

FAR PONTE SU ALTRI SISTEMI

SUL CANALE DI COMUNICAZIONE– CONNECTION HIJACKING

– ATTACCHI REPLAY

– SNIFFING DI RETE

Page 6: Sicurezza di Server WEB e firma di componenti. Overview n Analisi dei tipi di attacco n Aspetti di security dei servizi web n Protezione del server web.

Tipi di attaccoTipi di attacco

SUL BROWSER WEB

– VIOLAZIONE PRIVACY (COOKIES)– ESECUZIONE DI COMPONENTI ATTIVI

FRAUDOLENTI:• Macro VBA• Script, Applet e Controlli ActiveX maliziosi• Spy Component / Back Doors• Trojan Horse• Esecuzione mediante plug-in di codice malizioso (es.

documenti PDF artefatti)

– ACCESSO A RISORSE DEL S.O. (HD, I/O, connessioni di rete o risorse condivise)

Page 7: Sicurezza di Server WEB e firma di componenti. Overview n Analisi dei tipi di attacco n Aspetti di security dei servizi web n Protezione del server web.

Autenticazione del server WEBAutenticazione del server WEB La protezione delle pagine WEB si basa su

un meccanismo debole se utilizzato da solo– Si utilizzano delle ACL gestite dal server WEB e

associate alle singole pagine– Nel protocollo HTTP 1.0 si utilizza una BASE

AUTHENTICATION dove l’utente dal browser manda tramite URL una stringa

USERNAME:[PASSWD]CodeBase64/UUEncode

facilmente intercettabile e manipolabile

– Username e password, codificate come sopra, sono mantenute in un semplice file di testo e manipolate con tools appositi (con interfaccia GUI o a caratteri) del server WEB

Page 8: Sicurezza di Server WEB e firma di componenti. Overview n Analisi dei tipi di attacco n Aspetti di security dei servizi web n Protezione del server web.

Autenticazione del server WEBAutenticazione del server WEB

E’ possibile attivare un’autenticazione basata sull’indirizzo o sul nome di dominio– Si tratta di un metodo d’autenticazione insicuro

Si devono utilizzare altre forme di autenticazione– Autenticazione tramite gli account di sistema operativo

(forma di autenticazione molto pericolosa in quanto espone ad attacchi l’intero sistema)

– Autenticazione tramite sistemi a sfida o password usa e getta (mediante moduli software che estendono le capacità d’autenticazione del server)

– Autenticazione mediante certificati a chiave pubblica (SSL e suoi derivati).

Page 9: Sicurezza di Server WEB e firma di componenti. Overview n Analisi dei tipi di attacco n Aspetti di security dei servizi web n Protezione del server web.

I COOKIESI COOKIES

www.omnitel.it FALSE /sito FALSE 935532272 usernamefugini

.focalink.com TRUE / FALSE 1293796841 SB_ID092278129800007154441241518571

.netscape.com TRUE / FALSE 978307388 NS_REGSHA1=%9B%E8%7B%DA%9Fy%F4%C4%0B%12%98C%86%B3229%5D%90%5F[-]UR%5FEMAIL=dallagno%40elet%2Epolimi%2Eit[-]UR%5FREG%5FID=17266063%3ASWDv1

.nscp-partners.com TRUE / FALSE 978307239NS_REG SHA1=%b9K%bd%d4kp%ed%0b%b5TY%94z%94%2dX%0a%06%81%c9[-]UR%5FEMAIL=fugini%40elet%2Epolimi%2Eit[-]UR%5FREG%5FID=17266063%3ASWDv1

www.omnitel.it FALSE /sito FALSE 935532272 usernamefugini

.focalink.com TRUE / FALSE 1293796841 SB_ID092278129800007154441241518571

.netscape.com TRUE / FALSE 978307388 NS_REGSHA1=%9B%E8%7B%DA%9Fy%F4%C4%0B%12%98C%86%B3229%5D%90%5F[-]UR%5FEMAIL=dallagno%40elet%2Epolimi%2Eit[-]UR%5FREG%5FID=17266063%3ASWDv1

.nscp-partners.com TRUE / FALSE 978307239NS_REG SHA1=%b9K%bd%d4kp%ed%0b%b5TY%94z%94%2dX%0a%06%81%c9[-]UR%5FEMAIL=fugini%40elet%2Epolimi%2Eit[-]UR%5FREG%5FID=17266063%3ASWDv1

ESEMPIOESEMPIO

Page 10: Sicurezza di Server WEB e firma di componenti. Overview n Analisi dei tipi di attacco n Aspetti di security dei servizi web n Protezione del server web.

I COOKIESI COOKIES

Sono semplici file di testo di piccole dimensioni che i server WEB generano e memorizzano in un preciso direttorio all’interno di ogni browser web

Servono principalmente a memorizzare variabili di sessione, informazioni sull’utente, siti visitati

Il loro utilizzo più frequente è quello di supporto all’immissione iterata di dati nei form di input (che andrebbero persi passando da una pagina all’altra)

E’ possibile disabilitarli, ma le pagine che li utilizzano non funzionerebbero correttamente

Esistono dei gestori di cookies che ne filtrano il contenuto rendendo disponibili ai server web solo alcune delle informazioni contenute

Page 11: Sicurezza di Server WEB e firma di componenti. Overview n Analisi dei tipi di attacco n Aspetti di security dei servizi web n Protezione del server web.

SERVERWEB

Protezione del server WEBProtezione del server WEB

Minimi privilegi ai processi attivati dal server

Protezione del file system del server

Confinamento dei singoli servizi Script attivati con minimo privilegio Autiding del server ad un fine

livello di granularità

Page 12: Sicurezza di Server WEB e firma di componenti. Overview n Analisi dei tipi di attacco n Aspetti di security dei servizi web n Protezione del server web.

Protezione del server WEBProtezione del server WEB Minimi privilegi ai processi attivati dal processo

principale del server WEB

– Il processo principale, che si pone in ascolto sulla

porta 80, è purtroppo attivato dagli attuali S.O. con

privilegi massimi (root in Unix, administrator in NT).

Situazione a cui non si può porre rimedio.– E’ il responsabile dell’attivazione dei processi figli

inerenti i servizi offerti dal server WEB (es. collegamento con fonti di dati)

– Questi servizi devono essere attivati associandoli ad un utente virtuale a cui siano assegnati minimi privilegi --> si impedisce così a processi con possibili bug di aggredire l’intero sistema

Page 13: Sicurezza di Server WEB e firma di componenti. Overview n Analisi dei tipi di attacco n Aspetti di security dei servizi web n Protezione del server web.

Protezione del server WEBProtezione del server WEB

PROCESSO ASCOLTATORE

PROCESSO ESECUTORE

HTTP

HTML

UID = superuser(massimi privilegi)

UID = user http(minimi privilegi)

PORT < 1024

PORT > 1024

Page 14: Sicurezza di Server WEB e firma di componenti. Overview n Analisi dei tipi di attacco n Aspetti di security dei servizi web n Protezione del server web.

Protezione del file system del server– Agli utenti connessi al server web devono essere

concessi privilegi minimi (read per le pagine html, execute per gli script o applicativi)

– Ai WEB administrator sono invece concessi anche i privilegi di modifica sulle pagine html e sui file di configurazione (write)

– E’ buona norma impedire agli utenti la visualizzazione e la navigazione delle cartelle contenenti pagine html, script e applicativi. Non conoscere la versione e le informazioni degli script presenti sul server, impedisce lo sfruttamento dei loro possibili BUG a scopo fraudolento

Protezione del server WEBProtezione del server WEB

Page 15: Sicurezza di Server WEB e firma di componenti. Overview n Analisi dei tipi di attacco n Aspetti di security dei servizi web n Protezione del server web.

Protezione del server WEBProtezione del server WEB Confinamento dei singoli servizi

– E’ consigliata l’adozione di un server da dedicare esclusivamente a server WEB, spostando ogni altro servizio o applicativo su altri elaboratori

– Nel caso ciò non sia possibile e servizi diversi utilizzino il medesimo file system, è buona prassi adottare una politica di security volta a gestire separatamente gli account di ciascun servizio limitandosi a fornire ai singoli utenti i soli privilegi strettamente necessari

– Per i server WEB è consigliabile tenere separati i direttori contenenti rispettivamente le pagine html e gli script (diritti di esecuzione limitati a questo direttorio)

Page 16: Sicurezza di Server WEB e firma di componenti. Overview n Analisi dei tipi di attacco n Aspetti di security dei servizi web n Protezione del server web.

Protezione del server WEBProtezione del server WEB

Script attivati con minimo privilegio– Devono essere attivati con gli stretti privilegi

necessari a compiere la loro funzione Auditing del server ad un fine livello di

granularità– Si devono attivare tutte le forme di auditing

possibili e tenere sotto costante monitoraggio i vari file di LOG

– Si devono applicare al server tutti gli aggiornamenti e le patchs che si rendano necessari

Page 17: Sicurezza di Server WEB e firma di componenti. Overview n Analisi dei tipi di attacco n Aspetti di security dei servizi web n Protezione del server web.

CrittografiaSERVERWEB

Browser WEB

Protezione del canale di comunicazioneProtezione del canale di comunicazione

si protegge il flusso dati tra server WEB e browser mediante:– l'instaurazione di un canale crittografico:

• utilizzo di SSL• utilizzo di moduli crittografici ad hoc lato client e server

– facendo della crittografia a livello d’applicazione• utilizzo di S-HTTP (oggi non particolarmente utilizzato)

che estende l’HTML base con TAG specifici

HTTP

Page 18: Sicurezza di Server WEB e firma di componenti. Overview n Analisi dei tipi di attacco n Aspetti di security dei servizi web n Protezione del server web.

SSL (Secure Socket Layer): protocollo per la crittografia di canale (realizzato da Netscape)– SSL 2.0 (autent. Server)

– SSL 3.0 (autent. Server + Client)

– garantisce autenticazione, integrità e confidenzialità

– Instaura un canale crittografico sicuro tra il layer di trasporto e quello applicativo

– Supporta i protocolli: http, nntp, smtp,ftp, telnet,...

Nell’utilizzo di http sicuro si attiva sulla porta TCP/443 e gli è stata dedicata la URL https://……

Utilizza algoritmi a chiave pubblica per lo scambio delle chiavi di sessione (RSA, Diffie Hellman, Fortezza-KEA)

SSLSSL

Page 19: Sicurezza di Server WEB e firma di componenti. Overview n Analisi dei tipi di attacco n Aspetti di security dei servizi web n Protezione del server web.

SSLSSL Utilizza algoritmi simmetrici per

instaurare il canale crittografico (RC2, RC4, DES, 3DES, IDEA)

Utilizza chiavi simmetriche da 128 bit (Stati Uniti e Canada) o da 40 bit (altri paesi) e chiavi pubbliche da 512, 1024, 2048, 4096 bit

La versione 2.0 utilizza certificati X.509 v1, mentre la 3.0 certificati X.509 v3

Negoziazione dei protocolli crittografici e del tipo di chiave

Page 20: Sicurezza di Server WEB e firma di componenti. Overview n Analisi dei tipi di attacco n Aspetti di security dei servizi web n Protezione del server web.

SSLSSL

SERVERWEB

Browser WEB

https://www.securesite… (1)

(2) Server Certificate

Client Certificate (3)

(4) Attivazione sicurezza

Canale SSL

HTTP

Page 21: Sicurezza di Server WEB e firma di componenti. Overview n Analisi dei tipi di attacco n Aspetti di security dei servizi web n Protezione del server web.

Certificato a chiave pubblicaCertificato a chiave pubblica

Che cos’è? – Una struttura dati per legare in modo sicuro una

chiave pubblica ad alcuni attributi

Caratteristiche:– tipicamente lega chiave a persona– firmato in modo elettronico dall’emettitore:

l’autorità di certificazione (CA)– con scadenza temporale– revocabile sia dall’utente che dall’emettitore

Page 22: Sicurezza di Server WEB e firma di componenti. Overview n Analisi dei tipi di attacco n Aspetti di security dei servizi web n Protezione del server web.

Esempio di certificatoEsempio di certificato

Campi: Esempio:• version 1• serial number 1430• signature algorithm RSA with MD5, 1024• issuer C=IT, O=PoliMi• validity 1/1/2000 - 31/12/2000• subject C=IT, O=PoliMi

CN=MariagraziaFugini•subjectpubickeyinfo RSA, 1024, xxxx…xxx•digital signature yy…..yyy

Campi: Esempio:• version 1• serial number 1430• signature algorithm RSA with MD5, 1024• issuer C=IT, O=PoliMi• validity 1/1/2000 - 31/12/2000• subject C=IT, O=PoliMi

CN=MariagraziaFugini•subjectpubickeyinfo RSA, 1024, xxxx…xxx•digital signature yy…..yyy

Page 23: Sicurezza di Server WEB e firma di componenti. Overview n Analisi dei tipi di attacco n Aspetti di security dei servizi web n Protezione del server web.

Infrastruttura pubblica per la Infrastruttura pubblica per la certificazione di chiavicertificazione di chiavi

• Non c’è ancora una vera PKI (Public Key Infrastructure)• Lotta accanita tra vari standard

– X.509v1 (ISO)– X.509v3 (ISO + IETF)– PKCS (RSA, in parte compatibile con X.509v3)

Page 24: Sicurezza di Server WEB e firma di componenti. Overview n Analisi dei tipi di attacco n Aspetti di security dei servizi web n Protezione del server web.

Funzionamento di una PKIFunzionamento di una PKI

Come verificare che un certificato a chiave pubblica (firmato da Ca1) sia autentico?

….occorre il certificato della chiave di CA1 (che sarà firmato da CA1)

… e così via … fino a raggiungere la CA di root

occorre un’infrastruttura (gerarchia?) di certificazione e distribuzione

Page 25: Sicurezza di Server WEB e firma di componenti. Overview n Analisi dei tipi di attacco n Aspetti di security dei servizi web n Protezione del server web.

Revoca dei certificatiRevoca dei certificati Un certificato può essere revocato prima della

sua scadenza naturale– dal soggetto

– dall’emettitore un certificato revocato viene inserito in una

CRL (Certification Revocation List) quando si riceve un messaggio si deve

verificare che il certificato non sia incluso nella CRL dell’emettitore

le CRL sono mantenute dagli emettitori dei certificati

Page 26: Sicurezza di Server WEB e firma di componenti. Overview n Analisi dei tipi di attacco n Aspetti di security dei servizi web n Protezione del server web.

Dove si utilizzano le chiavi Dove si utilizzano le chiavi pubbliche e i certificati?pubbliche e i certificati?

Scambio di messaggi di E-mail (PEM, PGP, S/MIME)

Applicazioni proprietarie (per controllo remoto, per realizzare moduli di sicurezza)

Per apparecchiature hardware (router, HW di rete)

Per applicazioni di e-commerce Per realizzare siti WEB sicuri

Page 27: Sicurezza di Server WEB e firma di componenti. Overview n Analisi dei tipi di attacco n Aspetti di security dei servizi web n Protezione del server web.

Active XActive X Nome commerciale di un insieme di tecnologie e

servizi per lo sviluppo di applicazioni basate su componenti riutilizzabili

Fondata sul modello COM (Component Object Model) di Microsoft e sue estensioni (DCOM)

Permette lo sviluppo di componenti client, server e di middleware in un’ottica di programmazione in ambiente distribuito

Oggetti ActiveX:• applicazioni (*.exe) • servizi sw a caricamento dinamico (*.dll)• componenti sw (*.ocx e prima *.vbx)• applicazioni documento (internamente a IE *.exe, *.dll)

COMObject

Page 28: Sicurezza di Server WEB e firma di componenti. Overview n Analisi dei tipi di attacco n Aspetti di security dei servizi web n Protezione del server web.

COM & DCOMCOM & DCOM

ServerServerClientClient

CO

MC

OM

Remote object onRemote object onany server any server

Object runningObject runningon clienton client

Object runningObject runningon clienton client

COM

Page 29: Sicurezza di Server WEB e firma di componenti. Overview n Analisi dei tipi di attacco n Aspetti di security dei servizi web n Protezione del server web.

COM & DCOMCOM & DCOM

ComponentComponent

InprocessInprocess

ClientClient

LocalLocal

LPCLPC

COMCOMrun timerun time

COMCOMrun timerun time

SecuritySecurityproviderprovider RPCRPC SecuritySecurity

providerprovider RPCRPC

RemoteRemote

Protocol stackProtocol stack Protocol stackProtocol stack

DCOM network-DCOM network-protocolprotocol

Page 30: Sicurezza di Server WEB e firma di componenti. Overview n Analisi dei tipi di attacco n Aspetti di security dei servizi web n Protezione del server web.

Controlli ActiveXControlli ActiveX Sono oggetti COM utilizzati come:

– componenti run-time ( forniscono classi di oggetti e funzioni)

– interfaccia GUI (da utilizzare in applicativi e web)

Per il programmatore sono oggetti con:– eventi– proprietà– metodi

Possono richiamare API di sistema Si utilizzano per realizzare pagine WEB attive

(scaricati tramite browser) Utilizzati da altri componenti o pilotati da

script (VB Script e Jscript) Fuzionano con IE 3.X e 4.X e Netscape

munito di appositi Plug-in

Page 31: Sicurezza di Server WEB e firma di componenti. Overview n Analisi dei tipi di attacco n Aspetti di security dei servizi web n Protezione del server web.

Utilizzo nei browserUtilizzo nei browser

JavaApplet

JavaApplet

JavaScript™JavaScript™

VBScriptVBScript ActiveXControl

ActiveXControl

HTMLDocument

HTMLDocument

Non-HTMLDocument

Non-HTMLDocument

Page 32: Sicurezza di Server WEB e firma di componenti. Overview n Analisi dei tipi di attacco n Aspetti di security dei servizi web n Protezione del server web.

Security in IExplorerSecurity in IExplorer I controlli activeX non hanno un modello di

sicurezza intrinseco (Java), ma vengono presi “a scatola chiusa”

Solo le credenziali che questi portano con sé (certificati e firma elettronica) vengono valutate per decidere se accettare o no il componente

L’utente può definire le proprie politiche di sicurezza (scegliere quali componenti attivare e scaricare a diversi livelli di granularità)

E’ sempre l’utente l’ultimo arbitro della propria security

Page 33: Sicurezza di Server WEB e firma di componenti. Overview n Analisi dei tipi di attacco n Aspetti di security dei servizi web n Protezione del server web.

Authenticode (TM)Authenticode (TM) Codice wrappato in un

file *.CAB e firmato elettronicamente

Politiche diverse per controlli ActiveX e Applet Java

Utilizzo di certificati secondo lo standard di certificazione X.509

Identificazione dell’autore Validazione dell’integrità

del codice Accountability del

software scaricato

Page 34: Sicurezza di Server WEB e firma di componenti. Overview n Analisi dei tipi di attacco n Aspetti di security dei servizi web n Protezione del server web.

Zone di sicurezzaZone di sicurezza Suddivisione dello spazio

degli indirizzi in 4 zone di sicurezza– Area Internet– Area Intranet– Area siti attendibili– Area siti con restrizioni

A ciascuna zona si associa un livello di sicurezza cui corrisponde un profilo di security

Sono 3 i livelli di sicurezza con policy predefinite

Un livello è personalizzabile dall’utente

Page 35: Sicurezza di Server WEB e firma di componenti. Overview n Analisi dei tipi di attacco n Aspetti di security dei servizi web n Protezione del server web.

Livelli di sicurezzaLivelli di sicurezza Per il livello di sicurezza

definito dall’utente è possibile definire una propria policy di security (IE 4.X)

Su ogni componente (sia controllo activeX che applet Java) è possibile associare con appositi tool un livello di security predefinito (High, Medium, Low)

Solo sulle applet Java è possibile associare un profilo di security personalizzato includendo richieste d’accesso esplicite (I/O, accesso a funzioni di S.O, r/w HD, etc.)

Page 36: Sicurezza di Server WEB e firma di componenti. Overview n Analisi dei tipi di attacco n Aspetti di security dei servizi web n Protezione del server web.

Livelli di sicurezza sul browserLivelli di sicurezza sul browser

HIGH

Applet - Livello di massima sicurezzaimposto dalla SANDBOXActiveX - A nessun controllo saràconsentito di funzionare

MEDIUM

Applet - Livello di massima sicurezzaimposto dalla SANDBOX + 1 MB discratch spaceActiveX - All'utente viene richiesto seaccettare il controllo

LOW

Applet - Nessun limite imposto dallaSANDBOX. Tutto è concessoActiveX - All'utente viene richiesto seaccettare il controllo

Page 37: Sicurezza di Server WEB e firma di componenti. Overview n Analisi dei tipi di attacco n Aspetti di security dei servizi web n Protezione del server web.

Livelli di sicurezza sul Livelli di sicurezza sul componente firmatocomponente firmato

HIGHNon si richiedono permessiparticolari. Con le applet si operaall'interno della SANDBOX

MEDIUMCome il livello HIGH, ma con lapossibilità di operazioni di I/O nellazona di scratch (1MB)

LOWRichiesta di permessi d'accessoparticolari. Le applet richiedonol'allentamento della SANDBOX

Page 38: Sicurezza di Server WEB e firma di componenti. Overview n Analisi dei tipi di attacco n Aspetti di security dei servizi web n Protezione del server web.

Procedura seguita per decidere se Procedura seguita per decidere se accettare un controllo ActiveXaccettare un controllo ActiveX

Si identifica la zona di sicurezza a cui appartiene il server da dove il componente è scaricato (in base all’indirizzo IP)

Si utilizza il livello di security definito per tale zona Nel caso dei 3 livelli predefiniti (High, Medium, Low) il

comportamento è quello dettagliato in tabella:

File CAB firmato con questo livelloHIGH MEDIUM LOW

HIGH Funziona inHigh

Query (Sì = Funz. in Medium) Query (Sì = Funz. in Low)

ZoneLevel

MEDIUM Funziona inHigh

Funziona in Medium Query (Sì = Funz. in Low)

LOW Funziona inHigh

Funziona in Medium Funziona in Low

Page 39: Sicurezza di Server WEB e firma di componenti. Overview n Analisi dei tipi di attacco n Aspetti di security dei servizi web n Protezione del server web.

Procedura seguita per decidere se Procedura seguita per decidere se accettare un controllo ActiveXaccettare un controllo ActiveX

Nel caso del livello di sicurezza personalizzato, l’utente stabilisce la propria politica di security indipendentemente dal livello di security associato al componente

Per ogni tipo di componente da scaricare si può impostare il browser ad agire secondo tre diverse modalità:– ATTIVA: si accetta il componente senza nessun messaggio di

warning all’utente;– DISATTIVA: si rifiuta il componente (che perciò non verrà

eseguito) senza alcun messaggio di warning all’utente;– RICHIEDI: all’utente è mostrato un messaggio di warning con

la richiesta di decidere se accettare o no il componente.

Page 40: Sicurezza di Server WEB e firma di componenti. Overview n Analisi dei tipi di attacco n Aspetti di security dei servizi web n Protezione del server web.

Procedura seguita per decidere se Procedura seguita per decidere se accettare un’applet Javaaccettare un’applet Java

Si opera analogamente ai controlli ActiveX per i livelli di security High, Medium e Low.

Se si usa un profilo di security personalizzato, il profilo di security impiegato nella firma dell’applet è confrontato con quello impostato nel browser. In base al confronto, il browser decide automaticamente senza l’intervento dell’utente quali permessi concedere e quali negare.

All’utente compare comunque allo scaricamento anche un messaggio di warning con elencati i privilegi richiesti dall’applet.

Page 41: Sicurezza di Server WEB e firma di componenti. Overview n Analisi dei tipi di attacco n Aspetti di security dei servizi web n Protezione del server web.

Repository dei certificati di Repository dei certificati di IExplorerIExplorer

I certificati di autori ritenuti attendibili sono inseriti in un repository

I certificati per la firma del software sono rilasciati da apposite autorità di certificazione

Page 42: Sicurezza di Server WEB e firma di componenti. Overview n Analisi dei tipi di attacco n Aspetti di security dei servizi web n Protezione del server web.

I contro di ActiveXI contro di ActiveX Non si è assicurati sui bugs e sul codice

malizioso contenuto nei controlli scaricati - Nessuna verifica del codice

I controlli possono chiamare API di sistema - Grande rischio

Possono contenere cavalli di troia o possono instaurare back-door

Problema di IE: assegnazione dei siti alle zone di security in base al loro indirizzo (address spoofing)

Page 43: Sicurezza di Server WEB e firma di componenti. Overview n Analisi dei tipi di attacco n Aspetti di security dei servizi web n Protezione del server web.

I contro di ActiveXI contro di ActiveX Incapsulamento del codice (controlli

black-box)– non si può testare la bontà del controllo

Possibilità per controlli ostili di interferire con applicazioni server (COM/DCOM) quali gestori di transazioni o business critical

Si è costretti a firmare il software per utilizzarlo in IE

Page 44: Sicurezza di Server WEB e firma di componenti. Overview n Analisi dei tipi di attacco n Aspetti di security dei servizi web n Protezione del server web.

Firma del codiceFirma del codice

Si aggiungono al codice Java una serie di istruzioni per accedere alle Java Capabilities API di Netscape

Le Java Capabilities API permettono di definire:– chi è abilitato a svolgere una data azione (identificato dalla

firma elettronica apposta in seguito) - CLASS PRINCIPAL– con che privilegi - CLASS PRIVILEGE– su quali risorse del sistema - CLASS TARGET

Si wrappa poi il codice in un file *.JAR e poi lo si firma con degli appositi tool (bisogna possedere: una chiave privata e la rispettiva chiave pubblica con il certificato della CA che l’ha validata)

l’applet (possono essere più d’una) è ora pronta per essere scaricata

Page 45: Sicurezza di Server WEB e firma di componenti. Overview n Analisi dei tipi di attacco n Aspetti di security dei servizi web n Protezione del server web.

JavaJava Java: il linguaggio di programmazione di Sun

– portabilità grazie alla codifica bytecode e VM per ogni piattaforma

– linguaggio object -oriented puro– adatto all’implementazione di applicazioni di internetworking– sviluppo di Applicazioni o Applet (applicazioni che si scaricano

da un server tramite la rete e si eseguono in locale)

JDK 1.1: è il core implementato nei browser– oggi implementato in Netscape 4.04 (Symantec) e IExplorer

4.01 (implementazione proprietaria secondo le specifiche SUN)

– dalla versione 1.1.5 del JDK è stato inglobato il JIT Symantec– introduzione dei JavaBeans e API per la sicurezza (controllo

degli accessi e crittografia)

JDK 1.2 appena rilasciato

Page 46: Sicurezza di Server WEB e firma di componenti. Overview n Analisi dei tipi di attacco n Aspetti di security dei servizi web n Protezione del server web.

Modello di sicurezza JavaModello di sicurezza Java Applicazioni Java: nessuna restrizione Applet Java: adottano il modello

chiamato SANDBOX che prevede:– controllo del bytecode Java (Bytecode verifier)

contenuto nei file *.class– controllo delle classi Java caricate in memoria

(Class Loader)– controllo della correttezza dei metodi secondo un

set di regole (Security Manager)

Un’applet deve passare i 3 check (tutti) per essere eseguita dal browser

Page 47: Sicurezza di Server WEB e firma di componenti. Overview n Analisi dei tipi di attacco n Aspetti di security dei servizi web n Protezione del server web.

SandboxSandbox<APPLET <APPLET

CODE=DBApplet.CODE=DBApplet.class … class …

/APPLET>/APPLET>

Page.htmlPage.html

Server WEB

JVM

Java Virtual Machine

Internet

1

Bytecode

Verifier

2Class

Loader

3

DBApplet.classDBApplet.class

Name space 4

Security

Manager5 6

Page 48: Sicurezza di Server WEB e firma di componenti. Overview n Analisi dei tipi di attacco n Aspetti di security dei servizi web n Protezione del server web.

Bytecode verifierBytecode verifier Verifica il bytecode alla ricerca di

comportamenti illeciti Viene controllato il formato di ogni porzione di

codice Utilizzo di un dimostratore di teoremi che:

– controlla gli oggetti istanziati– verifica l’incremento dei puntatori– verifica restrizioni d’accesso

Il bytecode ha una semantica più ricca di Java: la si può sfruttare per operazioni non ammesse dal linguaggio (minaccia)

Page 49: Sicurezza di Server WEB e firma di componenti. Overview n Analisi dei tipi di attacco n Aspetti di security dei servizi web n Protezione del server web.

Class LoaderClass Loader Determina se, in run-time, può essere

aggiunta una classe all’ambiente Java Le classi sono caricate in zone di memoria

separate (name space) Le classi fondamentali del CORE Java stanno

in name space a cui sono assegnati i massimi privilegi (classi protette da corruzioni esterne)

Tutte le classi inserite nella variabile d’ambiente CLASSPATHCLASSPATH acquisiscono massimi privilegi (non sono controllate)

Page 50: Sicurezza di Server WEB e firma di componenti. Overview n Analisi dei tipi di attacco n Aspetti di security dei servizi web n Protezione del server web.

Security ManagerSecurity Manager Controlla i metodi prima che siano eseguiti

basandosi su:– la classe di provenienza– un SET di regole predefinite

Controlla:– conflitti nell’assegnazione dello spazio dei nomi– chiamate ai processi del SO– l’accesso alle classi– operazioni di lettura/scrittura su HD– operazioni di I/O su socket

Se una condizione viene violata è sollevata una Security ExceptionSecurity Exception

Ogni browser implementa una propria versione

Page 51: Sicurezza di Server WEB e firma di componenti. Overview n Analisi dei tipi di attacco n Aspetti di security dei servizi web n Protezione del server web.

Evoluzione del modello Evoluzione del modello di sicurezza Javadi sicurezza Java

Sandbox del JDK 1.02: modello valido (controllo e validazione codice) ma rigido

A partire dal JDK 1.1 allentamento delle restrizioni imposte dalla Sandbox per Applet con firma digitale

JDK futuri: ancora più flessibilità per Applet e Applicazioni in base a firma digitale, provenienza, tipo di azione svolta dal codice

Page 52: Sicurezza di Server WEB e firma di componenti. Overview n Analisi dei tipi di attacco n Aspetti di security dei servizi web n Protezione del server web.

JDK 1.02 JDK 1.1 JDK futuriApplet Applicaz. Applet Applicaz. Applet Applicaz.

Lettura/scritturasu disco locale

no sì opzionale sì selezionabile selezionabile

Accesso aqualunque URL

no sì opzionale sì selezionabile selezionabile

Chiamata dicodice nativo

no sì opzionale sì selezionabile selezionabile

Firma del codice no no sì no sì sì

Evoluzione del modello Evoluzione del modello di sicurezza Javadi sicurezza Java

Opzionale: l’utente può scegliere da browser quali restrizioni della Sandbox allentare se l’applet è firmata

Selezionabile: modello per assegnare privilegi ad applicazioni e applet in modo più flessibile

Page 53: Sicurezza di Server WEB e firma di componenti. Overview n Analisi dei tipi di attacco n Aspetti di security dei servizi web n Protezione del server web.

JDK 1.2 Security OverviewJDK 1.2 Security Overview