I rischi

Molte delle risorse comunemente utilizzate possono contenere falle di sicurezza con il rischio che le nostre applicazioni ereditano delle problematiche. Per fare un esempio concreto, e volutamente datato, si potrebbe citare le versioni precedenti alla versione 1.6.3 di jQuery, la libreria più utilizzata, esse infatti sono affette da un falla che può portare ad un attacco XSS (Cross-site scripting).

Le principali problematiche riscontrate riguardano problemi relativi alla validazione, attacchi XSS, cross-site request forgery e session fixation; spesso però il problema dell'uso delle librerie javascript affette da vulnerabilità non ha avuto la dovuta attenzione.

Possibili soluzioni e buone pratiche

Una buona regola è identificare le librerie usate lato client, le relative versioni e le date di rilascio. Verificare la fonte da dove vengono reperite e se si tratta di releaser obsolete oppure che contengono vulnerabilità. Quest'ultimo passaggio potrebbe risultare complesso in quanto non esiste una database centralizzato delle vulnerabilità JavaScript ma diverse fonti eterogenee come l'Open Source Vulnerability Database (OSVDB) e il National Vulnerability Database (NVD).

Una seconda prassi potrebbe essere quella di utilizzare strumenti adeguati per la gestione delle dipendenze come bower o npm, quindi dichiarare le dipendenze in un file di configurazione esterno, ciò garantisce un approccio più rigoroso rispetto al copia-incolla nel proprio codice dei link delle CDN.

Conclusioni

Librerie popolari come jQuery, Bootstrap e Angular ci permettono oggi di creare siti Web altamente interattivi e gradevoli nell'aspetto, ma le vulnerabilità insite in alcune versioni di queste soluzioni aumentano la superficie di attacco. E' quindi molto importante assicurarsi di avere in azione sulle proprie applicazioni solo le versioni recenti o “patched” delle librerie in uso.

Per approfondimenti il paper completo

CommentaDi' la tua

Il tuo indirizzo email non sarà mostrato pubblicamente. I campi obbligatori sono contrassegnati da *