Zellij: nuevo multiplexor de terminal escrito en Rust

Zellij

Muchas personas se conforman con el emulador de terminal de su entorno de escritorio. En cambio, cada vez son más que por comodidad o por las características de la administración que realizan a diario necesitan algo más que eso y se instalan un multiplexor del terminal como Zellij. Un interesante y nuevo proyecto escrito en Rust.

El lenguaje de programación de Mozilla está de moda, y ya muchos lo ven como el nuevo C. Además, es muy interesante desde el punto de vista de la seguridad. Por eso, se ha debatido incluso el hecho de que se pudiera emplear en ciertas partes del kernel Linux. Y cada vez está más presente en proyectos como este…

Otra de sus características más destacables es que tiene un sistema de diseño y complementos que se pueden ir agregando y que se pueden crear en cualquier idioma que se pueda compilar con WebAssembly.

Pues bien, Zellij, además de usar ese lenguaje, también te aporta un gran espacio de trabajo desde el terminal y multiplexor, como lo hacen tmux y similares. Además, está disponible tanto para sistemas operativos macOS como para GNU/Linux, aunque por el momento está en estado Beta.

Sin embargo, es funcional y se puede usar para el día a día. Solo que hay que tener algo de paciencia si eventualmente existen algún problema. Además, también se echan de menos algunas características que aún no han sido implementadas, y que espero que pronto se incluyan.

En cuanto a su interfaz de usuario de Zellij, es muy fácil de usar, ligera, y posee una barra de estado en la zona inferior con los atajos de teclado disponibles y consejos de cómo usar la herramienta, aunque se puede desactivar si se quiere y está presente como un complemento más.

Por último Zellij ha intentado innovar para distanciarse de otros proyectos similares, y ofrece una forma de organizar y cambiar el tamaño de los paneles interesante. La propia app buscará la mejor distribución de división vertical u horizontal por ti. Tampoco tendrás limitaciones a la hora de cambiar el tamaño de los espacios.

Más información – Sitio oficial en GitHub

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

Cómo elegir una distribución Linux. Método en 5 pasos

Como elegir una distro

Una pregunta que se repite mucho en grupos de usuarios, es la de con que distribución empezar o por cuál cambiar. A nivel de usuario doméstico lo único que se logra  son respuestas basadas en preferencias personales ( o más frecuentemente en antipatías personales)

La realidad es que hoy por hoy, la mayoría de las distribuciones apuntan a hacer las cosas más fáciles al usuario, por lo que a la hora de elegir una lo que importará son las necesidades y características propias de quién vaya a instalarlas

Por lo tanto, es uno mismo el que tiene que encontrar su propia respuesta.

Habiendo dicho esto, vamos a proponer como guía un método de 5 pasos para encontrar la distribución Linux ideal.

Cómo elegir una distribución Linux

Primer paso: Conseguir información

Lo primero que necesitas es conseguir toda la información que puedas sobre las diferentes distribuciones Linux. Un buen punto de partida es Distrowatch. Su buscador es una excelente fuente de información sobre las distribuciones Linux disponibles. Eso si. Ignora su ranking porque suele ser bastante tendencioso.

Otra buena alternativa es Linuxtracker,en la que también puedes encontrar un listado de opciones disponibles.
Una vez que armaste una lista de distribuciones, comienza a investigar sobre cada una de sus características y comentarios sobre las mismas.

Segundo paso: Organizar la información

La información que recopilaste se puede dividir en dos clases; hechos y opiniones.

Los hechos incluyen información técnica como los requisitos de hardware, los errores conocidos, la interfaz gráfica o el porcentaje de consultas de usuarios respondidas. Las opiniones son eso, opiniones. Deberías ser capaz de diferenciar entre las ideologizadas (tal distribución no es software libre) las motivadas por encono y las fundamentadas.

Con el tema de las respuestas a las preguntas, suele variar según el sitio. En AskUbuntu, un sitio de preguntas y respuestas sobre Ubuntu parecen estar más interesados en el cumplimiento de la etiqueta que en ayudar. Pero, es muy raro que te surja una pregunta que Google no sea capaz de responder.

Tercer paso: Encontrar factores comunes

Decir que todas las distribuciones Linux son iguales es una exageración. Pero, si hablamos de las que están dirigidas al usuario doméstico, se parecen mucho.

En varias de ellas puedes encontrar el mismo escritorio y selección de programas pero, con un diferente gestor de paquetes

En este punto lo que puedes hacer es investigar los programas para ver cuales te pueden resultar más útiles obuscar capturas de pantallas de los distintos escritorios para ver con cuál te sentirías más cómodos.

El escritorio KDE utiliza las librerías gráficas QT, Mientras que GNOME, Mate, Budgie y XFCE utilizan las librerías GTK. Aunque las aplicaciones que utilizan una de las librerías pueden instalarse en un escritorio que utilice la otra sin una diferencia de rendimiento demasiado apreciable, puede que quieras utilizar esto como criterio para elegir un escritorio.

