El exchange japones Coincheck fue hackeado y $532 millones robados

Estándar

El servicio de intercambio de criptomonedas (Exchange) Coincheck, con sede en Tokio, ha sufrido lo que parece ser el mayor hackeo en la historia de las criptomonedas, perdiendo $ 532 millones en activos digitales (casi $420 millones en tokens NEM y $112 en Ripples).

En 2014, Mt Gox, uno de los mayores intercambios de bitcoin en ese momento, se declaró en quiebra después de admitir que había perdido Bitcoins por valor de $ 460 millones.

Aparentemente, los mercados de criptomonedas reaccionaron negativamente a las noticias, lo que resultó en una caída del 5% en el precio de Bitcoin el viernes pasado (26 de Enero de 2018) temprano en la mañana.

En un post publicado el viernes pasado en su blog, la empresa japonesa Coincheck confirmó el robo cibernético sin explicar cómo se robaron las monedas y congeló abruptamente la mayoría de sus servicios, incluidos depósitos, retiros y comercio de casi todas las criptomonedas, excepto Bitcoin.

Coincheck también dijo que incluso detuvo los depósitos en las criptomonedas NEM, lo que resultó en una caída del 16.5% en el valor de la moneda NEM, así como en otros métodos de depósito, incluidas las tarjetas de crédito.

Durante una conferencia de prensa nocturna en la Bolsa de Tokio, el cofundador de Coincheck Inc., Yusuke Otsuka, también dijo que el viernes fueron robados criptomonedas por un valor superior a los $500 millones de las billeteras digitales de los clientes de Coincheck. La compañía hasta el momento no sabe cómo las criptomonedas desaparecieron.

Según ha reportado Bloomber, Coincheck ha dicho que reembolsará a sus clientes el dinero perdido:

«El momento del reembolso y el proceso de solicitud se están considerando actualmente», dijo Coincheck en el comunicado. «La fuente del dinero reembolsado se está llevando a cabo utilizando nuestro propio capital».

Coincheck estaba cuatro meses retrasado de la fecha límite para recibir una licencia necesaria para operar, como parte de la nueva legislación japonesa para investigar y auditar intercambios de criptomonedas. Se le permitió continuar operando mientras esperaba una decisión de la Agencia de Servicios Financieros.

Sin embargo la misma agencia se está preparando para penalizar a Coincheck debido al hack que ha sufrido, según ha informado el periódico japones Yomiuri el domingo en la mañana en Japón sin revelar sus fuentres. Los informes de los medios también dijeron que la Agencia de Servicios Financieros preguntará a los funcionarios de la empresa el domingo sobre las circunstancias que llevaron a la pérdida y las medidas de seguridad vigentes.

Este es un incidente más en la larga lista de gravés fallas de seguridad en casas de cambio en línea de criptomonedas que a la fecha han perdido ya miles de millones de dólares.

Se filtran las especificaciones del Samsung S9 y S9+

Estándar

Samsung realizará un evento el 25 de febrero, donde la compañía presentará oficialmente el Galaxy S9 y el Galaxy S9 + antes de la presentación del Mobile World Congress de este año.

Pero gracias a Evan Blass de VentureBeat, tenemos una muy buena idea de qué esperar.

Blass ha publicado un conjunto de imágenes filtradas que muestran los próximos smartphones de Samsung, así como algunas de las especificaciones claves. Aunque tendremos que esperar el anuncio oficial de Samsung para saber cuáles son los precios, ya que la gran mayoría de los detalles ya han sido filtrados, Blass tiene un historial bastante buena filtrando este tipo de información.

Así que esto es lo que estamos esperando. Ambos teléfonos contarán con pantallas grandes y biseles delgados, pero el Galaxy S9 tendrá una pantalla de 5,8 pulgadas, mientras que el Galaxy S9 + tendrá una pantalla ligeramente más grande de 6,2 pulgadas. Básicamente se ven como el Galaxy S8 y S8 + del año pasado desde el frente.

Se espera que ambos incluyan los chips Qualcomm Snapdragon 845 cuando se distribuyan en los Estados Unidos y China, pero incluirán los con chips Samsung Exynos 9810 en otros mercados.

Samsung también ha movido el sensor de huellas digitales para que esté debajo de la cámara en lugar de al lado como en el S8/S8+.

El tamaño de la pantalla no es la única característica que distingue a los dos modelos de este año. Aquí hay un desglose de las especificaciones rumoreadas para cada modelo:

Samsung Galaxy S9

  • Pantalla de 5.8 pulgadas
  • Chip Qualcomm Snapdragon 845 (Estados Unidos & China) o Samsung Exynos 9810
  • 4GB de RAM
  • 64 GB de almacenamiento
  • Cámara trasera de 12MP con apertura variable (f / 1.5 a f / 2.4) y captura super lenta (480fps a 720p)
  • Cámara frontal de 8MP
  • Altavoces estéreo

Samsung Galaxy S9 +

  • Pantalla de 6.2 pulgadas
  • Chip Qualcomm Snapdragon 845 (Estados Unidos & China) o Samsung Exynos 9810
  • 6GB de RAM
  • 128GB de almacenamiento
  • Cámaras traseras duales de 12MP (incluida una con capacidades de apertura variable y super lenta igual a la del modelo S9)
  • Cámara frontal de 8MP
  • Altavoces estéreo

Blass dice que los nuevos smartphones deberían estar disponibles el 16 de marzo.

5 tips de seguridad sencillos que protejeran tu smartphone contra hackers

Malware para móvil
Estándar

En 2021, los ciberdelincuentes podrían causar pérdidas económicas a nivel mundial de $ 6 billones (6 000 000 000 000) según lo afirma un reporte de la empesa de seguridad informática Cybersecurity Ventures.

Las empresas de manera global gastarán aproximadamente $ 93 mil millones para agregar seguridad en línea y luchar contra las violaciones de datos sólo durante el presente año que recien empiza.

Pero los consumidores no son lo suficientemente proactivos. Todavía usan las mismas contraseñas fáciles de adivinar como «1234». O aún peor, no saben cómo funciona la autenticación de dos factores.

Eso significa que depende de tí proporcionar la defensa principal de tu equipo contra las crecientes amenazas en línea.

Tengamos presente que al proteger a nuestros clientes de los ciberdelincuentes, también estamos defendiendo a nuestro negocio de una demanda, una pérdida de confiabilidad a los ojos de nuestros clientes, lo cuál implicará una pérdida de ingresos.

Aquí hay cinco sencillos consejos de privacidad que deberías usar para protegerte a tí y a tus clientes/familiares de los cibercriminales este 2018.

Encripte el almacenamiento interno de su smartphone.

Es práctica común que almacene datos de sus clientes u otra información sensible en su dispositivo móvil, para poder tener acceso a dicha información incluso cuándo no se cuenta con cobertura de datos. Esto además acelera el proceso de acceder a la información que necesite y hace su vida más fácil y productiva.

Pero toda esa conveniencia entraña un riesgo. Por ejemplo, si su dispositivo móvil no está parchado/actualizado o existe un exploit de día 0 que está siendo activamente utilizado, los ciberdelincuentes podría remotamente acceder a la información que está en su dispositivo móvil y robarla. Otra posibilidad es que su smartphone es robado o perdido y contiene información muy importante.

