La sicurezza di Facebook

di: Stefano Madrucciani     07 Gennaio 2009

Le applicazioni che hanno avuto maggiore successo nel cosiddetto Web 2.0 sono senza dubbio i social network. Tra questi spicca Facebook, che vanta 160 milioni di utenti in tutto il mondo e che nel nostro paese ha visto aumentare, in un anno, il numero di utenti del 961%.

Per definizione, il Web 2.0 prevede una spiccata interazione sito-utente. Facebook, oltre che con i classici strumenti di social network, garantisce questa peculiarità dando la possibilità di sviluppare vere e proprie applicazioni da integrare nel sito e condividerle con l'intera comunità. Per applicazione si intende un componente aggiuntivo che può avere i più diversi usi: galleria fotografica, giochi, calendario e così via (su PHP di HTML.it trovate articoli sulla piattaforma Facebook).

È facile capire quindi che ogni applicazione sviluppata ha un potenziale bacino di utenza vastissimo: quale migliore strumento per veicolare codice nocivo? Purtroppo questa riflessione è stata fatta già da una moltitudine di persone, che hanno sviluppato diversi tipi i applicazioni dannose. In questo articolo cercheremo quindi di capire come ciò accade, quali sono i rischi e come evitare di esserne colpiti.

Le applicazioni di Facebook

Per sviluppare un'applicazione, un qualsiasi utente deve semplicemente avere un account su Facebook, un po' di destrezza nella programmazione in Php (o di qualsiasi altro linguaggio di programmazione) ed un servizio di hosting che supporti un database.

Esistono diversi servizi di hosting gratuiti che hanno i requisiti necessari e che possono ospitare l'applicazione. Il passo successivo è prelevare le librerie fornite da Facebook e utilizzarle a piacimento. Esiste in ogni caso una nutrita community di sviluppatori che può guidare l'utente durante i primi passi di sviluppo.

Come appena detto, l'applicazione risiederà su un servizio di hosting a piacere, l'ultimo passo sarà quindi di pubblicare l'applicazione sul social network.

Può sembrare paradossale, ma a questo scopo è necessaria un'applicazione di Facebook dove verranno creati:

  • Il Callback url, l'indirizzo dove risiede la nostra applicazione (ad esempio http://www.miohost.it/utente/applicazione)
  • Il Canvas Page Url, l'indirizzo dal quale sarà possibile raggiungere la vostra applicazione direttamente da Facebook (che sarà del tipo http://apps.facebook.com/nome_applicazione). Tramite questo indirizzo l'applicazione verrà integrata all'interno del sito, che normalmente non ospita software di terze parti.

Da questo momento la nostra applicazione sarà raggiungibile dal Canvas Page Url e potrà essere aggiunta alla nostra pagina su Facebook, consigliata agli amici, in poche parole entrerà a far parte dell'intero social network.

Riflettendo sulla procedura appena illustrata, una qualsiasi applicazione può essere raggiunta e utilizzata da milioni di persone che, cliccando su un link del tipo http://apps.facebook.com/nome_applicazione avvieranno un'applicazione web risiedente su http://www.miohost.it/utente/applicazione.

È quindi questa la vulnerabilità di fondo: Facebook non ospita codice di terze parti, ma semplicemente permette di integrare un software a piacimento. Non può quindi eseguire alcun controllo sulle applicazioni se non quello esercitato a monte nei permessi di programmazione. Nel paragrafo seguente verrà illustrato come questa vulnerabilità è stata sfruttata per pubblicare applicazioni dannose.

Guide Sicurezza

Guida SQL Injection con Sqlmap

Scopriamo se le nostre applicazioni web sono vulnerabili alle SQL...

Guida sicurezza applicazioni Web

Le tecniche di attacco più comuni, i metodi per verificare la...

Guida Sicurezza wireless

Quali sono i pericoli di sicurezza di una rete senza filo e quali...

Altre guide

Newsletter @Sicurezza

Ogni lunedì, direttamente nella tua e-mail: approfondimenti e bollettini su virus, vulnerabilità e sicurezza informatica.

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Amministratore di Reti Windows Server 2008

20 Febbraio 2012 a Milano
Disponibilità: 5 Posti

Nessun corso previsto