Lo strumento di sicurezza Web copia le mosse delle app

Al giorno d'oggi, è facile per gli sviluppatori creare applicazioni complete che vengono eseguite all'interno del browser. Mantenere queste applicazioni al sicuro dagli hacker è un'altra questione.





Gioca sul sicuro : i ricercatori Microsoft hanno utilizzato Ripley per proteggere diverse applicazioni Web, inclusi i giochi.

Con questo in mente, gli scienziati di Microsoft Research hanno svelato un nuovo modo per proteggere applicazioni Web complesse clonando efficacemente il browser dell'utente ed eseguendolo in remoto.

Molte delle applicazioni Web più recenti suddividono il codice eseguibile tra il server e il client. Il problema è rilevare se il codice in esecuzione sul PC di casa dell'utente è stato compromesso in qualche modo. La nuova soluzione Microsoft, nota come Ripley, è stata annunciata martedì all'Association for Computing Machinery's Conferenza sulla sicurezza informatica e delle comunicazioni a Chicago.



Ripley va oltre i precedenti sforzi per garantire l'integrità delle applicazioni Web. Porta la protezione dell'integrità al suo estremo logico, afferma Adam Barth , ricercatore presso l'Università della California, Berkeley, specializzato nella sicurezza delle applicazioni Web. Non era coinvolto nel progetto. Invece di verificare semplicemente che una richiesta provenga dal sito Web corretto, Ripley verifica che le azioni dell'utente siano effettivamente consentite dall'interfaccia utente dell'applicazione.

Ripley impedisce a un utente malintenzionato o a un hacker remoto di alterare il comportamento del codice in esecuzione all'interno di un browser Web creando una copia esatta dell'ambiente di calcolo ed eseguendo tale copia sul server. Ripley invia quindi tutte le azioni dell'utente, inclusi i clic del mouse, le sequenze di tasti e qualsiasi altro input, in un flusso di eventi compresso dal client al server. Questo flusso viene eseguito tramite l'applicazione client clonata sul server e il comportamento di quel doppelganger virtuale viene confrontato con quello dell'applicazione in esecuzione sul browser dell'utente a casa. In caso di discrepanze, Ripley disconnette il client.

Non puoi fidarti di tutto ciò che accade nel cliente, dice Ben Livshits , il ricercatore capo presso Microsoft Research sul progetto Ripley. È fondamentalmente il diavolo nel browser dal punto di vista dello sviluppatore.



Ripley è invisibile all'utente finale e non influisce sul normale funzionamento di un'applicazione Web. Sono solo i malintenzionati che devono preoccuparsi di ciò che accade una volta inviato un risultato, afferma Livshits.

Una delle sfide che Livshits e il suo collaboratore in Microsoft, Emre Kiciman , affrontato durante la creazione di Ripley era come creare una copia dell'intero ambiente client, l'applicazione Web e il motore software che lo esegue, che fosse abbastanza piccolo da essere pratico per un server Web ad alto volume che gestisce le richieste di centinaia o migliaia di utenti a una volta.

Sul server, ha affermato Livshits, se devi eseguire la replica all'interno di un browser, dovresti sostenere un footprint di memoria da 50 a 60 megabyte per istanza del browser. La soluzione che lui e Kiciman hanno escogitato era invece di eseguire un browser senza testa, un emulatore che simula solo le funzioni di un browser Web essenziale per Ripley. Ciò ha ridotto il footprint di memoria del browser e dell'applicazione clonati a un valore compreso tra uno e un megabyte e mezzo per applicazione.



Riducendo il clone lato server dell'applicazione basata sul browser dell'utente, Livshits e Kiciman, insieme ai colleghi della Cornell University, NY e dell'Indian Institute of Technology, Delhi, hanno ulteriormente ridotto il sovraccarico delle prestazioni di Ripley. Su cinque applicazioni sperimentali, che includevano un carrello della spesa, diversi giochi e un motore di blog, l'aumento medio della latenza dovuto ai maggiori sforzi della CPU del server è stato di circa un millisecondo.

In alcuni casi, Ripley ha persino migliorato le prestazioni delle applicazioni Web, perché il clone lato server dell'applicazione client viene riscritto in .NET, un linguaggio di programmazione da 10 a 100 volte più veloce del JavaScript in esecuzione sul lato client. A volte ciò consente a Ripley di prevedere quale sarà la prossima richiesta dell'applicazione lato client prima ancora che sia stata effettuata dal client e di inviare preventivamente i dati al client.

Questa è una situazione magica, se ci pensi, dice Livshits. Porta a chiamate di procedura remota a latenza zero.



Al momento, gli sviluppatori interessati a utilizzare Ripley per proteggere le proprie applicazioni Web dovrebbero reimplementare le idee nel documento presentato su Ripley sul proprio framework di applicazioni Web preferito. Alla fine, tuttavia, Livshits e Kiciman pensano che Ripley potrebbe aiutare a democratizzare una parte essenziale della sicurezza delle applicazioni Web, mettendola alla portata di sviluppatori non esperti.

Fino ad ora penso che le persone abbiano affrontato questi problemi manualmente, afferma Kiciman. Ottieni esperti che si tuffano e adattano le loro applicazioni per soddisfare queste sfide, ma non è molto scalabile e non molto agile quando è necessario apportare modifiche. Quello che stiamo cercando di fare è portare la piattaforma di sviluppo Web a un punto in cui chiunque può sfruttare i tipi di tecnologia utilizzati da questi esperti.

Barth di UC Berkeley osserva che Ripley fa parte di una tendenza più ampia nelle soluzioni che proteggono l'integrità del codice lato client assicurando che non si verifichino comportamenti non autorizzati. Vedo Ripley più come un esperimento mentale: cosa accadrebbe se il server convalidasse tutto? lui dice. Il lavoro suggerisce che la sicurezza trarrebbe vantaggio se convalidassimo più di quanto convalidiamo oggi.

nascondere