Dado que los datos son almacenados localmente en el dispositivo móvil, estos son particularmente susceptibles de ser vulnerados por los cibercriminales si es que estos no están encriptados.

Dado que los robos de identidad llegaron a los $16 mil millones afectando a 15,4 millones de consumidores sólo en los EE. UU. en el 2016, esto debe servir como una motivación para no darle a los ciberdelincuentes una ventaja dejando nuestro dispositivo sin encriptar.

Incluso el cifrado local básico puede poner un obstáculo adicional entre los ciberdelincuentes y sus datos. Aunque no hay cifrado infalible, sin embargo, esta es nuesta primera línea de defensa en la batalla contra los ciberdelincuentes, que andan buscando tener acceso a nuestra información.

No reutilices passwords en tus servicios en línea y utiliza passwords fuertes.

Las personas en genral suelen usar la misma contraseña para todas sus servicios en línea. Con lo cuál una vez que por algún método de ataque (man-in-the-middle, phishing, etc.), los cibercriminales descubren nuestro password, pueden fácilmente acceder a todos los servicios que usamos en línea.

Piensas que esta práctica no es tan común, pues preparate, la próxima estadística te sorprenderá.

Más del 80% de los adultos reutilizan la misma contraseña en múltiples servicios. Y este porcentaje llega a ser tan alto como el 87% para los millennials (que se supone que son ‘nativos digitales’).

Y lo que es aún peor, estas contraseñas suelen ser muy débiles. Por ejemplo, las cinco contraseñas más comunes del 2014 fueron «123456», «password», «12345», «12345678» y «qwerty». Lo peor de todo es que esto no es una broma, las personas no toman con seridad la seguridad.

Y aunque esa estadística es un poco antigua, el aumento de los servicios y tecnologías en línea requerirán más cuentas de usuario per cápita. Lo que significa que, en todo caso, este problema probablemente ha empeorando.

Así que en conclusión usa passwords diferentes en todos tus servicios y que cada uno de tus passwords siga los lineamientos mínimos de passwords fuertes como que contenga números, letras y simbolos, de preferencia que no estén basados en palabras del diccionario y finalmente que no tengan una longitud mínima de 8 caracteres.

Has una copia de respaldo de tus datos en la nube.

Con el almacenamiento local, tienes acceso directo a tus datos y completo control sobre ellos. Esto significa que puedes protegerlos y respaldarlos como desee y puedes acceder a ellos cuando lo desees.

Es una sensación agradable a menos que, por supuesto, el costo asociado con el almacenamiento local en discos duros externos o NAS (Network Attached Storage) supere con creces sus beneficios.

No solo se debe crear y mantener un sistema de almacenamiento local, sino que también de ser el caso, se podría tener que contratar personal totalmente dedicado a la ciberseguridad y las copias de respaldo. Y eso sin mencionar el costo masivo de comprar más almacenamiento o el riesgo potencial de un desastre en el sitio.

En otras palabras, si bien el almacenamiento local se siente más seguro, no lo es.

El almacenamiento de datos en la nube, por otro lado, le brinda todos los beneficios de un sistema de almacenamiento local a una fracción del costo.

Los datos de respaldo siempre están fuera del sitio. Eso significa que un desastre en el sitio no puede paralizar totalmente tu negocio, el costo de actualización a un plan de datos más grande es mucho menos costoso y los proveedores de almacenamiento en la nube pueden ayudarte a solucionar problemas potenciales.

Entonces, además del almacenamiento en sí mismo, también está obteniendo soporte y experiencia. Es bueno recalcar que el soporte sólo es ofrecido por los servicios pagados, muchas de estas empresas que ofrecen almacenamiento en la nube usan el clásico sistema freemium, con cuentas de pruebas gratuita y otras de pago.

Esa facilidad de uso es probablemente la razón por la que se predice que el gasto anual global en servicios de nube pública crecerá a $ 141 mil millones para 2019. El 51% de las grandes y medianas empresas planea aumentar su inversión en la nube, y la consultora Gartner predice que no tener una política para la nube será algo del pasado para el 2020,  así como hoy es impensable que una empresa no tenga una política para el internet hoy.

Fuerza reinicio de sesiones en base a tiempo.

Cada pieza de tecnología es más vulnerable cuando es pirateada por métodos no técnicos.

El phishing, spear phishing, pretexting o carnada son solo algunas de las formas en que los ladrones de identidad intentan robar los datos de tus datos o los de tus clientes.

Desafortunadamente, la mayoría de las personas probablemente no tengan idea. Es por eso que la ingeniería social es tan efectiva en el robo de credenciales de usuarios desprevenidos. Es por ello que la ingeniería social es ahora la técnica principal para un cibercriminal. Se usa en dos tercios de todos los intentos de robo de información.

La ingeniería social es tan atractiva para los delincuentes porque no tienen que saber mucho sobre los sistemas de información o el tipo de hardware que usas, para obtener tu información o las de tus clientes. Como dice Michele Fincher de Social Engineer:

Los ingenieros sociales malintencionados no son necesariamente personas muy técnicas, pero son astutos e inteligentes en la forma en que piensan.

Afortunadamente, puedes protegerte a tí y a tus clientes de al menos algunos de estos intentos. Cuando un usuario deja su teléfono en su escritorio y alguien que está cerca lo roba, puedes salvar el día, teniendo una política que fuerce la autenticación de usuario cada cierto intervalo de tiempo.

Una vez más, esto no es infalible. Pero sí restringe la cantidad de veces que alguien puede intentar acceder la cuenta de un compañero de trabajo para robar sus datos confidenciales sin que este lo sepa.

Es una barrera de defensa más, aunque simple, para protegernos contra los ciberdelincuentes no técnicos. Este tipo de políticas ocasionalmente pueden resultar frustrante a tus clientes, es por ello que debes explicarles la razón de que esto sea así.

Usa autenticación de dos factores.

¿Recuerdas que anteriormente hablamos sobre esas personas que usan la misma contraseña en diferentes servicios en línea?

El mismo estudio que mencionamos encontró que, en promedio, seis contraseñas protegen 24 cuentas en línea diferentes.

Reutilizar las mismas contraseñas de acceso hace que sea fácil acceder a las cuentas. Pero incluso una variación básica de un password que usamos como plantilla en función del servicio en línea que usamos no es suficiente para disuadir a los sofisticados ciberdelincuentes por mucho tiempo.

Si un cibercriminal obtiene una de las contraseñas de alguno de los servicios que usas tú o uno de tus cliente a través de otra cuenta en línea, existe la posibilidad de que ahora también tengan acceso a la cuenta de ese cliente en tu negocio.

Considerando lo anterior, no debería de sorprendernos que dos de cada cinco personas hayan sufrido el hackeo de almenos una de sus credenciales en línea durante el 2015.

La autenticación de dos factores es una forma de protegerte a tí y a tus clientes de los ciberdelincuentes que intentan acceder a una cuenta de tu empresa. Hay dos escenarios en los que la autenticación de dos factores es fundamental.

