Blog

Storie di hacker (che possono avere la pizza gratis)

Questo è un argomento sicuramente da trattare quando si parla di eCommerce online e dei rischi connessi. E' la storia di Paul Price, esperto informatico inglese, che 3 anni fa è incappato in un bug nelle API dell'app Android di Domino's Pizza.

Tramite questo bug Paul avrebbe potuto ordinare la pizza gratis per sempre. Lo spiega bene lo stesso Paul nel suo form: http://www.ifc0nfig.com/dominos-pizza-and-payments/

Dopo aver confermato l’ordine per la sua pizza (Americano with extra pineapple and hot dog stuffed crust), Price si è dedicato al codice dell’app.

Studiando come l'app scambia informazioni con il sistema di pagamento di Domino's Pizza, ha scoperto che utilizzava delle comunicazioni via API. Dopo aver letto un po' di dati che l'app e il server scambiavano ha inoltre scoperto che la stessa app processava i pagamento attraverso un payment gateway.

Niente di grave se ben implementato ma normalmente queste attività vengono eseguite lato server e non si rischia di cadere nel classico problema del "middle user".

Price ha quindi provato a fare alcuni cambiamenti alle informazioni che l'app scambiava con il server e, modificando una stringa, ha scoperto di poter convertire il messaggio di conferma della ricezione del pagamento da “declined” ad “accepted”. Inserendo falsi numeri di carte di debito.

La pizza arriva davvero!!

Price racconta di essere rimasto incredulo e di aver pensato che No! Domino non avrebbe mai accettato un ordine senza prima fare una verifica di sistema. Ha chiamato il punto vendita scoprendo che stava già preparando la sua pizza!

Ma non solo Domino's Pizza

Fatto sta che l'azienda ha scoperto il bug durante uno dei frequenti controlli di sistema e ha provveduto a risolverlo rapidamente. Ma non è la prima volta:

  • Nel 2009 un ristorante della stessa catena ha offerto 11.000 torte gratis proprio a causa di un errore nel sito
  • Una API difettosa è stata all’origine di una fuga di dati personali dai server della casa produttrice di giocattoli VTech
  • Troy Hunt e Scott Helme hanno dimostrato quanto sia facile inserirsi nel sistema di delle auto Nissan e manomettere aria condizionata e batterie

Bene, cosa ci portiamo a casa da queste esperienze?

E' chiaro che qualsiasi sistema connesso, soprattutto nell'economia delle API, deve stare molto attento a questi aspetti riguardanti la sicurezza delle transazioni. Non è per niente difficile, anche per uno studente di Ingegneria Informatica che ha seguito il primo corso sulla sicurezza, provare queste exploit.

Esistono comunque tecniche che permettono di fare verifiche continue della sicurezza dei sistemi per metterli al riparo da malintenzionati.

Una tecnica in particolare denominata Bug Bounty, basata su metodologie Crowd Testing, permette molto facilmente di prevenire questi casi ingaggiando gli stessi ricercatori come Paul o Troy per identificare le problematiche (in una ambiente controllato) e quindi procedere a correggerle velocemente prima che un vero malintenzionato possa agire.

L'aspetto interessante del Crowd Testing è che è possibile moltiplicare il numero di ricercatori in poco tempo che identificano le falle del sistema mettendoli in competizione e pagando solo a defect identificato.

Ottenendo così il massimo dei risultati al minor costo!

Credit:

http://thefoodmakers.startupitalia.eu/56143-20160707-pizza-hacker-domino

http://www.ifc0nfig.com/dominos-pizza-and-payments/

 

il metodo Crowdtesting