Si supiera los nombres de las cuentas apropiadas, sería fácil elaborar un programa para observar al intruso cuando apareciera. No sería necesario investigar a todas las personas que usaran el ordenador: bastaría con que sonara la alarma cuando se utilizara una de las cuentas apropiadas. Pero también recordaba lo que Wayne Graves me había advertido: era preciso permanecer invisible.
Esto significaba no alterar el funcionamiento del ordenador principal. Pero podía vigilar desde otro ordenador. Acabábamos de instalar un nuevo ordenador, nuestro sistema Unix-8, que nadie había utilizado todavía y, por consiguiente, puede que no fuera seguro, pero sin duda no estaba contaminado. Podía conectarlo a nuestra red local, protegerlo contra cualquier tipo de ataque y utilizarlo para vigilar los ordenadores Unix-4 y Unix-5.
Protegería mi castillo Unix-8 con un foso unidireccional. Permitiría que la información entrara, pero no que saliera. Dave Cleveland, muy emocionado ante la perspectiva de capturar a un hacker, me indicó sonriente cómo preparar el Unix-8 para evitar toda posibilidad de introducción en el mismo, permitiendo al mismo tiempo que controlara los demás Unix para detectar la presencia de algún intruso.
El programa no era difícil: constaba tan sólo de unas docenas de líneas de código que lo protegían de los demás ordenadores del laboratorio. En honor a una antigua tradición, los astrónomos programamos en Fortran y no me sorprendió que Dave me echara una mala mirada por utilizar un lenguaje tan anticuado. Me retó a programar en el lenguaje C y, en pocos minutos, resumió el programa a veinte líneas de código muy condensado.
Pusimos el programa de vigilancia de Dave en funcionamiento en el ordenador Unix-8. A cualquiera que se interesara por su categoría se le invitaba a introducir sus datos, pero no podía conectar con el mismo, porque el ordenador rechazaba a todo el mundo, excepto a Dave y a mí. El hacker no tendría por qué sospechar, ya que el ordenador no parecía estar conectado.
Desde su privilegiada perspectiva, la red de mensajería preguntaba a los demás ordenadores Unix quién estaba conectado al sistema y, una vez por minuto, el programa del Unix-8 analizaba los informes en busca del nombre de Sventek. Cuando éste apareciera, sonaría la alarma de mi terminal y habría llegado el momento de entrar en acción.
Pero no bastaría con la alarma para capturar al hacker. Sería preciso seguirle la pista a través de nuestro sistema hasta llegar a su madriguera. Y a fin de protegernos, necesitábamos saber lo que estaba haciendo.
No tenía posibilidad alguna de apropiarme de nuevo de cincuenta impresoras, por lo que debía limitarme a observar las líneas que probablemente utilizaría. El sábado por la mañana se había introducido en el sistema mediante una de nuestras cuatro líneas de Tymnet, y éste parecía un lugar adecuado por dónde empezar.
No podía comprar, robar, ni alquilar cuatro impresoras durante varias semanas, por lo que tuve que recurrir a la mendicidad. Un catedrático de física me dio una vieja Decwriter escacharrada, encantado de que alguien le sacara aquel trasto de diez años de antigüedad de las manos. Una secretaria me hizo donación de un IBM PC de repuesto a cambio de que le enseñara a utilizar los programas de hojas de cálculo. Entre pasteles, halagos y connivencia conseguí otras dos impresoras arcaicas. La operación estaba de nuevo en marcha y grababa la totalidad de nuestro tráfico con Tymnet.
El miércoles por la tarde hacía una semana que habíamos detectado por primera vez al hacker. Hacía sol en Berkeley, a pesar de que apenas lograba ver las ventanas a través del laberinto de cubículos. El programa de vigilancia de Dave estaba alerta, las impresoras grababan todas y cada una de las pulsaciones, y yo divagaba pensando en las emisiones infrarrojas del conjunto estelar de Pléyades, cuando de pronto mi terminal emitió dos pitidos: acababa de activarse la cuenta de Sventek. Mi cuerpo se llenaba de adrenalina mientras corría hacia la sala de conexiones; la parte superior del papel indicaba que el hacker había conectado a las 02:26 y permanecía activo.
Letra por letra, la impresora grababa cada una de sus pulsaciones.
Conectado al ordenador Unix-4 con el nombre de Sventek, lo primero que hizo fue obtener un listado de todo el mundo que estuviera conectado al sistema. Por fortuna sólo apareció el grupo habitual de físicos y astrónomos, mientras mi programa de vigilancia permanecía perfectamente oculto en el ordenador Unix-8. «Mirando de nuevo por encima del hombro», pensé. Lo siento, sólo los astrofísicos de costumbre —le susurré a mi terminal.
No obstante examinó todos los procesos que se estaban realizando. La orden
«ps»
del Unix muestra el estado de otros procesos. Por regla general, suelo dar la orden
«ps -axu»
, cuyas tres ultimas letras ordenan al núcleo Unix que indique el estado de cada uno. Sin embargo, el intruso dio la orden
«ps -eafg»
. Extraño. Nunca había visto a nadie utilizar el distintivo
«g»
. No es que le sirviera de mucho: sólo descubrió unos cuantos programas de análisis científico, un programa absurdo de procesamiento de textos y... la conexión de la red al sistema Unix-8.
Había tardado tres minutos en descubrir el ordenador Unix-8, vagamente conectado al sistema Unix-4. Pero ¿lograría entrar en el mismo? Lo intentó media docena de veces con la orden rlogin, llamando a la puerta del Unix-8 con el nombre y palabra clave de Sventek. No lo consiguió. Dave había dejado la puerta bien atrancada.
Al parecer satisfecho de que nadie le observaba, ordenó un listado de las contraseñas del sistema. No había gran cosa para ver; todas las contraseñas se codifican y archivan. Una contraseña codificada parece un galimatías; sin solución y con una codificación extraordinariamente compleja, la lista de contraseñas no era más que un sueño para el hacker.
No se convirtió en superusuario, pero en su lugar comprobó que el archivo de Gnu-Emacs no hubiera sido modificado. Esto disipó cualquier duda de que pudiera tratarse de otro hacker, ya que a nadie se le ocurriría verificar la misma brecha en nuestro sistema de seguridad. A las 02:37, once minutos después de haber conectado, desconectó inesperadamente del ordenador Unix-4. Pero no antes de que hubiéramos comenzado a seguirle la pista.
¡Tymnet! Había olvidado advertir a su centro de operaciones que tendrían que localizar ciertas conexiones. Ni siquiera les había preguntado si podían localizar llamadas dentro de su propia red. Ahora, al ver en la impresora cada una de las teclas que el hacker pulsaba, disponíamos de pocos minutos para localizarle.
Ron Vivier es el encargado de localizar las llamadas de Tymnet en el interior de Estados Unidos. Mientras hablaba con él por teléfono, le oía pulsar las teclas de su terminal. Con la voz entrecortada, me preguntó por la dirección de nuestro nódulo. Por lo menos tenía esto a mano. En un par de minutos, Ron había localizado la conexión desde la entrada de la red Tymnet al laboratorio, a la oficina de Tymnet en Oakland, desde donde alguien había llamado por teléfono.
Según Ron, el hacker había llamado al modem de Tymnet en Oakland, a sólo cinco kilómetros del laboratorio.
Es más fácil llamar directamente a nuestro laboratorio de Berkeley que pasar por la oficina de Tymnet en Oakland. ¿Por qué pasar por Tymnet cuando podía haber llamado directamente a nuestro sistema? Llamando directamente se habría ahorrado las conexiones intermedias de Tymnet y la fiabilidad de la línea habría sido ligeramente superior. Sin embargo, llamando vía Tymnet, dificultaba un poco más la localización.
El hacker había llamado al número de acceso de Tymnet en nuestra zona, en lugar de hacerlo directamente al laboratorio. Era como coger un expreso interestatal para ir a la vuelta de la esquina. Quienquiera que estuviese al otro extremo de la línea sabía cómo ocultarse. Ron Vivier dijo que lo lamentaba; lo que yo buscaba no era un número de teléfono de Tymnet, sino a una persona.
En todo caso, estábamos en camino, aunque éste fuera accidentado. De algún modo tendríamos que localizar la llamada, pero para esto hacía falta una orden judicial. ¡Maldita sea!
Cuando el hacker desconectó, levanté la mirada. Como si de un sabueso se tratara, Roy Kerth se había enterado de la noticia y apareció en la sala de conexiones. También lo hicieron Dave y Wayne.
—Ha llamado a Tymnet en Oakland —les dije cuando colgó Ron—. Debe de ser de por aquí. Si viviera en Peoria, se ahorraría dinero llamando al modem de Tymnet en su zona.
—Sí, puede que estés en lo cierto —dijo Roy, a quien no le atraía la perspectiva de perder una apuesta.
—Lo que me intriga es su orden
«ps -eafg»
—agregó Dave, que no pensaba en localizar la llamada—. No sé por qué, pero me huele mal. Tal vez sea pura paranoia, pero estoy seguro de haber visto antes esa combinación.
—¡Al cuerno con el Unix! Nos lo merecemos por tener un sistema operativo tan defectuoso —observó Wayne, aprovechando para pinchar a Dave—. En todo caso, el fichero de contraseñas no le ha servido de gran cosa, ¿no os parece?
—A no ser que disponga de un superordenador. Es lo que necesitaría para descifrar el código. El Unix no es como el VMS, pues sus sistemas de codificación son los más perfectos que existen —replicó Dave.
Roy conocía ya aquella melodía y se consideraba por encima de la guerra de sistemas operativos.
—Vas a tener que localizar algunas llamadas, Cliff.
No me gustó que me cargara el mochuelo, pero efectivamente tenía razón.
—¿Se le ocurre por dónde empezar?
—Deja que caminen tus dedos.
Al día siguiente de haber observado cómo se introducía el hacker en nuestro ordenador, el jefe se reunió por la mañana con Aletha Owens, abogada del laboratorio. A Aletha no le importaban los ordenadores, pero husmeaba problemas en el horizonte. No perdió tiempo alguno en llamar al FBI.
En nuestra oficina local del FBI no se inmutaron.
—¿Nos llamáis porque habéis perdido setenta y cinco centavos con el ordenador? —preguntó con incredulidad Fred Wyniken, agente especial de la agencia de Oakland.
Aletha intentó hablarle de la protección de datos y del valor de nuestra información.
—Escúchame —le interrumpió Wyniken—, si puedes demostrarme que habéis perdido más de un millón de dólares, o que alguien ha obtenido acceso a información reservada, abriremos una investigación. Hasta entonces, no os molestéis en llamarnos.
Según cómo uno lo mirase, nuestra información no valía nada, o tenía un valor de miles de millones de dólares. ¿Cuánto vale la estructura de una enzima? ¿Qué valor tiene un superconductor de alta temperatura? El FBI pensaba en términos de fraudes bancarios, pero nosotros vivíamos en el mundo de la investigación. ¿Información reservada? Lo nuestro no era una base militar ni un laboratorio de armamento atómico.
Sin embargo necesitábamos la cooperación del FBI. La próxima vez que el hacker sacara su periscopio a la superficie, probablemente localizaríamos el número de teléfono de acceso a Tymnet en Oakland. A partir de ahí confiaba en que un seguimiento de la línea nos conduciría a la persona. Pero tenía entendido que la compañía telefónica no realizaría dicho seguimiento sin una orden judicial y necesitábamos al FBI para obtener dicha autorización.
Ante la falta de cooperación del FBI, Aletha llamó a la fiscalía de nuestro distrito. El fiscal de Oakland no se anduvo con monsergas.
—¿Irrumpe alguien clandestinamente en vuestro ordenador? ¡Maldita sea! Pediremos una orden judicial para intervenir las líneas.
Puede que al FBI no le preocupara, pero nuestra fiscalía se lo tomó muy en serio. No obstante, todavía tenían que convencer al juez. Tardarían por lo menos una semana en obtener la autorización necesaria.
Poco después de las cinco, Dave pasó por mi despacho y empezó a hablar del problema.
—Cliff, el hacker no es de Berkeley.
—¿Cómo lo sabes?
—Tú viste cómo ese individuo utilizaba la orden
«ps -eafg»
, ¿no es cierto?
—Sí, aquí lo tenemos impreso —respondí—. No es más que una orden corriente del Unix para hacer un listado de todos los procesos activos;
«ps»
significa imprimir en pantalla y las otras cuatro letras modifican el formato. En cierto sentido son como los interruptores en un aparato de alta fidelidad: califican el funcionamiento de la orden. Eso significa que el hacker deseaba ver todo lo que estaba funcionando en el sistema.
—De acuerdo, conoces la mitad de la historia. Pero dime: ¿para qué sirven los distintivos
«g»
y
«f»
?
Dave me dejó en suspenso, hasta que confesé mi ignorancia.
—No lo sé.
—Se utiliza el distintivo
«g»
cuando se desea que en la lista aparezcan tanto los procesos interesantes como los no interesantes. Con ello se incluyen los trabajos de poca importancia, como los de contabilidad. Así como cualquier proceso oculto.
—Y nosotros sabemos qué se oculta en el programa de contabilidad.
—Lo cual nos conduce al distintivo —sonrió Dave—, que no figura en ninguno de los Unix de Berkeley. Es la forma de los Unix de ATT para hacer un listado de los archivos de cada uno de los procesos. Nuestro amigo no conoce los Unix de Berkeley. Pertenece a la escuela de los antiguos Unix.
El sistema de operación Unix se inventó a principios de los años setenta, en los laboratorios Bell de ATT, en Nueva Jersey. A fines de los setenta, expertos de los laboratorios Bell visitaron el campus de Berkeley y perfeccionaron una nueva versión mejorada del Unix. Además de sus balnearios, política izquierdista y el movimiento en pro de la libertad de expresión, Berkeley es conocido por el diseño de su Unix.
Se formaron dos bandos entre los partidarios del Unix más reducido y compacto de ATT y el sistema más sofisticado de Berkeley. A pesar de las conferencias, los niveles y las promesas, no se llegó a ningún consenso y el mundo ha heredado dos sistemas Unix que compiten entre sí.
Evidentemente, como toda persona sensata, nuestro laboratorio utilizaba el sistema Unix de Berkeley. Se decía que la gente de la costa este era más partidaria del Unix de ATT. Claro que ellos tampoco habían descubierto los balnearios.
Por una sola letra, Dave descartó la totalidad de la población informática de la costa oeste. Era concebible que el hacker utilizara una orden anticuada, pero Dave desechó dicha posibilidad.