Chimera Linux, la nueva distribución que combina el kernel de Linux con el entorno FreeBSD

Daniel Kolesa (aka q66) de la empresa Igalia y quien a su vez participó en el desarrollo de los proyectos Void Linux, WebKit e Enlightenment, dio a conocer hace poco que se encuentra desarrollando la nueva distribución «Chimera the Linux».

Este es un proyecto que se destaca por utilizar el kernel de Linux, pero en lugar del kit de herramientas GNU, forma el entorno de usuario basado en el sistema central FreeBSD y usa LLVM para la construcción. La distribución se desarrolla inicialmente como multiplataforma y es compatible con las arquitecturas x86_64, ppc64le, aarch64, riscv64 y ppc64.

Sobre Chimera Linux

Chimera Linux tiene como objetivo principal el poder proporcionar una distribución de Linux con herramientas alternativas y tener en cuenta la experiencia del desarrollo de Void Linux al crear una nueva distribución.

Chimera es una distribución de Linux con los siguientes objetivos:

  • Construido íntegramente con LLVM
  • Área de usuario basada en FreeBSD
  • Empaquetado binario y un sistema de compilación de fuentes bien diseñado
  • Bootstrappable
  • Portátil

En opinión del autor del proyecto, los componentes personalizados de FreeBSD son menos complejos y más adecuados para sistemas ligeros y compactos. La entrega bajo la Licencia de Permiso BSD también tuvo un impacto. El propio trabajo de Chimera Linux también se distribuye bajo la licencia BSD.

Chimera usa LLVM y Clang como su cadena de herramientas del sistema. Esto se usa para construir todos los componentes centrales del sistema. Además del entorno de usuario de FreeBSD, la distribución también incluye los paquetes GNU Make, util-linux, udev y pam. El sistema init está construido sobre el administrador del sistema dinit portátil disponible para sistemas Linux y BSD. En lugar de glibc, se utiliza la biblioteca C estándar musl. El espacio de usuario se basa en componentes de FreeBSD en lugar de coreutils GNU y relacionados. Hay pocos componentes GNU y el único estrictamente necesario para el arranque y el entorno de compilación es GNU Make.

Para instalar programas adicionales, se ofrecen tanto paquetes binarios como su propio sistema de compilación a partir de códigos fuente: cports, escritos en Python. El entorno de compilación se ejecuta en un contenedor separado y sin privilegios creado con el kit de herramientas de bubblewrap. Para administrar paquetes binarios se utiliza el administrador de paquetes APK (Alpine Package Keeper, apk-tools ) de Alpine Linux (originalmente se planeó usar pkg de FreeBSD, pero hubo grandes problemas con su adaptación).

Chimera tiene un sistema de empaquetado de fuentes completamente nuevo que no está escrito en shell como es convencional, sino en el lenguaje de programación Python. Esto reduce la sobrecarga del sistema de compilación al mínimo, además de hacerlo introspectable, etc.

Las compilaciones siempre están en contenedores, con un sistema Chimera mínimo que se utiliza como entorno de compilación para cada paquete. Este sistema se utiliza en un entorno de pruebas bubblewrapy se ejecuta sin privilegios.

El sistema de empaquetado binario utilizado es apk-toolsoriginalmente de Alpine Linux. Fue elegido por su rapidez y facilidad de integración.

¿Probar Chimera Linux?

Por el momento no es posible poder obtener una imagen inicial estable del proyecto, ya que este aún se encuentra en la etapa inicial de desarrollo y hace unos días, fue posible proporcionar una descarga con la capacidad de registrar al usuario en el modo de consola.

En esta imagen se proporciona un kit de herramientas de arranque, que permite reconstruir una distribución desde su propio entorno o desde un entorno basado en cualquier otra distribución de Linux.

El proceso de construcción incluye tres etapas: ensamblar componentes para formar un contenedor con un entorno de construcción, reconstrucción propia utilizando un contenedor preparado y una reconstrucción propia más, pero ya basada en el entorno creado en la segunda etapa (la duplicación es necesaria para excluir la influencia del sistema host original en el proceso de compilación).

Finalmente si estás interesado en poder conocer más al respecto puedes conocer, consultar y dar un seguimiento al proyecto desde los siguientes enlaces.

from Linux Adictos https://ift.tt/2Y2fJXw
via IFTTT

SmashEx, un ataque a Intel SGX para extraer datos o ejecutar código

Investigadores de la Universidad de Ciencia y Tecnología de Defensa del Ejército Popular de Liberación, la Universidad Nacional de Singapur y la Escuela Técnica Superior Suiza de Zurich han desarrollado un nuevo método para atacar enclaves aislados de Intel SGX (Software Guard eXtensions).

El ataque se denominó SmashEx y fue causado por problemas de reentrada al manejar excepciones durante el trabajo de los componentes en tiempo de ejecución para Intel SGX. El método de ataque propuesto permite, si hay control sobre el sistema operativo, determinar los datos confidenciales ubicados en el enclave, u organizar la copia de su código en la memoria del enclave y su ejecución.

Recordemos que la tecnología SGX apareció en los procesadores Intel Core de sexta generación (Skylake) y ofrece una serie de instrucciones que permiten que a las aplicaciones de nivel de usuario se les asignen áreas privadas de memoria, enclaves, cuyo contenido no se puede leer ni cambiar ni siquiera mediante el kernel y el código ejecutado en los modos ring0, SMM y VMM.

Es imposible transferir el control al código en el enclave utilizando funciones de transición tradicionales y manipulaciones con registros y la pila; para transferir el control al enclave, se utilizan nuevas instrucciones creadas especialmente EENTER, EEXIT y ERESUME que realizan verificaciones de autorización. Al mismo tiempo, el código colocado en el enclave puede usar métodos de llamada clásicos para llamar a funciones dentro del enclave y una instrucción especial para llamar a funciones externas. El cifrado de memoria Enclave se utiliza para proteger contra ataques de hardware, como conectarse a un módulo DRAM.

El problema está relacionado con el hecho de que la tecnología SGX permite que el sistema operativo interrumpa la ejecución de un enclave lanzando una excepción de hardware, y las primitivas para el manejo atómico de tales excepciones no se implementan adecuadamente en los enclaves. A diferencia del kernel del sistema operativo y las aplicaciones regulares, el código dentro de los enclaves no tiene acceso a primitivas para organizar acciones atómicas durante el manejo asincrónico de excepciones. Sin las primitivas atómicas especificadas, el enclave puede interrumpirse en cualquier momento y volver a ejecutarse, incluso cuando se ejecutan secciones críticas en el enclave y se encuentra en un estado inseguro (por ejemplo, cuando los registros de la CPU no se guardan / restauran).

Para un funcionamiento normal, la tecnología SGX permite interrumpir la ejecución de un enclave con excepciones de hardware configurables. Esta característica permite que los entornos de ejecución de enclave implementen el manejo de excepciones o el manejo de señales dentro del enclave, pero también puede causar errores de reentrada . El ataque SmashEx se basa en la explotación de fallas en el SDK debido a que la situación de la llamada repetida del controlador de excepciones no se maneja adecuadamente. Es importante que para aprovechar la vulnerabilidad, el atacante debe poder interrumpir la ejecución del enclave, es decir, debe controlar el trabajo del entorno del sistema.

Después de lanzar una excepción, el atacante recibe una pequeña ventana de tiempo durante la cual es posible interceptar el flujo de ejecución mediante la manipulación de los parámetros de entrada. En particular, si tiene acceso al sistema (el entorno fuera del enclave), puede crear una nueva excepción inmediatamente después de ejecutar la instrucción para ingresar al enclave (EENTER), lo que conducirá al retorno del control al sistema en la etapa en la que aún no se ha completado la configuración de la pila para el enclave, se guarda el estado de los registros de la CPU.

Luego, el sistema puede devolver el control al enclave, pero dado que la pila del enclave no estaba configurada en el momento de la interrupción, el enclave se ejecutará con la pila que reside en la memoria del sistema, que se puede utilizar para aplicar la programación orientada al retorno (ROP ) técnicas de explotación. Programación Orientada).

Cuando se usa la técnica ROP, el atacante no intenta colocar su código en la memoria, sino que opera sobre las partes de las instrucciones de la máquina que ya están disponibles en las bibliotecas cargadas, terminando con una instrucción de retorno de control (como regla, estos son el final de la biblioteca funciones). El trabajo del exploit se reduce a construir una cadena de llamadas a bloques similares («gadgets») para obtener la funcionalidad requerida.

Los prototipos de exploits se preparan para enclaves con tiempo de ejecución basado en Intel SGX SDK (CVE-2021-0186) y Microsoft Open Enclave (CVE-2021-3376 ).

En el primer caso, se demostró la capacidad de extraer la clave RSA utilizada en el servidor web para HTTPS, y en el segundo caso, fue posible determinar el contenido recibido por la utilidad cURL que se ejecuta dentro del enclave.

La vulnerabilidad ya ha sido parcheada en software en las versiones Intel SGX SDK 2.13 y Open Enclave 0.17.1.

Fuente: https://jasonyu1996.github.io

from Linux Adictos https://ift.tt/3bmYFyv
via IFTTT

DeepMind presento el simulador de procesos físicos MuJoCo

La empresa propiedad de Google «DeepMind» conocida por sus desarrollos en el campo de la inteligencia artificial y la construcción de redes neuronales capaces de jugar juegos de computadora a nivel humano, anunció hace poco el motor para simular procesos físicos MuJoCo (Multi-Joint Dynamics with Contact).

El motor tiene como objetivo modelar estructuras articuladas que interactúan con el entorno, y se utiliza para la simulación en el desarrollo de robots y sistemas de inteligencia artificial, en una etapa previa a la implementación de la tecnología desarrollada en forma de dispositivo terminado.

MuJoCo, alcanza un punto óptimo con su modelo de contacto, que captura de manera precisa y eficiente las características sobresalientes de los objetos en contacto. Al igual que otros simuladores de cuerpo rígido, evita los detalles finos de las deformaciones en el sitio de contacto y, a menudo, se ejecuta mucho más rápido que en tiempo real. A diferencia de otros simuladores, MuJoCo resuelve las fuerzas de contacto utilizando el principio convexo de Gauss .

La convexidad asegura soluciones únicas y dinámicas inversas bien definidas. El modelo también es flexible, proporcionando múltiples parámetros que pueden ajustarse para aproximarse a una amplia gama de fenómenos de contacto.


El código está escrito en C/C ++ y se publicará bajo la licencia Apache 2.0 y este tendrá soporte para las plataformas Linux, Windows y macOS. El trabajo de apertura de todos los códigos fuente asociados al proyecto está previsto que se complete en 2022, luego de lo cual MuJoCo pasará a un modelo de desarrollo abierto, lo que implica la posibilidad de participación en el desarrollo de los representantes de la comunidad.

Sobre MuJoCo

MuJoCo es una biblioteca con un motor de simulación de física de propósito general que se puede utilizar en la investigación y desarrollo de robots, dispositivos biomecánicos y sistemas de aprendizaje automático, así como en la creación de gráficos, animación y juegos de computadora. El motor de simulación está optimizado para un rendimiento máximo y permite la manipulación de objetos a un nivel bajo, al tiempo que proporciona alta precisión y capacidades de simulación ricas.

Debido a que muchos simuladores se diseñaron inicialmente para propósitos como juegos y cine, a veces toman atajos que priorizan la estabilidad sobre la precisión. Por ejemplo, pueden ignorar las fuerzas giroscópicas o modificar directamente las velocidades. Esto puede ser particularmente dañino en el contexto de la optimización: como lo observó por primera vez el artista e investigador Karl Sims, un agente de optimización puede descubrir y explotar rápidamente estas desviaciones de la realidad.

Por el contrario, MuJoCo es un simulador de tiempo continuo de segundo orden que implementa las ecuaciones de movimiento completas. Fenómenos físicos familiares pero no triviales como Newton’s Cradle , así como otros poco intuitivos como el efecto Dzhanibekov, emergen naturalmente. En última instancia, MuJoCo se adhiere de cerca a las ecuaciones que gobiernan nuestro mundo.

Los modelos se definen utilizando el lenguaje de descripción de escenas MJCF basado en XML compilado con un compilador de optimización dedicado. Además de MJCF, el motor admite la carga de archivos en el formato de descripción de robot unificado (URDF). MuJoCo también proporciona una interfaz gráfica para la visualización interactiva en 3D del proceso de simulación y la representación de resultados utilizando OpenGL.

De sus características clave se destacan las siguientes:

  • Simulación en coordenadas generalizadas, eliminando roturas articulares.
  • Dinámica inversa, detectable incluso cuando hay contacto.
  • Uso de la programación convexa para la formulación unificada de restricciones en tiempo continuo.
  • Capacidad para establecer varias restricciones, incluido el tacto suave y la fricción en seco.
  • Simulación de sistemas de partículas, tejidos, cuerdas y objetos blandos.
  • Actuadores (actuadores), incluidos motores, cilindros, músculos, tendones y mecanismos de manivela.
  • Programas de resolución basados ​​en métodos de Newton, gradiente conjugado y Gauss-Seidel.
  • Posibilidad de utilizar conos de fricción piramidales o elípticos.
  • Utilización de una selección de métodos de integración numérica de Euler o Runge-Kutta.
  • Discretización y aproximación multiproceso por el método de diferencias finitas.

Finalmente si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.

from Linux Adictos https://ift.tt/3ErdDzS
via IFTTT