giovedì 20 ottobre 2011

IOS segreto aziendale; ciò che non conoscono le tue applicazioni


In principio c'era il web e lo accessibili tramite il browser e tutto era buono. Roba non ha scaricato fino a quando cliccato su qualcosa, ti aspettavi di essere voi i cookie di tracciamento ed è sempre saputo che se HTTPS è stato utilizzato. In generale, l'osservatore casuale avuto una buona idea di quello che stava succedendo tra il client e il server.
Non così nel mondo app mobile di oggi. In questi giorni, c'è questa grande grande livello di astrazione di grasso sulla parte superiore di tutto ciò che ti tiene abbastanza bene scollegato da quello che è effettivamente succedendo. Cosa è, è un compito banale per vedere cosa sta succedendo sotto, basta accendere un proxy HTTP come Fiddler , sedersi e guardare lo spettacolo.
Lasciate che vi presenti il ​​ventre seedy di iPhone, un mondo dove non tutto è come sembra e sicuramente non tutto è come dovrebbe essere.

Non esiste una cosa come troppe informazioni - o c'è?

Ecco un buon punto di partenza: saggezza popolare dice che l'efficienza della rete è sempre una buona cosa. Download di contenuti più veloce, i contenuti rende più rapido e proprietari di siti minimizzare le emissioni di larghezza di banda. Ma ancora più importante nel mondo mobile, i consumatori sono spesso limitati a magri abbastanza limiti di download, almeno per gli standard a banda larga di oggi. Bottom line: ottimizzazione dell'ampiezza di banda in applicazioni mobili è molto importante, molto più che in le tue applicazioni web basate su browser di oggi.
Lasciate che vi dia un esempio di dove questo comincia ad andare male con le applicazioni mobili. Prendere la Triple M app, progettato per fornire una serie di informazioni su una delle stazioni radiofoniche Australia premier e giocare su reti 3G per voi. Ecco come appare:
Triple M iPhone app
Dove tutto inizia ad andare male è quando si guardano le richieste in corso solo per caricare l'applicazione, si è fino a 1,3 MB da solo:
Triple M richieste HTTP
Perché? Bene, parte del problema è che non hai la compressione gzip. In realtà, non è del tutto vero, alcune delle piccole cose è compresso, proprio nessuno dei grandi cose. Vai figura.
Ma c'è anche un sacco di ridondanza. Ad esempio, su l'applicazione sopra potete vedere il primo articolo dal titolo "Manly Sea Eagles '2013 Coach ..." e questo viene restituito a richiesta # 2 come è il corpo della storia. Fin qui, tutto bene. Ma saltare giù per richiedere # 19 - che una massiccia 1.2MB uno - e si ottiene il tutto di nuovo. Larghezza di banda preziosa destra fuori dalla finestra c'è.
Ora, naturalmente, questa applicazione è stata progettata per riprodurre audio in modo che non sarà la luce della larghezza di banda (come mia moglie scoperto quando ha colpito il suo cappello "solo ascoltando la radio"), e, naturalmente, parte del carico iniziale è anche quello di permettono l'applicazione di rispondere istantaneamente quando si drill-down per le storie.Ma i modelli sopra sono solo inutili, perché inviare i dati ridondanti in un formato non compresso?
Ecco un segreto sporco Foxtel, cosa ne pensi ti costa di banda per caricare l'applicazione che vedete qui sotto? A pochi KB? Forse un centinaio di KB per tirare giù un bel alimentazione gzip JSON di tutti i canali? Forse niente perché sarà estrarre i dati su richiestaquando effettivamente fare qualcosa ?
Foxtel iPhone app
Indovina ancora una volta, avrete bisogno di un paio di mega solo per avviare l'applicazione:
Foxtel richieste HTTP
Parte del problema è mostrata sotto il Content-Type intestazione sopra, ma quasi tutti i file PNG. In realtà, è 134 immagini PNG. Perché? Voglio dire cosa mai potrebbe giustificare quasi 2 mega di PNG solo per aprire l'applicazione? Date un'occhiata a questo fella:
Enormi TLC due immagini per l'applicazione Foxtel
Questa è solo una delle immagini reali alla dimensione originale. E perché è questo humungous PNG richiesto? Per generare questa schermata:
Foxtel applicazione per iPhone che mostra le icone
Hmmm, non proprio un caso d'uso per un 425x243, 86KB PNG. Perché? Probabilmente perché, come abbiamo visto prima , gli sviluppatori piace prendere qualcosa che è già esistente e riutilizzare al di fuori del contesto previsto, e proprio come in quel legame di cui sopra, si può iniziare a causare problemi di ogni genere. Purtroppo si fa per una esperienza utente sgradevole mentre siete lì seduti in attesa di sapere cosa c'è da carico, mentre fa le cose sgradevoli alla tua (possibilmente magro) di allocazione dei dati.
Ma siamo appena scaldando. Diamo uno sguardo al molto eccellente, impatto visivo rivista EVO su iPad. La schermata iniziale è solo un elenco delle edizioni in questo modo:
Rivista EVO su iPad
Parliamo in termini reali per un momento, la risoluzione è di 1024x768 iPad o quello che eravamo abituati a pensare a come "alta risoluzione" non molto tempo fa. L'immagine sopra è stata ridimensionata a circa il 60% di originale, ma su iPad, ciascuna di queste copertine di riviste poco era originariamente 180x135 che anche salvato come PNG di qualità elevata, può essere abbattuto ben al di sotto 50KB a testa. Tuttavia:
EVO magazine richieste HTTP
Tredici anni e meg mezzo?! Dove una terra che ha fatto tutto andare?! Ecco un indizio:
Rivista coprire enormi rivista EVO
Andare avanti, cliccaci sopra, ti aspetto.
Sì, 1.6MB.
4267 pixel di larghezza, 3.200 pixel di altezza.
Perché? Non ho idea, forse il reparto artistico appena inviato negli originali destinato alla stampa ed è stato "facile" per scaricare che in app. Tutto quello che puoi fare in app senza acquistare la rivista (per il quale si aspetta un grande larghezza di banda), è solo guardare quelle miniature. Così ci si va, 13,5 MB masticato dal vostro piano di 3G prima ancora di fare qualcosa solo perché le immagini vengono caricate con pixel di 560 volte più del necessario.

