Injection, Broken Authentication ed XSS i principali rischi cyber

(di Alessandro Rugolo)
16/10/17

OWASP è uno standard per la produzione di applicazioni web sicure e se consideriamo che ormai quasi tutte le applicazioni sono web...

OWASP è anche un'organizzazione mondiale che ha lo scopo di migliorare la sicurezza del software (v. articolo).
Tra le iniziative di maggior successo vi è la OWASP Top Ten, un elenco dei dieci principali rischi cyber nello sviluppo di applicazioni.
Nel 2013 è stata pubblicata l'ultima lista ancora valida mentre la prossima dovrebbe essere rilasciata a novembre 2017.
A inizio anno è iniziato il processo per aggiornare la lista ma il primo tentativo è andato a vuoto essendo stato bocciato dalla community.

La prima bozza della Top Ten del 2017, ancora in discussione indica i seguenti 10 maggiori rischi:

A1-Injection
A2-Broken Authentication and Session Management
A3-Cross-Site Scripting (XSS)
A4-Broken Access Control
A5-Security Misconfiguration
A6-Sensitive Data Exposure
A7-Insufficient Attack Protection
A8-Cross-Site Request Forgery (CSRF)
A9-Using Components with Known Vulnerabilities
A10-Underprotected APIs.

Un elenco non certo semplice da capire per chi non abbia approfondite conoscenze in campo di sicurezza informatica.
Proviamo quindi ad approfondire il significato di questi termini con Walter Ambu (foto), fondatore di Entando, una start up che fa uso della metodologia OWASP per lo sviluppo sicuro di software.

Ingegner Ambu, la sua società, la Entando, sviluppa software sicuro… Può aiutarci a capire qualcosa di più sulla metodologia di sviluppo? Di che tipo di software vi occupate? A che tipo di clienti vi rivolgete? Quanto dedicate alla ricerca e sviluppo? E, soprattutto, ci aiuta a capire meglio quali sono i principali rischi inseriti nella OWASP Top Ten?

Entando è una piattaforma software Open Source che semplifica la realizzazione di applicazioni web e mobile di nuova generazione ossia le “Modern Applications”.
Cosa intendiamo?
Oggi le aziende e le pubbliche amministrazioni, soprattutto quelle più grandi impegnate nella corsa verso la digitalizzazione, hanno due problemi: la rapidità e l’armonizzazione.
Da un lato, devono accelerare i tempi di rilascio delle applicazioni, prima che un loro competitor lo faccia. Dall’altro, devono fare ordine in un portafoglio di applicazioni sempre più ampio, caratterizzato da interfacce tutte diverse e da user experience incoerenti che creano problemi a chi le usa. Entando, grazie a pattern UX/UI (User eXperience/User Interface), funge da "armonizzatore" della user experience e da “acceleratore”, grazie alle moderne tecniche di software development basate su containers, devops, CI/CD(Continuous Integration/Continuous Development), microservizi.
Va da sé che Entando deve avere per natura, in quanto azienda Open Source, una forte propensione naturale per l’innovazione e la ricerca. Il team è composto da ingegneri del software, specialisti IT e Phd, che - a proposito di “modernità”- lavorano anche in modalità smart working.
In quanto alla sicurezza, Entando sviluppa seguendo la metodologia OWASP...

Come mai la sua società ha adottato questa metodologia? Quali sono i vantaggi? È difficile applicarla alla produzione di software? Il personale svolge dei corsi? Collaborate con le Università?

