Я не программист. Я слышала об общих синонимах, но точно не знала, что они из себя представляют.
Люси листала справочник. Она нашла главу «Общие синонимы» и доверительно сообщила:
— Смотри, тетя Кей, это просто. Когда делаешь таблицу, нужно создать синоним с именем пользователя или паролем. — Люси с видом победителя смотрела на меня из-за толстых стекол своих очков.
— Ага, в этом есть смысл.
— Если твое имя пользователя — «тетя», а пароль — «Кей», значит, когда ты создаешь таблицу «Игры», компьютер присваивает ей имя «Тетя. Игры». Он прибавляет название таблицы к имени пользователя, которое создал раньше. Если тебе лень каждый раз набирать «Тетя. Игры», ты создаешь общий синоним — набираешь команду «Создать общий синоним для „Тетя. Игры“». Таблица будет переименована просто в «Игры».
Я смотрела на длинный список команд на экране, который открывал все таблицы в компьютере главного офиса судмедэкспертизы и имена пользователей АБД для каждой таблицы.
— Люси, но ведь даже если кто-то увидит этот файл, он не будет знать пароль, — неуверенно произнесла я. — Ведь здесь указано только имя пользователя АБД, а без пароля в таблицу не зайти — например, в нашу.
— Хочешь, поспорим? — Пальцы Люси уже забегали по клавишам. — Если знаешь имя пользователя АБД, можно заменить пароль на любое слово — и легко войти в программу. Меняй пароли хоть десять раз на день — компьютеру по барабану. Данные от этого не пропадают. Некоторые часто меняют пароли в целях безопасности.
— Значит, можно взять имя пользователя «DEEP», прицепить его к новому паролю и войти в нашу базу данных?
Люси кивнула.
— Покажи.
Девочка неуверенно взглянула на меня:
— Но ты ведь не разрешаешь входить в офисную базу данных.
— Для тебя я сделаю исключение.
— Тетя Кей, если я дам новый пароль для «DEEP», старый перестанет действовать. Он просто исчезнет.
Я чуть не подскочила на пуфе, вспомнив, что сказала Маргарет в тот день, когда мы обнаружили взлом базы данных: она жаловалась, что старый пароль не сработал, и ей пришлось восстанавливать доступ к АБД.
— Старый пароль больше не действует, потому что я заменила его на новый, — комментировала Люси свои действия. — Ты не сможешь войти в программу со старым паролем, — тут девочка украдкой взглянула на меня, — но я его потом восстановлю.
— Восстановишь? — Я почти не слушала.
— Смотри. Твой старый пароль больше не действует, потому что я его заменила, чтобы войти в программу. Только я его восстановлю, честно…
— Потом, — поспешно сказала я. — Ты потом его восстановишь. А сейчас покажи мне, как войти в базу данных.
У меня закипали мозги. Видимо, тот, кто взломал компьютер в главном офисе судмедэкспертизы, знал, что можно создать новый пароль для имени пользователя, которое легко найти в файле «Public.SQL». Однако он не знал, что таким образом сделает старый пароль недействительным, и мы больше не сможем войти в свою же программу. Конечно, мы это заметили. И задумались, почему взломщик не потрудился убрать команды, которые он задавал программе и которые остались на экране. Выходило, что попытка проникнуть в нашу базу данных была всего одна!
Ведь если бы наш взломщик проделывал такое и раньше, даже если бы он при этом стирал свои команды с экрана, Маргарет непременно обнаружила бы, что пароль «THROAT» больше не действует. Но почему?
Почему взломщик взломал программу и пытался найти данные по делу Лори Петерсен?
Пальцы Люси так и бегали по клавишам.
— Смотри, — произнесла девочка. — Представь, что я — взломщик. Вот что я стану делать.
Она набрала на клавиатуре «Системный администратор», затем выбрала команду «связаться с ресурсом команд АБД» для имени пользователя «DEEP» и создала новый пароль — «путаница». Соединение произошло. Появился новый администратор базы данных. Теперь Люси могла войти в любую таблицу, вообще могла делать с офисной базой данных все, что вздумается.
Она даже могла изменить записи.
А взломщик, находившийся в таком же положении, легко мог внести в графу «Одежда. Индивидуальные особенности» для случая Бренды Степп запись «коричневый пояс из ткани».
Неужели он так и поступил? Он знал все детали преступлений, которые сам же и совершил. Он читал газеты. Он трепетно относился к каждому слову, написанному в прессе. Он мог первым найти расхождение между тем, что писали журналисты, и реальным положением дел. Он был самонадеян. Ему хотелось порисоваться, щегольнуть своим умом. А вдруг преступник изменил данные в компьютере, чтобы выставить меня полной идиоткой?
Взлом базы данных произошел почти два месяца спустя после выхода статьи Эбби с подробностями гибели Бренды Степп.
До сих пор имелся только один случай взлома компьютера, причем недавний.
Подробности для статьи Эбби не могли быть взяты из нашей базы данных. А что, если подробности, отображенные в базе данных, были взяты из статьи Эбби? Вдруг преступник внимательно читал все отчеты о погибших, занесенные в компьютер, в поисках расхождений с тем, что писала в своих статьях мисс Тернбулл? И обнаружил-таки расхождение в отчете о смерти Бренды Степп? Преступник заменил «колготки телесного цвета» на «коричневый пояс из ткани». Возможно, перед тем, как выйти из системы, он попытался найти отчет о смерти Лори Петерсен — хотя бы из любопытства. По крайней мере, это логично объясняло соответствующие команды на экране.
Да нет, не может быть. Неужели у меня развилась паранойя?
А какая тогда связь между взломом и перепутанными ярлыками? А как же «блестки» на конверте с ярлыками? А что, если они попали туда не с моих рук?
— Скажи мне, Люси, можно ли как-нибудь узнать, менялись или нет записи в базе данных?
— Ты копировала данные? — подумав, спросила Люси. — А экспортировал их кто-то другой?
— Да.
— Тогда нужно взять старую копию, открыть ее и посмотреть, отличаются старые данные от тех, что в компьютере, или нет.
— Вся беда в том, — сказала я, — что, даже если я найду различия, нет никакой гарантии, что изменения не внесли мои сотрудники, когда обновляли записи. Мы все время вносим дополнения, даже через несколько месяцев после создания первой записи, потому что узнаем новую информацию в процессе работы.
— Наверное, тебе надо спросить своих сотрудников, тетя Кей. Узнай, вносили они изменения или нет. А если они скажут, что не вносили, а данные будут отличаться, тебе это поможет?
— Думаю, да.
Люси поменяла новый пароль на старый. Мы вышли из системы и очистили экран от компромата.
Было уже почти одиннадцать. Я позвонила Маргарет домой. У нее изменился голос, когда я задала вопрос об экспорте дисков и о том, не сохранились ли файлы, не менявшиеся с тех пор, как произошел взлом компьютера.
Маргарет сказала то, что я и ожидала от нее услышать:
— Нет, доктор Скарпетта. Мы не храним старые файлы. Мы экспортируем новые данные в конце каждого рабочего дня, старые файлы обнуляются, а затем мы их обновляем.
— Вот черт. Мне нужна версия базы данных, которая не обновлялась последние несколько недель.
Молчание.
— Подождите минутку, — промямлила системный администратор. — У меня дома должен быть один файл…
— Какой именно?
— Не знаю, — раздумывала Маргарет. — Кажется, данные шестимесячной давности. Департаменту статистики нужна информация, и недели две назад я экспериментировала: импортировала официально зарегистрированные данные из одного раздела и скачивала все данные по последним убийствам в файл, чтобы посмотреть, как это будет выглядеть. В конце концов, они ждут, чтобы я скинула им информацию прямо в главный компьютер.
— Сколько недель назад? — перебила я. — Сколько недель назад ты скачивала данные?
— Это было точно первого числа… сейчас… кажется, первого июня.
Мои нервы звенели, как натянутые струны. Я должна знать! Если я выясню все наверняка, с меня и моих подчиненных как минимум снимут обвинение в утечках информации. Если бы я могла доказать, что данные были изменены после выхода статьи Эбби!
— Маргарет, мне немедленно нужна распечатка этого файла.
Маргарет надолго замолчала. Когда она наконец подала голос, последний звучал весьма неуверенно:
— Это довольно сложная процедура.
Снова молчание.
— Но я постараюсь подготовить распечатку завтра. Прямо с утра этим займусь.
Бросив взгляд на часы, я набрала номер пейджера Эбби.
— Эбби, я в курсе, что неразглашение имен осведомителей — дело святое, однако мне нужно кое-что выяснить.
Журналистка не ответила.
— В своей статье об убийстве Бренды Степп вы писали, что женщина была задушена коричневым поясом из ткани. Откуда вам это известно?
— Я не в праве…
— Эбби, прошу вас. Это очень важно. Просто назовите источник.