La sicurezza delle applicazioni web: vulnerabilità ed i migliori tool di verifica

la sicurezza delle applicazioni web: vulnerabilità ed i migliori tool di verifica

Spesso quando si parla di cybersecurity, non viene naturale pensare alla sicurezza delle applicazioni web, oltre a quella dell’infrastruttura di rete.

A questo proposito, EC-Council, il più grande ente di certificazione tecnica per la sicurezza informatica del mondo, il 20 giugno scorso ha lanciato il nuovo corso CASE – Certified Application Security Engineer, e in quell’occasione ha annunciato che il 75% degli attacchi informatici riguarda le applicazioni web e che il tasso di questi crimini sta crescendo del 69%; in particolare sono le applicazioni Java che contengono almeno una vulnerabilità (si stima un 90%).

Le maggiori minacce ai linguaggi di programmazione hanno visto il coinvolgimento del Cross-site scripting (XSS) – circa il 40%, seguito da SQL injection (SQLi) al 24%, path traversal al 7%, local file inclusion (LFI) al 4% ed infine distributed denial of service (DDoS)) al 3%. Il modo migliore per agire di fronte alle vulnerabilità è la consapevolezza della possibilità che possano generarsi delle debolezze nel codice e la conseguente formazione che permetta di prevenire l’intrusione da parte degli hacker (ad esempio apprendere l’uso di specifici strumenti).

Perché Java?

Come anticipavamo, le applicazioni scritte con il linguaggio Java sono quelle più vulnerabili: ciò è dovuto all’ampio uso di librerie di terze parti, componenti con vulnerabilità note e la mancanza di protezione nativa contro alcuni attacchi che costituiscono tutti entry point sfruttabili per un attacco. Questo ha fatto sì che sorgessero delle professioni in ambito informatico specializzate sulla sicurezza del software, con lo scopo di rendere più sicure le applicazioni, indipendentemente dal fatto che si stiano creando nuovi programmi o si stiano aggiornando quelli vecchi.

Lo stesso discorso vale per il framework .Net: è aumentato di notorietà dopo il suo rilascio sotto licenza open source e grazie alle sue caratteristiche di interoperabilità, indipendenza dal linguaggio utilizzato, facilità di programmazione oltre ad una vasta scelta di librerie e componenti. Queste caratteristiche hanno fatto sì che diventasse una tra le prime scelte tra gli sviluppatori di applicazioni. Tuttavia, anche in questo caso, non vi è stata da subito la preoccupazione di scrivere un codice sicuro e corretto, senza considerare le eventuali lacune nello sviluppo dell’applicazione e nel processo di distribuzione.

Gli sviluppatori .Net come quelli Java apprendono spesso i concetti e le tecniche di sviluppo sicuro sul lavoro. Ciò è dovuto principalmente al fatto che l’istruzione di base sulla programmazione di solito non copre o enfatizza i problemi su questo ambito.

Le vulnerabilità delle Applicazioni Web

La Top 10 di OWASP (community open-source per la sicurezza delle applicazioni) nata come documento per fornire consapevolezza sull’IT security è ormai uno standard utilizzato da quasi tutte le organizzazioni, e si concentra sull’identificazione dei più gravi rischi per la sicurezza delle applicazioni Web; nella sua ultima versione sono presenti i seguenti rischi: 

  1. Injection
  2. Broken Authentication
  3. Sensitive Data Exposure
  4. XML External Entities (XXE)
  5. Broken Access Control
  6. Security Misconfiguration
  7. Cross-Site Scripting (XSS)
  8. Insecure Deserialization
  9. Using Components with Known Vulnerabilities
  10. Insufficient Logging e Monitoring

La Top 10 OWASP è un documento con un ampio consenso a livello mondiale, ma non tiene conto dell’impatto effettivo sull’attività della propria azienda; sarà l’azienda stessa che dovrà valutare i rischi per la sicurezza che derivano dalle applicazioni e dalle API.

Per aiutare le organizzazioni e gli sviluppatori a indirizzare e ridurre le minacce in modo economicamente sostenibile, OWASP ha prodotto numerose risorse gratuite e aperte che è possibile utilizzare per affrontare il tema della sicurezza delle applicazioni nella propria organizzazione. I seguenti sono soltanto alcuni dei temi che OWASP suggerisce di indirizzare per aiutare le imprese a produrre applicazioni e API web sicure:

  • definizione dei requisiti per la sicurezza delle applicazioni;
  • progettazione dell’architettura delle applicazioni in maniera sicura fin dall’inizio;
  • costruzione di controlli di sicurezza standard e solidi;
  • monitoraggio del ciclo di vita di sviluppo del software sicuro;
  • aggiornamento e formazione costante sulla sicurezza delle applicazioni.

Tra crescenti attacchi e requisiti normativi sempre più stringenti costruire il codice in modo sicuro e stabilire continui test di sicurezza delle applicazioni è importante e non più opzionale.

