Sicurezza

Sviluppo delle applicazioni Web, gli errori che costano caro

L’obiettivo è porre un freno alle principali vulnerabilità e minacce relative alle applicazioni Web, in modo che gli sviluppatori possano guardare oltre il loro lavoro e iniziare a pensare a come il loro operato influenza la vita futura dell’applicazione

Pubblicato il 05 Nov 2012

applicazione-150306103933

Gli sviluppatori hanno bisogno di lavorare alla creazione di progetti forti per le applicazioni Web, ripensando le loro pratiche di codifica e i processi in atto per correggere i bug. L’opinione è di Mike Shema, direttore ingegneria presso la californiana Qualys.

Se un’applicazione Web ha difetti di progettazione, che finiscono per diventare punti deboli del prodotto finito, sostiene Shema, tali lacune sono facilmente sfruttabili dai pirati informatici.

“Ci sono moltissimi sviluppatori che non sono a conoscenza delle problematiche di sicurezza connesse allo sviluppo Web o che non si rendono conto che stanno ripetendo gli errori del passato”, mette in guardia. Shema affronta questi problemi nel suo nuovo libro, dal titolo “Web Apps Hacking”, pubblicato il mese scorso.

L’esperto sostiene che l’apprendimento relativo ai problemi di progettazione, spesso forieri di vulnerabilità, aiuta gli sviluppatori e i team di sicurezza a evitare il ripetersi di errori in futuro. “L’obiettivo è in realtà porre un freno alle principali vulnerabilità e minacce relative alle applicazioni Web, in modo che gli sviluppatori possano guardare oltre il loro lavoro e iniziare a pensare a come il loro operato influenza la vita futura dell’applicazione”.

Shema punta il dito, in particolare, sulla “string concatenation”, una pratica comune di codifica che consiste nel collegare insieme elementi separati side-by-side per risparmiare spazio, che l’esperto definisce come “altamente pericolosa”, invitando gli sviluppatori a trovare nuovi metodi di codifica. “Molte volte c’è un modo migliore per costruire il codice, sfruttano le istruzioni preparate e SQL, così come a volte è necessario trovare nuove modalità, tipo definire uno stile di programmazione che richiede o proibisce determinate funzioni e utilizzare le style checkers per cercare di scovare gli errori”, suggerisce.

Nel fissare i bug, gli sviluppatori dovrebbero cercare pattern o modelli di utilizzo simili in altre parti del codice invece di “sistemare” la pagina in cui il bug è stato trovato. Affrontare un problema fondamentale rivelato da un bug consente di evitare che gli errori si ripetano. Molte minacce legate ai difetti di progettazione, infatti, sono le stesse perpetuate da addirittura 15 anni, mette in guardia Shema.

Due delle minacce più invasive sono il Cross-Site Scripting (XSS) e l’SQL Injection (SQLI). Questi attacchi continuano a dominare la scena delle minacce alle applicazioni Web. Nel WhiteHat Security Website Statistics Report, pubblicato di recente, l’XSS viene indicato come il tipo di attacco più diffuso, con una probabilità del 55% di sperimentare almeno un problema di vulnerabilità su un sito Web.

Il libro “Web Apps Hacking” fornisce anche suggerimenti utili sulle contromisure che gli sviluppatori possono utilizzare per evitare che il problema si ripeta.

E in merito a HTML5, qual è l’opinione dell’esperto? Anche se alcuni esperti di sicurezza ritengono che HTML5 sia il terreno sul quale si giocherà, in futuro, la nuova battaglia sulle minacce relative alle applicazioni Web, Shema non concorda.

“Non è assolutamente una responsabilità esclusiva di HTML5. Un hacker può utilizzare il Cross-Site Scripting su HTML5 perché è possibile avere accesso con estrema facilità a un exploit kit e i payload sono interessanti. È altrettanto vero che le contromisure di HTML5 non sono ancora a conoscenza di tutti”. Tali contromisure comprendono il Cross-Origin Resource Sharing*, che secondo Shema è un modo efficace per impostare un clima di fiducia tra i domini per la condivisione di contenuti; le policy di sicurezza dei contenuti e le opzioni di intestazione x-frame, che impediscono il clickjacking.

*Tecnologia relativa ai browser Web che definisce le modalità attraverso le quali un server Web permette l’accesso alle proprie risorse da parte di diversi domini attraverso una pagina Web.

Valuta la qualità di questo articolo

La tua opinione è importante per noi!

Articoli correlati