Alerta: Herramienta de hacking multiplataforma puede controlar remotamente tu computadora

Estándar

¿Estás usando Linux o Mac OS? Crees que por eso tu sistema es inmune a los virus y la mayoría de amenazas en líneas, pues deberías leer esto.

Un grupo de ciberdelincuentes utilizan ahora una nueva herramienta de malware llamada CrossRAT que les permite espiar de una forma “indetectable” a todos los sistemas operativos: Windows, macOS, Solaris y Linux.

La semana pasada una campaña mundial de espionaje móvil que recopila una gran cantidad de valiosa información personal de las víctimas desde el 2012 fue descubierta accidentalmente, gracias a un servidor expuesto en Internet.

Es uno de los primeros ejemplos conocidos de una exitosa operación de hackeo a gran escala de smartphones en lugar de computadoras.

El grupo de amenaza persistente avanzada (APT, por sus siglas en inglés), apodado Dark Caracal, afirmó haber robado cientos de gigabytes de datos, incluida información de identificación personal y propiedad intelectual, de miles de víctimas en más de 21 países diferentes, según un nuevo informe del Electronic Frontier Foundation (EFF) y la firma de seguridad Lookout.

Aunque el informe reveló las exitosas operaciones de piratería a gran escala del grupo contra smartphones en lugar de computadoras, también arrojó luz sobre un nuevo malware multiplataforma llamado CrossRAT (versión 0.1), que se cree fue desarrollado por, o para , el grupo Dark Caracal.

CrossRAT es un troyano de acceso remoto multiplataforma que puede atacar a los cuatro sistemas operativos de escritorio más populares, Windows, Solaris, Linux y macOS, permitiendo a los atacantes remotos manipular el sistema de archivos, tomar capturas de pantalla, ejecutar ejecutables arbitrarios y ganar persistencia en los infectados sistemas.

Según los investigadores, los hackers de Dark Caracal no dependen de ningún “exploits de día cero” para distribuir su malware; en su lugar, utiliza ingeniería social básica a través de publicaciones en grupos de Facebook y mensajes de WhatsApp, alentando a los usuarios a visitar sitios web falsos controlados por hackers y descargar aplicaciones maliciosas.

CrossRAT está escrito en Java, lo que ha facilitado la descompilación del mismo por parte de ingenieros e investigadores de seguridad informática.

Dado que en el momento de escribir este post solo dos de las 58 soluciones antivirus populares (según VirusTotal) pueden detectar CrossRAT, el ex-hacker de la NSA Patrick Wardle decidió analizar el malware y proporcionar una descripción técnica integral que incluye su mecanismo de persistencia, de comando, comunicación y control, así como sus capacidades.

CrossRAT 0.1 Un malware de vigilancia persistente multiplataforma.

Una vez ejecutado en el sistema de destino, el implante (un archivo llamado hmar6.jar) primero verifica el sistema operativo en el que se está ejecutando y luego se instala en consecuencia.

Además de esto, el implante CrossRAT también intenta recopilar información sobre el sistema infectado, incluida la versión del Sistema Operativo instalado, la versión del kernel y la arquitectura de la computadora.

Además, para los sistemas Linux, el malware también intenta consultar los archivos del sistema para determinar que distribución es, como por ejemplo Arch Linux, Centos, Debian, Kali Linux, Fedora y Linux Mint, entre las muchos que existen.

CrossRAT luego implementa mecanismos de persistencia específicos para cada tipo de Sistema Operativo, para (re)ejecutar automáticamente cada vez que se reinicia el sistema infectado y registrarse en el servidor de C&C (Comando & Control), permitiendo a los atacantes remotos enviar comandos y extraer datos de las computadoras infectadas.

Según informaron investigadores de Lookout, la variante CrossRAT distribuida por el grupo de piratería Dark Caracal se conecta al dominio ‘flexberry.com’ en el puerto 2223, cuya información está codificada en el archivo ‘crossrat/k.class’.

CrossRAT incluye el módulo Inactivo Keylogger.

El malware ha sido diseñado con algunas capacidades de vigilancia básicas, que se activan solo cuando reciben los comandos predefinidos respectivos del servidor de C&C.

Curiosamente, Patrick notó que CrossRAT también ha sido programado para usar ‘jnativehook’, una biblioteca Java de código abierto para escuchar eventos de teclado y mouse, pero el malware no tiene ningún comando predefinido para activar este keylogger. Probablemente esta medida fue tomada para evitar la detección heurística implementada en ciertos antivirus.