1. Si el usuario inicia sesión desde un dispositivo nuevo y no reconocido.

2. Si la información del usuario es particularmente sensible.

Afortunadamente, las grandes compañías han comenzado a implementar esto con mayor frecuencia. Google, por ejemplo, está tratando de forzar la adopción de la autenticación de dos factores a sus usuario en sus plataformas más grandes.

También lo están usando en combinación con el cifrado de tránsito y la detección de amenazas. Por lo tanto, los usuarios de esta plataforma se están acostumbrando cada vez más al paso (y la molestia) adicionales para salvaguardar las cuentas críticas.

Puede sonar notablemente inconveniente para tus clientes. Después de todo, ¿qué pasa si el usuario no tiene su teléfono consigo para recibir un código de mensaje de texto?

Bueno, la mayoría de las veces, esa preocupación es completamente infundada. La gente revisa sus teléfonos miles de veces al día. Y gracias a la buena nomofobia (el miedo a no tener su teléfono), la mayoría de las personas rara vez dejan sus teléfonos en casa.

De hecho, tus clientes realmente podrían apreciar ese proceso de dos pasos. Siete de cada diez personas desconfían de las contraseñas, pero el 86% de las personas que usan 2FA sienten que sus cuentas son más seguras.

Por supuesto, 2FA probablemente no resolverá todo. Pero según Symantec, podría evitar el 80% de las infracciones de seguridad.

Conclusión.

En conclusión, los ataques llevados a cabo por los ciberdelincuentes, pueden dar lugar a varias pesadillas tanto para tí, como para su negocio.

Puede causar desconfianza a los usuarios de tu sistema, tus clientes pueden demandarte por daños generados por el robo o pérdida de información sensible, multas por parte de las autoridades o el pago de un rescate para recuperar tu información. O, por otro lado, puede ser una oportunidad para demostrar cuánto te preocupa la privacidad de tus clientes, más de lo que realmente les importa a ellos.

Porque la realidad es que la mayoría de los usuarios probablemente no se van a proteger a sí mismos. No entienden cómo funciona la ciberseguridad y definitivamente no saben cómo protegerse de los ciberdelincuentes.

Por otro lago, si estas leyendo este post significa que a tí si te importa y valoras tanto la seguridad como la privacidad de tus datos y los de tus clientes.

Espero que este post les haya sido de ayuda.

Fuentexda-developers.com

Dell anuncia una nueva serie de Chromebooks

Estándar

Las nuevas máquinas de la serie Dell Chromebook 5000 estarán disponibles en formatos en formato laptop o convertibles de 11.6 pulgadas. Se espera que los precios comiencen en $ 289 cuando la Dell Chromebook 5190 salga a la venta en febrero. El anuncio oficial fue hecho por Dell el día de ayer (24 de Enero de 2018).

He aquí lo que ha anunciado Dell:

Para complementar nuestra oferta integral de soluciones colaborativas, móviles y basadas en datos, nos complace anunciar la nueva serie Dell Chromebook 5000. Estos Chromebooks Dell (5190) están disponibles en formato de 11 pulgadas o 2 en 1 convertibles y ofrecen un rendimiento mejorado, más de 13 horas de duración de la batería, lo último en durabilidad para los estudiantes y funciones avanzadas hechas a medida para el ambiente del aula

Dell es el único fabricante de PC de nivel uno que tiene computadoras portátiles, tabletas y 2 en 1 totalmente robustos en su cartera de productos. Los aprendizajes y los elementos de diseño de las rigurosas pruebas realizadas sobre los productor reforzados también se abren camino en los productos educativos, que incluyen pantallas resistentes a arañazos, bisagras reforzadas, teclados resistentes a derrames y chasis diseñados para sobrevivir a caídas.

La serie Dell Chromebook 5000 está diseñada para resistir accidentes comunes que ocurren en el aula o en el camino con un nuevo diseño de chasis robusto que sobrevive a pruebas de caída de 48 pulgadas [120 cm] y pruebas de caída de 30 pulgadas [76.2 cm] en acero (la altura aproximada de un escritorio de aula en la superficie más dura posible). Además, Dell es el primer fabricante de Chromebook con la capacidad de afirmar que sus dispositivos pueden soportar 10,000 micro gotas. Con caídas de 4 pulgadas [10 cm] realizadas en múltiples ángulos, con lo cual Dell replica el daño observado en los dispositivos estudiantiles con un uso de dos a cuatro años.

Otras características nuevas y exclusivas de la serie Dell Chromebook 5000 incluyen opciones de cámara World Facing para crear videos, soporte de lápiz EMR para una experiencia de escritura de papel a papel natural, conectividad USB tipo C para conexiones sencillas a unidades externas y otros periféricos y procesadores Intel Celeron de dos o cuatro núcleos para un rendimiento más rápido. Los dispositivos Dell Chromebook 5190 estarán disponibles a partir de febrero de 2018 y los precios comenzarán en $ 289.

Espero que esta información les haya sido de utilidad.

¿Qué es ejecución especulativa?

Estándar

Con la aparición de Meltdown y Spectre la gran mayoría de usuarios de dispositivos móviles y computadoras han descubierto que sus CPU hacen algo llamado ejecución especulativa, pero muchos no tienen claro qué es o por qué se ha incluído en los microprocesadores. El objetivo de este post es clarificar ese concepto para aquellos que no lo logran asimilarlo.

Todo empiza con la definición más sencilla de una computadora que la Máquina de Turing, que de acuerdo a cómo lo definió Turing es:

… una ilimitada capacidad de memoria obtenida en la forma de una cinta infinita marcada con cuadrados, en cada uno de los cuales podría imprimirse un símbolo. En cualquier momento hay un símbolo en la máquina; llamado el símbolo leído. La máquina puede alterar el símbolo leído y su comportamiento está en parte determinado por ese símbolo, pero los símbolos en otros lugares de la cinta no afectan el comportamiento de la máquina. Sin embargo, la cinta se puede mover hacia adelante y hacia atrás a través de la máquina, siendo esto una de las operaciones elementales de la máquina. Por lo tanto cualquier símbolo en la cinta puede tener finalmente una oportunidad

Esto que parece tan enrevesado y genérico puede ser expresado de otra forma para describir una computadora digital moderna como: una máquina capaza de explorar secuencialmente una información almacenada en su memoria llamada programa, es capaz de interpretarla y ejecutar los comandos alli contenidos.

No importa que tan complejo sea un microprocesador, cuántos núcleos tenga o cuál sea la arquitectura internal del mismo, consideramos que se comporta como una Máquina de Turing.

No hay nada mejor que explicar con ejemlos, para ellos consideremos que tenemos un programa bastante sencillo como el siguiente:

t = a+b
u = c+d
v = e+f
w = v+g
x = h+i
y = j+k

El tipo más simple de procesador moderno ejecuta una instrucción por cada ciclo de reloj, por lo cual lo llamamos un procesador escalar. Por lo tanto el programa que mostramos como ejemplo anteriormente se ejecutaría en seis ciclos de reloj en un procesador escalar. El ejemplo más típico de procesador escalar es el ahora arcaíco Intel 486.