Per questo motivo le organizzazioni devono stabilire strategie e processi e devono possedere figure con capacità tecniche per proteggere le loro applicazioni e le API (OWASP stesso lo consiglia). Data la quantità impressionante di codice scritto nei software già in produzione, molte imprese stanno lottando per ottenere un controllo sull’enorme volume di vulnerabilità. Raggiungere la sicurezza delle applicazioni richiede che diversi soggetti di un’organizzazione lavorino insieme in modo efficiente; si tratta di un processo congiunto che coinvolge coloro che si occupano di sicurezza e audit, di sviluppo del software, business e gestione esecutiva. Inoltre è necessario che tutto il ciclo di vita dell’applicazione sia seguito da specialisti IT che si occupino della gestione di tutte le fasi del progetto.

Tool di scansione delle minacce

Uno dei programmi usati per questo tipo di test è il Web Application Security Scanner, che esegue la scansione di un’applicazione Web e identifica vulnerabilità di sicurezza sfruttabili come cross-site scripting (XSS), cross-site request forgery (CSRF), esecuzione di codice remoto (RCE) e molto altro. Lo scanner rileva gli entry point vulnerabili in un’applicazione Web interagendovi attraverso il front-end, e produce un report contenente i risultati della scansione. Il workflow di questi tool tipicamente è composto da 3 fasi:

  1. Scansione Web

Lo scanner interagisce con un’applicazione Web analizzando l’HTML all’interno della pagina alla ricerca di moduli e form, degli URL presenti e di altri entry point per eseguire dei test sui parametri presenti alla ricerca di vulnerabilità. La scansione viene eseguita con un singolo nome host o indirizzo IP e può estrarre alcuni collegamenti basati su JavaScript, nonché i collegamenti statici personalizzati.

  1. Link Discovery

Il tool esegue una scansione per individuare le pagine web presenti, che siano direttamente accessibili o meno. Vengono esaminati i collegamenti utilizzati per l’invio di moduli di accesso, i collegamenti richiesti come utente anonimo e i collegamenti richiesti come utente autenticato.

  1. Analisi dei dati

Analizzando i dati contenuti all’interno degli Header HTTP, gli elementi presenti nel codice HTML e altre risposte da un’applicazione Web è possibile individuare vulnerabilità, debolezze e altri elementi che indicano un potenziale entry point sfruttabile.

Un altro strumento è quello presentato quest’anno dall’azienda Barracuda Networks: il Web Application Firewall as a Service, che affianca le soluzioni già disponibili per installazioni on premise in versione Appliance e Virtual e nelle versioni cloud specifiche per Amazon Web Services e Microsoft Azure per proteggere in maniera più completa le proprie applicazioni web. 

Per aiutare gli sviluppatori è stato reso disponibile gratuitamente anche il Barracuda Vulnerability Remediation Service, che automatizza l’applicazione delle policy di sicurezza con la scansione on-demand o programmata e il processo di virtual patching delle vulnerabilità delle applicazioni Web, creando processi di workflow più agili, maggiore efficienza e un minore Total Cost of Ownership (TCO).

Inoltre è disponibile in abbonamento anche il modulo aggiuntivo Volumetric DDoS Protection, che esamina il traffico prima che arrivi all’applicazione Web, identificando schemi di DDOS e bloccandoli.

Conclusioni 

Tutte queste misure tecniche non vanno a sostituire i benefici che derivano da un’adeguata formazione riguardo le tematiche della sicurezza all’interno dell’azienda; la consapevolezza dei rischi IT da parte dei dipendenti dell’azienda è la misura più efficace per proteggersi da attacchi informatici e per disegnare e sviluppare applicazioni web sicure.Di conseguenza sorge la necessità di avere all’interno del proprio team di lavoro un security engineer per le applicazioni oltre a sviluppatori che comprendano la necessità di uno sviluppo sicuro.

EC-Council, come anticipavamo, ha introdotto un nuovo programma di certificazione della sicurezza delle applicazioni – Certified Application Security Engineer (C | ASE) per .NET e Linguaggi di programmazione Java. È stato progettato per garantire che le organizzazioni si concentrino nel ciclo di vita dello sviluppo software (SDLC), garantendo quindi che la sicurezza sia parte del lavoro quotidiano dei tester, degli sviluppatori e degli amministratori di rete. 

Infine la notizia positiva è che il periodo medio di detection tra l’intrusione e il rilevamento dell’intrusione stessa è sceso da 16 giorni nel 2016 a zero giorni nel 2017, il che significa che le aziende sono venute a conoscenza della maggior parte delle violazioni lo stesso giorno in cui sono avvenute, grazie all’introduzione di tecnologie di monitoring.

Conosci la vulnerabilità SQL Injection?
Scopri come un attaccante o un penetration tester professionista o un ethical hacker verifica la sicurezza di un’applicazione