Los demonios no son más que programas que trasladan la información del mundo exterior al sistema operativo: los ojos y oídos del Unix. (Los demonios de la antigua Grecia eran divinidades inferiores, a mitad de camino entre los dioses y los hombres. En este sentido, mis demonios están a mitad de camino entre el todopoderoso sistema operativo y el mundo de los discos y terminales.)
Podía dividir en dos la salida de los demonios, como si se tratara de una conducción de agua, de modo que las operaciones del hacker pasaran simultáneamente al sistema operativo y a una impresora. Las soluciones de programación son simples y elegantes.
—Si tocas los demonios —dijo Dave Cleveland—, lo haces por tu cuenta y riesgo. Sobre todo respeta sus necesidades cronométricas.
—Oye, si metes la pata —me advirtió Wayne—, trastornarás con toda seguridad el sistema. Se convertirá en una papilla y en modo alguno lograrás controlar todo lo que ocurra. No me vengas llorando cuando en tu pantalla veas: "Panic kernel mode interrupt"
—Si tu hacker tiene alguna experiencia con el Unix —agregó Dave—, no podrá evitar darse cuenta del cambio en los demonios.
Esto me convenció. Un operador inteligente se daría cuenta de que habíamos modificado el sistema operativo. En el momento en que el hacker supiera que se le observaba, atacaría nuestras bases de datos y se escurriría. Nuestra intervención tenía que ser completamente indetectable, incluso para un omnipotente superusuario. Se precisaban controles silenciosos e invisibles para atrapar al hacker.
Tal vez bastaría con magnetófonos en las líneas telefónicas, pero no parecía lo adecuado, demasiado engorroso. Habría que escuchar las cintas y no podríamos observar los pasos del hacker hasta mucho después de que hubiera desconectado. Además, ¿de dónde iba a sacar cincuenta magnetófonos?
En realidad, el único lugar que quedaba desde donde observar el tráfico era entre los modems y los ordenadores. Los modems convertían el sonido telefónico en pulsaciones electrónicas, comprensibles para nuestros ordenadores y los demonios del sistemas operativo. Las líneas de dichos modems eran unos conductores planos de veinticinco cables que serpenteaban bajo la tarima de la sala de conexiones. Podía conectarse un ordenador personal o una impresora a cada una de dichas líneas y grabar todos los pasos.
¿Engorroso? Sin duda. ¿Funcionaría? Tal vez.
Lo único que se necesitaba eran cincuenta teletipos, impresoras y ordenadores portátiles. Fue fácil conseguir los primeros, no hubo más que pedirlos en el mostrador de suministros. Davc, Wayne y los demás que formaban parte del grupo de los sistemas prestaron a regañadientes sus terminales portátiles. Al final de la tarde del viernes habíamos conectado una docena de monitores en la sala de conexiones. Los otros treinta o cuarenta monitores aparecerían cuando todo el mundo abandonara el laboratorio. Fui de despacho en despacho, apropiándome de los ordenadores personales de las mesas de las secretarias. El lunes se crearía una enorme confusión, pero era más fácil pedir disculpas que solicitar permiso.
Cubierto de cuatro docenas de teletipos en desuso y terminales portátiles, el suelo parecía la pesadilla de un ingeniero de informática. Me acosté en medio de todos ellos, cuidando de los ordenadores e impresoras. Cada uno recogía datos de una línea distinta y, cuando alguien conectaba con nuestro sistema, me despertaba el tecleo de la impresión. Cada media hora, a alguno de los monitores se le acababa el papel o se quedaba sin espacio en disco y tenía que volver para recargarlo.
—Bien, ¿dónde está tu hacker? —me preguntó Roy Kerth el sábado por la mañana, sacudiéndome para despertarme.
Todavía en mi saco de dormir, debía de apestar como una cabra. Parpadeando adormecido, susurré algo sobre la necesidad de leer cincuenta montones de hojas.
—Antes de empezar a examinar los impresos —refunfuñó—, devuelve esas impresoras. Has ido por ahí como un maniaco secuestrando aparatos, utilizados por gente que trabaja. Has logrado enfurecer a una docena de astrónomos. ¿Has hecho tú algún trabajo? No. ¿Qué crees que es eso, tu letrina personal?
Medio dormido, devolví cada una de las impresoras a sus legítimos dueños. Las primeras cuarenta y nueve no mostraban nada de interés. De la quincuagésima brotaban 26 metros de papel impreso. Durante la noche alguien se había colado por un agujero del sistema operativo.
Durante tres horas, un hacker había merodeado por mi sistema, leyendo todo lo que se le antojaba. Sin que él lo supiera, mi Decwriter de 1200 baudios había grabado su sesión, en 26 metros de papel informático a un espacio. Ahí estaban todas las órdenes que había dado, sus errores de mecanografía y cada una de las respuestas del ordenador.
La impresora demostraba que la llamada procedía de Tymnet. No me había dado cuenta antes, pero algunas de nuestras líneas de 1200 baudios no procedían de modems telefónicos, sino de una empresa denominada Tymnet, que intercomunicaba ordenadores alrededor del mundo.
En otra época el sistema Bell monopolizaba las comunicaciones. ATT era la única forma de conectar Nueva York con Chicago. Con el uso de modems, el sistema telefónico permitía la transmisión de datos, pero el ruido y el coste de las llamadas a larga distancia lo hacían inadecuado para los ordenadores. A fines de los años setenta, unas pocas empresas decidieron arriesgarse a ofrecer servicios especializados, como los teléfonos para datos. Tymnet creó una red para intercomunicar ordenadores en las ciudades principales.
La idea de Tymnet era simple y elegante: la creación de un eje de comunicaciones digitales, permitir que cualquiera se comunicara con dicho eje mediante una llamada urbana y entonces mandar la información a cualquier ordenador de la red. Tymnet comprimía la información de docenas de usuarios en un número limitado de paquetes y los mandaba económicamente a cualquier lugar del país. El sistema estaba desprovisto de ruido y cada usuario podía operar tan rápido como quisiera. Los clientes ahorraban dinero porque podían acceder a un ordenador lejano mediante una llamada urbana.
A fin de satisfacer a los científicos de todo el país, el Lawrence Berkeley Laboratory se suscribió a Tymnet. Cuando un investigador de Stonybrook, Nueva York, deseaba conectar con nuestro ordenador, llamaba al número de Tymnet en su ciudad. Cuando su modem estaba conectado a Tymnet, se limitaba a preguntar por nuestro laboratorio y operaba como si estuviera en Berkeley. A los físicos de lugares remotos les encantaba el servicio y a nosotros nos parecía muy bien que gastaran el dinero de su investigación en nuestros ordenadores, en lugar de hacerlo en sus propios aparatos.
Teníamos un intruso que utilizaba la línea de Tymnet. Puesto que la red de Tymnet cubría todo el país, nuestro hacker podía estar en cualquier lugar.
Sin embargo lo que me fascinaba en aquel momento no era su lugar de procedencia, sino lo que había hecho en tres horas. Mi intuición no me había traicionado: utilizaba la cuenta de Sventek para irrumpir en nuestro ordenador Unix.
No se trataba de una simple irrupción: el hacker era un superusuario.
Se había colado por un agujero de nuestro sistema, para convertirse en superusuario, sin siquiera conectar con la cuenta del usuario root. Su conducta era como la de un cuco.
El cuco pone los huevos en los nidos de otros pájaros. Se reproduce por sistema parasitario: otro pájaro incuba sus huevos y cuida de sus pequeños. La supervivencia de los pequeños cucos depende de la ignorancia de otras especies.
Nuestro misterioso visitante había puesto un programa/huevo en nuestro ordenador, y había dejado que éste lo incubara y le otorgara privilegios.
Aquella mañana, el hacker había escrito un breve programa para otorgarse privilegios. Normalmente, el Unix no aceptaría un programa semejante, ya que nunca otorga mayores privilegios que los asignados a cada usuario. Pero al introducirlo desde una cuenta privilegiada, le convertía a él en privilegiado. Su problema consistía en disimular dicho programa especial —el huevo del cuco— a fin de que el sistema lo incubara.
Cada cinco minutos, el sistema Unix ejecuta su propio programa denominado atrun. Atrun asigna a su vez otras misiones y realiza tareas rutinarias de limpieza. Opera en modo privilegiado, con toda la potencia y confianza del sistema operativo. En el caso de sustituirlo por un atrun falso, se ejecutaría en el plazo de cinco minutos, con plenos privilegios en el sistema. Ésta es la razón por la que atrun se encuentra en una zona protegida del sistema, a la que sólo tiene acceso el administrador del mismo. Nadie salvo el administrador tiene permiso para manipular el atrun.
Ahí se encontraba el nido del cuco: durante cinco minutos cambiaría su huevo por el programa atrun del sistema.
Para ello necesitaba encontrar la forma de introducir su programa/huevo en el nido protegido de los sistemas. Las barreras del sistema operativo están construidas especialmente para impedirlo. En condiciones normales, los programas de copia no pueden cruzarlas; no aceptan la orden:
«copia mi programa en el espacio del sistema»
.
Pero había un cabo suelto que nos había pasado por alto. Richard Stallman, programador autónomo, proclamaba a los cuatro vientos que la información debería ser libre. Sus programas, que regala gratuitamente, son de una concepción brillante, elegantes y atractivos.
A lo largo de la última década, Stallman creó un potente programa de edición llamado Gnu-Emacs. Pero Gnu-Emacs es mucho más que un simple editor de textos. Es fácil adaptarlo a las preferencias personales de cada uno. Constituye los cimientos sobre los que pueden construirse otros programas. Incluso lleva incorporado su propio servicio de mensajería. Naturalmente, nuestros físicos exigían Gnu y, con la esperanza de vender un mayor número de ciclos informáticos, no tuvimos ningún inconveniente en instalarlo.
El único problema era un bug en el software.
Tal como había sido instalado en nuestro ordenador Unix, el editor Gnu-Emacs nos permite trasladar un archivo desde su propio directorio al de cualquier otro de un modo inusual. No comprueba quién lo recibe, ni siquiera si lo desea. Se limita a cambiar el título y propiedad del archivo en cuestión. Así se transfiere la propiedad de un archivo de uno a otro.
No supone ningún problema que uno le mande un archivo a otro, siempre y cuando no pueda introducirlo en la zona protegida del sistema, donde sólo se permite la entrada al administrador del mismo. El software de Stallman debería haberlo tenido en cuenta.
Pero Gnu no lo comprobaba. Permitía que cualquiera introdujera un archivo en los espacios protegidos del sistema. El hacker lo sabía, pero nosotros no.
El hacker había utilizado Gnu para reemplazar la versión legítima del sistema por su propio archivo especial atrun. Al cabo de cinco minutos el sistema había incubado el huevo y tenía en sus manos las llaves del ordenador.
Había utilizado dicha técnica para engañar al ordenador y conseguir que le otorgara poder. Donde el ordenador esperaba encontrar el programa legítimo había introducido el falso. En el momento en que el Unix ejecutó el atrun falsificado, se convirtió en superusuario. La operación dependía plenamente de su capacidad para trasladar un archivo donde se le antojara.
Gnu era el agujero en nuestro sistema de seguridad. Un bug sutil en una sección recóndita de un programa popular. Instalado a ciegas por nuestros programadores de sistemas, a nadie se le había ocurrido que pudiera destruir por completo nuestro sistema de seguridad.
Ahora lo comprendía. Nuestro amigo se había introducido en una cuenta de invitado, adquirido privilegios gracias al agujero del Gnu y a continuación agregado una nueva cuenta al archivo del ordenador.
En las primeras hojas impresas que tenía ante mí se veía cómo el cuco preparaba el nido, ponía el huevo y esperaba a que incubara. A lo largo de los próximos 20 metros de papel, el joven cuco ponía a prueba sus alas.
En su calidad de superusuario, nuestro sistema estaba en sus manos. Lo primero que hizo fue eliminar sus huellas: volvió a conectar la copia legítima de atrun donde correspondía. A continuación hizo un listado de la correspondencia electrónica de todos nuestros usuarios, noticias, rumores y cartas de amor. Se enteró de los cambios de equipo del mes pasado, las propuestas de subvención, y las nuevas contrataciones. Buscó cambios en los archivos de los gestores de sistema y descubrió que yo acababa de ocupar el cargo. Revisó mi salario y mi currículo. Y lo más preocupante: comprendió que yo era administrador de sistema y descubrió el nombre de mi cuenta.
¿Por qué yo? ¿Qué tenía de particular lo que hacía? En todo caso, de ahora en adelante, sería preferible que utilizara otro nombre.
Cada diez minutos, el hacker utilizaba la orden
«who»
4
, para obtener un listado de todos los que estuvieran conectados con el ordenador. Al parecer le preocupaba que alguien fuera consciente de su presencia o le estuviera observando. Más adelante examinó el sistema operativo en busca de cambios; de haber modificado los demonios para grabar su sesión, como me lo proponía al principio, con toda segundad lo habría descubierto. Me sentía como un chiquillo jugando al escondite, cuando el que busca pasa a pocos centímetros del lugar donde está uno oculto.
Durante la primera hora, escribió un programa que inspeccionaba todos los mensajes electrónicos en busca de cualquier mención referente a su actividad. Buscaba las palabras
«hacker»
y
«seguridad»
.
Un científico había iniciado un programa que recogía datos de un experimento durante el fin de semana. Con el título de «compaginación», dicho programa se limitaba a recoger inocentemente información cada pocos minutos y grabarlo en un archivo. El hacker lo descubrió, pasó diez minutos intentando dilucidar lo que hacía y lo eliminó.
Admirable precaución la suya, mirando cada pocos minutos por encima del hombro, para comprobar que nadie le observaba y destruyendo cualquier programa que, a su entender, pudiera controlarlo. Examinó la correspondencia para ver si alguien había dicho algo sobre hackers. Wayne tenía razón: de haberme mantenido al descubierto, habría detectado mi presencia. De ahora en adelante tendríamos que ser precavidos e invisibles.
Cuando no miraba por encima del hombro, el hacker leía archivos. Después de estudiar las órdenes e instrucciones de varios científicos, averiguó cómo introducirse en los ordenadores del laboratorio. Cada noche nuestros ordenadores llaman automáticamente a otros veinte ordenadores, para intercambiar correspondencia y noticias de la red. Cuando el hacker leyó dichos números de teléfono, descubrió veinte nuevos objetivos.