La forma obvia de hacer que un procesador escalar (o cualquier otro tipo de procesador) corra más rápido es aumentar la velocidad del reloj. Pero existe un límite físico de cuán rápido pueden cambiar su estado las puertas lógicas dentro de los procesador; Por lo tanto, los diseñadores de procesadores comenzaron a buscar maneras de hacer varias cosas a la vez dentro de los procesadores.

Un procesador superescalar en orden examina la secuencia entrante de instrucciones e intenta ejecutar más de una a la vez, usando una de varias tuberías (pipes en inglés), sujeto a dependencias entre las instrucciones. Las dependencias son importantes: podría pensarse que un procesador superescalar de dos vías podría emparejar las seis instrucciones en nuestro ejemplo de esta manera:

Tuberia-1   Tuberia-2
 t = a+b     u = c+d
 v = e+f     w = v+g
 x = h+i     y = j+k

Pero eso no tiene sentido, ya que tenemos que calcular v antes de poder calcular w, por lo que las instrucciones tercera y cuarta de nuestro ejemplo inicial no se pueden ejecutar a la vez. Nuestro procesador superescalar de dos vías en realidad no podrá encontrar nada para emparejar con la tercera instrucción, por lo que nuestro ejemplo se ejecutará en cuatro ciclos de la siguiente manera:

Tuberia-1   Tuberia-2
 t = a+b     u = c+d
 v = e+f
 w = v+g     x = h+i
 y = j+k

Como ejemplos de procesadores superescalares podemos mencionar al Intel Pentium y los procesadores basados en núcleos ARM Cortex-A7 que son utilizados en las tarjetas de prototipado Raspberry Pi, Banana Pi y Orange Pi. .

¿Cómo podemos obtener aún más rendimiento de un procesador superescalar?

Volviendo a nuestro ejemplo inicial, podemos ver que, aunque tenemos una dependencia entre v y w, tenemos otras instrucciones independientes más adelante en el programa que podríamos haber utilizado para llenar la tubería vacía durante el segundo ciclo. Un procesador superescalar fuera de orden tiene la capacidad de mezclar el orden de las instrucciones entrantes (nuevamente sujeto a dependencias) para mantener sus tuberías ocupadas.

Un procesador fuera de orden podría intercambiar efectivamente las instrucciones para calcular w y x en nuestro ejemplo de esta manera:

t = a+b
u = c+d
v = e+f
x = h+i
w = v+g
y = j+k

lo que le permite ejecutar el programa en sólo tres ciclos:

Tuberia-1   Tuberia-2
 t = a+b     u = c+d
 v = e+f     x = h+i
 w = v+g     y = j+k

Entre los ejemplos de procesadores superescalares fuera de orden se incluyen el Intel Pentium 2 (y la mayoría de los procesadores Intel y AMD x86 posteriores, con la excepción de algunos dispositivos Atom y Quark) y muchos núcleos ARM recientes, incluidos el Cortex-A9, el Cortex-A15, el Cortex-A17 y  el Cortex-A57.

¿Qué es la predicción de salto?

En nuestro ejemplo anterior tenemos un programa que se ejecuta linealmente. Los programas reales no son así por supuesto, también contienen ramas en las cuales el flujo de ejecución se bifurca, este tipo de instrucciones se suelen reprecentar por la palabra if. Una rama puede ser incondicional (por ejemplo un salto a otra línea) o condicional (en base a una condición lógica se decide si se sigue por una u otra rama). Además las instrucciones de salto puede ser directo (se especifica explícitamente una dirección de destino) o indirecto (se toma la dirección de destino de un registro, ubicación de memoria o de la pila del procesador).

Mientras busca instrucciones, un procesador puede encontrarse con una rama condicional que depende de un valor que aún no se ha calculado. Para evitar un bloqueo (el procesador no hace nada hasta que la dependencia se resuelva), debe adivinar qué instrucción buscar a continuación: la siguiente en orden de memoria (correspondiente a una rama no tomada) o la que está en el destino de la rama (correspondiente a una rama tomada). Un predictor de salto ayuda al procesador a hacer una suposición inteligente sobre si se tomará una rama o no. Lo hace mediante la recopilación de estadísticas sobre la frecuencia con que las ramas particulares se han tomado en el pasado.

Los predictores de salto modernos son extremadamente sofisticados y pueden generar predicciones muy precisas. Sin embargo, al ejecutar una serie de ramas elaboradas, un atacante puede entrenar de forma equivocada al pronosticador de rama para hacer que este tome malas predicciones.

Finalmente, ¿qué es ejecución especulativa?

Reordenar las instrucciones secuenciales es una forma poderosa de recuperar más paralelismos a nivel de instrucción, pero a medida que los procesadores se vuelven más potentes (capaces de triplicar o cuadruplicar las instrucciones ejecutadas en cada ciclo de reloj) se vuelve más difícil mantener ocupadas todas esas tuberías. Por lo tanto, los procesadores modernos han añadido la capacidad de especular qué código se ejecutará proximamente. La ejecución especulativa nos permite procesar instrucciones que podrían no ser necesarias (porque puede haber una ramificación): esto tiene como objetivo mantener un canal ocupado (que de otra forma estaría inactivo). Y si resulta que la instrucción no se ejecuta, solo tendriamos que descartar el resultado.

La ejecución especulativa de instrucciones innecesarias (y la infraestructura necesaria para permitir la especulación y el reordenamiento de instrucciones) consume energía extra, pero en muchos casos esto se considera un intercambio rentable para obtener un rendimiento superior. El predictor de salto se utiliza para elegir la ruta más probable a través del programa, lo que maximiza la posibilidad de que la especulación valga la pena.

Para demostrar los beneficios de la especulación, veamos otro ejemplo:

t = a+b
u = t+c
v = u+d
if v:
      w = e+f
      x = w+g
      y = x+h

Ahora tenemos que u depente de t, que v depende de u y además que x depende de w y y depende de x, en una disposición tal que un procesador fuera de orden, bidireccional y sin ejecución especulativa nunca podrá llenar su segunda tubería. Pasa tres ciclos computando t, u y v, luego de lo cual sabe si el cuerpo de la sentencia if se ejecutará, en cuyo caso pasará tres ciclos computando w, x, y y. Suponiendo que if (implementado por una instrucción de bifurcación) toma sólo un ciclo, nuestro ejemplo se ejecutaría en cuatro ciclos (si v resulta cero) o siete ciclos (si v no es cero).

Si el predictor de rama indica que es probable que se ejecute el cuerpo de la sentencia if, la ejecución especulativa reordenaría el programa de la siguiente manera:

t = a+b
u = t+c
v = u+d
w_ = e+f
x_ = w_+g
y_ = x_+h
if v:
      w = w_
x = x_
y = y_

Entonces ahora tenemos un paralelismo de nivel de instrucción adicional para mantener nuestras tuberías ocupadas de la siguiente manera:

Tuberia-1                      Tuberia-2
t = a+b                        w_ = e+f
u = t+c                        x_ = w_+g
v = u+d                        y_ = x_+h
if v: w = w_, x = x_, y = y_

