Hace unos días salía a la luz un error de iOS que provocaba que mediante la recepción de un mensaje de texto con una determinada secuencia de caracteres, se colapsara el dispositivo y se reiniciara. Un error que al parecer no afectaba sólo a mensajes, sino también se producía a través de otras aplicaciones como Twitter o Snapchat que usan el mismo sistema de texto. Un error que muchos usuarios han aprovechado para enviar mensajes unos a otros para resetear sus dispositivos a modo de broma (o no). Pero, ¿cómo es posible que un simple mensaje provoque un fallo como ese?

Carlos Barbero, experto en seguridad de NetIQ, considera que está relacionado en mayor medida con los caracteres utilizados en el cuerpo del mensaje, los cuales no son de uso común en un mismo texto, ya que pertenecen al alfabeto de diferentes lenguas y cómo la combinación de todos ellos pueden impactar en la estabilidad del sistema.

Análisis del error: paso a paso

Para averiguar cómo funciona el error, se realizan una serie de pruebas sencillas que permiten determinar el origen de cada carácter de la cadena utilizada. “La primera consistía en introducir la cadena de texto en el traductor de Google, de modo que se pueda analizar si esta herramienta es capaz reconocer los caracteres y traducir su contenido de forma parcial: para ello se agregara un salto de línea entre los caracteres que se consideran de diferentes lenguas a simple vista, y por otro lado los que no son de uso común o pueden no estar vinculados a un significado”, explica Barbero.

iphone crash 1

 

Teniendo en cuenta los resultados del traductor, el siguiente paso consistirá en analizar un poco la cadena utilizada. Dicha cadena ha sido probada desde el equipo de Mundo Hacker en laboratorio con terminales iOS y comprobado que realmente afecta a los dispositivo tal y como se mostraba en el vídeo de la noticia.

La cadena en cuestión es “Power لُلُصّبُلُلصّبُررً ॣ ॣh ॣ ॣ 冗”.

Los primeros caracteres “لُلُصّبُلُلصّبُررً” parecen pertenecer al alfabeto árabe y como se puede ver en la imagen, Google los traduce sin problemas.

iphone crash 2

Otro carácter interesante, añade Barbero, es el del final de la cadena, el cual los europeos podemos asociar inicialmente al símbolo matemático de Pi “冗”. “Pero si se observa con más detenimiento, se verá que en realidad en un símbolo perteneciente a una lengua asiática en concreto tanto al alfabeto Chino como el Japonés”.

iphone crash 3

La cadena también contiene caracteres del alfabeto común de muchas de las lenguas Europeas “Power h”.  Sin duda, como apunta Barbero, la cadena de caracteres que parece ser más extraña es “ॣ ॣ ॣ ॣ”. “Si se busca dicho carácter en Google, sus resultados en gran parte están relacionados con páginas que hablan de este ataque a los dispositivos iPhone, respecto al carácter esta es la información que se puede encontrar”.

Una vez se trata el símbolo por el traductor de Google, el sistema indica que dicho carácter pertenece a la lengua Maratí (una de las lenguas más habladas en la India) y tiene un significado para dicho símbolo, en concreto sería el carácter L. Tras un análisis sencillo es posible determinar que la cadena utilizada para el ataque en realidad es un texto que contiene caracteres de la legua árabe, del inglés, del mandarín/japonés y del maratí.

Por esto se puede concluir que “la combinación de estos caracteres, los cuales habitualmente no se encuentran en un mismo texto, es lo que genera el problema, y por ende hace que el sistema operativo iOS de los dispositivos iPhone no funcione adecuadamente”.

En la web Reddit se están realizando diferentes pruebas para analizar este bug y cómo se comportan los dispositivos iPhone ante diferentes combinaciones. “Se deduce que el bug está vinculado con los caracteres Unicode usados, y cómo estos impactan en el sistema de notificaciones de iPhone, que no es capaz de gestionarlos del modo correcto, colapsando el dispositivo y haciendo que este se reinicie de forma constante”.

Paciencia e ingenio

Otra de las preguntas que nos hacemos cuando salen a la luz este tipo de errores es cómo se descubren estos bugs, ¿hay alguien probando miles de combinaciones hasta dar con ellos?

Es algo muy ingenioso, opina Barbero, “ya que se han combinado caracteres de diferentes lenguas, y han analizado como responde los dispositivos iOS ante esta situación. Una prueba interesante para determinar si el orden especifico de la cadena de caracteres es determinante para el fallo, o si la combinación de los mismos elementos en diferente orden generen el mismo comportamiento, sería realizar diversas pruebas para determinar si se obtienen los mismos resultados”. Otra opción interesante podría ser combinar parte de la cadena, con caracteres específicos como pudiera ser el ruso u otras lenguas que disponen de su propio alfabeto y caracteres. En cualquier caso, como siempre, “la paciencia y el ingenio son los mejores aliados para descubrir este tipo de errores”.

Solución al problema

Por el momento, Apple no ha solucionado este error, pero ha anunciado que están trabajando en un parche para solventarlo. Mientras tanto, puedes tomar medidas proactivas que eviten que puedas ser víctima de este bug. Como explica The Hacker News, en tres simples pasos es posible librarse de sus efectos:

  • Pide a Siri que abra los mensajes no leídos.
  • Usa Siri para responder al mensaje malicioso. Después de responder, serás capaz de abrir los Mensajes de nuevo.
  • Si el problema continúa, presiona sobre el mensaje para eliminarlo.

 

About Author

Monica Valle

Periodista especializada en tecnología y ciberseguridad. Presentadora del programa sobre seguridad informática y tecnología Mundo Hacker. @monivalle

Deja un comentario