¿Cómo comprobar si está infectado con CrossRAT?

Debido a que CrossRAT persiste en una manera específica dependiendo del sistema operativo, la detección del malware dependerá del sistema operativo que esté ejecutando en la computadora de la víctima.

Para Windows:

  • Compruebe la clave de registro ‘HKCU\Software\Microsoft\Windows\CurrentVersion\Run\’.
  • Si está infectado, contendrá un comando que incluye las siguientes palabras claves: java, -jar y mediamgrs.jar.

Para macOS:

  • Compruebe el archivo jar, mediamgrs.jar, en ~/Library.
  • Busque también el agente de lanzamiento en /Library/LaunchAgents o ~/Library/LaunchAgents llamado a mediamgrs.plist.

Para Linux:

  • Verifique si existe un archivo jar llamado mediamgrs.jar en /usr/var.
  • Busque también un archivo ‘autostart’ en ~/.config/autostart probablemente llamado mediamgrs.desktop.

Espero que este post les haya sido de utilidad y lo compartan de ser así el caso.

Los hackeos de “jackpotting” a cajeros electónicos llegan a EE.UU.

Estándar

Para algunos ladrones de cajeros automáticos (ATM), la modalidad clásica de captura de los datos de la tarjeta de débito/crédito implica demasiada paciencia; prefieren simplemente tomar el dinero y correr. El Servicio Secreto de Estados Unidos advirtió a los fabricantes de cajeros automáticos Diebold Nixdorf y NCR que los “hackeos”, donde los delincuentes obligan a la máquina a arrojar grandes sumas de dinero, llegaron a los Estados Unidos después de años de crear problemas en Asia, Europa y México. Los ataques se han enfocado principalmente en los cajeros automáticos Opteva de carga frontal del fabricante Diebold que se ubican por lo general en tiendas minoristas, cadenas de comida rápida y gasolineras. Para ello los delincientes se aprovechan de una combinación de malware y hardware para realizar los robos.

En ataques anteriores, los ladrones se disfrazaron de técnicos para evitar llamar la atención. Después de eso, conectaron una computadora portátil con una imagen del sistema operativo y el malware del cajero automático (Diebold también mencionó que en algunos casos reemplazaron el disco duro por completo). El investigador de seguridad Brian Krebs entiende que los cajeros automáticos estadounidenses han sido afectados con Ploutus.D, una variante del malware “jackpotting” que se lanzó por primera vez en 2013. La imagen manipulada del sistema operativo debe combinarse con el cajero automático para funcionar, pero eso no es tan difícil como podría suponerse, los intrusos usaron endoscopios para encontrar y presionar el botón de reinicio necesario dentro de la máquina. Una vez hecho esto, conectaron teclados y usaron códigos de activación para limpiar cajeros automáticos en cuestión de minutos.

Los cajeros eletrónicos de NCR no han sido víctimas de estos ataques aún, pero advirtió que se trataba de un “problema de toda la industria” e instó a las compañías a utilizar precauciones al usar sus cajeros automáticos.

Definitivamente es posible frustrar ataques como este. El Servicio Secreto advirtió que los cajeros automáticos que todavía usan Windows XP son un objetivo particularmente fácil y que la actualización a Windows 7 (y mucho mejor si es a Windows 10) protegería contra estos ataques específicos. Diebold también recomendó actualizar al firmware más reciente y usar las configuraciones más seguras posibles. Y ambas organizaciones recomendaron cambios físicos de seguridad, como el uso de cajeros automáticos de carga trasera, bloqueando el acceso físico y vigilando de cerca las actividades sospechosas, como abrir la parte superior de la máquina.

La mayor problema, por supuesto, es que las empresas que operan los cajeros automáticos no han sido diligentes o pueden tener dificultades para justificar económicamente las actualizaciones. Es revelador que las máquinas han sido víctimas de este tipo de ataque, han estado utilizando Windows XP, una plataforma de hace 16 años cuyo soporte oficial finalizó en 2014. No hay muchas probabilidades de que las empresas mantengan actualizados sus cajeros automáticos y mucho menos que los reemplacen con modelos más seguros o desplegar defensas avanzadas. Es posible que no haya un intento generalizado de combatir el malware jackpot en los EE.UU., hasta que el problema sea demasiado grande como para poder ignorarlo.

Fuente: Engadget.

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: