Esta semana en seguridad: Tegra Bootjacking, Leaking SSH y StrandHogg

CVE-2019-5700 es una vulnerabilidad en el lanzador Nvidia Tegra, descubierto por [Ryan Grachek], y primero rompiendo aquí en La-Tecnologia. Para comprender la vulnerabilidad, primero se debe comprender un poco sobre el proceso de inicio de Tegra. Cuando se enciende el dispositivo, el firmware de irom carga la siguiente etapa del proceso de arranque desde la memoria flash del dispositivo y confirma la firma en ese binario. Aparte de eso, cubrimos una vulnerabilidad similar en ese código irom llamado memblovo.

En los dispositivos Tegra T4, irom carga un único bootloader.bin, que a su vez dispara la imagen del sistema. La pila de arranque K1 utiliza una etapa de cargador de arranque adicional, nvtboot, que carga el kernel seguro del sistema operativo antes de ceder el control a bootloader.bin. Los dispositivos posteriores agregan etapas adicionales, pero eso no importa para entender esto. La vulnerabilidad usa una imagen de lanzamiento de Android y la magia ocurre en el encabezado. Parte de esta imagen de lanzamiento es un lanzador de segunda etapa opcional, que rara vez se usa en la práctica. El título de esta imagen de inicio especifica el tamaño en bytes de cada elemento y también en qué ubicación de memoria cargar ese elemento. Qué [Ryan] Se da cuenta de que, aunque generalmente se ignora, la información sobre el lanzador de la segunda etapa es respetada por el bootloader.bin oficial de Nvidia, pero ni el tamaño ni la ubicación de la memoria se verifican con prudencia. Las imágenes se copian a su posición final antes de que se lleve a cabo la verificación criptográfica. Como resultado, una imagen de Android puede reemplazar el código actual del cargador de arranque.

La forma más sencilla de utilizar esta vulnerabilidad es reemplazar la rutina de control con instrucciones NoOp. Los dispositivos T4 más antiguos copian la imagen de Android antes de que se cargue el sistema operativo de confianza, por lo que es posible cargar código sin nombre como la imagen del sistema operativo seguro. Si desea profundizar un poco más en los detalles técnicos, [Ryan] notas publicadas sobre el CVE.

Entonces, ¿qué significa eso para el aficionado? Permite cosas como lanzar uboot en el equivalente de ring 0. Le permite lanzar versiones más recientes de Android en dispositivos Tegra una vez que hayan terminado. Incluso puede ser posible cargar una aplicación de Nintendo Switch hecha en casa en el televisor Nvidia Shield, ya que estos son dispositivos casi idénticos. Hacks como este son una gran ayuda para la comunidad casera y moderna.

Hemos visto esto antes y sospecho que este estilo de vulnerabilidad surgirá en el futuro, especialmente a medida que los dispositivos ARM continúen creciendo en popularidad. Sugiero que esta clase de vulnerabilidad se llame Bootjacking, ya que es un alto nivel del proceso de arranque, así como instrucciones instructivas en el cargador de arranque existente.

Certificados SSH con fugas

Los certificados SSH son una mejora importante en comparación con las contraseñas simples. Tanto, servicios como Github y Gitlab han comenzado a ordenar claves SSH. Uno de los caprichos de estos servicios: cualquiera puede descargar claves SSH públicas de Github. Cuando un cliente se conecta a un servidor SSH, enumera las claves a las que tiene acceso, enviando las claves públicas correspondientes. En respuesta, si el servidor confía en alguna de esas claves, devuelve una notificación para que el cliente pueda autenticarse con la clave secreta.

[Artem Golubin] notó el posible flujo de datos y lo escribió en detalle. Puede elegir un desarrollador en Github, tomar su clave SSH pública y comenzar a verificar los servidores SSH públicos para encontrar dónde se reconoce esa clave pública. Esto parece estar incrustado en el protocolo SSH en sí, en lugar de solo un capricho de implementación. Este no es un defecto que pueda convertirse en un gusano o interrumpir directamente un servidor, pero es una herramienta interesante para recopilar información.

HackerOne expuesto

HackerOne es un premio por error como servicio que representa a un conjunto de empresas étnicas. Recientemente, anunciaron que se encontró una vulnerabilidad en la propia infraestructura de HackerOne. Explorador de seguridad usando la plataforma, [Haxta4ok00], recibió accidentalmente una clave de sesión de un empleado en el camino hacia y desde un informe de error no relacionado, y descubrió que esa clave de sesión le permitía acceder a la infraestructura de HackerOne con los mismos permisos que el empleado.

El secuestro de claves de sesión no es un problema nuevo; es uno de los ataques que llevó al HTTPS en todos los lugares que vemos hoy. Después de que un usuario ha autenticado un sitio web, ¿cómo “permanece” esa autenticación para el usuario? Enviar un nombre de usuario y contraseña con cada carga de página no es una gran idea. La solución es la clave de la sesión. Una vez que un usuario se autentica, el servidor genera una larga cadena aleatoria y la devuelve al navegador. Esta cadena es el signo acordado que autentica a ese usuario para todas las comunicaciones adicionales hasta que se alcanza un límite de tiempo o el signo se cancela por algún otro motivo.

No hace mucho tiempo, la mayoría de los servicios en línea solo usaban conexiones HTTPS para el inicio de sesión inicial del usuario y volvían a los enlaces no cifrados para la mayoría de las transferencias de datos. Esta clave de sesión formaba parte de la carga útil no cifrada y, si se podía capturar, un atacante podría secuestrar la sesión legítima y actuar como usuario. El navegador de la extensión Firesheep mostró claramente la facilidad con la que se tenía que detener este ataque y empujó a muchos servicios a resolver el problema en última instancia a través de conexiones HTTPS de tiempo completo.

HTTPS en todas partes es un gran paso adelante para evitar el secuestro de sesiones, pero como se vio en HackerOne, no maneja todos los casos. El empleado de HackerOne usó una clave de sesión válida como parte de una línea de comando de bucle y la incluyó accidentalmente en una respuesta. [Haxta4ok00] notó la clave y rápidamente confirmó lo que es, y que le permitió acceder a la infraestructura interna de HackerOne.

Se informó de la fuga y la clave se canceló rápidamente. Debido a que se filtró en un informe privado, solo [Haxta4ok00] tuvo acceso. Dicho esto, se ha accedido a varios otros informes privados de vulnerabilidad. Vale la pena señalar que HackerOne manejó esto tan bien como pudo, dando $ 20,000 para el informe. Han actualizado sus pautas de búsqueda y ahora están limitando esas claves de sesión a la dirección IP que las generó.

Vía Ars Technica

StrandHogg

Una de las historias más notables de la semana pasada ha sido todo sobre Android y programas maliciosos disfrazados de legales. StrandHogg se ha explotado de esta manera desde 2017 y se teorizó por primera vez en un artículo de Usenix de 2015. En cierto modo, es un ataque extremadamente simple, pero hace cosas muy inteligentes.

¿Entonces, cómo funciona? Un programa malicioso, una vez instalado, se ejecuta en segundo plano en espera del lanzamiento de un programa de destino. Una vez que se detecta el programa objetivo, el programa malicioso salta a la vanguardia, disfrazado de objetivo. A partir de aquí, un ataque de phishing es trivial. Más interesante, sin embargo, es el ataque de permisos. Su aplicación de buen corazón parece estar solicitando permisos del sistema de archivos, permisos de la cámara, etc. No es evidente de inmediato que el programa malicioso sea el que realmente esté solicitando permisos.

La única vulnerabilidad real aquí parece ser la capacidad de un programa malicioso de cambiar el nombre y "arreglarse" a sí mismo, para parodiar que es parte del programa de destino. Tenga en cuenta que al menos en las licencias, el nombre de la aplicación solicitante está vacío durante un ataque de StrandHogg.

Pago sin contacto

Los pagos sin contacto parecen mágicos la primera vez que los ve. Simplemente deslice una tarjeta correspondiente o un teléfono móvil sobre la terminal de pago, y el pago se realiza a través de NFC. Al leer esta columna, es seguro asumir que rápidamente después de que el primer momento de miedo cede, comenzará a preguntarse cómo se hace todo de manera segura. Esto es lo que [Leigh-Anne Galloway] y [Tim Yunusov] quería saber también. Recientemente publicaron su investigación y lograron encontrar varios trucos desagradables. Un sombrero de papel de aluminio puede ser exagerado, pero puede ser el momento de invertir en una billetera con bloqueo NFC.

Manipularon datos durante el tránsito, lo que permitió pagos mucho más grandes sin ingresar un PIN, comprados a través de un proxy NFC e incluso ilustraron un práctico ataque prepago en el que se podía leer una tarjeta, realizar una transacción falsa y luego reproducir esa transacción falsa. De vuelta para una terminal de pago real.

¿Superfish regresa?

Twitter es un lugar fascinante. A veces, las observaciones simples muestran CVEs. Se produjo una interaccin interesante cuando [SwiftOnSecurity] mostraba un nombre DNS extraño, "atlassian-domain-for-localhost-connections-only.com", con la descripción de que permitía una conexión HTTPS segura a un servicio que se ejecutaba en localhost. Nuestro amigo de Google Project Zero, [Tavis Ormandy], señaló que un https-cert válido instalado en localhost significa que Atlassian debe enviar un certificado privado para ese nombre de dominio como parte de su software. Siga el enlace y también puede alojar este extraño dominio con un certificado HTTPS válido.

Esta es una mala idea por varias razones, pero no es la peor que podría suceder. El peor de los casos para este estilo de error probablemente pertenece a Superfish. El programa de publicidad con el nombre correcto se preinstaló en muchas máquinas Lenovo en 2014, con la útil función de mostrarle anuncios más personalizados. Para hacer esto, el software simplemente agregó su propia información de autoridad de certificación al paquete de CA confiable del sistema ... y envió el certificado privado y la clave junto con el software. Sí, lo leíste bien, cualquier certificado HTTPS podría ser una parodia perfecta para un usuario de Lenovo.

Al observar el dominio de Atlassian, otro usuario notó que el software Aspera de IBM tiene un certificado y un dominio de alojamiento local similar. De acuerdo a [Tavis], este software también incluye la certificación y la clave de CA completa. Si una repetición del software de IBM realmente agrega esa CA a un sistema de confianza raíz, entonces es otro súper pez: cualquier certificación HTTPS podría falsificarse con éxito.

  • zoobab dice:

    Te estás perdiendo el Atlassian Zeroday con su increíble dominio de alojamiento local seguro 'https://atlassian-domain-for-localhost-connections-only.com': https://www.theregister.co.uk/2019/12/05 / atlassian_zero_day_bug /

  • Cierto dice:

    Es lo que yo llamaría una falla intencional del proyecto en la infraestructura de CA que todas las autoridades de certificación raíz: 100+ (android), 180+ (firefox), 200+ (OSX) pueden emitir un certificado 100% válido para cualquier dominio. , incluso uno que ya haya sido publicado por otra CA. Que acceder a tu correo electrónico o banco o comprar online implica que confías implícitamente en todas las CA que tu navegador tiene instaladas, y que nadie ha tenido problemas de seguridad actuales o anteriores. No me malinterpretes, el sistema de CA actual es incluso mejor que ninguno. Pero fue diseñado para permitir la interceptación legal o estatal.

    • Solo un chico dice:

      "Mejor que nadie", ¿estamos seguros de eso? La falsa seguridad es peor que nada cuando miles de personas con mentalidad política han crecido en "HTTPS-Everywhere para un gran bien". tenga en cuenta que el gobierno leyó todos los pensamientos privados que publicaron y les dijo que estaban "encriptados" por HTTPS.

      No es una coincidencia que se mienta abiertamente a los certificados autofirmados, el único bastión de HTTPS * verdaderamente seguro, en las aterradoras advertencias del navegador; "¡No podemos verificar que la NSA / CIA tenga la clave privada para usted MITM! ¡No confíe en ella!"

      * siempre que pueda verificar el certificado de huellas dactilares por medios externos que no sean CA

      • Cierto dice:

        Lo que quise decir es que usar CA es mejor que transmitir datos tan simple texto.

    • MH dice:

      ¿Cómo se comprueba un sistema para ver la calidad de los certificados instalados en él?
      ¿Qué herramientas facilitan al usuario final verificar / comprender quiénes son todos?
      ¿Confías en un sistema dado (y ayudas a limitar las autoridades confiables)?

      ¿Un certificado que utiliza programas verifica los certificados y marca aquellos en los que la CA ha cambiado, o donde múltiples emisiones de CA proporcionan certificados para el mismo recurso?
      ¿Qué herramientas de seguridad controlan su sistema en estos asuntos? (¿Escáneres de malware / etc.?)

      NoScript le permite ver los distintos dominios que contribuyen a una página web
      (y compruebe en quién confía).
      Algunos cortafuegos le permiten ver qué programas se comunican con qué máquinas en la red y controlar eso.

      ¿Qué herramientas similares existen para investigar / comprender / verificar los certificados?
      y redes de "confianza" en su sistema / navegador / etc.?

      Gracias

      • Jonathan Bennett dice:

        La mayoría de los navegadores tienen un lugar para inspeccionar sus CA. En Chrome, está en configuración, avanzado, privacidad y seguridad, administra certificados.

        • MH dice:

          Gracias.
          Al menos en Firefox esto es muy primitivo: muestra un montón de jerga técnica y minutos. No facilita que los usuarios finales (o incluso los superusuarios) tomen decisiones de seguridad inteligentes de forma rápida y sencilla.

          No brinda un acceso fácil a la información de antecedentes sobre la CA (quiénes son, dónde están, cuáles son sus políticas, cuál es su reputación).

          No agrupa las CA de forma inteligente (por ejemplo, todas las CA en relación con España,
          o Europa, o ...)
          No permita que inhabilite las CA en grupos.

      • MH dice:

        Este artículo parece dar un poco de información sobre el tema de quién
        si su dispositivo es de confianza (aunque un poco anticuado).

        Cuestionando la cadena de confianza: investigación sobre los certificados raíz en dispositivos móviles
        http://eo.hackdig.com/?7005.htm

        Todavía no se ha encontrado mucho en la variedad de sitios web que brindan información sobre las CA predeterminadas (opiniones tanto profesionales como de usuarios, desde el punto de vista del usuario, en lugar de aquellos que emiten certificados).
        Tampoco hay muchas herramientas para facilitar la desactivación de CA en conjuntos,
        o ver qué sistema de CA usó realmente.

        • Cierto dice:

          Mozilla tiene una política clara de inclusión.
          https://www.mozilla.org/en-US/about/governance/policies/security-group/certs/
          Básicamente, cualquier persona, sin importar cuán pequeño o grande pueda ser incluido, si y solo si cumple TODOS sus requisitos.

Eva Jiménez
Eva Jiménez

Deja una respuesta

Tu dirección de correo electrónico no será publicada.