El formato de paquetes es un punto importante. Hoy por hoy la mayoría de las distribuciones admiten el formato Flatpak (preferido por la comunidad de desarrolladores) y Snap (Preferido por las empresas que tienen versiones de programas para Linux) Además cuentan con sus propios repositorios que usan algunos de los formatos tradicionales pero que no son intercambiables. Las distribuciones basadas en Arch Linux suelen tener una comunidad bastante activa que mantienen al día los repositorios, mientras que las derivadas de Ubuntu obtienen lo mismo en formato DEB a través del agregado de repositorios personalizados.

Cuarto paso: Prueba

Una vez que redujiste la lista de distribuciones, llegó la hora de hacer una prueba de campo. Afortunadamente, esto puede hacerse sin modificar tu equipo.

Hay tres formas de hacer esto.

  • Modo live: Es una característica de las distribuciones Linux que permite probar sus características usando la memoria RAM como si fuera disco rígido.
  • Instalación en un disco extraíble: Linux admite la instalación en un pendrive a condición de que tenga la capacidad suficiente
  • Máquina virtual: Se trata de un software que simula ser una computadora en la que puedes instalar la distribución. Windows trae su propio cliente de máquina virtual llamado Hiper-V. Otra opción es Virtualbox

Quinto paso: Instalación en el disco rígido.

Si ya elegiste la distribución, el siguiente paso es instalarla en el disco junto a o en lugar de Windows. Recuerda tener copia de seguridad de los datos importantes y un medio de instalación de Windows.  No olvides tener en cuenta estas recomendaciones.

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

InfiniTime 1.0, un firmware para relojes inteligentes PineTime

La comunidad de código abierto PINE64 dio a conocer hace ya varios dias el lanzamiento de InfiniTime 1.0, el cual es el firmware oficial del reloj inteligente PineTime en el cual se afirma que al equiparlo con la nueva versión de firmware convierte al reloj PineTime en un producto listo para los usuarios finales.

La lista de cambios señala un rediseño significativo de la interfaz, así como una mejora en el administrador de notificaciones y una solución para el controlador TWI, que anteriormente causaba bloqueos en los juegos.

El reloj PineTime se presentó en octubre de 2019 y ha evolucionado como un dispositivo compatible con PinePhone. En septiembre de 2020, se eligió el firmware gratuito InfiniTime, cuyo código se distribuye bajo la licencia GPLv3, como firmware predeterminado para PineTime.

El dispositivo está basado en el microcontrolador MCU NRF52832 (64 MHz) y está equipado con memoria Flash de sistema de 512KB, Flash de 4 MB para datos de usuario, RAM de 64KB, pantalla LCD de 1.3 pulgadas con una resolución de 240×240 píxeles, acelerómetro (usado como podómetro), sensor de frecuencia cardíaca y motor de vibración. La carga de la batería (180 mAh) es suficiente para 3-5 días de duración de la batería.

Como cualquier verdadero proyecto de código abierto, PineTime no se basa únicamente en una comunidad o un solo firmware. Hay muchos otros proyectos disponibles que se encuentran actualmente en desarrollo y todos merecen la atención de la base de usuarios. El firmware más avanzado entre los de la lista es probablemente Wasp-OS , el firmware Micropython. Proporciona muchas funcionalidades y es realmente fácil de usar y programar gracias al lenguaje Python.

También me gustaría destacar Pinetime-Lite, una bifurcación de InfiniTime de Joaquimorg. Joaquim agregó muchas características y mejoras agradables, y ya ha contribuido mucho de su trabajo a InfiniTime.

El firmware InfiniTime utiliza el sistema operativo en tiempo real FreeRTOS 10, la biblioteca de gráficos LittleVGL 7 y la pila Bluetooth NimBLE 1.3.0, mientras que el cargador de firmware se basa en MCUBoot.

El código de la interfaz de usuario está escrito en C++ e incluye funciones como un reloj (digital, analógico), un rastreador de actividad (monitor de frecuencia cardíaca y podómetro), que muestra notificaciones sobre eventos en un teléfono inteligente, una linterna, control de reproducción de música en un smartphone, mostrando instrucciones de un navegador, un cronómetro y dos juegos sencillos (Paddle y 2048).

A través de la configuración, se puede determinar la hora en que se apaga la pantalla, el formato de la hora, las condiciones de activación, cambiar el brillo de la pantalla, evaluar la carga de la batería y la versión del firmware.

Entre sus principales características destacan:

  • 2 esferas de reloj: digital y analógica
  • Varias aplicaciones (cronómetro, control de música, navegación, frecuencia cardíaca) y juegos (Paddle y 2048)
  • Configuración de usuario (tiempo de espera de visualización, formato de hora, condiciones de activación)
  • Actualizaciones de OTA con la ayuda de un gestor de arranque FOSS basado en MCUBoot
  • Monitoreo de frecuencia cardíaca y conteo de pasos.
  • 3-5 días de duración de la batería

En cuanto a la actualización del firmware se menciona que este se puede actualizar a través de actualizaciones OTA transmitidas desde el teléfono inteligente a través de Bluetooth LE.

