Al giorno d’oggi una parte rilevante della nostra vita è collegata all’utilizzo di internet. Riversiamo un fiume di informazioni confidenziali sui social network, utilizziamo i siti di e-commerce con le nostre carte di credito, gestiamo i nostri risparmi tramite l’home banking.
E’ evidente quindi come sia fondamentale poter operare in un ambiente internet sicuro dal punto di vista della gestione delle informazioni confidenziali.
Questa è stata la considerazione che ha fatto nascere in noi l’idea alla base del progetto di cui vi andremo a parlare in questo articolo. Il sito in questione si chiama Colobe, ed è stato realizzato da tre studenti di ingegneria che (colpiti da manie di onnipotenza) pensano di aver avuto un’idea che potrebbe rivoluzionare il settore della sicurezza web.
Con questo articolo speriamo di farvi incuriosire riguardo questa nuova idea, rendendovi partecipi nel frattempo delle difficoltà di creare una startup in un settore come l’informatica.
Innanzitutto l’idea di base è di fornire una protezione a tutti i siti web dagli attacchi Brute Force. In un sito come Lega Nerd sono sicuro che tutti sappiano che cosa sia un attacco Brute Force, ma comunque cercheremo di spiegarne rapidamente il funzionamento.
Cos’è un attacco brute force?
Come ben noto, per prendere il controllo di un account è sufficiente possedere l’username e la password di un utente.
Mentre l’username è facile da ottenere (in genere è la mail, o comunque un nickname facilmente ottenibile), la password è più sicura, ma questo non rende il sistema di login invulnerabile. Il metodo più semplice e facilmente gestibile su vasta scala per rubare un account è di tentare iterativamente tutte le combinazioni di caratteri possibili, utilizzando quindi il metodo chiamato Brute Force.
Questo tipo di attacco è quello più utilizzato perché, sebbene sia possibile sfruttare eventuali bug del sito, questi possono essere prevenuti, mentre un attacco Brute Force dopo una sufficiente quantità di tempo avrà sempre successo.
Questo genere di attacco non è solo una remota possibilità teorica che si studia nelle ore di informatica a scuola, ma ha delle ricadute pratiche. Infatti nell’Ottobre 2011 i servizi Sony Entertainment Network, PlayStation Network e Sony Online Entertainment, della Sony Corporation, sono stati oggetto di un pesante attacco di questo tipo. Sono state rubate ben 93’000 password con i relativi account e le carte di credito associate.
Da questo si può capire come questa sia una problematica reale, che necessita di una soluzione specifica, che noi pensiamo di aver trovato.
Come si possono fermare questi attacchi?
Colobe si basa sulle API (Application Programming Interface) che vengono fornite ai propri utenti registrati.
Queste API vengono usate per verificare se un dato client, che sta cercando di effettuare il login su un loro sito, è affidabile o meno. Se il client viene segnalato come una minaccia il sito blocca ogni tentativo di login proveniente da quel client, impedendo un eventuale attacco.
Colobe sfrutta la raccolta di dati nel corso del tempo, in piena filosofia Big-Data, raccogliendo e processando le informazioni che accumula ad ogni tentativo di login. In questo modo impara in tempo reale e riesce ad identificare un attacco Brute Force ad un account bloccandolo molto prima che riesca a rubare la password.
Ogni tentato attacco ad un account su un sito da parte di una botnet oltre a venire bloccato sul nascere viene anche memorizzato da Colobe. In questo modo vengono identificati i singoli computer (o server) che costituiscono la botnet e viene bloccato loro il login agli altri siti che utilizzano il servizio.
Le alternative
Tutto molto bello, ma possibile che nessuno ci abbia pensato prima? Al momento, per quanto ci risulta, la risposta è no.
Esistono dei servizi che assomigliano in quanto a obiettivi a Colobe, ma che si basano su strategie completamente diverse. I piu’ conosciuti sono Cloudflare.com ed Incapsula.com. Entrambi sono dei CDN (Content Delivery Network) e svolgono il ruolo di intermediari tra il sito e l’utente che vi vuole accedere.
Offrono svariate feature per migliorare la velocità e la sicurezza di un sito ma non sono specializzati nel prevenire gli attacchi Brute Force. Essendo degli intermediari possono essere inoltre facilmente scavalcati, ad esempio conoscere l’indirizzo IP del sito permette nella gran parte dei casi di aggirare questo tipo di siti.
Qual è l’idea di fondo?
Dopo questa (lunga) introduzione dovreste avere un’idea di massima su cosa sia e come funzioni Colobe. In pratica è come un enorme magazzino in cui vengono raccolte le informazioni riguardanti i login dei vari siti che lo utilizzano.
Tutto viene processato, memorizzato, ottimizzato e, quando serve, da questo magazzino esce un’unica importante, informazione.
“L’utente che vuole accedere al mio sito è un utente normale o è un bot che vuole rubare un account?”
Questa è la domanda alla quale Colobe deve rispondere, e lo fa semplicemente con un “SI” o “NO”. D’altronde se ti stanno rubando la macchina, la priorità non è di decidere se hanno veramente ha intenzione di portarla via o se invece vogliono solo spolverarti i sedili!
Può risultare difficile immaginare quanto lavoro ci sia dietro un semplice valore booleano ( TRUE o FALSE ). In realtà dietro a quel semplice valore “mono-bit” abbiamo una sintesi di tante informazioni correlate tra loro e condensate in un’unico valore, che permette di avere la sicurezza dei login per il proprio sito.
Come è nato questo progetto?
Una volta avuta l’idea cominciammo a svilupparla dal punto di vista pratico. Il difficile è sempre iniziare: non si sa mai da dove partire a scrivere il codice e si presentano una serie di problematiche tecniche che all’inizio sembrano insormontabili.
Nonostante questo, una volta partiti non ci si può più fermare: c’è sempre qualche nuova feature da implementare, qualche riga da ottimizzare o qualche bug che si presenta in maniera improvvisa.
Lentamente il progetto inizia a prendere forma, fino a che non si affaccia il più grosso dei problemi per uno studente: il tempo! Studiando ingegneria da pendolari il tempo a disposizione è molto poco.
Passando all’università buona parte della propria giornata l’unico momento a disposizione per lavorare sul progetto è quasi unicamente la notte. Una volta finito il lavoro del giorno si va a dormire per 5-6 ore, per ricominciare da capo il giorno successivo.
E’ facile capire come ci voglia molta determinazione per portare avanti un progetto di questo tipo, incontrando spesso la tentazione di abbandonare, salvo poi ricredersi per la fiducia che si nutre nei confronti della propria idea.
Il servizio ora è completo e funzionante, ma la parte più difficile deve ancora venire. Mentre la parte di programmazione si basa sulle sole abilità tecniche e sull’intuizione, lo step successivo è del tutto imprevedibile. Infatti diffondere il proprio lavoro, a prescindere da quanto sia buono e innovativo, è la parte più complessa di una startup.
Ora ci aspetta una lunga serie di delusioni nel tentativo di farci conoscere e finanziare, cercando di sfruttare il crowdfunding e le capital ventures, nella speranza di riuscire a realizzare compiutamente questo progetto per cui abbiamo speso così tante energie.
Per ulteriori informazioni, ed eventualmente per iniziare ad usare il servizio:
- Colobe (colobe.net)
- Colobe su Indiegogo (indiegogo.com)