Gracias por el A2A.
Aquí hay muchas explicaciones técnicas excelentes de HeartBleed, no veo ninguna razón para repetir lo que se dice en ellas.
Me centraré en otra cosa: cómo llegó a ser, y qué podemos aprender de eso …
HeartBleed fue causado por un error en OpenSSL. Como lo señala su nombre, OpenSSL fue un proyecto de código abierto basado en SSLeay, originalmente un proyecto de Eric Young y Tim Hudson que comenzó en 1995. Alrededor de ese tiempo, si deseaba proporcionar SSL como parte de su servidor web, tenía que comprar un software bastante caro (estaba usando un paquete por el cual pagué más de $ 1000 por instancia en ese momento).
La gente sentía que, dado que el estándar estaba abierto, no era razonable que el software que lo implementó fuera costoso, por lo que se propuso escribir una versión de código abierto. En diciembre de 1998, tanto Tim como Eric fueron a trabajar para RSA Security, lo que creó un conflicto de intereses, por lo que los voluntarios que mantenían la base del código bifurcaron una rama, la llamaron OpenSSL y continuaron. Actualmente hay cuatro miembros principales del equipo y catorce colaboradores activos.
La belleza del código abierto es que todos pueden ver todo, y es posible que cualquiera pueda encontrar, arreglar y empujar. El meme es que “muchos ojos hacen un mejor código”, y eso es muy cierto en la mayoría de los casos.
El problema es que no es el TRABAJO de nadie asegurarse de que el código sea correcto, y no hay un incentivo real para probar casos extremos: todos los que contribuyen lo hacen principalmente para asegurarse de que se satisfagan sus propias necesidades particulares. Esa puede ser una necesidad personal / social de contribuir a un proyecto, que puede ser una necesidad altruista de “devolver”, que puede ser una necesidad más calculada de tener un código funcional que los ayude a pagar sus facturas. Sea lo que sea, su trabajo no excederá el alcance de su compromiso, más o menos garantizado.
Entonces, HeartBleed. Era una falla, que una vez identificada, era obvia. El problema con eso es que no era obvio HASTA que fuera identificado.
No digo que el código abierto sea una mala idea, por el contrario, creo en él y he contribuido desde el llamado a la acción original de Dick Stallman (vea la respuesta de Stan Hanks a ¿Cuál es su viaje de código abierto? ¿Cómo comenzó? ¿Cuál fue su primer proyecto? ¿Cuál fue el suyo o una contribución?).
Lo que digo es que es fácil ser complaciente y luego señalar con el dedo cuando las cosas no funcionan.
Si tiene problemas con el equipo de OpenSSL y utilizó OpenSSL, apunte esos dedos hacia usted. ¿Por qué no encontraste el error?
Si eres un consumidor que fue quemado por un operador de un sitio web que usó OpenSSL, lo siento. Yo también soy uno de esos.