Aunque el conteo de los ciclos está menos definido en los procesadores superescalares con ejecución especulativa fuera de orden, la rama y la actualización condicional de w, x y y son (aproximadamente) instántaneos, por lo cual nuestro ejemplo se ejecuta en (aproximadamente) tres ciclos de reloj.

De lo anterior se desprende por qué crear procesadores superescalares, con ejecución especulativa y fuera de orden representa una gran ganacia de rendimiento y de alli la razón de que todos lo hayan adoptado. Cómo se menciona hay un incremento en el consumo de enegía y la complejidad del procesador, pero eso es compensado con ganacias de rendimientos del 30% o más.

Ahora que los términos ya están más claros, puedes releer si quieres los posts que explican cómo funcionan las vulnerabilidades Meltdown y Spectre.

Para escribir este post nos basamos en el excelente post de Ebe Upton en el blog de la comunidad de Raspberry Pi.

 

Cómo verificar si tu PC está protegido contra Meltdown y Spectre

Estándar

Si hasta este momento no has instalado los parches desde Windows Update, hazlo inmediatamente ya que tu computadora está desprotejida contra las infames vulnerabilidades Meltdown y Spectre. Si quieres saber si eres vulnerable a ellas a continuación te mostramos cómo comprobar si estás expuesto.

Para estar completamente protegido contra Meltdown y Spectre, deberás actualizar tu UEFI o BIOS dependiendo de qué sistema use tu computadora. Estas actualizaciones de UEFI o BIOS contienen nuevo microcódigo para el microprocesador ya sea este Intel o AMD que agrega protección adicional contra estas vulnerabilidades. Lamentablemente, no se distribuyen a través de Windows Update, por lo que deben descargarse del sitio web del fabricante de tu computadora y debes instalarlos manualmente. De mi experiencia te puedo decir que las computadoras Dell que tienen activado el servicio Dell Update instalan las actualizaciones de BIOS/UEFI automáticamente, desconozco si esto funciona para otros fabricantes.

Existen dos métodos para saber si tu PC con Windows es vulnerable, el primero es el más sencillo y consiste en descargar la herramienta InSpectre, desarrollada por la firma de seguridad informática Gibson Research Corpotario. Pero, si eres un poco desconfiado de ejecutar el código desarrollado por otros en tu PC, Microsoft ha publicado una página en la cuál  detalla los pasos para saber si tu PC es vulnerable usando scripts de PowerShell.

Si está utilizando Windows 7 y deseas utilizar el script que proporciona Microsoft para saber si tu sistema es vulnerable, primero deberá descargar el software Windows Management Framework 5.0, que instalará la versión más reciente de PowerShell en tu computadora.  Sin este paso previo el script desarrollado por Microsoft no se ejecutará correctamente. Si usas Windows 10, ya tiene instalada la última versión de PowerShell.

El procedimiento para ejecutar el script provisto por Microsoft es el siguiente en Windows 10, hacemos click con el botón derecho del mouse en Inicio y seleccionamos «Windows PowerShell (Administrador)». Para Windows 7 u 8.1, busque en el menú Inicio «PowerShell», haga clic con el botón derecho del mouse y seleccione en el acceso directo «Windows PowerShell», asegurese de seleccionar «Ejecutar como administrador».

Escriba el siguiente comando en  PowerShell y presione Enter para instalar el script en su sistema:

Install-Module SpeculationControl

Si esta es la primera vez que instala módulos, probablemente se le solicitará que instale el proveedor NuGet, escriba «y» y presione Enter. También puede pasar que necesite escribir «y» nuevamente y presionar Enter para confiar el repositorio de software.

La política de ejecución estándar no le permitirá ejecutar este script. Por lo tanto, para ejecutarlo, primero guardará la configuración actual para que pueda restaurarlos más tarde. Luego, cambiará la política de ejecución para que se pueda ejecutar el script. Para hacer lo descrito anteriormente, ejecute los siguientes dos comandos en el PoweShell:

$SaveExecutionPolicy = Get-ExecutionPolicy
Set-ExecutionPolicy RemoteSigned -Scope Currentuser

Presione la tecla «y» y luego la tecla Enter cuando se le solicite que confirme.

Finalmente, para ejecutar el script de verificación provisto por Microsoft, ejecute los siguientes comandos:

Import-Module SpeculationControl
Get-SpeculationControlSettings

El script le mostrará como resultado el estado de su computadora y si está es vulnerable o no. En mi caso particular, luego de haber aplicado todos los parches de seguridad y las actualizaciones del BIOS/UEFI el resultado fue el siguiente:

En su caso particular, Ud. deberá buscar estas cosas:

  • El «Windows OS support for branch target injection mitigation» se refiere a la actualización de software de Microsoft. Querrá que esté presente para proteger contra los ataques de Meltdown y Spectre.
  • El «hardware support for branch target injection mitigation» se refiere a la actualización de firmware BIOS/UEFI que necesitará del fabricante de su computadora. Es altamente recomendable que esté presente porque le protegerá contra ciertas variantes de la vulnerabildiad Spectre.
  • El «Hardware requires kernel VA shadowing» se mostrará como «True» en el hardware de Intel, que es vulnerable a Meltdown, y «False» en el hardware de AMD, que no es vulnerable a Meltdown. Incluso si tiene hardware Intel, está protegido mientras esté instalado el parche del sistema operativo y «Windows OS support for kernel VA shadow is enabled» dice «True».

Este comando también muestra si su CPU tiene la función de hardware «PCID performance optimization» que hace que la reparación funcione más rápidamente. Las CPU de Intel Haswell y posteriores tienen esta característica, mientras que las CPU Intel anteriores no cuentan con este soporte de hardware y es posible que el rendimiento de su computadora se vea afectado después de instalar los parches de seguridad.

Para restablecer la política de ejecución a su configuración original después de que haya terminado, ejecute el siguiente comando:

Set-ExecutionPolicy $SaveExecutionPolicy -Scope Currentuser

Presione la tecla «y» y luego Entrar cuando se le solicite confirmar.

Espero que está información les haya sido de utilidad.

¿Qué microprocesadores/computadoras no están afectados por Meltdown o Spectre?

Estándar

Existen muy pocos microprocesadores que no esten afectados ya sea por Meltdown o Spectre, entre algunos de ellos tenemos estas arquitecturas de ARM:

  • ARM1176
  • Cortex-A7
  • Cortex-A53

Todos ellos utilizados en los Raspberry Pi 1, 2 y 3. Eben Upton, fundador del proyecto Raspberry Pi ha hecho un muy interesante post en el blog de su fundación en el cuál explica por qué el Raspberry Pi no es vulnerable ni a Meltdown, ni a Spectre. En la conclusión de su extenso post nos dice:

Los microprocesadores modernos hacen todo lo posible para preservar la abstracción de que son máquinas escalares secuenciales que acceden a la memoria directamente, mientras que de hecho usan una serie de técnicas que incluyen almacenamiento en caché, reordenamiento y ejecución especulativa de instrucciones para ofrecer un rendimiento mucho más alto de lo que un simple procesador podría esperar conseguir. Meltdown y Spectre son ejemplos de lo que sucede cuando razonamos sobre la seguridad en el contexto de esa abstracción, y luego encontramos discrepancias menores entre la abstracción y la realidad.

