—Lo único que se necesita es entrar —añadió Lucy—. Y, si uno conoce este dios, puede crear cualquier cosa que se le antoje, convertirla en un ABD y entrar de esta manera en tu base de datos.
En mi despacho, el administrador de base de datos o ABD era garganta/profunda. De vez en cuando, Margaret tenía sentido del humor.
—O sea que entras en SQL conectando el System/Manager y entonces tecleas, por ejemplo: GRANT CONNECT, RESOURCE, ABD DE TITA IDENTIFICADA POR KAY.
—A lo mejor, eso fue lo que ocurrió —dije, reflexionando en voz alta—. Y, con el ABD, cualquier persona no sólo puede visualizar sino también alterar los datos.
—¡Pues claro! Dios le dijo que podía. El ABD es como Jesús.
Sus símiles teológicos eran tan tremendos que no tuve más remedio que reírme.
—Así entré yo al principio en SQL —me confesó—. Como no me habías dicho cuáles eran las contraseñas ni nada de eso, tuve que probar con algunos de los comandos del manual. Entonces asigné una contraseña al nombre de usuario de tu ABD para poder entrar.
—Un momento —dije yo—. ¡Un momento! ¿Quieres decir que le asignaste al usuario de mi ABD una contraseña que tú inventaste? ¿Y cómo sabías tú mi nombre de usuario? Yo no te lo había dicho.
—Está en los archivos —me explicó—. Lo encontré en el directorio Home donde están todas las contraseñas de los nombres de usuario de las tablas que tú creaste. Tú tienes un archivo llamado «Grants. SQL» en el que creaste todos los sinónimos públicos de tus tablas.
En realidad, aquellas tablas no las había creado yo. Lo había hecho Margaret el año anterior y yo había cargado el ordenador de mi casa con los
disquetes
que ella me entregó. ¿Sería posible que en el ordenador de la OJDML hubiera un archivo similar?
Tomé a Lucy de la mano y ambas nos levantamos del sofá y nos dirigimos a mi despacho. La senté delante del ordenador y acerqué la otomana.
Entramos en el paquete de
software
de comunicaciones y tecleamos el número del despacho de Margaret. Vimos la cuenta atrás en la parte inferior de la pantalla mientras el ordenador marcaba. Casi inmediatamente, el aparato anunció que estábamos conectados y, varios comandos más tarde, la pantalla quedó a oscuras y apareció la C de color verde. Mi ordenador se había convertido de pronto en un espejo. Al otro lado estaban los secretos de mi despacho situado a dieciocho kilómetros de distancia. Me puse un poco nerviosa al pensar que, mientras nosotras trabajábamos, la llamada estaba siendo localizada. Tendría que acordarme de decírselo a Wesley para que no perdiera el tiempo tratando de descubrir al intruso que, en aquel caso, era yo.
—Haz un archivo de búsqueda de cualquier cosa que se pueda llamar «Grants» —dije.
Lucy lo hizo. La C de entrada nos dio inmediatamente el mensaje de «Archivo no encontrado». Probamos de nuevo. Tratamos de encontrar un archivo llamado «Sinónimos» y tampoco tuvimos suerte. Entonces a Lucy se le ocurrió la idea de buscar cualquier archivo en la extensión «SQL», porque normalmente ésa era la extensión de cualquier archivo que contuviera comandos SQL, como, por ejemplo, los utilizados para crear sinónimos públicos en las tablas de los datos de la oficina. Varios nombres aparecieron en la pantalla. Uno de ellos nos llamó la atención. Se llamaba «Public. SQL».
Lucy entró en el archivo y mi emoción corrió parejas con mi desaliento. Contenía los comandos que Margaret había escrito y ejecutado hacía mucho tiempo al crear los sinónimos públicos de todas las tablas creadas en la base de datos de la oficina... comandos como, por ejemplo, crear sinónimo público PARA PROFUNDA.
Yo no era una programadora de informática. Había oído hablar de los sinónimos públicos, pero no estaba enteramente segura de lo que eran.
Lucy estaba hojeando el manual. Al llegar al apartado de sinónimos públicos, me dijo:
—Mira, está muy claro. Cuando creas una tabla, tienes que crearla bajo un nombre de usuario y una contraseña.
Sus brillantes ojos me miraron a través de los gruesos cristales de las gafas.
—De acuerdo —dije—. Me parece muy lógico.
—Por consiguiente, si tu nombre de usuario es «Tita» y tu contraseña es «Kay», si quieres crear una tabla llamada «Juegos» o lo que sea, el nombre que realmente le da el ordenador es «Tita.Juegos». O sea, junta el nombre de la tabla con el nombre de usuario bajo el cual se ha creado. Si no te quieres molestar en teclear «Tita.Juegos» cada vez que quieres entrar en la tabla, creas un sinónimo público. Pulsas el comando crear SINÓNIMO PÚBLICO JUEGOS PARA TITA. JUEGOS. Y entonces SC cambia el nombre de la tabla y se llama simplemente «Juegos».
Contemplé la larga lista de comandos de la pantalla en la que figuraban todas las tablas del ordenador de mi oficina con todos los nombres de usuario del ABD, bajo los cuales se había creado cada tabla.
Estaba perpleja.
—Pero aunque alguien hubiera visto este archivo, Lucy, no hubiera sabido la contraseña. Aquí sólo figura el nombre de usuario del ABD y no puedes entrar en una tabla como, por ejemplo, nuestra tabla de casos, sin conocer la contraseña.
—¿Qué te apuestas a que sí? —dijo Lucy con los dedos en suspenso encima del teclado—. Si conoces el nombre de usuario del ABD puedes cambiar de contraseña, poner lo que quieras y entrar. Al ordenador le da igual. Te deja cambiar las contraseñas siempre que quieras sin alterar los programas ni nada de todo eso. A la gente le gusta cambiar las contraseñas por motivos de seguridad.
—¿O sea que se puede tomar el nombre de usuario «Profunda», asignarle una nueva contraseña y entrar en los datos?
Lucy asintió con la cabeza.
—Enséñamelo.
Lucy me miró con expresión dubitativa.
—Pero es que tú me dijiste que no entrara en la base de datos de tu despacho.
—Por esta vez, haremos una excepción.
—Si le asigno a «Profunda» una nueva contraseña, tita Kay, la antigua quedará eliminada. Ya no valdrá.
Experimenté un sobresalto al recordar lo que había dicho Margaret cuando descubrimos por primera vez que alguien había intentado recuperar el caso de Lori Petersen: dijo que la contraseña del ABD no funcionaba y tuvo que conectar de nuevo la clave.
—La antigua contraseña quedará invalidada porque ha sido sustituida por la nueva que yo me he inventado. Por consiguiente, no se puede trabajar con la antigua —Lucy me miró furtivamente—. Pero yo te lo puedo arreglar.
—¿Arreglar? —pregunté sin apenas escucharla.
—En tu ordenador de aquí. La antigua contraseña quedará invalidada porque yo la cambiaré para entrar en SQL. Pero yo te lo arreglaré. Te lo prometo.
—Más tarde —dije rápidamente—. Más tarde me lo arreglarás. Ahora quiero que me enseñes exactamente cómo pudo entrar una persona en la base de datos.
Estaba tratando de comprenderlo y no me parecía improbable que la persona que hubiera entrado en la base de datos de mi despacho tuviera los suficientes conocimientos de informática como para crear una nueva contraseña para el nombre de usuario encontrado en el archivo «Public.SQL». Sin embargo, dicha persona no se había dado cuenta de que, al hacerlo así, invalidaría la antigua contraseña y nos impediría utilizarla la próxima vez que lo intentáramos. Y entonces nos daríamos cuenta y nos extrañaría. Al parecer, a dicha persona también se le había pasado por alto la posibilidad de que el eco estuviera conectado y los comandos quedaran reflejados en la pantalla. ¡Lo cual significaba que la intrusión sólo se había producido una vez!
Si la persona hubiera entrado otras veces en la base de datos, aunque el eco estuviera desconectado, nos hubiéramos enterado porque Margaret hubiera descubierto que la contraseña «Garganta» había quedado invalidada. ¿Por qué?
¿Por qué había querido aquella persona introducirse en la base de datos y recuperar el caso de Lori Petersen?
Los dedos de Lucy se desplazaron rápidamente por el teclado.
—¿Ves? —dijo—. Ahora finjo que soy el malo que ha querido entrar. Mira cómo lo hago.
Entró en SQL tecleando System/Manager y ejecutó un comando connect/resource/ADB con el nombre de usuario «Profunda» y una contraseña que se inventó... «jaleo». La clave ya estaba conectada. Era el nuevo ABD. Con él, Lucy podría entrar en cualquiera de las tablas del ordenador de mi oficina. El nuevo ABD tenía el suficiente poder como para permitirle hacer cualquier cosa que quisiera.
El suficiente poder como para permitirle modificar los datos.
Para permitir, por ejemplo, que alguien hubiera alterado los datos del caso de Brenda Steppe de tal manera que el artículo «cinturón de tela de color beige» figurara en la lista de «Prendas. Efectos personales».
¿Lo había hecho? Conocía los detalles de los asesinatos que había cometido. Leía los periódicos. Estaba obsesionado por todas las palabras que se escribían acerca de él. Podía descubrir una imprecisión en las noticias mejor que nadie. Era arrogante. Quería hacer alarde de inteligencia. ¿Había cambiado los datos de mi despacho para tomarme el pelo y burlarse de mí?
La intrusión se había producido casi dos meses después de que los detalles aparecieran en el reportaje de Abby sobre la muerte de Brenda Steppe.
Y, sin embargo, el desconocido sólo había penetrado una vez en los datos y de eso hacía muy poco tiempo.
El detalle que se mencionaba en el reportaje de Abby no podía proceder del ordenador de mi oficina. ¿Y si el detalle del ordenador procediera del reportaje periodístico? A lo mejor, el asesino había repasado cuidadosamente en el ordenador todos los casos de estrangulación, buscando alguna discrepancia con lo que Abby escribía. A lo mejor, al llegar al caso de Brenda Steppe, descubrió la inexactitud y alteró los datos, sustituyendo «un par de pantys color carne» por «un cinturón de tela de color beige». A lo mejor, lo último que hizo antes de terminar fue tratar de sacar el caso de Lori Petersen por simple curiosidad. Eso explicaría por qué Margaret había encontrado aquellos comandos reflejados en la pantalla.
¿Y si la paranoia me estuviera confundiendo la razón?
¿Y si hubiera una relación entre todo aquello y el ERP erróneamente etiquetado? La carpeta de cartulina tenía un residuo brillante. ¿Y si el origen del residuo no fueran mis manos?
—Lucy —dije—, ¿habría alguna manera de saber si alguien ha alterado los datos del ordenador de mi despacho?
—Tú pones al día los datos, ¿verdad? —me preguntó Lucy—. Alguien hace una exportación de datos, ¿no?
—Sí.
—Pues entonces podrías buscar una exportación antigua, hacer una importación en el ordenador y ver si los datos antiguos son distintos.
—Lo malo —dije yo— es que, aunque descubriera una alteración, no podría asegurar con certeza que ésta no fuera el resultado de una puesta al día hecha por uno de mis colaboradores. Los casos se mueven constantemente porque los informes siguen llegando a lo largo de semanas y meses tras la introducción inicial del caso.
—Creo que lo tendrías que preguntar, tita Kay. Pregúntales si lo han cambiado. Si te dicen que no y encuentras una exportación antigua que no coincide con lo que ahora hay en el ordenador, ¿no te serviría de algo?
—Puede que sí —reconocí.
Lucy volvió a cambiar la contraseña. Después, limpiamos la pantalla para que, al día siguiente, nadie viera los comandos reflejados en el ordenador de mi oficina.
Ya eran casi las once de la noche. Llamé a Margaret a su casa y ésta me contestó con voz adormilada cuando yo le pregunté si tenía algún
disquete
de exportación de datos anterior a la fecha en la que alguien había manipulado los datos del ordenador.
Tal como ya esperaba, su respuesta me deparó una decepción.
—No, doctora Scarpetta. En la oficina no hay nada tan antiguo. Hacemos una exportación nueva al final de cada día y el
disquete
de exportación anterior se formatea y después se pone al día.
—Maldita sea. Necesito una versión de la base de datos que no se haya puesto al día desde varias semanas atrás.
Silencio.
—Un momento —musitó Margaret—. A lo mejor, tengo un fichero...
—¿De qué?
—No sé... —Margaret pareció dudar—. Creo que de los datos correspondientes a los últimos seis meses más o menos. El departamento de estadísticas vitales nos pide los datos y, hace un par de semanas, hice una prueba, trasladando los datos de los distritos a una sección y colocando todos los datos de los casos en un archivo para ver qué tal quedaba. Después, los tuve que enviar directamente a la central informática del departamento de estadísticas vitales...
—¿Cuánto tiempo hace? —pregunté, interrumpiéndola—. ¿Cuánto tiempo hace que envió los datos?
—El primero de mes... vamos a ver, creo que lo hice hacia el primero de junio.
Estaba hecha un manojo de nervios. Necesitaba saberlo. Por lo menos, si yo pudiera demostrar que los datos habían sido alterados en el ordenador después de la aparición de los reportajes en la prensa, nadie podría echarle la culpa de las filtraciones a mi departamento.
—Necesito este archivo inmediatamente —le dije a Margaret.
Hubo un prolongado silencio tras el cual Margaret me contestó con cierta vacilación:
—Tuve algunos problemas para hacerlo —otra pausa—. Pero le puedo facilitar lo que tenga mañana a primera hora.
Consulté mi reloj y marqué el número del buscapersonas de Abby.
Cinco minutos más tarde, pude hablar con ella.
—Abby, sé que sus fuentes son sagradas, pero hay algo que debo saber.
Ella no contestó.
—En su reportaje sobre el asesinato de Brenda Steppe, usted escribió que la estrangularon con un cinturón de tela beige. ¿Dónde obtuvo usted este dato?
—No puedo...
—Por favor. Es muy importante. Necesito conocer la fuente.
Tras una larga pausa, Abby contestó:
—No le facilitaré ningún nombre. Un miembro del equipo de socorro. Fue un miembro del equipo de socorro. Uno de los tipos que estuvieron en el lugar de los hechos. Conozco a muchos...
—¿La información no procedía de mi departamento?
—Absolutamente no —contestó Abby sin dudar—. Está usted preocupada por esa intrusión en el ordenador que comentó el sargento Marino... le juro que yo no he publicado nada que procediera de su departamento.
—Quienquiera que lo hiciera, Abby, pudo introducir en la tabla del ordenador este dato sobre el cinturón de tela beige para que pareciera que usted lo obtuvo de mi departamento y que el origen de la filtración somos nosotros. Este detalle es inexacto. No creo que jamás figurara en nuestro ordenador. Creo que la persona que lo hizo sacó el detalle de su reportaje.