Sicurezza Applicazioni

Sicurezza Applicazioni

La Sicurezza delle Applicazioni Web è una branchia della Sicurezza Informatica. Con il crescere di Internet e del Web in particolare, la sua importanza ha avuto un enorme accelerazione, diventando in assoluto la branchia più importante di tutta la Sicurezza Informatica.

Basti pensare a quante informazioni transitano sul Web e quanto sia necessario proteggerle. GoogleAmazonFacebook, per citare solo alcuni dei grandi colossi Web, necessitano di una enorme attenzione alla sicurezza dei loro siti Web. Ma senza andare lontano, le nostre banche on line, SPID, i siti degli ospedali e delle pubbliche amministrazioni con i dati sensibili dei cittadini e tanti altri.

Sicurezza Siti Web e Sicurezza Applicazioni Web

La cosa più interessante per capire l’importanza della Sicurezza delle Applicazioni Web è che non necesseriamente un’applicazione Web è un sito Web. La differenza è sottile ma molto importante:

«Un’applicazione Web è un’applicazione creata con le tecnologie Web (HTTP, HTML, Web Server, ecc.) ma non è necesseriamente esposta sul Web»

Per fare un esempio, esistono tantissime applicazioni Web che non sono siti Web. Mi vengono in mente molti sportelli bancari (il software usato dai dipendenti in banca, in cassa e nelle filiali in generale), i sistemi di ticketing, di prenotazione, di lavorazione pratiche nei Back Office. Esistono un’infinità di applicazioni Web che per l’appunto, non sono siti Web. E se ci pensate bene, molte app per smartphone non sono altro che applicazioni Web.

E tutti necessitano, chi più chi meno, di una robusta Sicurezza Informatica. Più precisamente, di una Sicurezza delle Applicazioni Web. Naturalmente, ciò che vale per la Sicurezza delle Applicazioni Web vale anche per la Sicurezza dei siti Web essendo questi un sottoinsieme dei primi.

Ha senso parlare di tutta la Sicurezza delle Applicazioni Web?

La Sicurezza delle Applicazioni Web è un argomento talmente vasto che effettivamente non ha senso trattarlo nella sua completezza. Mi spiego meglio: diciamo che l’argomento necessita di così tanta profondità e attenzione al dettaglio che non può essere affrontato da una sola figura professionale. E quindi per ogni suo aspetto, sono necessari approfondimenti specifici.

Componenti coinvolti nella Sicurezza delle Applicazioni Web

Spesso quando si parla di cybersecurity, non viene naturale pensare alla sicurezza delle applicazioni web, oltre a quella dell’infrastruttura di rete.
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:

  • Injection
  • Broken Authentication
  • Sensitive Data Exposure
  • XML External Entities (XXE)
  • Broken Access Control
  • Security Misconfiguration
  • Cross-Site Scripting (XSS)
  • Insecure Deserialization
  • Using Components with Known Vulnerabilities
  • 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:

  1. definizione dei requisiti per la sicurezza delle applicazioni;
  2. progettazione dell’architettura delle applicazioni in maniera sicura fin dall’inizio;
  3. costruzione di controlli di sicurezza standard e solidi;
  4. monitoraggio del ciclo di vita di sviluppo del software sicuro;
  5. 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.
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:

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.

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.

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.