Walter Ambu - CEO e fondatore di Entando |
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 (vedi articolo: Cyber
defence: programmare in sicurezza è la base di tutto).
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,
fondatore di Entando,
una start up che fa uso della metodologia OWASP per lo sviluppo
sicuro di software.
Entando - il team |
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.
Ingegnere, come mai
la sua società ha adottato questa metodologia? Quali sono i
vantaggi? E' 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”.
Ingegnere, 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!
Alessandro
RUGOLO
Per
approfondire:
- https://www.w3schools.com/sql/sql_injection.asp
Nessun commento:
Posta un commento