Por otra parte, en cuanto a la relación de la vinculación y control del reloj inteligente en dispositivos que no son de Pine, se menciona que en teléfonos inteligentes y computadoras se puede hacer uso de las aplicaciones Gadgetbridge para Android, Amazfish (para Sailfish y Linux) y Siglo (para Linux) para controlar el reloj.

Además también se menciona que existe el soporte experimental para WebBLEWatch, una aplicación web para sincronizar relojes de navegadores que admiten la API Web Bluetooth.

El autor del firmware recuerda que además de InfiniTime hay una serie de alternativas, por ejemplo, hay opciones de firmware basadas en Zephyr, Mynewt OS, MbedOS, TinyGo, WaspOS (basado en Micropython) y PinetimeLite (modificación extendida del firmware InfiniTime).

Finalmente para quienes estén interesados en poder conocer más al respecto sobre este nuevo firmware o dispositivo, pueden consultar los detalles en el siguiente enlace.

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

KDE Applications cambia de nombre a KDE Gear y llega con las actualizaciones de Abril

Hace pocos dias fue presentada la actualización acumulativa de aplicaciones de abril (21.04) desarrollada por el proyecto KDE y en la cual a partir de esta versión, la suite de KDE consolidada ahora se publicará con el nombre de KDE Gear, en lugar de «KDE Applications».

En total, como parte de la actualización de abril, se han publicado versiones de 225 programas, bibliotecas y complementos. En esta página se puede encontrar información sobre la disponibilidad de Live ensamblados con nuevas versiones de aplicaciones.

Principales novedades de KDE Gear 21.04

Las capacidades del administrador de información personal de Kontact se han ampliado, cubriendo aplicaciones como un cliente de correo electrónico, un planificador de calendario, un administrador de certificados y una libreta de direcciones. Calendar Planner ahora puede enviar invitaciones a reuniones programadas y enviar alertas cuando cambia la hora de un evento.

El cliente de correo KMail agrega soporte para el estándar Autocrypt, que simplifica el cifrado de correspondencia a través de una configuración automática simple e intercambio de claves sin usar servidores de claves (la clave se transmite automáticamente en el primer mensaje enviado).

El backend de correo garantiza que se conserve la información sobre los remitentes de las cartas entrantes, incluso si el usuario no los ha agregado explícitamente a la libreta de direcciones. Los datos acumulados se utilizan para formular recomendaciones al completar la dirección en una nueva carta.

El desarrollo del itinerario KDE del asistente de viaje recibió mejoras y en la nueva versión se agrega la capacidad de determinar el estado de ascensores y escaleras mecánicas en el mapa de la estación, así como utilizar información de OpenStreetMap para obtener información sobre el tiempo de funcionamiento. Además, se proporciona la división en el mapa de tipos de puntos de alquiler de bicicletas (puede dejarlo en cualquier estacionamiento o necesita regresar al punto de partida).

También podremos encontrar mejoras en el administrador de archivos Dolphin, ya que se agregó la capacidad de descomprimir simultáneamente varios archivos. La interfaz tiene una animación suave de reagrupar iconos al dividir la ventana gráfica o cambiar el tamaño de la ventana. Al abrir nuevas pestañas, fue posible personalizar: abrir una pestaña inmediatamente después de la pestaña actual o al final de la lista.

Las herramientas integradas para trabajar con repositorios de Git, Mercurial y Subversion han agregado la definición del directorio raíz de la copia de trabajo del repositorio.

Siempre que se tenga la capacidad de cambiar el contenido de los menús contextuales, por ejemplo, el usuario puede eliminar elementos obviamente innecesarios. Siempre se puede encontrar una lista completa de configuraciones y opciones en el menú de hamburguesas que se muestra en la parte superior derecha de la ventana.

Elisa agrega soporte para reproducir archivos de audio en formato AAC y procesar listas de reproducción en formato .m3u8, incluida información sobre canciones, artistas y álbumes especificados en cirílico. Consumo de memoria optimizado al desplazarse y mejor integración de la versión móvil con la plataforma Android.

También se agregó soporte para el formato AV1 en el editor de video Kdenlive y hubo un cambio simplificado de la escala de las pistas arrastrando los controles deslizantes que aparecen en los extremos de la barra de desplazamiento horizontal.

En Konsole se ha agregado un modo deshabilitado de redistribución adaptativa de texto cuando se cambia el tamaño de la ventana. Además, proporcionó perfiles de clasificación por nombre, gestión de diálogos reciclados y perfiles de configuración, mayor visibilidad de la selección de texto, dada la oportunidad de seleccionar un editor externo, causado al hacer clic con Ctrl en el archivo de texto.

Kate ahora admite el desplazamiento mediante pantallas táctiles. Se agregó la capacidad de mostrar todas las notas TODO en el proyecto. Implementamos herramientas para realizar operaciones básicas en Git, como ver cambios.

Probar KDE Gear

Finalmente, esta nueva actualización estará llegando de manera gradual a las diferentes distribuciones de Linux, por lo que si aún no está disponible para tu distribución, deberás tener un poco de paciencia.