Lo stalker segreto all'interno

Applicazioni si installano direttamente sul sistema operativo sono sempre stati un po 'di una scatola nera. Voglio dire che non è la stessa "visualizza sorgente" mondo che siamo diventati talmente abituati a con il web negli ultimi dieci anni e mezzo in cui è abbastanza facile capire cosa sta succedendo sotto le coperte (almeno sotto il browser di copertine). Con il volume e la convenienza di applicazioni iOS là fuori, ora stiamo veramente bene e di nuovo nel mondo dei rich client che esegue ogni genere di cose fuori dalla vostra vista immediato, e alcuni di loro sono piuttosto interessanti.
Prendiamo come esempio la cottura, la ABC Foodi applicazione è un bel pezzo di lavoro.Voglio dire che è davvero visivamente piacevole e un grande esempio di cosa può essere fatto su iPad:
ABC Foodi app su iPad
Ma è spiare su di voi e telefonare a casa in ogni occasione. Per esempio, non si può semplicemente aprire l'applicazione e iniziare la navigazione intorno nella privacy della propria casa, oh no, questa attività viene immediatamente segnalato (sto volutamente offuscandoparte della ID del dispositivo):
ABC Foodi applicazione di reporting applicazione è stata aperta
Ok, questo è un per lo più innocui, ma sembra che la mia posizione - o almeno la mia città - anche in là in modo evidente i miei movimenti sono tracciabili. Certo, la fedeltà posizione di gran lunga maggiore di solito può essere derivato da l'indirizzo IP in ogni caso (e lo può ben fare questo sul back end), ma è interessante vedere esplicitamente catturato.
Proviamo qualcosa di diverso, diciamo, favouriting un piatto:
ABC Foodi applicazione di reporting su un piatto di essere favourited
Non gli asparagi! Sembra che non si può nemmeno creare un preferito, senza ogni vostra mossa viene tenuta traccia. Ma in realtà anche di più, ho appena trova una bella torta al cioccolato e via e-mail a me stesso usando la funzione "share". Ecco cosa è successo dopo:
ABC Foodi applicazione di reporting su un piatto da condividere
L'applicazione tiene traccia ogni movimento e lo invia alla base in piccoli lotti. In questo caso, che la base è a flurry.com , e chi sono questi ragazzi? Beh, è abbastanza chiaro dal loro sito web:
Flurry poteri di acquisizione, l'impegno e la monetizzazione per la nuova economia applicazione mobile, utilizzando i dati potente e l'applicazione di gioco che cambia visione.
Divertente, sapevo che avrei visto che da qualche parte prima !
Ecco qualcosa che ho visto prima: le richieste POST data.flurry.com. E 'perfettamente evidente quando si utilizza il realestate.com.au iPad:
iPad app realestate.com.au
Uh, tranne che non è davvero evidente, è un altro backdoor subdolo per acquisizioni di potenza e monetizzare la nuova economia app con visione di gioco che cambia. Ecco quello che sta facendo e chiaramente non ha nulla a che fare con la ricerca di immobili:
realestate.com.au applicazione di reporting attività di uso
Aspetta - lo fa in parte offuscato ID del dispositivo sembrare un po 'familiare?! Sì lo fa, così Flurry ora sa che cosa sia sto cottura e cucina che mi piacerebbe essere la cottura in E nel caso ve lo siate perso, la prima richiesta quando l'applicazione Foxtel è stato caricato in precedenza è stato anche per i dati. flurry.com. Oh, e come su tali piani viaggiare con TripIt- il cielo allegro blu appare abbastanza innocua:
TripIt iPad app
Ma sotto le coperte:
TripIt applicazione di reporting attività di uso
Improvvisamente monetizzazione con una potente comincia ad avere più senso.
Ma questo non è diverso da un cookie di tracciamento su un sito web, giusto? Beh, sì e no.In primo luogo, tracking cookie può essere disattivato. Se non ti piace 'em, girare' em off.Non così l'applicazione iOS come tutto è nascosto sotto le coperte. In realtà, è più o meno allo stesso modo di una classica applicazione che viene installato su qualsiasi sistema operativo, anche se nel mondo desktop, ci siamo abituati ad essere chiesto se siamo felici di condividere le nostre attività "a fini di miglioramento del prodotto".
Tematiche relative alla privacy semplicemente scendere a questo: che cosa l'utente si aspettano? Non si aspettano di essere rintracciati quando si sfoglia un libro di ricette installato sul proprio dispositivo locale? E cosa si aspettano da questa attività cross-referenziabile con l'utilizzo di altre applicazioni apparentemente non correlati? Ne dubito fortemente, e pone in essa il problema.

