La verdadera historia de mis primeros días en Microsoft.
No has conocido el miedo hasta el día en que te levantas y ves el titular en ZDNet.com esa mañana: "El peor agujero de seguridad de Internet Explorer que se haya descubierto en 'Blah' ", donde "Blah" es el código que escribiste seis meses antes .
Inmediatamente después de llegar al trabajo, verifiqué los registros de cambios y descubrí que alguien en otro equipo, alguien en quien confiamos para hacer cambios en el producto, había revisado mi código, había cambiado un montón de configuraciones clave de registro de seguridad sin ninguna buena razón, lo comprobé de nuevo y nunca recibí una revisión de código ni se lo conté a nadie. Hasta el día de hoy no tengo idea de qué demonios pensó que estaba haciendo; dejó la compañía poco después. (Por su propia voluntad.)
(ACTUALIZACIÓN: Algunas respuestas a los problemas planteados en los comentarios:
Primero, tenga en cuenta que elijo tomar la posición caritativa de que los cambios en la clave de seguridad no fueron intencionales y se basaron en el descuido o la falta de familiaridad, en lugar de la malicia. No tengo evidencia de una manera u otra, y creo que es sabio atribuir los errores a la falibilidad humana.
Segundo, nuestros sistemas de registro son mucho, mucho más fuertes ahora que hace doce años. Por ejemplo, ahora no es posible registrar el código sin que el sistema de registro envíe por correo electrónico la lista de cambios a las partes interesadas. En particular, los cambios realizados al final del ciclo de envío tienen muchos "procesos" a su alrededor, lo que garantiza que se realicen los cambios correctos para garantizar la estabilidad y seguridad del producto).
De todos modos, el error fue que un objeto que NO era seguro para ser utilizado desde Internet Explorer había sido liberado accidentalmente como marcado como "seguro para secuencias de comandos". El objeto era capaz de escribir archivos binarios (bibliotecas de tipo de automatización OLE, de hecho) en ubicaciones de disco arbitrarias. Esto significaba que un atacante podía crear una biblioteca de tipos que contuviera ciertas cadenas de código hostil, guardarla en una ruta que fuera una ubicación ejecutable conocida, darle la extensión de algo que haría que se ejecutara un script y esperar que de alguna manera el usuario correría accidentalmente el código. No conozco ningún ataque exitoso del "mundo real" que haya utilizado esta vulnerabilidad, pero fue posible crear un exploit de trabajo con él.
Enviamos un parche bastante rápido para eso, déjame decirte.
Causé y posteriormente arreglé muchos más agujeros de seguridad en JScript, pero ninguno de ellos llegó a estar cerca de la publicidad que uno hizo.