Cloudbleed: sus certificados ocultos en los motores de búsqueda

Si todavía siente curiosidad por el hecho de que el SHA-1 se ha averiado y si alguien está gastando cientos de miles de dólares para crear un certificado falso y oler sus credenciales de OkCupid, no se preocupe. ¿Por qué gastar tanto dinero cuando los motores de búsqueda almacenan en caché sus certificados? ... ¿Esperar lo?

Una combinación importante de errores, denominada Cloudbleed por [Tavis Ormandy], conduce a una memoria no inicializada presente en la respuesta generada por los proxies inversos y filtrada al solicitante. Dado que estos proxies inversos se comparten entre los clientes de Cloudflare, esto hace que el problema sea aún peor, ya que se han filtrado datos aleatorios de clientes aleatorios. Es similar a Heartbleed para solicitudes HTTP. La gravedad del asunto se puede ver plenamente en [Tavis] palabras:

"Los ejemplos que encontramos son tan malos que cancelé algunos planes de fin de semana para ir a la oficina el domingo para ayudar a construir algunas herramientas de limpieza. Informé a cloudflare en lo que estoy trabajando. Encuentro mensajes privados de los principales sitios de citas, mensajes completos desde un conocido servicio de chat, datos de contraseñas de Internet, marcos de sitios de videos para adultos, reservas de hoteles. Hablamos de solicitudes https completas, direcciones IP de clientes, respuestas completas, cookies, contraseñas, claves, datos, todo ".

Según Cloudflare, el flujo de salida puede incluir títulos HTTP, datos POST (que posiblemente contengan contraseñas), JSON para llamadas API, parámetros URI, cookies y otra información confidencial utilizada para la autenticación (como claves API y tokens OAuth). Una solicitud HTTP a un sitio web vulnerable de Cloudflare podría revelar información de otros sitios web de Cloudflare no relacionados.

Además de este problema, los motores de búsqueda y cualquier otro robot que deambule de forma gratuita en Internet podrían descargar accidentalmente estos datos. Cloudflare ha publicado un informe detallado de incidentes que explica todos los problemas técnicos de lo que sucedió y cómo lo solucionaron. Fue una respuesta a incidentes muy rápida con una mitigación inicial en menos de 47 minutos. El despliegue de la solución también fue bastante rápido. Sin embargo, al leer el informe, queda la sensación de que Cloudflare ha minimizado este número. Según Cloudflare, la fecha más temprana en que este problema podría comenzar es el 22 de septiembre de 2016 y la filtración duró hasta el 18 de febrero de 2017, cinco meses, más o menos.

Solo para tranquilizar a los lectores y no alarmarse, no hay evidencia de que nadie se aproveche de lo sucedido. Antes de un descubrimiento público, Cloudflare trabajó en estrecha colaboración con las empresas de búsqueda para asegurarse de que se eliminara la memoria de los cachés de búsqueda de una lista de 161 dominios que identificaron. También informan que Cloudflare buscó en la web (!), En sitios como Pastebin, signos de fugas y no encontró ninguna.

Por otro lado, puede ser muy imposible saber con certeza si alguien tiene algunos de estos datos ocultos en algún lugar del éter. Es imposible saberlo. Lo que realmente nos gustaría saber es: si [Tavis] ¿Conseguiste la camiseta o no?

  • cuarzo blanco dice:

    Cloudflare, no Cloudfare. Vamos.

    • Pedro Umbelino dice:

      Corregido, gracias.

      • Nathan dice:

        nube todavía etiquetada

        • Pedro Umbelino dice:

          Me perdí ese, gracias.

  • grande dice:

    Solo avisa. Los lectores con tripofobia no reaccionarán bien a esa imagen.

    • Peter Sherd dice:

      Creo que nadie se habría dado cuenta de que esto era incluso una fobia frente a Internet.

      Personalmente, eso me parece un placer.

      • Internet dice:

        ¿Tiene sabor a fresa o cereza?

        • DV82XL dice:

          Se llama Devil's Tooth y parece tener un sabor muy picante. Por cierto, esta foto es una de las mejores de esta especie; salvajemente, rara vez muestra esto de manera hermosa.

          • Greenaum dice:

            Diente del diablo ¿Qué? ¿Algún hongo o algo así? Es horrible, pero no me chilló como esa maldita rana que da a luz ... bueno, ya sabes.

          • Gregkennedy dice:

            Sí, hongo.
            https://eo.wikipedia.org/wiki/Hydnellum_peckii

    • Dave Davidson dice:

      Me pareció la parte superior de una galleta lisiada con pequeñas lamidas rojas.

    • FlacoV dice:

      Sí, realmente no me gusta mirar una imagen así, que me pone la piel de gallina.

    • Kyle dice:

      Sí, eso me suena bastante mal, parece que BT tampoco es para mí. Nunca antes había oído hablar de la tripofobia, pero hace mucho que no me gusta ese patrón. Es extraño que esto sea en realidad algo más que mi propia extrañeza.

      • DV82XL dice:

        Todos encontrarán que el hongo es solo del tamaño de su pulgar. Es una imagen macro de primer plano en la imagen.

        • Kyle dice:

          Diablos, ni siquiera sabía que era un hongo. No se trata de lo que es el objeto. Es el patrón visual. Algunos patrones solo hacen que me sienta mal del estómago casi de inmediato.

  • gramo dice:

    Muy específicamente * no * sincronizado con CloudBleed de Tavis Ormandy. Comprensión lectora. Trabajar en ello.

    • Pedro Umbelino dice:

      Bueno, es como pedirle a alguien que trate de no pensar en elefantes rosas ... Se le ocurrió el nombre y dijo que no lo usaría, pero que ya lo había inventado ... es una especie de enigma. Pero gracias por el consejo [g].

  • Peter Sherd dice:

    Este es un gran ejemplo de por qué debemos alejarnos de C / C ++.

    Cosas así nos seguirán mordiendo el culo.

    Necesitamos óxido ergonómico.

    • Paul Raso (@unrocket) dice:

      La seguridad requiere que sepa dónde están todos sus búferes y en qué estado permanecen cuando haya terminado. Cualquier abstracción lingüística que no gobierne explícitamente esto (como C desnuda) tendrá problemas. El código en el que vivía este error no estaba escrito en C / C ++, como la mayoría de los lenguajes más avanzados operaba además de C / C ++. Entonces, a menos que su nuevo lenguaje mágico se traduzca directamente de MAGIA a código de máquina, la probabilidad de que realmente funcione además de C / C ++ es casi del 100%.

      • jdright dice:

        Rust no se encuentra por encima de C / C ++, puede ser de un nivel tan bajo como C y también inseguro. Pero brinda herramientas para evitar fallas frecuentes de C / C ++ durante la abstracción "mágica", si entendí bien sus requisitos.

      • Alex Rossie dice:

        Este no es el caso en absoluto con Rust.

        Te recomiendo que lo eches un vistazo, en un mundo con una docena de "mejores idiomas siguientes" al día, Rust lo está haciendo bastante bien.

        En este caso, cuando analiza una cadena en c / c ++, puede repetir una colección en rust.

        (En este caso, ya no tendrá que preocuparse por sortear el punto final, ya que estará en la colección).

        Un buen ejemplo es el desbordamiento del búfer, que se reduce esencialmente a

        buffer[big_index]

        En óxido (podrías hacer eso) lo harías

        buffer.get (índice_grande)

        Lo que podría devolver algún tipo o ningún tipo.

        fn main () {
        deje mut coll = vec! ();
        empujar juntos (1);
        match coll.get (0) {
        Algunos (chr) => println! ("Eso es {}.", Chr),
        Ninguno => println! ("Terminamos jodidos")
        }
        }

        Skip the Nobody y Rust se quejará de que tienes que cubrir la devolución de Nobody. (Por lo general, la coincidencia de patrones debe ser exhaustiva y Rust le advertirá si no lo está).

        ¿Observa el silencio delante de col? De lo contrario, coll sería inmutable y coll.push (1) no se compilaría.

        Esto es importante porque en cualquier ámbito puede haber solo 0 o 1 referencias cambiables a una variable (y hay condiciones de carrera de memoria).

        En teoría, estos controles de tiempo de compilación deberían tener poco efecto en el binario. Entonces, sí, el binario de C / C ++ puede ser más pequeño o más rápido, pero solo para tener errores como este artículo.

        Si realmente necesita hacer algo inseguro, puede hacerlo en un grado inseguro {...}.

    • METRO dice:

      En cuanto a todos ustedes realmente leer la publicación del blog sobre cómo funcionó eso?

      Para nada de los programas de transporte se escribieron en C, y este es un argumento perfecto en contra usando lenguas seguras como óxido.

      Fueron escritos en otro lenguaje más avanzado, que fue traducido a C como intermediario, que luego fue compilado. Esto significa que el código C se generó automáticamente y nunca fue visto por ojos humanos. El problema de anulación del puntero, que podría corregirse con> = en lugar de ==, no se vio debido a esto. Todo esto sucedió debido al desconocimiento del lenguaje avanzado utilizado, y cómo se traduciría a C.

      Se podría argumentar que tenían No Si optaron por buscar el lenguaje más seguro y avanzado que hicieron, tal problema se detectaría y solucionaría como algo típico a buscar en C. Y ese es el peligro real con un llamado a un lenguaje "más seguro". Si NO es ABSOLUTAMENTE sólido como se traduce, puede crear fácilmente errores ocultos sin ver cómo los conceptos avanzados que se supone que deben evitarle problemas se implementan de manera mecánica y rígida como menos altos.

  • a dice:

    CloudBleed? por favor deja de tonterías

  • Sr. Nada dice:

    ¡ESTÁ LLUVIANDO SANGRE! DESDE UN CIELO LACERADO ...

    oh, espera, pensé que era un truco de SLAYER.

  • AMA dice:

    @jcs (joshua stein) en twitter sugirió que el flujo de la nube de la camiseta le diera "un montón de datos aleatorios de otras camisetas impresas en la parte posterior".

Manuel Gómez
Manuel Gómez

Deja una respuesta

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