02.06.2013 Views

analisi e gestione della sicurezza di una complessa applicazione ...

analisi e gestione della sicurezza di una complessa applicazione ...

analisi e gestione della sicurezza di una complessa applicazione ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

6.3 Broken Access Control<br />

CAPITOLO VI - Gli attacchi e il progetto OWASP<br />

All’interno <strong>di</strong> applicazioni web multiutente, come lo è Talete, sono spesso presenti dei<br />

meccanismi <strong>di</strong> autorizzazione denominati controlli d’accesso. La corretta implementazione<br />

consente <strong>di</strong> associare ad ogni tipologia d’utenza un corrispettivo gruppo <strong>di</strong> appartenenza con<br />

ruoli, credenziali e privilegi <strong>di</strong>versi. La <strong>gestione</strong> delle autorizzazioni deve iniziare dalla<br />

formalizzazione <strong>di</strong> alcune policy che regolano che cosa è lecito per ogni <strong>di</strong>versa classe<br />

d’utenza; già durante la fase <strong>di</strong> design è importante considerare attentamente ogni singolo<br />

aspetto.<br />

Nella fase successiva, quella dell’implementazione, è bene evitare alcuni classici errori:<br />

• Parametri non controllati: le applicazioni usano le informazioni presenti nella<br />

richiesta HTTP per decidere come rispondere. Un attacco potrebbe avvenire<br />

mo<strong>di</strong>ficando <strong>una</strong> qualsiasi parte <strong>della</strong> richiesta HTTP, l’url, la querystring, gli headers, i<br />

cookies o i campi dei form.<br />

Per ovviare a questo tipo <strong>di</strong> attacchi è importante filtrare i dati in arrivo, ci sono tre<br />

politiche principali per il filtraggio:<br />

1. Accettare solo dati vali<strong>di</strong><br />

2. Rifiutare dati non vali<strong>di</strong><br />

3. Sanare i dati in arrivo<br />

La prima opzione è la più sicura, imposizioni <strong>di</strong> lunghezza e formato limitano molto le<br />

possibili manomissioni, al contrario un filtro che elimina alcuni caratteri speciali potrebbe<br />

essere facilmente oltrepassato con <strong>una</strong> qualche co<strong>di</strong>fica.<br />

Un altro importante regola è quella <strong>di</strong> non fidarsi mai <strong>di</strong> un controllo <strong>di</strong> vali<strong>di</strong>tà lato client,<br />

questi controlli sono utili da punto <strong>di</strong> vista delle performances e dell’usabilità, ma sono<br />

molto semplici da evitare.<br />

• File permission: molti server web utilizzano sistemi <strong>di</strong> controllo d’accesso forniti dal<br />

file system <strong>della</strong> piattaforma in uso. Anche se tutti i dati vengono conservati su server<br />

posizionati nel backend, ci sono sempre dei file conservati localmente sui web e<br />

application server che non devono essere accessibili da tutti (file <strong>di</strong> configurazione, file<br />

128

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!