– У Пита свои тараканы в голове. Ты привыкнешь. Я его сто лет знаю. – Он выглянул в коридор. – Да куда этот Марино, черт возьми, запропастился? Его что, волной смыло?
Уэсли покончил с неприятными делами в отделе судмедэкспертизы и канул в солнечный полдень – ему предстояли не менее неприятные дела.
Мы перестали ждать Марино – он точно куда-то провалился. Впрочем, у меня и не было времени размышлять над его странным исчезновением, потому что ко мне в кабинет, как раз когда я запирала ящик стола, вошла Роза.
По тому, как Роза поджала губы, я поняла, что ее сообщение меня не обрадует и она об этом знает. После долгой тяжелой паузы Роза произнесла:
– Доктор Скарпетта, Маргарет вас ищет. Она очень просила меня сразу же, как у вас закончится собрание, сказать вам об этом.
Мое лицо выдало меня прежде, чем я успела подумать о том, что хорошо бы скрыть раздражение. Меня поджидали несколько трупов, предназначенных к вскрытию, и чертова куча телефонных звонков. И без того работы на десятерых, а тут еще Маргарет с какой-то ерундой.
Роза вручила мне стопку документов на подпись и продолжала стоять над душой и буравить меня сквозь очки. Наконец она не выдержала и сказала менторским тоном:
– Маргарет у себя. По-моему, дело не терпит отлагательства.
Роза наверняка знала, что это за дело (она вообще всегда знала, что происходит в офисе), но мне сообщать не собиралась. И хотя я не могла поставить ей это в вину, меня здорово раздражали ее замашки школьной директрисы и командный тон. Нет чтобы сказать прямо! Но Роза ни за что не хотела приносить плохие новости. Наверное, годы работы с моим предшественником, доктором Кэгни, научили ее осторожности.
Кабинет нашего системного администратора Маргарет находился в центральной части здания. Стены в этой маленькой комнатке, отличавшейся спартанской обстановкой, были выкрашены той же тусклой бежевой краской, что и в остальных кабинетах. Пол, выложенный темно-зеленой керамической плиткой, постоянно казался пыльным независимо от частоты уборок. На каждой более или менее пригодной для этого поверхности громоздились кипы распечаток, из шкафа чуть не вываливались инструкции, кабели, картриджи и дискетницы. Ничего личного – ни фотографий, ни постеров, ни безделушек. Никогда не могла представить, как Маргарет терпит этот канцелярский бардак. Впрочем, насколько мне известно, все компьютерщики таковы.
Маргарет сидела спиной к двери, уставясь в монитор. На коленях она держала практическое руководство по программированию. Повернувшись вместе с креслом и увидев меня, Маргарет подвинулась. Ее лицо было мрачно, короткие темные волосы растрепаны, будто она их ерошила, в глазах застыло отчаяние.
– Я с утра была на собрании, – начала Маргарет. – А когда вернулась, увидела на экране вот это.
Она протянула мне распечатку с последовательностью команд, позволявших запросить базу данных. В первый момент я ничего не поняла: команда "Характеристики", список фамилий, несколько раз повторенная команда "Найти". Сначала "Найти" требовалось фамилию "Петерсен" и имя "Лори". Под этим запросом значился ответ программы: "Ничего не найдено". Затем некто запросил данные по всем погибшим, носившим фамилию Петерсен.
Лори Петерсен в списках не значилась – я еще не отдавала ее дело для занесения в базу данных.
– Маргарет, вы точно не давали программе эти команды?
– Разумеется, нет, – с достоинством произнесла Маргарет. – И никто не давал. Это невозможно.
Я напряглась.
– В прошлую пятницу перед уходом, – продолжала Маргарет, – я сделала то же самое, что всегда делаю в конце рабочего дня, – поставила компьютер в режим ожидания на случай, если вам понадобится связаться с офисом из дома. Никто не может зайти в программу, пока компьютер в этом режиме, разве что с другого компьютера через модем.
Дело постепенно прояснялось. Офисные компьютеры связаны с компьютером в кабинете Маргарет, сервером, как мы его называем, но не соединены с компьютером в министерстве здравоохранения и социальных служб, несмотря на настоятельные рекомендации начальства. Я ни за что не пойду на такой шаг, потому что данные, хранящиеся у нас, секретные – дело касается тайны следствия. Если перекачать их в главный компьютер, к базе данных которого имеют доступ служащие многочисленных отделений министерства, проблем с безопасностью не оберешься.
– Из дома я не связывалась с офисом, – сказала я.
– Не сомневаюсь, – отозвалась Маргарет. – Зачем бы вы стали набирать эти команды? Вам-то лучше других известно, что дело Лори Петерсен еще не внесено в базу данных. Это сделали не вы, и не другие служащие, и не врачи, что у нас работают. Они бы при всем желании не смогли – ведь все компьютеры, кроме вашего и того, который стоит в морге, просто ящики.
Маргарет напомнила мне, что "просто ящики" состоят из монитора и клавиатуры, подключенных к серверу. Если отключить сервер или поставить его в режим ожидания, остальные компьютеры тоже отключатся или будут находиться в режиме ожидания. Иными словами, все компьютеры в офисе были в режиме ожидания с вечера пятницы до убийства Лори Петерсен.
Попытка взлома произошла либо в выходные, либо сегодня рано утром.
Значит, у нас появился шпион.
Этот шпион хорошо знал, что мы используем под базу данных одну из самых популярных программ, которую совсем не сложно освоить. Удаленный доступ к домашнему компьютеру Маргарет был аналогичен удаленному доступу в домашнюю директорию министерства – она сделала это, чтобы не напрягаться лишний раз. Если в вашем компьютере соответствующее программное обеспечение, если у вас модем, совместимый с модемом нашего сервера, если вам известно, что Маргарет – наш системный администратор, и если вы наберете ее номер удаленного доступа, вы можете подключиться к компьютеру Маргарет. Но не более того. Ни к другим компьютерам, ни к базе данных доступа вы не получите. Даже в электронную почту залезть не сможете, если не знаете имен и паролей пользователей.
Маргарет смотрела на экран сквозь очки с дымчатыми стеклами, хмурилась и грызла ноготь большого пальца.
Я пододвинула стул и села.
– Как это могло случиться? Ведь взломщику были нужны имя и пароль пользователя. Откуда он мог их узнать?
– Ума не приложу. Имя и пароль знают всего несколько человек – я, вы, другие врачи и служащие, которые вносят информацию в базу данных. А имена пользователей и пароли у нас не те, что я официально зарегистрировала в базе.
Несмотря на то что все остальные пользователи были подключены к такой же, как у меня, сети, у них имелась своя база данных, но не было открытого доступа к серверу. Непохоже было (если честно, я даже представить себе такого не могла), что кто-то из моего начальства пытался получить информацию подобным способом.
– Может быть, взломщик просто угадал или вычислил пароль? – робко предположила я.
Маргарет отрицательно покачала головой.
– Исключено. Я сама пробовала. Как-то я забыла измененный пароль для электронной почты и пыталась его вспомнить, но после трех неудачных попыток компьютер перестал реагировать, и телефонная связь прервалась. В итоге пароль пришлось сменить. Вдобавок эта версия базы данных очень не любит нелегальных вторжений. После определенного количества попыток угадать пароль с целью проникнуть в систему или получить доступ к таблице на экране появляется окно "Ошибка", вылезает таймер с обратным отсчетом времени, и по истечении этого времени, если не ввести правильный пароль, вся база данных летит к чертям.
– А можно узнать пароль другим способом? Вдруг он записан где-нибудь? А что, если мы имеем дело с профессиональным программистом?
– Нет, этот номер не пройдет, – отрезала Маргарет. – Я не оставляю пароли где попало. Да, существует программа для хранения имен пользователей и паролей, но ее не так-то просто открыть – нужно понимать, что именно делаешь. В любом случае я эту систему давно удалила от греха подальше.