Aunque también, si ya quieres probar los cambios de esta actualización es posible probar los diferentes componentes por separado con ayuda de la tecnología de los paquetes de Flatpak.

En esta página se puede encontrar información sobre la disponibilidad de Live-assembly con nuevas versiones de aplicaciones.

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

LLVM 12.0 ya fue liberado y estas son sus novedades

LLVM

Después de seis meses de desarrollo se presentó el lanzamiento de la nueva versión del proyecto LLVM 12.0 compatible con GCC (compiladores, optimizadores y generadores de código) que compila programas en un código de bits intermedio de instrucciones virtuales similares a RISC (una máquina virtual de bajo nivel con un sistema de optimización multinivel).

En esta nueva versión podremos encontrar diversas mejoras y novedades, de las cuales podemos destacar un nuevo atributo de función «tune-cpu» para admitir -mtune como gcc, asi como también mejoras a las diferentes plataformas.

Principales novedades de LLVM 12.0

En esta nueva versión, podremos encontrar que el soporte para el juego de herramientas de compilación llvm-build escrito en Python se ha descontinuado, en lugar de lo cual el proyecto ha cambiado por completo al uso del sistema de compilación CMake.

El backend para la arquitectura AArch64 ha mejorado el soporte para la plataforma Windows: se proporciona la generación correcta de salida del ensamblador para los sistemas Windows de destino, se ha optimizado la generación de datos sobre llamadas de desenrollado (el tamaño de dichos datos se ha reducido en un 60%), se ha agregado la capacidad de crear datos de desenrollado utilizando las directivas seh.

Mientras que el backend de la arquitectura PowerPC incluye nuevas optimizaciones para implementaciones en bucle y en línea, mejoras en el soporte para procesadores Power10, soporte adicional para instrucciones MMA para manipular matrices y soporte mejorado para el sistema operativo AIX.

Para x86 se agrega soporte para procesadores AMD Zen 3, Intel Alder Lake e Intel Sapphire Rapids, así como instrucciones para procesadores HRESET, UINTR y AVXVNNI. Se eliminó el soporte para extensiones MPX (extensiones de protección de memoria) para verificar punteros contra los límites del área de memoria (esta tecnología no se ha utilizado ampliamente y ya se ha eliminado de GCC y clang). El ensamblador ha agregado soporte para los prefijos {disp32} y {disp8} y los sufijos .d32 y .d8 para controlar el tamaño del desplazamiento de operandos y transiciones. Se agregó un nuevo atributo «tune-cpu» para controlar la habilitación de optimizaciones de microarquitectura.

Otro de los cambios que se destaca es que se ha agregado un nuevo modo «-fsanitize=unsigned-shift-base» para detectar desbordamientos de enteros sin signo después de un desplazamiento de bits hacia la izquierda. Para el formato Mach-O (macOS), se implementa el soporte para las arquitecturas arm64, arm e i386, optimización en la etapa de vinculación (LTO) y desenrollado de pila cuando se manejan excepciones.

También se destaca un nuevo atributo de función «tune-cpu» que permite que las optimizaciones de microarquitectura se apliquen independientemente del atributo «target-cpu» o de la CPU TargetMachine que se utilizará para seleccionar el conjunto de instrucciones. Si el atributo no está presente, la CPU de ajuste seguirá a la CPU de destino.

Libc++ implementa nuevas características del estándar C++ 20 y comenzó a desarrollar características de la especificación C++ 2b, además de que se agregó soporte para ensamblar con deshabilitación de soporte para localización («-DLIBCXX_ENABLE_LOCALIZATION = OFF») y dispositivos para generar números pseudoaleatorios.

Mientras que de las mejoras para Clang 12, para la arquitectura AArch64, se han agregado nuevos indicadores del compilador «-moutline-atomics» y «-mno-outline-atomics» para habilitar y deshabilitar funciones de ayuda atómica como «__aarch64_cas8_relax». Dichas funciones en tiempo de ejecución determinan si hay soporte para Large System Extensions (LSE) y usan las instrucciones del procesador atómico proporcionadas o la reversión para usar instrucciones LL/SC (Load-link/store-conditional) para la sincronización.

El puntero ‘this’ ahora se procesa con comprobaciones no nulas y desreferenciables (N). La opción «-fdelete-null-pointer-checks» se puede utilizar para eliminar el atributo no nulo cuando se requieren valores nulos.

En Linux para las arquitecturas AArch64 y PowerPC, «-fasynchronous -wind-tables» está habilitado para generar tablas de llamadas de desenrollado, como en GCC.

En «#pragma clang loop vectorize_width» se agregó la capacidad de especificar las opciones «fija» (predeterminada) y «escalable» para seleccionar el método de vectorización.

En el servidor de almacenamiento en caché clangd (Clang Server) en Linux, el consumo de memoria durante el funcionamiento a largo plazo se reduce significativamente (se proporciona una llamada periódica a malloc_trim para devolver las páginas de memoria libres al sistema operativo).

Finalmente si estás interesado en conocer más al respecto sobre esta nueva versión, puedes consultar los detalles en el siguiente. enlace.

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

RotaJakiro: nuevo malware de Linux disfrazado de proceso systemd

 