La falta de ejecución especulación en los núcleos ARM1176, Cortex-A7 y Cortex-A53 utilizados en Raspberry Pi nos hace inmunes a ataques de este tipo.

Pero los SoC de Broadcom usados por los Raspberry Pi no son los únicos inmunes a estas vulnerabilidades, también existen varios otros SoC que usan estas arquitecturas ARM y por tanto no están afectados entre ellos los de la firma china AllWinner: A20, A31, H3 y H5, muy utilizados en tablets baratas y tarjetas de prototipo como el BananaPi o el OrangePi.

Dado que tengo una Raspberry Pi 1, 2 y 3 y un OrangePi PC decidí verificar si es cierto que no están afectados por Meltdown (CVE-2017-5754) y Spectre variante 1 (CVE-2017-5753) y variante 2 (CVE-2017-5715). Para ello utilicé este script de GitHub que verifica si un sistema Linux (no importa la distribución) es vulnerable a través de cualquiera de las tres fallas de ejecución especulativa. Aquí los resultados:

OrangePi PC (ARMv7 Processor rev 5 (v7l) usando ARMbian 8 Jessie):

Raspberry Pi 1 (ARMv6-compatible processor rev 7 (v6l) usando Raspbian Stretch Lite):

Raspnerry Pi 2 (ARMv7 Processor rev 5 (v7l) usando Raspbian Stretch Lite):

Raspberry Pi 3 (ARMv7 Processor rev 4 (v7l) usando Raspbian Stretch Lite):

¿Cómo funciona la vulnerabilidad Spectre?

Estándar

Spectre y Meltdown explotan el mismo defecto en el microprocesador, pero usan diferentes métodos para acceder a la información que debería estar protegida. Lo que ocurre en ambos casos es que el CPU está hecho para ejecutar instrucciones que nunca deberían ejecutarse como parte de su hardware de ejecución especulativa. Una vez que el procesador descubre que no debería haber llevado a cabo tales instrucciones las elimina todas, pero los rastros de las instrucciones que se llevaron a cabo aún permanecen en el caché y pueden ser accedidos de una forma indirecta. Para encontrar los datos que están en la memoria caché solo se necesita una comparación de los tiempos de acceso para revelar cuál de un posible conjunto de datos ha sido procesado. Los datos que se almacenaron en la memoria caché le dan el valor de los datos restringidos a los que nunca debería haber tenido acceso.

El exploit Meltdown utiliza un intento de acceso al espacio de direcciones del kernel del sistema operativo para lanzar una excepción, pero no antes de que la ejecución especulativa haya recuperado y utilizado los datos fuera de límites y haya dejado un rastro en la memoria caché. Meltdown es un exploit dirigido al núcleo y, como tal, es bastante fácil de contrarrestar al mantener separadas las direcciones del kernel y del usuario, y esta es la base del arreglo que se está implementando para la mayoría de los sistemas operativos en este momento.

Sin embargo la vulnerabilidad Specter es mucho más difícil de manejar, aunque se basa en los mismos principios que Meltdown, porque se puede usar para atacar cualquier programa y ese programa no necesita tener ningún defecto para ser vulnerable.

Spectre viene en dos formas. El primero es un clásico ataque de desbordamiento de búfer. Sin embargo, en este caso, el búfer está protegido contra el desbordamiento y aún así se desborda. El mecanismo se parece mucho a Meltdown, pero hay algunas diferencias.

Considera lo siguiente:

if (x < array1_size)  
            y = array2[array1[x] ];

Siempre que x sea más pequeño que el array1_size, no pasa nada malo y la prueba es para evitar que x vaya más allá del final de array1, que es exactamente lo que todo buen programador debería hacer. Sin embargo, este análisis ignora la predicción de ramas y la ejecución especulativa. La mayoría de los procesadores modernos llevan un registro de la frecuencia con que se toma una rama y esto se usa para predecir lo que sucederá. En este caso, supongamos que la predicción de bifurcación es que x es usualmente menor que array1_size, entonces es razonable ejecutar la instrucción especulativamente antes de que la condición haya sido evaluada. Podemos hacer arreglos para que array1_size no esté en la caché y, por lo tanto, el tiempo para evaluar la condición es relativamente alto en comparación con el tiempo para ejecutar especulativamente las siguientes instrucciones. También podemos asegurarnos de que el predictor de bifurcación piense que la instrucción es la próxima instrucción que se va a producir, capacitándola con muchos ejemplos válidos de la prueba y el acceso a la matriz. Spectre necesita un poco de preparación para trabajar bien.

Cuando la condición se evalúa finalmente, el procesador se da cuenta de su error y descarta el cálculo, pero en este punto el contenido de array1[x], que está en la memoria más allá del final de la matriz, se ha utilizado para buscar un elemento de la array2 que ahora está en el caché. Tenga en cuenta que los contenidos de la array1[x] no están en la memoria caché, pero esto no tiene importancia porque, al encontrar qué elemento de la array2 está en la memoria caché, podemos deducir la array1[x]. Todo lo que necesitamos hacer es acceder a cada elemento de array2 y medir el tiempo que lleva: el acceso rápido es el que está en el caché.

Este es un ataque bastante fácil y funciona con programas que aparentemente no son vulnerables al desbordamiento de búfer. Esto hace que solucionar el problema sea mucho más difícil. La única solución directa al problema es cambiar el microcódigo del microprocesador para que el caché no tenga ningún cambio durante la ejecución especulativa y por el momento, no hay signos de esto, aunque Intel está haciendo comentarios sobre cómo solucionar el problema.

Lo sorprendente es que Spectre puede implementarse en un navegador haciendo uso nada más que de JavaScript. Esto es sorprendente porque se supone que los navegadores han sido hechos para que la medición del tiempo en alta resolución sea imposible para impedir ataques de fingerprinting y otros exploits similares. El paper donde se presenta Spectre tiene un interesante descripción del problema:

JavaScript no proporciona acceso a la instrucción rdtscp y Chrome degrada intencionalmente la precisión de su temporizador de alta resolución para disuadir ataques de tiempo usando performance.now(). Sin embargo, la función Web Worker de HTML5 simplifica la creación de un subproceso separado que disminuye repetidamente un valor en una ubicación de memoria compartida. Este enfoque produjo un temporizador de alta resolución que proporcionó una resolución suficiente.

No está claro de lo descrito anteriormente que Intel no fallara en pensar en las implicaciones de lo que sucede cuando agrega una nueva característica.

Además de un simple desbordamiento de búfer, el otro mecanismo que Specter puede hacer uso de la ejecución especulativa de instrucciones en el código de la víctima es en condiciones en las que el código nunca debe ejecutarse. Para ello, el predictor de bifurcación debe ser entrenado para esperar un salto a una ubicación posiblemente ilegal. Parece que esto es posible porque el predictor de rama ignora cualquier error, según el papel de Spectre:

El predictor de rama aprende desde saltos a destinos ilegales. Aunque se desencadena una excepción en el proceso del atacante, se puede capturar fácilmente (por ejemplo, utilizando try … catch en C++). El predictor de rama hará predicciones que envíen otros procesos al destino ilegal.

Este es un exploit mucho más difícil de implementar en el mundo real porque necesita saber mucho sobre el código que está siendo atacado. Es muy similar en enfoque a un ataque de Programación Orientada a Retorno (ROP). Sin embargo, al igual que el desbordamiento de búfer, no necesita que el código atacado sea defectuoso de ninguna manera.

Es una característica tanto de Meltdown como de Spectre que trabajan con código que está escrito de una manera absolutamente perfecta desde el punto de vista de la seguridad.

Aunque no se pretende que sea una forma de «cómo corregir» las dos vulnerabilidades, vale la pena mencionar que los intentos actuales de solucionar los problemas realmente no solucionan su causa. La única solución real es cambiar la arquitectura del procesador para que la ejecución especulativa ya no provoque ningún cambio micro arquitectónico. En otras palabras, la ejecución especulativa tiene que hacer un mejor trabajo de limpieza después de sí misma. Esto solo se puede lograr mediante cambios en el microcódigo que controla el procesador. Intel que es quien debe emitir dichas actualizaciones y por lo general, se instalan como parte de una actualización del BIOS/UEFI. ¿Es esto lo que Intel prometió como solución hace unas pocas semanas?, aún no lo sabemos.

Pero de ser así, no deberían ser necesarias las correcciones del sistema operativo y del navegador que se están trabajando actualmente. Lo cuál puede ser una pista de que probablemente necesitaremos esperar una nueva familia de CPU para estar seguros de haber dado vuelta a la página.

Sin una corrección de microcódigo, el mecanismo básico de Meltdown y Spectre sigue operativo y es solo cuestión de tiempo antes de que alguien piense de otra manera para usar la ejecución especulativa, la predicción de bifurcación y el tiempo de caché para crear una nueva amenaza.

Aquí algunos links de fuentes usadas para este post sobre Meltdown:

¿Cómo funciona la vulnerabilidad Meltdown?

Estándar

Las noticia de los últimos días en los medios especializados hablan sobre las vulnerabilidades  Meltdown y Spectre que parecen afectar a una amplia gama de CPU actuales, particularmente en procesadores Intel que datan desde 1995 en adelante. La parte interesante de la historia es cómo funcionan estas vulnerabilidades y saber si existen PoC (Proof Of Concept) o exploits que hagan uso de las mismas. Además es interesante saber cómo fue posible que estas vulnerabilidades pasaran desapercibidas durante tanto tiempo sin que nadie lo notara.

De las dos vulnerabilidades Metldown, es la más fácil de comprender, implementar y aparentemente protegerse contra ella. Se deriva de la forma en que un procesador moderno intentará ejecutar programas más rápido mediante el uso de la «ejecución especulativa«. Si Ud. sabe cómo funcionan las CPU en el nivel más simple, se sorprenderá al descubrir cuán sofisticado se ha vuelto un procesador moderno. Por ejemplo, la mayoría de las CPU modernas ejecutarán código en paralelo, incluido el código que quizás nunca se necesite. El ejemplo más habitual es la predicción de bifurcación. Si el flujo de control se divide en una instrucción IF, entonces puede optimizar el uso del microprocesador, ejecutando la rama que considera más probable antes de realizar la evaluación de la condición de salto. Luego de la evaluación de la condición lógica puede resultar que evaluó la rama incorrecta, entonces descarta el código ejecutado y en su lugar ejecuta la otra rama del IF.

Todo esto parece muy inocente y la idea de la ejecución especulativa no parece ser un riesgo de seguridad. ¿Qué podría salir mal?

Pero existen mentes muy creativas, especialmente la de los «hackers» pueden ser capaces de transformar hasta la característica más inocente en una vulnerabilidad y así es como ocurrió con la ejecución especulativa. Supongamos que se escribe un código que carga algunos datos que se encuentran en un área protegida del sistema operativo, el espacio del kernel y utiliza estos datos para calcular la dirección de un elemento en una matriz, un código tan inocente como este:

data = getByte (kernalAddress)
variable = probeArray (datos)

La instrucción getByte devuelve un valor en el rango de 0 a 255 y esto se usa para acceder a un elemento de probeArray, que tiene 255 elementos de longitud. Si esto funciona, habría leído con éxito un byte de datos del espacio del kernel, algo que se supone que no deberíamos hacer porque se trata de datos privados y poe lo general es alli dónde se almacenan contraseñas, claves de cifrado, etc. De hecho, no funciona porque la memoria kernel está protegida y la instrucción getByte fallará con una excepción de tiempo de ejecución y el resto del programa terminará. Por lo tanto tú nunca podrías acceder al elemento de la matriz probeArray en función del valor de la variable data.

Ahora añadamos a este simple código descrito líneas arriba la ejecución especulativa. Es muy probable que el procesador haya ejecutado el acceso probeArray especulativamente antes de que se produzca la excepción; las excepciones son complejas y lentas. Esto todavía no es un problema de seguridad porque los resultados especulativos se descartan y no están disponibles en el espacio del usuario.

No se debería producir ningun daño ya que la ejecución especulativa finalmente no ha hecho ningún cambio en el sistema.

Pero lo anterior no es del todo cierto porque se ha accedido a un elemento de probeArray y ahora está en la memoria caché del CPU. Si antes de ejecutar el programa nos aseguramos de que ninguno de los elementos de probeArray estuviera en el caché del CPU. Entonces, ahora todo lo que tenemos que hacer es leer cada elemento de probeArray y medir cuánto tarda el acceso. El acceso que es más rápido que el resto es el elemento que fue almacenado en caché por la ejecución especulativa. Una vez que sabemos qué elemento se almacenó en caché, sabremos qué valor existe en esa posición relativa del espacio de kernel.

La ejecución especulativa cambió el estado de la arquitectura del CPU y esto proporciona un canal secreto a través del cual podemos leer los datos protegidos en el espacio de kernel.

Para entenderlo mejor veamos el siguiente diagrama extraído del paper oficial de Meltdown:

Esto significa que ahora podemos leer cualquier ubicación de memoria del espacio de kernel y descubrir qué se almacena allí simplemente tratando de ejecutar un acceso ilegal y haciendo uso de la ejecución especulativa y el almacenamiento en caché para encontrar qué datos se habrían recuperado si no hubieran sido ilegales.

Con algunas adiciones al sencillo código anterior, que básicamente es agregar el código para el manejando la excepción de tiempo de ejecución de falta de privilegios, es cómo los investigadores de Google Project Zero implementaron un código que permite verificar la existencia de Meltdown. Aquí el texto que aparece en el paper:

Con el manejo de excepciones, logramos velocidades de lectura promedio de 123 KB/s cuando se filtran 12 MB de memoria del kernel. De los 12 MB de datos del kernel, solo el 0.03% se leyeron incorrectamente. Por lo tanto, con una tasa de error de 0.03%, la capacidad del canal es 122 KB/s.