Sviluppare Modern Applications per aziende e amministrazioni pubbliche significa dare garanzie di innovazione, qualità e sicurezza sul software prodotto. Per tale ragione Entando ha deciso di adottare le linee guida OWASP oltre a metodologie di controllo e verifica della qualità del codice.
Entando collabora attivamente con il Pattern Recognition and Applications Lab dell’Università degli studi di Cagliari (http://pralab.diee.unica.it) la cui divisione di sicurezza informatica è guidata dal prof. Giorgio Giacinto. In particolare ha fatto parte di un progetto chiamato sTATA (http://stata.diee.unica.it) che consiste nella creazione di un distretto con competenze specifiche e avanzate nell’ambito della sicurezza informatica, all’interno del quale possano svilupparsi idee, soluzioni, e prodotti innovativi in risposta ai rischi di attacco informatico ai quali cittadini e aziende sono oggigiorno esposti. Questo progetto ha previsto ovviamente diverse fasi tra cui quella di formazione del personale Entando coinvolto nella realizzazione della piattaforma.

Sappiamo che ci sono ancora delle discussioni in corso sulla Top Ten 2017 e che dovremo ancora attendere per conoscere quella ufficiale. Ma lasciamo queste sottigliezze ai cultori della materia e proviamo a ragionare come se la Top Ten fosse già stata rilasciata.
In cima, già nel 2013 e per ora anche nella bozza di proposta per il 2017, si trova la categoria conosciuta come “Injection” di cui riporto la definizione: “Injection flaws, such as SQL, OS, XXE, and LDAP injection occur when untrusted data is sent to an interpreter as part of a command or query. The attacker’s hostile data can trick the interpreter into executing unintended commands or accessing data without proper authorization”.

In parole povere, per i non esperti, ci può spiegare di che si tratta?

Per Injection si intende un vasta classe di attacchi che consentono ad un malintenzionato di passare ad un software dei dati in ingresso che ne alterano l’esecuzione prevista. Si tratta di uno degli attacchi più pericolosi per le applicazioni web. Il risultato può variare dalla perdita di dati fino ad arrivare al furto di dati sensibili come le carte di credito.
Tra le diverse tipologie di Injection, SQL Injection è quella più nota.
SQL Injection è una pratica di hacking che consiste nel colpire applicazioni web che si poggiano su database. A causa della vulnerabilità l’aggressore è in grado di operare sul database, leggendo, alterando, o cancellando in maniera non autorizzata i dati in esso presenti.

Tra i casi reali in cui è stato utilizzato un attacco di questa categoria vi è quello del 2009 condotto ai danni della Heartland Payment System. In quella occasione furono rubate le credenziali di 130 milioni di carte di credito e debito. Ma come si migliora la sicurezza di un sistema soggetto a questa vulnerabilità?

Occorre verificare la funzionalità dei controlli sui dati in ingresso, in modo che non sia possibile effettuare interrogazioni arbitrarie al database sfruttando una mancata o incorretta validazione dei dati ricevuti. Per essere ancora più chiari, se un form su un sito richiede l’inserimento di un userid, il software deve controllare che i dati inseriti dall’utente siano effettivamente del formato di un userid ed impedire che l’utente possa inviare dei dati differenti, magari una stringa che possa essere interpretata come un comando.

Grazie, ora credo sia più chiaro a tutti il significato di “Injection”.

Forse non tutti potranno comprendere a fondo i meccanismi alla base dell'attacco ma credo che la cosa più importante sia sensibilizzare le persone che l'uso di strumenti web può presentare dei rischi ma che esistono dei metodi per minimizzarli. Ingegner Ambu, la seconda della lista è Broken Authentication and Session Management.

Di che cosa si tratta?

In questo caso abbiamo a che fare con una vulnerabilità in cui un aggressore è in grado di manipolare i dati che tipicamente vengono memorizzati nel cosiddetto “session token”, ossia un identificativo univoco per l’utente che naviga nelle pagine web e che viene utilizzato per scambiare dati tra la parte client e quella server di un’applicazione web. I famosi cookie abilitano questo meccanismo. In questo caso un aggressore può addirittura assumere identità altrui, modificare password ed entrare nei sistemi. Immaginiamo, per esempio, i danni che un hacker può fare entrando nel nostro conto bancario!

Può svuotarci il conto! E magari ottenere informazioni sui conti correnti di persone con le quali abbiamo dei rapporti di lavoro. Potenzialmente ciò mette a rischio non solo noi ma anche persone e aziende con le quali abbiamo a che fare.
Ingegner Ambu, non voglio certo portarle via troppo tempo chiedendole di analizzare tutte e dieci le vulnerabilità della lista ma credo che almeno la terza meriti attenzione: Cross-Site Scripting (XSS),di che si tratta?

Il Cross-Site Scripting è una tecnica piuttosto comune per eseguire un furto di identità.
In pratica un’applicazione prende in carico dei dati ricevuti in ingresso, per esempio da un form, senza operare alcun controllo di validazione, da questo punto di vista assomiglia alla tecnica dell’injection.
Malintenzionati possono quindi iniettare attraverso il browser del codice script nocivo, esempio del codice javascript, in un qualunque form del sito web causando il furto di identità di qualunque persona o la modifica di porzioni del sito web addirittura costringendo l’utente a scaricare un malware.

Ingegner Ambu la ringrazio per il tempo dedicatoci. Approfitto ancora della sua presenza e competenza per ripetere che tutte queste tecniche d’attacco possono essere almeno in parte rese inoffensive utilizzando le best practices della metodologia OWASP. In pratica l’impiego della metodologia OWASP consente di prevenire buona parte degli attacchi più comuni e pericolosi.

Esatto, OWASP è una metodologia di tipo preventivo. La sua applicazione in ogni caso non va considerata come una panacea contro tutti i mali ma è sicuramente molto utile e merita di essere studiata approfonditamente da tutti coloro che in qualche modo si occupano di sviluppo software e di sicurezza informatica. A tal proposito il 20 ottobre prossimo presso l’auditorium della facoltà di Ingegneria e Architettura, in Piazza d’Armi a Cagliari, si terrà l'Italy OWASP Day 2017. Un evento interessantissimo sotto il profilo della sicurezza del software.
Tra gli ospiti sarà presente il vice presidente di Synopsys, Gary McGraw, autorità riconosciuta a livello mondiale nel campo della sicurezza informatica.
Noi di Entando saremo presenti e vi sarà la possibilità di approfondire i concetti appena esposti e molto altro. Vi aspettiamo!

Per approfondire:
- https://www.owasp.org/index.php/Italy_OWASP_Day_2017
- https://www.computerworld.com/article/2527185/security0/sql-injection-at...
- https://www.w3schools.com/sql/sql_injection.asp