• feed

nota / 08/01/2018

Las máquinas se están derritiendo

Meltdown
Meltdown

tl;dr

  • Meltdown es una vulnerabilidad que permite que algunos programas engañen a la computadora para que entregue información que está reservada para el sistema operativo y que pueda ser aprovechada de manera maliciosa, en contra de lxs usuarixs, por ej. filtrando una contraseña.

  • Afecta a todos los procesadores Intel.

  • Para mitigar esta vulnerabilidad, recomendamos enfáticamente que actualices el sistema operativo de tus dispositivos y tus navegadores.

  • Kéfir está implementando medidas de seguridad y cuidados en sus servidores y estará en contacto con lxs habitantes para mantenerlxs al tanto de avances y para avisar en caso de tener que suspender totalmente el ecosistema (“servicios”).

  • Spectre engaña otras aplicaciones en el acceso a espacios arbitrarios en la memoria. Los dos ataques usan canales paralelos para obtener información del espacio de memoria al que accedieron. Spectre todavía no tiene una solución definitiva, aunque se está trabajando en ello.

Qué es

Las computadoras procesan información, datos -bytes (mordiskitos en inglés)- que quedan grabados (escritos) físicamente en la computadora: datos que le dicen a un programa hacer esto, lo otro, datos para que el programa se ponga de acuerdo con nuestra pantalla para cargar una imagen, etc, etc.

Para seguir el rastro de la información que está manejando en un momento determinado, nuestra computadora tiene una tabla donde anota en qué estantería de su memoria guardó cada dato que va a usar luego. Cuando lo necesita, busca en esa tabla la dirección de memoria y va a buscar el dato a la estantería correspondiente.

Este rastreo de datos puede demorar mucho tiempo y demandar mucha energía/recursos a la máquina, ¡como si tuvieras que buscar en toda tu casa por un alfiler a la vez que estás cocinando y hablando por teléfono!

Los sistemas operativos actuales implementan una serie de mecanismos y estrategias para aligerar estas tareas, básicamente:

  • memoria virtual: pasar a otro lado lo que no se necesite en el momento (“ahora mismo no hace falta estar al pendiente de los fogones de la cocina o no necesito usar mi celular”)
  • cache: tener a la mano y disponible lo más relevante (“tener en el bolsillo la linterna, el encendedor, etc.”)
  • compartimentalizar datos: no tener que buscar y consultar todos los datos a la vez (“no tener que buscar el alfiler en toda la casa sino sólo en la planta de arriba”)

Ahora bien, hay ciertas partes de nuestra computadora que almacenan datos más sensibles (ciertos lugares en la casa donde guardo cosas privadas e íntimas que no quiero que todo el mundo vea). Sólo yo puedo acceder. En nuestra computadora, eso se llaman “anillos de protección” o “anillos de privilegio”. Los programas que corren en nuestras computadoras acceden a ciertas partes de la computadora (anillo 3 de usuarix) para poder funcionar (es decir, guardar, obtener, modificar datos/bytes) sin meterse en el funcionamiento más interno (el kernel) de nuestra computadora (anillo 0 de “supervisorx”). Es como si tuviéramos dos estanterías, una de uso general y otra para usos más privados e íntimos.

De esta manera, un programa, con malas intenciones o accidentalmente, no puede toquetear las entrañas de nuestra querida máquina.

Todo esto hace que nuestras computadoras suelan funcionar bastante bien, rápido y sin demasiados tropiezos. Pero, al igual que nosotrxs, en ciertos contextos y situaciones, un aspecto de algo puede no adaptarse e impedir el funcionamiento general de algo. Eso es lo que llamamos un “bug”, un insecto entremetido en el engranaje de una máquina y que, al acercarnos a él para extraerlo, vamos comprendiendo más de cerca cómo funciona algo.

Un bug de cómo funcionan específicamente los procesadores Intel (bug que se ha llamado “Meltdown” -derretirse, fusión, colapso) es que la forma en que esa tabla es leída y modificada, permite que algunos programas engañen1 a la computadora para que entregue información que está reservada para el sistema operativo. Esto quiere decir que si tienes el disco de tu computadora cifrado, un programa descargado de Internet (o un sitio web malicioso), es capaz de obtener la contraseña, porque está guardada en la estantería privada de la computadora. Este “bug” puede resultar perjudicial en muchos casos, no sólo en los dispositivos de cada unx, sino para los servidores que operan con muchos más datos de diferentes partes y de diferente gente. Por eso, tanto las personas encargadas de mantener el software/código de Microsoft Windows y Mac OSX como la mayoría de los grupos detrás de las diferentes distribuciones de GNU/Linux están desarrollando “parches” para mitigar este bug: la solución que se ha encontrado hasta el momento es vaciar la estantería privada cuando no se la usa para que al explotar la vulnerabilidad (al llegar a la estantería), en realidad no se obtenga ningún dato (porque la alacena está ya vacía ;)).

Sin embargo, el efecto secundario del parche es que mantener vacía la estantería con datos privados demanda más recursos a la máquina y hace que “vaya más lento” porque el sistema operativo tiene que vaciar esta estantería y volverla a llenar cada vez que necesita acceder a esos datos privilegiados.

Aún no se sabe hasta qué punto el parche afectará el rendimiento de cada computadora. Depende de muchas variables. Lo que sí podemos anticipar es que, al ser un “bug” que nos afecta a casi todxs (la mayoría de las computadoras tienen procesadores Intel), habrá mucha gente intentando encontrar soluciones mejores al parche actual y las compartirá con nosotrxs :)

Es importante que entre todxs nos cuidemos ante esta vulnerabilidad. No se trata de sólo tus datos sino lxs de tus compañerxs.

Tomar medidas ahora es una oportunidad para conocer más de cerca cómo funcionan nuestras queridas ciborgs/máquinas, “darles una vuelta, desempolvarlas y ponerlas al día”. Muchas de las computadoras corren con sistemas operativos desactualizados porque nos resulta complicado o nos da pereza hacer un respaldo.

Les Keferianes les ofrecemos, a continuación, unas recomendaciones de qué pueden hacer. Te animamos a buscarle la cara lúdica y el pretexto de encuentro (hasta podrían armar una fiesta de té y cacharreo para la ocasión).

En cuanto al ecosistema Kéfir, ya llevamos a cabo implementaciones de seguridad que reducen la vulnerabilidad, como el hecho de que las diferentes partes del ecosistema (los diferentes “servicios”/programas) están aisladas. Además estamos actualizando todos los sistemas operativos de lxs servidorxs.

Estamos al pendiente de las guías de seguridad en relación a estas vulnerabilidades y en comunicación con servidorxs aliadxs para intercambiar estrategias y tácticas.

En estas semanas les estaremos avisando si, para cuidar mejor de la isla, tenemos que poner en pausa lxs servidorxs. También puede ser que noten que se ralentiza el ecosistema. Entendemos que pueda ser un inconveniente, así que pueden enviar a hola [arroba] kefir [punto] red observaciones, peticiones de horarios donde necesitan tener acceso al ecosistema para no marcar el mantenimiento en esos huecos, etc.

Lo que pueden hacer

Actualizar sus navegadores web

Las vulnerabilidades que describimos pueden ser aprovechadas mediante JavaScript (un tipo de código que usa para hacer sitios interactivos) malicioso que corra en nuestro navegador web.

  • Firefox -el navegador preferido de Kéfir ;)- ya ha implementado medidas para mitigar la vulnerabilidad a partir de la versión 57.0.4. Según la distribución de GNU/Linux, puede ser que se actualice al actualizar el sistema operativo o que lo tengas que actualizar a mano. Más información en https://wiki.kefir.red/Firefox

  • El navegador Edge de Windows también integra medidas y se actualizará a la hora de actualizar el sistema operativo.

  • Safari podrá ser actualizado en breve.

  • Chrome podrá ser actualizado, en su versión 64, a partir del 23 de enero. Mientras tanto, puedes cambiar en la configuración de Chrome la opción de “aislamiento de sitio” que mitiga la vulnerabilidad

    • Introduce esta URL (sin comillas) en la barra de direcciones del navegador: “chrome://flags#enable-site-per-process”
    • Pulsa Enter
    • Dale a Habilitar en el apartado de Strict Site Isolation
    • Reinicia Google Chrome

    https://support.google.com/chrome/answer/7623121?hl=en

Actualizar el sistema operativo de sus dispositivos

Más información

Recomendaciones específicas hasta ahora para mitigar los ataques, a través de la actualización del sistema operativo

Si bien aquí te dejamos las recomendaciones específicas (atendiendo a los parches o mitigaciones para Meltdown, ya que todavía se está trabajando en el caso de Spectre), nos gustaría que eches un vistazo a nuestra documentación para mantener el sistema operativo actualizado :).

Aquí vamos caso por caso.

Ten en cuenta siempre tener una copia de respaldo de tus datos antes de hacer cambios en el sistema, así como checar compatibilidades en los casos en los que la actualización implique un cambio de versión en el sistema operativo.

Si bien la solución general -y radical- sería actualizar el kernel (núcleo) y reiniciar la máquina, esto puede hacer que se presenten problemas de incompatibilidades con el hardware. Por ello, siempre es recomendado (además de hacer un respaldo de tus datos) verificar compatibilidades y que todo marche bien antes de iniciar los cambios.

Aquí encontrarás, a continuación, las instrucciones oficiales que hizo cada distribución para actualizar sus sistemas y mitigar así las vulnerabilidades que fueron “parcheadas” hasta el momento. Recomendamos informarse periódicamente acerca de posibles cambios.

Debian (u otras distros basadas en Debian como Ubuntu y Mint)

La actualización de paquetes es para parchear Meltdown, sólo para la versión stretch (security) 4.9.65-3+deb9u2.

Respecto de Spectre y otras vulnerabilidades detectadas, habrá novedades próximamente.

Para actualizar el sistema, puedes hacerlo de manera gráfica desde el Centro de Software o Actualizaciones de Software.

Creemos que es más fácil y recomendamos abrir una terminal y ejecutar los siguientes comandos (con contraseña de root o administrador*):

sudo apt-get update
sudo apt-get upgrade

Luego reiniciamos con

sudo reboot

Para actualizar la versión de la distribución si no estamos en la última (¡Atención para este paso! Recomendamos leer el artículo de nuestra wiki, antes de dar este paso):

sudo apt-get dist-upgrade

Fuente: https://www.debian.org/security/2018/dsa-4078 https://security-tracker.debian.org/tracker/CVE-2017-5754

  • Ubuntu: a partir del 9 de enero(con el lanzamiento de la nueva release), si no antes, se podrá hacer una actualización y reboot en amd-64 para

    • Ubuntu 17.10 (Artful) — Linux 4.13 HWE
    • Ubuntu 16.04 LTS (Xenial) — Linux 4.4 (and 4.4 HWE)
    • Ubuntu 14.04 LTS (Trusty) — Linux 3.13
    • Ubuntu 12.04 ESM (Precise) — Linux 3.2

Esto significa que habrá que actualizar la distro, es decir, no bastará con correr un parche o actualización.

Habrá que estar al tanto de las novedades, pero seguramente haya que repetir los pasos para actualizar descritos para Debian.

Fuente: https://insights.ubuntu.com/2018/01/04/ubuntu-updates-for-the-meltdown-spectre-vulnerabilities/

Fedora

Habrá que hacer una actualización de Kernel. Esto es para Fedora 26 y 27. No hay soluciones para Spectre por el momento.

sudo dnf --refresh update kernel

y luego será necesario reiniciar

sudo reboot

Fuente: https://fedoramagazine.org/protect-fedora-system-meltdown/

Arch

pacman -Sy linux

y reiniciar con

sudo reboot

Windows

Según anuncia Microsoft, las medidas están disponibles para Windows 7 Service Pack 1, Windows 8.1, y Windows 10 e implican:

  • Actualización de antivirus (recomiendan Microsoft Security Essentials, aunque puede ser otro)
  • Actualización del sistema, mediante las opciones de actualización (según disponibilidad del proveedor)
  • Actualización del firmware (para ello, hay que ponerse en contacto con la empresa proveedora del hardware)

En primer lugar, será importante actualizar o bajar un antivirus. Una vez hecho, se procederá a la actualización del sistema operativo.

Para checar las actualizaciones, deberemos entrar desde el botón de Inicio a la opción Configuraciones > Actualizaciones de seguridad > Actualización de Windows > Ver si hay actualizaciones

Para aplicar cambios, deberás reiniciar. Seguramente el gestor de la actualización lo solicite cuando sea pertinente.

Nuevamente, recordamos que son medidas para Meltdown, ya que para Spectre todavía se está trabajando.

Fuente: https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/ADV180002 https://support.microsoft.com/en-us/help/4072698/windows-server-guidance-to-protect-against-the-speculative-execution https://support.microsoft.com/en-us/help/4072699/important-january-3-2018-windows-security-updates-and-antivirus-softwa

Mac OSX / iOS

Meltdown en iOS 11.2, macOS 10.13.2, y tvOS 11.2 tiene mitigación ya, de manera que deberán hacerse las actualizaciones. WatchOS (el reloj) no se vio afectado :o

Para actualizar el sistema, desde la App Store, ir a “Actualizaciones” y seleccionar y aceptar todas las disponibles.

Fuente: https://support.apple.com/en-us/HT208394

Android

ATENCIÓN: Android no tiene parches de seguridad específicos. Sin embargo, se recomienda buscar y aplicar todas las actualizaciones disponibles.


  1. El engaño consiste en pedir dos veces acceso a una dirección de memoria protegida. La primera vez el programa intenta acceder de manera directa a la memoria reservada, pero, como no tiene los “privilegios” para hacerlo (está en modo “usuarix”, no en “supervisorx”) es rechazado. Pero la segunda vez lo intenta indirectamente, a través de una operación matemática. Para adelantar trabajo y no sobrecargarse, la computadora intenta realizar la operación, sin checar que está siendo hecha sobre una direccion protegida, entonces devuelve el resultado normalmente. Deshaciendo la operación matemática, puedes recuperar los datos anteriormente protegidos.