Jump to content
Sign in to follow this  
mike078

Brecha de seguridad en iOS y OSX

Recommended Posts

Hola compañeros.

 

Acabo de ver esta noticia que ha saltado hace poco, y venía a comentarla por aquí porque me tiene un poco preocupado. (lo siento si la noticia no va aquí :( )

 

 

Al parecer, se ha encontrado una brecha de seguridad en iOS y OSX, que no protege nuestras contraseñas y demás datos. El tremendo error llevaría 1 año entre nuestros dispositivos.

 

Para arreglarlo en iOS, basta con actualizar a la versión 7.0.6. Está en camino un parche para OSX, pero aún no está preparado.

 

 

Feb 22 (Reuters) - Apple Inc said on Saturday it would issue a software update "very soon" to cut off the ability of spies and hackers to grab email, financial information and other sensitive data from Mac computers.

 

Confirming researchers' findings late Friday that a major security flaw in iPhones and iPads also appears in notebook and desktop machines running Mac OS X, Apple spokeswoman Trudy Muller told Reuters: "We are aware of this issue and already have a software fix that will be released very soon."

 

Apple released a fix Friday afternoon for the mobile devices running iOS, and most will update automatically. Once that fix came out, experts dissected it and saw the same fundamental issue in the operating system for Apple's mainstream computers.

 

That started a race, as intelligence agencies and criminals will try to write programs that take advantage of the flaw on Macs before Apple pushes out the fix for them.

 

The flaw is so odd in retrospect that researchers faulted Apple for inadequate testing and some speculated that it had been introduced deliberately, either by a rogue engineer or a spy. Former intelligence operatives said that the best "back doors" often look like mistakes.

 

[...]

 

Más en la fuente

Share this post


Link to post
Share on other sites

Hay varias explicaciones detalladas de en qué consiste el problema (la más detallada ésta), y parece ser un mero despiste. Esa línea duplicada hace que el tercer caso no llegue a evaluarse.

 

Desgraciadamente estas cosas son muy complicadas de detectar y prevenir. Como dice el autor del artículo que he enlazado, el estilo de escritura de código no es el más apropiado, pero los accidentes ocurren.

 

Hace unos años hubo un problema terrible que afectaba a varias distribuciones de Linux derivadas de Debian. La cosa no quedaba ahí, porque dicho código se empleó para generar claves públicas y certificados. Aquí hay un comentario de Bruce Schneier.

 

En el caso de Debian, había una línea de código que parecía superflua (y que en mi opìnión merecía un buen chorro de comentarios aclarando su propósito) que una herramienta de verificación automática señalaba como problemática. Y un desarrollador despistado la eliminó.

 

En el caso que nos ocupa, los casos en los que uno puede ser vulnerable son:

 

1) Conexión a trávés de una red no fiable, como una inalámbrica pública (bar, hotel, etc).

 

2) Ser el objetivo de alguna "agencia gubernamental". De hecho, Gruber puso ayer un comentario sobre la coincidencia de fechas entre las menciones a Mac OS X e iOS en las filtraciones de Snowden y la introducción del fallo.

 

3) Tener un router de acceso (ADSL, cable, etc) comprometido. Hay casos en los que redirigen el DNS a otros donde pueden servir resultados falsos.

 

4) Picar en un phishing, lo que es un recordatorio de que hay que ser muy cuidadoso con los mensajes de correo electrónico que nos "llevan" a visitar sitios en los que usamos claves, se trate de iCloud, Yahoo, Google o el que sea.

 

Por supuesto, como menciona Gruber, podría haberlo plantado un desarrollador infiltrado, pero, desde mi punto de vista, es tan tan tan tonto (por muy dramático que sea el impacto) que parece un accidente.

 

Es más, me podría haber pasado a mi. Veamos un ejemplo:

 

En muchos programas que tienen que ver con protocolos de comunicaciones hay que escribir lo que se denominan máquinas de estados (o autómatas). Estos estados pueden ser cosas como "esperar mensaje del otro lado", "esperar respuesta del otro lado", etc. Pueden llegar a ser bastante complejos. Y no es raro (al menos los he escrito así con frecuencia) basarlos en un conjunto de funciones, cada una correspondiente a un estado, que como valor de salida devuelve el siguiente estado al que hay que pasar. Así, por ejemplo, supongamos que tenemos el estado "esperando_mensaje":

 

int esperando_mensaje(void)
{
          /*
           * cosas
           */
          leer_entrada(...);
          if ( entrada es tal, hacer cual )
              return HACER_CUAL;
          else if ( entrada es esta, hacer lo otro)
              return HACER_LOOTRO;
          ....
}

 

 

Y en estos casos puede ser un peligro hacer algo tan tonto como un "copy-paste" de otro sitio. Si el teclado "rebota" (los hay que lo hacen) y no nos damos cuenta, podría copiarnos dos veces una línea, que quedaría duplicada. Como dice el autor del primer comentario que he enlazado, el uso de llaves y alguna salvaguarda más podría haber ayudado a mitigar el error y provocar un casquetazo en lugar de un fallo silencioso como éste. Pero por muy bien que se diseñe el estilo para prevenir este tipo de cosas, es posible que alguna se cuele.

 

En fin, supongo que habrá actualización de seguridad para OS X rápidamente, no tiene mucho misterio arreglar esto. Mientras tanto, conviene tener cuidadín.

Share this post


Link to post
Share on other sites

Por este tipo de cosas, siempre uso las llaves en los condicionales. Manías que tiene uno.

Si, es un poco sorprendente que no tuvieran una norma al respecto.

 

Nunca me ha gustado esa ambigüedad en C. En Python, con los requisitos de indentación, en teoría es más difícil que te ocurra eso.

Share this post


Link to post
Share on other sites

Un despiste lo tiene cualquiera, el problema realmente es como puede ser que no haya sido detectado en diferentes Test de pruebas.

Share this post


Link to post
Share on other sites

Un despiste lo tiene cualquiera, el problema realmente es como puede ser que no haya sido detectado en diferentes Test de pruebas.

Hacer tests para estas cosas es mucho más complicado de lo que parece.

 

Más me preocupa el "estilo" con el que han escrito algo tan crítico. Hay formas de programar que ayudan a reducir el riesgo de meteduras de pata como ésta. Y el lenguaje C (y derivados) es especialmente problemático por ser demasiado "silvestre".

Share this post


Link to post
Share on other sites

Estoy deacuerdo que la sintaxis del lenguaje no facilita las cosas precisamente. Tampoco le veo la utilidad a que permita escribir sentencias de ese modo en los condicionales.

Share this post


Link to post
Share on other sites

Actualización de OS X 10.9.2

 

769MB se recomienda instalar la actualización a todos los usuarios de OS X Mavericks

Share this post


Link to post
Share on other sites

Actualización hecha en mi iMac Late 2013 y de momento... Safari va mas fluido :D

Share this post


Link to post
Share on other sites

Un despiste lo tiene cualquiera, el problema realmente es como puede ser que no haya sido detectado en diferentes Test de pruebas.

Hacer tests para estas cosas es mucho más complicado de lo que parece.

 

Más me preocupa el "estilo" con el que han escrito algo tan crítico. Hay formas de programar que ayudan a reducir el riesgo de meteduras de pata como ésta. Y el lenguaje C (y derivados) es especialmente problemático por ser demasiado "silvestre".

 

Estoy con borjam. A parte de la falta de uso de llaves, tampoco me explico el uso de gotos. La verdad, me imaginaba a Apple mucho más meticulosa con sus metodologías y estándares de desarrollo.

Edited by mac-hero

Share this post


Link to post
Share on other sites

Estoy con borjam. A parte de la falta de uso de llaves, tampoco me explico el uso de gotos. La verdad, me imaginaba a Apple mucho más meticulosa con sus metodologías y estándares de desarrollo.

Yo con frecuencia en casos similares uso "return", que, de hecho, es similar :blush:

 

De todas maneras, todo depende de las condiciones en las que lo hagas. Dicho sea de paso, los teclados de Apple anteriores a los actuales de aluminio, al menos por mi experiencia, tenían una tendencia espantosa a sufrir rebotes en los contactos. Los actuales son mucho mejores.

Share this post


Link to post
Share on other sites

Y en estos casos puede ser un peligro hacer algo tan tonto como un "copy-paste" de otro sitio. Si el teclado "rebota" (los hay que lo hacen) y no nos damos cuenta, podría copiarnos dos veces una línea, que quedaría duplicada. Como dice el autor del primer comentario que he enlazado, el uso de llaves y alguna salvaguarda más podría haber ayudado a mitigar el error y provocar un casquetazo en lugar de un fallo silencioso como éste. Pero por muy bien que se diseñe el estilo para prevenir este tipo de cosas, es posible que alguna se cuele.

 

En fin, supongo que habrá actualización de seguridad para OS X rápidamente, no tiene mucho misterio arreglar esto. Mientras tanto, conviene tener cuidadín.

 

Hay una teoria conspiradora donde se dice que la famosa linea duplicada aparece pocas semanas antes de que Apple en teoría forme parte del entramado de las backdoor de la NSA.

Share this post


Link to post
Share on other sites

 

Pues ni para Mountain Lion Server ni Mavericks Server por ahora :ph34r:

 

Ya de Snow Leopard y Snow Leopard Server ya ni hablamos <_<

Share this post


Link to post
Share on other sites

Los Snow los tienen en venta, supongo que si no la sacan, es porque no les hace falta.

Edited by ferreirolo

Share this post


Link to post
Share on other sites

Hay una teoria conspiradora donde se dice que la famosa linea duplicada aparece pocas semanas antes de que Apple en teoría forme parte del entramado de las backdoor de la NSA.

No me parece muy probable que lo haya puesto un infiltrado, porque solamente funciona en determinadas condiciones.

 

Pero por supuesto es complicado saber qué pasó en realidad ;)

Share this post


Link to post
Share on other sites

Los Snow los tienen en venta, supongo que si no la sacan, es porque no les hace falta.

Me extraña que solo la versión Server de Lion necesite esta actualización, lo mismo que Snow Leopard en ambas versiones

 

Es un problema de seguridad con los protocolos de conexión SSL/TLS y debería afectar a todos los sistemas (a ver si comentan algo y dejan las lineas duplicadas)

Share this post


Link to post
Share on other sites

Veamos.

 

Primero: El código fuente de la morcilla: http://opensource.apple.com/source/Security/Security-55471/libsecurity_ssl/lib/sslKeyExchange.c

 

Segundo: Mountain Lion (10.8.5)

http://opensource.apple.com/source/Security/Security-55179.13/libsecurity_ssl/lib/sslKeyExchange.c

 

Tercero: Lion (10.7.5)

http://opensource.apple.com/source/libsecurity_ssl/libsecurity_ssl-55003/lib/sslKeyExchange.c

 

Cuarto: Snow Leopard (10.6.8 por ejemplo)

http://opensource.apple.com/source/libsecurity_ssl/libsecurity_ssl-40581/lib/sslKeyExchange.c

 

Veamos Snow Leopard 10.6.0 (el original)

http://opensource.apple.com/source/libsecurity_ssl/libsecurity_ssl-36800/lib/sslKeyExchange.c

 

Así que, ciertamente, no han sacado el arreglo más que para Mavericks.

 

A continuación, escojase la opción correcta y razónese la respuesta:

 

1) No lo han arreglado más que en Mavericks porque son unos cabrones que programan la obsolescencia a conciencia.

 

2) No lo han arreglado más que en Mavericks porque el fallo solamente está en Mavericks y la bobsfera está llena de tontos del culo escribiendo idioteces. Máxime estando la información disponible a la vista de todo el mundo.

 

Claro que a más de un iluminado se le fundirán los plomos al ver esto. ¿Open Source? ¿Apple?

 

¡No, por dios!

¡Es el peor trauma que he sufrido después de enterarme de que los reyes eran los padres!

 

Así que, circulen, y no me formen grupos.

 

Respondo aquí para seguir con el tema

 

Si el parche es solo para Mavericks, ¿por qué lo han sacado para otros? ¿y por qué solo para algunos? :unsure:

Share this post


Link to post
Share on other sites

Si el parche es solo para Mavericks, ¿por qué lo han sacado para otros? ¿y por qué solo para algunos? :unsure:

Veamos.

 

Las actualizaciones de seguridad que han sacado cubren varios problemas.

 

El problema escandaloso, supercalifragilisticoespialidoso, apocalíptico, cataléptico e incluso lisérgico afecta (me refiero a OS X) a Mavericks, también a Mavericks y por supuesto afecta a Mavericks.

 

No está en Mac OS 1, ni 2, ni 3, .. ni 9, ni siquiera en 10.8. Es de Mavericks. Punto.

 

Está claro como un arroyo de aguas cristalinas en los enlaces que he puesto. Echad un vistazo al código fuente, que no muerde, buscad "goto fail;" y veréis que únicamente en Mavericks está repetido.

 

Por si no queda suficientemente claro. Las correcciones de seguridad, salvo que se trate de emergencias, suelen cubrir varios problemas de un tirón. Por supuesto no todos son igual de críticos ni escandalosos.

 

Así que, por resumir.

 

Apple meter pata en Mavericks.

 

Apple corregir pata.

 

Apple corregir además otros problemas en otras versiones.

 

En otras versiones, Apple no corregir problema que no les afecta, claro.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.