Tecnología, Internet y juegos
329 meneos
2163 clics
Snowden: Tenemos que hablar sobre la industria de la inseguridad [inglés]

Snowden: Tenemos que hablar sobre la industria de la inseguridad [inglés]

Estamos en medio de la mayor crisis de seguridad informática en la historia de la informática. La gente que crea el software detrás de cada dispositivo de cierta importancia -la gente que crea Apple, Google, Microsoft, una amalgama de fabricantes miserables de chips que quieren vender cosas, no arreglarlas, y los bien intencionados desarrolladores de Linux que quieren arreglar cosas, no venderlas- están todos contentos de escribir código en lenguajes de programación que sabemos que son inseguros.

| etiquetas: pegasus , código , internet
139 190 0 K 297
139 190 0 K 297
  1. El artículo es buenísimo y no sabía qué párrafo coger para la entradilla.

    Es sobre lo complejo que es todo esto y lo llevo pensando mucho tiempo. Por un lado fabricantes que solo ven su negocio y quieren vender, si es algo inseguro da igual. Gente que quiere programar rápido y el resto le da igual. Consumidores que quieren tal utilidad y el resto le da igual.

    Entre ineptitud, consumismo y gente malvada está todo bastante jodido.
  2. #1 joer, lo has puesto muy interesante. :-)

    Voy, voy.
  3. Ojalá que se popularice Rust pronto y C/C++ quede para el legacy o sistemas en los que la seguridad no es importante.
  4. #4 aunque eso sucediera, los "bugs" importantes son intencionados (backdoors)
  5. #1 Es brutal y esclarecedor. Gracias por el envío
  6. #5 El tema es que si dejas un error internacionado de gestión de memoria en Rust con la intención de explotarlo después, el compilador no te va a dejar compilar.

    Asi que complica bastante las cosas si, por ejemplo, alguien quisiera meter alguna mierda de esas en Linux.
  7. #4 Me parece una pena que tras desarrollar Rust desde Mozilla para mejorar Firefox, el ratio de uso de Firefox siga bajando y en cambio Chrome (que el propio artículo menciona que 70% de sus problemas se relacionan con el uso de memoria) y sus forks sigan expandiendose.
  8. Las barreras de EEUU a los productos 5G chinos es porque los ladrones piensan que todos son de su misma condición.
  9. #8 Pinta mal para Mozilla, por suerte parece que el lenguaje saldrá adelante con todo el apoyo que esta recibiendo.

    De hecho, el propio Google está pagando a un desarrollador para que se meta Rust como segundo lenguaje en el kernel.
  10. #9 Lo peor es que seguramente en eso lleven razón, que todos son de su condición :-x
  11. Mi teléfono también tiene 3 micros ocultos? Pues vaya :shit:
  12. #1 #2 #6 En su diatriba diaria Cory Doctorow se ha hecho eco del escrito de Snowden. Aunque me lo estoy leyendo en diagonal casi siempre aporta algún punto interesante.
    pluralistic.net/2021/07/27/gas-on-the-fire/#a-safe-place-for-dangerous

    Snowden describes NSO as part of an "Insecurity Industry" that owes its existence to critical vulnerabilities in digital devices in widespread use. They spend huge sums discovering these vulns – and then, rather than reporting them so they can be fixed, they weaponize them.

    As Snowden points out, this is not merely a private sector pathology. Governments – notably the US government, through the NSA's Tailor Access Operations Group – engage in the same conduct.
  13. #12 Igual que Arabia Saudí pero todos compramos su petróleo y les reimos las gracias.
  14. Bonito resumen de la industria vs codigo libre. Y sin embargo seguimos pagando por basura industrial
  15. #16 Y nos pone en una posición de servidumbre para que hagamos lo que no debemos. Como aquel capítulo de los SImpon's donde el señor Burns regala fajos de billetes a Homer para que haga cosas indignas.
  16. #1 Lo que viene siendo un "sacurdirse las pulgas" pero a nivel planetario. No pinta bien, la verdad.
  17. #17 Diría que no tiene nada que ver con el código libre. Más que nada se queja de la inseguridad de los lenguajes de programación.
  18. Evolución tecnológica S XXI... de la obsolescencia programada a la inseguridad programada... {0x1f621}
  19. #4 Disculpa por adelantado, pero veo mucho evangelista de Rust y es que no soporto los señoros que sueltan qué tan buen o qué tan mal es un lenguaje sin dar siquiera un mínimo de detalle. Tanto es así que le estoy cogiendo asco -al lenguaje ojo, y eso que me parece fantástico-. C++ evoluciona bastante rápido, y los memory leaks son historia desde C++11 con los smart pointers. 10 años, que se dice poco.

    Otra cosa es que los programadores no entiendan el modelo de memoria de C++, lo cual es culpa del lenguaje (poca broma con esto) porque en fin, buena suerte cuando tengas que:
    - Distinguir una referencia de todo lo demás
    - Entender qué elementos se pueden pasar a un contenedor de la STL
    - Entender qué es el ownership de un puntero
    - Sin mencionar concurrencia y paralelismo, que entonces me da la risa

    Y el problema también es que -por lo general- quien empezó a programar en C++98 no se va a empapar las plantillas variádicas de C++11 o las maravillosas lambdas, no te digo ya el folding de C++17 o cualquier novedad de C++20. Una pena, porque las novedades del lenguaje son en términos generales una barbaridad.

    En general creo que C++ es bastante más polivalente que Rust, pero bastante menos seguro por el gran esfuerzo que supone entender una mínima parte de su modelo de memoria. Los entes del comité ISO de C++ simplemente asumen que el programador sabe lo que hace, y así ha pasado, que la gente intenta sobrevivir a su jefe día sí día también, y parche sobre parche se hace un remierdo.

    Es que me hace gracia que han pasado 10 años desde C++11, lo que decía de los smart pointers, y todavía C++ sigue siendo considerado un pozo de problemas de este tipo. En fin.

    Aun así, siendo el monstruo que es, a poco que el comité en su torre de marfil tenga a bien quitar la retrocompatibilidad (equivale al "ojalá" de tu comentario :P), es posible que no tenga nada que envidiarle a la seguridad de Rust.

    PD: Perdona si te molesté en el primer párrafo, pero quería escribir sobre mi libro :-)
  20. #22 Tu mismo lanzas las preguntas y te contestas un párrafo después. C++ es demasiado polivalente, para que fuera seguro tendría que impedir que se pudiera programar de manera insegura.
  21. #22 No te preocupes, me gusta hablar de los lenguajes de programación y agradezco cualquier oportunidad de replantearme las ideas que pueda tener.

    No tengo mucha experiencia práctica con Rust, solo un par de cursos y el famoso The Book que distribuyen de forma libre. Sin embargo, en los últimos 13 o 14 años he trabajado con unos 5 o 6 lenguajes y puedo entender perfectamente el tipo de errores que pretende evitar con cada decisión de diseño (ownership y borrowing checker, lifetimes, panicks, runtime checks cuando no queda más remedio, la gestión de los string en UTF-8, pattern matching exhaustivo, eliminación de los NullPointerException mediante los Options...).

    Yo creo que la diferencia de Rust con C/C++ es que el primero desde el principio de su vida (cuando todavía se podía hacer breaking changes) la corrección y la seguridad han sido una consideración de primer nivel y no un parche posterior. Lo cual es normal, porque cada lenguaje es hijo de su tiempo. El frontend del compilador de Rust a mi me parece una maravilla, por la profundidad de las comprobaciones que puede hacer y lo explicativos que son los mensajes (esta claro que, sabiendo la curva de aprendizaje que añade de primeras esa complejidad, han intentado sobrecompesar para entrenar al programador en su modelo de como deben funcionar las cosas).

    Pero es que luego hay cosas más sutiles como Cargo. Decía el creador de Node que, por qué usaban diferentes linkers, les suponía menos trabajo reescribir un parser de HTTP que reutilizar uno que estuviera bien probado. Con Deno, directamente usaron el crate público para parser HTTP sin más problemas. Yo veo potencial para bastantes problemas si tienes que reinventar muchas cosas de prisa y corriendo, no me extraña que luego se diga que los tiempos de desarrollo son muy largos con C/C++.

    Pero vamos que también le puedes preguntar a Snowden por qué ha escrito lo que ha escrito y por qué ha enlazado a Rust como posible mejora. O leer algunos papers que se publican sobre la corrección de los programas en Rust... Seguro que lo explican mil veces mejor que yo. :-)

    Te recomendaría, si me lo permites, que le echaras un vistazo al libro o algún tutorial (los hay enfocados a desarrolladores de C++) y pienses en el efecto que puede tener cada pequeña mejora o restricción, no sólo en la reducción de la polivalencia del lenguaje.
  22. #24 Da gusto leer comentarios como este. Muchas gracias :-)

    Como habrás podido adivinar, me gano la vida picando para C++ y he saltado xD pero es porque <evangelista>el lenguaje va evolucionando hacia algo que me temo no será nunca igual a lo que ofrece Rust por lo que tú comentas, pero sí que hay margen de mejora hacia lo que Rust propone y a ello van con cada nuevo estándar.<evangelista/> El problema es que los fallos del pasado siguen ahí disponibles para cualquiera, de ahí que lo de eliminar retrocompatibilidad sea algo prioritario (en mi opinión).

    Leeré el libro que me sugieres. Aprender Rust -y quizá Kotlin- es algo que tengo pendiente desde hace tiempo. De Rust hasta ahora solo he leído poco código. No lo entiendo pero se lee fabuloso.
  23. #14 Muy bueno también. Y creo que más claro.

    La cosa va a peor, está claro.
  24. #25 Gracias a ti también, ya que me has animado a aprender un poco de C++ moderno también, aunque sea de forma comparada mientras voy aprendiendo Rust ("Así es como se resuelve en C++ vs Rust y estos son los trade-offs". La verdad es que hay muchos proyectos en C++ que me gustaría entender mejor, como PyTorch.

    Kotlin parece una mejora considerable con respecto a Java, también lo tengo en el punto de mira, quizá algún día... Dentro de la JVM, otra sorpresa para mi ha sido al tener un poco de exposición a Scala y ver que no está nada mal (me pasaba un poco como a ti, que estaba harto de lo evangelistas de ese lenguaje xD).
comentarios cerrados

menéame