Sicurezza? Non abbiamo bisogno di sicurezza non puzzolente! '

Molte persone sono touting applicazioni mobili come la nuova frontiera della sicurezza, ed è giusto così IMHO. Quando ho scritto su Westfield il mese scorso ho notato quanto sia stato facile per la sicurezza dei servizi utilizzati dalle applicazioni per tutti, ma ignorato in quanto non hanno la stessa esposizione diretta pubblici come gli stessi apps. A sfogliare la mia collezione di iPhone supporta la teoria che la sicurezza mobile app sta prendendo un sedile posteriore ai loro coetanei basata su browser.
Prendiamo l'applicazione Facebook. Ora, ad essere onesti, questo mi ha sorpreso un po '.Indietro gennaio di quest'anno, Facebook ha permesso di opt-in SSL o in o con le parole di The Register , questo è anche conosciuto come "Turn it su te stesso ... cagna". Duro, ma leale - questa funzione di sicurezza prezioso sarebbe stato trascurato da molte persone. "SS cosa?"
Purtroppo, la stessa sicurezza che viene offerto al browser basato su utenti di Facebook non è accessibile sul client iPhone. Sai, il dispositivo che è più probabile essere portato in giro per hotspot wireless in cui le comunicazioni insicure sono più vulnerabili. Ecco cosa ci rimane:
In chiaro la comunicazione da parte l'applicazione Facebook
Ciò è particolarmente sorprendente in quanto quel po 'di packet-sniffing magia che èFiresheep è stata senza dubbio la spinta anche per avere la scelta di attivare il protocollo SSL. Ma eccoci qui, un anno dopo ea quanto pare Facebook è mai saputo nulla.
Diamo ritmo cambia un po 'e dare un'occhiata all'interno della applicazione australiano Frequent Flyer . Questo è "Australia Comunità leader Frequent Flyer" e chiaramente una comunità di piedi come avrebbe sicurezza molto, molto seriamente. Accediamo come:
Australiano Frequent Flyer applicazione per iPhone
Come per l'esempio Qantas sopra, si ha assolutamente idea di come queste credenziali vengono trasportati attraverso il filo. Beh, se non avete Fiddler allora è perfettamente chiaro che sono solo di essere pubblicati a questo indirizzo HTTP:http://www.australianfrequentflyer.com.au/mobiquo-withsponsor/mobiquo.php
E naturalmente è tutto molto semplice per vedere il corpo dopo che in questo caso, è piccolo ceppo di XML:
In chiaro la comunicazione da parte l'applicazione australiano Frequent Flyer
Bugger, chiaramente questo sta per virare una sorta di mastermind degli hacker per capire che cosa sono queste credenziali! Solo che non lo fa, ci vuole solo un po 'di usare Google. Ci sono due parametri e sono entrambi Base64 codificato. Come facciamo a sapere questo?Beh, in primo luogo ci dice in uno dei nodi XML e in secondo luogo, è una pratica abbastanza comune per codificare i dati in questo modo prima della spedizione attorno al luogo (vedi il link in questo punto per i dettagli del perché questo è utile) .
Quindi abbiamo un valore di "YWJjMTIz" e perché Base64 è progettato per consentire la codifica semplice e decodifica (a differenza di un hash che è un processo unidirezionale), è possibile semplicemente convertire questo ritorno al testo utilizzando qualsiasi vecchio Base64 decoder . Ecco un online uno qui e ci dice questo valore è "abc123". Beh che dire questo!
Il valore successivo è "NzA1ZWIyOThiNjQ4YWM1MGZiNmUxN2YzNjY0Yjc4ZTI =" che è ovviamente sarà la password. Una volta Base64 decodificare questo, abbiamo qualcosa di diverso: "705eb298b648ac50fb6e17f3664b78e2?". Wow, è una password di impressionante!Solo che come ben sappiamo, la gente sceglie le password impressionante è un evento molto raro così con ogni probabilità questo è un hash. Ora ci sono tutti i tipi di bruta nifty costringendo strumenti di là fuori, ma quando si tratta di trovare il testo di un hash, niente è meglio di Google. E che cosa fa il primo risultato di Google ci dà ? Date un'occhiata:
Google testo risultato rivelando piana di un hash
Ho detto che era inutile una password dannazione! Vedete la cosa è, c'è un buffet di hash e dei loro equivalenti di testo appena seduto là fuori in attesa di essere cercato ed è per questo che è sempre importante applicare un sale crittograficamente casuale per il testo in chiaro prima di hashing. Una hash rettilineo della maggior parte creati dagli utenti password -che sappiamo essere generalmente merda - può molto spesso essere risolto in testo normale in circa 5 secondi tramite Google.
La linea di fondo è che questa è quasi nessuno meglio di credenziali di testo ed è sicuramente alcuna alternativa al trasporto strato di sicurezza. Ho avuto numerose conversazioni con gli sviluppatori prima di provare a spiegare la differenza tra la codifica, hashing e crittografia e se dovessi fare un'ipotesi, qualcuno dietro a questo pensa che siano "cifrati" la password. Non proprio.
Ma è davvero diverso per la registrazione sul sito australiano Frequent Flyer , che anche (purtroppo) non ha HTTPS? Sì, cosa c'è di diverso è che in primo luogo, sul sito è chiaro a vedere che non HTTPS è stato impiegato, o almeno non adeguatamente impiegati (il modulo di login non viene caricato su HTTPS). Posso quindi dare un giudizio chiamata sulla fiducia e la credibilità del sito, non posso farlo con l'applicazione. Ma in secondo luogo, questo è unapp mobile - un mobile viaggi app - sai, il tipo di cosa che sta per essere utilizzate durante il roaming intorno hotspot wireless vulnerabili alle intercettazioni. E 'più importante che mai per proteggere le comunicazioni sensibili e l'applicazione manca totalmente il segno su quello.
Mentre stiamo parlando apps viaggio, diamo un'altra occhiata a Qantas. Ho scritto di questi ragazzi, prima, di fatto hanno reso la mia Chi è chi di cattive pratiche password di lista nella prima parte dell'anno. Anche se hanno fatto un piccolo tentativo di implementazione della sicurezza da inviare a SSL, come ho detto prima, SSL non è sulla crittografia e il caricamento moduli di login su HTTP è un grande no-no. Ma almeno hanno fatto qualche tentativo.
Allora perché l'applicazione iPhone solo lasciare ogni speranza e fare di tutto senza alcuna cifratura livello di trasporto a tutti? Ancora peggio, lo picchia proprio tutte le carte in una stringa di query. Quindi è una richiesta GET. Su HTTP. Ecco come va giù:
Qantas iPhone app
Questa è una schermata di login abbastanza tipico. Fin qui, tutto bene, anche se ovviamente non c'è modo di sapere come vengono gestite le credenziali. Almeno, questo è, fino a quando si dà un'occhiata a richiesta di fondo che ha fatto. Ecco i parametri di stringa di query:
Qantas accesso stringa di query parametri
O metterlo semplicemente, è solo una richiesta a questo
Vai avanti, dare una corsa. Quello che trovo più strano in questa situazione è che chiaramente una decisione consapevole è stato fatto per applicare alcuni grado di crittografia di trasporto per l'applicazione del browser, perché non l'applicazione mobile?Perché è necessario il client mobile rimane il parente povero quando si tratta di misure minime di sicurezza? Non è che sta per essere utilizzato all'interno di qualsiasi hotspot wifi pubblici altamente vulnerabili come, oh non so, una lounge dell'aeroporto, giusto?
Applicazioni continuare per ottenere la sicurezza sbagliata. Non solo iOS applicazioni che si mente, ci sono un sacco di problemi su Android e una volta che qualcuno acquista un dispositivo Windows Mobile 7 che vedremo un sacco di problemi su quelli troppo. E 'troppo facile da sbagliare e quando si sbagliano, è ulteriormente fuori dalla vista del tuo web app tradizionali. Per fortuna la gente brava a OWASP stanno facendo un ottimo lavoro su una serie di Top 10 dei rischi sicurezza mobile quindi c'è sicuramente riconoscere i problemi e il lavoro fatto per aiutare gli sviluppatori a ottenere di destra di sicurezza mobile.

Riassunto

Quello che ho scoperto è di circa il risultato di casualmente osservando alcuni soltanto di poche decine di applicazioni che ho installato sul mio dispositivi iOS. Ci sono circa mezzo milione in più là fuori e se fossi un uomo di scommesse, i miei soldi sarebbero i problemi di cui sopra solo essere la punta di un iceberg.
Si può ottenere tipo di come questi problemi accadere; ogni uomo e il suo cane sembra essere costruire applicazioni mobili in questi giorni e un bar a bassa voce è sempre intenzione di introdurre alcuni problemi di qualità. Ma Facebook? E Qantas? Quali sono le loro scuse per fare della sicurezza passano in secondo piano?
Gli sviluppatori possono ottenere via con pratiche più sciatta o subdolo in applicazioni mobili come l'esecuzione è di solito più lontano di vista.
Si può schiaffo l'utente con un download asincrono di massa come la loro attenzione è su altri contenuti, ma uccide il loro piano dati.
È possibile tenere traccia si muove attraverso le loro applicazioni totalmente autonoma, ma erode la loro privacy.
E, cosa più importante per me, si può mettere in pericolo la loro sicurezza senza il loro notare, ma le conseguenze potenziali sono gravi.
Viviamo in tempi interessanti.


Corso Visual Studio - Corsi Visual Studio
Corso .Net- Corso Dot.Net - Corso Vb.net
Corso C# - Corso PHP - Corso Joomla

Nessun commento:

Posta un commento