El laboratorio de investigación 360 Netlab anunció la identificación de un nuevo malware para Linux, con nombre en código RotaJakiro y que incluye una implementación de backdoor que permite controlar el sistema. Los atacantes podrían haber instalado software malicioso después de explotar vulnerabilidades no reparadas en el sistema o adivinar contraseñas débiles.

El backdoor se descubrió durante el análisis del tráfico sospechoso de uno de los procesos del sistema identificados durante el análisis de la estructura de la botnet utilizada para el ataque DDoS. Antes de esto, RotaJakiro pasó desapercibido durante tres años, en particular, los primeros intentos de verificar archivos con hash MD5 en el servicio VirusTotal que coinciden con el malware detectado datan de mayo de 2018.

Lo llamamos RotaJakiro basándonos en el hecho de que la familia usa cifrado rotativo y se comporta de manera diferente root/non-root accountscuando se ejecuta.

RotaJakiro presta bastante atención para ocultar sus rastros, utilizando múltiples algoritmos de encriptación, que incluyen: el uso del algoritmo AES para encriptar la información del recurso dentro de la muestra; Comunicación C2 mediante una combinación de AES, XOR, ROTATE encryptiony ZLIB compression.

Una de las características de RotaJakiro es el uso de diferentes técnicas de enmascaramiento cuando se ejecuta como usuario sin privilegios y root. Para ocultar su presencia, el malware utilizó los nombres de proceso systemd-daemon, session-dbus y gvfsd-helper, que, dado el desorden de las distribuciones modernas de Linux con todo tipo de procesos de servicio, a primera vista parecían legítimos y no despertaron sospechas.

RotaJakiro utiliza técnicas como AES dinámico, protocolos de comunicación encriptados de doble capa para contrarrestar el análisis de tráfico binario y de red.
RotaJakiro primero determina si el usuario es root o no root en tiempo de ejecución, con diferentes políticas de ejecución para diferentes cuentas, a continuación, descifra los recursos sensibles relevantes.

Cuando se ejecuta como root, los scripts systemd-agent.conf y sys-temd-agent.service se crearon para activar el malware y el ejecutable malicioso se ubicó dentro de las siguientes rutas: /bin/systemd/systemd -daemon y /usr/lib/systemd/systemd-daemon (funcionalidad duplicada en dos archivos).

Mientras que cuando se ejecutó como un usuario normal, se utilizó el archivo de ejecución automática $HOME/.config/au-tostart/gnomehelper.desktop y se realizaron cambios en .bashrc, y el archivo ejecutable se guardó como $HOME/.gvfsd/.profile/gvfsd-helper y $HOME/.dbus/sessions/session-dbus. Ambos archivos ejecutables se lanzaron al mismo tiempo, cada uno de los cuales monitoreaba la presencia del otro y lo restauraba en caso de apagado.

RotaJakiro admite un total de 12 funciones, tres de las cuales están relacionadas con la ejecución de complementos específicos. Desafortunadamente, no tenemos visibilidad de los complementos y, por lo tanto, no conocemos su verdadero propósito. Desde una perspectiva amplia de puerta trasera, las funciones se pueden agrupar en las siguientes cuatro categorías.

Informar la información del dispositivo
Robar información sensible
Gestión de archivos / complementos (consultar, descargar, eliminar)
Ejecución de un complemento específico

Para ocultar los resultados de sus actividades en el backdoor, se utilizaron varios algoritmos de cifrado, por ejemplo, se utilizó AES para cifrar sus recursos y para ocultar el canal de comunicación con el servidor de control, además del uso de AES, XOR y ROTATE en combinación con compresión usando ZLIB. Para recibir comandos de control, el malware accedió a 4 dominios a través del puerto de red 443 (el canal de comunicación usó su propio protocolo, no HTTPS y TLS).

Los dominios (cdn.mirror-codes.net, status.sublineover.net, blog.eduelects.com y news.thaprior.net) se registraron en 2015 y fueron alojados por el proveedor de alojamiento de Kiev Deltahost. Se integraron 12 funciones básicas en la puerta trasera, lo que permitió cargar y ejecutar complementos con funcionalidad avanzada, transferir datos del dispositivo, interceptar datos confidenciales y administrar archivos locales.

Desde la perspectiva de la ingeniería inversa, RotaJakiro y Torii comparten estilos similares: el uso de algoritmos de cifrado para ocultar recursos sensibles, la implementación de un estilo de persistencia bastante anticuado, tráfico de red estructurado, etc.

Finalmente si estás interesado en conocer más al respecto sobre la investigación realizada por 360 Netlab, puedes consultar los detalles dirigiéndote al siguiente enlace.

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

Se identifico una vulnerabilidad en Composer que compromete el repositorio PHP de Packagist

Hace pocos dias se dio a conocer la noticia de que se ha identificado una vulnerabilidad crítica en el administrador de dependencias de Composer (CVE-2021-29472) que permite ejecutar comandos arbitrarios en el sistema al procesar un paquete con un valor de URL especialmente formado que determina la dirección para descargar el código fuente.

