Nota del editor

Bleeding Heart

Michael Desmond

Michael DesmondLa vulnerabilidad de Heartbleed en la implementación de OpenSSL ha sido denunciada como tal vez el mayor código falla de seguridad que Internet ha visto. El defecto potencialmente hecho conexiones seguras creadas usando OpenSSL un libro abierto a terceros. Y como tantas calamidades software, fue el resultado de un simple error.

La función de extensión del latido del corazón de OpenSSL se implementó en 2011 con un parámetro que permitió a los clientes especificar el tamaño de los paquetes serán enviados por el servidor en respuesta a un mensaje de solicitud latido. Pero la función no para tener en cuenta el tamaño real de la carga definida. Un cliente podría solicitar un mensaje de solicitud más grande que la carga requerida. Y debido a la forma que OpenSSL asigna memoria, podría incluir el mensaje devuelto la carga útil, además de cualquier contenido actualmente fueron asignado en el buffer de memoria en el momento.

El resultado fue una especie de retroceso búferes, donde se transmite memoria que no debía para estar allí — sin cifrar — al cliente. Y, a menudo, ese espacio de memoria exceso contenidas las claves privadas para los sitios Web conectados.

Esto es una metedura de pata de Homer Simpson-nivel y durante dos años nadie fijó en el agujero dejado en conexiones de OpenSSL supuestamente seguras. Durante años, Alex Papadimoulis, fundador de la consultora Inedo y creador del software popular blog The Daily WTF (thedailywtf.com), ha documentado los cuentos tristes, frustrantes y a veces hilarantes de desarrollo de software malogrado. Heartbleed comparó a una cadena nacional de bancos olvidando bloquear las bóvedas en la noche... durante un mes.

"Se necesita un nuevo nivel de mala sorpresa ya, pero eso es exactamente lo que Heartbleed entregado," Papadimoulis me dijo en una entrevista del e-mail. "No era el típico WTF, en que fue mal código creado por un programador despistado. Fue más la perfecta ilustración de agrava las consecuencias de un simple error".

La falla de Heartbleed sirve como un recordatorio urgente y humildad que la historia del desarrollo del software está plagada de errores de cabeza hueca. Estoy tentado a establecer una escala para fallas de software asombrosamente evitables, con el rango más alto establecido en Mars Climate Orbiter (MCO). MCO era una misión millones de dólares-o-so poner un avanzado satélite en órbita alrededor de Marte. Falló.

El arte de $328 millones se quemó en la atmósfera marciana porque el equipo de nave espacial de la NASA en Colorado y el equipo de navegación de misión en California utilizan diferentes unidades de medida (uno Inglés, la otra métrica) para calcular el empuje y la fuerza. Exploración del espacio no puede ser un juego de pulgadas, pero es un juego de newton-segundos, y un desajuste asombrosamente simple condenado a la misión al fracaso.

¿Dónde en la escala de MCO Heartbleed caer? En algún lugar alrededor de 0,85 MCOs, creo. El MCO fracaso costo 500 millones de dólares y nos negó una década de exploración científica, no tiene precio, pero los costes reales de Heartbleed nunca pueden ser completamente revelados o realizados. Mientras que la rápida acción probable prevenir daños catastróficos, sabemos que el Canada Revenue Agency reportó el robo de datos críticos para algunos 900 contribuyentes. Y tengo pocas dudas que divulgaciones adicionales estarán a la vista.

"La magnitud de esta vulnerabilidad es lo que la hace tan notable, pero este tipo de error es inevitable," dice Papadimoulis. "Lo mejor que podemos hacer es hacer nuestras aplicaciones y sistemas fáciles de mantener y desplegar, para que cuando se descubren errores como este puede ser parcheados sin ningún problema".

Es un buen consejo. Mientras los seres humanos crean software, software tendrá defectos. Así que mejor que estar listos para dirección aquellos defectos cuando emergen. ¿Qué Heartbleed se sienta en los anales del desarrollo de software fallido? Correo electrónico mmeditor@microsoft.com.

Michael Desmond es el redactor jefe de la MSDN Magazine.