Il Web 2.0 e l'innovazione nella PA

"La vita è quello che ti succede mentre sei impegnato in altri progetti” (J.L.)

Web 2.0 e la sicurezza delle applicazioni

leave a comment »

di Ettore Robustelli

applicazioni-sic-11Con il termine “Web 2.0” si intende genericamente l’evoluzione di Internet, ed in particolare del World Wide Web, dall’obsoleto “Web 1.0” statico, con i frameset e le estensioni proprietarie dell’HTML, monotematico e con le connessioni internet dial-up a 56K, nel quale l’utente era esclusivamente consumer dei servizi offerti, verso un mondo, “il Web 2.0 appunto”, che mette al centro la dimensione sociale della rete e che fa della condivisione dei contenuti un punto cardine, che prevede quindi applicazioni multicanale, con contenuti diversificati e un’elevata interazione tra l’utente e l’applicazione stessa. Un mondo nel quale l’utente diventa prosumer ovvero produttore e contemporaneamente consumatore dei contenuti offerti dalle applicazioni (ad es. blog, forum, chat, sistemi quali Wikipedia, Youtube, Facebook, Myspace, Gmail, WordPress ecc.).  >>>>>>>>>>>>>

applicazioni-sic-21

Il contesto nel quale si è avuta questa evoluzione è il seguente: la caduta delle compagnie Dot-Com, il successo di Google, la scomparsa di Napster ed il riaffermarsi di Apple con iTunes Store, il crollo del mercato delle ASP (Application Service Provider) e l’esplosione del paradigma Saas (software inteso come un servizio) nel quale il browser diventa il nuovo client a scapito del software shrink-wrapped, hanno segnato un punto di svolta per il web e come normalmente accade durante le crisi si sono create le condizioni per le quali una tecnologia nuova ed in crescita, ormai pronta per prendere il posto che le spetta, si sia definitivamente affermata. L’affermarsi del “Web 2.0” come standard de-facto e la conseguente diffusione delle nuove tecnologie (Ajax, Adobe Flex, le tecnologie mashup ecc) che rappresentano una parte sostanziale dello standard “Web 2.0”, hanno consentito alle aziende di migliorare i servizi offerti agli utenti.

 Queste mutate condizioni ambientali hanno fatto si che anche il mondo delle aziende si evolvesse, muovendosi alla ricerca di nuovi schemi di marketing che prevedono il coinvolgimento diretto del cliente nella vita aziendale; conseguentemente anche nella pubblica amministrazione è nata l’esigenza di adeguarsi ai nuovi standard creando nuovi modelli di relazione con il pubblico. Inoltre l’enorme mole di informazioni e di contenuti in suo possesso inizia a trovare dei nuovi canali di trasmissione e di fruizione da parte dei cittadini che hanno quindi la possibilità e la necessità di articolare in modo più personalizzato le informazioni relative al proprio ambito di interessi.