El problema se manifiesta en los componentes GitDriver, SvnDriver y HgDriver utilizados con los sistemas de control de fuente Git, Subversion y Mercurial. La vulnerabilidad se corrigió en las versiones Composer 1.10.22 y 2.0.13.

En particular, el repositorio de paquetes Packagist predeterminado de Composer, que contiene 306.000 paquetes de desarrollador PHP y ofrece más de 1.400 millones de descargas mensuales, se ve particularmente afectado.

En el ecosistema PHP, Composer es la principal herramienta para administrar e instalar dependencias de software. Los equipos de desarrollo de todo el mundo lo utilizan para facilitar el proceso de actualización y garantizar que las aplicaciones funcionen sin esfuerzo en todos los entornos y versiones.

El experimento mostró que si había información sobre el problema, los atacantes podían tomar el control de la infraestructura de Packagist e interceptar las credenciales de los mantenedores o redirigir la descarga de paquetes a un servidor de terceros, organizando la entrega de variantes de paquetes con cambios maliciosos a sustituir una puerta trasera durante la instalación de dependencias.

El peligro para los usuarios finales está limitado por el hecho de que el contenido de composer.json suele estar definido por el usuario y los enlaces a la fuente se pasan al acceder a repositorios de terceros, que suelen ser fiables. El golpe principal recayó sobre el repositorio Packagist.org y el servicio Private Packagist, que llaman a Composer con la transferencia de datos recibidos de los usuarios. Los atacantes podrían ejecutar su código en servidores Packagist colocando un paquete especialmente diseñado.

El equipo de Packagist resolvió la vulnerabilidad dentro de las 12 horas posteriores a la notificación de la vulnerabilidad. Los investigadores notificaron en forma privada a los desarrolladores de Packagist el 22 de abril y el problema se solucionó el mismo día. Una actualización pública de Composer con una solución para la vulnerabilidad se publicó el 27 de abril y los detalles se revelaron el 28 de abril. Una auditoría de los registros en los servidores de Packagist no reveló ninguna actividad sospechosa asociada con la vulnerabilidad.

Los errores de inyección de argumentos son una clase de errores realmente interesante que a menudo se pasan por alto durante las revisiones de código y se pasan por alto por completo en las interacciones de caja negra

El problema se debe a un error en el código de validación de URL en el archivo raíz composer.json y en los enlaces de descarga de origen. El error ha estado presente en el código desde noviembre de 2011. Packagist usa capas especiales para administrar las descargas de código sin estar vinculado a un sistema de control de fuente específico, que se ejecuta llamando a «fromShellCommandline» con argumentos de línea de comando.

El meollo del problema es que el método ProcessExecutor permitió especificar cualquier parámetro de llamada adicional en la URL. Tal escape faltaba en los controladores GitDriver.php, SvnDriver.php y HgDriver.php. El ataque GitDriver.php se vio obstaculizado por el hecho de que el comando «git ls-remote» no admitía la especificación de argumentos adicionales después de la ruta.

Un ataque a HgDriver.php resultó posible pasando el parámetro «–config» a la utilidad «hq», que permite organizar la ejecución de cualquier comando manipulando la configuración «alias.identify».

Al enviar un paquete de prueba con una URL similar a Packagist, los investigadores se aseguraron de que después de ser publicado, su servidor recibiera una solicitud HTTP de uno de los servidores de Packagist en AWS que contenía una lista de los archivos en el directorio actual.

Cabe señalar que los mantenedores no identificaron ningún signo de explotación previa de esta vulnerabilidad en la instancia pública del packagist.

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

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

Spectre: una nueva variante amenaza y su solución pasa por afectar al rendimiento de tu CPU

Spectre logo

Si lo recuerdas, ya dijimos que Spectre iba a traer mucha cola, y que no sería algo que se solucionaría fácil en las CPUs afectadas, e incluso que no tendría solución a corto plazo hasta que no llegasen nuevos diseños de silicio que no cometan los mismos errores. Pues bien, ahora se ha detectado una nueva variante de la vulnerabilidad para la que no funcionan las soluciones aportadas hasta el momento.

Esta nueva variante afectan a todos los procesadores modernos con microcaché, tanto las de Intel como las de AMD. El problema ya no es ni siquiera ese, sino que cuando se parchee para solucionar estos problemas de seguridad, volverían a causar penalizaciones en el rendimiento bastante significativas. Si las de Spectre ya tuvieron un impacto considerable, los parches para estas reducirán bastante más el rendimiento. Y si no las parcheas, estarás expuesto a ellas…

Un equipo de investigadores, dirigido por Ashish Venkat, de la Universidad de Virginia, ha descubierto esta nueva vulnerabilidad que puede ser explotada cuando la CPU está obteniendo datos de la caché de micro-operaciones. Es decir, que afectaría a todos los procesadores AMD desde 2017 y de Intel desde 2011 que utilizan este tipo de caché especial.

Ambas compañías han sido informadas de esta nueva vulnerabilidad con antelación antes de realizar el anuncio público, para que tuvieran tiempo de reaccionar. Pero ninguna e las dos compañías ha lanzado aún ninguna actualización de su microcódigo que pueda solucionar este problema de seguridad. No obstante, no te debes asustar demasiado, ya que el riesgo no es muy alto, ya que las circunstancias para que se pueda realizar un ataque son algo remotas. Además, está la citada pérdida de rendimiento, que podría generar más problemas de los que solucionaría el parcheado…

Según el documento que se ha publicado por parte de estos investigadores, existen tres posibles vías para solucionar el problema:

  • Vaciar la caché de micro-ops en los cruces de dominio. Pero, para eso, las CPUs nuevas, necesitan vaciar también el TLB. Eso tiene consecuencias de rendimiento bastante severa, ya que el procesamiento no podría seguir hasta que el iTLB (TLB para instrucciones) no se rellene.
  • Se puede dividir la caché de micro-ops en función de los privilegios. Esta partición se traduciría en el aumento de dominios de protección, y una infrautilización de esta caché, por lo que también tendría impacto negativo en el rendimiento.
  • Implementar monitorización basada en el contador de rendimiento que detecta anomalías. Pero es una técnica propensa a errores y degrada el rendimiento si se hace un sondeo frecuente.

Por ahora, toca espera a ver qué solución aportan las compañías y cuándo se lanzan las actualizaciones del firmware…

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

Godot, el motor de juegos de código abierto se actualiza a su version 3.3

Después de 7 meses de desarrollo, se lanzó el motor de juego gratuito Godot 3.3 el cual es adecuado para crear juegos en 2D y 3D. La rama Godot 3.3 es totalmente compatible con Godot 3.2 y continúa desarrollando versiones estables del motor, para lo cual se proporcionará un ciclo de soporte largo.

Inicialmente, en lugar de Godot 3.3, se planeó lanzar la actualización 3.2.4, pero los usuarios percibieron las versiones 3.2.x como correctivas, a pesar de portar nuevas características de la rama 4.0, por lo que el proyecto cambió al esquema de versiones semántico clásico.

En particular, la actualización del tercer dígito ahora indicará la presencia de solo correcciones, el segundo, la inclusión de nueva funcionalidad y el primero, la presencia de cambios que afectan la compatibilidad. La rama 3.xx será seguida en paralelo con 4.xx hasta que Godot 4.x esté completamente estabilizado y adaptado a todo el hardware actual.

Principales novedades de Godot 3.3

En esta nueva versión como novedad principal se destaca que  se ha preparado una versión del editor que funciona en un navegador web.

También se agregó la capacidad de exportar juegos para la plataforma Android en formato AAB (Android App Bundle), además de los paquetes APK. El formato AAB permite cargar solo aquellas bibliotecas nativas que son necesarias para trabajar en el dispositivo actual (por ejemplo, armeabi-v7a o arm64-v8a).

Para Android, la capacidad de incrustar elementos basados ​​en el motor Godot en forma de subcomponentes que utilizan una parte de la ventana también se implementa en las aplicaciones, además de que también se agregó soporte para áreas ciegas de la pantalla (redondeos y muescas para la cámara), eventos del mouse y entrada desde un teclado externo.

Se ha propuesto una nueva API para crear y distribuir complementos para iOS, que le permite mover complementos (ARKit, GameCenter, InAppStore) a un repositorio separado y desarrollarlos independientemente del motor Godot. Esta API se implementó previamente para la plataforma Android.

Otro cambio importante fue en los exportadores de juegos web (HTML5) que fueron mejorados pues se recibieron mejoras y soporte para teclados y gamepads, además de que también recibieron el soporte para scripts GDNative y multiproceso para juegos que se ejecutan en el navegador, pero debido a las limitaciones de la plataforma HTML5, su implementación es incompatible con las opciones para juegos nativos. Además, la implementación de transmisiones está vinculada a la API SharedArrayBuffer, que no está disponible en todos los navegadores. El perfil de subprocesos múltiples también agrega soporte para la API AudioWorklet, que permite lograr una mejor salida de audio sin bloquear la transmisión principal.

Por otra parte, podremos encontrar que se agregó soporte para crear juegos para el nuevo hardware de Apple equipado con el chip M1 ARM, junto con el cual se agregó soporte para adjuntar firmas digitales para archivos ejecutables generados para macOS.

Desde la rama 4.0 se ha transferido una API modernizada para organizar multithreading, en la que se utilizan las capacidades del estándar C ++ 14, se ha aumentado la confiabilidad del trabajo en diferentes plataformas y se ha llevado a cabo la optimización del rendimiento.

Se ha movido una optimización de la rama 4.0 que usa la estructura BVH (Bounding Volume Hierarchy) en lugar del método Octree para la separación espacial dinámica durante la renderización. BVH es ahora el predeterminado y resuelve muchos problemas de rendimiento.

Se utiliza una implementación unificada de procesamiento por lotes 2D (procesamiento por lotes, optimización para reducir las llamadas de extracción teniendo en cuenta la posición relativa de los objetos), que se puede usar tanto para OpenGL ES 3 como para OpenGL ES 2. La optimización en sí misma ahora cubre más objetos, incluyendo líneas y polígonos.

Se agregó un nuevo constructor de mapas de iluminación (lightmapper), que aplica el método de trazar la ruta y admite la reducción de ruido utilizando la biblioteca oidn (Open Image Denoise). El nuevo lightmapper usa CPU para computación y resuelve la mayoría de los problemas de calidad inherentes al antiguo controlador.

Se agregó el complemento OpenXR con soporte para el estándar del mismo nombre para crear aplicaciones de realidad virtual y aumentada. El puerto HTML5 para crear juegos basados ​​en tecnologías de realidad virtual ha agregado soporte para la especificación WebXR.

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

Obtener Godot

Godot está disponible para descargar en esta página para Windows, Mac OS y Linux. También lo puede encontrar en Steam y itch.io.

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

Budgie 10.5.3 llega con soporte de GNOME 40, mejoras y mas

Los desarrolladores de la distribución de Linux, «Solus» dieron a conocer hace pocos dias la liberación de la nueva versión del entorno de escritorio Budgie 10.5.3, que incorpora los resultados del año pasado

El escritorio Budgie se basa en tecnologías GNOME, pero utiliza sus propias implementaciones de GNOME Shell, panel, applets y sistema de notificación. El código del proyecto se distribuye bajo la licencia GPLv2. Además de la distribución Solus, el escritorio Budgie también viene en forma de edición oficial de Ubuntu.

Para administrar las ventanas, Budgie usa Budgie Window Manager (BWM), que es una modificación avanzada del complemento base de Mutter.

Budgie se basa en un panel que es similar en la organización del trabajo a los paneles de escritorio clásicos. Todos los elementos del panel son applets, lo que le permite personalizar de manera flexible la composición, cambiar la ubicación y reemplazar la implementación de los elementos del panel principal a su gusto.

Los subprogramas disponibles incluyen el menú de aplicaciones clásico, sistema de cambio de tareas, un área con una lista de ventanas abiertas, visualización de escritorios virtuales, un indicador de administración de energía, un subprograma de control de volumen, un indicador de estado del sistema y un reloj.

Principales novedades de Budgie 10.5.3

En esta nueva versión que se presenta del entorno de escritorio, podremos encontrar que como novedad principal Budgie 10.5.3 introduce el soporte para la pila GNOME 40, versión en la cual sé introdujeron diversos cambios en Mutter, además de que gsettings-desktop-schemas y gnome-shell afectaron la capacidad de usar Budgie bajo una pila GNOME 40 o junto con GDM (el administrador de inicio de sesión de GNOME que aprovecha gnome-shell).

Por otra parte, en cuanto a las mejoras realizadas en los subcomponentes de Budgie 10.5.3, podremos encontrar que en el subprograma Raven (barra lateral y centro de visualización de notificaciones) filtra las notificaciones molestas.

Además de que se modificó el código para rastrear aplicaciones en modo de pantalla completa para restaurar correctamente el estado después de completar dichas aplicaciones y se ocultó el tema GTK predeterminado (Adwaita), a favor de los compatibles oficialmente con Budgie (Materia, Plata).

El subprograma de estado con la implementación de la línea de estado ahora tiene la capacidad de personalizar las sangrías y con la utilidad xdotool en el subprograma Lock Keys, es posible cambiar el estado de las teclas CapsLock y NumLock, y no solo mostrarlo.

Se ha agregado una opción a la configuración (Configuración de escritorio de Budgie -> Windows) para pausar automáticamente la visualización de notificaciones cuando está en modo de pantalla completa, de modo que no interfieran con el inicio de juegos y la visualización de videos.

Se incluye un fondo de escritorio predeterminado, lo que facilita el envío de Budgie en distribuciones como Arch Linux (elimina la necesidad de mantener un paquete de fondo de pantalla separado).

De los demás cambios que se destacan de esta nueva versión:

  • Se detuvo el filtrado de notificaciones sobre la adición y eliminación de dispositivos.
  • La configuración del esquema de preferencias de Mutter y WM ahora solo se aplica a la sesión de Budgie.
  • El espaciado ahora se puede configurar en el subprograma de estado.
  • Ahora hay una opción en Budgie y se expone a través de la sección «Windows» de Budgie Desktop Settings para pausar automáticamente las notificaciones cuando una ventana está en pantalla completa y reanudarla cuando ya no hay una ventana de pantalla completa. 
  • Las notificaciones de dispositivos agregados/eliminados ya no son filtrados, esto resuelve problemas en los que las notificaciones de expulsión para medios externos no se almacenan en la sección Notificaciones de Raven.
  • Soluciona el problema con KeePass que causaba fallas de seguridad en el panel.
  • Varias mejoras de estabilidad, como una captura de errores X11 más proactiva.
  • Las notificaciones ahora usan un tiempo de espera de alta prioridad.
  • Correccion en los íconos de aplicaciones que no escalan en los encabezados del grupo de notificaciones de Raven.

Finalmente, si estás interesado en conocer más al respecto sobre esta nueva versión del entorno, puedes consultar los detalles en el siguiente enlace.

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