Meltdown, no funciona en los procesadores AMD y ARM en el sentido de que no recupera ningún dato válido, sin embargo, se demostró que el principio general funciona en ambas arquitecturas y estas ejecutaron instrucciones más allá de la instrucción ilegal. Una de las razones por las cuales se especula que Meltdown no funciona en AMD y ARM podría ser el momento exacto de la excepción y que todo lo que se necesita para que funcione es algún ajuste del código para conseguir un mejor timing del mismo.

La solución para Meltdown es deshabilitar cualquier asignación de memoria entre kernel y memoria de usuario, aparte de las áreas que necesitan compartirse, por ejemplo, tablas de interrupción. Esto se hace mediante el parche KAISER que está disponible para Linux. Una protección más avanzada y mejor requiere el uso de la indirección para ocultar las direcciones del kernel – código de trampolín. El gran inconveniente de estas soluciones es que vuelve más lentos a los programas que hacen un uso intensivo del CPU.

Aquí cómo lo explica el equipo que descubrió esta vulnerabilidad:

Meltdown cambia la granularidad de ser comparativamente baja espacio/temporalmente hablando, por ejemplo, de 64 bytes cada pocos cientos de ciclos para los ataques de caché, a una granularidad arbitraria, permitiendo que un atacante lea cada bit. Esto es algo contra lo que ningún algoritmo (criptográfico) puede protegerse. KAISER es una solución de software a corto plazo, pero el problema que descubrimos es mucho más significativo.

Se puede culpar a Intel y a los otros fabricantes de microprocesadores si es que lo deseamos, pero diseñar hardware para que ofrezcan un gran rendimiento es un trabajo difícil. Si el enfoque del diseño es el rendimiento, entonces debemos aceptar como un efecto colateral que la seguridad se verá afectada,  es tal vez por ello que los descrubridores de Meltdown nos dan finalmente un mensaje positivo de cada al futuro:

Esperamos que Meltdown y Specter abran un nuevo campo de investigación para descubrir en qué medida las optimizaciones de rendimiento cambian el estado microarquitectónico, cómo este estado se puede traducir en otro estado arquitectónico y cómo se pueden prevenir tales ataques.

Aquí algunos links de fuentes usadas para este post sobre Meltdown:

Aplicaciones que pueden robar tu password de Facebook han sido encontradas en el Android Play Store

Malware para móvil
Estándar

Incluso después de muchos esfuerzos realizados por Google el año pasado, las aplicaciones maliciosas siempre logran introducirse en la tienda de aplicaciones de Google, el muy conocido Play Store.

Los investigadores de seguridad ahora han descubierto un nuevo tipo de malware, denominado GhostTeam, en al menos 56 aplicaciones en el Google Play Store que están diseñadas para robar credenciales de inicio de sesión en Facebook y mostrar agresivamente anuncios emergentes a los usuarios afectados.

GhostTeam ha sido descubierto de forma independiente y simulatánea por dos firmas de seguridad informática, Trend Micro y Avast, las aplicaciones maliciosas se disfrazan como varias utilidades (entre ellas por ejemplo como una aplicación de linterna, escáner de código QR o como una brújula), utilidades de aumento de rendimiento (como transferencia de archivos y purga de archivos antiguos), entretenimiento, estilo de vida y por supuesto aplicaciones para descarga de video.

Al igual que la mayoría de las aplicaciones de malware, estas aplicaciones de Android no contienen ningún código malicioso a simple vista, esta es la razón por la cuál son admitidas en el Play Store de Google.

Una vez instalado, primero confirma si el dispositivo no es un emulador o un entorno virtual (para evitar ser detectados por una auditoría automatizada) y luego de ello descarga el malware como una actualización, es en este momento que solicita a la víctima que apruebe los permisos de administrador del dispositivo para ganar persistencia en el dispositivo.

En el blog de Trend Micro se menciona el siguiente App de descarga de video cómo una de las afectadas por GhostTeam:

De acuerdo al informe de Avast: «La aplicación de descarga recopila información sobre el dispositivo, como ID de dispositivo único, ubicación, idioma y parámetros de visualización, […].La ubicación del dispositivo se obtiene de la dirección IP que se utiliza al contactar servicios en línea que ofrecen información de geolocalización para direcciones IP.»

Tan pronto como los usuarios abren su aplicación de Facebook, el malware inmediatamente simula una desconección y solicita volver a verificar la cuenta de inicio de sesión en Facebook. En lugar de explotar alguna vulnerabilidad del sistema la aplicación maliciosa utiliza el clásico esquema de phishing para realizar el trabajo de robo de contraseña.

Estas aplicaciones falsas simplemente lanzan un componente WebView con una página de inicio de sesión similar a Facebook y le piden a los usuarios que inicien sesión. Aparentemente, el código de WebView roba el nombre de usuario y contraseña de Facebook de la víctima y los envía a un servidor remoto controlado por hackers.

Los investigadores de Trend Micro advierten que estas credenciales robadas de Facebook pueden reutilizarse posteriormente para entregar «malware mucho más perjudicial» o «amasar un ejército de cuentas en redes sociales zombis» para difundir noticias falsas o distribuir malware de minería de criptomonedas.

Según los investigadores de seguridas de ambas empresas, coinciden en señalar que la mayoría de los usuarios afectados por el malware GhostTeam residen en países emergentes como: India, Indonesia, Brasil, Vietnam y Filipinas.

Además de robar las credenciales de Facebook, el malware GhostTeam también muestra anuncios emergentes agresivamente manteniendo siempre el dispositivo infectado en alerta al mostrar anuncios no deseados en el backgroud, con lo cuál la batería del dispositivo se descarga más rápidamente de lo usual y el plan de datos es consumido muy rápidamente. Si Ud. sufre estos síntomas es muy probable que su smartphone Android haya sido infectado por GhostTeam.

Luego de que los investigadores de seguridad informaran a Google del descubrimiento de este malware, esta ha eliminado todas las aplicaciones del Play Store. Sin embargo, los usuarios que ya hayan instalado una de esas aplicaciones en sus dispositivos deben asegurarse de tener habilitada Google Play Protect. Si no tienes habilitado Google Play Protect y no deseas hacerlo porque piensas que puede espiarte, entonces la única forma segura de deshacernos del malware es remover la aplicación y luego aplicarle al smartphone un factory reset.

Para los usuarios que no hayan oído hablar de ella, la función de seguridad Play Protect utiliza aprendizaje automático y análisis de uso de la aplicación para eliminar (es decir, desinstalar) las aplicaciones maliciosas de los teléfonos inteligentes Android de los usuarios, en un esfuerzo por evitar cualquier daño adicional.

Aunque las aplicaciones maliciosas que flotan en la tienda de aplicaciones oficial son una preocupación interminable para Google, la mejor manera de protegerse es siempre estar alerta cuando se descargue aplicaciones y siempre verificar los permisos y revisiones de la aplicación antes de descargar una.

Además, les recomiendo que tengan habilitado en Facebook el two-factor-authentication, de esa manera a pesar de que su password sea robado, este no podrá ser usado por los ciberdelincuentes.

Espero que este post les haya sido de utilidad.