Ma come normalmente accade con ogni tecnologia nuova e/o emergente, le considerazioni inerenti la sicurezza, che dovrebbero essere alla base di ogni evoluzione tecnologica, sono generalmente messe da parte a favore del famoso “time-to-market” ovvero la fretta di arrivare sul mercato nel minor tempo possibile, spendendo il meno possibile per poter continuare ad essere competitivi; inoltre le nuove tecnologie spesso non sono esenti da problemi di programmazione e/o progettazione e nascondono bug che ne compromettono la sicurezza e la fruibilità (questa cosa non è vera solo per il “Web 2.0” ma, ad esempio, è vera anche per tutte le nuove tecnologie emergenti quali il VoIP, lo iSCSI storage, ecc). A complicare ulteriormente la questione c’è, come detto precedentemente, il fatto che la maggior parte delle applicazioni utilizzano sempre di più gli input forniti dall’utente rendendo sempre più complesso il controllo delle stesse; inoltre queste informazioni ormai non sono più informazioni elementari ma variano il loro formato ad es. da pagine HTML ad oggetti Flash complessi. Da ciò deriva che il Web 2.0, oltre a comprendere tutti i problemi di sicurezza del Web 1.0, ne aggiunge dei nuovi che sono evoluzioni di problemi esistenti oppure sono problemi specifici del Web 2.0. Ad esempio:

  • Il Cross-site scripting (XSS, l’inserimento di codice di scripting malevolo eseguito sul client), un attacco abbastanza diffuso nelle applicazioni Web 1.0, nel Web 2.0 si diffonde maggiormente grazie alla tecnologia AJAX che consente l’inserimento di attacchi XSS in stream Javascript, XML o JSON (JavaScript Object Notation).
  • Gli attacchi di injection (l’inserimento di codice malevolo eseguito sul server), sono ancora presenti nel Web 2.0 evolvendosi da SQL Injection ed LDAP Injection verso XPATH/XQUERY injection, XML Injection, JSON Injection.
  • Gli attacchi CSRF (Cross-site request forgery) continuano ad essere presenti ma ora possono essere bidirezionali (Javascript hijacking), questo anche a causa degli incoerenti limiti di sicurezza dell’API XMLHTTP, ed in particolare dell’XMLHTTPRequest pesantemente utilizzato da Ajax (es. Samy worm su MySpace.com, Cross-domain attacks, ecc.).
  • Un altro rischio del Web 2.0 è dato dal fatto che è molto più semplice scoprire ed enumerare i possibili target degli attacchi a causa del fatto che, ad esempio, utilizzando Ajax spesso vengono inviate al client una serie di informazioni relative al funzionamento dell’applicazione, generalmente in un file .js, che se utilizzate in maniera malevola rendono più agevole l’individuazione delle aree dell’applicazione attaccabili.
  • La manipolazione delle informazioni, che nel Web 1.0 era relativamente semplice intervenendo sui dati inviati attraverso le funzioni GET e POST e sui campi hidden delle pagine HTML, nel Web 2.0 risulta notevolmente più complessa anche se le aree attaccabili spesso sono maggiori.
  • Il paradigma Saas, le architetture SOA e la diffusione dei Web Service hanno un impatto significativo sulla sicurezza; infatti, a differenza delle applicazioni in-house che vengono esercite nei ced delle aziende e che, nel peggiore dei casi, consentono ad un utente interno di visualizzare informazioni non di sua competenza, i bug di sicurezza in applicazioni remote quali ad es. XSS potrebbero consentire l’accesso ad informazioni riservate a persone esterne all’azienda.

applicazioni-sic-3

Da questo elenco, che evidentemente potrebbe essere ancora lungo, risulta quindi chiaro che l’impatto del Web 2.0 sulla sicurezza delle applicazioni è notevole; le aziende, sia quelle pubbliche che quelle private, devono necessariamente capire che la sicurezza delle applicazioni non è un costo ma un valore aggiunto che viene fornito ai propri utenti e quindi devono fare uno sforzo per trovare soluzioni che consentano la realizzazione di applicazioni le quali garantiscano confidenzialità, integrità e disponibilità delle informazioni e che permettano l’imputabilità delle stesse (ovvero la possibilità di individuare l’autore di una operazione). E’ fondamentale quindi dotarsi di strumenti hardware e software che supportino le varie strutture aziendali nella gestione delle infrastrutture ma è ancora più fondamentale dotarsi di strumenti software e di competenze che intervengano a vari livelli supportando i vari team nella produzione delle applicazioni. L’esperienza fatta sul campo ci consente di dire che è necessario:

  • Diffondere in azienda la cultura della sicurezza sia attraverso iniziative di divulgazione (corsi e seminari) che assumendo un atteggiamento coerente ai processi definiti
  • Dotarsi di strumenti di analisi del codice sia white-box (revisione del codice) che black-box (test di penetrazione)
  • Creare un team, formato da persone che si occupano di sicurezza, che possibilmente abbiamo esperienze pregresse in materia, le cui competenze devono essere mantenute costantemente aggiornate, a cui affidare attività fondamentali quali:
    • La redazione di “Linee guida” per la realizzazione di applicazioni sicure da dare poi ai team che producono le applicazioni (documento da tenere costantemente aggiornato rispetto alle nuove vulnerabilità)
    • La redazione di una “Metodologia di test” che consenta di testare le applicazioni in maniera oggettiva con test black-box (documento da tenere costantemente aggiornato rispetto alle nuove vulnerabilità)
    • La redazione di un processo di messa in produzione delle applicazioni che definisca ruoli e responsabilità, requisiti e vincoli di sicurezza che le applicazioni devono rispettare per poter essere esercite
    • Il Supporto ai team che producono le applicazioni nella raccolta dei requisiti di sicurezza, nella progettazione e nel test delle applicazioni
    • Il test delle applicazioni sia in produzione che prima del passaggio in produzione

____________________________________________________

Annunci

Written by Pietro Monti

29 marzo 2009 a 10:31 PM

Pubblicato su applicazioni web, web 2.0

Tagged with

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger hanno fatto clic su Mi Piace per questo: