Detectaron dos vulnerabilidades en Git que conducen a la fuga y sobrescritura de datos

vulnerabilidad

Si se explotan, estas fallas pueden permitir a los atacantes obtener acceso no autorizado a información confidencial o, en general, causar problemas

Hace poco se dio a conocer la publicación de diversas versiones correctivas del sistema de control de código fuente distribuido Git que abarcan desde la versión 2.38.4 a la versión 2.30.8, en los que se encuentran dos correcciones que eliminan las vulnerabilidades detectadas que afecta las optimizaciones de clones locales y el comando «git apply».

Como tal, se menciona que estas versiones de mantenimiento son para abordar dos problemas de seguridad identificados bajoCVE-2023-22490 y CVE-2023-23946. Ambas vulnerabilidades afectan gamas de versiones existentes y se recomienda encarecidamente a los usuarios que realicen la actualización correspondiente.

Un atacante puede explotar de forma remota una vulnerabilidad para detectar información. Además, un atacante puede
explotar una vulnerabilidad localmente para manipular archivos.

Se requieren privilegios normales para explotar las vulnerabilidades. Ambas vulnerabilidades requieren la interacción del usuario.

La primer vulnerabilidad identificada es CVE-2023-22490, la cual permite que un atacante que controla el contenido de un repositorio clonado obtenga acceso a datos confidenciales en el sistema de un usuario. Dos defectos contribuyen a la aparición de la vulnerabilidad:

  • La primera falla permite, cuando se trabaja con un repositorio especialmente diseñado, lograr el uso de optimizaciones de clonación local incluso cuando se usa un transporte que interactúa con sistemas externos.
  • La segunda falla permite colocar un enlace simbólico en lugar del directorio $GIT_DIR/objects, similar a la vulnerabilidad CVE-2022-39253, en la que se bloqueó la ubicación de enlaces simbólicos en el directorio $GIT_DIR/objects, pero el hecho que el directorio $GIT_DIR/objects en sí mismo no se verificó puede ser un enlace simbólico.

En el modo de clonación local, git mueve $GIT_DIR/objects al directorio de destino eliminando las referencias de los enlaces simbólicos, lo que hace que los archivos a los que se hace referencia se copien directamente en el directorio de destino. Cambiar al uso de optimizaciones de clones locales para el transporte no local permite explotar una vulnerabilidad cuando se trabaja con repositorios externos (por ejemplo, la inclusión recursiva de submódulos con el comando «git clone –recurse-submodules» puede conducir a la clonación de un repositorio malicioso empaquetado como un submódulo en otro repositorio).

Usando un repositorio especialmente diseñado, se puede engañar a Git para que use su optimización de clones locales incluso cuando se utiliza un transporte no local.
Aunque Git cancelará los clones locales cuya fuente $GIT_DIR/objects directorio contiene enlaces simbólicos (cf, CVE-2022-39253), los objetos del directorio en sí puede seguir siendo un enlace simbólico.

Estos dos pueden combinarse para incluir archivos arbitrarios basados ​​en rutas en el sistema de archivos de la víctima dentro del repositorio malicioso y la copia de trabajo, lo que permite la exfiltración de datos de manera similar a
CVE-2022-39253.

La segunda vulnerabilidad detectada es CVE-2023-23946 y esta permite sobrescribir el contenido de los archivos fuera del directorio de trabajo al pasar una entrada con formato especial al comando «git apply».

Por ejemplo, se puede realizar un ataque cuando los parches preparados por un atacante se procesan en «git apply». Para evitar que los parches creen archivos fuera de la copia de trabajo, «git apply» bloquea el procesamiento de parches que intentan escribir un archivo usando enlaces simbólicos. Pero esta protección resultó ser eludida al crear un enlace simbólico en primer lugar.

Fedora 36 y 37 tienen actualizaciones de seguridad en estado ‘testing’ que actualizan ‘git’ a la versión 2.39.2.

Las vulnerabilidades también se abordan con GitLab 15.8.2, 15.7.7 y 15.6.8 en Community Edition (CE) y Enterprise Edition (EE).

GitLab clasifica las vulnerabilidades como críticas porque CVE-2023-23946 permite la ejecución de código de programa arbitrario en el entorno Gitaly (servicio Git RPC) .
Al mismo tiempo, Python incorporado se actualiza a la versión 3.9.16 para corregir más vulnerabilidades.

Finalmente para los interesados en conocer más al respecto, pueden seguir el lanzamiento de actualizaciones de paquetes en distribuciones en las páginas de DebianUbuntuRHELSUSE/openSUSEFedoraArchFreeBSD.

Si no es posible instalar una actualización, se recomienda como solución evitar ejecutar «git clone» con la opción «–recurse-submodules» en repositorios que no son de confianza, y no usar «git apply» y «git am «comandos con código no verificado.

from Linux Adictos https://ift.tt/XetU0lz
via IFTTT

Encontraron una vulnerabilidad en openSSH 9.1 que permite eludir malloc

vulnerabilidad

Si se explotan, estas fallas pueden permitir a los atacantes obtener acceso no autorizado a información confidencial o, en general, causar problemas

Hace poco Qualys (una empresa de tecnología que se especializa en la seguridad en la nube) dio a conocer que ha encontrado una manera de eludir malloc y la protección sin dobles para iniciar un traspaso al código utilizando una vulnerabilidad en OpenSSH 9.1.

Hasta el momento se ha determinado que dicha vulnerabilidad es solo «teórica», ya que es poco probable que cree un exploit funcional. Al mismo tiempo, la posibilidad de crear un exploit que funcione sigue siendo una gran pregunta.

Sobre la vulnerabilidad se menciona que el truco para eludir las protecciones doble libre y uso después de libre de malloc es reasignar la memoria que estaba ocupada por options.kex_algorithms tan pronto como esté libre.

Desde el punto de vista de malloc, no se hace ningún intento de liberar, leer o escribir memoria que ya está libre; desde el punto de sshd, sin embargo, se produce un ataque de aliasing, ya que dos punteros diferentes a dos objetos diferentes se refieren a la misma porción de memoria, y una escritura en un objeto sobrescribe al otro objeto.

Esto abre un mundo de posibilidades.

Comenzamos nuestra investigación sobre el ratón de biblioteca de Debian (que usa el código de glibc
malloc), pero eventualmente cambiamos a OpenBSD 7.2, porque OpenBSD
malloc (a pesar de su programación muy defensiva) tiene dos características que
hágalo especialmente interesante para este error doble libre en particular:

La vulnerabilidad se debe a una doble liberación de un área de memoria en la etapa de preautenticación. Para crear condiciones para la vulnerabilidad, basta con cambiar el banner del cliente SSH a «SSH-2.0-FuTTYSH_9.1p1» (u otro cliente SSH antiguo) para lograr la configuración de «SSH_BUG_CURVE25519PAD» y «SSH_OLD_DHGEX» banderas Después de configurar estos indicadores, la memoria para el búfer «options.kex_algorithms» se libera dos veces.

Los investigadores de Qualys, en el curso de la manipulación de la vulnerabilidad, pudieron obtener control sobre el registro del procesador «% rip», que contiene un puntero a la siguiente instrucción que se ejecutará. La técnica de explotación desarrollada permite transferir el control a cualquier punto del espacio de direcciones del proceso sshd en un entorno OpenBSD 7.2 no actualizado, que se envía por defecto con OpenSSH 9.1.

Actualización rápida: pudimos obtener un control arbitrario del «rip» a través de este error (es decir, podemos saltar donde queramos en sshd’s espacio de direcciones) en una instalación sin parches de OpenBSD 7.2 (que se ejecuta
OpenSSH 9.1 por defecto). Esto no es de ninguna manera el final de la historia: este era solo el paso 1, omitir el malloc y las protecciones dobles.

El siguiente paso que pueden o no ser factibles en absoluto, son:

– paso 2, ejecutar código arbitrario a pesar de ASLR, NX y ROP
protecciones (esto probablemente requerirá una fuga de información, ya sea
por el mismo error o por un error secundario);

– paso 3, escapar de la caja de arena de sshd (a través de un error secundario, ya sea en
el proceso padre privilegiado o en el ataque reducido del núcleo
superficie).

Se observa que el prototipo propuesto es la implementación de solo la primera etapa del ataque: para crear un exploit que funcione, es necesario omitir los mecanismos de protección ASLR, NX y ROP, y salir del aislamiento de la zona de pruebas, lo cual es poco probable.

Resolver el problema de eludir ASLR, NX y ROP requiere obtener información sobre las direcciones, lo que se puede lograr identificando otra vulnerabilidad que conduce a la fuga de información. Un error en un proceso principal privilegiado o kernel puede ayudar a salir del entorno limitado.

Se menciona que la vulnerabilidad funciona de la siguiente manera:

  • -Primero, se libera options.kex_algorithms en compat_kex_proposal(), fingiendo el cliente ssh es un antiguo cliente «FuTTY».
  • -En segundo lugar, se reasigna el fragmento que estaba ocupado por options.kex_algorithms, con una estructura EVP_AES_KEY cuyo tamaño es de 264 bytes, seleccionando el cifrado «aes128-ctr» durante la fase de intercambio de claves. Esta reasignación ocurre con una probabilidad de ~1/32.
  • – En tercer lugar, se libera (nuevamente) el fragmento que estaba ocupado por options.kex_algorithms (y ahora está ocupado por la estructura EVP_AES_KEY) en kex_assemble_names() (a través de mm_getpwnamallow()). Esto sucede si y solo si el primer byte del fragmento es ‘+’, ‘-‘ o ‘^’ (de lo contrario, kex_assemble_names() devuelve un error y se llama a fatal_fr()).
  • – En cuarto lugar, se reasigna el fragmento que estaba ocupado por options.kex_algorithms (y todavía se hace referencia a él como una estructura EVP_AES_KEY ahora), con una cadena de 300 ‘A’ bytes, «authctxt->user» o «authctxt->style» durante la fase de autenticación. Esta reasignación, que efectivamente sobrescribe toda la estructura EVP_AES_KEY con bytes ‘A’, ocurre con una probabilidad de ~2/32.
  • – Por último, se salta a 0x4141414141414141 cuando sshd llama a EVP_Cipher(), porque la estructura EVP_AES_KEY contiene un puntero de función que fue sobrescrito por nuestros bytes ‘A’ y que es llamado por CRYPTO_ctr128_encrypt_ctr32() (a través de EVP_Cipher()).

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/Fu7XOAC
via IFTTT

El plan de desarrollo de Thunderbird propone una interfaz de usuario reconstruida desde cero

future-of-thunderbird

La versión 115 de Thunderbird se lanzará en julio, será una actualización completa con cambios en la interfaz y el código.

Los desarrolladores del cliente de correo electrónico Thunderbird han publicado un plan de desarrollo para los próximos tres años y en el cual el jefe de diseño de productos de Thunderbird presenta sus puntos de vista sobre hacia dónde se dirige el cliente de correo electrónico Thunderbird.

Thunderbird se acerca rápidamente a su vigésimo aniversario como cliente de correo electrónico independiente y en julio de este año se lanzará la versión 115 «Supernova». En el plan de desarrollo, el cual tiene un tiempo especificado, el proyecto tiene la intención de lograr tres objetivos principales.

Como líder de diseño de productos de Thunderbird, tengo una buena visión general de lo que está pasando y hacia dónde se dirigen las cosas. Considere este artículo (y el video que lo acompaña a continuación) como la primera pintura de una historia más completa que muestra hacia dónde se dirige Thunderbird y por qué algunas de las cosas que estamos haciendo pueden parecer contrarias a la intuición.

Algunos de los puntos de discusión a continuación pueden causar división. Podrían tocar una fibra sensible. Pero creemos en ser transparentes y abiertos sobre nuestro pasado y nuestro futuro.

Con el lanzamiento de Thunderbird 115 «Supernova» este año, estamos haciendo más que un lanzamiento anual. Es una revisión moderna del software, tanto visual como técnicamente. Thunderbird está pasando por una revisión masiva desde cero para deshacerse de toda la deuda técnica y de interfaz acumulada en los últimos 10 años.

No es una tarea fácil, pero es necesaria para garantizar la viabilidad del proyecto durante los próximos 20 años.

Simplemente «rellenar encima de» la arquitectura que se desmorona no es sostenible, y no podemos seguir ignorándolo.

Durante los próximos 3 años, el proyecto Thunderbird se centrará en:

  • Rediseñar la interfaz de usuario desde cero para crear una interfaz de usuario adecuada para diferentes categorías de usuarios (principiantes y veteranos), fácilmente personalizable según sus propias preferencias y un sistema de diseño coherente.
  • Aumentar la confiabilidad y la compacidad del código base, reescribir el código obsoleto y deshacerse de los problemas acumulados (deshacerse de la deuda técnica ).
  • Transición a la formación mensual de nuevos lanzamientos.

Thunderbird es una aplicación monolítica que ha sido desarrollada por miles de personas durante dos décadas. Hacer cambios importantes, como lo estamos haciendo con Supernova, requiere una reflexión muy cuidadosa.

Todos estos cambios serán inmediatamente visibles, pero estarán mejor preparados especialmente en los próximos tres años, ya que será un trabajo a largo plazo para acabar con lo que el propio equipo llama «una vieja y frágil torre de Lego», en la que las novedades simplemente se colocan sobre una base desvencijada. 

Además, hay que tener en cuenta que, a pesar de los cambios importantes mencionados anteriormente, el software seguirá siendo de código abierto, por lo que todos los desarrolladores podrán contribuir.

Supernova será el primer paso significativo en esta dirección, justo para el vigésimo aniversario de Mozilla y la próxima versión ESR de Firefox. El equipo había dado en noviembre una vista previa del tipo de interfaz en preparación al publicar una captura del trabajo en progreso en la parte del calendario.

Thunderbird es literalmente un conjunto de códigos que se ejecutan sobre Firefox. Todas las pestañas y secciones que ve en nuestras aplicaciones son solo pestañas del navegador con una interfaz de usuario personalizada.

Nos gusta usar Firefox como arquitectura base porque aprovecha todo lo bueno que contiene. Cosas como soporte multiplataforma, renderizador web Gecko, compilador JavaScript Spidermonkey, etc.

Al hacerlo, Thunderbird puede seguir a Firefox a través de su ciclo de lanzamiento, heredar parches de seguridad, obtener soporte para extensiones y más.

Obviamente, esto es más complejo, ya que se necesita mucho C ++, JS, CSS y XHTML para asegurarse de que todo funcione correctamente. Usar una arquitectura base sólida como Firefox es el punto de partida perfecto.

Desafortunadamente, este enfoque tiene un alto costo.

Para aquellos que no saben o no recuerdan, la primera versión de Thunderbird se lanzó hace casi 20 años. El cliente de correo electrónico se deriva de Firefox y, de hecho, utiliza los mismos motores de renderizado (Gecko) y JavaScript (SpiderMonkey). Mozilla se ocupó del desarrollo del cliente hasta 2012, después de lo cual quedó en manos de la comunidad, factor que ha influido positivamente en varios frentes, pero que también ha derivado en algunos inconvenientes, como la falta de una hoja de ruta a la que seguir para continuar con el desarrollo.

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/F1Ec2Qg
via IFTTT

Firefox 110 permite importar datos de Opera y Vivaldi y mejora el rendimiento de WebGL

Firefox 110

Porque no todo iban a ser corazones, flores y bombones (como si eso fuera malo…), hoy 14 de febrero también tenían que llegar, al menos, dos novedades de software. Plasma 5.27 ha llegado este mediodía como última versión 5.x con muchas mejoras interesantes, y algo más tarde nos han entregado una nueva versión del navegador web de Mozilla, un Firefox 110 que no introduce un número muy alto de novedades. Pero si entre ellas hay alguna que menciona la palabra «rendimiento», bienvenido sea.

Firefox 110 sucede a la v109 lanzada hace cuatro semanas, y entre sus novedades tenemos que podemos importar información, como favoritos, historial de navegación y contraseñas de Vivaldi, Opera y Opera GX, navegadores que se suman a la lista de compatibles que hasta ahora se limitaba a Chrome, Edge y Safari. La lista de novedades de Firefox 110 la completa lo que tenéis a continuación.

Novedades de Firefox 110

  • El sandboxing de la GPU se ha activado en Windows.
  • También para Windows, los módulos de terceros pueden ser ahora bloqueados para evitar que se inyecten a sí mismos en Firefox, lo que puede ser útil si están causando cierres inesperados u otros comportamientos indeseables.
  • Los campos de entrada date, time y datetime-local pueden ser ahora vaciados con Cmd+Retroceso y Cmd+Del en macOS, y con Ctrl+Retroceso y Ctrl+Suprimir en Windows y Linux.
  • Canvas2D acelerada por GPU se han activado por defecto en macOS y Linux.
  • Rendimiento mejorado de WebGL en Windws, macOS y Linux.
  • Se ha activado una capa de vídeo decodificado por hardware en las GPU no-Intel en Windows 10 y Windows 11, el rendimiento de la reproducción de vídeo y la calidad del escalado de vídeo.
  • Varias correcciones de errores y de seguridad.

Firefox 110 ya se puede descargar desde la página web oficial. En las próximas horas se actualizarán sus paquetes snap, flatpak y los de los repositorios oficiales de la mayoría de distribuciones Linux.

from Linux Adictos https://ift.tt/h5uzydw
via IFTTT

Qué es Disroot y cómo abrir una cuenta

Disroot

Durante toda nuestra historia, la tecnología ha ido cambiando nuestras vidas, en general mejorándolas. No siempre nos hemos comunicado igual, y los últimos cambios en este sentido han llegado gracias a Internet. Pero todos sabemos que en la red podemos encontrar lo mejor y lo peor, y también tenemos que tener cuidado de cómo hacemos las cosas para que nuestra privacidad no se vea comprometida. La mayor parte de las herramientas que usamos para comunicarnos o trabajar son propiedad de las grandes tecnológicas (GAFAM: Google, Apple, Facebook, Amazon y Microsoft), pero por suerte existen alternativas libres y descentralizadas como Disroot, que tienen la intención de darnos a las personas mayor autonomía y control sobre nuestra información.

Ya son muchos, o bueno, algunos los servicios que están apostando por la descentralización. Un ejemplo es Mastodon, muy presente en las últimas noticias desde que Elon Musk compró Twitter y empezó a hacer todo tipo de movimientos que le dan sentido a la expresión «como pollo sin cabeza». Cualquiera puede crear una instancia en Mastodon, y aunque todas están conectadas entre sí, la compañía no tiene el dominio de su contenido. Algo similar pasa en servicios de vídeo como PeerTube o DTube, donde los usuarios podemos subir vídeos sin miedo a que Google nos lo elimine porque una canción se parece a otra con derechos de autor, aunque la hayas hecho tú usando loops de un programa DAW.

Qué es Disroot

Como otros servicios con filosofías similares, Disroot fue fundada en 2015 por un grupo de activistas y entusiastas del software libre que buscaban una alternativa libre a las plataformas comerciales y centralizadas, como Google, Microsoft y Dropbox. Es una organización sin ánimo de lucro y se financia a través de las donaciones.

Con el tiempo ha ido yendo a más y ofreciendo más servicios, pero siempre ha sido una plataforma de herramientas libres y descentralizadas, y ofrece un grupo de servicios en línea para la comunicación, la colaboración y la gestión de archivos. Toda la plataforma se basa en el software libre, y cualquier lector de un blog como este debería saber qué significa esto: el código fuente de las aplicaciones es público y puede ser modificado para un uso personal o para compartirlo, pero no se puede usar con fines comerciales. La descentralización hace que no esté controlada por una sola entidad.

Servicios disponibles

Disroot ofrece una variedad de servicios como:

  • Correo electrónico seguro y privado. Usa cifrado de extremo a extremo para proteger la información y los datos de los usuarios. A diferencia de lo que sucede con otros servicios de correos seguros como ProtonMail, es compatible con clientes de correo como Thunderbird, lo que personalmente me da la impresión, compartida por la comunidad en Reddit, de que está un punto por debajo del correo de Proton.
  • Nube: el almacenamiento en la nube de Disroot está basado en Nextcloud, y permite a los usuarios sincronizar archivos entre dispositivos y compartirlos con otros usuarios. Todo está cifrado automáticamente y se almacenan en servidores de Disroot que están en diferentes países para garantizar las copias y la disponibilidad.
  • Herramientas colaborativas: también hay disponibles una serie de herramientas de colaboración en línea como Etherpad para textos, EtherCalc para hojas de cálculo y Sandstorm para la creación de aplicaciones web autohospedadas.
  • Mensajería: hay disponibles varias aplicaciones de mensajería que incluyen XMPP y Jitsi.
  • Calendario y tareas: también basado en Nextcloud, Disroot ofrece un servicio de calendario y tareas que nos permiten crear eventos y tareas y sincronizarlos entre dispositivos. Como otros servicios de este tipo, el de Disroot nos permite suscribirnos a calendarios públicos y compartirlos con otros usuarios.
  • Paste Bin: para compartir textos/código cifrado.
  • Subida: alojamiento cifrado temporal, que se puede usar para enviar archivos.
  • Búsqueda anónima: suele tirar de motores como Google y DuckDuckGo, pero a veces es bloqueada.

Enlace a la página de servicios.

Disroot en el futuro

Empezaron pensando en ofrecer una alternativa a servicios como Google Drive, OneDrive y Dropbox, pero han ido ampliándolos hasta el catálogo que ofrecen hoy en día. Su futuro es incierto, pero se puede especular mirando un poco al presente. Ahora mismo son mucho más que en sus inicios, y han conseguido crecer gracias a las donaciones. El objetivo de la compañía es seguir con esta tendencia, y en el futuro deberían ofrecer cosas nuevas.

Lo nuevo que ofrezcan debe seguir con su vieja filosofía, es decir, con la descentralización por bandera y dando a los usuarios el poder sobre su contenido y lo que hace.

Por qué debería usar Disroot o dejar de hacerlo

Bueno, Disroot es una opción más, y usar lo que nos ofrece o no hacerlo debe ser decisión de cada uno. Si decidimos confiar en esta compañía, estaremos usando una alternativa ética de código abierto a lo que nos ofrece GAFAM. Por una parte, estaremos restándole poder a las grandes tecnológicas, y por otra estaremos usando servicios más privados.

Si esto no va con nosotros, podemos seguir como estamos, y es totalmente respetable e incluso comprensible, ya que las cosas, aunque se queden con nuestra información, funcionan. Pero siempre podemos probar alternativas que miran más por los usuarios, y si funcionan, es un win-win.

Cómo abrir una cuenta

Para abrir una cuenta en Disroot, tenemos que seguir estos pasos:

  1. Vamos a disroot.org/es.
  2. Desde esa página web, tenemos que buscar «Inscribirse», o ir al enlace directo que en el momento de escribir este artículo es este.

Nuevo usuario en Disroot

  1. Rellenamos todos los campos. Hay que prestar especial atención a lo que nos piden. Ahora mismo, en el punto 3 hay que demostrar que se es humano, y hay que escribir un texto de 150 caracteres describiendo lo que nos piden. No se admiten símbolos que se consideren extraños, por lo que no se pueden usar acentos, eñes y demás.
  2. Con todo correcto, hacemos clic en Continuar.
  3. Pegamos el código de verificación que nos habrá enviado por correo y hacemos clic en Comprobar código.

Código de verificación

  1. Veremos un mensaje de que el código es correcto, y sólo tenemos que hacer clic en Continuar.
  2. Aparecerá una ventana con los términos de uso y debemos aceptarlos para poder crear la cuenta.

Términos de uso

  1. Esperamos un momento a que se cree la cuenta y, al finalizar la barra de progreso, ya tendríamos nuestra cuenta PEDIDA en Disroot. ¿Qué significa esto? Que tienen que revisar nuestra petición, algo que se explica en el correo que nos envían. Cuando la revisen, si todo está correcto, ya podremos entrar a Disroot.

Conclusión

Disroot ofrece mucho, y lo hace todo descentralizado, de código abierto y mirando por sus usuarios. Cada uno es libre de hacer lo que le parezca mejor, pero si se busca una alternativa a GAFAM, esta es una de las mejores.

from Linux Adictos https://ift.tt/akwr2nX
via IFTTT

Plasma 5.27 llega con novedades como el sistema de apilado avanzado para despedirse de la serie 5

Plasma 5.27

Hoy, el día de los enamorados y del software libre, KDE ha lanzado la actualización más importante de su entorno gráfico en años, diría yo. Plasma 5.27 es la última versión de la serie 5, y el proyecto ha querido entregarnos todo lo que ha estado en su mano para que estemos contentos durante los cerca de ocho meses que tardará en llegar Plasma 6.0. Esta versión incluye muchas novedades, pero no menos importante es que se han corregido muchísimos bugs.

KDE destaca tres funciones como las más importantes de Plasma 5.27, pero para mí la mejor de ellas, y de toda esta nueva versión, es el sistema de apilado avanzado (enlace). Hace poco estuve tocando Windows 11, y creo que KDE ha mirado un poco de reojo al sistema de Microsoft para su propio sistema de apilado, pero le han dado un giro más de tuerca. Para entrar en él hay que presionar la combinación de teclas META + T, elegir una disposición y luego ir poniendo las ventanas en su sitio. Podremos ver algo como lo siguiente:

Sistema de apilado de Plasma 5.27

Novedades más destacadas de Plasma 5.27

Se ha introducido un nuevo asistente que nos presenta Konqi, la mascota de KDE. Con él podremos conectarnos a Internet, conocer funciones de Plasma, cómo modificar algunas cosas e instalar software, entre otras cosas.

Asistente de instalación de Plasma

Para ver cómo funciona el sistema de apilado, lo mejor es ver el vídeo de las notas de este lanzamiento (enlace al final del artículo). Pero aquí podemos explicar algunas cosas:

  • Se activa desde la opción de efectos de escritorio de Preferencias del sistema, y se pueden apilar las ventanas presionando la tecla Shift.
  • Para crear capas personalizadas, o elegir entre las plantillas existentes, habrá que presionar antes la combinación de teclas anteriormente mencionada.

KDE quiere dejar claras un par de cosas: la función está aún dando sus primeros pasos, y no está diseñada para sustituir un gestor de ventanas… pero a mí me llama la atención que en esta explicación incluyen la palabra «yet», es decir, que no está diseñado para replicar todas las funciones de un gestor de ventanas maduro AÚN. Esto no hace más que aumentar el hype sobre esta función, y ya veremos en qué acaba.

De momento yo, que en su día lo probé en KDE neon, sí que puedo decir que es una función muy útil que nos hará ser más productivos. Que, por ejemplo, si estamos viendo un tutorial o a un maestro/a en una videoconferencia y queremos verlo/a a el/ella en una parte y tener Writer, Visual Studio Code u otra app en la otra, podremos cambiar el tamaño de ambas ventanas al mismo tiempo, haciendo que el vídeo se vea más grande si así lo necesitamos.

Retoques estéticos

En cada nueva versión de Plasma hay retoques estéticos que hacen que se vea mejor, empezando por el fondo de pantalla. Ahora, las ventanas en el tema Breeze tienen una línea sutil rodeándolas que no sólo hacen que se vean mejor, sino que hacen que se diferencien mejor las ventanas en el tema oscuro.

No tanto relacionado con la estética, pero sí con la distribución, Preferencias del sistema ha visto mejoradas algunas de sus páginas. Opciones menos importantes se han incluido en otras secciones en las que quedaban mejor, por ejemplo.

Discover ha estrenado una nueva pagina de inicio con categorías que se actualizan dinámicamente que muestran aplicaciones populares, entre otras funciones. También se ha hecho que sea más fácil encontrar lo que estamos buscando.

Otras novedades

Entre el resto de novedades, KDE destaca:

  • KRunner puede mostrar la hora actual en otras zonas, y sus resultados son más inteligentes.
  • Mejoras en el panel, la bandeja del sistema y widgets. Por ejemplo, el del reloj digital puede mostrar el calendario hebreo, y el de reproducción multimedia es compatible con los toques de pantalla.
  • Mejorado el soporte para Wayland, con muchas correcciones de errores y mejoras de fiabilidad.
  • Revisión multimonitor: Aquellos que utilicen varios monitores se beneficiarán de una importante revisión de la forma en que Plasma los gestiona. Los arreglos ahora serán más robustos, sin la posibilidad de que los paneles y escritorios se pierdan después de que los monitores sean desconectados o re-arreglados.
  • Utiliza atajos globales para ejecutar comandos de terminal: La página Métodos abreviados de la utilidad Preferencias del sistema permite ahora configurar métodos abreviados de teclado no sólo para las aplicaciones, sino también para ejecutar comandos de terminal y secuencias de comandos.
  • Activa el modo «No molestar» desde la línea de comandos: Si pasamos la mayor parte del tiempo en el terminal y nos agobian las notificaciones, podemos escribir kde-inhibit –notifications y Plasma entrará en modo «No molestar».
  • Enviar ventanas a Actividades: ahora podemos mover o copiar ventanas a una, algunas o todas las Actividades haciendo clic con el botón derecho del ratón en la barra de título y eligiendo dónde queremos que vaya.
  • Ahorra energía con sólo pulsar una tecla: En la pantalla de bloqueo, podemos pulsar la tecla Esc para apagar la pantalla y ahorrar energía.
  • Entradas de menú personalizadas. Si nos gusta personalizar cómo se inician las aplicaciones, el Editor de Menús de KDE siempre ha permitido establecer variables de entorno al abrir las aplicaciones, pero ahora es mucho más fácil hacerlo, ya que Plasma 5.27 da al editor un cuadro de texto específico para exactamente ese propósito.

Plasma 5.27 ha sido anunciado hace apenas unos minutos, y esto significa que los desarrolladores ya pueden trabajar con su código. Pronto llegará a KDE neon, más tarde debería hacerlo al repositorio Backports de KDE para Kubuntu 22.10 y sistemas compatibles (entre los que no está Kubuntu 22.04) y también a las distribuciones Rolling Release.

from Linux Adictos https://ift.tt/LalC8gJ
via IFTTT

Cómo reinstalar el GRUB en Ubuntu

Reinstalar Grub Ubuntu

Entre los errores de Linux que más miedo nos pueden provocar, creo que hay dos: el que nos puede hacer entrar en pánico incluye esa misma palabra en su nombre, y el fallo se llama «kernel panic». Pero como alguien que usa Linux desde hace muchos años y solía usar inicio dual o dualboot, y no habiendo visto nunca un kernel panic en vivo, los que más me miedo me han provocado históricamente han sido los fallos con el GRUB. Si os ha pasado, y usáis un sistema operativo basado en el de Canonical, este artículo os enseñará cómo reinstalar el GRUB de Ubuntu.

GRUB es el programa que se encarga de cargar y gestionar el proceso de inicio, boot en inglés. Es el bootloader más extendido en las distribuciones Linux. Un bootloader es el primer software que se ejecuta cuando un ordenador se inicia, y carga el kernel del sistema operativo y luego el núcleo inicia el resto, como la shell, gestor de pantallas, entorno gráfico y todo lo demás. No GRUB, no party.

Reinstalar el GRUB de Ubuntu para reparar problemas menores

Puede haber varios motivos para reinstalar el GRUB de Ubuntu. Algunos de ellos pueden ser resetear o reiniciar el GRUB, en el sentido de que vuelva a su estado original si estamos experimentando fallos con el software.

Si podemos entrar al sistema operativo y queremos reinstalar el GRUB de Ubuntu, el proceso es bastante sencillo. Bastaría con abrir el terminal y escribir:

sudo update-grub

Con el comando anterior, si hay algún problema con su instalación, intentará corregirlo automáticamente. Si hemos hecho alguna personalización, ésta debería desaparecer, pero los problemas deberían irse también. Este sería lo que en otros procesos se conoce como un reset suave o soft reset del GRUB.

Para completar el proceso tendremos que reiniciar el sistema operativo, y será entonces cuando veremos o dejaremos de ver lo que nos ha estado mosqueando recientemente.

Cómo reinstalarlo si no puedo entrar al sistema operativo

Si no podemos entrar al sistema operativo, la situación ya es algo más peliaguda. Por motivos como este merece la pena tener siempre un USB de instalación o Live USB con el sistema operativo que tengamos instalado en nuestro ordenador. Si tenemos varios, merece la pena crearse un USB con Ventoy con el que podremos iniciar diferentes Live Sessions. Pero lo importante es que tengamos al menos un USB con el mismo sistema que nuestro ordenador para solucionar problemas como este.

Porque para reinstalar, o aquí mejor decir reparar, el GRUB de Ubuntu si no podemos entrar al sistema operativo, lo tendremos que hacer desde un Live USB; será la manera más sencilla. El proceso sería el siguiente:

  1. Suponemos que ya tenemos un Live USB, por lo que iniciamos desde él. Si no lo tenemos y tenemos otro equipo en donde podamos crearlo, primero lo creamos y luego iniciamos desde él.
  2. Cuando nos diga qué hacer, elegimos la opción «Try Ubuntu», nada de elegir la de instalar o no entraremos a la Live Session.
  3. Una vez entramos, lo mismo: primero seleccionamos el idioma en el que queremos la interfaz y luego elegimos «Probar Ubuntu», que es lo que nos hará entrar en la Live Session.
  4. Abrimos un terminal, algo que puede hacerse con la combinación de teclas Ctrl+Alt+T.
  5. Con el siguiente comando averiguaremos la partición en la que está instalado Ubuntu:
sudo fdisk -l
  1. Montamos la partición de Ubuntu en el directorio /mnt con este comando (cambiando la X y la Y por las de unidad y partición, como puede ser sda1):
sudo mount /dev/sdXY /mnt
  1. Ahora hay que montar las particiones especiales del sistema:
for i in /sys /proc /run /dev; do sudo mount --bind "$i" "/mnt$i"; done
  1. En el siguiente paso y con el siguiente comando, cambiaremos el directorio raíz a la partición montada:
sudo chroot /mnt
  1. A continuación reinstalamos el GRUB en el disco duro (como antes, cambiando la X por la letra del disco, como sda:
grub-install /dev/sdX
  1. Actualizamos la configuración del GRUB:
update-grub
  1. En los siguientes pasos vamos a hacer el camino de vuelta, empezando por salir de la sesión chroot con «exit» sin las comillas.
  2. Ahora desmontamos las particiones especiales del sistema:
for i in /sys /proc /run /dev; do sudo umount "/mnt$i"; done
  1. Por último, reiniciamos el ordenador. Para ello, no tenemos que olvidarnos de sacar el USB de instalación, o de lo contrario volverá a entrar desde él y no veremos los cambios.

Reinstalar el sistema operativo

Claro está que alguien que ha dado con este artículo con la esperanza de arreglar las cosas reparando el GRUB no esperará que la solución pase por reinstalar todo el sistema operativo, pero en ocasiones se puede arreglar mucho con una reinstalación.

Reinstalar algo no es instalarlo desde cero. Lo que se hace es instalar el software importante sustituyendo el centro del sistema operativo por los paquetes en su estado original. Por lo tanto, es una opción, y una muy válida, ya que arreglaría el problema del GRUB y no se deberían perder nuestros datos y documentos.

Cuando vamos a instalar Ubuntu, si ya tenemos Ubuntu instalado nos da la opción de instalar sobre el sistema existente, y esto hará poco más o menos lo mismo que cuando restauramos un móvil, con la diferencia de que el contenido de la carpeta /home se mantendrá. Los programas instalados desaparecerán, pero no su configuración. Por lo tanto, tras una instalación que parece ser de cero, cuando instalemos cualquier programa, la configuración que teníamos antes de reinstalar el sistema debe estar ahí. Y nuestros documentos también.

Y aunque esto suele ser así, para los usuarios que quieran estar más tranquilos con este tipo de problemas, merece la pena hacer varias particiones al instalar el sistema operativo, tal y como se explica en este artículo. Ubuntu necesita sí o sí las particiones boot y raíz. Ambas se crean automáticamente si dejamos la instalación por defecto, pero es buena idea crear dos más: la partición Swap y la /home. Para no perder nuestra información, la importante de verdad es la /home. Luego, si queremos reinstalar con todas las garantías, tenemos que elegir «Mas opciones» y luego formatear la raíz (/), pero no la /home.

Espero que este tutorial te haya ayudado a reinstalar el GRUB de Ubuntu, o por lo menos que hayas podido volver a usarlo sin perder demasiada información.

from Linux Adictos https://ift.tt/HsL8GUJ
via IFTTT

Ya fue liberada la primera versión de prueba de Android 14

Android 14

primera vista previa para desarrolladores de Android 14

Google ha presentado la primera versión de prueba de la plataforma móvil Android 14, en la cual se continuó trabajando para mejorar el desempeño de la plataforma en tabletas y dispositivos con pantalla plegable. Se actualizaron las pautas para diseñar aplicaciones para dispositivos de pantalla grande y se agregaron plantillas genéricas de interfaz de usuario de pantalla grande para abordar aplicaciones como redes sociales, comunicación, contenido multimedia, lectura y compras.

Se propone una versión preliminar del Cross device SDK con herramientas para desarrollar aplicaciones que funcionen correctamente con diferentes tipos de dispositivos (teléfonos inteligentes, tabletas, televisores inteligentes, etc.) y diferentes factores de forma.


Ademas de ello, tambien se destaca que se optimizó la coordinación del trabajo en segundo plano que consume muchos recursos, como la descarga de archivos grandes cuando hay una conexión Wi-Fi. Se han realizado cambios en las API de inicio de servicio prioritario (Servicio en primer plano) y Programador de tareas (JobScheduler) para agregar una nueva funcionalidad para los trabajos relacionados con la transferencia de datos iniciados por el usuario.

Tambien se destaca que, se han introducido requisitos para especificar el tipo de servicios prioritarios que se lanzarán (trabajo con la cámara, sincronización de datos, reproducción de datos multimedia, seguimiento de ubicación, acceso al micrófono, etc.). Más fácil de definir las condiciones para activar las descargas de datos, por ejemplo, para descargar solo cuando se accede a través de Wi-Fi.

El sistema interno para enviar mensajes de difusión a las aplicaciones (sistema de difusión) se ha optimizado para reducir el consumo de energía y mejorar la capacidad de respuesta, asi como tambien una aceptación mejorada de flujos de mensajes registrados por parte de las aplicaciones: los mensajes se pueden poner en cola, combinar (por ejemplo, una serie de mensajes BATTERY_CHANGED se agregarán en uno) y se entregarán solo después de que la aplicación salga del estado almacenado en caché.

El uso de alarmas exactas en las aplicaciones ahora requiere obtener un permiso SCHEDULE_EXACT_ALARM por separado, ya que el uso de esta funcionalidad puede afectar negativamente la duración de la batería y generar un mayor consumo de recursos (para tareas programadas, se recomienda usar la activación en el tiempo aproximado). Las implementaciones de calendario y reloj que utilizan la activación de hora precisa deben recibir el privilegio USE_EXACT_ALARM en la instalación.

Por otra parte, se menciona que se proporcionó la capacidad de especificar configuraciones de idioma vinculadas a aplicaciones individuales. El desarrollador de la aplicación ahora puede cambiar la configuración de localeConfig llamando a LocaleManager.setOverrideLocaleConfig para determinar la lista de idiomas que se muestran para la aplicación en la interfaz de configuración de Android.

Otro cambio importante, es que está prohibido instalar aplicaciones para las que la versión del SDK sea inferior a la 23, lo que bloqueará la omisión de las restricciones de permisos mediante la vinculación a API antiguas (la versión 22 de la API está prohibida, ya que la versión 23 (Android 6.0) tiene un nuevo modelo de control de acceso que le permite solicitar acceso a los recursos del sistema).

De los demás cambios que se destacan de la nueva version:

  • Se agregó la API de inflexión gramatical para que sea más fácil agregar traducciones de elementos de la interfaz que tengan en cuenta los idiomas con un sistema de género.
  • Para evitar que aplicaciones maliciosas intercepten solicitudes de intención, la nueva versión prohíbe el envío de intenciones sin especificar explícitamente un paquete o componente interno.
  • Seguridad mejorada de carga de código dinámico (DCL, carga de código dinámico): para evitar la sustitución de código malicioso en archivos ejecutables cargados dinámicamente, estos archivos ahora deben tener derechos de acceso de solo lectura.
  • Las aplicaciones instaladas anteriormente que usan las API antiguas seguirán funcionando después de la actualización de Android.
  • Se propuso la API Credential Manager y se implementó el soporte para la tecnología Passkeys , que permite al usuario autenticarse sin contraseñas utilizando identificadores biométricos, como una huella digital o reconocimiento facial.

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

Se espera que Android 14 se lance en el tercer trimestre de 2023. Para evaluar las nuevas funcionalidades de la plataforma, se ha propuesto un programa preliminar de pruebas. Las compilaciones de firmware están preparadas para los dispositivos Pixel 7/7 Pro, Pixel 6/6a/6 Pro, Pixel 5/5a 5G y Pixel 4a (5G).

from Linux Adictos https://ift.tt/kH2cTX7
via IFTTT

Un desarrollador ofrece una reimplementación de GNU Coreutils en Rust 

gnu-coreutils-rust

El uso de Rust para este proyecto ayudará a acelerar este proceso, ya que se elimina por completo una gran cantidad de posibles errores

Sylvestre Ledru comenzó a trabajar una reimplementación de GNU Coreutils en Rust durante la pandemia de COVID-19 y la presentó la semana pasada durante la edición 2023 del FOSDEM. El esfuerzo llamado uutils ahora está empaquetado por muchas distribuciones de Linux y también lo usa una famosa red social a través del proyecto Yocto.

Las comparaciones de los lenguajes Rust y C++ tienen un denominador común: resaltar la superioridad de Rust sobre C++ en términos de seguridad de la memoria. El editor RisingWave explica por qué reescribió su Cloud DBMS nativo desde cero en Rust después de abandonar el proyecto C++.

“Rust garantiza la seguridad de la memoria y los subprocesos en tiempo de compilación mediante la introducción de reglas de propiedad. Va más allá de RAII, un mecanismo de administración de memoria comúnmente utilizado en C++. Tiene dos ventajas. La primera es obvia: una vez que el compilador de Rust valide nuestro programa, no tendremos ningún error de segmento ni condiciones de carrera en el tiempo de ejecución, lo que requeriría decenas de horas de depuración, especialmente en un código base altamente concurrente y en su mayoría asíncrono. El segundo es más sutil: el compilador de Rust simplemente restringe los tipos de fallas, lo que reduce los fragmentos de código estrechamente anidados que pueden causar ese comportamiento defectuoso. La replicación de errores se mejora significativamente con el utilizando la ejecución determinista. »

GNU Coreutils es un paquete del proyecto GNU que contiene muchas herramientas básicas necesarias para los sistemas operativos tipo Unix: cp (copiar un archivo o directorio), mkdir (crear un directorio), etc. Un desarrollador ofrece una reimplementación en el lenguaje Rust.

Uno de los objetivos: hacer que el paquete sea utilizable en otros sistemas operativos: Windows, macOS, Android, FreeBSD, etc. La maniobra viene a reavivar el debate sobre la cuestión de si seguir iniciando nuevos proyectos en C y C++ o simplemente optar por el lenguaje Rust.

“El lenguaje Rust ofrece garantías de seguridad por defecto cuando se trata de gestión de memoria. Este no es el caso de C y C++, cuyo uso en Mozilla es la causa de los problemas de seguridad de la memoria”, enfatiza Sylvestre Ledru.

Sin embargo, Bjarne Stroustrup no está de acuerdo con el hecho de que las comparaciones entre Rust y C++ limiten la noción de asegurar el software a la de asegurar la memoria:

«No hay una sola definición de la noción de ‘seguridad’ y podemos lograr una variedad de tipos de seguridad a través de una combinación de estilos de programación, bibliotecas de soporte y mediante el aprovechamiento del análisis estático. Bjarne Stroustrup sugiere así que lo que se puede obtener de C++ en términos de seguridad del software depende, entre otras cosas, del desarrollador y, en particular, del conocimiento de las herramientas que ofrece el lenguaje, su dominio del compilador, etc.

Los ingenieros de Google, conscientes de lo que C++ les ofrece como posibilidades, se han embarcado en la creación de un verificador de préstamos en este lenguaje. Es una característica del compilador Rust que garantiza la seguridad de la memoria a través de la gestión de asignación de punteros en memoria.

El equipo de Google, cuya publicación apareció en el tercer trimestre del año anterior, llegó a la conclusión de que el sistema tipo C++ no se presta a tal ejercicio. Y para que la seguridad de la memoria en C ++ se pueda lograr con controles durante la ejecución del programa. En otras palabras, es con código C++ lento que es posible lograr un nivel de seguridad equivalente al de Rust.

El lanzamiento del editor RisingWave llega en un contexto en el que Rust se destaca de otros lenguajes presentados durante años como alternativas a C y C++. De hecho, el kernel de Linux se está abriendo cada vez más al lenguaje de programación de sistemas de Mozilla.

from Linux Adictos https://ift.tt/7go5Tuj
via IFTTT

Mozilla eliminó la extensión «Bypass Paywalls» 

Firefox-Logo

Firefox es un popular navegador web

Se dio a conocer la noticia de que Mozilla acaba de eliminar de la tienda de extensiones de su navegador a la extensión«Bypass Paywalls Clean», una extensión popular para Firefox y Chrome que, como su nombre indica, permite a los usuarios eludir los muros de pago digital (paywalls) en sitios web populares para leer el contenido de forma gratuita.

Mozilla no ha hecho ninguna declaración sobre los motivos de su decisión, pero hay algunos en la comunidad que sugieren que la extensión se eliminó porque había acumulado demasiados usuarios. A la espera de conocer las causas, la empresa es fuertemente criticada, pues no está en su primer intento.

Sobre Bypass Paywalls

Bypass Paywalls Clean (o Bypass Paywalls) es una extensión o secuencia de comandos del navegador diseñada para eludir las restricciones del muro de pago digital de algunos sitios de noticias que limitan el acceso a su contenido. Bypass Paywalls permite a los usuarios acceder a este contenido sin tener que pagar una suscripción.

Es compatible con los navegadores Google Chrome y Mozilla Firefox. Pero la semana pasada, el desarrollador de la extensión informó en el repositorio GitLab del proyecto que Mozilla eliminó Bypass Paywalls de su tienda de extensiones para Firefox, lo que impidió que los usuarios lo descargaran directamente al navegador.

La empresa luego guardó silencio sobre su decisión.

“Ya he explicado la funcionalidad de la extensión en la primera línea de este artículo. Es posible que uno de los sitios haya enviado una notificación de DMCA a la extensión Bypass Paywalls, lo que podría haber llevado a Mozilla a eliminar la extensión de su tienda. No estoy del todo seguro, porque si es así, ¿Mozilla no habría notificado al desarrollador? O tal vez violó una cláusula en los términos y condiciones del depósito. No podemos estar seguros, todo lo que sabemos es que ya no puede descargar el complemento de la tienda de extensiones”, escribió el desarrollador.

A lo largo de los años, Bypass Paywalls se ha vuelto muy popular entre la comunidad, con miles de personas usándolo para obtener acceso gratuito y abierto a contenido pago. Sin embargo, también tiene algunas críticas, incluso por violar los términos de uso de los sitios web y los derechos de autor.

Además, eludir los muros de pago inevitablemente compromete los modelos comerciales de las organizaciones de noticias que los implementan en sus sitios web y algunos argumentan que esto podría limitar su capacidad para producir periodismo de calidad. En particular, les resultaría difícil financiarse a sí mismos.

En diciembre de 2018, Bypass Paywalls ya había sido prohibido por Mozilla. Uno de los revisores de la tienda de extensiones de Firefox lo eliminó por violar los términos de servicio de la plataforma. Pero en ese momento, el desarrollador señaló que los términos de servicio de la plataforma no mencionaban la palabra «paywall» ni una sola vez. El desarrollador luego lanzó un movimiento para apelar contra la decisión de Mozilla. Parece que la medida tuvo el mérito de obligar a Mozilla a restablecer la extensión en su tienda de aplicaciones antes de retirarla la semana pasada.

La empresa debe cumplir con las leyes estadounidenses, como la Ley de derechos de autor del milenio digital (DMCA) y la Ley de abuso y fraude informático. La nueva eliminación de la extensión podría explicarse por el hecho de que Mozilla recibió una notificación de DMCA y la cumplió. Esto se debe a que el Procedimiento de eliminación y notificación de la DMCA es una herramienta para que los titulares de los derechos de autor eliminen de los sitios web el material subido por los usuarios que infringen sus derechos de autor. Las empresas realizan regularmente este tipo de solicitud de retiro, por ejemplo, en el contexto de la filtración de software antes de la fecha de lanzamiento oficial.

El desarrollador de Bypass Paywalls ha informado que han actualizado la extensión a la versión 3.5.0. Es posible que no vea la actualización incluso si ya tiene la extensión, ya que se eliminó de la lista. Sin embargo, se puede optar por instalar la versión sin firmar cargando el XPI desde la página de versiones de GitLab del proyecto.

Si se opta por esta versión, debe exportar sus filtros personalizados antes de cambiar de versión. A pocas personas les gusta usar extensiones sin firmar por razones de seguridad. Pero el autor de la extensión también mantiene una lista de filtros que puede usar con bloqueadores de anuncios.

from Linux Adictos https://ift.tt/E5CWpeu
via IFTTT