***
РЕИМА ВЕРТАНЕН
Ордер на обыск лежал на столе, заверенный подписью судьи Мальстрёма. Сухой документ, несколько страниц юридических формулировок, но для Реймы он значил больше, чем все улики, собранные за последние трое суток. Это был ключ. — Группа готова, — Константа вошла в кабинет, стряхивая капли дождя с волос. — Шесть человек. Двое останутся на периметре, четверо войдут внутрь. Реима кивнул, не отрывая взгляда от карты промышленного района, разложенной на столе. — Какова позиция «Сигмы»? — Официально — консалтинговые услуги в сфере безопасности. Аудит, пентесты, обучение персонала. На практике... — Константа пожала плечами. — Судя по нашим источникам, они берутся за любую работу, если цена правильная. — Включая корпоративный шпионаж? — Включая всё, за что платят. Реима посмотрел на часы. Девять тридцать две. Операция начнётся в одиннадцать. — Что сказал наш инженер? — спросил он. Константа замялась. Реима заметил это — лёгкую заминку, прежде чем она заговорила. — Его брата похитили. Реима медленно поднял голову. — Когда? — Сегодня утром. Пока он был на разведке у офиса «Сигмы». — И он не пришёл в полицию? — Он считает, что официальное расследование займёт слишком много времени. Реима выругался сквозь зубы. Гражданские. Всегда одно и то же. Они думают, что могут справиться сами, что их личная трагедия важнее процедур, что правила существуют для кого-то другого. — Где он сейчас? — Проверяет какие-то логи. Сказал, что нашёл подмену данных на корпоративном сервере. — Подмену? — Файлы с несовпадающими контрольными суммами. Кто-то редактировал записи после создания. Реима задумался. Это было интересно. Если кто-то пытался скрыть следы на сервере обновлений, значит, там было что скрывать. И этот «кто-то» имел доступ к внутренним системам корпорации. — Дай ему время, — сказал он наконец. — Но после обыска — он приходит сюда и даёт показания. Всё, что знает. Без исключений. Константа кивнула. — Я ему уже сказала. — Хорошо. — Реима встал и надел пиджак. — Едем. У нас есть работа.***
Офис «Сигмы Секьюрити» выглядел обыденно. Слишком обыденно для организации, подозреваемой в причастности к массовому убийству. Одноэтажное кирпичное здание, тусклая вывеска, три машины на парковке. Ничего, что указывало бы на криминальную деятельность. Но именно такие места и были самыми опасными. Те, что прятались на виду. Группа захвата окружила здание за пять минут до начала операции. Двое на крыше соседнего склада, двое у чёрного хода, остальные — у главного входа. Реима и Константа стояли у полицейского фургона, наблюдая за развитием событий через мониторы. — На месте, — прохрипела рация. — Готовы к входу. — Вперёд, — скомандовал Реима. Всё произошло быстро. Слишком быстро. Дверь вылетела с первого удара тарана. Крики «Полиция! Всем на пол!» разнеслись по зданию. Несколько секунд хаоса, потом — тишина. — Здание зачищено, — доложил голос в рации. — Четверо задержанных. Оружия не обнаружено. Реима нахмурился. Четверо? Он ожидал больше. Гораздо больше. Они с Константой вошли внутрь через пять минут, когда задержанных уже вывели на улицу в наручниках. Здание оказалось почти пустым — несколько рабочих столов, компьютеры, шкафы с документами. Ничего, что указывало бы на масштабную операцию. — Это не то, — сказала Константа, оглядываясь. — Слишком чисто. — Слишком чисто, — согласился Реима. — Они знали, что мы придём. Один из офицеров подошёл к ним, держа в руках стопку папок. — Детектив, посмотрите на это. Реима взял верхнюю папку и раскрыл её. Финансовые отчёты. Банковские выписки. Платёжные поручения. И всё вело к одному человеку. — Виталий Громов, — прочитал он вслух. — Менеджер среднего звена в отделе снабжения корпорации «N». Константа заглянула ему через плечо. — Это тот, кто делегировал подписи? — Нет. Тот, кто, судя по этим документам, организовал всю схему закупки нелегальных комплектующей. Но что-то было не так. Реима чувствовал это. Документы выглядели слишком... удобно. Слишком аккуратно подобраны. Как будто кто-то специально оставил их на видном месте. — Проверьте подлинность, — приказал он офицеру. — Все документы — на экспертизу. И найдите мне этого Громова.***
РУМИТ
Я вернулся домой после встречи с Константой и заперся в кабинете. На столе передо мной лежал ноутбук с открытыми файлами логов, скачанными прошлой ночью. Рядом — блокнот с заметками, несколько листов бумаги с распечатанными шестнадцатеричными кодами и чашка кофе, давно остывшая. Дом казался пустым. Нечеловечески пустым. Без Али его стены словно сжались, а тишина стала почти осязаемой. Я заставил себя сосредоточиться на экране. Логи сервера INT_UPDATE_SRV_03 содержали записи за последние три месяца. Тысячи строк: загрузки обновлений, авторизации пользователей, изменения конфигураций. Большинство из них были рутинными — стандартная работа серверной инфраструктуры. Но некоторые строки отличались. Я заметил это ещё прошлой ночью, когда искал следы злонамеренного модуля. Несколько записей имели временные метки, которые не совпадали с соседними. Файлы, якобы созданные в начале июня, имели внутренние метаданные, указывающие на редактирование в последние дни. Кто-то переписывал историю. Я запустил скрипт проверки контрольных сумм — простую утилиту, которую написал сам несколько лет назад для аудита серверов. Она сравнивала хеши файлов с эталонными значениями, хранящимися в защищённом журнале. Результат появился через несколько минут. Семнадцать файлов с несовпадающими контрольными суммами. Семнадцать записей, которые были изменены после создания. И все они касались одного периода: с пятнадцатого по двадцать третье марта. Март. Те самые накладные, о которых говорил Бен. Я открыл первый изменённый файл. Это был лог авторизации — записи о входах в систему под различными учётными данными. Исходная версия должна была показывать, кто именно загружал файлы на сервер в указанный период. Но изменённая версия содержала другие имена. Виталий Громов. Отдел снабжения. Двадцать три записи о входе в систему за восемь дней. Громов? Это имя ничего мне не говорило. Я проработал в корпорации «N» почти десять лет и знал большинство ключевых сотрудников. Громов в их число не входил. Я открыл корпоративный справочник на своём личном компьютере — тот, что хранился в офлайн-копии, сделанной месяц назад. Поиск по фамилии дал результат. Виталий Громов. Специалист по закупкам. Принят на работу четырнадцатого февраля текущего года. Уволен первого июля. Уволен. За две недели после презентации. Совпадение? Я давно перестал верить в совпадения. Я загрузил оригинальную версию лога — ту, что хранилась в резервной копии, которую мне удалось достать через ключи Виктора. Сравнение двух версий заняло несколько секунд. В оригинальной версии имени Громова не было. Вместо него стояли другие записи. Записи, которые указывали на совершенно другого человека. Учётная запись ADM_SPECIAL_01. Служебный аккаунт отдела специальных проектов. Того самого отдела, чьим сертификатом был подписан убийственный модуль. Кто-то подменил логи, чтобы все следы вели к Громову — мелкому сотруднику, который удобно был уволен до трагедии. Козёл отпущения. Ложный след. Но зачем оставлять такую грубую подмену? Любой специалист с моей квалификацией заметил бы несоответствие контрольных сумм. Если только... Если только они хотели, чтобы я это заметил. Холодок пробежал по спине. Ловушка. Константа была права. Меня направляли. Показывали ложную цель, чтобы отвести от настоящей. И одновременно — наблюдали за моими действиями. Мой корпоративный телефон лежал в углу комнаты, под тканью. Но если они следили за моими перемещениями, то наверняка имели и другие способы мониторинга. Умный дом? Камеры наблюдения в районе? Или что-то ещё более изощрённое? Телефон на столе зазвонил. Не мой — тот, который я использовал для связи с Виктором и другими контактами, о которых корпорация не знала. Незнакомый номер. Я поднял трубку. — Да? — Румит? — голос был искажён, пропущен через какой-то фильтр. — Слушай внимательно. У тебя есть то, что нам нужно. А у нас есть то, что нужно тебе. Сердце пропустило удар. — Где мой брат? — В безопасности. Пока. — Что вам нужно? — Все копии логов, которые ты скачал с сервера. Все записи анализа. Все данные о злонамеренном модуле. И твоё молчание. — А взамен? — Взамен ты получишь своего брата живым. И возможность забыть обо всём этом. Я молчал. Мысли неслись в голове, сталкиваясь друг с другом. — Как я узнаю, что он жив? Пауза. Потом — щелчок. И голос Али. — Рум? — Али! Ты в порядке? — Да, я... — его голос оборвался. Снова щелчок. Снова искажённый голос. — Убедился? У тебя есть двенадцать часов. Оставь все материалы в камере хранения на Центральном вокзале. Ячейка двести сорок семь. Код — дата смерти вашей матери. После этого уезжай из города. Надолго. — Откуда вы знаете... — Мы знаем всё, Румит. Абсолютно всё. Твоя карьера, твоя семья, твои секреты. Если ты попытаешься связаться с полицией или продолжишь расследование — твой брат умрёт. И это будет не быстрая смерть. Линия отключилась. Я сидел неподвижно, глядя на телефон в своей руке. Двенадцать часов. Ячейка двести сорок семь. Дата смерти матери. Они знали. Они знали то, что знали только мы с Али. Это означало одно из двух: либо за нами следили очень, очень долго, либо... либо кто-то из близких к нам людей был на их стороне. Я встал и подошёл к окну. Улица выглядела обычной — редкие прохожие, припаркованные машины, мокрый асфальт. Ничего подозрительного. Но я знал, что за мной наблюдают. Сейчас, в эту самую минуту. Двенадцать часов. Я мог отдать им всё. Стереть файлы, забрать брата, уехать. Начать новую жизнь где-нибудь далеко отсюда. Забыть о двадцати трупах в зале презентаций, о списке «ДЕСЯТЬ ТАИНСТВ», о надписи «Кто следующий?», сделанной кровью. Но тогда убийцы останутся безнаказанными. И рано или поздно — они придут за мной снова. За теми, кто знает. За теми, чьи имена в списке. Седьмое имя. Моё имя. Я достал второй телефон и набрал номер Константы. Три гудка. Четыре. — Слушаю. — Они позвонили, — сказал я. — Требуют обмен. Данные на Али. Долгая пауза. — Когда? — Двенадцать часов. — Условия? — Камера хранения на Центральном вокзале. Ячейка двести сорок семь. После этого — уехать из города. Я слышал, как она дышит в трубку. Думает. Просчитывает варианты. — Мы можем организовать засаду, — сказала она наконец. — Они наблюдают за мной. Если я приду не один — они убьют его. — Тогда что ты предлагаешь? Я посмотрел на экран ноутбука. На семнадцать изменённых файлов. На имя Виталия Громова, которое кто-то так старательно подставил. — Дай мне номер Вертанена. Мне нужно знать, что они нашли при обыске.***
РЕИМА ВЕРТАНЕН
Экспертиза подтвердила худшие опасения. Реима сидел в своём кабинете, глядя на разложенные перед ним документы. Заключение криминалистов было однозначным: большинство финансовых документов, найденных в офисе «Сигмы», были подделкой. Качественной, профессиональной подделкой, но всё же — фальсификатом. Бумага — нового производства, хотя документы датировались прошлым годом. Чернила — нестандартного состава, не совпадающего с теми, что использовались в корпорации «N». Подписи — выполнены одной рукой, хотя принадлежали якобы разным людям. Кто-то очень постарался, чтобы все следы вели к Виталию Громову. Телефон на столе зазвонил. — Вертанен. — Детектив, это Румит. Реима выпрямился в кресле. — Я слышал о вашем брате. Мне жаль. — Они позвонили. Требуют обмен. — Какие условия? Румит рассказал ему всё — звонок с искажённым голосом, короткий разговор с Али, требования и сроки. Реима слушал, не перебивая, и его лицо становилось всё мрачнее. — Двенадцать часов — это меньше, чем нам нужно для полноценной операции, — сказал он, когда Румит закончил. — Я знаю. Но у меня есть информация, которая может помочь. — Какая? — Логи, которые я скачал с сервера, были подменены. Кто-то отредактировал записи, чтобы все следы вели к человеку по имени Виталий Громов. Реима почувствовал, как что-то щёлкнуло у него в голове. Пазл начинал складываться. — Громов. Мы нашли его имя в документах при обыске. — Эти документы — фальшивка, — сказал Румит уверенно. — Так же, как и подмена логов. Кто-то создал ложный след, чтобы отвести внимание от настоящего виновника. — Кто этот виновник? Долгая пауза. — Я ещё не знаю. Но оригинальные логи указывают на служебную учётную запись отдела специальных проектов. ADM_SPECIAL_01. Это та же учётная запись, которая использовалась для подписи злонамеренного модуля. Отдел специальных проектов. Реима знал это название. Оно всплывало в нескольких отчётах о деятельности корпорации «N» — закрытое подразделение, подчинявшееся напрямую руководству компании. То, чем они занимались, было окутано завесой корпоративной тайны. — Кто имеет доступ к этой учётной записи? — спросил он. — Официально — пять человек. Руководители отделов разработки, безопасности и специальных проектов. Плюс двое из правления. — Соловьёвы? — Двое из трёх. Артём и Алексей. Братья Соловьёвы. Совладельцы корпорации. Люди, которые организовали презентацию, на которой погибли более двадцати человек. — Вы думаете, что кто-то из Соловьёвых причастен? — спросил Реима. — Я ничего не думаю, — ответил Румит. — Я анализирую данные. И данные говорят, что кто-то с высоким уровнем доступа организовал эту атаку. И этот же кто-то сейчас пытается замести следы. Реима потёр переносицу. Голова гудела от недосыпа и перенапряжения. — Что вы собираетесь делать? — спросил он. — Найти оригинальный источник записей. Где-то должна храниться незатронутая резервная копия — та, которую не успели или не смогли изменить. И найти её до того, как истечёт срок ультиматума. — Это опасно. — Мой брат в заложниках. У меня нет выбора. Реима молчал несколько секунд. Потом принял решение. — Мы не можем официально участвовать в несанкционированной операции. Но... если вы случайно обнаружите что-то важное и сообщите нам, мы сможем действовать быстро. — Понял. — И Румит... будьте осторожны. Эти люди, судя по всему, не остановятся ни перед чем. — Я знаю. Линия отключилась. Реима откинулся на спинку кресла и посмотрел на доску с фотографиями и схемами, висевшую на стене. Маржчкович. Презентация. Взорвавшиеся телефоны. Список «ДЕСЯТЬ ТАИНСТВ». Всё это было связано — он чувствовал это каждой клеткой своего тела. Но связь ускользала. Пряталась за ложными следами и подделанными документами. Константа вошла в кабинет без стука. — Громова нашли, — сказала она. — Где? — В морге. Его тело выловили из реки три дня назад. Официальная версия — самоубийство. Реима медленно выдохнул. — Конечно. Самоубийство. — Что будем делать? Он встал и надел пиджак. — Едем в морг. Хочу посмотреть на тело. И найди мне всё, что есть на отдел специальных проектов корпорации «N». Всё. Вплоть до того, какой кофе они пьют.***
РУМИТ
До истечения ультиматума оставалось девять часов. Я сидел в машине напротив здания, в котором располагался архив корпорации «N». Массивное строение из серого бетона, похожее на бункер, — здесь хранились резервные копии всех данных компании за последние двадцать лет. Магнитные ленты, оптические диски, старые жёсткие накопители. Всё, что было создано в цифровом формате, в конечном счёте оказывалось здесь. И где-то среди этих терабайтов информации находились оригинальные логи. Те, которые не успели или не смогли изменить. Проблема была в том, что после презентации мой доступ к корпоративным объектам был аннулирован. Пропуск заблокирован, биометрия удалена из базы, учётные записи деактивированы. Официально я всё ещё числился сотрудником — но сотрудником в административном отпуске, без права доступа к инфраструктуре. Впрочем, у меня был план. Виктор. Мой бывший коллега, который уволился три года назад из-за разногласий с руководством. Он знал системы корпорации лучше, чем кто-либо — потому что сам их проектировал. И он всё ещё имел «резервные каналы», как он их называл. Бэкдоры, которые он оставил на случай, если понадобится срочный доступ. Я написал ему ещё прошлой ночью. Он ответил утром — коротко, сухо, но по существу. «Архив — автономная система. Нет связи с основной сетью. Физический доступ обязателен. Охрана — двое на смену. Камеры — слепые зоны в северном крыле. Код на дверь служебного входа — 7294. Удачи.» Северное крыло. Слепые зоны. Код. Я вышел из машины и направился к зданию, стараясь двигаться спокойно и уверенно. Как человек, который знает, куда идёт и зачем. Служебный вход находился с тыльной стороны здания, скрытый от главной улицы рядом мусорных контейнеров. Дверь — металлическая, без ручки снаружи. Рядом — цифровая панель. 7294. Щелчок. Зелёный огонёк. Дверь поддалась. Внутри было темно и прохладно. Коридор, освещённый аварийными лампами, уходил вглубь здания. Пахло пылью и озоном — характерный запах серверных помещений. Я двинулся вперёд, ориентируясь по схеме, которую запомнил ещё в годы работы с Виктором. Северное крыло. Секция резервного хранения. Стеллажи с лентами. Камеры располагались на потолке через каждые двадцать метров. Но между четвёртой и пятой секциями был разрыв — технический коридор, который не попадал в поле зрения ни одной из них. Слепая зона. Я нырнул в этот коридор и оказался перед ещё одной дверью. Эта была не заперта — просто тяжёлая металлическая створка, которая открывалась с натужным скрипом. За дверью располагалось хранилище. Ряды стеллажей, уходящие в темноту. Тысячи коробок с магнитными лентами, аккуратно промаркированных датами и кодами проектов. Где-то здесь были резервные копии сервера обновлений. Те, которые делались автоматически каждую неделю и хранились в оффлайне. Мне нужен был март. Неделя с пятнадцатого по двадцать первое. Я включил фонарик на телефоне и начал методично просматривать маркировки. Коробки были организованы по датам и отделам. Отдел разработки. Отдел тестирования. Отдел безопасности... Отдел специальных проектов. Целая секция, отгороженная от остальных металлической решёткой с электронным замком. Внутри — около сотни коробок, датированных последними пятью годами. Замок. Ещё один замок. Я попробовал код Виктора. Не сработало. Эта секция имела отдельную систему доступа. Но замок был старой модели — я узнал его. SZ-440, производства компании «Штальберг». Мы использовали такие же в нашем офисе до того, как перешли на биометрию. И я знал их слабое место. Достав из кармана мультитул, я снял крышку панели и обнажил контактную плату. Два провода — красный и синий. Если замкнуть их в правильной последовательности... Щелчок. Решётка отъехала в сторону. Я шагнул внутрь и начал искать. Март. Пятнадцатое — двадцать первое. INT_UPDATE_SRV_03. Коробка нашлась на третьей полке снизу. Пыльная картонная упаковка с бледной наклейкой: «SRV_BACKUP_03/15-03/21 — SPEC_PROJ». Я открыл её. Внутри лежали три магнитные ленты в защитных футлярах. Оригинальные резервные копии — те самые, которые должны были содержать неизменённые логи. Я сунул одну из лент в карман и уже собирался уходить, когда услышал звук. Шаги. В коридоре за дверью. Приближающиеся. Я выключил фонарик и прижался к стеллажу, стараясь не дышать. Шаги остановились у двери. Потом — голоса. Два мужских голоса, приглушённых толстым металлом. — ... сказал, что видел свет. — Здесь никого не должно быть. Смена Петровича только через час. — Проверим? Пауза. Потом — звук открывающейся двери. Свет фонариков прорезал темноту хранилища. Я отступил глубже в тень, между двумя стеллажами, и замер. Сердце колотилось так громко, что казалось — его должны услышать. Охранники вошли внутрь. Два луча света методично обшаривали ряды коробок, приближаясь к моему укрытию. — Чисто, — сказал один из них. — Говорил же, померещилось. — Подожди. Решётка специальной секции открыта. Шаги. Прямо к тому месту, где я стоял. Я перестал дышать. Луч света прошёлся по стеллажу в полуметре от моего лица. Потом сместился влево. — Опять эти замки барахлят, — проворчал охранник. — Третий раз за неделю. — Надо написать заявку на ремонт. — Напишу. Пойдём, у меня кофе стынет. Шаги удалились. Дверь закрылась с глухим стуком. Я простоял неподвижно ещё минуту, прислушиваясь. Тишина. Потом медленно, стараясь не издавать ни звука, я двинулся к выходу.
***
Через полчаса я сидел в машине, припаркованной в трёх кварталах от архива. Магнитная лента лежала на соседнем сиденье — маленький пластиковый футляр, который мог содержать ответы на все вопросы. Или не содержать ничего. Мне нужен был считыватель лент. Старая технология, которую уже почти не использовали. Но я знал, где его найти. Виктор. Я набрал его номер. Три гудка. — Да? — Это Румит. Мне нужна твоя помощь. Долгая пауза. — Ты получил ленту? — Да. — Приезжай. Адрес помнишь? — Помню. Линия отключилась. До истечения ультиматума оставалось семь часов. Я завёл машину и выехал на дорогу. Впереди лежал длинный путь через ночной город — к человеку, который, возможно, был последним, кому я мог доверять. Или первым, кто меня предаст. В зеркале заднего вида мелькнули фары. Машина, которая стояла у обочины, тронулась следом за мной. Я ускорился.