Esta semana en seguridad: conversación cruzada, reanudación de TLS y travesuras valientes

Intel ha anunciado CrossTalk, un nuevo ataque de canal lateral que puede filtrar datos de los búferes de la CPU. Es la misma historia que escuchamos antes. Otros procesos pueden inferir partes del estado de la CPU interna. Este ataque es un poco diferente porque puede filtrar datos a través de los núcleos de la CPU. Solo unas pocas instrucciones de CPU son vulnerables, como RDRAND, RDSEEED y EGETKEY. Estas instrucciones particulares son importantes porque se utilizan en Secure Enclave y OpenSSL de Intel, por nombrar algunos ejemplos importantes.

Lo que sucede aquí es que un "búfer de registro especial" se comparte entre todos los núcleos de la CPU y se usa solo para algunas instrucciones. Este búfer se puede inferir de las vulnerabilidades de datos existentes, como MFBDS (Zombieload) y TAA. La mitigación es bastante extrema. Todo el procesador está en pausa hasta que finaliza la instrucción vulnerable y se reemplaza el búfer. El éxito espectacular puede ser intenso en algunas cargas de trabajo.

Y en otras noticias del canal lateral, el kernel de Linux acaba de recibir algunas correcciones. La primera es una solución para algunos casos en los que se han habilitado mitigaciones de aplicación especulativa, pero en realidad no están activas. El segundo error fue un caso de optimización del rendimiento defectuoso. Un proceso de ataque puede simplemente establecer un par de banderas y obtener un pase, lo que permite un ataque SPECTRE V4. Y finalmente, se descubrió que es posible reactivar la ejecución especulativa, y la máquina aún informará que la especulación está deshabilitada. Estos errores se han anunciado públicamente y deben corregirse.

Brave Browser

Esta semana se desarrolló un poco de confusión en torno al navegador Brave. Un usuario de Twitter notó algo extraño cuando visitó algunos sitios web separados en el navegador Brave: ir a un sitio web separado, Binance.us, terminó enviándolo a un enlace de afiliado. Como puede imaginar, este comportamiento del navegador, que se vende a sí mismo como centrado en la privacidad, no fue exactamente bien recibido.

Entonces, cuando usas el @ brava navegador y escriba "binance[.]nosotros "terminarás siendo redirigido a" binance[.]nosotros / eo? ref = 35089877 "- Veo lo que hicieron amigos 😂

- Cryptonator1337 (@ cryptonator1337) 6 de junio de 2020

¿Que está pasando aqui? El primer detalle notable es que el enlace adjunto era un autocompletar, no un redireccionamiento. La respuesta oficial explica lo que está sucediendo aquí. Brave tiene la opción, de forma predeterminada, de mostrar "Sitios sugeridos de Brave" como parte de la lista de autocompletar. Estos son enlaces patrocinados y tienen un código de referencia global en el enlace. Según la respuesta oficial, no fue intencional que el enlace sugerido patrocinado apareciera primero en la lista de autocompletar, donde se seleccionó automáticamente presionando adentro.

Compromiso GNUTLS 1.3

Recientemente, se informó un error en GnuTLS, donde un servidor malicioso podría abusar del reinicio de una sesión para lanzar un ataque MitM contra una conexión TLS. Una sesión reiniciada está integrada en el protocolo TLS 1.3 y es una forma de evitar un protocolo de enlace TLS completo cuando un cliente se vuelve a conectar al servidor. En cambio, en una conexión inicial, el servidor envía una instantánea de sesión cifrada: un ticket de sesión. Debido a que está encriptado por el servidor, el cliente no puede extraer ningún dato del ticket. Tras recibir comentarios, se envía el ticket de sesión en lugar del protocolo de enlace normal, y los datos de sesión incluidos se utilizan para reanudar la conexión TLS cifrada.

Es un buen plan, siempre que el cifrado del ticket de sesión sea correcto. Por otro lado, si un servidor no puede establecer una buena clave de cifrado, este esquema solo solicita problemas. GnuTLS, hasta hace unos días, parecía utilizar una clave de cifrado totalmente cero. Es un error lamentable y peligroso. Cuando un cliente envía el ticket de sesión a un servidor enemigo, se descifra fácilmente y el cliente cree que está hablando con el servidor original.

Malware de contrato inteligente

El mundo de las criptomonedas es un objetivo en desarrollo para el malware. Por ejemplo, un contrato malicioso descubierto recientemente en la cadena de bloques Ethereum. Este contrato en particular conmemora el ataque a The Dao en 2016.

El gran punto de venta de Ethereum es el contrato inteligente. Es una forma de insertar código en una cadena de bloques y operar automáticamente ese código bajo ciertas condiciones. Si hemos aprendido algo de la historia como el concurso de C oculto, es que el código no siempre es lo que parece.

En este caso, el problema es la vulnerabilidad de reingreso. Si se cancela otro contrato inteligente, este segundo contrato inteligente tiene la oportunidad de operar su propio código como parte de la acción de retiro. Cuando eso sucede, es posible llamar al contrato vulnerable y continuar extrayendo dinero. El ataque a un contrato vulnerable como este es el siguiente: Deposite al menos 1 ETH, lo que le da derecho a realizar un retiro. Espere hasta que otros inviertan en el mismo contrato y luego use la vulnerabilidad para retirar los fondos de todos.

Pero espere, esto no es solo un contrato vulnerable, es malicioso. La parte del contrato que permite retirar dinero tiene un inconveniente: solo el creador del contrato puede retirar dinero. Todo es miel malvada. El contrato parece contener una vulnerabilidad explotable, pero realmente roba el precio de entrada de 1 Ether a cualquiera que quiera drenar los fondos.

Rompiendo CMD.EXE

Esto es divertido, pero dado que Microsoft no lo considera una amenaza real para la seguridad, aún funciona en Windows 10.

cmd.exe /c "ping 127.0.0.1/../../../../../../../../../../windows/system32/calc.exe"

¿Cuál es la historia aquí? Cmd.exe primero intenta interpretar la cadena como una ruta relativa. "Ping 127.0.0.1/" y el primer "../" básicamente se cancelan entre sí. No es una vulnerabilidad en sí misma, pero solo puedo imaginar que se podría abusar de este comportamiento inesperado en particular. Imagine una prueba de ping que toma a un usuario y usa el comando cmd / c para iniciar la prueba. Si la entrada del usuario no se cura, esta rareza se puede utilizar incorrectamente para ejecutar un comando arbitrario.

Editar: De alguna manera no pude dar crédito a [Julian Horoszkiewicz], quien descubrió este interesante número.

  • fabricante de acero dice:

    CONFIG_RANDOM_TRUST_CPU

    Suponga que el fabricante de la CPU (por ejemplo, Intel o AMD para RDSEED o
    RDRAND, IBM para las arquitecturas S390 y Power PC) es confiable
    para iniciar un CRNG de Linux. Porque esto no es
    algo que se puede controlar de forma independiente significa fe
    ese fabricante de CPU (tal vez con la insistencia o el mandato
    de agencias de información o agencias policiales de un estado nacional)
    no instaló una puerta trasera oculta para comprometer las CPU
    instalaciones de número aleatorio. Esto también se puede configurar
    al inicio con "random.trust_cpu = on / off".

  • Brad Voris dice:

    Hola, Jonathan, tomé prestado su fragmento para Breaking Cmd.exe y escribí PoC a través de PowerShell y ExecutionPolicy bypass para iniciar PowerShell Script.
    Enlace:
    https://www.linkedin.com/pulse/powershell-script-execution-via-cmdexe-relative-path-poc-brad-voris

Ricardo Prieto
Ricardo Prieto

Deja una respuesta

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