Home
Code page, parser e guai

29 Maggio 2015

Code page, parser e guai

di

C'è sempre la possibilità di un bug così grave che quasi sarebbe stato meglio un guasto fisico alla macchina. E nessuno è immune.

Ho letto una cosa su WindowsBlogItalia. Stile Wilde, posso resistere a tutto tranne che alle tentazioni ed è tanto più vero quanto è alto il livello di nerdaggine. Se i nerd sono più di uno ed è notte, la tragedia è annunciata.
Che cosa ha scatenato questa dose di masochismo? La notizia è tanto semplice quanto stuzzicante. Si tratta di inviare questo messaggio:

Power
ॣ ॣh ॣ ॣلُلُصّبُلُلصّبُررً

O la variante:

Effective.
Power
ॣ ॣh ॣ ॣلُلُصّبُلُلصّبُررً

ad un iPhone dotato dell’ultima release di sistema operativo iOS (8.3), l’applicazione iMessage andrà irrimediabilmente in crash (senza possibilità di ripristinarsi). Il problema sussiste anche su iPad e Apple Watch.

Bug messaggi su iPhone

Sempre stare attenti a quello che si dice in pubblico…


Ovviamente, da menti diaboliche quali siamo, ci siamo detti chi ha un iPhone tra quelli che conosciamo?. La risposta è stata l’amministratore delegato e abbiamo provveduto a fare la prova.
Beh, non ha gradito. E oggi è arrivato in ufficio che sembrava un cinghiale con l’ernia (avendo anche le sue buone ragioni). Abbiamo scoperto che l’articolo di WindowsBlogItalia era un filino riduttivo. Il disastro che si scatena nell’iPhone è ben più grave di quello descritto.
In primis, il sistema non solo manda in crash l’applicazione che gestisce gli SMS, ma si resetta completamente. Così facendo cancella anche la notifica di avvenuta ricezione, e quindi la vittima non ha più la possibilità di capire chi ha mandato l’ultimo messaggio, per poterlo chiamare e chiedere spiegazioni (effetto su cui noi contavamo per farci due risate). L’applicazione di gestione degli SMS continuerà a riavviarsi senza tregua.
Collegando l’iPhone ad un Mac e cercando di visualizzare i messaggi di iMessage dal computer non sarà comunque possibile risalire al mittente.
Il problema si può superare in vari modi. Il più semplice, citato anche da WindowsBlogItalia, è quello di ricevere un normale SMS. Quello che l’articolo non specifica è che tale SMS deve essere ricevuto dalla stessa persona che ha spedito il testo di cui sopra. In tutti gli altri casi iMessage si ostinerà a non funzionare.
Un caro amico, Matteo Flora, alias LastKnight, amministratore delegato di TheFool, che conosce molta gente brutta e cattiva, mi ha confermato che se lo scherzo lo fanno contemporaneamente due persone alla stessa vittima, anche il discorso del SMS salvatore non è più applicabile (sì, è quello che gli è successo).

La cura

In rete l’argomento scotta, come ci si può attendere. Al momento, questa è la lista aggiornata dei rimedi per riportare l’iPhone al corretto funzionamento:

  1. Ripristinare da un recente backup.
  2. Portare la data avanti di più di 30 giorni e forzarlo a cancellare i messaggi più vecchi di 30 giorni. (Grazie Matteo per la soffiata).
  3. Inviarsi un messaggio da soli tramite Siri.
  4. Aprire iMessage, quando crasha, aprire la preview per vedere chi ha spedito il messaggio incriminato e mandare una foto qualunque al mittente dello stesso.
  5. Condividere come messaggio una nota dalla app Note o una immagine dalla app Foto.

Aggiornamento: Apple ha pubblicato un documento di supporto che ribadisce l’arrivo di un prossimo update software e offre tre soluzioni (chiedere a Siri di leggere i messaggi non letti, rispondere al messaggio con Siri, cancellare la conversazione contenente il messaggio).
Tutto questo disastro che si è scatenato nelle ultime ore è dovuto a un problema di mancata sanitizzazione del testo e di corretta gestione delle code page da parte dell’applicazione.
Come sempre si definiscono gli standard (stavolta Unicode) ma poi l’applicazione pratica degli stessi rischia sempre di risultare fallace. Stavolta è toccato ad Apple (che ha annunciato un prossimo aggiornamento risolutivo), la prossima potrebbe toccare ad altri.
Ancora una volta la cronaca ci fa capire come i moderni smartphone siano a tutti gli effetti dei sistemi estremamente complessi e profondamente interconnessi, non solo perché possono essere raggiunti attraverso molteplici modi (rete, telefonica, Wi-Fi, BlueTooth, NFC per la parte fisica, Servizi GSM e IP per la parte di trasporto) ma anche che i collegamenti in essere tra singole applicazioni di sistema, librerie e sistema operativo, possono essere così complessi da sfuggire anche a controlli molto stringenti (tra il resto viene da chiedersi come abbiano fatto a scoprire questo specifico bug).
Quindi? La morale è sempre quella (e non è fai merenda con Girella): tantissime informazioni MOLTO personali passano attraverso i nostri smartphone e troppo spesso pensiamo che il fatto non lasciarli mai da soli sia una ragione più che sufficiente per considerarli sicuri. Ma non è così. La loro intrinseca natura di sistemi sempre online li rende molto più vulnerabili di quello che possiamo credere. E, davvero, a volte una rottura fisica può essere il minore dei mali.

L'autore

  • Andrea Ghirardini
    Andrea Ghirardini è uno dei precursori della Digital Forensics in Italia. Sistemista multipiattaforma (con una netta preferenza per Unix), vanta una robusta esperienza in materia di sicurezza informatica ed è specializzato nella progettazione di sistemi informativi di classe enterprise. È CTO in BE.iT SA, una società svizzera del gruppo BIG focalizzata sulla gestione discreta e sicura di sistemi informativi aziendali.

Iscriviti alla newsletter

Novità, promozioni e approfondimenti per imparare sempre qualcosa di nuovo

Gli argomenti che mi interessano:
Iscrivendomi dichiaro di aver preso visione dell’Informativa fornita ai sensi dell'art. 13 e 14 del Regolamento Europeo EU 679/2016.