Обложка Ложный аларм

Ложный аларм

Artem Yankovskiy

0% прочитано
Стандартный
Artem Yankovskiy

Ложный аларм

Глава 1. Ложная тревога

Осень 2024 года.

Нью-Йорк дышал в ритме мегаполиса: снаружи бушевала осень, тонкий дождь сбегал по стеклу фасада, будто торопясь вниз, к лужам и неоновым отражениям. Где-то там — пробки, сирены, кофе навынос, чужие разговоры. Здесь же, в сердце информационного щита банка CityGroup, царила тишина, нарушаемая лишь шелестом клавиш и редким гудением серверных стоек за стеклянной перегородкой.

SOC-центр находился на двадцать втором этаже — помещении без окон, со звукоизоляцией и мягким, рассеянным светом. Воздух пах пластиком, кофе и чем-то едва уловимым, вроде озона от старых систем бесперебойного питания. На стене — панель с глобальной картой активности: зелёные точки, синие зоны, отдельные красные маркеры, как раздражения на коже. У каждого специалиста — по два, иногда три монитора, клавиатуры со стёртыми буквами, пластиковые карточки доступа, липкие заметки, брелоки, наушники. Рабочие места были отражением самих сотрудников.

У Джейсона, парня лет на шесть моложе Ричарда, стол выглядел как зона высадки хаоса: провода, термос, обёртка от энергетика, несколько разложенных бумажек со схемами Bash-автоматизации. Растрёпанные волосы, тёмная толстовка, с которой постоянно сползал капюшон. Его ноутбук был открыт, а в терминале — мигающий курсор рядом с незавершённой строкой for host in…. Он сидел с ногами на перекладине кресла, задумчиво глядя в монитор и почёсывая затылок. Периодически поглядывал на Ричарда — не враждебно, а с интересом, почти ученическим.

Анна — примерно одного возраста с Ричардом, противоположность. Её стол был стерилен: всё выровнено, систематизировано, блокнот с датой сегодняшнего дежурства, стакан с минеральной водой. На мониторах — в меру вкладок, в меру графиков. Она щёлкала мышкой с точностью хирурга и казалась той, кто может вызвать тревогу в любой системе лишь взглядом. Серьга в левом ухе блестела в свете потолочных ламп, а тёмный костюм подчёркивал строгость без занудства.

И был Ричард — тридцатилетний SOC-инженер, замкнутый и точный, словно синхронизированный с теми же циклами, что и серверы под его защитой.

Тот, кто приходил раньше всех. Садился за свой стол в углу, ближе к холодной стене. Носил поношенную толстовку с логотипом старой CTF-команды и джинсы, протёртые на коленях. Его монитор был завален метриками, логами, внутренними панелями, alert-таблицами. Всё выстроено вручную — ни одной лишней детали, никаких графических свистелок. Он пил кофе: чёрный, без сахара, из серого керамического стакана с отколотым краем.

Анна бросила на него взгляд:

— Ты опять не пришёл на вечеринку. Была пицца. И пиво. И даже торт с фаерволом сверху. — Её голос был сухим, но в нём чувствовался тёплый сарказм.

Ричард поднял брови, оторвался от графика событий и пожал плечами:

— Я… как-то… не люблю толпу.

— Толпа тебя не любит — это другое, — не унималась Анна. — Ты бы хоть для приличия зашёл. Там Джейсон рассказывал, как ты месяц назад поймал утечку в инфраструктуре отчётности.

— Это не я… это просто в логах было странное поведение сессий… — пробормотал он, чувствуя, как где-то внутри сжимается что-то тёплое и тяжёлое, похожее на стыд.

— И ты был единственный, кто это заметил. — Вмешался Джейсон, оживлённо. — Я даже реплей потом смотрел. Как ты вычислил SSH-сессию через нестандартный порт и восстановил сессию PAM из auditd — это было офигенно.

Ричард смутился. Отвёл взгляд. Сжал пальцы на стакане чуть сильнее, чем надо. Голос стал тише:

— Я просто делал свою работу.

— Да ты не просто, ты как машина. — Джейсон повернулся на стуле. — Я бы так хотел уметь видеть сигналы в потоке. У меня всё пока через grep и наудачу.

— Все мы через это проходили, — отрезала Анна. — Просто у кого-то чуть лучше глазомер. Или интуиция. Или обсессивно-компульсивное расстройство, не правда ли, Ричард?

Он улыбнулся неловко. Пожал плечами. Но внутри зашевелилось знакомое чувство: смесь стыда и укола. То, что другие считали талантом — он называл навязчивой потребностью всё держать под контролем. Пусть это просто Даже если это стоит сна.

Над головой негромко щёлкнул динамик, и раздался ровный голос дежурного алгоритма:

«Alert. Unauthorized access. PCI-DSS segment. Investigate immediately.»

Мониторы замерцали, на стене — красная метка. SOC-центр будто втянул воздух.

Ричард уже подался вперёд, пальцы легли на клавиатуру.

— Я разберусь. — Голос был твёрже обычного. Глубже.

Экран окрасился в тревожный оттенок янтаря. Система вывела детали: попытка доступа к защищённому сегменту PCI-DSS из пользовательской зоны. Время события: три минуты назад. IP-адрес внутренний. Учётная запись — привилегированная. Команда — sudo su в нестандартный момент, вне графика задач.

Ричард пробежался глазами по панели: тревога не всплыла бы без сигнатуры в SIEM, значит, сработал поведенческий шаблон. Не банальная ошибка, не ложный флаг. Что-то выбивалось из общего паттерна. Он уже прокручивал в голове возможные векторы: инсайдер? Подмена сессии? Ошибка конфигурации PAM? Нарушение политики учётных данных?

Курсор замер над сессией, запущенной с IP 10.37.118.44. Пользователь . На экране — пустое окно терминала с логами. Он запустил воспроизведение PAM-сессии, привязанной к идентификатору события. Строки побежали по экрану.

session opened for user root by (uid=1047)

command: su -

tty: pts/2

rhost=172.16.41.2

cwd=/opt/tools

Хэши бинарников совпадали. md5sum от su, bash, — без изменений. Структура доступа через sudo соответствовала. Никаких вызовов вне политики. Ни попытки эскалации, ни нетипичного поведения. Но чувство беспокойства не исчезало — наоборот, нарастало.

Он переключился на уровень сетевого стека. В NetFlow — обычный трафик, SSH-соединение шло по стандартному порту, зашифровано. Логины совпадали. Он открыл журнал аудита — и тут, на полпути между строками, началась боль.

Сначала — как будто усталость. Тяжесть в лобной части. Затем — давление. Острые тени по краям зрения. Мониторы будто стали чуть дальше, как сквозь стекло с искажением.

Он попытался сфокусироваться, но буквы на экране начали смещаться. Строка сессии раздваивалась. Он моргнул — и экран мигнул в ответ.

sock = socket(AF_INET, SOCK_STREAM, 0);

connect(sock, &addr, sizeof(addr));

exec(“/bin/sh”);

Код промелькнул на экране — или в его голове? Он знал эти строки. Не из журнала. Из чего-то иного. Он не мог вспомнить, откуда, но они казались… знакомыми. Почерк был чужим, но смысл — до боли родным.

Ричард отпрянул, потёр виски, стиснул зубы. Пульсация прошла по затылку. Пальцы дрожали. В ушах звенело. Экран снова был обычным. Просто PAM-логи. Просто текст.

Анна посмотрела на него прищурившись:

— Код под глазами пляшет, Ричард?

Он не сразу ответил. Слишком много звуков. Света. Дыхание сбилось.

— Что там у тебя? — спросил Джейсон, привстав.

— Пока ничего… — с трудом выговорил он. — Просто… сейчас…

Он замолк. Нажал клавишу для отметки сессии. Оставил комментарий. Глубоко вдохнул. Взгляд метнулся к панели. Время реакции — уже вышло за норматив.

— Анна… подключись. У меня с головой не очень.

Она кивнула. Уже без подколок.

— Джейсон, ты тоже. Посмотрим вместе. Возможно, ложная тревога. Но надо убедиться.

Ричард откинулся в кресле. Свет казался слишком ярким. Звук вентиляции — слишком громким. Всё было в порядке, говорили экраны. Но внутри что-то сбилось. Как хэш, что вдруг не совпал, хотя файл не менялся.

Анна быстро заняла соседнее место, плавно опустилась в кресло и подключилась к терминалу, не говоря ни слова. Джейсон устроился чуть в стороне, не мешая, но наблюдая с вниманием. Их экраны засветились — один в серо-синей палитре, другой с личной тёмной темой, в которой зелёные строки логов казались резче.

— Смотрю PAM и sudo, — отозвалась Анна, сухо.

— Я возьму NetFlow и arp-таблицы, — подхватил Джейсон.

Ричард молча наблюдал. Он уже чувствовал себя лишним. Его пальцы всё ещё дрожали, как будто остаточное напряжение от той вспышки кода всё ещё держало его изнутри. Но он не мешал — просто следил за тем, как они работают.

— Сессия от пришла с рабочей станции WKS-412 из общего отдела. IP совпадает. TTY совпадает. PAM-чек-лист — чистый, — прокомментировала Анна. Она не отвлекалась, говорила быстро, точно, безэмоционально.

— На arp-снимке всё в порядке. Адрес не дублируется. Переброса не вижу. DNS-резолв совпадает, — добавил Джейсон.

Анна нажала клавишу вызова. В линии появился гудок.

— Говорит SOC. Мы зафиксировали активность с вашей машины WKS-412 около десяти минут назад. Вы выполняли sudo-подключение к зоне PCI?

— Да, это я запускал. Был внеплановый апдейт скриптов, ошибка в расписании. Забыл сообщить, простите, — отозвался спокойный, немного усталый мужской голос на том конце.

Анна отключилась, повернулась к команде:

— Подтвердил. Легитимная активность. Просто не уведомил. Человеческий фактор.

Она бросила взгляд на Ричарда. В её голосе не было иронии:

— Ложный аларм.

Ричард кивнул. Всё действительно сходилось. Всё было в норме. Кроме одного — того, что он увидел. Или думал, что увидел. Того, чего не было.

Молча отметил событие как «ложную тревогу» в панели и закрыл вкладку. Голова всё ещё пульсировала, но слабее. Реальность понемногу возвращалась, вытесняя ту странную вспышку.

— Спасибо, — выдавил он, тихо, почти не глядя. Он не знал, за что именно благодарит — за помощь, за молчание, или за то, что никто не задал лишних вопросов.

Анна лишь кивнула. Джейсон чуть улыбнулся.

— Ты нас ещё и напугал. Сначала думал, ты упал в транс.

— Почти, — сухо отозвался Ричард и встал. — Я… отойду на минуту. Нужно умыться.

Он шагнул прочь из круга света мониторов — туда, где тусклое освещение коридора становилось мягче, звук вентиляции глуше, и воздух казался прохладнее. Где-то за дверями продолжало жить здание — равнодушное, многоэтажное, полное чужих дел и голосов.

Глава 2. Прокрутка

Июнь 2025 года.

Квартира находилась в жилом доме на Девятой авеню, ближе к углу 66-й улицы, где Вест-Сайд начинал терять свою аккуратную буржуазность и становился просто Нью-Йорком — шумным, перемешанным, равнодушным. С семнадцатого этажа открывался частичный вид на Центральный парк: узкая зелёная лента просвечивала между бетонными громадами, как воспоминание о природе в городе, который давно выбрал стекло и металл.

Свет в комнату проникал сквозь щели в плотных, давно не стиранных шторах — мутный, тусклый, с лёгкой желтизной, будто день ещё не проснулся до конца. Он не разрезал пространство, а затекал в него, оседая на пыльных поверхностях и застывших тенях. Обои — выцветшие, с пузырями у потолка и старыми полосами от мебели, переставленной много лет назад. На одной стене — ржавое пятно, где когда-то висел кондиционер.

Пол — тёмный ламинат, местами вздутый. Кресло оставило на нём глубокую царапину, и сейчас в эту расщелину втиснулся треснувший осколок CD-диска — мутный, с облупленным краем, покрытый пылью, как артефакт из жизни, которую он больше не проживает. У изножья кровати валялась стопка футболок, простыня сбилась в узел, матрас прогнулся у краёв, а пододеяльник был в катышках и пятнах от кофе. Кровать казалась пережившей больше, чем сам хозяин.

Монитор на столе у дальней стены — старый, с потёртым корпусом и облезшей рамкой, — мигал синим, как аварийный маячок. Стол из ИКЕА, собранный когда-то в спешке, шатался: одна ножка была подпёрта сложенной салфеткой. Поверхность липла к коже в одном месте — там когда-то пролили энергетик. Здесь же валялись упаковки от лапши, застывшие вилки, чек из супермаркета, застрявший между корпусом и клавиатурой. Запах — стойкий, но не резкий: смесь картона, несвежего воздуха и плесневелого кофе из кружки с трещиной.

Под столом — пара бутылок из-под пива, одна откатилась под старый рюкзак. Рядом лежал заелозенный коврик для мышки, края которого начали крошиться. На стене — след от когда-то сорванного постера. Все предметы говорили одно: хозяин здесь есть, но вряд ли живёт.

Кухонная зона отделена лишь формально — грязная стеклянная перегородка и серый напольный линолеум с разводами. Холодильник, покрытый старыми магнитами и облупившейся наклейкой NYU — напоминанием о тех временах, когда он учился на факультете кибербезопасности и ещё верил, что система — это нечто, что можно защитить, — гудел прерывисто, словно в обиде. На столешнице — потёки молока, нож со следами чего-то оранжевого, две кастрюли, в одной из которых, вероятно, был чили. Теперь — плесень и забвение.

Ричард спал. Он лежал на боку, спиной к свету, волосы растрёпаны, губы полуоткрыты. Его лицо в этом состоянии — детское, почти безмятежное, как будто тело ещё помнило, что такое отдых. Телефон внезапно завибрировал, затем раздался резкий сигнал будильника. Он подскочил, грохнул рукой по тумбочке, нашёл устройство, отключил звук.

— Отпуск… — бормочет он, зарывшись лицом в подушку. — Первый день…

Он замирает, осознавая: сам же и забыл отключить будильник. Эта мысль вызывает внезапную волну раздражения. Будто всё в порядке вещей — и даже собственный мозг не верит, что он вправе просто ничего не делать. Он морщится и снова смотрит в потолок. Воздух будто сгустился от бессмысленности всего происходящего.

Минут через десять он заставляет себя подняться — тело противится, будто само решило продолжать спать. Каждое движение даётся с натугой, как если бы он тянул вверх не только себя, но и гравитацию прожитых лет. Мысли рассыпаются, не успев оформиться — разум всё ещё где-то в подвешенном состоянии между сном и бессилием. Он идёт в ванную, не включая свет, словно не хочет видеть себя в зеркале раньше времени. Холодная вода в лицо, зубная паста без крышки. Он бреется небрежно, порезав подбородок. Зеркало тусклое, с каплями старого известкового налёта. На автомате включает кофемашину — с облупившейся кнопкой «start» и сколом на корпусе. Пока та греется, он роется в ящике в поисках кружки. Не найдя, моет ту, что стояла под монитором, с тёмным налётом на дне.

Кофе. Первый глоток. Он садится в кресло, поворачивается к столу. Мигающий экран гаснет и снова вспыхивает. Ричард морщится — и запускает браузер.

Новостная лента, автоматическая прокрутка. Одни и те же заголовки: выборы, климат, слияние компаний. И вдруг — короткая заметка: «Daily News взломан: на главной странице появился гном; злоумышленники сопроводили его издевательским посланием».

На экране — анимированная гифка. Мультяшный гном в зелёном колпаке, раскачиваясь на табурете, делает непристойный жест в сторону камеры и исчезает в клубке дыма. Внизу надпись белыми буквами: Owned by DwarF.

Голова начинает ныть. Тупая, тянущая боль, как от недосыпа — не острая, а вязкая, затекающая в затылок. Он щурится, тянется к клавише на корпусе и гасит экран. Медленно поднимается. С кружкой кофе идёт к балконной двери, отпирает замок, выходит наружу.

Балкон открытый — бетонный парапет в пятнах, с металлической трубой, шершавой от ржавчины. На полу — растрескавшаяся плитка, в щелях которой лежит выцветший пластиковый жетон от автомата, полурастворённый временем. Ветер цепляется за майку. Город шумит снизу — автобусы, гудки, обрывки чужих разговоров. Где-то вдалеке кричит чайка.

Слева — полоска Центрального парка. Зелень в дымке, туман ещё не до конца рассеялся. В утреннем свете она кажется почти нереальной — как напоминание о другой жизни, в которой он был кем-то другим.

Ричард смотрит вдаль. Его взгляд словно растворяется в зелени.

…а дальше, будто проваливаясь внутрь, он снова там: в том утре, когда всё только начиналось.

***

Конец мая. Утро. Центральный парк пробуждается в мягком свете — неярком, рассеянном, будто отражённом от стеклянных фасадов на другой стороне Манхэттена. Влага после ночного дождя ещё не испарилась, и воздух пахнет землёй, деревом, каплями, застрявшими в кронах. Где-то поблизости перекликаются птицы, слышны одиночные шаги, отголоски далёкого лая и шуршание шин по влажному асфальту.

Ричард бежит. Он дышит глубоко, чуть громко — не от усталости, от желания почувствовать, что он здесь. Его футболка NYU тёмная от пота, но ему всё равно. Колено отдаёт при каждом шаге, кроссовки изношены, шнурки разлохмачены, как и мысли. Он бежит не ради формы — ради тишины.

Точка старта — терраса Бетесда. Каменные колонны, ещё тёплые после ночи, отражения в воде фонтана, запах влажной листвы и хлебных булочек из ближайшей кофейни. Он держится вдоль озера, по гравийной дорожке, где утренние бегуны разминаются, собаки тащат хозяев вперёд, а туристы сонно щёлкают затворами камер.

И вдруг — она.

Ричард замечает девушку не сразу: рыжие волосы в тугом хвосте, майка, открывающая лопатки, чёткий ритм шага. Она не танцует на асфальте, не выпячивает технику — просто бежит, будто не думая. Идеально ровно. Ричард ускоряется и выходит с ней на один уровень.

— Утро как надо, — выдыхает он, чуть опережая себя и бросая быстрый взгляд вбок.

Она оборачивается на долю секунды, сдержанно улыбается. Улыбка — почти как команда «поняла».

— Погода держится. Пока, — отвечает. Голос немного хриплый, будто ещё не прогрет.

— Часто здесь бегаешь? — спрашивает он, стараясь говорить ровно, не сбиться с ритма.

— Только начала. Месяц, может. — Она делает короткую паузу. — Недавно переехала. Всё ещё привыкаю. Город не даёт поблажек.

— NYU?

— Да. Юрфак. Милана.

— Кибербез. Ричард. Третий курс.

— Ну, я пока только на первом. Ещё учусь не теряться.

Они бегут синхронно, будто по общей траектории, которую кто-то заранее проложил между факультетами и утренними привычками.

Параллельный бег. Она держится ровно, как будто заранее рассчитала темп. В движениях — экономия усилий и собранность. Не пытается понравиться, не вцепляется в тему — ведёт себя так, как будто знает, куда идёт и почему. Парень слышит её дыхание, ощущает, как шаги синхронизируются. Разговор цепляется за темы: университет, любимые профессора, смешные ситуации на парах. Она говорит чётко, не позволяя словам растекаться. Уверенная, сдержанная, но не холодная. Интонации точны, как удар по цели. В ней нет фальши. Иногда смеётся — негромко, через нос, будто контролируя даже спонтанность.

На дорожке у Коламбус-Сёркл шумно. Запах — обжигающий аромат свежеобжаренного кофе, перемешанный с тёплым тестом и сахаром — вырывается из приоткрытых окон ларьков. Машины гудят, кто-то громко разговаривает по телефону. Они сворачивают в Le Pain Quotidien — не договариваясь, будто кто-то подсказал обоим одновременно. Над дверью звенит колокольчик, и тепло кофейни накрывает, как плед.

Ричард берёт круассан, Милана — только американо. На маленьком столике между ними — белая салфетка, скрученная в спираль, два стаканчика, сахар в стеклянной банке и след от чужого локтя на деревянной столешнице. Они садятся у окна. За стеклом — прохожие в лёгких куртках, кто-то в худи, мимо проезжает велосипедист, кто-то смеётся, глядя в экран телефона. Внутри — шорох газет, стук фарфоровых чашек, гудение кофемашины.

— Ты всегда так рано встаёшь? — спрашивает она.

— Только в такие утренние окна, когда нет пар, — улыбается он. — Тогда город кажется честнее.

Она усмехается. Смотрит на него внимательно, но не оценивающе.

— Ты странный, — говорит она. — В хорошем смысле. Сдержанный, но не замкнутый.

— Это диагноз?

— Пока — просто наблюдение. — Она прищуривается, как будто ставит мысленную галочку.

Он чувствует, как с него слетает привычная защита. Не нужно быть умным, смешным или полезным. Прятаться за сарказмом — тоже не обязательно. Просто быть собой — и, на удивление, этого достаточно.

— Слушай, — говорит она и резко тянется к стойке, где стоит стакан с салфетками. Быстро отрывает уголок, чуть морщит нос, достаёт из кармана ручку. — Вот мой номер. Напиши, если захочешь пробежаться ещё. Или просто кофе.

Ричард кивает. Их пальцы почти касаются, когда он берёт бумажку. Он складывает её вдумчиво, словно это договор, и убирает в карман.

Они замолкают.

Он запоминает не слова. Не смысл — ощущение. Это не воспоминание, это как сон, в который хочется вернуться. Не к ней даже — к себе рядом с ней. Запоминает, как свет ложится на её плечо. Как она заправляет выбившуюся прядь за ухо. Как она смеётся — негромко, через нос, будто не решаясь вслух. И ещё — как легко дышится рядом с ней.

Когда они выходят, он чувствует: что-то внутри сместилось. Ненавязчиво. Едва заметно. Будто мир чуть повернулся.

Он держит салфетку в руке ещё минуту. Бумага тёплая, как будто запомнила прикосновение её пальцев. Потом — медленно и бережно убирает.

Видение колеблется, как отражение в воде — и медленно расплывается. Ричард моргает. Перед глазами — тот же балкон, тот же приглушённый шум улицы внизу. Он снова здесь.

***

В комнате тихо. Только гудение системного блока и глухие звуки с улицы: тормоза автобуса, ритмичный гудок, кто-то крикнул по имени — и снова тишина. Ричард сидит в кресле, полубоком, с кружкой, в которой давно остыл кофе. На экране — тёмная вкладка браузера, белое поле чата, полоса прокрутки.

Он листает. Форумы. Старые треды про баги в Linux, уязвимости в API, обсуждение патчей. Некоторые ники знакомы — были когда-то. Сейчас всё кажется чужим. Темы ускользают. Ничего не цепляет. Мысли не задерживаются, как вода на стекле.

Следом — YouTube. Ролики на тему хакинга, старые записи DEFCON, подборки провалов пентестов, интервью со Сноуденом. Один, другой, пятый. Потом алгоритмы подсовывают стендап, рекламу VPN, подборку взломов с музыкой. Он не останавливает. Пусть играет.

Ричард смотрит, но не видит. Звук просто есть. Как дождь за стеклом. Бессмысленный, не мешающий, не поддерживающий.

Экран расплывается. Голова гудит от усталости и ваты. Он ловит себя на мысли, что сел три часа назад. Или четыре. В углу монитора — 18:52. День ушёл. Без следа.

Он встаёт. Сначала неуверенно — ноги будто налились свинцом. Потом, почти машинально, открывает мессенджер. Пальцы замирают над клавиатурой. Открыт пустой чат, где когда-то переписывался с Дэвом, которого знал по pHDays. Последнее сообщение — два года назад: строчка кода и эмодзи ракеты. Он смотрит на неё долго. Потом закрывает. Не сейчас.

На автомате надевает куртку. Проверяет карманы. Захлопывает дверь.

Вестибюль. Скрип ручки, шаги по плитке. В лицо — тёплый уличный воздух, остатки дневного асфальта и запах еды из соседнего заведения. Небо уже потемнело, но свет фонарей ещё не режет. Нью-Йорк живёт, как всегда, без привязки к чужим состояниям.

Ричард поднимает руку. Такси останавливается почти сразу.

— Barcade на Вест-Двадцать-четвёртой, ближе к Восьмой авеню.

Он молчит, но внутри повторяет: пиво и аркады — чужая жизнь. Не его. Но сегодня это — лучше, чем остаться один на один с тишиной и собой.

Глава 3. Новый друг

На Вест-24-й улице, ближе к Восьмой авеню, под неоновой вывеской с пиксельным логотипом, располагался Barcade. Заведение пряталось в здании бывшего склада с потемневшей кирпичной кладкой и высокими, почти фабричными окнами. Под светом уличных фонарей стеклянная витрина отбрасывала мягкое сияние внутрь, где уже переливались цвета аркадных автоматов. У входа — меню на чёрной доске с пивными сортами, пара старых игровых постеров и металлическая ручка двери с отполированным блеском от сотен ладоней. Изнутри доносились прерывистый смех, глухие удары по кнопкам и гудение динамиков. Над входом витал слабый запах пиццы, а редкие капли недавнего дождя стекали с водостока. Такси проезжали мимо, отбрасывая жёлтые вспышки света по мокрому асфальту.

Как и следовало ожидать для пятничного вечера, Barcade гудел от голосов, музыки и звуков автоматов. Люди заполняли пространство между неоновыми экранами и стойкой, где выстраивалась очередь за крафтовым пивом. Воздух был густым — с запахами разогретых проводов, старого лака и дешёвого дезодоранта. Где-то в углу надрывался Mortal Kombat, перелистывая бойцов под звуки комментатора.

Ричард сидел один, втиснувшись в угловой столик у стены. К этому часу всё вокруг было уже занято. Полумрак, шум, чужие лица. Пиво горькое, как и положено. Он молчал, глядя в свой бокал, словно пытаясь уговорить себя, что это — нормальный вечер. Что можно просто посидеть, забыться, раствориться.

— Ты выглядишь как человек, который ненавидит игры, — произнёс кто-то рядом.

Ричард поднял глаза. Перед ним стоял мужчина лет тридцати с небольшим, высокий, светловолосый, в лёгком пиджаке поверх тёмной рубашки. Улыбка — белоснежная, подкупающая. В глазах — внимательность и уверенность.

— Ты не против, если я подсяду? Остальные столики, похоже, уже сдались. — Он кивнул в сторону толпы у стойки.

Ричард кивнул. Что-то в голосе этого человека было тёплым, ироничным. Немного театральным, но не фальшивым.

— Деннис, — протянул руку гость. Рукопожатие — твёрдое, но не доминирующее. — Я обещаю не мешать твоему погружению в пиво.

— Ричард, — ответил он, чуть смутившись.

— Знаешь, здесь всё-таки грех не сыграть. Mortal Kombat ждёт. Один раунд. Проигравший берёт следующий бокал.

Ричард попытался отшутиться, но под натиском лёгкой харизмы всё же встал. У автомата они оказались бок о бок, плечи почти касались, и в гуле шума он уловил лёгкий, дорогой парфюм Денниса — тонкий, но стойкий.

Экран зажёгся яркими цветами. Комментатор выкрикнул имена бойцов: Shao Kahn… Sub-Zero… Fight!

Ричард выбрал Sub-Zero — за холодную дистанцию. Пальцы путались, но потом будто нащупали ритм. Он бился сосредоточенно, звуки боя — удары, крики, спецэффекты — сливались с фоном бара. Экран мигнул: победа.

Ричард моргнул, не веря. На миг что-то кольнуло внутри — то ли удивление, то ли растерянность. Деннис стоял с той же полуулыбкой, без следа разочарования. Пожал плечами, отпил пива, будто это и было целью.

Возможно, атаки противника стали чуть медленнее, предсказуемее. Или это просто алкоголь стал действовать. Но пьянел он быстрее, чем замечал подобные детали.

— Реванш? — с той же полуулыбкой спросил Деннис.

Ричард кивнул. Они снова заняли позиции. На этот раз он не помнил, кого выбрал. Всё казалось слегка приглушённым — как через плёнку. Просто лёгкое покачивание и улыбка, которую он сам не заметил.

После двух партий — обе завершились победой Ричарда — они вернулись за столик. Деннис, с улыбкой кивнув, выполнил уговор и заказал ещё по бокалу. Напитки сменяли друг друга. Второй, третий — Ричард уже смеялся над историями Денниса, не замечая, что больше слушает, чем говорит.

— Так ты где работаешь? — спросил Деннис.

— В банке. CityGroup, SOC-инженер.

— Серьёзно? Безопасник? Да ты прямо мой коллега. Я в RedTeam работаю.

— А где?.. — начал Ричард, но локтем задел бокал. Стекло гулко звякнуло о край стола и разлетелось на куски, с хрустом осыпавшись на пол. Остатки пива растеклись по плитке, оставив тёмное пятно. Кто-то охнул, несколько человек обернулись. Шум на мгновение притих.

Появилась официантка — молодая, с кольцом в носу и планшетом в руках. Заметив беспорядок, она на секунду замерла, окинула взглядом пол и, не говоря ни слова, развернулась к стойке. Спустя минуту вернулась снова — уже с ведром, тряпкой и спокойным лицом.

— Всё в порядке? — спросила она, опускаясь рядом с лужей.

Ричард покраснел, не зная, куда деть руки. Деннис встал, придержал ведро и с лёгкостью помог собрать крупные осколки салфеткой.

— Простите моего друга, — сказал он, улыбнувшись, — он просто поражён, насколько вы сегодня очаровательны.

Она фыркнула, но с улыбкой. Убрав остатки, поставила новый бокал — чуть нажала, будто напоминая: «держи крепче».

Деннис подмигнул Ричарду:

— Что я говорил? Женщины любят безопасность — особенно если она в очках и с чувством юмора.

Ричард усмехнулся. Он чувствовал, как растворяется в тепле — будто тяжесть в груди таяла, а мышцы, наконец, позволили себе расслабиться. Гудение в голове стало почти уютным. Пятый бокал оставил лёгкий туман, но настроение было неожиданно светлым. Может, стоило и правда почаще выбираться в люди.

Под конец вечера, когда свет стал глуше, а люди начали расходиться, Деннис встал первым:

— Я на машине. Подкинуть?

— А… да, если нетрудно.

У входа Ричард на мгновение споткнулся о бордюр, Деннис поймал его за локоть.

— Осторожно. Я же не хочу терять своего нового друга в первый же день знакомства.

Ричард только усмехнулся и пошёл к машине. Где-то в груди тлело неясное ощущение — не тревожное, но будто за ним кто-то наблюдает, слегка приподняв бровь. Было непривычно, как легко всё пошло. Необычно… и приятно.

Глава 4. Где тонко

Утро в Нью-Йорке начиналось с гула кондиционеров и сдержанного шума мусоровозов. На Авеню А прохожие двигались вразнобой: кто-то в спортивной одежде, кто-то с кофе навынос, кто-то с усталым лицом и пластиковыми наушниками. У ларьков с бубликами пахло поджаренным тестом и сладким сиропом. У обочины притормозило такси — водитель, не выключая двигатель, громко спорил по телефону.

Ричард шёл по тротуару, держась ближе к стенам зданий. Липкий воздух цеплялся к коже, пыль поднималась от старых вентиляционных решёток. Возле круглосуточной прачечной из приоткрытой двери тянуло влажным паром и стиральным порошком. Кто-то громко выругался на другом конце улицы. От метро дул перегретый воздух. У киоска с прессой девушка листала журнал, не обращая внимания на мир вокруг.

Он не торопился. Отпуск шёл третий день, но не приносил ничего, кроме ощущения пустоты. Он вышел из квартиры просто потому, что не мог там больше находиться. Всё раздражало: тишина, экран, еда. Привычные занятия не спасали. Даже код казался чужим.

Он шёл, потому что стоять было хуже. День начинался, но не предлагал ничего, за что хотелось бы зацепиться.

Телефон завибрировал. Номер не определился, но голос был знакомый:

— Слушай, есть идея. Поехали на пляж? Рокавей-Бич. Я тебя научу стоять на доске.

— Кто это? — Ричард прищурился, пытаясь вспомнить.

— Деннис. Ну, ты что, забыл, как обыграл меня дважды в Mortal Kombat?

— Я плохо плаваю, — наконец ответил Ричард.

— Тем более! Надо срочно исправлять. Утопим страх, выловим удовольствие.

— Ты заедешь?

— Не-а. Я в Бруклине. Но ты справишься — метро, пересадка, час максимум.

— Я не уверен…

— Вот и отлично. Поехали. Я жду. Не тяни.

Связь оборвалась.

Он спустился в метро у Астор-Плейс. Ступени были влажными, скользкими, с плёнкой давно не мытых плиток. Рекламные панели мигали, одна из них застряла на фрейме со слоганом «Live More. Stress Less».

На платформе пахло горячим металлом, потом и старым жиром. Поезд подошёл с лязгом. В вагоне было душно, кондиционер гудел, но толку от него было мало. Подросток играл в шутер без наушников, звук трещал. Кто-то стоял у двери с закрытыми глазами.

Ричард смотрел в своё отражение в затемнённом стекле. Всё казалось не его: ни поездка, ни день, ни пляж. Но он ехал. Просто чтобы хоть чем-нибудь себя занять.

Рокавей-Бич встретил его запахом соли, водорослей и чего-то подгоревшего — возможно, кукурузы с уличной тележки. На дальнем конце пляжа старик расстилал полотенце, возле парапета подростки пинали бутылку. Мимо проехал велосипедист с динамиком, из которого лилась музыка.

Ричард шёл медленно, чувствуя, как песок проваливается под кедами. Ветер тянул одежду, не давал собраться с мыслями. Он не знал, куда девать руки. Смотрел на волны, как на код, в котором нет комментариев.

Сначала он не узнал Денниса. Тот стоял у воды в гидрокостюме, загорелый, уверенный. Двигался легко, как человек, которому не нужно объяснять, зачем он живёт.

— Ты выглядишь, как будто сбежал из офиса, — усмехнулся он. — Снимай эту футболку. Мы пришли сюда жить.

Ричард огляделся. До ближайшего сёрфера было метров двадцать. Линия прибоя шумела в ритме дыхания. Ветер нёс запах кокоса и морской соли. Он стянул футболку, чувствуя себя неуверенно.

Доска была чуть длиннее роста, шершавая на ощупь. Деннис сунул ему шнурок:

— К ноге крепится. Сперва лежим. Потом пробуем встать.

Первые попытки были неудачными. Ричард захлёбывался, терял доску, натирал ступни. Пальцы сводило, на локтях — ссадины. Плечи ломило, солнце жгло. Деннис смеялся, подбадривал, толкал его в волну. Через час они уже катались рядом, смеясь и переговариваясь.

Запыхавшись, они вышли из воды. Прошли босиком по мокрому песку к рюкзаку. Солнце клонилось к горизонту. Ричард сел на полотенце, стряхнул песок и вытянул ноги.

Деннис достал две банки пива и буррито. Один бросил Ричарду.

— С говядиной. Ты вроде мясо ешь?

Ричард кивнул. Буррито был тёплым, банка — прохладной, покрытой испариной. Песок под ними был влажным и прохладным в глубине. Они ели молча. В воздухе ещё пахло морем, но уже тянуло вечерней свежестью.

Ричард ощущал непривычное спокойствие. Впервые за долгое время он чувствовал, что может быть кем-то другим — или собой, но без напряжения.

— А как у вас там в банке? — спросил Деннис. — Сильно боитесь, что кто-нибудь нажмёт не туда?

— Мы боимся всего. Даже кофемашину нельзя трогать без одобрения двух менеджеров, — фыркнул Ричард. — Всё по правилам. Но работать мешает.

Мимо прошла девушка в чёрном купальнике. Деннис проводил её взглядом.

— А если серьёзно? Вот ты — атакующий. Как бы ты себя взломал?

Ричард сделал глоток.

— Начал бы с фишинга от HR. Или письмо от IT с «новой политикой паролей». Один клик — и в системе.

— Дальше?

— VPN, бэкдор, сканер, уязвимый сервер в DMZ — и внутрь. Не ракетостроение.

Слева всплеснулась вода — сёрфер упал. Они оба посмотрели в ту сторону.

— А логи?

— Надеешься, что на тестовом сервере забыли агента. Или корреляция отключена. Никто не любит настраивать SIEM.

— Вуаля. Ты уже почти внутри. Опасный ты тип, Ричард.

— Я просто знаю, где слабо держится. И делаем вид, что система прочнее, чем есть.

— А ты никогда не думал… просто взять и выписать себе премию? — спросил Деннис, глядя мимо него.

— Что?

— Расслабься, я прикалываюсь. Пошли, пока свет не ушёл. Хочу ещё раз прокатиться.

Они встали. Ричард улыбался, но внутри что-то сжалось. Он попытался стряхнуть это ощущение — день был хорошим. Но расслабиться полностью не получалось. Что-то в этом всём оставалось неестественным.

Глава 5. Сброс напряжения

Ричард сидел в своей квартире, не включая свет. Только экран ноутбука отсвечивал синим, выхватывая из темноты его лицо. Новостная лента листалась автоматически — пустые заголовки, чужие события. Он их не читал. Просто наблюдал, как бегут строки. В голове стояла глухая тяжесть, как перед грозой.

Телефон завибрировал. SMS от Денниса: «Загляни. Вечеринка в разгаре. Форест-Хиллс Гарденс, 78-12 Гринвей. Ждём».

Он встал почти не раздумывая — будто уже знал, что сделает это, как только пришло сообщение.

Через час он уже ехал по вечернему Куинсу. Район производил впечатление: аккуратные дома, тихие улицы, ухоженные газоны. Форест-Хиллс Гарденс выглядел как сцена из фильма: витрины с тёплым светом, идеально подстриженные деревья, поливочные машины на парковке. На углу стоял дом Денниса — массивный, трёхэтажный, с панорамными окнами, строгой геометрией фасада и неоновыми светильниками вдоль дорожки. Он выглядел так, будто мог принадлежать только человеку, уверенно распоряжающемуся не только деньгами, но и собой.

У обочины выстроились несколько дорогих автомобилей: BMW, Tesla, тёмно-серый Range Rover. Среди них выделялась чёрная Chevrolet Camaro LT1 — машина Денниса. Ричард узнал её сразу: на днях тот подвозил его из бара. Агрессивные линии кузова, приглушённый блеск лака, тяжёлые матовые диски — машина выглядела так же дерзко и эффектно, как и её владелец. Глядя на неё, у Ричарда внутри что-то кольнуло. Он завидовал, как мальчишка завидует герою с плаката.

Он двинулся к крыльцу. На мгновение замер. В воздухе пахло тёплым летом, распаренным асфальтом и лёгким дымом — сладковатым, липким. Откуда-то тянуло ванилью. Наверное, из окна второго этажа, где горел свет.

Музыка была слышна ещё с улицы: басы били в грудь, стекло в двери дрожало в такт. Он нажал кнопку звонка. Ждал. Безрезультатно. Ещё раз. Снова. Звонок издавал цифровой звук — отрывистый, неестественно высокий.

— Давай же… — пробормотал он и уже собирался нажать снова, когда дверь распахнулась.

На пороге стоял Деннис. Волосы взъерошены, рубашка расстёгнута почти до груди, от него пахло парфюмом и чем-то острым.

— Вот ты где! — Деннис широко улыбнулся и сделал шаг в сторону. — Заходи, брат.

Внутри — жара, свет, ритм. Просторная гостиная с потолками в два уровня, стены тёмно-серые, пол — полированный бетон. На стене работал проектор с абстрактными визуализациями. Лампы под потолком пульсировали в такт музыке. В воздухе висел плотный туман кальяна, перемешанный с запахами алкоголя, тёплой кожи и духов.

Людей было много. Парни и девушки — кто-то в футболках, кто-то в купальниках, кто-то босиком. Одни держали бокалы, другие курили, третьи просто двигались в ритме. Пространство казалось текучим, почти живым.

— Познакомься, — сказал Деннис. — Мэй, Тори, Алекс, Сид. Слушай, ты найдёшь здесь себе кого угодно.

Мэй — с фиолетовыми волосами, узкой улыбкой и кольцом в брови. Тори — рыжая, с веснушками, босиком, в чёрной юбке и прозрачной майке. Алекс — с короткой бородкой, в кожаной куртке. Сид — хрупкий, с андрогинной внешностью и наушниками на шее. Все смотрели на Ричарда с живым интересом, как на новичка, которого стоит прочувствовать.

Он кивнул, пробормотал приветствие. Хотелось отвернуться, исчезнуть. Он чувствовал себя чужим — будто оказался в мире, где не было ни правил, ни границ, только раскованность, в которой Деннис царил безраздельно.

— Расслабься, — сказал Деннис. — Вот, держи. Текила с лаймом. Всё просто.

Ричард взял бокал. Сделал глоток. Жидкость обожгла язык, но помогла разогнать внутреннее напряжение. Он опустился на диван. Обивка была натянутой, слегка скользкой. Смех раздавался отовсюду, кто-то с восторгом выкрикивал тосты, пара человек неуклюже валились на подушки — всё казалось слишком близким.

Музыка оглушала, но не давила — она наполняла комнату и двигалась вместе с людьми.

Деннис чувствовал себя как хозяин вечера: обнимал, целовал, тискал, срывал с плеч рубашки, отпускал фразы вроде: «Не стесняйся — выбирай, вечер только начинается». Он управлял атмосферой легко, уверенно — так, будто всё происходящее было выстроено под него.

Ричард, напротив, сидел с прижатой спиной, избегал взглядов, сжимал бокал, как якорь. Все эти тела, жара, свет, запахи усиливали внутреннюю скованность. Контраст с поведением Денниса лишь усиливал это чувство: привычные рамки исчезли, и ему не на что было опереться.

Сид скрылся в глубине комнаты. Тори подошла ближе, присела на подлокотник:

— Знаешь, в такой компании легко потеряться, — усмехнулась она, поводя взглядом по комнате.

Ричард чуть наклонил голову, неуверенно улыбнувшись.

— Ты сегодня какой-то… другой, — сказала она, всматриваясь в него. — Мне нравится. В тебе что-то меняется.

Он не нашёл слов. Просто откинулся на спинку дивана. Свет расползался по стенам, голоса перемежались с резким смехом. В углу кто-то хлопал по плечу и хохотал, пара парней устроилась прямо на полу среди подушек. Всё плыло. Он отпил ещё. Потом самокрутка, потом ещё один бокал.

Чьи-то руки потянули его вверх — он не сопротивлялся. Сначала просто стоял, потом двинулся. Кто-то обнял его. Девушка с короткими волосами двигалась рядом, прижималась. Рубашка прилипала к спине. Тело слушалось. Он смеялся. Впервые — искренне.

Но алкоголь и ритм уже сдвинули что-то внутри. А потом будто прорвало. Ричард взял новую порцию, сам подошёл к двум девушкам у стойки, сказал что-то, отчего они расхохотались. В танце он начал вести, притягивал, обнимал, гладил по спине, не отводил взгляда. Он чувствовал себя свободным. Не задумывался. Не сдерживался.

Никто не смотрел на него с осуждением — наоборот, кто-то хлопал по плечу, кто-то подмигивал. Он уже не сторонился толпы. Он был в ней. И она принимала его.

***

Громкий стук в дверь.

— Потише! — крик из-за двери. — Люди спят!

На пороге стоял высокий мужчина лет пятидесяти, в спортивных штанах и с ключами в руке. Лоб нахмурен, плечи напряжены.

— Расслабься, Джим, — сказал Деннис с широкой, почти добродушной улыбкой. — Всего пара часов веселья.

— Веселья? В половине первого ночи?! — Джим повысил голос, шагнул ближе. — Вы что, издеваетесь? У меня дети спят!

Но Деннис, не меняясь в лице, лишь слегка наклонился вперёд:

— Мы потише, обещаю. — Он мягко закрыл дверь, не хлопнув, но с финальной уверенностью.

Ричард на мгновение задержался в прихожей.

— Ты уверен, что не будет проблем? — спросил он, понизив голос.

— Да забей, — хмыкнул Деннис. — Пойдём, лучше покажу тебе кое-что особенное.

Они поднялись на второй этаж. Звуки музыки с первого этажа здесь почти не ощущались — будто кто-то плотно прикрыл дверь в другой мир. В комнате царила мягкая тишина с лёгким гулом кондиционера. Кабинет был минималистичным: чёрный стол, кожаное кресло, два монитора. На одном — обои рабочего стола, в углу которых виднелся гном в зелёном колпаке.

У Ричарда против воли всплыли в голове недавние новости — о взломе Daily News, о гноме, демонстрировавшем непристойные жесты и подписью Owned by DwarF. Картинка мелькнула и исчезла. Он отвёл взгляд. Хотел что-то сказать — но в этот момент Деннис уже открыл терминал.

— Смотри в окно, — сказал он. — Сейчас будет шоу.

Ричард подошёл к стеклу. За окном моросил мелкий дождь, капли стекали по стеклу, уличные фонари отражались на мокром асфальте. Улица оставалась почти беззвучной — только редкий звук проезжающей машины нарушал покой. Его отражение расплывалось и дрожало вместе с бликами света.

Он снова взглянул на экран — ssh-сессия уже была активна. Команды следуют одна за другой: предварительное сканирование nmap, затем через sqlmap извлекаются таблицы. Деннис находит уязвимость в системе управления энергией — старый интерфейс, незащищённая форма входа, SQL-инъекция. Он получает SCADA-доступ и открывает административную панель управления улицей. Работает быстро, без лишних движений — будто по знакомой схеме.

Ричард, наблюдая, понимал каждое действие. Его мозг автоматически интерпретировал команды. SOC-инженер внутри него знал, как это устроено. Но вместе с пониманием пришёл и отклик тела — пальцы вспотели, по коже побежали мурашки. Его начало слегка потрясывать от адреналина, как будто это он сам только что взломал объект.

Деннис не проронил ни слова. В комнате звучали только сухие щелчки клавиш, перемежаемые размеренным гулом кулеров. Он открыл окно с коротким скриптом — , бегло пробежал глазами по коду, внёс правку, проверил ещё раз и нажал Enter.

— Теперь, — сказал он спокойно.

Ричард повернулся к окну. Один фонарь моргнул. Следом — второй. Потом третий. Постепенно вся улица пришла в движение: огни начали пульсировать, мигать, сбоить. Только дом Денниса оставался залит стабильным тёплым светом, как будто находился вне этой системы.

— Это было… — выдохнул он. — Ты как будто переключаешь реальность.

Он отпил ещё пива. В стекле мелькнуло его отражение — улыбка слишком широкая, почти чужая. Моргнул — и всё исчезло. В комнате снова стало тихо — только ровный гул вентиляции и отдалённый шум усилившегося дождя за окном.

Ричард повернулся, поднимая бокал:

— Ты чертовски крут. Это за тебя. И за то, что я здесь.

— За нас, — ответил Деннис.

Глава 6. Блуждающее псевдособытие

Ричард проснулся от сухости во рту и глухого шума за окном. Потолок — серый, с мелкими пятнами — казался особенно безразличным. В этом равнодушии было что-то обидное.

Пахло затхлостью и пивом. Где-то под столом валялись носки. В углу мигал свет от маршрутизатора. Он сел, прикрыл глаза, провёл ладонью по лицу. Щетина. Липкость у виска. На ладони — след от этикетки. Видимо, заснул с бутылкой в руках.

Под ногами что-то хрустнуло. Крошки. На кухне — облупившийся чайник, грязные тарелки, кружка с плесенью. Снятая рубашка скомкана на спинке стула. В ванной — майка с пятном. Кетчуп? Мысль проскользнула и исчезла.

Шкаф: футболки с дырками, потёртые джинсы, куртка с облезшими манжетами. Он провёл рукой по одежде, будто надеясь, что из ворса проступит что-то новое. Не проступило.

В памяти всплыл дом Денниса. Чёрный стол, ровные бокалы, свет от окна. Всё на своих местах. Там он чувствовал себя иначе. Здесь — всё снова схлопнулось.

Он поймал себя на мысли: здесь всё такое, каким он больше не хочет быть.

В зеркале — взъерошенные волосы, серая кожа, круги под глазами. Но взгляд был немного другим. Спокойным. Словно кто-то только что вышел, оставив за собой лицо.

Не бреясь, Ричард надел куртку и вышел.

Магазин находился в десяти минутах. Раньше он считал его «слишком дорогим». Сегодня — просто пошёл.

Сквозь стекло — свет, ровные ряды одежды, неподвижные манекены. Всё чисто, словно выставка порядка.

Внутри — музыка, запах ткани, шелест вешалок. Он замедлил шаг. Взял белую рубашку. Потрогал. Мягкая. Рядом — светлый пиджак.

На мгновение застыл. Что-то между тревогой и ожиданием. Оглянулся — никто не смотрел. Но ощущение, что вот-вот подойдут и скажут: «не вам», не исчезало.

В примерочной он двигался медленно. Сначала просто держал рубашку в руках, вертел её, рассматривал швы. Пару раз подносил к вешалке — и останавливался. Пальцы соскальзывали с ткани, как будто она принадлежала не ему. Потом, немного сжав губы, всё же снял куртку, натянул рубашку. Она села плотно, но не сковывала. Пиджак подчёркивал плечи. В зеркале — прямая спина, чуть приподнятый подбородок. Другое тело. В этом человеке было меньше напряжения.

Он смотрел на себя долго. Ни отстранения, ни отторжения — просто наблюдение. Как будто примерял не одежду, а возможность.

На выходе — молча протянул карту. Забрал пакет. В лифте снова взглянул на отражение. Почти не узнал. Почти улыбнулся.

Квартира встретила тем же запахом. Теперь он резал сильнее. Старую футболку — в корзину. Новую рубашку — на себя. Затем — пиджак.

Ричард сел на край кровати. Ступни упирались в пол. Тишина.

Что-то изменилось. Не радикально — но достаточно, чтобы это ощутить. Казалось, звук стал яснее, очертания — резче, а воздух — легче.

Он выдохнул. Впервые за долгое время — не с усталостью, а с ощущением начала.

***

Рабочее утро следующего дня началось, как обычно: звуковой пропуск, лифт, хрустящий стаканчик кофе из автомата. Серый коридор, стеклянные стены и знакомое гудение серверной. Всё выглядело привычно — те же стены, те же звуки. Но Ричард ощущал: он уже не встраивается в этот ритм полностью.

В зал вошёл не первым — это выбивалось из его обычного распорядка. Раньше он приходил раньше всех, садился у стены, ближе к холодному углу. Теперь — позже, на шаг от прежнего порядка. Рабочие станции уже оживали: экраны наливались светом, логи раскручивались один за другим. Он подключился к сегментам и сделал первый глоток кофе.

— Ух ты, кто к нам пришёл, — услышал он позади.

Лаура стояла у своего места, с приподнятой бровью. Высокая, в строгом, но стильном деловом костюме, на каблуках и с яркой красной помадой — она умела выглядеть безупречно даже в полумраке зала. Зелёные глаза цепко скользнули по нему сверху вниз.

За ней в монитор заглядывал Омар, лениво потягиваясь. Высокий, темнокожий, плотный, в расстёгнутой яркой рубашке поверх футболки, с щетиной и лёгким запахом ментола — он выглядел как человек, которому всё давно понятно, и это его не особо тревожит.

— Ричард, это ты? — уточнил он, расплываясь в полуулыбке. — Или у нас новый начальник?

Ричард кивнул коротко, без лишних комментариев. Взгляды ощутил сразу. Рубашка, пиджак, уложенные волосы — всё это ощущалось внешним, примеренной маской, к которой он ещё не привык.

Постарался вести себя спокойно. Движения оказались чуть резче, речь — чуть увереннее. Слова подбирались с осторожностью, будто балансировал на краю — ещё немного, и маска съедет. Остановиться казалось опаснее, чем продолжать.

Лаура подошла ближе. В её тоне не было насмешки — скорее любопытство и лёгкое одобрение.

— Ты изменился. Это… к лучшему, — сказала она, чуть наклонив голову. — Что-то случилось во время отпуска?

Ричард покачал головой. На лице — спокойствие, натянутое, как кожа на барабане. Взгляд на секунду сбился. Плечи едва заметно дёрнулись, как будто от холода. Глаза чуть было не опустились, но он удержался. Рука сама собой скользнула к вороту рубашки — поправить, занять, спрятаться.

— Просто решил сменить обстановку, — тихо сказал он, не поднимая взгляда выше её подбородка.

Лаура, казалось, ждала продолжения. Он кивнул в сторону экрана, как бы извиняясь, и сосредоточенно уткнулся в консоль. Пальцы поначалу двигались чуть неуверенно, но с каждым нажатием возвращалась знакомая механика.

Она задержалась у его стола. Он не заметил.

***

Сообщение появилось внезапно — на фоне общего гудения и рутинного движения логов.

ALERT. Unauthorized access. PCI-DSS segment. Investigate immediately.

Лаура вскинула голову и первой щёлкнула по уведомлению.

— Ну вот, начинается, — пробормотала она и прикусила губу.

Ричард поднял взгляд. Она бросила в его сторону короткий жест — пальцем у экрана: «Смотри, мол». Тон был рабочий, но в нём читалось приглашение. Или предлог.

Он подошёл. Логи уже крутились на экране. Лаура отступила на шаг, уступая место, но осталась рядом — слишком близко, чтобы не чувствовать запаха духов.

Внимание сфокусировалось. Он прокручивал записи — временны́е метки, IP-адреса, идентификаторы процессов. Ничего необычного: типичный рабочий трафик в пределах офисного диапазона. Но чуть дальше — странная последовательность:

2025-06-24T09:12:44Z login accepted user=svc-build src_ip=10.13.58.104 method=token

2025-06-24T09:12:44Z vault_get path=/secrets/ci/ status=success

2025-06-24T09:12:45Z conn_open dst_ip=10.0.5.13 dst_port=8443 proto=tcp service=internal-api

Он замер. Что-то мелькнуло на границе видимости. Быстро пролистал вверх — пусто. Опять вниз — в одной из строк будто бы отобразилось tag=dwarf, но это был не пользователь, а, возможно, просто тег. Или показалось.

Резкая боль кольнула в висок. Он моргнул. Посмотрел снова — никакого dwarf. Только стандартные ключи, регулярные шаблоны, как по учебнику.

Он прищурился. Протёр глаза. Снова взглянул — всё ровно, без изъяна. Даже скучно. Как будто кто-то успел стереть след до того, как он взглянул снова.

— Всё в порядке? — спросила Лаура, глядя на него в упор.

Он кивнул, но пальцы слегка дрожали.

— Что, не поделили лог? — раздался за спиной Омар. Он подошёл с кружкой кофе и устроился сбоку, слегка наклонившись над столом Лауры, чтобы заглянуть в её монитор.

Ричард шагнул в сторону, Лаура чуть отступила. Пространство восстановилось.

— Дайте посмотреть, — сказал Омар и склонился ближе. — Карточный сегмент, ага… и опять этот порт. Видели уже сегодня утром, у команды из Чикаго была такая же байда. Пролетает пакет, но без тела. Как призрак. Чисто, но тревожно.

2025-06-24T09:13:12Z conn_attempt src_ip=172.22.18.77 dst_ip=10.0.5.17 dst_port=443 proto=tcp status=success

2025-06-24T09:13:12Z tls_handshake established cipher=TLS_AES_256_GCM_SHA384

2025-06-24T09:13:13Z app_probe path=/admin/login status=403 response_size=0

2025-06-24T09:13:13Z conn_closed duration=0.2s sent_bytes=0 recv_bytes=0

— Вот. Смотри — соединение успешно, TLS поднимается, но данных — ноль. Ни тела, ни заголовков. Как будто кто-то просто проверяет пульс, не отправляя сигнала.

— Фантом? — уточнил Ричард.

Омар кивнул:

— Да. Мы их уже называем «блуждающие псевдособытия». Логика их видит, корреляция — нет. Пульс системы чувствует шорох, а мозг говорит: «показалось».

Лаура усмехнулась:

— Красиво сказал.

— Так и живём, — ответил Омар, отхлебнув кофе. — Предлагаю параметры чувствительности на этом участке чуть ослабить. Не фильтр, а вес в приоритизации. А то с ума сойдём.

Ричард молча кивнул. Он всё ещё не мог забыть слово, которого вроде бы и не было.

— Всё ок? — спросил Омар, посмотрев на него внимательнее.

— Угу. Просто думаю.

Лаура глянула на него сбоку и, чуть улыбнувшись, осталась у своего монитора.

— Ну-ну, начальник растёт, — бросил Омар, не глядя, и направился к себе.

Щелчки клавиш и ровный гул охлаждения снова заполнили пространство.

Ричард не ответил. Просто опустился в своё кресло и снова сосредоточился на экранах — как будто всё было по-прежнему. Но ощущение сдвига не уходило.

***

Вечер подкрался незаметно. Мониторы остались включёнными, но за окнами темнело, и в помещении ощущалась усталость: не физическая, а оседающая в дыхании.

Коллеги с его смены разошлись. Кто-то попрощался вскользь, кто-то просто встал и ушёл. Омар ушёл последним, оставив после себя запах кофе и лёгкий гул оборудования. Новая смена уже начала собираться у дальних стоек, но никто не подходил. Ричард остался в стороне, не замеченный, ненужный — и от этого ещё более одинокий.

Он запустил повторный анализ вручную. Логи — те же. Ни dwarf, ни аномалий. Всё ровно, без сбоев. Тишина, в которой что-то пряталось. Или, казалось.

Пальцы зависли над клавиатурой. В голове будто щёлкнул переключатель — и вместо сухой цифровой строки возник образ: мультяшный гном в зелёном колпаке из утренних новостей про взлом Daily News. Монитор в доме Денниса.

Он вспомнил, как читал логи. Как мелькнул тег. tag=dwarf. Не факт, что он вообще был. Может, ошибка зрения. Или что-то хуже. Всё это — слишком странно. Совпадения? Или связи?

Что, если дело в Деннисе? Или в нём самом?

Он опустил руки. Неуверенность начала расползаться — в мышцах, в горле, в голосе, которого никто не слышал.

Он вспомнил, как сегодня утром выбирал рубашку. Как застёгивал пуговицы у зеркала. Смотрел на себя, не узнавая. Хотел быть кем-то другим. Стать им.

Но сейчас — всё снова съехало. Движения стали прежними, одежда — чужая. Жесты, которые утром казались уверенными, теперь выглядели нарочито прямыми.

Это не он. Не его жизнь. Не его походка, голос, реакция.

И с этой мыслью Ричард остался один — не физически, но внутренне. В полутёмном зале SOC-центра банка CityGroup, где за дальними стойками уже работала новая смена, он сидел у своего монитора, отгороженный не стенами, а тишиной. Среди строк, в которых — как он всё сильнее чувствовал — что-то было.

Или не было вовсе.

Глава 7. Ты всегда разный

Ричард приехал к Омару один, несмотря на то, что изначально планировал провести вечер дома за экраном компьютера, но в последний момент всё же решил выбраться — с бутылкой дорогого бурбона. На улицах уже стемнело, и на крыльце стояла пара сотрудников — кто-то из ребят с первой смены, с кем он почти не разговаривал раньше. Один из них — Дейв — с удивлением приподнял бровь, заметив его, но тут же коротко кивнул: приветствие принято.

На пороге — Омар. Повод был весомый: день рождения, который он традиционно отмечал у себя дома в кругу коллег. В джинсах и пёстрой гавайской рубашке, он держал в руке пластиковый стакан и громко смеялся, объясняя что-то Анне Ли. Когда увидел Ричарда, на секунду замолчал, будто не поверил. Потом выдохнул через нос, расплылся в улыбке.

— Вот это гость! — сказал он и хлопнул Ричарда по плечу. — Заходи, брат. Ты меня удивил. Давай сюда свой трофей.

Ричард передал бурбон. Рука Омара тут же подкинула его вверх, как баскетбольный мяч.

— Хороший вкус. Лаура будет довольна.

Омар засмеялся и провёл Ричарда внутрь.

Дом был не новый, но ухоженный. На стенах — постеры старых фильмов и комиксов, в углу стояла гитара, рядом — стопка винилов. Кухня была открытая, с барной стойкой, на которой уже копились стаканы и тарелки.

Внутри уже было человек десять. Музыка играла негромко, на фоне — фанковый плейлист. На столе: чипсы, пицца, бутылки с пивом, красный пластик.

Анна Ли оглядела его с ног до головы и, не удержавшись, усмехнулась.

— Апгрейд прошёл успешно, — заметила она. — Осталось только прошивку обновить.

Он был в тёмных джинсах и светлой рубашке, поверх — серый пиджак. Волосы аккуратно уложены, подбородок выбрит, запах свежего парфюма. Это был уже не тот офисный Ричард, к которому все привыкли. В нём было что-то новое — собранность, уверенность, даже лёгкая игра на публику.

Лаура, сидевшая на подлокотнике дивана, подняла голову и застыла, увидев Ричарда. Её глаза слегка округлились, потом губы разошлись в полуулыбке.

— Кто бы мог подумать, — протянула она. — Ричард, ты?.. Ты отлично выглядишь.

Джейсон махнул ему с кухни, держа в руках большую миску с начос.

— Эй! А я думал, ты вообще не ходишь на тусовки.

— Обычно не хожу, — коротко ответил Ричард.

Голоса, запахи еды, лёгкий алкогольный шум — всё было немного размытым, как через стекло с каплями дождя. Он чувствовал: за ним наблюдают. С интересом, но без насмешки.

Он двигался дальше, стараясь не терять равновесие в этом новом для себя ритме. Музыка, разговоры, запах пиццы и парфюма — всё сливалось в один поток.

Он слышал свой голос, отвечающий шуткой, и не узнавал интонации. Пиджак чуть натирал подмышками, шаги по ковру были мягкими, но осторожными — как будто ноги ещё не привыкли к новому телу.

Он подхватил пластиковый стакан с барной стойки и двинулся в сторону группы у окна — туда, где звучал смех.

Ричард подошёл к группе, где стояли Джейсон, Лаура, Хавьер из аналитики и Сара из отдела реагирования. На столе между ними лежали разлитые по стаканам напитки и большая коробка с крылышками.

— Надо же, ты в пиджаке, — сказал Джейсон, не скрывая восхищения. — Это ты на праздник так или… что-то изменилось?

Ричард пожал плечами, отпил глоток и ответил:

— Решил больше не прятаться за фоном.

Лаура усмехнулась:

— А зря. Я к этим стенам привыкла. Они были… предсказуемые.

Один из ребят с серьёзным лицом поднял стакан:

— За Омара! Чтобы и дальше был начальником только неформальных мероприятий.

— И чтобы по пятницам было три пиццы, а не две, — добавила Анна Ли, появляясь сбоку с тарелкой в руке.

— Анна, у тебя где-то есть кнопка «сарказм выключить»? — спросил Джейсон, разливая пиво.

— Есть, но только по субботам, — отрезала она. — Сегодня пятница.

Смех. Кто-то хлопнул Омара по плечу, кто-то поднял второй тост:

— И чтобы дедлайны больше никогда не попадали на понедельник!

Ричард стоял среди них и впервые за долгое время чувствовал себя не фоном, а участником. Он не пытался подбирать фразы, не оглядывался, не ждал подвоха. Просто был в потоке — и этого оказалось достаточно.

Кто-то рассказывал историю о том, как в два часа ночи по ошибке перезагрузил прод — думал, что сидит на тестовом стенде. Кто-то вспоминал выездной тренинг и неловкий случай с грушей для отработки приёмов. Лаура смеялась так, что пришлось придерживать стакан.

Ричард слушал, комментировал, вставлял фразы. Иногда — остро. И это замечали. Он удивлялся, насколько легко шло общение, когда не думаешь, как звучишь.

— Ты как будто стал другим, — сказала Лаура вполголоса, склонившись к нему ближе.

Он не ответил сразу. Просто посмотрел на неё — в упор, спокойно. И кивнул.

***

Они оказались вдвоём на кухне. Свет над плитой отбрасывал мягкое жёлтое пятно на тёмную столешницу. Сквозь приоткрытую дверь доносился приглушённый смех, но здесь всё казалось тише, ближе к реальности. Лаура стояла рядом, её плечо почти касалось его руки. Она повернулась, посмотрела внимательно — не с игрой, а серьёзно. Затем шагнула ближе и поцеловала.

Ричард не успел подумать. Ответил. Губы соприкоснулись сначала легко, как проверка, потом — увереннее. Он чувствовал запах её духов, тепло кожи сквозь ткань, как её рука коснулась его груди. Его дыхание стало глубже, движения — менее сдержанными. Он взял её за руку и, не разрывая взгляда, повёл через коридор.

Комната была без света. Через жалюзи падали полосы уличного фонаря, рассеянные и мягкие. Закрыв за собой дверь, он снял пиджак, бросил его на спинку стула и шагнул к ней. Двигался точно, резко. Схватил край её блузки и рванул вверх, расстёгивая пуговицы одним движением. Лаура не отпрянула — наоборот, улыбнулась уголком губ, будто этого и ждала. Она впилась в него поцелуем, её руки сжались у него на плечах.

Ричард прижал её к себе. Рубашка прилипала к спине, дыхание стало хриплым. Поцелуй снова объединил их — в нём было меньше осторожности, больше голода. Её кожа была тёплой и гладкой под его ладонями. Она гладила его по шее, плечам, скользя пальцами по открытым участкам. Он расстегнул рубашку — торопливо, с напряжением в пальцах, будто боялся замедлиться.

И вдруг — как обрыв тока. Секунда — и всё обрушилось. Как будто сцена перестала быть его. Ричард смотрел на её лицо — раскрасневшееся, живое — и не понимал, что он здесь делает. Словно начал не он.

Он резко отстранился. Поднял руки, как в защите, спиной наткнулся на стол.

— Стоп.

Лаура застыла. Её руки так и остались в воздухе, прижатые к лифчику, который она уже собиралась скинуть с себя. В комнате стало ощутимо тише.

— Прости, — выдохнул он. — Мне… я не могу.

Он наклонился, поднял пиджак, натянул рукава. Воздух казался спёртым. Открыл дверь, шагнул в коридор. Музыка зазвучала громче, но звучала глухо, как под водой.

Ричард вышел на улицу через боковую дверь. Холодный воздух ударил в лицо. Он шёл, не разбирая дороги, сквозь влажный свет фонарей. Только подальше — от комнаты, от Лауры, от себя самого.

***

Ричард лежал на кровати у себя дома, не раздеваясь. Пиджак оставался на нём, рубашка наполовину выбилась из джинсов, ботинки стояли на полу возле кровати. Свет в комнате отсутствовал — лишь мутный жёлтый отсвет фонарей просачивался сквозь щели старых штор и дрожал на потолке. Тишина казалась неестественной, будто кто-то вырезал из воздуха звук.

Он слышал своё дыхание. Глухое, тяжёлое сердцебиение отдавалось внутри, как будто внутри груди что-то раскачивалось на тросах. Каждый вдох давался усилием, словно воздух стал гуще. Грудная клетка — стянутая, тугая. Он не шевелился.

Перед глазами всплывали лица. Фразы.

«Ты как будто стал другим…» — Лаура. Шёпот рядом, почти касаясь уха.

«Ты сегодня какой-то… другой». Тори. Тогда, на вечеринке у Денниса. Он видел её впервые — или казалось, что впервые. Возможно, встречал раньше? Может быть, не придавал значения. Но голос — звонкий, с тенью сомнения — звучал так, будто он уже его слышал. Во сне, в другом времени, в другой голове.

Он сжал веки, как будто это могло оттолкнуть навязчивость. Но она только сгущалась. Слова сливались в ритм: другой, другой, другой…

— Кто? — прошептал он в темноте. — Кто другой?

Пульс ушёл в шею. Там, под кожей, жил ещё один ритм. Он лежал, вслушивался, не понимая — это он сам или кто-то ещё в комнате. Ощущение чужого не было телесным — оно сидело внутри, как незваный сосед. Словно он делил голову с кем-то.

Он не спал. Но и не бодрствовал. Промежуточное состояние. Лёгкое покалывание в пальцах, будто тело переставало принадлежать. Внутри — не страх, не паника. Просто пустота. Плавная, вязкая, в которую всё проваливалось без следа.

Он закрыл глаза. И замер. Давление в груди не ослабевало. Оно было с ним — как чьё-то внимание, как ожидание ответа.

Сознание унеслось куда-то далеко, за пределы комнаты, назад — туда, где пахло уходящей любовью и чужими шагами. Вечер. Комната. Светофор за окном. Милана уходит.

***

Вечер. В комнате полумрак. Уличный свет едва пробивается сквозь стекло, дрожит на полу, будто сам не решается войти. За окном с равными интервалами мигает жёлтый сигнал светофора, вырезая на стенах тусклые пятна. Окно распахнуто, и с прохладным воздухом в комнату проникает шум города: шорох шин, далёкий автобус, ровный гул.

Милана ходит по комнате, собирая вещи. Медленно, будто всё уже решено, и спешить некуда. Её шаги глухо звучат по полу, и каждый из них отзывается в голове Ричарда. Она складывает одежду в сумку, идёт к комоду, берёт косметичку, зарядку, пару мелочей. Действует машинально. Не смотрит на него.

Ричард стоит у стены, прижавшись спиной к обоям. Руки опущены, пальцы вяло сжаты. Он бледен. В глазах — беспомощность, почти детская, и страх, которому трудно найти слова.

— Мил, пожалуйста… давай просто остановим это. Я не понимаю, что со мной, но я не хочу тебя терять, — его голос дрожит, почти срывается на шёпот.

Она не отвечает сразу. Подходит к окну, придерживает раму от сквозняка. Потом оборачивается.

— Именно в этом и проблема, Ричард. Ты никогда ничего не понимаешь — а я устала быть рядом с человеком, который всё время разный.

— Но я стараюсь. Я, правда… я не знаю, почему так выходит, но я…

— …не знаешь, кто ты, — перебивает она. Голос спокойный, усталый. Без злости. — А я не могу жить с тем, кто не знает, кем он является.

Она застёгивает молнию сумки. Надевает куртку. Проходит мимо него — на секунду останавливается, смотрит в глаза.

— Я так больше не могу. Ты всегда разный. Но я так и не знаю, кто ты на самом деле.

Дверь закрывается мягко. Ричард остаётся один. Он не двигается. Смотрит в точку, где она стояла всего мгновение назад. Будто сжался внутрь себя, как если бы тело стало ненужным. Осталась только пустота — вокруг и внутри.

За стеклом по-прежнему мигает светофор, вырезая на стене равномерные прямоугольники света и тени.

Воспоминание тускнеет. Сознание уносится ещё дальше — к дате, которую он забыл.

***

Ричард вернулся домой поздно. Милана сидела на диване в спортивных штанах и свитшоте, с чашкой чая в руках. Волосы были стянуты в хвост. На столе стояла запеканка под фольгой — уже остывшая.

— Ты был где-то? — спросила она, не поднимая взгляда.

Он остановился в дверях, снял кроссовки, повесил куртку. Насторожился. В её голосе было что-то новое — сдержанное, но тяжёлое.

— На работе. Что случилось?

Милана отставила чашку и подошла к окну.

— У тебя всё в порядке?

— Вроде бы да. Почему ты спрашиваешь?

— Сегодня двадцать восьмое. — Она развернулась. — Ты вообще помнишь, что это?

Он опустил взгляд. Перебрал в уме: календарь — пустой, телефон — без напоминаний. В голове — ни одной зацепки.

— Я… не знаю. Должен?

Она выдохнула через нос. Тихо, но затяжно. Вернулась к столу, приподняла фольгу.

— Это день, когда мы впервые увиделись. Каждый год ты хотя бы писал.

Ричард подошёл и сел рядом. Стол был накрыт. Две тарелки, свеча, спички сбоку. Всё было подготовлено. Ждало его.

— Прости, — пробормотал он. — Я не хотел…

— Я знаю, — перебила она. — В этом и дело. Ты ничего не хочешь. Или не можешь. Я не понимаю.

Он смотрел на еду. Пахло сыром и специями. Он помнил, что это её любимое. Но не чувствовал ни голода, ни вины. Только растерянность.

— Я стараюсь, — сказал он тихо.

— А я просто хотела, чтобы ты помнил. Хотя бы это.

Милана не плакала. Но в её голосе и осанке чувствовалась усталость. Не вспышка, а след от чего-то долгого. Ричард не знал, что сказать. Не знал, что делать.

Молчание повисло между ними. Он не встал за вилкой. Она не предложила. Они сидели рядом, не глядя друг на друга. Как будто уже понимали: эта сцена останется в памяти. А потом — исчезнет.

Как дата, которую он не удержал.

Мысли понеслись ещё дальше — ко времени, когда у них всё было хорошо.

***

Они сидели на открытой веранде кафе Think Coffee, в двух кварталах от кампуса NYU. Было тепло, по плитке катились велосипедисты. За спиной негромко играл джаз. На столе — паста, минеральная вода, кофе. У Миланы — мороженое в металлической вазочке.

— …и я перепутал IP-адрес и случайно вырубил внутреннюю страницу деканата, — рассказывал Ричард. — Причём прямо перед приёмной комиссией. Пришлось говорить, что это плановая перезагрузка ядра.

Милана рассмеялась. По-настоящему, свободно.

— Ты серьёзно? — она покачала головой. — И это сработало?

— Даже никто не удивился. Видимо, у них так всегда.

Она облокотилась на стол, чуть наклонившись к нему.

— Когда ты такой, я забываю, что ты бываешь другим. Мрачным.

Ричард усмехнулся, поставил локти на стол и сцепил пальцы.

— Может, это и есть настоящий я.

— Надеюсь, — ответила Милана.

Позже они шли вдоль улицы. Фонари уже горели, хотя свет ещё не ушёл с неба. В витринах отражались лица, силуэты прохожих. Милана говорила о преподавателях, экзаменах. Ричард слушал, кивал, вставлял короткие реплики. Он держал её за руку — легко, без напряжения.

И только одна мысль цеплялась в стороне сознания: он почти не помнил, что говорил. Шутки, слова — будто услышанные раньше, но не им произнесённые. Уместные. Смешные. Правильные. Но… были ли они его?

Ричард посмотрел на Милану. Она смеялась. Он чувствовал себя живым.

Но не знал — кем именно.

***

Ричард открыл глаза. Комната — та же: тусклый свет, выцветшие обои, вздутый ламинат. Всё было знакомо, но ощущалось чужим.

Он резко вдохнул, словно вынырнул из глубины. Пульс гудел в ушах. Тело содрогалось — не от движения, а от внутреннего сбоя. Он лежал на кровати, не сразу осознавая, где находится. Руки дрожали. Грудь сдавливало тяжёлым, и каждое дыхание давалось с усилием.

Он сел. Внутри — ледяной провал, не связанный с температурой. Мысли рвались вперёд: фразы, лица, звуки — как будто кто-то листал десятки каналов, не давая зацепиться ни за один. Мелькали голоса: Милана, незнакомый смех, свет фонарей, кофе. Всё — обрывками, без порядка.

Он поднялся. Сделал шаг — ноги не слушались, ватные. Пот выступил на лбу. Возникла резкая тошнота. Хотелось кричать — не от боли, а от перегруза, как при сбое в системе. Он не мог сфокусироваться. Всё было сразу, вразнобой.

— Кто я? — прошептал он. — Кто из них я?

Голос прозвучал чужим. Комната не изменилась, но внутри что-то было не так. Словно отклик, который всегда был — исчез. Он говорил то ли сам с собой, то ли с кем-то ещё, кто был рядом. Или — внутри.

Он снова сел на кровать. Сжал лицо ладонями. Сердце билось в горле. Он пытался вспомнить, когда в последний раз ощущал себя собой. Всплыло что-то — вечер в кафе, чья-то улыбка, лёгкость. Но тут же растаяло. И не осталось уверенности, что это был он. Что он вообще когда-либо был.

И впервые — по-настоящему — задал вопрос, от которого всё это время прятался:

Кто из них — настоящий?

Глава 8. Взлом

Утро в SOC начиналось как обычно: вентиляция гудела ровным басом, кофемашина шипела сбоку, а в мониторах мерцали зелёные полосы штатных логов. Круглосуточный контроль над банковской инфраструктурой создавал иллюзию покоя — как стекло над жерлом вулкана.

Ричард вошёл в помещение — белая рубашка, узкие тёмные джинсы, серый пиджак. Волосы аккуратно зачёсаны назад, подбородок гладко выбрит, очки — новые. Вид у него был скорее офисный, чем сменный — как будто собирался на презентацию.

— Ого, кто-то, похоже, собрался брать интервью в «Венити Фэйр»? — не удержался Джейсон, отрываясь от клавиатуры.

— Или с утра уже свиданка, а мы тут — смена поддержки… — добавила Анна, подливая себе кофе. — Только не говори, что это всё ради Лауры.

— Мог бы хотя бы бейджик не забыть, звезда, — буркнул кто-то из ночных, собирая вещи.

Ричард молча кивнул. Улыбка — ровная, почти машинальная. Он прошёл вдоль стоек, поздоровался с Омаром и занял своё место. Спина выпрямилась, плечи чуть откинулись назад — в движениях чувствовалась собранность. Привычная клавиатура, экран, несколько окон: дашборд инцидентов, телеметрия, сплит логов по регионам. Пальцы сами отрабатывали привычные команды. Вкладки открывались в нужной последовательности — будто сцена давно отрепетирована.

— Эй, ты сегодня снова при параде, — шепнул Джейсон, сев рядом. — Решил закрепить стильный образ?

Ричард не ответил. Только слегка кивнул и переключил вкладку. Взгляд — в экран, глубже, чем обычно. Джейсон замолчал.

Первые двадцать минут смены прошли тихо. Алармов не было. Движение по портам — в пределах нормы. Кофе остывал в кружках, кто-то обсуждал баг в новом патче для VPN-клиента. Лаура, занятая перепиской, избегала смотреть в сторону Ричарда.

В этот момент раздался звонок.

Обычный сигнал на линейке, через SIP. Джейсон поднял трубку.

— SOC, дежурный инженер, Мюллер. Да, слушаю…

Пауза. Голос стал жёстче, собранным:

— Понял. Проверяю. На сейчас — тишина, алармов нет. Можете уточнить, что именно?..

Он покосился на Ричарда, сделал жест «подключайся», но тот уже был в логах.

— Растворяются? — переспросил Джейсон. — Что именно — суммы? Центы?..

Небольшая пауза.

— Понял. Передам. Проверим. Да, будем на связи.

Он положил трубку.

— Ну вот и первая странность на сегодня. — Голос стал тише. — Позвонили с фронта. У них клиентские счета начали терять центы. Ни тревог, ни отклонений. Просто — расхождения. Программисты у них уже всё пересмотрели, но пока не поняли. Хотели узнать, может, у нас что с транзитом.

Омар поднял брови:

— Центы? Это как вообще? Типа «минус 0.03» и «всё по нулям»? Или это проскальзывает мимо DPI?

— Типа того. Растворяются, говорят. Не списания, не переводы. Нет трассы.

— Может, баг с округлением? Rounding issue? — предположила Анна, уже щёлкая по выгрузке SQL-аудита.

— Не думаю, — покачал головой Джейсон. — Они сказали, затронуто тысячи счетов. Не все, но достаточно, чтобы насторожиться.

— Ну, может баг во фронте, — пожал плечами кто-то. — Или что-то у них с микросервисом расчётов.

Ричард не вмешивался. Он что-то искал. Глубже, чем в логах. Его взгляд был неподвижен, но пальцы — в движении. Как будто он знал, что нужно найти. Хотя сам ещё не понимал — что именно.

Через несколько минут звонок повторился.

Теперь трубку взял Омар.

— SOC, дежурный инженер, Рахим. Слушаю.

Пауза. С лица Омара исчезла привычная насмешка.

— Сколько? Повторите, пожалуйста… Угу. Уже сотни? Проверим. Держите канал открытым.

Он нажал на спикерфон. Комната стихла.

— Те же клиенты. Потери продолжаются. Они уже видят это в логах — у кого-то ушло по десять, по пятнадцать долларов. Списания выглядят как внутренние операции, но без идентификаторов. У них ощущение, что транзакции как будто исчезают внутри системы. — Он щёлкнул мышкой, запуская скрипт сводной проверки. — Алармов всё ещё нет.

— Это уже ненормально, — бросила Анна. — Я пробила IP по последним запросам — никакой активности выше нормы. Всё выглядит чисто.

— Может, мы просто не видим, — спокойно заметил Ричард, не отрываясь от экрана.

Омар вызвал панель корреляционных фильтров на стенном дисплее.

— Ставлю уровень реагирования в ручной. Убираю сглаживание, обхожу автоматическую корреляцию.

— Ждём фейерверк, — хмыкнула Анна, отходя от монитора.

Через пару секунд монитор начал мигать: десятки событий просочились сквозь отключённые фильтры. Сначала — единичные тревоги. Потом — лавина.

— Incoming: endpoint anomalies, region NY2. Потом — фантомный трафик. Потом — zero-byte replies… — Джейсон читал заголовки прямо с экрана.

— Что за хрень?.. — Анна шагнула ближе. — Они все с разных узлов.

— Это невозможно, — сказал кто-то с заднего ряда. — Как будто весь банк одновременно стал источником шума.

— А нет ощущения, что кто-то отвлекает? — Омар сжал губы. — Типа, мы копаем вширь, пока вглубь кто-то лезет.

Панель заполнилась алыми событиями.

— У нас шквал по West-Coast, — Джейсон поднял глаза. — И всё с TTL меньше десяти. Кто-то явно внутри сети.

Омар кивнул Анне и включил громкую связь. На линии началась общая конференция по инциденту уровня «Высокий Плюс». Подключились дежурные смены со всех ключевых направлений: SOC, сетевые инженеры, специалисты по межсетевым экранам, группы реагирования на инциденты. Были также представители, отвечающие за зоны PCI DSS в инфраструктуре банка.

Координацию попытался взять на себя дежурный ситуационного центра банка. Его голос звучал ровно, спокойно, поверх шума. Он запрашивал статусы и призывал сохранять порядок. Но никто его не слушал. Голоса накладывались друг на друга, гремели из динамиков без разбору.

— …у нас массовый сбой доступа к консолям. Кто-то правит ACL на лету, и нас выкидывает с фаерволов.

— Подтверждаю! — другой голос. — Только что ввёл команду — консоль зависла и отключилась. Не могу зайти обратно.

— У меня была живая сессия. Попытался блокнуть CIDR /18 — сессию дропнули, интерфейс отвалился.

— Это что, чёрт побери, Zero Trust обернулся против нас?! — кто-то из сетевиков срывался на крик.

— Я сейчас проброшу отводной маршрут через dummy VLAN — может, обрежем этот поток!

— У нас уже сотни жалоб. Платежи списываются. Клиентка в Support орёт, что у неё минус на счёте.

Сигналы тревоги усиливались. Панель SOC больше не успевала их обрабатывать: события вспыхивали и исчезали быстрее, чем успевали сменяться.

— Кто-то видит первоисточник? — спросил Омар. — Или хотя бы последовательность?

Молчание. Потом — голос Лауры:

— Источники прыгают. Каждую секунду новые. Как будто атака идёт волнами.

— Не «как будто», — Ричард не поднял головы. — Она так и идёт.

Он печатал быстро, вслепую, с короткими остановками. В логе — рваные строки. Он открывал графы и закрывал их раньше, чем они успевали загрузиться. Казалось, он искал что-то конкретное. Или узнавал знакомое.

На лице — напряжение. В уголках глаз — судорожные подёргивания. Но голос оставался спокойным:

— Я попробую выделить устойчивый маршрут. По нему всё ещё течёт трафик.

Он поставил маркер на графе. Алый контур засветился ярче остальных.

— Вот он. Похоже, это и есть управляющий канал.

— Действуй, — сказал Омар. — Но быстро. Через минуту могут рухнуть транзакционные сервера.

Ричард открыл новый граф — маршрут исчез. Следующий — пустой. Ещё один захлопнулся сам. IP-адреса сменялись с такой скоростью, что глаз не успевал зафиксировать ни один. Логи дёргались, как стрим с плохим подключением: фрагменты соединений обрывались, появлялись, исчезали.

— Он что, живой? — пробормотал Джейсон. — У него автоперемаршрутизация?

— Нет. Он предугадывает действия, — глухо сказала Анна. — Смотри, он опережает блокировки на пару секунд.

На экране вспыхнул новый путь — туннель через резервный канал на западный сегмент. TTL — 5. Прямо рядом с внутренними базами данных.

— Он уже у хранилищ, — выдохнул кто-то. — Если влезет туда — всё.

— Мы не успеваем, — с нажимом сказал один из сетевиков. — Он уходит через туннели и внутрь.

Голоса в конференц-связи становились громче, фразы — короче, резче. Кто-то кричал, кто-то шипел в микрофон. Координатор ситуационного центра пытался организовать спокойный отклик, но его почти никто не слушал.

В зале SOC — резкий писк: одна из консолей показала критическое падение связи с резервным ЦОДом. Следом — вторая, третья. Панель залилась красным.

Ричард не отрывался от экрана. Он будто слился с ним. Пальцы по клавишам — быстро, почти машинально. В логах — фрагменты знакомых пакетов, отпечатки заголовков, словно он сам их создавал.

На мгновение он моргнул — и будто увидел другой интерфейс. Консоль была не тёмной, а светлой. Команды — агрессивные, кастомные. Не для анализа — для атаки. Другая рука. Другой курсор.

В ушах — шум. Лоб вспотел. Взгляд расфокусировался. Он видел себя как будто со стороны — в чужой сессии, в другом терминале. Тот, другой, двигался быстро, уверенно. Как будто знал каждую уязвимость.

В реальности кто-то крикнул:

— У нас меняют конфигурацию на пограничных маршрутизаторах! Внутренние ACL ползут!

— Идёт массовый сброс соединений от легитимных клиентов!

— Это он. Он режет нам обратку, — сказал Ричард, и только потом понял, что произнёс это вслух.

— Хорошо зашёл… — пробормотал он еле слышно.

Сосед слева не разобрал слов, просто фыркнул и отвернулся.

Ричард откинулся на секунду, провёл рукой по лицу. Висок кольнуло — вспышка боли, будто игла. Он сжал голову ладонями. Экран плыл. Лог снова сменился. Всё шло волнами.

Он вернулся к клавиатуре. Зафиксировал один из IP — тот, что мелькал чаще других. Отследил миграции: от узла к узлу. Рисунок начал складываться. Он знал этот стиль. Не технику — стиль. Почерк.

Почерк был его.

И не его.

— Я его вижу, — прошептал Ричард. — Он идёт через боковые интерфейсы. Туннелирует через неиспользуемые сегменты. Ищет выход на платёжное ядро.

Омар повернулся:

— Ты уверен?

Ричард кивнул. Медленно, будто в замедленной съёмке. Затем снова ушёл в терминал.

Конференц-связь взорвалась новыми репликами. Кто-то перекрывал трафик на канальном уровне. Кто-то ругался с командой доступа. На панели SOC — хаос. События накрывали друг друга, мигали, исчезали, появлялись снова.

А в голове Ричарда — тишина.

И курсор — светлый. На чужом экране.

Панель SOC мигнула, будто не выдержав перегрузки, и зависла на полсекунды. В этот момент стало особенно тихо — даже в конференц-связи замерли все голоса, остался лишь ровный статический фон. В это мгновение на экране, обычно занятом логами и визуализациями потоков, появилась анимация.

Пиксели сложились в силуэт: низкий персонаж в зелёном колпаке с огромным мешком. Он прошёл через стилизованные двери банковского хранилища, неторопливо огляделся, потянулся и начал складывать в мешок золотые слитки — сначала по одному, потом горстями. Мешок раздулся непропорционально, как в старом аркадном клипе. Когда он оказался полным, гном тяжело закинул его за спину, прошёл к выходу, обернулся и — поклонился. Долго, с преувеличенной вежливостью. В углу экрана замигала подпись с издёвкой: Owned by DwarF.

В конференции повисла гробовая тишина. Даже координатор ситуационного центра молчал. Никто не мог поверить в происходящее.

— Что это за… — начал кто-то, но договорить не успел.

— У нас то же самое! — закричал голос из другой смены. — У нас по всем панелям та же анимация!

— Вы издеваетесь, что ли?.. — кто-то не выдержал. — Гном?

— Пацаны, у нас сыпятся DNS-запросы с подписями dwrf, vaultlift, h4h4h4, и что-то про thanks4yourgold.

Ричард поднялся. Дышал неглубоко. Глаза чуть расширены, но взгляд сфокусирован. Руки — на клавиатуре. Он застыл, словно всё существо сосредоточилось в одном движении.

На экране перед ним — граф. Один узел подсвечен. Тот самый.

Ричард выдохнул резко, словно отпустило натянутую пружину.

— Попался, — сказал он почти шёпотом. И ударил по клавише Enter.

Полсекунды тишины. Пауза, как перед падением молота. В зале раздался короткий звуковой сигнал — как от завершённой команды. Панель ожила. События перестали множиться. Графы стабилизировались. В лентах логов — пусто.

В конференции — вспышка хаоса.

— Пошла стабилизация!

— Трафик просел!

— Метрики вернулись к норме!

— Кто сработал?! Кто срезал канал?

Ричард стоял на месте. Руки дрожали. На виске блестела капля пота. Он чуть опёрся на стол.

Омар повернулся к нему первым.

— Это ты?

Ричард с трудом кивнул. Голос запутался в дыхании.

— Как?.. — выдохнул Джейсон.

— Не знаю… — прошептал Ричард, едва размыкая губы. — Само. На автомате.

Глава 9. В прямом эфире

Он не знал, с кем поговорить. Мысли о произошедшем не отпускали, а внутреннее напряжение нарастало. Кто такой DwarF? Быть может, Деннис знает что-нибудь про хакера с таким псевдонимом? — пронеслось в голове. Перед глазами всплыл эпизод: его монитор, а на нём — гном. Или показалось? А что, если Деннис и есть DwarF? Он резко отогнал мысль. Слишком невероятно.

Размышления нарушил звук уведомления. Пришло сообщение от Омара — короткое, как всегда: «Мы в «Берч кофе» на 21-й. Почти в сборе. Приходи, не будь, как обычно.»

Экран мерцал тускло — как будто пульсировал вместе с его памятью. Режим энергосбережения включался, пока Ричард сидел на краю кровати, уставившись в пустоту.

Телефон уже был в руке. Он потянулся открыть чат с Деннисом — но его не было. Ни среди последних, ни в поиске. Он застыл. Листал вниз, вверх. Ничего.

Ричард медленно, с замиранием сердца, выбрал номер из контактов. Гудков не было. Только короткое: «Такой номер не существует».

Он сел, выпрямился. Дыхание участилось. Зашёл в журнал вызовов. Должны же быть входящие — приглашение на пляж, — голос Денниса, уверенный, громкий.

Пусто.

Прокрутил снова. И снова. Сжал челюсть. Внутри — холод. Как будто воспоминания перестали иметь подтверждение. Будто он вспомнил то, чего не было. Или что-то стёрлось.

Он встал и начал ходить по квартире. Наступил на крошку пластика — знакомый щелчок от треснутого CD, застрявшего в ламинате, отозвался где-то глубже, чем подошва. В кухне задел локтем шатающийся стол, и салфетка из-под ножки чуть сдвинулась, будто устала держать баланс. В круг — мимо кухни, затем в коридор, через гостиную и снова в кухню. Ноги двигались автоматически. Пальцы сжимались и разжимались.

Я мог стереть. Я мог забыть. Я… наверное, просто ошибся. Может, он звонил с чужого телефона. Или это был не звонок. А… разговор во сне?

Он остановился у окна. Снаружи — ничего. Ни машин, ни людей. Только дрожащий жёлтый свет фонаря и тонкий гул проводов.

Может, Деннис — это просто образ? Иллюзия, фантазия, склеенная из обрывков желаний и страхов? Как тогда объяснить тот эпизод — вечер, мониторы, ssh-сессия. Его голос: «Смотри в окно. Сейчас будет шоу». Вспышка — волна, солнце. Он захлёбывается, теряет доску. Деннис смеётся, подбадривает, толкает его обратно. Потом — свет. Или всё это я придумал?

Он медленно опустил лоб на холодное стекло, не отрывая взгляда от тёмной улицы.

Если его не было — кто тогда?.. Почему я это помню?.. Или… не помню?..

Ричард чувствовал, как сжимается грудная клетка. Виски пульсировали. Он сел на пол у стены, обняв колени.

А если… нет, это глупо. Или?.. Что, если всё перепутано? Что, если я просто… не там смотрю?

Но эта мысль казалась слишком дикой, чтобы быть правдой. Или — слишком правдивой, чтобы принять.

Он так и просидел — в тени от окна, в мерцающей темноте комнаты. Из глубины квартиры доносился глухой гул холодильника — неровный, обиженный, как будто техника тоже чувствовала себя заброшенной. В голове гудело. Внутри всё шаталось, как будто его внутренний каркас дал трещину.

Он не стал идти в «Берч кофе». Не стал никому писать. Телефон лёг рядом. Молчал.

Он остался дома. Один. И впервые допустил: возможно, дело не в том, с кем он, а в том, кем он был всё это время.

***

«Берч кофе» на 21-й улице — уютное, немного шумное место с высокими потолками и большими окнами, выходящими на улицу. Свет от фонарей преломляется в старом стекле, падает на деревянные столы с шершавой поверхностью. Потолок украшен сетью лампочек на чёрных шнурах, стены — голый кирпич и грифельные доски с кривоватыми надписями меловыми буквами: pour-over of the week — Ethiopia Sidamo, oat milk extra 1.25$. У прилавка шумит кофемашина, пахнет ванилью и жжёным зерном.

Анна сидит спиной к окну, стучит ложкой по стаканчику с матча-латте:

— Серьёзно, если он опять решил остаться дома с ноутбуком — я лично вытащу его на улицу за капюшон.

— Или за шнур от зарядки, — поддакивает Джейсон, уткнувшись в телефон. — Но у него же был вчера выходной? Или я опять всё перепутал?

— Блин, Джейсон, у тебя и выходной, и рабочий день — просто разные синонимы слова «вчера», — усмехается Лаура. — Он не отвечает, кстати. Прочитал, и всё.

— Может, у него похмелье. Или он медитирует. Или… — Омар делает паузу, отпивает из своего двойного эспрессо, — …завис в каком-нибудь чатике с очередным гуру по хакингу.

Анна закатывает глаза:

— Опять ты со своими теориями. У парня проблемы, а ты подливаешь масла в огонь.

— Я не подливаю. Я наблюдаю. — Омар пожимает плечами. — И замечаю. Он от нас отдаляется. После того дня — особенно.

Мгновение повисает пауза. Джейсон смотрит на экран телевизора, прикреплённого к стене рядом с кофемашиной. Тот показывает прямой эфир с канала NY1 News.

На экране — студия: стеклянный стол, за ним сидит ведущий в светлом пиджаке, улыбающийся, с гладко уложенными волосами. Надпись внизу экрана: «CityGroup: сбой или нечто большее?»

— А вот и наша главная тема, — говорит ведущий. — Два дня назад сотни тысяч клиентов CityGroup столкнулись с ошибочными списаниями и недоступностью сервисов. В студии — представитель банка, директор по корпоративной безопасности, Крис Лаутен. Добрый вечер, Крис.

— Добрый вечер, Майк, — кивает Лаутен, мужчина лет пятидесяти, с серебристыми волосами и строгим лицом. Сидит идеально ровно, руки сцеплены на столе. — Спасибо за возможность прояснить ситуацию.

— Расскажите нашим зрителям: что же всё-таки произошло во вторник? Соцсети полны слухов о кибератаке.

— Произошёл системный сбой в подсистеме обработки транзакций. Это была внутренняя ошибка программного обеспечения, не связанная с внешним вмешательством. — Лаутен говорит размеренно, явно отрепетированными фразами. — CityGroup уже компенсировал средства всем пострадавшим клиентам.

— Но клиенты говорят о странных списаниях. Мелких суммах, которые исчезли со счетов…

— Это побочный эффект сбоя в алгоритме округления. Техническая особенность обработки микротранзакций. Ничего критичного.

— А как же сообщения о взломе? В Twitter пишут про какого-то «Гнома»…

— Интернет полон домыслов, Майк. Наша служба безопасности провела полную проверку — никаких признаков взлома не обнаружено. — Лаутен чуть расслабляется, входит в ритм. — CityGroup инвестирует миллионы в кибербезопасность. У нас многоуровневая защита, которую просто невозможно обойти.

— Тем не менее, клиенты встревожены. Многие требуют объяснений…

— И мы их предоставляем. Именно поэтому я здесь. Готов ответить на любые вопросы.

— Отлично. Мы открываем телефонную линию для прямых вопросов наших зрителей. Операторы уже принимают звонки. Первый на линии — Дженнифер из Бронкса. Дженнифер, вы в эфире.

— Добрый вечер, — нервный женский голос. — У меня вопрос про безопасность. Я храню сбережения в вашем банке уже десять лет, и после этого инцидента…

Голос обрывается. Секунда тишины. Потом линия мягко щёлкает, и вместо Дженнифер звучит другой голос — синтетический, пропущенный через voice changer. Интонация весёлая, почти игривая:

— Добрый вечер. Разрешите представиться — DwarF. Возможно, господин Лаутен помнит мою визитную карточку.

В кофейне наступает тишина. Даже бариста замолкает. Ведущий растерянно смотрит на пульт — индикатор показывает, что Дженнифер всё ещё на линии, но голос совершенно другой.

Лаутен мгновенно напрягается — спина выпрямляется, лицо бледнеет, пальцы сжимаются на столе.

— Это… это невозможно. Линия защищена, звонки проходят предварительный отбор…

— От обычных звонков, — весело перебивает DwarF. — Но Крис, поверь: когда я хочу поговорить, обычные правила не работают.

Ведущий растерянно переводит взгляд между камерой и Лаутеном:

— Мы не можем верифицировать личность звонящего…

— А вот с этим я могу помочь, — DwarF звучит довольным.

На экране появляется знакомая анимация — пиксельный гном с зелёным колпаком. Он садится за стол переговоров, достаёт крошечный портфель и начинает раскладывать документы. Под анимацией бежит строка: «MEETING IN PROGRESS — PLEASE WAIT».

— Прекратите эфир! — кричит Лаутен в сторону режиссёрской.

— Мы пытаемся! — отвечает голос из-за стекла. — Ничего не работает!

— Ах да, — весело вмешивается DwarF. — Забыл упомянуть. Ваша техника сегодня работает на меня.

— Господи, — шепчет кто-то в кофейне.

— Как вы… вы взломали телевидение? — голос Лаутена дрожит.

— Взломал? — DwarF смеётся, и звук получается удивительно тёплым. — Крис, я просто пришёл на встречу. Ты же сам сказал — готов ответить на любые вопросы.

Лаутен вытирает лоб платком. Руки у него заметно дрожат.

— Что… что вы хотите?

— Ничего особенного. Просто хочу похвастаться, — DwarF говорит так, будто обсуждает погоду. — Знаешь, твоя защита была… как бы это сказать деликатно… смешной.

На экране появляется схема сети CityGroup — не упрощённая для публики, а настоящая внутренняя диаграмма с IP-адресами и именами серверов.

— Смотри, Крис. Вот здесь я вошёл. — Красная точка появляется на схеме. — А здесь получил права администратора. А здесь добрался до платёжного ядра. Заняло… — пауза, — …двадцать три минуты.

Лаутен хватается за край стола. Цвет лица меняется с бледного на серый.

— Вы не могли… мы используем лучшие…

— Лучшие? — DwarF прерывает его смехом. — Крис, у вас пароль от главной базы данных — «CityGroup2023!». С восклицательным знаком. Для надёжности, видимо.

Ведущий отпускает челюсть. В кофейне кто-то фыркает.

— Это… это засекреченная информация!

— Была засекреченной, — поправляет DwarF весело. — Сейчас она на экране у миллиона зрителей. Привет, зрители!

На экране появляется график падения акций CityGroup в реальном времени.

— О, смотри! Твои акции падают прямо сейчас. Минус сорок два процента. Впечатляет, правда?

Лаутен вскакивает с места, лицо краснеет:

— Прекратите эфир! Немедленно!

— Сядь, Крис, — голос DwarF становится насмешливо-строгим. — Мы ещё не закончили беседу.

Стул за Лаутеном сам отъезжает назад — очевидно, кто-то дистанционно управляет студийным оборудованием. Лаутен плюхается обратно.

— Видишь? Я контролирую не только ваши банковские системы. Твой стул тоже в моей власти.

DwarF смеётся — искренне, с удовольствием:

— Прости, не удержался. Это слишком весело.

— Что вы хотите?! — кричит Лаутен, теряя остатки самообладания. — Денег? Выкупа?

— Денег? — DwarF звучит удивлённо. — Крис, я уже взял ваши деньги. Два с половиной миллиона, если точно. Спасибо, кстати.

На экране появляется выписка с банковского счёта — цифры с большим количеством нулей.

— Но это не про деньги, — продолжает DwarF. — Я сделал это потому что… мог. Вы построили крепость и повесили табличку «Неприступно». А я не смог устоять перед вызовом.

Голос становится мечтательным:

— Понимаешь, это как решать головоломку. Только головоломка стоит миллиарды долларов и защищает деньги половины Нью-Йорка.

— Вы… вы псих, — выдыхает Лаутен.

— Псих? — DwarF хихикает. — Крис, я просто парень, которому скучно. Который любит интересные головоломки. А ваш банк оказался очень интересной задачкой.

На экране появляется новая анимация — гном играет в пинг-понг с файрволом, который выглядит как огромная стена. Каждый удар гнома пробивает в стене дыру.

— Знаешь, что было самым забавным? Ночью я изучал повадки стада, днём вышел на охоту. Ваши «сторожевые псы» из SOC честно лаяли на каждый шорох, хотя волк уже обустроился в овчарне и пересчитывал овец.

DwarF делает паузу:

— Кстати, передай Дженнис из отдела кадров: её кот очень милый. Видел фотки на рабочем столе.

Лаутен хватается за голову:

— Это невозможно… мы следуем всем протоколам…

— Протоколы? — DwarF фыркает. — Крис, твои протоколы написаны людьми. А люди ошибаются. Не думают. Кликают на всё подряд.

На экране мелькают скриншоты — письма с фишингом, которые получали сотрудники банка.

— Твой главный бухгалтер кликнул на ссылку «Срочно! Проблемы с зарплатной ведомостью!». Тёпленькая такая ссылочка. И вуаля — я внутри.

— Мы их учим…

— Учите теории, — перебивает DwarF. — А я использую практику. Человеческую природу. Любопытство. Страх. Жадность. От них нет антивируса, Крис.

Лаутен сидит с опущенной головой, полностью сломленный. Руки висят как плети.

— Не расстраивайся так, — утешает DwarF. — Это было весело! Ты молодец, что пришёл в эфир. Мужественно.

На экране появляется последняя анимация — гном снимает зелёный колпак и кланяется.

— Спасибо за игру, Крис. Увидимся в логах.

Связь обрывается. Экран мерцает и возвращается к изображению студии. Лаутен сидит как выжатый лимон, ведущий растерянно смотрит в камеру.

В кофейне повисла тишина. Потом Омар медленно выдохнул:

— Твою мать.

Анна откладывает стаканчик:

— Нас уволят. Всех.

— Он играл с ним, — шепчет Лаура. — Как кот с мышкой.

За окном проезжает полицейская машина с воем сирен. Потом ещё одна. И ещё.

— Интересно, — задумчиво говорит Джейсон, — а что, если он правда делал это просто для веселья?

Никто не отвечает. Все понимают: они только что увидели будущее. И оно выглядит страшно.

Глава 10. Зазор

Проснулся Ричард от еле уловимого гудения. Оно вплеталось в шум улицы за окном: капли по подоконнику, скрип тормозов где-то внизу, биение трансформаторной будки. Всё выглядело обыденно — но в этой обыденности было что-то неестественно ровное, как будто тишина слишком выверена, будто комната старалась не дышать. Полумрак. Занавеска сдвинута, в луче света висит пыль. Воздух — тёплый, несвежий, с кислой примесью. На языке — привкус пластика и металла.

Он перевернулся, под лопаткой — острый край пульта. Рубашка скомкалась под спиной. Тело ломило, как после тяжёлого сна. Потянулся — щёлкнули суставы. Щетина царапала ладонь. Всё происходило медленно, как под водой. Но ощущение было не просто странным — тревожным.

Гудение. Постороннее. Не холодильник. Не ноутбук — тот он выключал. Замер. Прислушался. Шум шёл со стороны стола. Глухой, ровный, как от блока питания. Словно кто-то подобрал частоту, чтобы не тревожить сразу.

С трудом поднялся на локтях и посмотрел в ту сторону.

Монитор светился.

Экран включён. Электрум-кошелёк открыт, интерфейс локальный. Последняя транзакция — входящая. Сумма небольшая, но в поле OP_RETURN — сообщение:

Not bad for a first job. — DwarF

Он сел. Пульс участился. Грудная клетка сжалась. Он точно выключал монитор. Перед сном закрыл всё, даже щёлкнул розетку у стола. Никто не мог этого включить. Никто, кроме него самого. Или…

Провёл ладонью по лицу, стряхивая остатки сна. Кожа — влажная, чужая. Подошёл ближе. Сообщение на месте. Клик по хэшу транзакции — детали загрузились. Адрес отправителя показался смутно знакомым. Слишком знакомым.

В животе сжалось. Он знал этот адрес. Когда-то его создавал? Пальцы замерли. В горле пересохло. В ушах звенело — не от шума, от внутреннего давления.

Он выдернул наушники. Те щёлкнули, будто сопротивляясь — сухо, почти обиженно. Но тишина в комнате была не тишиной. Она пульсировала. Словно воздух ждал. Экран светился неестественно белым, будто знал, что привлёк внимание.

— Я точно выключал. Я всегда выключаю.

Слова прозвучали вслух. Голос показался чужим. Только спустя секунду он понял — это был он сам.

Повернулся к монитору. Сообщение — как вызов. Или знак. Или издёвка. Или рассчитанный триггер.

Он выдохнул. Челюсть напряжена. Зрачки расширились. Ладони вспотели. По позвоночнику пробежала дрожь, как от приближающегося холода. На экране — всё тоже. Словно кто-то знал, что он это увидит. И подал реплику — впрямую.

Not bad for a first job.

— Чёрт, — пробормотал он. — Кто ты, мать твою, такой?

Он сел за стол. Руки дрожали, но двигались — быстро, механически, как при запуске аварийной процедуры.

Открыл окно терминала. Пальцы застучали по клавишам, набирая запрос к блокчейн-эксплореру для проверки деталей транзакции. Команда ушла на сервер, и ответ пришёл сразу — JSON-структура с полной информацией о переводе.

Ричард просматривал структуру транзакции, сверяя поля: вход, выход, метки. Адрес отправителя — слишком знаком. Почти интимный, как забытый пароль от чего-то личного. Замер. Открыл список локальных ключей в интерфейсе кошелька. Один — с меткой test-fork-2018. Тот самый.

Он забыл о нём. Или хотел забыть. Кошелёк, сгенерированный для экспериментов. Заброшенный. Ненужный. Безопасный — когда-то.

Но подпись совпадала. Один в один.

Виски гудели. Пульс давил в корни зубов. Он снова перечитал OP_RETURN. Слово «первый» казалось особенно мерзким. Как будто его втянули в чью-то игру — и теперь хвалят за дебют.

Это он. Или я?

На секунду показалось, что в отражении монитора он видит не своё лицо. Или не только своё.

Он резко закрыл терминал и погасил окно кошелька. Приложил пальцы к векам. Затем встал — как будто нужно было идти. Не потому, что знает. Потому что иначе всё развалится.

Шаг. Ещё один. Комната будто сузилась, потолок опустился. Мысли разгонялись, голос внутри звучал всё отчётливее.

— Ты думал, я не найду? — вырвалось вслух.

Тишина не ответила. Он прошёл вдоль стены, остановился у окна, глядя в серую улицу, где всё застыло, как на старом снимке. Руки дрожали.

— Это был ты, да? — голос срывался. — Всё это время ты просто сидел в тени… наблюдал, как я медленно дохожу сам?

Он чувствовал, как сердце бьётся в горле.

Пауза. Потом:

— Или я? Это я сделал?.. — голос стал тише, будто сдулся.

Он обернулся. Комната — всё та же. Свет на потолке будто стал холоднее, тусклее. Где-то в углу щёлкнули часы. Он не помнил, чтобы они работали. Экран на столе едва заметно мерцнул, словно кто-то тронул кабель.

Никакого движения, никакого отражения. Только он. Один.

Осознал: говорит вслух. Уже давно. И не замечает этого.

Он опустился обратно в кресло. Ладони на коленях, спина согнута. Вдох — медленный, как после забега. Грудь ходила ходуном.

Никакого ответа. Ни снаружи, ни изнутри.

Он молчал.

В голове оформилось: нужно проверить, существует ли Деннис.

И если да — кто из них двоих это начал.

***

Те же ступени. Те же турникеты. Металлический писк, короткое гудение, влажная струя воздуха из тоннеля.

Ричард ехал той же линией. Стоял, вцепившись в поручень, как будто от него зависело равновесие. Двери хлопали с одинаковым звуком. Свет мигал при каждом повороте.

Всё выглядело нормально — но воспринималось иначе. Пассажиры казались слишком неподвижными. Объявления — на долю секунды не в попад. Голос диктора был тем же, но с другим тембром — как будто актёр тот же, а мастеринг другой. Голос стал неузнаваемо ровным, пугающе стерильным.

Сквозняк дул из-под пола, пахло резиной, потом — чем-то электрическим. В голове крутилась одна мысль:

Я найду доказательства. Он не просто сбежал.

Пальцы сжимали поручень, суставы побелели. Металл под рукой казался чуть тёплым — не от тела, а как будто подогретым изнутри. Это ощущение было неестественным, навязчивым.

Кто-то в вагоне кашлянул — и Ричард вздрогнул. Слишком резко. Будто звук возник вне сцены.

Он попытался расслабить плечи. Не вышло. Словно всё вокруг — нарисовано, и только Ричард — настоящий.

Станции сменялись с чужими голосами, как в зацикленной петле. Становилось труднее различать, где реальность, а где воспоминание.

Следующая — моя.

***

Улица казалась знакомой, но будто пересобранной — та же планировка, те же фасады, но что-то в них было не то. Ричард шёл медленно, спина напрягалась с каждым шагом, пока не показался дом.

Забор — облупившийся, будто ссохшийся. А ведь он точно помнил другой: ровный, тёмный, лаковый. Сейчас — будто чужая декорация. Трава вдоль дорожки не скошена, почтовый ящик полон. Машины у подъезда нет. Окна закрыты, плотные шторы внутри поглощают свет. Ни движения, ни звука.

Он постоял на ступеньках прислушиваясь. Затем нажал на звонок. Один раз. Второй. Ни вибрации, ни отголоска за дверью — будто провал. Снова тишина.

Ричард обошёл дом по периметру. Во дворе — садовый шланг, перекрученный. Кресло, накрытое пыльным брезентом. Будто хозяин уехал давно, но оставил всё «как есть». Или же просто не хочет, чтобы его нашли.

Он вернулся к входу, прислонился к перилам. Голова закружилась от резкого запаха сырости и перегретого дерева, в глазах на мгновение потемнело. Всё было до странности знакомым. Слишком.

Я был здесь не один раз?

Мысль врезалась неожиданно. Он опустил взгляд: слева, на углу — царапина на краске. Ричард помнил, как она появилась. Царапнул ключом, промахнувшись мимо замка. Когда это было?

Он посмотрел на звонок — палец дрожал. Казалось, если нажмёт ещё раз — откроется не проход, а что-то другое.

Дверь в доме напротив скрипнула. Из тени крыльца вышел Джим — тот самый, с хмурым лицом и голосом, в котором всегда слышалась усталость. Он посмотрел на Ричарда и замер. Лицо дрогнуло — уголки губ напряглись, брови сдвинулись. Узнал.

— Опять ты? — голос сухой, почти отрывистый. — Тебе мало было в прошлый раз?

Ричард не сразу понял, что речь о нём. Он шагнул ближе, пересохло в горле. Рот открылся — и закрылся, без звука.

— Иди своей дорогой, пока полицию не вызвал, — добавил Джим. Не зло — как будто надоело. И ушёл обратно, захлопнув за собой дверь.

В прошлый раз?

Пальцы похолодели. В животе будто провалился мешок с гвоздями. Голова гудела, мысли разбегались. Он смотрел на закрытую дверь, будто за ней было объяснение.

Что я сделал?

Он отшатнулся, каблук соскользнул с края ступени — чуть не оступился. Пальцы вцепились в перила — металл был холодным, как умывальник в больнице.

Что он видел тогда?

Ричард шёл не оглядываясь. Асфальт под ногами казался зыбким, будто под ним не было опоры. За спиной — ни шагов, ни голосов. Только слабый скрежет внутри.

Он прошёл квартал, потом ещё один. Мысли путались: Джим, звонок, ключ, царапина, OP_RETURN, сияние экрана. В груди сжималось. Мир вокруг будто дышал — фонари мигали, воздух пульсировал, шум уходящего города становился то ближе, то глуше.

Ричард остановился у перекрёстка. Пальцы всё ещё дрожали. Посмотрел вперёд, потом — вниз. Слишком долго, как будто пытался вспомнить, где он. Потом — вслух, хрипло, почти шёпотом:

— Если ты меня подставил — я тебя вытащу. А если я — это ты… Тогда я всё равно хочу знать.

Он пошёл дальше. Шаги неровные, но без пауз. Словно страх остался позади, а он — ещё нет.

Глава 11. Инъекция прошлого

Ричард проснулся внезапно, как от удара изнутри — сдавленный вдох, грудь ходуном, пульс сразу в виски. Потолок — серый, знакомый, но будто замутнённый, как если бы взгляд был сквозь запотевшее стекло. Не сразу понял, сколько времени. За окном — ни звуков, ни света. Только глухой шум вентиляции и редкие потрескивания пластика, как будто квартира дышала отдельно от хозяина.

Во рту пересохло, ладони — липкие. Простыня сбилась в комок. Воздух был тяжёлым, с примесью старого пива, пыли и чего-то горького, будто перегоревшего кабеля. Он сел медленно. Ноги свесил с кровати, упёрся пятками в ламинат. Пол казался тёплым, но не от батареи — скорее, как после перегретой техники.

Ричард потянулся к столу. Клавиатура чуть сдвинулась под рукой, монитор вспыхнул сразу, минуя экран загрузки. Чёрное поле терминала с мигающим курсором — система была активна. В истории команд светилась последняя запись: запуск скрипта с прослушиванием порта. Временная метка показывала четыре утра. Сегодняшнее число.

Он застыл.

Ричард вызвал журнал логов:

journalctl –since “04:00”

Вывод пошёл сразу. Активность. Скрипт запускался. SSH-сессия с IP Ричарда. Короткие вызовы curl, затем создание бинарного файла в /tmp, и удаление его через три минуты. Как по сценарию. Как будто кто-то работал чётко, по шаблону. Только не он. Он в это время спал.

Он моргнул. Что-то сдвинулось внутри — не мысль, а телесное ощущение: будто нарушилось равновесие, как после резкого падения давления. Пальцы на клавишах чуть подрагивали. Он проверил bash_history.

Те же команды. Все от его имени. Временны́е метки совпадали. Команда gpg –sign с его ключом. GPG-идентификатор: тот самый, что он создавал четыре года назад для pet-проекта. Хэш совпадает.

Ричард наклонился вперёд. Руки вцепились в края стола. Спина напряглась. В голове пошло гудение, словно от перегрузки сети. Это был не страх. Это было… рассоединение. Как будто кто-то другой сделал всё это, но оставил его подпись.

Он с трудом поднялся и направился на кухню. Плеснул в лицо воды. Зеркало над раковиной было мутным. Лицо в нём — вымотанное, щетина, мешки под глазами. Но взгляд — незнакомый. Чужой. Сквозь зрачки он будто пытался разглядеть того, кто мог бы всё объяснить.

Возвращаясь, он вдруг споткнулся. Потерял равновесие, упёрся рукой в стену. Ладонь соскользнула, будто поверхность была влажной от невидимой плёнки. Он резко выдохнул. Тошнота подступила волной. Пришлось присесть на пол, облокотиться спиной на холодильник.

Грудная клетка сжималась. Он не мог вдохнуть глубоко. Паника накрывала не рывком, а плавно, как вода при погружении. Он попытался сосчитать вдохи. Один. Два. Плечи вздрагивали. В животе — холод. В ушах — звон.

— Я спал, — прошептал он. — Я спал. Я не мог…

Экран в комнате снова мигнул. Он поднялся шатаясь. Воздух в квартире был липким, как масляная плёнка. Ричард шагнул к компьютеру. Он тянулся неосознанно, будто двигался по инерции. Писать не хотел — но пальцы уже касались клавиш, уже печатали.

whoami

Ответ:

richard

Он усмехнулся коротко, плечи дёрнулись, как от внутреннего толчка. Как будто кто-то пошутил.

Он стёр команду. Напечатал другую:

echo "Ты это сделал?"

Enter. Тишина. Курсор мигал.

Он прищурился. Сел на стул. И произнёс вслух:

— Если ты здесь. Если ты меня слышишь. Скажи: зачем?

Квартира молчала. Но это была не пустая тишина, а напряжённая — как будто внутри что-то уже слушало. Ричард сидел перед монитором и чувствовал: с ним в комнате кто-то есть. Не телом — вниманием.

Он встал, прошёл по комнате, потом вернулся и снова сел — но усидеть не смог. Воздух был вязким, сдавливающим, будто что-то в нём густело от напряжения. Ричард обхватил себя руками и вслух сказал:

— Это не я. Я бы не стал. Я бы… не стал.

На мгновение показалось, что курсор в терминале мигнул по-другому. Не чаще — точнее. Словно ждал. Или отвечал.

— А ты бы стал, да? — бросил он в пустоту. — Всё это время ты ждал, пока я уйду в тень, чтобы выйти наружу?

Тишина. Но внутри уже клокотало. Не ответ — сопротивление. Давление, будто изнутри черепа что-то двигалось навстречу.

— Давай. Ответь. Раз уж ты там.

Он не заметил, как начал шагать по комнате. Он заговорил, не замечая, как слова вырываются сами:

— Я ничего не помню. Но это не значит, что это был ты. Может, это просто сон. Или кто-то ломает мой мозг, подкидывает файлы, симулирует поведение. Чёртов инжиниринг сознания. Или вирус. Или это… ошибка. Глюк.

Пауза. Он застыл перед дверью, не дойдя до неё шаг. В голове звенело.

— Или это ты. Ты.

Он подошёл к зеркалу. Вгляделся в лицо — своё, но не своё. Взгляд не держался. Лицо казалось асимметричным, как сдвинутый снимок — восприятие плавало, будто фокус не сходился на одном образе. Пульс стучал в висках. Внутренний голос, раньше теряющийся в шуме мыслей, теперь звучал отдельно. Чётко.

— Смешно, как ты цепляешься за контроль.

Ричард замер.

— Ты не настоящий, — выдавил он.

— А кто из нас настоящий? Тот, кто молчит? Или тот, кто делает?

— Прекрати.

— Я не начинал. Ты сам меня сделал. Ты хотел быть смелым. Харизматичным. Ты просто не справился — и отдал это мне.

— Заткнись.

— Ты хотел, чтобы тебя уважали. Чтобы тебя замечали. Чтобы ты не был тенью. И знаешь что? Я это сделал.

— Тебя не существует! — выкрикнул Ричард.

— Но ты всё равно говоришь со мной.

Он зажал уши. Сделал шаг назад. Комната будто сузилась. Он опустился прямо на пол, прижавшись спиной к стене. Сердце колотилось. Пальцы дрожали.

— Всё… всё подделано. Это мог быть кто угодно. Кто угодно.

— Кроме тебя?

В комнате снова стало тихо. Ричард тяжело дышал. Внутри него ещё звенело, как после громкой фразы в пустой комнате — не голос, а след от него, оседающий в костях. Он закрыл глаза. Веки дрожали. Под ногтями — пыль от пола. Холодный пот стекал по спине. Он остался сидеть у стола, полуобернувшись, с ладонями на полу. Дыхание сбивалось, но затихало — как будто вместе с ним замирало и всё вокруг. Мысли не возвращались. Только звенящий фон внутри и ощущение, что кто-то под кожей медленно двигается.

Он прикрыл глаза. Но вместо темноты пришли образы — как всплывающие окна. Вспышки сцен, в которых он будто участвовал. Или просто видел. Или… управлял?

Пляж. Обожжённая доска, пластиковая бутылка, песок, в который вдавлен след босой ноги. На коленях — ноутбук. Интерфейс знаком, как шрам. Скрип пальцев по трекпаду. Команда уже набрана. Курсор ждёт. Он хочет нажать — и не может. Потому что не знает, чья это рука. Она не его. Или не только его.

Он открыл глаза. Пространство вокруг не сдвинулось, но стало другим. Как будто фон остался прежним, а текстуры обновили. Он смотрел на стену, но видел кадр. На секунду — уверен: он стоит в комнате Денниса. Или позади кого-то, кто стоит там. Полутень. Те же экраны. Та же сцена, но с другого ракурса.

Ричард встал. Механически. Тело двигалось без команды. Он оказался у стола, хотя не помнил, как дошёл. Экран погас. Отражение стеклянной панели — тёмное, размытое. Он медленно дотронулся до поверхности. Кончиками пальцев. Холод. Но только на одном пальце. Остальные будто не чувствовали.

Он обернулся. В ушах — гул, как в серверной после сбоя питания. Звук без источника. Изнутри. Он прижался лбом к косяку двери. Тишина была слишком ровной, словно фон без сигнала. Только пульс. Но он не совпадал с ритмом в груди.

Мысли не собирались. Были лишь отдельные фрагменты: пароль, адрес, слово «inject». Ричард не помнил, кому это писал. И зачем. Но знал: писал. Или надиктовывал. Или читал вслух сам себе.

Плечи сжались. Холод пронёсся не по коже, а под ней. Никакого жара. Наоборот — обнуление. Словно тело больше не требовало ощущений. Только команд.

Он закрыл глаза. Зрение не отключилось. Всплыл терминал. Старый. Интерфейс 2018 года. Мигающий курсор. Комментарий в скрипте: # для неё. Он не знал, откуда это. Но чувствовал — не мог этого не знать.

Что-то изменилось в воздухе. Пахло… как тогда. Запах раскалённой пыли, старого кофе, выдохшейся ванили. Неощутимо знакомое — но обжигающе точное. Как будто кто-то распахнул окно в прошлое.

Он дёрнулся, как от вспышки. Глаза открылись — и вместо комнаты перед ним была кухня. Узкий свет из окна, тишина, как в капсуле. Милана сидит спиной, волосы убраны в спешке. Ричард не ощущал перехода — он был там, как будто всё это время находился внутри этого момента.

Девушка наклоняется к столу, кладёт планшет, поворачивает голову. Движения знакомы до боли, но он не помнит их.

— Ты ведь умеешь, — голос не её. Тон — слишком спокойный. — Просто сделай, чтобы никто не узнал.

Он хочет отвернуться. Не может. Это было. Или не было. Или это чужая сцена, вложенная в память. Он не знает, что ответил. Но чувствует: именно тогда что-то сдвинулось.

Он резко мотнул головой, будто отмахиваясь от наваждения. Губы дёрнулись. Пальцы сжались в кулаки. Тело вытянулось, как струна. Крик вырвался прежде, чем он осознал:

— Я никогда не нарушал закон!

Звук собственного крика рассёк воздух, как сигнал тревоги — резкий, почти механический. Комната вспыхнула и тут же провалилась в темноту, как если бы лампы мигнули на последнем напряжении. Он видел вспышки — белые, как при сварке, но без света. Мелькали фразы, лица, куски текста на экране. Ричард отступил, врезался в угол стола, но не почувствовал удара. Всё происходило не с ним, а внутри него.

В голове вспухла мысль, чужая и чёткая: «Ты знал. Всегда знал».

Он зажал уши, но звук не исчез. Попытался закричать снова — но горло сжалось, будто кто-то перекрыл воздух изнутри. Пульс сорвался. Лицо он не чувствовал. Был только шум. Хлопающий, дробящий, как обвал серверной стойки.

Он выдохнул — и вместе с воздухом ушло сопротивление.

Пол под ногами перестал быть плоскостью. Пространство накренилось. Не падение, а отключение гравитации. Свет стал зернистым. В ушах — глухой хлопок. Затем — ничто.

Пауза без времени. Как будто между кадрами.

Вечер. Кафе. Милана.

Глава 12. Ты ведь умеешь

Тепло с улицы уже не пробивалось — стекло держало наружный шум, оставляя внутри только джаз, звон посуды и равномерный гул голосов. За окнами — мягкий свет фонарей, отражения в лужах и редкие силуэты студентов с рюкзаками. Внутри пахло томатами, тёплым тестом и мятным чаем. В Think Coffee было привычно многолюдно, но уютно: деревянные столы, немного потёртые стулья, школьная доска с кривым меловым меню — и ощущение, что всё в порядке.

Ричард сидел напротив Миланы. Пустая чашка стояла сбоку, между ними — тарелка с мороженым и почти нетронутая паста. Он наклонился вперёд, упёрся локтями в стол и говорил негромко:

— …и главное — я даже не заметил, что стою в серверной босиком. Просто выкинул ботинки, чтоб не скользить, и пошёл искать, где коротит.

Милана улыбнулась, разломила вафельную трубочку и сунула кусочек в рот.

— И как результат?

— Никаких следов. Только я, с красными пятками, и админ, который потом неделю называл меня «пингвином безопасности».

Она засмеялась вслух. Ричард чуть расслабился. Посмотрел на неё. Свет от витрины падал на скулу, кожа тёплая, чистая, живая. Его рука почти дотрагивалась до локтя девушки.

— Слушай, — сказала она, чуть наклоняясь, — ты ведь говорил, у тебя есть старенькая тачка?

— Угу. Subaru. Дедовский вариант. Но едет.

— А ты бы меня покатал?

Он замер на полсекунды. Потом усмехнулся:

— Прямо сейчас?

— Сейчас вряд ли. У меня экзамен завтра утром. По вождению. — Голос стал чуть тише, она отвела взгляд в сторону.

Ричард приподнял брови:

— Уже сдаёшь?

— Уже третий раз. — Она скривилась. — Не получается. Я… я, вообще-то, хорошо готовлюсь. Но на площадке замираю. Руки ватные, дыхание сбивается. Как дура.

Он хотел сказать что-то ободряющее, но запнулся, подбирая формулировку.

— Может, тебе просто нужен другой инструктор? Или день. Или кофе получше.

Она хмыкнула:

— А ещё — кто-то, кто не будет тараторить сзади и говорить, когда повернуть. Я и так знаю. Но видимо, не в момент экзамена.

— Значит, это не ты, а обстоятельства.

— Может быть. Хотя иногда, мне кажется, будто сама система против.

Милана чуть подалась вперёд:

— А вообще, может, это заговор? Инструктор, экзаменатор и тормозная педаль объединяются против меня.

— Им явно платят за провалы. Чем больше пересдач, тем больше чаевых, — подыграл Ричард.

— Ладно бы чаевые. Я бы на их месте взяла с кандидатов подписку о невыезде и выдавала водительские только по суду.

Они рассмеялись — свободно. Это был их первый по-настоящему общий момент — без фальши, без роли. Просто двое, которым весело вместе, и этого достаточно. Словно на секунду действительно поверили в вымышленный сговор и были в нём заодно.

— Спасибо, — сказала она, глядя прямо.

— За что?

— Просто. За то, что ты не ржёшь. Другой бы сказал: «ха, баба за рулём». Или «может, тебе лучше в метро». А ты… ты нормальный. Спокойный.

Ричард пожал плечами, не зная, как на это реагировать. Внутри чуть потеплело. Он кивнул, будто принял комплимент как факт и откинулся на спинку стула.

— А ты знаешь, — вдруг сказала она, вытаскивая ложку из мороженого, — если бы ты не был таким тихим, я бы решила, что ты тот ещё игрок.

— Почему?

— Потому что с виду ты скромный, а шутишь метко. Обычно такие… опасные. И уверенные. Они знают, куда смотрят.

Он усмехнулся:

— Нет. Я скорее… безопасный. Даже скучный.

— Сомневаюсь.

Они досидели до закрытия меню. Ричард положил купюры под край блюдца, Милана натянула перчатки. Он придержал дверь, когда они выходили.

Снаружи было уже темно. Воздух стал плотнее, прохладнее. Улицы были залиты тёплым светом витрин и неоном. Прохожие шли вразнобой: кто-то торопился, кто-то болтал, кто-то просто плыл по потоку.

Милана шла чуть впереди, держа руки в карманах куртки. Движения резкие, но собранные — как у спортсмена после тренировки. Ричард догнал её, шагал вровень.

— Ты точно справишься, — сказал он. — Просто представь, что экзамен — это симулятор. Ты в песочнице, никто тебе не мешает. Сканируешь, оцениваешь, действуешь.

Она усмехнулась:

— Говоришь, как инструктор по кибербезу.

— Почти так и есть.

Молча дошли до перекрёстка. Слева был кампус, справа их дом. На углу загорелся жёлтый. Они остановились.

Милана посмотрела на него сбоку. На лице — лёгкая усталость, но не от вечера. Скорее, от чего-то другого.

— А если не сдам снова?

— Сдашь.

— А если нет?

Он посмотрел ей в глаза. И сказал:

— Тогда… может, найдём способ.

— Какой?

Он не ответил сразу. Свет светофора сменился. Они перешли дорогу. Рядом, с другой стороны улицы, заиграл уличный саксофон. Мелодия была простая, но в ней было что-то родное. Они шли молча, слушая её.

Идти домой оказалось легче, чем он думал.

***

Кухня тонула в вязком полумраке. Запах вчерашнего кофе и подгоревшего сыра висел в воздухе. На плитке — пятно от соуса, возле раковины — стопка посуды с потёками, а над ней — съехавшая полка с банками, одна скрипела каждый раз, как только тянуло с улицы. Только свет от вытяжки, тёплый, рассеянный, скользил по раковине и скатерти. Из окна тянуло вечерней прохладой.

Ричард стоял у плиты, доедал оставшуюся пасту прямо из кастрюли, держал её прихваткой. Футболка липла к спине, волосы — ко лбу. Он был уставший, но спокойный — как после сдачи кодового проекта, который держал в голове неделю.

Милана сидела за столом, босая, с кружкой зелёного чая. Спортивные штаны, короткий топ, волосы в пучке. Она смотрела в телефон, медленно листала ленту, потом резко убрала его в сторону — как будто раздражение в пальцах не давало продолжать.

— Меня сегодня опять завалили. — Голос ровный, будто нарочно. — Четвёртый раз.

Ричард молча кивнул. Жевал медленно.

— Уже не смешно. У меня хороший инструктор, я знаю все манёвры. Но как только экзамен — всё. Меня будто выключает.

Он поставил кастрюлю в раковину, включил воду.

— Что сказали на этот раз?

— Что я не «проявила уверенности в действиях». Что значит «не проявила»? Я же повернула! Я жму на тормоз, а они смотрят так, будто я сбила кого-то. — Она сжала пальцы на кружке. — Я не знаю, что делать.

Ричард вытер руки, обернулся. Она смотрела в сторону, будто боялась, что если встретит его взгляд — что-то сломается.

— Не бросай, — сказал он. — У тебя получится.

Она усмехнулась уголком рта:

— А если не получится?

Он ничего не ответил. Только подошёл ближе, опёрся о столешницу.

— Есть же другой способ, — сказала Милана, поднимая глаза. — Просто подправить. Одну строчку. Никто даже не заметит.

Он замер.

— Это незаконно.

— И?

— Я не лезу в чужие базы ради «чуть-чуть».

Она усмехнулась, наигранно надувая губы:

— Ну и ладно. Обойдусь. Как-нибудь.

Сказала легко, почти шуткой. Но в голосе зацепилось что-то острое — интонация срезала слишком точно, как будто пауза перед фразой была запоздалой, а взгляд — слишком прямым. Он не ответил. Только отвернулся. На секунду мелькнуло: не злишь, а проверяешь. Открыл кран, стал мыть кастрюлю. Металлический шум подменил разговор. Она осталась за спиной, неподвижная, как будто исчезла.

***

Полумрак. Постель. Мягкий свет от уличного фонаря ломается на шторах. Ткань постельного белья тёплая, кожа скользит по коже. Дыхание Миланы сбивается, пальцы вцеплены в простыню. Он сверху, двигается уверенно, рвано, сдерживая себя через силу.

Её руки гладят его спину, плечи. Ногти слегка царапают кожу — не больно, но ощутимо. Она поднимает бёдра навстречу, обхватывает ногами, притягивает глубже. В её дыхании — короткие всхлипы, почти стоны.

Ричард теряется в ощущениях. Мысли размываются, остаётся только тепло, давление, ритм. Их тела движутся синхронно, как будто нашли общую частоту.

Финал приходит волной — сначала она, потом он. Несколько секунд они лежат не двигаясь, только дышат. Пот остывает на коже.

Её тело расслабляется. Она замирает, дыхание выравнивается. Ложится на бок, укрывается простыней.

Ричард откидывается рядом. Чувствует приятную тяжесть в теле, расслабленность. Смотрит в потолок, где тени от штор рисуют мягкие полосы. Хорошо. Спокойно. Как давно такого не было.

Милана поворачивается к нему. Сонная, но не спящая. Рука ложится на его грудь, пальцы рисуют ленивые круги по коже.

— Знаешь, — голос тихий, дрёмный, — завтра опять экзамен…

Пауза. Её дыхание замедляется, но пальцы продолжают движение.

— Я так устала от этого. — Вздох. — Ты такой умный… можешь всё…

Ещё одна пауза. Он чувствует, как она борется со сном, пытается сформулировать мысль.

— Ты ведь умеешь… — голос почти шёпот. Она не договаривает, но смысл висит в воздухе между ними, тяжёлый и неотвратимый.

Ты ведь умеешь.

Голос — не резкий. Не чужой. Но не его. Ближе к внутреннему интерфейсу, чем к мысли.

Просто сделай. Никто не узнает, что это ты.

Он моргает. Горло сухое. Поднимается, осторожно откидывая одеяло. Милана не шевелится. Он идёт босиком, стараясь не шуметь.

На кухне — темно. Только контур окна и мигание сетевого адаптера на роутере. Ричард садится за стол. Открывает ноутбук. Слышно, как трескается пластик шарнира — крышка давно расшатана. Экран загорается. Мигает курсор.

Он сидел в темноте. Экран резал помещение холодным светом. Курсор мигал, как импульс — предвкушение команды. Рука на тачпаде. Палец чуть дрогнул — будто хотел отдёрнуться, но передумал.

Внутри — борьба. Часть его знала: это неправильно. Это преступление. Но другая часть, более сильная, уже планировала действия. Уже видела путь внутрь системы департамента транспортных средств штата Нью-Йорк (DMV).

На губах — ухмылка.

— Ну что, DMV. Поиграем.

Пальцы врезались в клавиши — слаженно, в ритме, как будто тело само знало, что делать. В голове — тишина, в руках — огонь. Он подался вперёд, локти на столе, спина прямая, дыхание короткое, сконцентрированное. В глазах — азарт.

— Серьёзно? user=milana в открытом виде? Вы правда просите, чтобы вас взломали?

Открыл веб-интерфейс. Взгляд скользнул по коду. Поиск пробит, инъекция — примитивная, всё складывается слишком легко.

— Ладно. Классика. ’ OR ‘1’=‘1’;– — и база как на ладони.

Он хмыкнул. Нашёл строку: Milana Reyes. Failed. ID: 904481.

— Исправим это недоразумение, мадам.

Пальцы скользнули по клавишам. Результат — «passed with distinction». Скрипт на отправку письма — от имени внутренней системы, со всеми нужными заголовками — готов. Всё выверено. SPF, DKIM — как в учебнике.

— Даже Gmail встанет и похлопает.

Он хрустнул пальцами. Пауза. Выдох. Команда на зачистку логов — влёт. Следов — нет.

Финальный шаг — клонирование строки в базе с новым ID. Старая удалена. Система принимает всё за чистую монету. Как будто всегда было именно так.

Вставка новой записи с другим ID в таблице базы данных — как подмена ДНК на месте преступления: технически чисто, юридически неотличимо.

Он резко откинулся в кресле, будто пересёк финишную черту. Грудь ходила от адреналина. Губы чуть подрагивали от сдерживаемого смеха.

— Ну что, DMV. Было приятно.

Монитор продолжал светиться. На экране — отражение. Вроде бы он сам, но что-то сместилось: угол наклона головы, блеск в глазах, ухмылка — на полсекунды дольше, чем нужно.

Ричард прищурился. Сердце сорвалось, как на старте — не страх, а вспышка узнавания.

Отражение смотрело в ответ. Не моргало.

Он пошевелил пальцами. Там — то же самое. Только будто чуть раньше.

Курсор снова мигнул. Он задержал дыхание, ощутил гул в ушах — и кивнул, будто принял вызов.

***

Утро было обыденным. Лёгкий запах кофе, слабое солнце на стене, шелест горячей воды в душе. На кухне — сковорода, подрумяненные тосты, чайник на подставке. Всё, как обычно.

Милана у плиты готовила яичницу. Волосы собраны, лицо свежее. Босая в длинной рубашке, насвистывает. Вокруг — лёгкость.

Ричард сел за стол. Двигался вяло, будто в теле не хватало напряжения. На щеке отпечаталась складка от подушки, глаза щипало от света. Он не знал, сколько спал, но тело подсказывало — недостаточно: ломота в плечах, затёкшая шея, глухая тяжесть в затылке. Мысли путались, будто он только что вынырнул из слишком глубокого сна. Внутри — пусто, как после простуды: слабость, но без температуры. Он смотрел на стол, будто пытался вспомнить, зачем пришёл.

— Доброе утро, — сказала Милана не оборачиваясь. — Ты спал как убитый.

Он кивнул. Потом вспомнил, что она не смотрит, и пробормотал:

— Угу.

Она поставила на стол тарелку. Рядом — два тоста, кружка с чаем, маленькая миска с мёдом. Ричард едва взглянул. Взял ложку. Тихо размешал чай. Рука двигалась автоматически.

Милана села напротив, подогнув под себя ногу.

— Сегодня пары с восьми. Потом в деканат, а потом… — она говорила спокойно, по-деловому. — А у тебя что?

Он пожал плечами. Ответа не было. Мысли не собирались. Она не заметила. Или сделала вид — как будто хотела пощадить, дать ему пространство, не тревожить лишними вопросами.

Через двадцать минут они вышли из квартиры. Она — в джинсах и куртке, он — в худи, небритый. У подъезда она чмокнула его в щеку, сказала: «Удачи». И пошла первой, не оглядываясь.

Ричард замер на месте. Всё казалось слишком ровным — как в кино, которое он уже видел. Он посмотрел ей вслед, но в памяти это не отложилось. Потом повернулся и пошёл в обратную сторону, будто выбирая другой дубль.

***

Он вернулся, как обычно. Ключ в замке щёлкнул. Свет в коридоре горел. Из комнаты — шаги. Милана появилась мгновенно, будто ждала за дверью. Улыбка — широкая, тёплая. Прыгнула к нему, обняла за шею, поцеловала в щёку, потом в губы.

— Спасибо! — сказала с жаром. — Я знала, что ты не откажешь. Ты лучше всех.

Ричард растерянно смотрел на неё. Губы приоткрыты, дыхание поверхностное. Зрачки расширены, взгляд расфокусирован, пальцы чуть дрожали, как после резкого холода. Он не мог понять, что происходит — даже телу было неясно, как реагировать. Он не знал, что сказать. Не понимал, о чём речь.

— Да не за что… — выдавил он.

Она уже вернулась в комнату. Свет стал тусклее. Он остался в коридоре. Стоял не раздеваясь. Ни одной мысли — только телесный отклик, будто проснулся не в том теле.

Он прошептал:

— Что?..

Свет погас. Шаги затихли. Мир будто остановился.

Он не знал, где был прошлой ночью.

Внутри — темнота. И всё.

Глава 13. Вторая подпись

Воздух стоял плотный, с привкусом пыли. Небо — тусклое, серое, без движения, как застывшее отражение в мутном стекле. Ричард пересёк улицу, не оглядываясь: ни машин, ни прохожих — только ровный шум в голове и навязчивое ощущение, будто возвращается туда, откуда пытался уйти.

Дом стоял на своём месте. Чужой. Слишком правильный. Забор — ровный, плитка на дорожке без трещин. На стекле — ни пылинки, ни отпечатков. Фасад как фасад. Только в этом «как» чувствовалась подделка — будто он видел не дом, а рендер.

Он поднялся по ступеням. Подошёл к двери. Постоял. Секунда. Другая. Нажал на звонок. Один раз. Второй. Ни щелчка, ни отголоска, ни реакции.

— Деннис?.. — голос прозвучал тихо, глухо, будто сам себе мешал говорить.

Лоб уткнулся в косяк. Тишина в ответ.

Сделал шаг назад. Почти развернулся, но что-то дёрнуло. Мимолётный образ: рука тянется под коврик. Сдвиг. Щелчок. Тайник.

Присел. Медленно. Колени будто гудели. Под ковриком — деревянная планка. Сухая, тёплая. С усилием — поддалась. Внутри — ключ. Маленький, чёрный, с царапиной на головке.

Замер. Горло сжалось. Смотрел на ключ, как на улику в собственном деле.

— Откуда… — выдох. Недоговорённость повисла в воздухе.

В голове вспыхнула гипотеза: Деннис проговорился. Может, в баре. Или на пляже. Или тогда, когда…

Или.

Дальше думать не стал. Взял ключ. Поднялся. Вставил в замок. Повернул. Без усилий. Щелчок — тихий, будто не в замке, а в груди. Плечи едва дёрнулись. Выдох.

Вошёл внутрь.

Дверь закрылась с глухим щелчком. Ни пылинки. Ни звука. Только приглушённый лязг — и вязкая тишина.

Внутри пахло отсутствием. Воздух был стерилен, сух, с примесью пластика или моющего средства. Всё напоминало шоурум или отельный номер, куда ещё не заселялись.

Пространство не звучало. Оно не отражало звук — оно его гасило, словно впитывало в себя любые проявления жизни. Ричард задержался на пороге. Прислушался к собственному дыханию. Возвращалось оно глухо, будто теряло силу.

Пол ровный, чистый, стены серо-графитовые, матовые. На них — постеры: геометрия, абстракция, один — в духе Bauhaus. Всё аккуратно, без акцентов. Мебель простая, дорогая, будто выбрана дизайнером под стандарт.

В прихожей — пустая вешалка. В углу — новый зонт с биркой. На консоли — ничего. Ни ключей, ни бумаг. Ничего, что указывало бы на живущего.

Он пошёл дальше. Свет сверху — ровный, без бликов и теней. Мягкий, но не тёплый. Кухня выглядела новой: хром, матовое стекло, чистые поверхности. Раковина сухая. Стол пуст. Холодильник гудел монотонно, как вентилятор в пустом офисе.

Гостиная за стеклянной дверью. Кресло — по центру ковра. Пульт — под прямым углом. На столике — ничего. Ни пыли, ни следов.

Он остановился. Смотрел. Медленно выдохнул.

— Не так живут, — сказал тихо.

Слова растворились в воздухе, не оставив следа. Но внутри — отклик. Что-то сдвинулось. Мысль: он уже бывал здесь. Не как гость. Как тот, кто знает, как устроено. Как тот, кто проектировал.

Кабинет — на втором этаже. Ричард не вспомнил. Он знал. Направился к лестнице. Шёл точно, без колебаний, будто по схеме.

Порог. Поворот. Несколько ступеней. Свет меняется: внизу холодный, сверху — чуть теплее. Но не мягче.

С каждым шагом — тишина плотнее. Как будто воздух сжимается. Здесь давно не разговаривали. И не должны были.

Он остановился у двери. Не дотрагиваясь. Стоял. Мысли разбегались. В теле — знакомое сжатие, как перед входом в операционную.

Поднял руку. Замер. Что-то удерживало — не страх, а предчувствие.

Коснулся ручки.

Открыл.

Комната встретила тишиной — плотной, глухой. Воздух был холоднее, чище, с привкусом пластика и тонкой озоновой нотой, как после включения нового оборудования. Здесь даже шаг звучал лишним.

Кожаное кресло по центру. Перед ним — стол, выверенный по пропорциям. Поверхность — тёмное дерево, ни царапины. Двойной монитор под одним углом. Настольная лампа, внешний SSD на подставке, закрытый блокнот. Клавиатура чистая. Мышь тёплая, будто кто-то только что убрал руку. Кружка рядом — пустая, но вымытая. Без следов.

Ричард подошёл. Пальцы коснулись спинки кресла. Он не толкнул его, а чуть сдвинул, как если бы вспоминал, под каким углом обычно сидит. Уселся. Спина выпрямилась, рука скользнула по клавиатуре. Уверенно. Без поиска.

Движение мыши разбудило систему. Мониторы вспыхнули, консоль открыта. Никаких окон, никаких уведомлений. Только строка приглашения: dwrf-vault >

Промт кастомный. Но — знакомый.

Он ввёл alias. Строка вывела команды — короткие, чёткие, оформленные в его манере. В .bashrc — автозапуск привычных процессов. В конфигурациях — строгость и чистота: аккуратный конфиг tmux, знакомый .vimrc, его цветовая схема. Названия директорий — ~/vault, ~/tools, ~/payloads — как с его старой машины.

Ричард не искал. Пальцы двигались автоматически: переход между окнами, вызов сессий, чтение логов. Память тела работала быстрее разума.

Он замер, откинулся в кресле и медленно выдохнул.

Экран отражался в очках. Лицо было спокойным. Внутри — не страх и не волнение. Тепло узнавания. Как будто он давно здесь работал — и, наконец, вернулся.

Он смотрел на терминал. На строку. На порядок. И не мог понять: чужое это место — или своё.

Впервые он подумал: возможно, это и есть дом.

Ричард встал. Кабинет не возражал — только тишина задержалась на полсекунды дольше, чем нужно. Он вышел в коридор, прошёл мимо лестницы. Свет наверху был тусклым, размытым.

До ванной — несколько шагов. Он шёл без цели, остановился, когда взгляд случайно зацепил зеркало.

Из отражения смотрел он. Но не совсем. Взгляд — спокойный, с оттенком насмешки. Подбородок — чуть выше, плечи — расслаблены. Волосы аккуратно уложены, будто после парикмахерской. Лицо отдохнувшее, без теней усталости.

Не испугался. И не удивился. Просто замер. Словно ждал, что отражение сделает первый шаг.

Не сделало.

Он чуть склонил голову. Отражение повторило движение с опозданием на долю секунды. Его взгляд не отпускал — изучал, оценивал. Спокойно и без агрессии.

Ричард развернулся. Вернулся в кабинет.

Сел, будто и не выходил. Рука — на мыши. Экран — тот же. Ждал. Точка в терминале мигала в прежнем ритме — размеренно, неотступно.

Как пульс чужого сердца.

Терминал ждал. Всё было на месте — как будто этих нескольких минут в коридоре не существовало. Курсор мигал ровно. Свет от монитора казался резче, плотнее.

Ричард подвёл указатель к списку файлов. Каталог ~/vault/bin/ — почти пуст. Пара скриптов, архив. Один исполняемый файл без расширения: escape_dwarf. Название ничего не объясняло, но взгляд зацепился. Как за фразу, знакомую по интонации, а не по смыслу.

Дата последнего изменения — ночь перед атакой на банк.

Он замер. Пальцы на мыши застыли. Только потом понял, что не дышит. Воздух в груди стоял плотно. Сердце билось в горле.

Клик. Терминал вздрогнул, экран стал чёрным. Без курсора. Ни строки. Пауза.

Появился гном. ASCII-графика, но прорисованная детально — каждый символ на своём месте. Зелёный колпак из треугольников, сумка через плечо, выложенная квадратиками. В руке — фонарь из скобок и тире, от которого расходились лучи-слэши. Он стоял у входа в пещеру, набранную плотными решётками #. Под ногами — пунктирная тропа, уходящая за край экрана. Всё неподвижно, каждый пиксель выверен. Как будто кто-то потратил часы на то, чтобы нарисовать это символами.

Строка:

You found the way out.

Больше ничего. Ни кода, ни ошибки. Ни реакции.

Через несколько секунд всё исчезло. Терминал вернулся к обычному виду — тёмный фон, строка dwrf-vault >, мигающий курсор.

Ричард не шелохнулся. Ладони на столе — влажные. Дыхание неглубокое. Пульс в висках. Во рту пересохло. Всё тихо. Всё ровно. Как будто ничего не было.

Но было.

Он смотрел на экран. Как на след. На знак. Простое мигание точки — и всё же в нём чувствовалась адресность. Словно экран ждал не ввода. А ответа.

Как пульс.

Как чужой сигнал, который он почему-то узнал.

Ричард не знал, что именно произошло. Но ощущал: это было важно. Что-то сдвинулось. Что-то встало на место.

Файл появился за считаные часы атаки. Всё выглядело… знакомо. Слишком знакомо. И не только по технике — по ощущению.

Он знал, как устроена система. Слишком точно. Он чувствовал, что это был либо Деннис. Либо он сам.

Ричард выдохнул. Медленно, тяжело. Руки дрожали — едва заметно, но он чувствовал. Пауза навалилась всей тяжестью. Ни страха. Ни восторга. Только шок — и узнавание.

Не образ. Не мысль. Ощущение. Возврат в место, где уже был. Внутри себя.

Голос. Не внешний. Внутренний, но отчётливый: — «Теперь ты видишь?»

Он не ответил. Но и не спорил.

Не было желания фиксировать, объяснять, расставлять акценты. Всё важное уже сказано — не словами, а самим фактом присутствия.

Он сидел у терминала. В кабинете, который больше не казался чужим. Смотрел на дерево директорий, как на дневник, в котором каждое второе слово — его, Ричарда. Даже если написано другим шрифтом.

И впервые за долгое время не чувствовал сопротивления. Только тишину. Настроенную под него.

Глава 14. Талон А-17

Ричард проснулся от вибрации телефона. Едва уловимое дрожание вытащило из сна. Комната — его спальня: серый потолок, ноутбук на столе, закрытые шторы. За окном — гул города, ещё не проснувшегося полностью.

Экран смартфона уже светился. Уведомление от Анны:

Ты уже читал новости?

Загляни на pastbin по ссылке.

Reddit сходит с ума.

Он открыл ссылку, не поднимаясь с кровати. В браузере — Pastebin. Без заголовка, только фрагмент лога:

[DBG] init_display()

[DBG] cmd_parse(route_config)

[DBG] src_hash: rw_subway_mta_19

[DBG] injected by: /usr/local/bin/

[NOTE] comment: “# you missed the stop, buddy”

Секунда — и узнавание. rw_subway_mta_19 — его старая тестовая метка. Не хэш в строгом смысле, а служебная строка, которую он придумал для отладки. Никто больше так не называл. Он знал: это его.

Сел на край кровати. Лог — короткий, но почерк узнавался. — путь и имя выглядели как из его архива. Комментарий — дерзкий, ироничный. Так он писал, когда хотел, чтобы заметили.

Открыл Reddit. В топе — MTA (Metropolitan Transportation Authority), NYC, DwarF. Скриншоты табло с GHOST-LINE, жалобы пассажиров, видео с платформ. Кто-то выложил push-уведомление:

DWRF SAYS: You missed your stop.

Поезда ходят по кругу. Конечных нет. Приложение показывает фантомный маршрут, ETA скачет, карты не грузятся. Reddit делится: кто-то шутит, кто-то паникует, кто-то называет это уличным искусством.

Ричард смотрел на экран. Пальцы побелели от напряжения, но дыхание ровное. Паники — нет. Только холодная ясность. Всё выглядело как демонстрация: аккуратная, без разрушений, с подписью. Как спектакль — не взлом, а заявление.

Он встал. Натянул рубашку поверх футболки, на ходу закрыл молнию рюкзака. Ноут — внутри. Ключи в кармане. Он вышел быстро, не теряя темпа, не оглядываясь.

Свернув с третьей улицы, Ричард направился в антикафе — Wi-Fi, кофе, анонимность. Именно это ему сейчас и было нужно. Утренний воздух липкий от влажности, но прохлада ещё держится. Он идёт быстро не оборачиваясь. Дверь открывается легко — без скрипа, с коротким звонком колокольчика.

Внутри — стекло, бетон, шершавые стены. На столах — розетки, пустые чашки, пара ноутбуков. Бариста в наушниках кивает не вставая. Из колонок — lo-fi, ровный, ненавязчивый.

Ричард проходит в угол, ближе к окну. Садится спиной к стене. Вокруг — утреннее безразличие, запах молотого кофе, стеклянная тишина. Из рюкзака — ноут, блокнот, кабель. Подключается. Wi-Fi без авторизации. Рядом — кнопка вызова кофе. Он не нажимает. Пальцы холодные, дыхание чуть чаще нормы.

Экран гаснет и тут же вспыхивает. Он не тратит время на почту, не открывает мессенджеры. Сначала — GitHub.

Репозиторий давно заброшен. Последний коммит — полтора года назад. Но есть новый pull request. Вчерашний.

Автор — richard. Подпись — DWRF. Комментарий:

# better not leave fingerprints, right?

Ричард не двигается. Курсор на экране мигает. Внутри — ничего, кроме гулкого ощущения, будто кто-то оставил сообщение на его языке, его голосом, но не он сам.

Он листает изменения. Несколько строк: переработка сравнения хэшей, замена analyze_token() на более лаконичную sig_match(). Удалены временные print-заглушки. Почерк — знакомый. Комментарии в коде — те же сокращения, те же переносы. Пальцы узнают раньше сознания.

Он закрывает вкладку. Переход — Alt+Tab, автоматическое движение. Thunderbird.

Папка CrashRecover-02. Он её не создавал. Не помнит даже падения.

Внутри — одно письмо. Черновик. .eml, неотправленное.

Тема: пусто. Тело:

«Ты знаешь, как обойти вход. Просто не хочешь вспоминать».

— R.

Он смотрит на заголовки. Отправитель — его адрес. Время — 03:42, две недели назад. Место — его ноутбук. IP совпадает. Письмо никто не отправлял. Но оно было написано — на его машине.

Горло пересыхает. Он сглатывает. Пальцы на тачпаде — напряжены. Большой палец машинально касается мизинца — старый жест, когда он врал родителям. Тогда это его выдавало.

Третье окно — терминал. Он открывает ~/.cache/sshghost/

Файл : размер — 6.4 КБ, открывается без пароля.

Три строки команд. Подключение через Tor, копирование архива на удалённый сервер, запуск установочного скрипта. Лаконично, профессионально — след чьей-то работы в теневой сети.

Метка времени — ночь атаки на Daily News. Тогда он и не думал, что это может быть он. Просто совпадение, шум, чужая работа.

Теперь — лог у него. В его кеше. Файл создан под его юзером. Без sudo.

Он откидывается на спинку. Вдох — неглубокий, с усилием. Плечи не поднимаются. Смотрит в сторону, но ничего не видит. Всё вокруг — как фон. Бариста делает пену, парень в углу смеётся, свет от окна бликует на стекле. Но сам Ричард не здесь. Музыка в колонках идёт по кругу. Кофе так и не заказан. В антикафе — тишина, редкие касания клавиш, вдалеке кто-то разговаривант в наушниках с микрофоном.

Ричард смотрит в терминал. Потом — на имя в заголовке окна. Логин: richard. Всё тот же. Всё там же.

Тихо, почти беззвучно, проговаривает:

— А если всё это — я?

Внутри — безмолвие, будто что-то замерло, дожидаясь отклика.

Ричард остался неподвижным. Курсор в терминале мигал — ровный пульс на чёрном фоне. За окном город набирал обороты: машины, голоса, сирены вдалеке. Но здесь, в углу антикафе, время застыло.

Он закрыл терминал. Движение автоматическое — Ctrl+D. Экран вернулся к рабочему столу. Пустота.

Язык прилип к нёбу. Кофе так и не заказан — только сухость во рту, металлический привкус. Открыл браузер. История — чистая. Он помнил, как удалял кэш три дня назад. Или думал, что помнил. Теперь каждое воспоминание казалось ненадёжным, будто просмотренное через мутное стекло.

Пальцы зависли над клавиатурой. Холодные — кондиционер работал на полную. Потом — быстро, почти судорожно:

когнитивный поведенческий психотерапевт Нью-Йорк

Enter.

Результаты высыпались списком. Psychology Today, частные практики, рейтинги. Он пролистал, не вчитываясь. Слова сливались: тревожность, депрессия, панические атаки. Не то.

Backspace. Новый запрос:

диссоциативное расстройство симптомы

Страница загрузилась медленнее. Множественная личность. Провалы в памяти. Ощущение наблюдения за собой со стороны. Челюсть напряглась — он заставил себя расслабить её. Открыл первую ссылку — медицинский портал. Читал по диагонали: амнезия, переключение между состояниями, конфликт идентичностей.

Закрыл вкладку. Пальцы дрожали — едва заметно, но он чувствовал. Набрал:

могу ли я делать что-то не помня

Нет. Стёр, не дожидаясь результатов. Слишком прямо. Слишком похоже на признание.

Бариста прошёл мимо, собирая пустые чашки. Ричард инстинктивно прикрыл экран рукой. Подождал, пока шаги стихнут.

Новый поиск:

частная психиатрическая клиника Манхэттен

Третья ссылка — сдержанный дизайн, никаких стоковых фото улыбающихся людей. Только текст: «Конфиденциальная помощь. Современные методы. Запись онлайн».

Он кликнул.

Форма открылась сразу. Простая, без лишних полей. Имя, email, телефон. И последнее — «Причина обращения».

Курсор мигал в пустом поле. Ричард смотрел на него, как на пропасть.

Начал печатать:

Потеря сна. Навязчивые образы. Возможно, эпизоды потери контроля.

Прочитал. Слишком размыто. Слишком похоже на обычную бессонницу программиста. Delete.

Проблемы с концентрацией. Двойственная реакция на действия. Иногда кажется, что я не я.

Хуже. Звучало как цитата из дешёвого триллера. Выделил всё. Delete.

Пауза. В антикафе стало тише — утренняя смена закончилась, дневная ещё не началась. Только lo-fi из колонок, да гул кондиционера. На соседнем столике остыла чья-то недопитая чашка. Коричневое кольцо на дне.

Он набрал одним движением не останавливаясь:

Хочу проконсультироваться по поводу возможного расстройства личности.

Посмотрел на текст. Сухо. Конкретно. Без паники.

Палец завис над тачпадом. Лёгкое давление — ещё не клик, только касание. Поверхность чуть прогнулась под большим пальцем. На третьей секунде — нажал. Щелчок показался громким в тишине.

Экран мигнул. Загрузка. Потом — белый фон, текст и зелёная галочка:

Спасибо за обращение.

Вы записаны на пятницу, 11 июля, 14:30.

Адрес: 425 Ист 61-я стрит, офис 402

На ваш email отправлено подтверждение.

Верхний Ист-Сайд. Частная практика. Недёшево. Но анонимно — страховка не понадобится.

Ричард откинулся в кресле. Спинка скрипнула — дешёвый пластик. Он смотрел на экран, но текст уже не читал. Слова расплывались.

Пятница. Послезавтра. Сорок восемь часов до… чего? До диагноза? До подтверждения того, что он уже знал?

Или до опровержения. До простого объяснения: стресс, переутомление, паранойя. Таблетки, отдых, всё пройдёт.

Он не чувствовал ни облегчения, ни страха. Только странную пустоту — как после долгого бега, когда останавливаешься, а пульс ещё гонит кровь по инерции.

Закрыл ноутбук. Убрал в рюкзак — механически, не думая. Встал. Ноги затекли — он не заметил, сколько просидел.

У выхода обернулся. Антикафе выглядело точно так же, как когда он вошёл. Будто ничего не произошло. Будто он не принял решение, которое может изменить всё.

Или не изменить ничего.

Дверь закрылась за ним с тихим звоном. Улица встретила влажным теплом и шумом. Ричард пошёл, не выбирая направления. Просто вперёд.

В кармане завибрировал телефон. Уведомление от клиники: «Напоминание о записи». Вибрация продолжилась — ещё два сообщения.

Он не стал смотреть. Переключил на беззвучный режим. Телефон затих, но Ричард всё равно чувствовал его вес в кармане. Как камень. Как якорь к реальности, которую он больше не мог игнорировать.

***

Стеклянные двери раздвинулись беззвучно. Внутри — прохлада кондиционера, запах дезинфектора, приглушённый свет. Частная клиника на Ист-Сайде выглядела как офис IT-компании: минимализм, пастельные тона, никаких намёков на медицину.

Ричард подошёл к стойке регистрации. Вместо человека — сенсорный терминал. Экран загорелся при приближении:

Добро пожаловать в Westside Mental Health

Введите последние четыре цифры телефона

Он набрал. Система подумала секунду.

Ричард Уотсон

Приём в 14:30

Подтвердить?

Палец коснулся зелёной кнопки. Терминал выдал талон — обычная термобумага с QR-кодом и номером: А-17.

— Вы на 14:30? — голос справа. Администратор за стеклянной перегородкой даже не подняла глаз от монитора. — Зал ожидания прямо, потом налево. Вас вызовут.

Коридор вёл мимо абстрактных картин — размытые формы, успокаивающие цвета. Ричард свернул. Зал ожидания встретил тишиной библиотеки.

Кожаные кресла полукругом. В углу — автомат с чаем и кофе, рядом кулер. На низком столике — стопка журналов. Три человека в креслах: женщина в AirPods листала планшет, мужчина средних лет изучал какие-то бумаги, девушка смотрела в окно.

Ричард выбрал место у стены. Сел. Талон в руке стал влажным от пота. Он сунул его в карман.

На подоконнике — книги. Кто-то оставил для общего пользования. Он прочитал корешки: «Раздвоение личности: миф и реальность», «Пограничные состояния сознания», «Диссоциация как защитный механизм». Отвернулся.

Электронное табло над дверью в коридор показывало текущий номер: А-14. Цифры менялись медленно, с интервалом в несколько минут. Негромкий сигнал — и новый номер.

Ричард достал телефон. 14:27. Экран заблокирован, уведомлений нет. Убрал обратно.

Женщина с планшетом встала, прошла в коридор. Табло: А-15.

Дыхание стало осознанным — вдох на четыре счёта, выдох на четыре. Техника из старой статьи о панических атаках. Он не паниковал. Просто контролировал.

А-16.

Мужчина с бумагами поднялся, аккуратно сложил документы в папку. Исчез за дверью. В зале остались только Ричард и девушка у окна.

Сигнал. Табло вспыхнуло:

А-17

Пациент Ричард Уотсон

Кабинет 3

Он не встал сразу. Секунда — просто чтобы собраться. В этот момент дверь коридора открылась.

Из неё вышел мужчина. Того же роста. Похожая комплекция. Джинсы, тёмная рубашка — но носит иначе, свободнее. Походка другая — не напряжённая поступь Ричарда, а что-то более расслабленное, текучее.

Мужчина прошёл через зал не оглядываясь. Профиль мелькнул на секунду — знакомый изгиб носа, линия челюсти. Но что-то неуловимо чужое в повороте головы, в жесте, поправляющем волосы.

Фигура скрылась за углом. Ричард моргнул. Зал ожидания — пустой, только девушка у окна.

— Ричард Уотсон? — медсестра стояла в дверях коридора. Белый халат, планшет в руках. — Кабинет номер три, я провожу.

Он смотрел в пустой проход, куда ушёл мужчина. Обычный коридор. Никого.

— Мистер Уотсон?

Пальцы медленно сжались на подлокотнике кресла. Кожа скрипнула под давлением. Внутри — странная ясность. Не страх. Не облегчение. Просто понимание: шаг вперёд изменит всё. Или не изменит ничего.

Медсестра ждала. Профессиональная улыбка, но в глазах — лёгкое беспокойство. Сколько он сидит, не двигаясь? Секунду? Минуту?

Ричард встал. Движение получилось резким — словно что-то толкнуло изнутри. Или кто-то.

— Идёмте, — медсестра развернулась. — Доктор Харрис вас ждёт.

Он сделал шаг. Потом второй. Коридор вёл вглубь здания — белые стены, мягкий свет, двери с номерами. Его ноги двигались автоматически, но сознание зависло между двумя состояниями.

Он не мог понять, вперёд пойдёт он — или кто-то, кто уже внутри.

Глава 15. В ожидании вердикта

Кабинет встретил приглушённым светом и запахом кожаной мебели. Доктор Харрис — мужчина лет пятидесяти с аккуратной седой бородкой — поднялся из-за стола. Рукопожатие было твёрдым, профессиональным. Ричард ответил вяло, ладонь влажная.

— Присаживайтесь, Ричард. Можно просто Ричард?

Кивок. Кресло приняло тело с мягким вздохом. Спина не касалась спинки — Ричард сидел на краю, руки на коленях. Взгляд метался: диплом на стене, книжная полка, абстрактная картина. Только не в глаза врачу.

— Расскажите, что вас привело ко мне?

Ричард открыл рот. Язык прилип к нёбу. Сглотнул. Пальцы сжались на джинсах.

— Я… — начал он.

Слово повисло в воздухе. Взгляд остановился на точке позади плеча доктора. Зрачки чуть расширились, будто фокус ушёл внутрь. Секунда. Другая.

Плечи медленно опустились. Спина расслабилась, откинулась назад. Руки легли на подлокотники — не вцепились, а именно легли. Уголок губ дрогнул в намёке на улыбку.

— Знаете, доктор, — голос стал глубже, увереннее, — работа в SOC — это постоянный стресс. Двадцать четыре на семь следишь за чужими ошибками.

Харрис сделал пометку в блокноте. Профессиональный кивок.

— Расскажите подробнее о вашей работе.

— Security Operations Center. Мы — те, кто не спит, пока остальные спокойно тратят деньги онлайн. — Лёгкий смешок. — Представьте: сотни алертов в час, половина — ложные, но пропустишь один настоящий — и завтра ты в новостях. «Крупнейший банк не смог защитить данные клиентов».

— Это действительно звучит напряжённо. Как давно вы чувствуете усталость?

Пауза. Не для обдумывания — для эффекта.

— Месяца три-четыре. Сначала просто недосып. Потом начал забывать мелочи. Вчера, например, не мог вспомнить, закрыл ли дверь квартиры. Вернулся проверить — закрыта. — Жест, расслабленный, естественный. — Мозг просто перегружен.

— Случались ли эпизоды, когда вы не помнили более длительные периоды?

Прямой взгляд в глаза доктору. Ни тени тревоги.

— Нет, что вы. Просто… как в тумане иногда. Делаешь всё на автомате. Пришёл домой — не помнишь, как ехал. Но это же нормально при хроническом стрессе?

Вопрос повис между ними. Харрис кивнул, делая пометки.

— Бывают ли у вас головные боли?

— Постоянно. Особенно в височной области. И шум в ушах — как серверная гудит. — Улыбка стала шире. — Извините, профессиональная деформация.

Следующие двадцать минут прошли в том же ключе. На каждый вопрос — ответ, уводящий от диссоциации к банальному выгоранию. Упоминания о «странном самоощущении» превращались в «деперсонализацию от усталости». «Провалы в памяти» становились «рассеянностью от перегрузки».

— Алкоголь употребляете?

— По выходным. Пиво с коллегами. Ничего серьёзного.

— Наркотические вещества?

— Боже упаси. В банке тестируют регулярно.

— Были ли в семье случаи психических заболеваний?

— Нет. Все — солидные, скучные люди. — Короткий смех. — Я первый, кто дошёл до психиатра.

Харрис отложил ручку, на секунду нахмурился.

— Странно, в начале приёма вы казались более…

— Зажатым? — подсказал пациент с лёгкой улыбкой. — Просто нужно было освоиться. Первый раз у психиатра, знаете. Стереотипы, предрассудки.

Доктор кивнул, но во взгляде мелькнуло сомнение. Впрочем, лишь на мгновение.

— Ричард, у вас классическая картина профессионального выгорания, осложнённого хроническим стрессом. Это не редкость в вашей сфере. Я выпишу лёгкие седативные препараты и настоятельно рекомендую взять отпуск. Хотя бы на две недели.

— Отпуск… — задумчиво повторил пациент. — Да, наверное, стоит.

Доктор заполнял рецепт. Почерк врача — неразборчивый, но название препарата читалось ясно: обычный анксиолитик, ничего серьёзного.

— Принимать на ночь, одну таблетку. Если через неделю улучшения не будет — приходите, скорректируем дозировку.

Рукопожатие на прощание. Твёрдое с обеих сторон.

У двери пациент замер. Рука на ручке. Мгновение — будто кто-то переключил канал. Плечи чуть ссутулились. Пальцы дрогнули.

— Спасибо, доктор, — голос снова стал тише, неувереннее.

Дверь закрылась. Ричард стоял в коридоре моргая. В руке — рецепт и заключение. Когда он их взял?

Странная дезориентация. Будто вынырнул из глубины — в ушах лёгкий звон, во рту металлический привкус. Он не помнил, как дошёл от кресла до двери. Последнее чёткое воспоминание — вопрос доктора о том, что привело его сюда. А дальше — провал. Нет, не провал. Туман. Что-то было, разговор шёл, но детали ускользали, как сон при пробуждении.

Коридор был пуст. Мягкий свет, бежевые стены, едва слышная музыка из невидимых динамиков. Ричард прислонился к стене, разворачивая бумаги.

Заключение: Острое стрессовое расстройство на фоне профессионального выгорания. Рекомендован отдых, медикаментозная поддержка.

Выдох. Долгий, с облегчением. Не шизофрения. Не раздвоение. Просто стресс. Как у тысяч других айтишников, загнавших себя в угол дедлайнами и ответственностью.

Взгляд скользнул ниже. Форма информированного согласия. Его подпись внизу.

Ричард поднёс бумагу ближе. Подпись… была его. Но что-то в ней резало глаз. Размашистая, уверенная. Обычно он подписывался мельче, аккуратнее.

Перед глазами вспыхнул образ. Дом Денниса. Кабинет. На столе — блокнот, раскрытый на странице с заметками. Почерк крупный, с нажимом. Буквы чуть наклонены вправо, «д» с характерным завитком.

Он посмотрел на подпись снова. То же «д». Тот же наклон.

Бред. Рука дрожала от волнения.

— Конечно, дрожала, — прозвучал голос внутри. Насмешливый, снисходительный. — Ты же так нервничал. Доктор подтвердил — переутомление. Обычное переутомление.

Ричард кивнул сам себе. Сложил бумаги, сунул в карман. Конечно, просто усталость. Врач не может ошибаться. Специалист с дипломами на стене, с многолетней практикой.

Он двинулся к выходу. Шаги гулко отдавались в пустом коридоре. В кармане шуршали бумаги — диагноз, избавляющий от худших подозрений.

Просто стресс. Надо взять отпуск. Может, уволиться. Заняться чем-то спокойным. Пет-проекты. Что-нибудь для души, без давления корпорации.

— Для души, — эхом повторил внутренний голос. — Или для развлечения. Ты же так любишь решать сложные задачи.

Ричард не ответил. Даже мысленно. Просто ускорил шаг к выходу, где за стеклянными дверями виднелся обычный город с обычными людьми, у которых обычное переутомление лечится обычными таблетками.

В кармане лежал рецепт. И подпись, которая была его.

Почти его.

Стеклянные двери клиники разъехались с тихим шипением. Ричард вышел на улицу, щурясь от яркого света. Город встретил привычным шумом: гудки, обрывки разговоров, запах выхлопов и кофе из соседней кофейни.

— Мистер Уотсон?

Голос раздался слева. Ричард повернулся. Двое мужчин в тёмных костюмах стояли у чёрного седана. Старший — высокий, седеющий, с усталым лицом человека, который видел слишком много. Младший — азиатской внешности, с внимательными глазами за очками в тонкой оправе.

— Да?

Старший достал удостоверение. Движение отработанное, будничное.

— Агент Митчелл, ФБР, отдел киберпреступлений. Это агент Чен. У нас есть несколько вопросов по поводу инцидента в CityGroup.

Ричард замер. В животе холод растёкся, как пролитая ледяная вода. Пальцы сжались на ремне рюкзака.

— Я… я уже всё рассказал службе безопасности банка.

— Понимаем, — Митчелл кивнул. — Но у нас появились новые детали. Это не займёт много времени. Просто уточнить пару моментов.

Чен открыл заднюю дверь седана. Жест вежливый, но в нём читалось: отказ не принимается.

Ричард сглотнул. Горло сухое, как наждачка.

— Я что, арестован?

— Нет, — Митчелл почти улыбнулся. — Вы герой дня, мистер Уотсон. Человек, который остановил одну из самых элегантных атак в истории американского банкинга. Мы просто хотим понять, как вам это удалось.

Элегантных. Слово резануло. Ричард медленно двинулся к машине. Ноги будто налились свинцом.

В салоне пахло кожей и освежителем воздуха — искусственная сосна. Он оказался зажат между агентами. Чен сел за руль, Митчелл — рядом с Ричардом. Двери захлопнулись с мягким, но окончательным звуком.

— Офис недалеко, — сказал Митчелл, доставая планшет. — Пятнадцать минут, если без пробок.

Машина тронулась. За окном поплыли знакомые улицы. Ричард сидел прямо, стараясь не касаться спинки сиденья. Руки на коленях. Влажные ладони оставляли следы на джинсах.

— Знаете, — Чен бросил взгляд в зеркало заднего вида, — я изучал логи того дня. Впечатляющая работа. Как вы так быстро вычислили управляющий канал?

— Я… — голос сорвался. Ричард кашлянул. — Паттерн был нетипичный. TTL пакетов не соответствовал стандартной маршрутизации.

— TTL, — повторил Чен. — Умно. Большинство бы сосредоточились на payload, а вы смотрели на метаданные.

Митчелл листал что-то на планшете, не поднимая глаз.

— В SOC работаете три года?

— Да.

— До этого?

— Стажировка в стартапе. Универ.

— NYU, факультет кибербезопасности, — Митчелл не спрашивал, констатировал. — Дипломная работа по адаптивным системам защиты. Научный руководитель отметил «нестандартный подход к решению задач».

Они знали. Копали. Ричард сжал кулаки, чтобы остановить дрожь в пальцах.

***

Офис ФБР располагался в невзрачном здании на Федерал Плаза. Никаких опознавательных знаков снаружи, только номер дома. Внутри — типичный правительственный интерьер: бежевые стены, линолеум, флуоресцентный свет.

Комната для допросов оказалась меньше, чем в фильмах. Стол, четыре стула, камера в углу под потолком. Никакого зеркала Гезелла — только глухие стены и вентиляционная решётка, из которой тянуло холодом.

Митчелл жестом указал на стул. Ричард сел. Спина не касалась спинки — он съёжился, будто пытаясь занимать меньше места.

Чен разложил на столе распечатки. Логи, скриншоты, фрагменты кода. Бумага шуршала громко в тишине комнаты.

— Итак, — Митчелл сел напротив, — расскажите своими словами, что произошло тем днём.

Ричард облизал губы. Начал медленно, запинаясь:

— Сработал алерт. Стандартное оповещение о подозрительной активности в PCI-DSS сегменте. Я… мы начали проверку.

— Кто «мы»?

— Я, Омар Рахим, Анна Ли, Джейсон Мюллер. Дежурная смена.

— Продолжайте.

— Сначала всё выглядело как ложная тревога. Потом начались аномалии. Массовые. По всей инфраструктуре. — Голос стал твёрже, когда он перешёл к техническим деталям. — Источники атаки постоянно менялись. Динамическая смена маршрутов, туннелирование через неиспользуемые VLAN.

Чен наклонился вперёд, глаза блестели за стёклами очков.

— И как вы поняли, где искать?

— Я… — Ричард замялся. Как объяснить то чувство узнавания? — Паттерн показался знакомым. Как будто я видел похожую логику раньше.

— Где именно?

— Не знаю. Может, в учебных материалах. Или на CTF-соревнованиях.

Митчелл достал планшет, развернул экран к Ричарду.

— Узнаёте этот код?

На экране — фрагмент XOR-шифратора. Ричард почувствовал, как кровь отлила от лица. Узнавал. Каждую строку.

— Это… это похоже на мой учебный проект. С универа.

— Не похоже, — поправил Чен. — Идентично на восемьдесят процентов. Только оптимизировано под современные процессоры.

— Я выложил его на GitHub, — голос стал тише. — Публичный репозиторий. Любой мог…

— Конечно, — кивнул Митчелл. — Любой. Но интересное совпадение, не находите? Ваш код в malware, которую вы же и остановили.

Тишина. Ричард слышал собственное дыхание — короткое, поверхностное. Пот выступил на лбу, несмотря на холод от кондиционера.

— Я не… я ничего не делал. Только защищался. Защищал банк.

Чен взял другую распечатку.

— А это? SHA-256 хэш одного из инструментов атакующего. Совпадает с бинарником из вашего старого проекта. DwarfScanner, если точнее.

Ричард замер. На долю секунды. Сглотнул. Dwarf. Перед глазами мелькнул образ — мультяшный гном из новостей, машущий из взломанного сайта.

— DwarfScanner? — голос прозвучал чуть выше обычного. — Это же… это студенческая поделка. Сканер портов для лабораторных.

— Который вы выложили в закрытый чат, — добавил Митчелл. — Доступ имели человек двадцать. Все — проверены. Никто не имеет отношения к атаке.

— Кроме вас, — мягко добавил Чен.

Комната будто сжалась. Стены подступили ближе. Ричард вцепился в край стола.

— Вы думаете, я…? Это абсурд! Зачем мне атаковать собственное место работы?

— Хороший вопрос, — Митчелл откинулся на спинку стула. — Может, для славы? Остановить атаку, которую сам же и запустил. Стать героем.

— Или для денег, — предложил Чен. — Центы с миллионов счетов. Мелочь для каждого клиента, но в сумме…

— Я не брал деньги!

— А кто говорит про «брал»? — Чен улыбнулся. — Может, просто перенаправил. На благотворительность, например. Современный Робин Гуд.

Митчелл поднял руку, останавливая коллегу.

— Забавная деталь, мистер Уотсон. Атака началась ровно через двадцать три минуты после начала вашей смены. Не в начале, чтобы не было слишком очевидно. Не через час, чтобы вы успели войти в рабочий ритм. Двадцать три минуты — идеальное время.

Двадцать три минуты. Почему это звучало так… правильно? Будто он сам бы выбрал именно этот интервал. Ричард моргнул, отгоняя странную мысль.

— Совпадение, — выдавил он.

— Возможно, — Митчелл пожал плечами. — Но знаете, что ещё интересно? Атакующий использовал reverse proxy для организации SSH-туннелей. Довольно необычный подход.

Ричард дёрнулся:

— Reverse proxy для SSH? Это же… — он осёкся.

Чен наклонился вперёд:

— Что «это же»?

— Это технически некорректно. SSH уже шифрованный протокол, reverse proxy здесь избыточен. Правильнее было бы использовать port forwarding через промежуточный хост или…

Он замолчал. В комнате повисла тишина. Митчелл и Чен переглянулись.

— Или? — мягко подтолкнул Чен.

Ричард сжал губы. В углу комнаты стоял кулер с водой. Пластиковые стаканчики в держателе. Горло пересохло, но встать и налить воды означало бы показать слабость.

— И ещё, — Чен перебирал бумаги, — использование старых CIDR-блоков для маскировки трафика. Знаете, сколько человек в вашем банке помнят о резервных подсетях образца 2018 года?

— Я не знаю…

— Трое. Вы — один из них.

Молчание затянулось. Ричард смотрел на свои руки. Пальцы побелели от напряжения. Взгляд метнулся к кулеру. Язык прилип к нёбу. Но двигаться — значит показать, насколько ему плохо.

— У меня есть алиби, — выдавил он наконец. — Проверьте логи. Я был за рабочей станцией. Все действия записаны.

— Проверили, — кивнул Митчелл. — Чисто. Никакой подозрительной активности с вашего терминала. Вообще никакой активности с рабочих мест SOC, кроме стандартного мониторинга.

— Вот видите…

— Что доказывает только одно, — перебил Чен. — Атака шла не оттуда. Но это не значит, что вы непричастны.

Он наклонился ближе. В глазах — неприкрытое восхищение.

— Честно говоря, это была великолепная работа. Элегантная, чистая, без лишнего шума. Я изучаю киберпреступления десять лет, но такого уровня… — Он покачал головой. — Жаль, что мы не можем доказать ваше авторство. Хотел бы я знать, как вы это провернули.

Митчелл бросил на напарника предупреждающий взгляд.

— Мистер Уотсон, мы не обвиняем вас. Официально. У нас нет прямых доказательств вашей причастности к атаке. Но совпадений слишком много, чтобы их игнорировать.

Он встал, прошёлся по комнате.

— Вы свободны. Но я бы рекомендовал не покидать город в ближайшее время. И если вспомните что-то важное…

Визитка легла на стол перед Ричардом.

— Звоните. В любое время.

Ричард взял карточку трясущимися пальцами. Встал на ватных ногах.

— Я могу идти?

— Конечно, — Митчелл открыл дверь. — Агент Чен проводит вас до выхода.

В коридоре Чен шёл молча. Только у лифта заговорил:

— Знаете, если бы вы действительно это сделали… Респект. Серьёзно. Это было красиво. — Он помолчал, глядя на индикатор этажей. — Почти так же красиво, как остановка атаки. Тайминг идеальный в обоих случаях.

Двери лифта закрылись, отрезая Ричарда от внимательного взгляда агента. В кабине он прислонился к стене. Ноги дрожали. Во рту — пустыня.

Так и не попил воды.

***

«Берч кофе» встретил знакомым шумом: шипение пара, стук керамики, негромкий инди-рок из колонок. После стерильных коридоров ФБР это показалось почти домашним. Ричард увидел их сразу — за большим столом у окна. Омар махнул рукой.

Ноги подкашивались. Каждый шаг давался с усилием. Лица коллег расплывались — не от слёз, от усталости, которая накопилась за последние часы и теперь давила на плечи тяжёлым одеялом.

На столе — россыпь кружек. Кофе, чай, у Джейсона — какао со взбитыми сливками. Никаких бутылок. Никакого алкоголя. Все выглядели помятыми: Анна без привычной собранности, волосы убраны небрежно; Лаура в простой футболке вместо обычных нарядов; Джейсон сутулится больше обычного.

— Выглядишь хреново, — констатировал Омар, когда Ричард опустился на свободный стул. — Хуже, чем мы все, вместе взятые.

Ричард не ответил. Подозвал официанта, попросил воды. Когда принесли, выпил стакан залпом, попросил ещё. Горло всё ещё помнило сухость допросной, язык — металлический привкус страха.

— Тебя тоже? — спросила Лаура.

Ричард кивнул. Слова застряли в горле.

— Три часа, — выдохнул Омар. — Три грёбаных часа меня мариновали. Спрашивали про каждый патч, который я ставил за последний год. Будто я лично каждый байт проверяю.

— А меня заставили объяснять все мои скрипты автоматизации, — добавила Анна. Обычная язвительность притупилась усталостью. — Представляете? Показывают мой же bash-скрипт для ротации логов и спрашивают: «А это точно не бэкдор?»

Джейсон нервно хихикнул:

— Они мой GitHub изучили. Нашли Hello World на Python из первого курса. Агент с серьёзным лицом спрашивает: «Вы уверены, что это незашифрованное сообщение?»

Общий смех вышел натянутым, но искренним. Как выдох после долгой задержки дыхания.

— Долбанутые, — резюмировал Омар. — Но я их понимаю. Кто-то же это сделал. Кто-то очень умный. И судя по всему, знакомый с нашей инфраструктурой.

Тишина. Все старательно смотрели в свои кружки.

— Зато премию дадут, — попыталась разрядить обстановку Лаура. — За предотвращение катастрофы. Если нас, конечно, не уволят после того эфира с Крисом Лаутеном.

— Ещё как уволят, — фыркнула Анна. — Видели, как его размазали в прямом эфире? Банк теперь посмешище.

— Ричард, ты же главный герой, — продолжила Лаура. — Как ты вообще?

Ричард потёр виски. Голова гудела.

— Устал. Был у врача перед… перед ними. Переутомление, говорит.

— Не удивительно, — кивнула Анна. — После такого стресса любой бы слёг.

— Может, отпуск возьмёшь? — предложил Джейсон. — Ну, когда вся эта шумиха уляжется.

— Может быть.

Разговор потёк в привычное русло. Обсуждали новости, планы руководства усилить безопасность, слухи о тотальной проверке всех сотрудников. Ричард слушал вполуха. Внутри росло странное чувство — не облегчение, но что-то похожее. Они все в одной лодке. Все под подозрением. Он не один.

— …и представляете, начальство теперь хочет внедрить биометрию на входе в серверную, — рассказывал Омар. — Будто это поможет против того, кто сидит внутри системы.

— Театр безопасности, — фыркнула Анна. — Для акционеров.

Ричард взял со стола меню, просматривая не читая. Строчки плыли. Внутри, под рёбрами, разливалось тепло. Не от кофейни — от понимания. Никто не смотрит на него с подозрением. Для них он — такая же жертва обстоятельств.

Палец бессознательно обводил узор на обложке меню — спираль, переходящую в острые углы. Тот же рисунок, что появлялся на полях блокнотов, когда он думал о сложных задачах. Или когда думал кто-то внутри него.

Идиоты.

Голос внутри прозвучал отчётливо. Насмешливо. Ричард замер с меню в руках.

Ищут снаружи то, что сидело внутри всё это время. Прямо за соседним столом.

Уголок губ дрогнул. Ричард поймал себя на улыбке — чуть шире, чем следовало. Быстро спрятал её за меню.

Пальцы выбивали ритм по столу. Лёгкий, почти неслышный. Та-та-та-ТА. Та-та-та-ТА. Джейсон, сидевший рядом, покосился. Ричард никогда так не делал. Всегда сидел спокойно, сдержанно.

— Эй, — Омар щёлкнул пальцами перед его лицом. — Ты с нами?

— А? Да, просто задумался.

— О чём хоть улыбаешься? Нашёл в меню что-то смешное?

— Нет, просто… — Ричард опустил меню. Улыбка стала обычной, усталой. — Просто рад, что всё закончилось.

Закончилось? — внутренний голос звучал довольным. — Это только начало. Они проверили поверхность и ничего не нашли. Теперь расслабятся. А нам с тобой пора достигать более масштабных целей.

— Нам? — прошептал Ричард.

— Что? — Лаура наклонилась ближе.

— Ничего. Думаю вслух.

Он откинулся на спинку стула. Поза изменилась — едва заметно. Плечи расправились, подбородок чуть приподнялся. Если бы кто-то фотографировал их стол в этот момент, то позже, разглядывая снимок, мог бы заметить: среди уставших, сломленных допросами людей сидит кто-то, кто выглядит… довольным.

— Закажу ещё кофе, — сказал Ричард. — Двойной эспрессо.

Анна подняла брови. Джейсон моргнул — на секунду ему показалось, что Ричард держит кружку не так, как обычно. Увереннее, небрежнее, будто это не его первая чашка, а пятая. Но усталость смазывала восприятие, и мысль не задержалась.

— С каких пор ты пьёшь эспрессо? — спросила Лаура. — Ты же американо предпочитаешь.

Ричард пожал плечами:

— Хочется чего-то покрепче.

Голос прозвучал обычно. Но Анна, сидевшая напротив, на секунду нахмурилась. Что-то в интонации… Впрочем, мысль не оформилась. Усталость брала своё.

За окном сгущались сумерки. Огни города зажигались один за другим. В отражении стекла Ричард поймал свой профиль — и на мгновение ему показалось, что это кто-то другой смотрит из темноты. Кто-то, кто точно знает, что игра продолжается.

И она будет куда интереснее.

Внутренний смех остался неслышным. Но улыбка — та самая, чуть шире необходимого — мелькнула снова, прежде чем Ричард взял кружку и сделал глоток остывшего кофе.

Глава 16. Инверсия

Лестничная клетка встретила привычным запахом сырости и хлорки. Автоматический свет щёлкнул над головой, выхватив из темноты облупившиеся стены и стёртые ступени. Ричард поднимался медленно, рюкзак тянул плечо. В кармане куртки звякали ключи — металлический перезвон отражался от бетонных стен и уходил вверх, к тёмным пролётам.

На четвёртом этаже остановился перевести дыхание. Лампочка мигала, вот-вот перегорит. В углу валялся окурок — кто-то курил на лестнице, хотя это запрещено. Обычные мелочи жизни в спальном районе. Он дошёл до пятого этажа, достал ключи.

Замочная скважина блестела в жёлтом свете. Ричард вставил ключ, повернул. Замок поддался не сразу — заело на полпути. Он надавил сильнее, металл щёлкнул. Но что-то было не так. Ключ провернулся слишком легко, будто замок уже был открыт. Или почти открыт.

Ричард замер с рукой на ручке. Утром он точно заперся — проверил дважды, как всегда. Но сейчас замок был повёрнут не до конца. На три четверти оборота вместо полного. Кто-то открывал дверь. И закрывал небрежно.

Нет, это не может быть случайностью, — мелькнула мысль. Я всегда поворачиваю ключ до упора. Всегда. Это автоматизм, как дыхание.

Пульс участился. Не паника — скорее настороженность, как при подозрительном алерте в SOC. Но алерт можно отклонить или передать коллеге. А здесь он один, без протоколов и инструкций. Прислушался. За дверью тишина. Никаких шагов, голосов, шороха. Только глухое гудение лифта где-то внизу.

Можно развернуться и уйти. Переночевать в отеле, завтра разбираться. Но что, если они ждут именно этого? Что, если уход — признание вины?

Ричард толкнул дверь. Она открылась беззвучно, без привычного скрипа петель. В прихожей темно. Пахло своим — кофе, стиральный порошок, чем-то застоявшимся. Но ещё что-то. Едва уловимое. Чужой запах. Не парфюм — что-то химическое, официальное.

Он зашёл внутрь, не включая свет. Глаза, привыкшие к темноте лестницы, теперь легко различали контуры мебели. Прихожая выглядела обычно. Обувь стояла у стены, куртка висела на крючке.

Но что-то не так.

Кроссовки. Ричард наклонился, присмотрелся. Они стояли слишком ровно. Пятки на одной линии, носки под одинаковым углом, как в армейском строю. Я так не ставлю обувь. Никогда. Просто скидываю где придётся — один кроссовок у стены, второй у двери, иногда носком в разные стороны.

Сердце забилось сильнее. Кто-то был здесь. Кто-то, кто не знает моих привычек. Кто думает, что «аккуратно» означает «ровно».

Включил свет. Моргнул от яркости. Прошёл в гостиную оглядываясь. Стол, диван, телевизор — всё на местах. Но почтовая стопка на тумбочке повёрнута. Раньше лежала вдоль края, теперь — поперёк. Я клал счета по направлению к стене, чтобы не забыть оплатить. Сейчас они лежат как попало.

Мелочь, но заметная. Как будто кто-то смотрел почту и положил обратно неточно.

Холодок пробежал по спине. Они изучали мою жизнь. Смотрели, кому я плачу, где покупаю, на что трачу деньги. Искали связи, паттерны, что-то компрометирующее.

Ричард подошёл к рабочему столу. Ноутбук закрыт полностью. Крышка плотно прилегала к клавиатуре. А я всегда оставлял щель — два-три сантиметра, чтобы система охлаждалась. Привычка с университета, когда ноут грелся от нагрузок. Чёртова навязчивость — но она помогала технике служить дольше.

Кружка рядом чистая. Блестящая, как после мытья. Утром в ней были остатки кофе — я не мыл посуду перед работой. Как всегда. Утром времени нет, оставляю грязную посуду до вечера. А иногда и до выходных.

Пульт от телевизора лежал строго параллельно краю стола. Чертовски идеально параллельно. Я никогда не клал вещи так ровно. Бросал куда попало, потом искал. Вечно теряю этот пульт — то под диванными подушками, то в кухне, то в ванной.

Всё выглядело как в каталоге мебели — правильно, но не живо. Как показательная квартира в новостройке, где никто не живёт.

В желудке похолодело. Кто-то был в квартире. Осматривал, трогал вещи. И пытался оставить всё как было. Почти получилось. Но не учёл привычек к хаосу.

Это не грабители — они бы унесли ноут и телевизор. Это кто-то другой. Кто искал информацию, а не вещи.

Ричард открыл ноутбук. Система загрузилась обычно, пароль подошёл. На рабочем столе — те же файлы и папки. Но в браузере история очищена. Полностью. Даже сайты, которые он посещал вчера. Кто-то стёр следы просмотра.

Но зачем? Я не посещаю ничего криминального. Технические форумы, новости по безопасности, иногда соцсети. Что там могло их заинтересовать?

Руки вспотели. Вытер ладони о джинсы, попытался успокоиться. Может, система сама почистилась — настроил когда-то автоудаление. Но я не помню таких настроек. И почему именно сегодня?

Нет, это не автоматика. Это чья-то работа. Профессиональная, аккуратная. Они зашли, скопировали что нужно, почистили следы. Но не смогли скрыть сам факт присутствия.

Встал из-за стола, прошёлся по комнате. В голове крутилось одно слово: обыск. Но странный обыск. Без ордера, без свидетелей, без изъятия техники. Кто-то искал что-то конкретное. И, возможно, нашёл.

Или не нашёл.

Но почему меня не арестовали? Если есть подозрения — где наручники и обвинение? Зачем эти игры в прятки?

Ричард вернулся к столу, сел в кресло. Автоматически поправил клавиатуру — она стояла чуть левее обычного. И это тоже неслучайно. Я ставлю клавиатуру строго по центру монитора. Обсессивно-компульсивная привычка, как в шутку говорила Анна.

Пальцы коснулись пластика. На секунду показалось, что поверхность тёплая. Не от солнца — окно выходило на северную сторону. Будто кто-то недавно печатал.

Стоп. Это паранойя. Пластик не может быть тёплым от чужих рук через несколько часов.

Под клавиатурой что-то тихо щёлкнуло. Едва слышно, как звук включающегося блока питания. Ричард замер.

Звук повторился. Словно внутри стола что-то активировалось.

Что, если это не связано с обыском? Что, если что-то автоматически включается при моём возвращении?

Наклонился, заглянул под столешницу. Ничего необычного. Провода, блок питания, пыль. Но щелчок был отчётливым. Что-то механическое.

Я должен уйти. Сейчас же. Взять документы, деньги и исчезнуть. Пока не поздно.

Но любопытство оказалось сильнее страха. Если они хотели меня арестовать — сделали бы это сразу. Значит, ищут что-то другое. Доказательства? Соучастников? Или просто наблюдают?

А что, если я найду то, что они искали, раньше них?

Сердце забилось быстрее. Не от страха — от предчувствия. Будто тело знало что-то, о чём не догадывался разум. Пальцы дрожали, когда он снова коснулся клавиатуры. Пластик в этот раз показался прохладным. Но ощущение движения внутри стола осталось.

Ричард встал, отошёл к окну. За стеклом темнело. Уличные фонари зажглись, отбрасывая жёлтые круги на асфальт. Обычный вечер на Девятой авеню. Редкие прохожие, собачники, подростки у подъезда напротив. Никого подозрительного. Но это ничего не значило. Если за ним следят профессионалы, он их не заметит.

Вернулся к столу, открыл ящики. Всё на местах: ручки, зарядки, старые чеки, мелочь. Но порядок подозрительный. Обычно в ящиках хаос, а сейчас каждая вещь лежала как положено. Кто-то перебрал содержимое и аккуратно сложил обратно.

В спальне то же самое. Постель заправлена — не небрежно, как он делал по утрам, а ровно, с подвёрнутыми углами. Подушка взбита, одеяло расправлено. Никто не учёл, что он никогда не заправляет кровать качественно. Времени нет, да и зачем — всё равно вечером ложиться.

Ричард сел на край матраса. Пружины скрипнули тихо. В комнате пахло стиральным порошком и чем-то ещё. Тем же химическим запахом из прихожей. Моющее средство? Или что-то для снятия отпечатков?

Встал, подошёл к шкафу. Одежда висела ровно, рубашки застёгнуты на все пуговицы. А он застёгивал только через одну — быстрее. Кто-то перебрал вещи и повесил обратно. Тщательно, но не зная привычек хозяина.

В ванной тоже следы чужого присутствия. Зубная щётка в стакане стояла щетиной ко входу. Он всегда ставил её щетиной в сторону. Мелочь, но характерная. Тюбик пасты лежал крышкой к зеркалу — он клал, наоборот, крышкой к стене.

Ричард вернулся в гостиную. Сел на диван, потёр виски. Голова гудела от напряжения и недосыпа. Кто-то обыскал квартиру. Очень аккуратно, почти незаметно. Но зачем? И почему не арестовали его сразу?

Может, искали улики. Не нашли — и решили подождать. Проследить, куда он пойдёт, с кем встретится. Поставили жучки и ушли.

Он встал, начал осматривать комнату внимательнее. Проверил розетки, выключатели, светильники. Искал камеры, микрофоны, передатчики. Но ничего не нашёл. Либо оборудование слишком профессиональное, либо его нет.

Подошёл к окну, выглянул на улицу. Та же картина: фонари, редкие машины, пустые дворы. Но теперь каждая тень казалась подозрительной. Может, за ним наблюдают из соседних домов? Или из машин на парковке?

Ричард отошёл от окна, задёрнул шторы. Включил телевизор — нужен фоновый шум, чтобы заглушить возможные жучки. На экране крутили новости. Что-то про экономику, политику, спорт. Обычная информационная каша. Он убавил звук, но не выключил.

Вернулся к компьютеру. Запустил диспетчер задач, посмотрел активные процессы. Всё стандартно. Никаких подозрительных программ. Но это ничего не значило. Хороший троян замаскируется под системный процесс.

Открыл сетевые соединения. Обычный трафик: обновления системы, синхронизация почты, фоновые процессы. Ничего лишнего. Но опять же — профессиональный шпионский софт может работать через существующие каналы, не обнаруживая себя.

Ричард закрыл все программы, выключил ноутбук. Бесполезно искать то, что найти нельзя. Если его взломали — он узнает об этом последним.

Прошёл в кухню, открыл холодильник. Достал бутылку воды, сделал глоток. Жидкость показалась слишком холодной, ударила в зубы. Руки всё ещё дрожали.

На кухне тот же порядок. Посуда в сушилке стояла ровно. Он складывал тарелки как попало, а сейчас геометрия идеальная. Кто-то мыл посуду или переставлял её.

Холодильник гудел громче обычного. Возможно, перезапускался после отключения света — такое бывает. Но Ричард не помнил перебоев с электричеством.

Ричард поставил бутылку на стол, прислушался к звукам квартиры. Холодильник, кондиционер, шум с улицы — всё как всегда. Но ощущение чужого присутствия не покидало. Будто воздух ещё помнил дыхание незнакомцев.

Он вернулся в гостиную, сел в кресло у стола. Машинально положил руки на клавиатуру. Пальцы легли на клавиши привычно — это было его рабочее место. Здесь он проводил вечера, изучал новые технологии, читал форумы по безопасности.

Под руками снова что-то щёлкнуло. Тихо, но отчётливо. Звук шёл изнутри стола.

Ричард убрал руки, наклонился. Заглянул под столешницу с фонариком телефона. Провода, блок питания, пыль. Но в углу что-то блеснуло. Маленький зелёный светодиод. Размером с булавочную головку. Мигал редко, раз в несколько секунд.

Он не помнил такого индикатора. Компьютер выключен, принтера нет, роутер стоит в другой комнате. Откуда светодиод?

Ричард попытался разглядеть источник света. Диод был встроен в какое-то устройство, спрятанное в углу. Размером с зажигалку, чёрное, без опознавательных знаков. Кто-то установил его недавно — пыли вокруг не было.

Сердце бухнуло в груди. Жучок. Или передатчик. ФБР оставили след своего визита. Теперь будут слушать каждое слово, записывать каждый звук.

Ричард потянулся к устройству, но рука замерла на полпути. А если оно защищено? Сработает сигнал тревоги, и через десять минут в дверь постучат агенты. Или хуже — устройство взорвётся, как в шпионских фильмах.

Он отстранился, сел обратно в кресло. Нужно думать. Если это передатчик — его уже засекли. Знают, что он вернулся и нашёл устройство. Но не трогает его. Ведёт себя осторожно.

А может, это не жучок? Может, часть какой-то системы, которую он сам установил и забыл? Но когда? И зачем?

Ричард снова положил руки на клавиатуру. В том же положении, что и раньше. Щелчок повторился. Но теперь он заметил — звук шёл не от устройства под столом. А из самой клавиатуры.

Он нажал несколько клавиш. Обычные щелчки. Но когда руки ложились в определённое положение — раздавался другой звук. Механический, как срабатывание замка.

Ричард убрал руки, снова положил. Попытался найти точную позицию. Левая рука на Ctrl и Shift, правая на пробеле и стрелках. Поза программиста, привычная до автоматизма.

Щелчок. И что-то ещё. Под клавиатурой началось движение. Еле заметное, но ощутимое. Пластик чуть сдвинулся.

Ричард поднял клавиатуру. Под ней в столешнице была тонкая щель. Не видная с первого взгляда, но различимая при внимательном осмотре. Щель расширялась.

Столешница раздвигалась. Медленно, беззвучно. В центре образовалось отверстие размером с ладонь. Внутри что-то блестело.

Пульс ушёл в горло. Ричард смотрел на отверстие, не понимая происходящего. Он не устанавливал никаких тайников. Не покупал столы с секретными механизмами. Откуда это?

В отверстии лежала чёрная коробочка. Размером с пачку сигарет, без маркировки. Рядом — сложенная бумага, ключи на брелоке, пластиковые карточки.

Ричард достал коробочку. Лёгкая, почти невесомая. На крышке единственная кнопка без подписи. Он нажал. Коробочка включилась, на микроскопическом экране появились цифры: «247 RECORDS. PRESS PLAY».

Флешка. Или внешний диск. С 247 записями чего-то.

Он достал бумагу, развернул. Почерк знакомый — его собственный. Но он не помнил, когда писал эти строки:

«Если читаешь это — они уже близко. Время действовать. Адрес: Форест-Хиллс Гарденс, 78-12 Гринвей. Ключи от машины — Honda Civic, чёрная, парковка через дорогу. Банковские карты — счёт открыт на твоё имя, PIN 4729. Не медли. У тебя есть максимум час.»

Ричард перечитал записку. Почерк определённо его. Наклон букв, способ написания цифр — всё совпадало. Но он не помнил ни машины, ни банковского счёта, только адрес — Денниса.

Достал ключи. Брелок Honda. Чёрный пластик, потёртый от использования. Но он не покупал машину. Не помнил покупки, не помнил оформления документов.

Пластиковые карточки оказались водительскими правами и банковской картой. Права на его имя, но фото другое. Он же, но… уверенный. Улыбающийся. С прямой спиной и поднятым подбородком. Как будто другой человек.

Банковская карта тоже на его имя. Дата выпуска — полгода назад. Он не открывал счёт полгода назад. Не подавал документы, не ходил в банк.

Ричард положил карточки на стол, взял флешку. 247 записей. Записей чего? И кто их сделал?

Он подключил устройство к ноутбуку. Система распознала USB-накопитель как внешний диск. Объём — 128 гигабайт. Почти полный.

На диске — папка Archive с множеством видеофайлов. Названия содержали даты и краткие описания: 2025-01-15_Planning_Phase.mp4, 2025-03-22_CityGroup_Preparation.mp4, 2025-06-10_MTA_Deployment.mp4.

Даты покрывали последние восемь месяцев. Почти каждую неделю — новая запись. Иногда несколько в день.

Ричард открыл самый ранний файл. На экране появилось изображение этой же комнаты. Тот же стол, то же кресло. Но в кресле сидел он сам.

Не совсем он. Другой. Увереннее, спокойнее. Волосы аккуратно уложены, спина прямая, взгляд прямо в камеру. Одет в светлую рубашку — он не носил светлых рубашек.

«Ричард-другой» начал говорить:

— Привет, Ричард. Если ты смотришь это — значит, план работает. Ты ничего не помнишь из того, что я делаю. И это хорошо. Так безопаснее для нас обоих.

Голос тот же, но интонации другие. Увереннее, без обычных пауз и запинок. Как будто страх исчез.

— Меня зовут Деннис. По крайней мере, так я себя называю в… другой жизни. Я — это ты. Но лучший вариант. Без страхов, без сомнений, без привычки извиняться за своё существование.

Ричард уставился на экран. Лицо знакомое до боли — зеркальное отражение. Но мимика, жесты, поза — всё чужое. Как будто смотрел на близнеца.

— Система работает просто. Ты живёшь обычной жизнью — работаешь, спишь, общаешься с коллегами. А я занимаюсь… более интересными вещами. Мы делим одно тело, но живём в разных реальностях.

«Деннис» откинулся в кресле, улыбнулся. Улыбка получилась уверенная, почти хищная.

— Не волнуйся. Я не делаю ничего, что может тебе навредить. Просто использую твои навыки по назначению. Ты боишься своих способностей — я их принимаю. Ты прячешься за правилами — я играю без них.

На экране появились документы, схемы, фрагменты кода. Ричард узнал свой стиль программирования. Но проекты были незнакомые. Что-то связанное с криптографией, сетевой безопасностью, проникновением в системы.

— Первый этап — создание инфраструктуры. Дом, машина, документы, деньги. Всё оформлено законно, на твоё имя. Ты просто не помнишь оформления.

Видео ускорилось. Кадры сменяли друг друга: подписание документов, получение ключей, покупка оборудования. Во всех кадрах — он сам. Но двигался и говорил как чужой.

— Второй этап — техническая подготовка. Изучение целей, поиск уязвимостей, создание инструментов. Всё делается ночью, пока ты спишь. Утром не помнишь ничего.

Ричард остановил видео. Руки дрожали. Во рту пересохло. Он смотрел на застывший кадр — своё лицо с чужим выражением — и не мог поверить.

Это невозможно. Нельзя жить двойной жизнью и не помнить. Нельзя покупать машины и открывать счета в состоянии амнезии. Не он.

Но флешка была настоящая. Записи — тоже. Банковские карты не подделаешь. Водительские права не нарисуешь в гараже.

Ричард запустил видео дальше:

— Третий этап — практическое применение. Мелкие проекты для отработки методов. Ничего серьёзного, ничего заметного. Просто тренировка.

На экране замелькали логи атак, скриншоты взломанных сайтов, отчёты о проникновениях. Техника профессиональная, следов минимум. Работа мастера.

— И наконец, четвёртый этап. Большие проекты. То, ради чего всё затевалось. Кое-что, что изменит твою жизнь. И мою.

«Деннис» посмотрел прямо в камеру. В глазах читался азарт.

— Не пытайся меня найти. Не пытайся остановить. Я — часть тебя. Лучшая часть. Та, которой ты боялся стать.

Видео закончилось. Ричард сидел в тишине, глядя на чёрный экран. Сердце колотилось. В ушах звенело.

Он открыл следующий файл.

Второе видео датировалось мартом. «Деннис» сидел в том же кресле, но выглядел увереннее. На столе лежали документы, светился экран второго монитора.

— Привет снова, Ричард. Прошло два месяца с начала проекта. Время промежуточного отчёта.

Тот же голос, но без моих обычных запинок, — подумал Ричард, чувствуя, как по спине ползут мурашки. Он говорит так, как я хотел бы говорить. Уверенно.

«Деннис» поднял стопку бумаг.

— Инфраструктура готова полностью. Дом в Форест-Хиллс оборудован по последнему слову техники. Машина — не просто транспорт, а мобильная станция связи. Банковские счета пополняются автоматически.

Банковские счета? Какие счета? Ричард почувствовал, как желудок сжимается. Откуда деньги? Что я делал для их получения?

«Деннис» повернулся к монитору. На экране — схема корпоративной сети. Ричард узнал архитектуру CityGroup. Где «Деннис» добыл эти данные?

Стоп. Я же сам мог их предоставить. Неосознанно. Во время… переключений.

Тошнота подступила волной. Ричард схватился за край стола.

— Первая цель определена. Банк, где работаешь ты. Идеальный выбор — знаешь систему изнутри, доверяют тебе, никто не заподозрит.

Нет. Нет, нет, нет. Пульс ушёл в голову, в ушах зазвенело. Я работаю на защиту этих систем. Я присягал на верность.

Схема увеличилась, показав детали защиты. Фаерволы, системы мониторинга, сегментация сети — всё как в реальности. Но откуда такая детализация? Это внутренняя документация. Классифицированная.

— Подготовка займёт ещё месяц. Нужно изучить процедуры, найти слабые места, подготовить инструменты. Ничего нового для нас — ты же специалист по безопасности.

«Нас», — слово резануло как лезвие. Он говорит «нас», как будто мы команда. Но те встречи… были ли они реальными? Или тоже часть программы?

На экране появились фрагменты кода. Ричард узнал XOR-шифратор из университетского проекта. Боже мой. Мой собственный код. Я его помню строчка за строчкой.

Но код был оптимизирован, дополнен, превращён в серьёзный инструмент.

— Твой старый проект пригодился. Немного доработки — и из учебной поделки получилось профессиональное средство проникновения. ФБР потом долго будут искать автора.

Меня тошнит. Ричард зажмурился, но это не помогло. Мой код использовали для преступления. Мои руки его писали. Мой мозг его придумал.

Видео ускорилось. Кадры сменялись быстро: работа с кодом, тестирование инструментов, изучение документации. «Деннис» работал методично, без спешки. Как настоящий профессионал. Как я работал бы, если бы не боялся.

Видео закончилось. Ричард закрыл файл, открыл следующий. Дата — май, за неделю до атаки на CityGroup.

Нет. Не хочу это видеть. Но должен знать правду.

«Деннис» выглядел возбуждённым. В глазах читался азарт охотника перед броском.

— Финальная подготовка завершена. Все инструменты готовы, тайминг просчитан идеально.

На экране появилась временная схема атаки. Каждое действие расписано по минутам: заложенные команды активируются автоматически, обход защиты, извлечение данных, сокрытие следов.

— Красота плана в его элегантности. Атака начнётся в твою дневную смену. Ты будешь сидеть в офисе и честно выполнять обязанности. А система уже будет взломана.

Ричард вспомнил тот день. Дневная смена. Обычный рабочий день. Я пил кофе с Анной, шутил с Джейсоном.

«Деннис» увеличил фрагмент схемы.

— Двадцать три минуты после начала твоей смены. Не сразу, чтобы не было подозрений. Не через час, чтобы ты успел войти в ритм. Идеальное время для начала.

Алерт прозвучал действительно через двадцать с чем-то минут. Холод разлился по груди. Я тогда не обратил внимания на точность — мало ли когда хакеры начинают атаки.

— Я заложил червя-активатора в одну из систем мониторинга SOC-центра. Он ждёт определённой команды от тебя — неважно какой, любого стандартного запроса в базе событий. Когда ты запустишь обычную проверку инцидентов, червь проснётся и начнёт работу.

Простое действие, которое я делаю десятки раз за смену.

— Система мониторинга будет ослеплена на первые полчаса. Специальный модуль заблокирует корреляцию событий. Алерты будут приходить, но хаотично, без логической связи.

Именно так и было. Лавина тревог без смысла и структуры.

На экране промелькнули фрагменты кода червя. Ричард узнал принципы работы — он сам разрабатывал подобные инструменты для тестирования. Но не для атак. Никогда для атак.

— А потом ты включишься в работу. Начнёшь анализировать аномалии, искать источник атаки. И найдёшь его — ровно тогда, когда нужно. Не раньше, не позже.

«Деннис» засмеялся.

— Часть меня, спящая в твоём подсознании, проснётся в нужный момент. Направит интуицию, подскажет, где искать. ФБР потом будут восхищаться твоей прозорливостью.

То чувство. То странное чувство знакомости во время атаки. Ричард прижал ладони к вискам. Словно я знал, где искать. Словно атака была моей собственной.

— Самое забавное — ты действительно остановишь атаку. Героически, эффектно, в последний момент. Станешь героем дня. Получишь благодарность руководства и уважение коллег.

Я помню эту гордость. Впервые почувствовал себя настоящим профессионалом.

На экране появились газетные заголовки: «Специалист по безопасности предотвратил крупнейшую кибератаку года», «Банковская система спасена благодаря бдительности сотрудника».

— Но атака уже достигнет цели. Деньги будут перемещены, данные скопированы, уязвимости эксплуатированы. Остановка — часть спектакля. Грандиозный финал для публики.

Спектакль. Я был актёром в спектакле, не зная сценария.

Видео показало схему извлечения средств. Микроскопические суммы с миллионов счетов. Центы и доллары, которые клиенты не заметят. Но в сумме — серьёзные деньги.

— Средства поступят на распределённые счета, оттуда — в криптовалюту, потом в наличность. Стандартная схема отмывания. К тому времени, как ФБР начнёт поиски, деньги растворятся в системе.

Ричарда затрясло. Я вор. Обычный вор. Украл деньги у людей, которые мне доверяли.

«Деннис» выключил мониторы, повернулся к камере.

— После атаки я исчезну на время. Дам тебе пожить обычной жизнью. Насладиться славой героя. А потом вернусь. У меня есть планы.

В его глазах блестело предвкушение.

— Банк — только начало. Дальше будут цели покрупнее. Государственные системы, военная инфраструктура, критически важные объекты. Всё, до чего дотянутся наши навыки.

Наши навыки. Ричард стиснул зубы до боли. Мои навыки, которые он использует, как хочет.

Видео закончилось резко. Ричард сидел в оцепенении, чувствуя, как тело покрывается холодным потом. Всё сходилось. Каждая деталь атаки, каждое моё действие того дня — всё было запрограммировано.

Руки тряслись, когда он открывал следующий файл. Нужно увидеть всё. Понять масштаб.

Запись с дня атаки показала «Денниса» в другом месте — не дома, а в каком-то техническом помещении. Вокруг стойки с серверами, мониторы, кабели.

— Всё готово к автоматическому запуску. Через три часа ты придёшь в офис. Ещё через двадцать три минуты начнётся шоу.

На экране — карта сети CityGroup в реальном времени. Зелёные узлы, синие связи, красные зоны повышенной защиты.

— Как только червь активируется твоей командой, он начнёт работу. Обход фаерволов через заранее подготовленные каналы, повышение привилегий, доступ к платёжному ядру. Всё автоматически, без моего прямого участия.

Видео ускорилось, показав финальные приготовления и запуск процедуры самоуничтожения следов.

— Завтра проснётся герой-аналитик, который спас банк от неизвестного хакера. А настоящий хакер исчезнет до следующего раза.

Я преступник. Вор. Мошенник. Тошнота накатила новой волной. И самое страшное — я даже не помню, как принимал эти решения.

Ричард открыл следующий файл.

«Деннис» потёр виски — знакомый жест, который Ричард делал при стрессе.

— Возможно, придётся активировать протокол экстренной эвакуации. Стереть все следы, обнулить память, начать с чистого листа. Жаль терять наработки, но безопасность важнее.

На экране появилась схема квартиры Ричарда с отмеченными устройствами.

— Система мониторинга активируется автоматически при обнаружении угрозы. Если ФБР вернутся — я узнаю первым. Есть время для противодействия.

Устройства в квартире. Тот светодиод под столом.

«Деннис» повернулся к другому монитору.

— А пока готовлю следующий проект. Цель — Metropolitan Transportation Authority. Система управления метро. Представь, что будет, если поезда начнут ездить по произвольным маршрутам.

Новости про сбои в метро, фантомные маршруты, хаос на станциях. Это тоже было делом «Денниса».

— Атака на MTA — проверка возможностей. Если получится взломать транспортную систему, значит, по зубам и более серьёзные цели. Энергетика, водоснабжение, авиадиспетчерская служба.

В глазах «Денниса» снова блестел азарт.

— Мир не готов к настоящим кибервойнам. Все играют в обороне, никто не думает о нападении. Мы покажем, на что способен один человек с правильными навыками.

Видео резко оборвалось. Ричард понял — это была последняя запись перед обыском. «Деннис» почувствовал опасность и прекратил документировать действия.

Но флешка осталась. И все записи на ней. Полная хроника двойной жизни, восемь месяцев планирования и преступлений. Доказательства, которых хватит для пожизненного заключения.

Ричард выключил ноутбук, достал флешку. Маленькое устройство весило несколько граммов, но в нём хранилась вся правда о нём. О них двоих.

Встал из кресла, прошёлся по комнате. За окном стемнело окончательно. Уличные фонари горели жёлтым светом, но квартира казалась островком чужого мира.

Здесь жил Ричард — простой SOC-инженер, который боялся собственной тени. А где-то в Форест-Хиллс жил Деннис — хакер мирового уровня, который не боялся ничего.

И они — один человек.

Ричард вернулся к столу, взял записку с адресом. «Форест-Хиллс Гарденс, 78-12». Дом «Денниса». Место, где хранятся остальные записи, оборудование, планы. Место, которое ФБР ещё не нашли.

Посмотрел на ключи от машины. Чёрная Honda Civic. Транспорт, который поможет добраться до второго дома. До второй жизни.

Выбор был простым. Остаться Ричардом — и жить в неведении, пока ФБР не арестуют за преступления «Денниса». Или поехать по адресу и узнать всю правду. Принять реальность, какой бы страшной она ни была.

Но что, если «Деннис» ждёт меня там? Что, если это ловушка?

Нет. Я должен знать. Должен понять, кто я на самом деле.

Ричард собрал флешку, ключи, карточки и записку. Сунул всё в рюкзак вместе с ноутбуком. Надел куртку, проверил карманы.

У двери обернулся. Квартира выглядела обычно — дом простого IT-специалиста, который работает в банке и боится нарушить закон. Но под клавиатурой остался открытый тайник. Свидетельство того, что простота — иллюзия.

Ричард выключил свет, закрыл дверь.

Спустился по лестнице, вышел на улицу. Воздух был прохладным, пах дождём и выхлопными газами. Обычный вечер в большом городе.

Нажал кнопку на брелоке. Где-то справа мигнули габариты. Чёрная Honda стояла на парковке через дорогу, между джипом и фургоном. Машина выглядела ухоженной, но не новой. Идеальная маскировка — ничего примечательного.

Ричард подошёл к машине, открыл дверь. Салон пах освежителем воздуха и кожей. На водительском сиденье — удобная посадка, зеркала настроены под его рост. «Деннис» позаботился о деталях.

В бардачке лежали документы на машину — техпаспорт, страховка, справка о техосмотре. Все на имя Ричарда Уотсона. Дата покупки — полгода назад. Я не помню этого дня.

Ричард завёл двигатель, включил GPS. Ввёл адрес: «Форест-Хиллс Гарденс, 78-12». Навигатор проложил маршрут — сорок минут езды через Куинс-боро Бридж.

Машина тронулась плавно. Коробка-автомат, кондиционер, подогрев сидений — всё, что нужно для комфортной поездки. «Деннис» не экономил на удобствах.

По пути Ричард думал о прошедших месяцах. Головные боли, провалы в памяти, ощущение потерянного времени — всё имело объяснение. Его программировали. Заставляли забывать неугодные эпизоды.

Но зачем? Почему нельзя было жить открыто? Почему понадобилось разделение на два сознания?

Может, потому, что Ричард никогда не решился бы на преступления. Слишком много страхов, слишком сильное чувство ответственности. Нужен был другой — смелый, безрассудный, готовый рискнуть всем ради азарта.

Такой, каким Ричард хотел быть, но не решался.

GPS объявил поворот. Машина свернула с основной дороги на тихую улицу. Форест-Хиллс встретил ухоженными газонами и дорогими домами. Район для успешных людей, которые могут позволить себе приватность и комфорт.

Дом 78-12 в этот раз выглядел обжитым — горел свет в окнах, стояли цветы, на крыльце лежала свежая газета. Как будто здесь живёт нормальная семья. На подъездное дорожке стояла вторая машина — чёрная Chevrolet Camaro LT1. Ещё один транспорт «Денниса».

Ричард припарковался рядом, выключил двигатель. Вышел из машины, подошёл к входной двери. Достал ключи — один из них подошёл к замку идеально.

— Добро пожаловать домой, Ричард, — произнёс голос навигатора, когда система автоматически синхронизировалась с домашней сетью.

Домой. Ричард замер на пороге.

Но чей это дом — мой или «Денниса»?

Глава 17. Запись

Дверь поддалась легко. Слишком легко — замок словно ждал прикосновения руки Ричарда. В прихожей пахло знакомо: полиролью для мебели и чем-то ещё, едва уловимым. Электроникой.

Ричард остановился на пороге прислушиваясь. За спиной — ночной Куинс, шелест дождя по листьям, редкий гул машин. Внутри — тишина, но не пустая. Тяжёлая, как в аудитории перед экзаменом.

Пальцы нащупали выключатель, не ища. Рука знала, где он находится.

Свет выхватил из темноты знакомый интерьер. Те же картины на стенах, тот же диван, та же консоль у входа. Всё на местах, но пыли нет. Кто-то поддерживал порядок.

Кто?

Ноги несли его к лестнице. Автоматически, без команд сознания. Левая нога на третью ступень — деревянный скрип. Правая — на пятую, избегая треснувшей доски. Тело помнило маршрут.

На втором этаже коридор тонул в полумраке. Три двери: спальня, ванная, кабинет. Ричард не сомневался, какая нужна.

Кабинет встретил мягким свечением ждущих мониторов. Два экрана, выгнутые в дугу, отражали его силуэт. Системный блок гудел тихо — не спящий режим, активная работа. Кто-то был здесь недавно.

Ричард подошёл к креслу. Кожа под ладонью — тёплая. Он сел, и тело само нашло привычное положение.

Движение мыши разбудило экраны. Загрузился рабочий стол — чистый, стерильный. Ни одной иконки. Ни одного файла. Обои стандартные, как в демоверсии системы.

Где архивы? Где планы? Где следы той деятельности, которую он видел на записях?

Двойной клик по домашней папке. Каталог /home/user пуст. Каталог /usr/bin содержал только стандартный набор. История bash очищена. Корзина пуста.

Операционная система выглядела девственно-чистой, как будто её установили час назад.

Но это невозможно. На флешке — месяцы записей, детальное планирование, технические схемы. Всё это требовало инфраструктуры, серверов, специального софта.

Ричард запустил htop. Процессы — обычные. Сетевые соединения через netstat — стандартная синхронизация с облаком. Демоны — базовый набор Linux.

Никаких следов взломанных систем. Никаких туннелей к чужим серверам. Ничего.

Тишина давила на барабанные перепонки. В голове будто что-то шевелилось — не мысль, не воспоминание. Звук без звука. Шёпот без голоса.

dwrfscan –vault

Ричард дёрнулся, огляделся. Откуда эта фраза? Кто её произнёс?

Но в кабинете никого не было. Только он и мерцающие экраны.

dwrfscan –vault

Строка всплыла в сознании готовой, как команда из мышечной памяти. Пальцы потянулись к клавиатуре, остановились на полпути. Что за чушь? Такой команды не существует.

Но руки не слушались. Сами нашли нужные клавиши, стали печатать:

dwrfscan –vault

Enter.

Терминал должен был выдать ошибку: command not found. Вместо этого экран погас. Оба монитора отключились одновременно, системный блок затих.

Секунда полной тишины.

Потом экраны вспыхнули ярче прежнего. Не рабочий стол — видеоплеер. Автоматический запуск файла без названия.

На экране — он сам. Тот же кабинет, то же кресло.

«Другой он» посмотрел прямо в камеру и заговорил:

— Привет, Ричард. Если ты набрал эту команду — значит, я тебе её подсказал. Значит, пора.

Голос тот же, но интонации… Уверенные. Без запинок. Без привычного желания извиниться за каждое слово.

— Ты ищешь архивы? Записи планирования? Логи атак? — «Деннис» усмехнулся. — Здесь их нет. Это просто кабинет для посетителей. Декорация.

Ричард смотрел на экран, чувствуя, как холодеют ладони.

— Настоящее логово не здесь. И не на том этаже. — «Деннис» встал, камера проследила за его движением к книжному шкафу справа от кресла. — За этим шкафом — сканер отпечатков. Приложи руку к корешку Кнута, том второй. Синий.

Рука потянулась к указанной книге, остановилась. Ричард заставил себя не двигаться.

— Боишься? — «Деннис» будто читал его мысли. — Правильно. То, что ты увидишь внизу… изменит всё. Но выбора нет. Протокол зачистки уже запущен.

Протокол зачистки?

— Ты помнишь обыск квартиры? Систему мониторинга в столе? Она сработала автоматически, когда ФБР начали обыск. Включился таймер. — В глазах «Денниса» мелькнуло что-то похожее на сожаление. — У тебя три часа, Ричард. Потом все доказательства нашего раздвоения исчезнут навсегда.

Экран погас. Тишина вернулась в кабинет, но теперь она была другой. Напряжённой. Как перед взрывом.

Ричард посмотрел на книжный шкаф. Том Кнута, синий корешок, выделялся среди других книг. Подошёл, протянул руку.

Корешок поддался под пальцами. Не книга — кнопка. Скрытая за фальшивым переплётом панель засветилась зелёным. Сканер отпечатков.

Приложил ладонь. Устройство пискнуло, свет сменился с зелёного на синий.

Доступ разрешён.

Книжный шкаф качнулся, отъехал в сторону. За ним — проём, современная лестница с подсветкой ступеней. Воздух оттуда тянул прохладой и запахом дорогой техники.

Ричард посмотрел на ступени, ведущие вниз. В настоящее логово «Денниса». К правде о себе, которой он боялся больше любого обвинения ФБР.

Три часа до зачистки.

Лестница вела круто вниз, ступени из матового металла мягко подсвечивались изнутри. Каждый шаг отзывался глухим звуком, поглощаемым стенами. Воздух становился прохладнее, насыщеннее. Пахло электроникой и чем-то ещё — озонированной вентиляцией, как в дорогих офисах.

Через двадцать ступеней лестница закончилась площадкой перед тяжёлой дверью. Никаких замков, ручек, кнопок — только гладкая поверхность с едва заметной линией сканера на уровне глаз. Ричард приблизился. Красный луч скользнул по сетчатке, система пискнула тихо. Дверь разъехалась в стороны беззвучно.

За ней открылось пространство, которое не вписывалось в представления о подвале частного дома.

Восемь мониторов выстроились дугой вдоль дальней стены. Каждый экран — тридцать дюймов, профессиональная матрица, цветопередача безупречная. Под ними — три рабочие станции с клавиатурами без маркировки, мышами на точных сенсорах, блоками аудиомикшеров с десятками регуляторов.

Справа — карта мира во всю стену. Не распечатка, цифровая проекция с интерактивными элементами. Красные точки мигали в разных городах: Нью-Йорк, Лондон, Токио, Москва. Под каждой — краткая информация на английском: Target: Financial, Status: Recon, Priority: High.

Слева — стеллажи с серверным оборудованием. Два rack-шкафа, заполненных наполовину. Синие светодиоды процессоров, зелёные индикаторы сетевых карт, красные диоды жёстких дисков. Система работала — вентиляторы жужжали ровно, без перегрузок.

Ричард подошёл к центральной рабочей станции. Мониторы включились автоматически, показав рабочий стол с несколькими активными окнами. Терминалы с логами, графики сетевой активности, окно файлового менеджера.

В папке Archive — 340 видеофайлов. Даты покрывали одиннадцать месяцев. Названия содержали ключевые слова: Planning, Recon, Deployment, Post-Analysis. Некоторые помечены как CRITICAL или EVIDENCE.

Первый файл в списке — Session_001_Memory_Protocol_Test.mp4. Дата: октября прошлого года. За три месяца до первых записей на флешке из квартиры.

Ричард кликнул дважды. Видеоплеер развернулся на весь экран.

На записи — тот же подвал, но более пустой. Только одна рабочая станция, пара мониторов, минимум оборудования. «Деннис» сидел в простом офисном кресле, выглядел менее уверенным, чем в поздних записях.

— Первый тест системы программируемой амнезии, — говорил он, глядя в камеру. — Цель: создать контролируемые провалы памяти для защиты от детекции.

«Деннис» поднял небольшое устройство — наушники с дополнительными элементами, проводами, датчиками.

— Прототип на основе бинауральных ритмов и химических стимуляторов. Теория простая: нарушить консолидацию краткосрочной памяти в момент формирования долгосрочных энграмм.

Слова были понятными — Ричард изучал нейробиологию в рамках курса по человеческому фактору в безопасности. Но применение…

На экране «Деннис» надел наушники, активировал устройство. Лицо расслабилось, глаза закрылись. Через минуту он снял наушники, посмотрел в камеру растерянно.

— Что я… где запись? — пробормотал он оглядываясь. — Почему камера включена?

Видео закончилось резко.

Ричард открыл следующий файл. Дата через неделю.

— Тест номер семь, — тот же «Деннис», но более собранный. — Удалось добиться селективного стирания. Могу забыть конкретные действия, сохранив общую память о дне.

Оборудование стало сложнее. К наушникам добавились датчики ЭЭГ, небольшая инфузионная система, таймеры.

— Следующий этап: создание триггеров для автоматического переключения. Чтобы основная личность не подозревала о существовании альтернативной.

Основная личность. Ричард почувствовал холод в желудке. Это я — основная личность. А «Деннис» — альтернативная.

В углу экрана мигал таймер обратного отсчёта: 02:34:17. Два с половиной часа до автоматической зачистки.

Ричард переключился на соседний монитор. Там работала программа мониторинга новостей. Поисковые строки: Richard Watson, FBI cybercrime, CityGroup investigation. Система автоматически сканировала новостные сайты, блоги, соцсети.

В окне результатов — свежие записи:

23:47 — ФБР подтверждает обыск по ордеру на Девятой авеню

00:12 — Источники сообщают: подозреваемый скрылся до ареста

00:35 — Федеральное расследование расширяется на жилые районы Куинса

Система уже знала об обыске квартиры.

Третий монитор показывал финансовые данные. Распределённые криптокошельки — часть в Bitcoin для ликвидности, часть в анонимном Monero, часть заблокирована в доходных протоколах. Сложная архитектура хранения с защитой от изъятия.

Общая сумма: $2,540,000.

Результат атаки на CityGroup. Деньги, украденные центами с миллионов счетов.

На четвёртом мониторе — схемы будущих операций. Диаграммы сетей, карты инфраструктуры, временны́е графики. Цели помечены кодовыми названиями: Operation GridDark (энергосети), Operation DeepThroat (правительственные системы), Operation Blackout (финансовая инфраструктура).

Масштаб поражал. «Деннис» планировал не отдельные атаки — целую кампанию по дестабилизации критической инфраструктуры страны.

Пятый монитор транслировал карты городов с отметками маршрутов. Ричард узнал схему нью-йоркского метро — те же фантомные линии, которые появлялись в новостях после сбоя MTA.

Это тоже его работа. Поезда, которые ехали не туда. Хаос на станциях. Всё для проверки возможностей перед большими операциями.

Он открыл папку с последними записями. Файл Emergency_Protocol_Activation.mp4 был датирован вчерашним днём.

«Деннис» выглядел напряжённым, говорил быстрее обычного:

— Система мониторинга зафиксировала активность ФБР. Вероятность обыска в течение суток — семьдесят процентов. Активирую протокол экстренной зачистки.

На экране появились схемы дома с отмеченными устройствами наблюдения.

— Если они придут — узнаю за полчаса до штурма. Этого хватит для запуска автоматического уничтожения улик и создания ложного следа.

Ричард прислушался к звукам дома наверху. Тишина. Но таймер продолжал отсчёт: 02:31:55.

— Главная опасность — доказательства раздвоения личности, — продолжал «Деннис». — Если ФБР поймёт, что имеют дело с диссоциативным расстройством, появятся смягчающие обстоятельства. Психиатрическое лечение вместо тюрьмы.

Смягчающие обстоятельства. Логика была безупречной и пугающей.

— Поэтому все записи будут уничтожены. Вместо них система создаст поддельные улики единоличного планирования. ФБР найдёт обычного хакера, а не жертву ментального расстройства.

На экране показали схему процесса: уничтожение настоящих файлов термитными зарядами, генерация поддельных логов единоличного планирования, анонимный звонок с адресом дома и «доказательствами».

— К утру Ричард Уотсон станет обычным киберпреступником в глазах закона. Никаких психиатрических экспертиз, никаких снисхождений. Двадцать лет тюрьмы без возможности досрочного освобождения.

Видео оборвалось.

Ричард откинулся в кресле, пытаясь осмыслить масштаб. «Деннис» планировал не только скрыть следы — но и обрёк его на пожизненное заключение. Уничтожив доказательства болезни, он лишал Ричарда единственной возможности защиты.

Два с половиной часа до необратимых изменений.

На шестом мониторе появилось новое окно. Система безопасности дома. Камеры наружного наблюдения показывали пустую улицу, но в углу экрана мигала красная надпись: PERIMETER SENSORS ACTIVATED.

Кто-то приближался к дому.

Ричард переключился на тепловизор. Три красных силуэта двигались по соседним участкам. Ещё двое — с противоположной стороны дома.

ФБР нашли адрес быстрее, чем ожидал «Деннис».

Таймер на экране изменил цвет с жёлтого на красный: 00:27:15. Внизу появилась новая строка: EMERGENCY ACCELERATION PROTOCOL: ACTIVATED.

Система ускоряла зачистку.

У Ричарда оставалось меньше получаса до уничтожения всех доказательств своей невиновности.

Ричард поднялся из кресла, огляделся. В дальнем конце подвала светилась красная полоса — дверной проём за стеллажами с серверами. Подошёл ближе. Стальная дверь без ручки, только биометрический сканер и цифровая панель. Экран показывал: RESTRICTED ACCESS — BIOMETRIC REQUIRED.

Приложил ладонь. Сканер пискнул, панель сменила цвет с красного на зелёный. Замки открылись с металлическим звуком.

За дверью — коридор длиной метров пять, стены облицованы белым пластиком. Воздух здесь был другой: стерильный, с привкусом чего-то химического. Система вентиляции работала тише, но интенсивнее — давление в ушах изменилось при переходе.

В конце коридора — вторая дверь, прозрачная. За стеклом виднелось помещение, залитое ровным белым светом.

Медицинская лаборатория.

Ричард толкнул дверь. Она поддалась беззвучно, без сопротивления. Внутри пахло спиртом, дезинфекторами и чем-то сладковатым — эфиром или хлороформом.

Помещение напоминало операционную в частной клинике. Белые стены, полированный пол, потолок со встроенными светильниками полного спектра. У дальней стены — медицинское кресло с кожаной обивкой, окружённое стойками с оборудованием.

Но это была не обычная медтехника.

К креслу подведена система наушников — не простых, а массивных, закрытых, с дополнительными излучателями по бокам. Рядом — ЭЭГ-станция с тридцатью двумя каналами, экран показывал волновые формы в реальном времени. Справа — стойка с капельницами и автоматическими шприцами.

Ричард подошёл к креслу, провёл рукой по подлокотнику. Кожа была вдавлена, со следами частого использования.

Он сам оставил эти следы. «Деннис» приводил его сюда для сессий стирания памяти.

На мониторе ЭЭГ мерцали графики мозговой активности. Не архивные — живая запись. Датчики где-то регистрировали нейронную активность.

Чью?

Он повернулся. На стене напротив — зеркало во всю высоту. Но отражение было странным. Слишком чётким, без искажений. Не зеркало — односторонняя стеклянная перегородка.

За стеклом угадывался ещё один кабинет.

Ричард нашёл дверь сбоку от зеркала. Открыл.

Комната наблюдения. Два кресла перед пультом управления, мониторы показывали разные ракурсы медицинского кресла. На столе — толстые папки с распечатками, журнал экспериментов в кожаном переплёте.

Открыл журнал наугад. Почерк «Денниса», но более аккуратный, научный:

Сессия #73. Март. Продолжительность: 47 минут.

Препарат: Модафинил 200мг + Пирацетам 800мг + экспериментальный состав Delta-7.

Частоты: 47.3 Гц основная, 23.8 Гц поднесущая.

Цель: стирание воспоминаний о планировании атаки на CityGroup.

Результат: Успешно. Субъект не помнит 6 часов деятельности. Побочных эффектов нет.

Ричард перелистнул страницы. Записи шли месяцами. Сотни сессий. График эффективности рос — первые попытки стирали минуты, поздние — целые дни.

Сессия #127. Начало июня.

Новый протокол: двухфазное воздействие. Первая фаза — дестабилизация энграмм, вторая — селективная перезапись.

Результат: Субъект помнит обычный рабочий день вместо 12-часового планирования атаки на MTA.

Примечание: Сопротивление личности снижается. Переключения происходят легче.

«Субъект». Ричард усмехнулся горько. Для «Денниса» я лабораторная крыса.

На последней странице — запись вчерашней даты:

Сессия #180. Финальный тест перед активацией протокола зачистки.

Цель: полное стирание воспоминаний о существовании второй личности.

ВНИМАНИЕ: При успехе субъект станет единоличным носителем ответственности.

Статус: Отложено.

Ричард закрыл журнал. Руки дрожали. «Деннис» планировал стереть у него память о самом себе. Сделать Ричарда единственным ответчиком за преступления, убрав все доказательства раздвоения личности.

Окончательное предательство.

Он вернулся в основную лабораторию, подошёл к стойке с химическим оборудованием. Колбы, пробирки, микроскоп, центрифуга. В холодильнике — десятки ампул с растворами. Этикетки на латыни: Modafinil, Piracetam, Propranolol. И несколько без названий — только Delta-7, Compound X, Memory Disruptor v3.2.

«Деннис» синтезировал собственные препараты.

Справа от холодильника — сервер с массивными жёсткими дисками. Надпись на корпусе: NEURAL PATTERN STORAGE - 12TB. Двенадцать терабайт данных о работе его мозга.

Ричард подошёл к серверу, нашёл терминал. Экран показывал файловую структуру:

/neural_data/

├── baseline_patterns/ # Базовые паттерны мозга

├── richard_sessions/ # Записи основной личности

├── dennis_sessions/ # Записи альтернативной личности

├── transition_logs/ # Логи переключений

├── memory_maps/ # Карты памяти по сессиям

└── integration_protocols/ # Протоколы слияния личностей

Папка integration_protocols содержала файлы с датами будущего времени. Планы на случай принудительного объединения личностей.

Один файл привлёк внимание:

Открыл текстовый редактор:

ПРОТОКОЛ ЭКСТРЕННОГО СЛИЯНИЯ

Версия: 4.7 STABLE

Автор: (Dennis personality)

ЦЕЛЬ: Объединение двух личностей в единую структуру

без потери критических воспоминаний.

УСЛОВИЯ АКТИВАЦИИ:

1. Угроза физического уничтожения.

2. Невозможность раздельного существования.

3. Обоюдное согласие личностей.

ТЕХНИЧЕСКОЕ ОБЕСПЕЧЕНИЕ:

- ЭЭГ-мониторинг 32-канальный

- Частотный спектр 20-80 Гц

- Химическая поддержка: Delta-7 + Propranolol

- Время процедуры: 45-60 минут

РИСКИ:

- Потеря части воспоминаний (10-15%)

- Временная дезориентация (2-4 дня)

- Изменение базовой личности (необратимо)

- Смерть (вероятность <2%)

РЕЗУЛЬТАТ:

Новая интегрированная личность с доступом к воспоминаниям

и навыкам обеих исходных структур.

МЕСТОПОЛОЖЕНИЕ РЕЗЕРВНОГО ОБОРУДОВАНИЯ:

TechFlow DataCenter, Warehouse 7, Brooklyn

Ричард посмотрел на время в углу экрана: 00:23:47. Меньше двадцати четырёх минут до зачистки.

Система начала подавать сигналы тревоги. Из динамиков лаборатории раздался механический голос:

— PERIMETER BREACH DETECTED. INITIATE EVACUATION PROTOCOL.

На мониторе ЭЭГ появилось окно видеонаблюдения. Чёрные фигуры в бронежилетах окружали дом. Тепловизор показывал восемь человек — по два с каждой стороны здания.

— EMERGENCY EVACUATION ROUTE: ACTIVATED.

Стена напротив медицинского кресла начала разъезжаться. За ней — туннель с подсветкой, ведущий куда-то в сторону.

Ричард схватил портативную ЭЭГ-станцию с полки, сунул в рюкзак наушники и несколько ампул с препаратами. Копия протокола слияния была уже на флешке.

Звуки сверху: разбитое стекло, крики «ФБР!», топот ботинок по полу первого этажа.

— AUTOMATED DATA DESTRUCTION: INITIATED.

Сервер с нейронными данными начал подавать сигналы уничтожения. Жёсткие диски затрещали, готовясь к термическому стиранию.

Ричард нырнул в туннель. За спиной лаборатория залилась красным светом аварийных ламп. Система стирала следы своего существования.

Туннель вёл наклонно вниз, потом поворачивал влево. Освещение автоматическое, вентиляция работала. Длина — около ста пятидесяти метров. В конце виднелся ещё один красный световой сигнал.

Через пять минут он оказался в подземном гараже. Два транспортных средства: чёрная Honda Civic и спортивный мотоцикл Kawasaki Ninja ZX-10R. На топливном баке мотоцикла — записка, приклеенная скотчем.

Почерк «Денниса», но торопливый:

Если читаешь это — время слияния пришло. TechFlow Data Center, Warehouse 7. Протокол интеграции ждёт. — Д.

Ричард сел на мотоцикл. Система распознала биометрию, двигатель завёлся автоматически. GPS на приборной панели уже показывал маршрут: Бруклин, складской район, сорок минут езды.

Ворота гаража открылись синхронно с запуском двигателя.

На улице было тихо. ФБР штурмовал дом с другой стороны квартала — сюда они доберутся нескоро. Но времени всё равно мало.

00:18:35 — показывал таймер на экране мотоцикла.

Меньше двадцати минут до того, как «Деннис» исчезнет навсегда, оставив Ричарда отвечать за все преступления в одиночку.

Глава 18. Активация

Kawasaki Ninja ZX-10R завёлся с первого касания. Система распознала биометрию — отпечаток пальца на рукоятке стартера — и двигатель отозвался низким рычанием. GPS на приборной панели уже светился маршрутом: TechFlow Data Center, Warehouse 7, Brooklyn. Сорок минут езды при нормальном трафике.

Ричард сжал рукоятки. Кожа ладоней влажная, сердце бьётся в горле. На дисплее мотоцикла мигал красный таймер: 00:14:23. Четырнадцать минут до автоматической зачистки всех доказательств.

Двигатель взревел, ворота гаража разъехались. Холодный воздух ударил в лицо — Ричард не успел найти шлем. Мотоцикл рванул вперёд, колёса проскрипели по бетону туннеля. Замаскированный люк между контейнерами разомкнулся — выход на поверхность.

Форест-Хиллс засветился фонарями. Тихие улицы, дорогие дома, газоны как с картинки. Ричард повернул на главную дорогу, ускорился. В зеркалах — пустота. Ни машин, ни движения.

Слишком тихо.

На втором перекрёстке в зеркале заднего вида мелькнули фары. Далеко, но движущиеся с той же скоростью. Ричард добавил газа. Фары не отставали.

Телефон завибрировал. Входящий вызов, номер не определён. Автоматически принялся через Bluetooth-гарнитуру мотоцикла.

— Ричард Уотсон, остановитесь. — Голос агента Митчелла, спокойный, профессиональный. — У нас есть ваши координаты. Дороги перекрыты.

Ричард не ответил. Сбросил вызов, выключил телефон. В зеркалах теперь две пары фар. Фары приближались.

GPS показывал поворот на Куинс-боро Бридж через километр. Ричард наклонился ниже, двигатель завыл на высоких оборотах. Спидометр показал 160. Дорога была пустой — слишком поздно для плотного трафика, слишком рано для утренних пробок.

На мосту ветер стал резче. Нью-Йорк сверкал огнями по обе стороны — красивый и равнодушный. Таймер на панели: 00:12:47.

За спиной фары стали ближе. Не две машины — четыре. ФБР мобилизовался быстро.

В наушниках снова зазвонил телефон. Другой номер.

— Подозреваемый движется через Куинс-боро в сторону промзоны Бруклина, — передавал кто-то по рации. — Скорость превышает разрешённую. Воздушная поддержка в пути.

Вертолёт. Ричард резко свернул с основной дороги, нырнув в лабиринт промышленных улиц Бруклина. Здания потемнели, фонари стали реже. Пахло металлом, машинным маслом и чем-то сладковатым — химическими отходами.

Над головой раздался знакомый стук лопастей. Прожектор вертолёта прорезал темноту, щупая асфальт белым лучом.

00:11:20

Ричард повернул между двух грузовых контейнеров. Пространство узкое — больше сорока не разогнаться. Стены контейнеров мелькали по бокам — ржавый металл, граффити, номера перевозчиков.

Резкая боль в висках. Как удар током. Руки дёрнулись на руле, мотоцикл качнулся. Зрение помутнело на секунду.

Что…

Руки повернули руль влево сами. Резко, уверенно. Мотоцикл нырнул в переулок, который Ричард не заметил в темноте. Узкий проход между двумя складами, едва шире велосипедной дорожки.

Я не это хотел. Куда мы едем?

Мысль была его, но руки двигались не по его команде. Тело наклонилось, избегая низкого козырька. Ричард не видел козырька в темноте.

Откуда я знаю про козырёк?

Переулок вывел к железнодорожным путям. Заброшенная ветка, рельсы заросли травой. Мотоцикл подпрыгнул на шпалах, амортизаторы просели с металлическим стуком.

Прожектор вертолёта шарил где-то сзади, между контейнерами. Потерял след.

00:09:47

— Тепловизор показывает движение к складскому комплексу, — голос пилота в наушниках. — Координаты 40.6892, -73.9442.

Ричард выключил радиочастоты. Но информация уже поступила. Кольцо сжималось.

Впереди маячил силуэт заброшенного завода. Три трубы, разбитые окна, ворота, открытые настежь. Территория огорожена сеткой-рабицей, но в ограждении зияла дыра. Ричард направил мотоцикл к проёму.

Опять. Я не видел эту дыру.

Руки снова действовали автоматически. Тело наклонилось, пропуская низкую поперечину ограды. Мотоцикл въехал на территорию завода.

Здесь пахло ржавчиной и плесенью. Асфальт потрескался, кое-где пробивалась трава. У дальней стены виднелся люк канализационного коллектора.

Канализация?

Боль в голове усилилась. Не постепенно — рывком, как переключение канала. На секунду в глазах потемнело.

Когда зрение вернулось, он уже стоял у люка. Мотоцикл припаркован аккуратно, двигатель заглушён. В руках — тяжёлый железный крюк, которым только что поддел крышку люка.

Когда я это сделал?

Крышка откинулась со скрежетом. Из отверстия потянуло сыростью и чем-то кислым. Железная лестница уходила вниз, в темноту.

00:07:55

Сзади раздался лай собак. Кинологическая служба. Плюс прожектор вертолёта, наконец нащупавший правильное направление. Луч скользнул по стене завода, приближаясь к его укрытию.

Ричард спустился в люк. Ноги сами нашли перекладины лестницы. Последний взгляд наверх — мотоцикл оставался на поверхности. Улика для ФБР.

Крышка захлопнулась над головой.

В канализации было темно и тихо. Только капающая вода да собственное дыхание, эхом отражающееся от кирпичных стен. Ричард включил фонарик телефона.

Туннель уходил в две стороны. Он повернул направо не раздумывая.

Почему направо?

Но тело уже шло по коллектору, обходя лужи, пригибаясь под низкими трубами. Шаги уверенные, без проб и ошибок. Как по знакомому маршруту.

00:06:12

Где-то сверху грохнула крышка люка. Агенты спустились в туннель. Луч их фонарей мелькнул в ответвлении коллектора — далеко, но приближается.

Ричард ускорился. Впереди виднелась развилка туннелей. Он повернул в левый рукав, потом сразу в правый. Маршрут сложный, запутанный. Тело помнило каждый поворот.

Сколько раз я здесь был?

Мысль была чужой. Не его воспоминание. Что-то из глубины, из тех дней, которые он не помнил. Дней, когда был не он.

00:04:33

Звуки погони стихли. Химические испарения и застоявшаяся вода в туннелях забили собакам нюх — лай доносился всё реже, из дальних ответвлений. Туннель привёл к широкой камере, где несколько коллекторов сходились в один. Здесь было суше. На стене — ржавая лестница, ведущая к верхнему люку.

Ричард поднялся не проверяя. Тело знало, что крышка не заперта.

Люк открылся в подвал. Бетонные стены, низкий потолок, запах сырости и старой электроники. Ричард поднялся, огляделся. Лестница вела наверх, к металлической двери с потёртой табличкой: TechFlow Solutions — Authorized Personnel Only.

TechFlow? Ричард замер. Здание, где он проходил стажировку три года назад. Небольшая IT-компания, занимавшаяся облачными решениями. Но почему тело привело его именно сюда?

Он поднялся по лестнице, толкнул дверь. Та поддалась беззвучно.

За дверью — знакомый офис, но изменённый до неузнаваемости. Когда-то здесь стояли обычные рабочие столы, офисные стулья, пара серверов у стены. Теперь пространство превратилось в техническую лабораторию. Стойки с оборудованием, мониторы, кабели, проложенные по полу и стенам. Гул серверов стал громче — их было больше, намного больше.

Что здесь произошло? Когда «Деннис» успел всё это установить?

На столе лежала записка, написанная его почерком:

Протокол слияния готов. Решай быстро. — Д.

Рядом — портативная ЭЭГ-станция, подключённая к серверу. На экране мигала программа: MemoryGate v4.0 — Integration Protocol Ready.

Таймер показывал: 00:01:55.

Меньше двух минут до того, как все доказательства раздвоения личности исчезнут навсегда. До того, как он станет единственным ответчиком за преступления, которые помнил только наполовину.

Ричард посмотрел на наушники системы слияния.

Последний шанс узнать правду. Или умереть, пытаясь.

Над головой послышался нарастающий стук лопастей. Вертолёт завис прямо над зданием, прожектор бил в окна верхнего этажа. Снаружи раздались голоса, топот ботинок по асфальту — группа захвата окружала здание.

00:00:47

Ричард стоял перед ЭЭГ-станцией, наушники в руках. Металл холодил ладони. За окнами мелькали лучи фонарей — агенты прочёсывали территорию. Вертолёт завис ниже, прожектор медленно скользил по фасаду здания.

Если я это сделаю — я больше не буду собой.

Мысль прозвучала в голове его голосом. Но тут же отозвалась другим:

Ты будешь больше, чем собой. Мы оба будем.

Ричард дёрнулся, огляделся. В комнате никого. Только мерцающие экраны, гул серверов и его собственное дыхание.

— Кто здесь? — прошептал он.

Тишина. Потом что-то сдвинулось внутри, как переключение канала. Плечи расправились, спина выпрямилась. Лицо изменилось — не внешне, а выражением. Уверенность заменила растерянность.

— Я здесь, — сказал он вслух. Голос стал глубже, без привычных запинок. — Всегда был здесь.

Рука с наушниками дрогнула.

— Деннис?

— Не совсем. И не совсем ты. — Он повернул голову, словно прислушиваясь к звукам снаружи. — У нас есть тридцать секунд на принятие решения.

00:00:30

— А если процедура убьёт нас? — Ричард почувствовал, как контроль возвращается к нему. Голос снова стал тише, неувереннее.

— Тогда умрём честно, — переключение обратно, уверенная интонация. — Не как преступник, и не как трус.

Снаружи раздался треск рации:

— Альфа-группа, вход с южной стороны. Браво-группа — северный периметр. Подозреваемый внутри здания.

Тяжёлые шаги по лестнице. Металлическая дверь этажом ниже скрипнула на петлях.

— Здание окружено! — голос в мегафон. — Выходите с поднятыми руками!

00:00:15

Ричард посмотрел на экран ЭЭГ-станции. Программа MemoryGate ждала активации. Курсор мигал в поле ввода пароля.

dwrfvault

Пароль всплыл в сознании сам. Не его память — чужая. Память того, кто настраивал систему.

Пальцы набрали символы автоматически. Enter.

Программа ожила. На экране появилась схема мозга с двумя выделенными зонами — красной и синей. Разные паттерны активности, разные волновые формы.

PROTOCOL: INTEGRATION

ESTIMATED TIME: 45-60 SECONDS

RISK LEVEL: MODERATE

PROCEED? Y/N

— Последний шанс передумать, — сказал он, не зная, кто именно говорит.

Шаги приближались. Второй этаж. Потом третий.

00:00:08

Ричард надел наушники. Система автоматически настроилась под его биометрию — датчики нашли нужные точки на голове, зафиксировались. На экране ЭЭГ появились живые волны мозговой активности.

Y

Нажал клавишу.

Мир заполнился звуком. Не музыка — частоты. Низкие, пульсирующие, проникающие под кожу. Сорок семь герц основной тон, модулированный на двадцать три. Бинауральные ритмы, которые заставляли мозг синхронизироваться.

00:00:00

Таймер достиг нуля. В том же мгновение Ричард почувствовал: что-то ломается. Не в комнате, не в здании. В голове. Барьер между двумя частями сознания трещал, как ледяная корка.

— Протокол зачистки активирован, — объявил механический голос из динамиков. — Автоматическое уничтожение данных начато.

Дверь внизу с грохотом распахнулась.

— ФБР! Всем оставаться на местах!

На экране ЭЭГ красная и синяя зоны начали сближаться. Волновые формы колебались, накладывались друг на друга, искали общий ритм.

Частоты в наушниках стали громче. Ричард зажмурился — в голове происходило что-то странное. Воспоминания наслаивались друг на друга. Его детство — и планирование взлома CityGroup. Первый день в SOC — и покупка дома в Форест-Хиллс. Расставание с Миланой — и встреча с ней же в кафе.

Я помню. Я помню всё.

Не два набора воспоминаний. Один. Целый. Без пропусков и провалов.

Шаги по лестнице стали ближе. Третий этаж. Коридор. Секунды до обнаружения.

— Мы больше не два человека, — прошептал он, и голос был одновременно и Ричардом, и Деннисом, и кем-то новым.

На ЭЭГ волны слились в единую структуру. Красная и синяя зоны растворились, образовав фиолетовую. Стабильную. Цельную.

Дверь в комнату распахнулась.

— ФБР! Руки вверх!

Агент Митчелл ворвался первым, пистолет наготове. За ним — Чен и ещё двое в бронежилетах. Лазерные прицелы нащупали грудь.

Новый Ричард медленно снял наушники, повернулся к агентам. Движения спокойные, без спешки. На лице — выражение, которого не было ни у застенчивого Ричарда, ни у дерзкого Денниса. Что-то среднее. Уравновешенное.

— Я больше не борюсь с собой, — сказал он просто.

Митчелл не опустил оружие:

— Отойдите от оборудования. Медленно.

— Конечно.

Он сделал шаг в сторону, руки подняты, но не в панике — в знак мирных намерений.

Митчелл кивнул напарнику. Чен опустил пистолет, достал наручники.

— Ричард Уотсон, вы арестованы по подозрению в кибератаках на критическую инфраструктуру и хищении средств в особо крупном размере.

Глава 19. Интеграция

Наручники уже сомкнулись на запястьях. Металл холодил кожу, но не давил — агент Чен застегнул их профессионально, без лишней силы. Ричард стоял между двух агентов ФБР, чувствуя необычную тишину в голове.

Не пустоту. Покой.

— …всё, что вы скажете, может быть использовано против вас в суде, — заканчивал формулировку прав Митчелл. — Понятно?

— Понятно, — кивнул он. Голос прозвучал ровно — без запинок прежнего Ричарда, но и без вызывающих интонаций Денниса. — Я готов к разговору.

За его спиной ЭЭГ-станция продолжала работать. На экране мерцала единая волновая линия — спокойная, стабильная. Больше не две конфликтующие структуры, а одна интегрированная.

Митчелл окинул взглядом серверную комнату. Стойки с оборудованием гудели ровно, индикаторы мигали зелёным. Но что-то в атмосфере изменилось — напряжение ушло.

— Что это было за оборудование? — спросил он, кивая на ЭЭГ-станцию.

— Попытка излечиться, — ответил Ричард без колебаний. — Частично сработала.

— Излечиться от чего?

Короткая пауза. Он склонил голову, словно прислушиваясь к внутренним ощущениям. На лице — удивление от отсутствия привычного внутреннего диалога.

— От раздвоения. У меня было диссоциативное расстройство личности. Альтернативная личность совершала преступления без ведома основной.

Чен фыркнул:

— Классическая защита неадекватов. Раздвоение личности.

— Не защита, — спокойно ответил Ричард. — Констатация факта. Хотя доказать это теперь невозможно.

— Почему?

— Альтернативная личность уничтожила все доказательства своего существования. Система автоматической зачистки стёрла файлы пять минут назад.

Митчелл приподнял бровь:

— Как удобно. Доказательства болезни самоуничтожились.

— Система была настроена именно так. — В его голосе не было горечи, только понимание. — Альтернативная личность не хотела смягчающих обстоятельств. Планировала, чтобы основная личность отвечала за все преступления в одиночку. Двадцать лет тюрьмы вместо психиатрического лечения — в больнице его бы уничтожили навсегда, а в тюрьме оставался шанс вернуться.

— И вы это приняли?

Ричард выпрямился, насколько позволяли наручники за спиной.

— Теперь я принимаю ответственность за все действия моего тела. Но готов доказать готовность к искуплению.

— Каким образом?

— Верну украденные деньги. Покажу, где они спрятаны. Предоставлю информацию о других кибератаках, которые планировались, но не были реализованы.

Чен переглянулся с Митчеллом. За окном была глубокая ночь, неоновые огни промзоны мигали в темноте.

— Вы предлагаете сделку? — спросил Митчелл.

— Предлагаю сотрудничество. Полное, добровольное. — Ричард посмотрел прямо в глаза агенту.

— И что именно?

— Использовать свои навыки для защиты того, что раньше атаковал.

Третий агент, который до этого молча осматривал оборудование, подошёл ближе:

— А мы можем вам верить? Как отличить правду от очередной манипуляции?

Ричард задумался. На экране ЭЭГ волна слегка участилась — отклик на внутренний поиск правильных слов.

— Проверьте мои действия, — сказал он наконец. — Дайте доступ к компьютеру под полным контролем. Я покажу счета с украденными средствами и верну деньги в присутствии свидетелей.

— Это докажет только то, что вы знаете, где деньги, — возразил Чен.

— Докажет готовность от них отказаться. Добровольно. Без принуждения.

Митчелл достал телефон, набрал номер:

— Да, это Митчелл. Подозреваемый задержан без сопротивления. Выражает готовность к полному сотрудничеству… Да, в сознании, адекватен. Нужен транспорт для доставки в федеральное здание.

Пока шёл разговор, Ричард стоял спокойно, вслушиваясь в собственные ощущения. Тишина в голове всё ещё поражала. Не пустота — полнота. Как будто два неполных сознания, наконец, сложились в одно целое.

За окном полностью царила ночь. В серверной работало только дежурное освещение да мерцание индикаторов. ЭЭГ-станция показывала стабильную активность единого мозга.

— Поехали, — сказал Митчелл, убирая телефон. — Нас ждёт долгий разговор.

— Ждёт, — согласился он. — И я расскажу всё, что помню. А теперь я помню… многое.

Агенты провели его к выходу. За спиной остались гудящие серверы и мигающий экран ЭЭГ — свидетели рождения новой, цельной личности. Личности, которая больше не воевала сама с собой.

— Как нам к вам обращаться? — спросил Чен, ведя арестованного по коридору.

Ричард на секунду задумался.

— Ричард. Это имя в документах. Но я больше не тот Ричард, который работал в SOC. И не Деннис, который планировал атаки. Я — тот, кто помнит жизнь обоих.

— И что это значит?

— Что я больше не прячусь от ответственности. И не горжусь содеянным. Просто готов всё исправить.

***

Салон чёрного седана пах кожей и чем-то казённым — дезинфектором или химчисткой. Ричард сидел на заднем сиденье между агентами, наручники врезались в позвоночник через тонкую обивку. За тонированными стёклами ползли огни ночного Бруклина — неоновые кресты аптек, жёлтые прямоугольники окон в панельных домах, мигающие вывески борделей и круглосуточных прачечных.

Из рации водителя доносились обрывки радиопереговоров: «…Альфа-7, патруль завершён…», «…подозрительная активность на Канал-стрит…»

Митчелл достал диктофон, щёлкнул кнопкой записи:

— Расскажите о планировании атаки на CityGroup. С технической стороны.

Ричард посмотрел в окно, где проплывали ржавые опоры моста. Воспоминания двух личностей накладывались друг на друга — он чувствовал одновременно гордость за элегантность атаки и стыд за предательство коллег. Челюсть напряглась.

— Подготовка заняла восемь месяцев. Первые четыре — пассивная разведка. Я использовал служебный доступ для картографирования сети, анализа архитектуры SIEM, изучения процедур реагирования.

— Конкретнее, — перебил Чен. — Какие именно уязвимости?

— Корреляционный движок. — Пальцы Ричарда сжались в кулаки. — Он агрегирует события от всех сенсоров в единый поток. Но у него есть слепое пятно — если входящие события помечены определённым тегом, они обрабатываются с задержкой в тридцать минут.

— Этот тег вы и использовали?

— Я создал червя-активатора и внедрил его в подсистему парсинга логов. Программа ждала любого стандартного запроса к базе событий — рутинной операции, которую SOC-инженеры делают десятки раз за смену.

Митчелл наклонился вперёд:

— И как только вы сделали такой запрос…

— Червь пометил все последующие события тегом maintenance_delayed. Корреляционная система начала откладывать их обработку. — Ричард сглотнул, горло пересохло. — Алерты приходили, но хаотично, без логической связи. Мы видели симптомы, но не могли понять причину.

Машина свернула на прибрежное шоссе. Слева за металлическим ограждением плескалась тёмная вода Ист-Ривер, отражая огни противоположного берега. Воздух в салоне стал спёртым от напряжения.

— Суммы списаний? — спросил Чен, записывая что-то в блокнот.

— Два миллиона пятьсот сорок тысяч долларов. — Цифры отскакивали от зубов, как заученная формула. — Микротранзакции с семи миллионов счетов через API платёжного ядра. Средняя сумма — тридцать шесть центов, стандартное отклонение — восемь центов.

Митчелл переглянулся с напарником. Такая точность не могла быть случайной.

— Куда ушли деньги?

— Распределение через пятнадцать криптокошельков Monero, потом планировалась конвертация в наличность через даркнет-обменники. — Плечи дёрнулись, будто тело отторгало воспоминания Денниса. — Стандартная схема отмывания.

— А как вы планировали остановить собственную атаку? — Чен смотрел в упор. — Очень удобно — стать героем, поймав самого себя.

Ричард закрыл глаза на секунду. За веками мелькали два набора воспоминаний: растерянность Ричарда в SOC и холодный расчёт Денниса в подвале дома.

— Альтернативная личность заложила временной триггер. Через сорок пять минут после начала атаки система должна была оставить контрольную нить — один управляющий канал с предсказуемым маршрутом. — Дыхание участилось. — Основная личность должна была его «случайно» обнаружить и перекрыть.

— Театр, — пробормотал Митчелл.

— Спектакль с идеальным таймингом, — согласился Ричард. — Достаточно времени для извлечения денег, но не настолько долго, чтобы привлечь внимание федералов.

Машина въехала в туннель Мидтаун. Флуоресцентные лампы стробоскопом били в окна, бетонные стены отражали рёв двигателя. В салоне стало душнее.

— Система метро, Daily News — тоже ваших рук дело? — продолжал допрос Чен.

— Тестовые цели. — Мышцы шеи болезненно напряглись. — Проверка методов социальной инженерии и устойчивости критической инфраструктуры к атакам.

— А что планировалось дальше?

Ричард помолчал. В памяти всплывали схемы, которые рисовал Деннис: красные линии атак на картах города, временны́е графики, расчёты ущерба.

— Con Edison — энергосистема Нью-Йорка. Альтернативная личность нашла уязвимость в SCADA-системе через устаревший протокол Modbus. — Голос стал тише. — Потом — центр управления воздушным движением в Ла-Гуардиа. SQL-инъекция в базе планов полётов.

В салоне повисла гробовая тишина. Даже рация замолчала.

— Это уже терроризм, — тихо сказал Чен.

— Это была демонстрация беспомощности. — Ричард повернулся к агенту, в глазах читалось смешение стыда и гнева. — Без жертв, без необратимого ущерба. Отключить свет на час, посадить пару самолётов вне очереди. Показать городу, что он живёт в иллюзии безопасности.

— И вам это казалось разумным?

— Мне — нет. — Кулаки сжались сильнее, костяшки побелели. — Альтернативной личности — да. Она хотела войти в историю как тот, кто взломал неприступное.

Туннель закончился, машина выехала на Перл-стрит. Впереди возвышались башни федерального здания — стекло и сталь, подсвеченные прожекторами. Пахло выхлопами и чем-то промышленным — сваркой или гудроном.

— И что вы можете предложить взамен на снисхождение? — спросил Митчелл.

— Полный список других хакерских группировок, которые я изучал. — Ричард выпрямился, насколько позволяли наручники. — Phoenix Collective — специализируются на банковских системах Европы, планируют атаку на Европейский центральный банк. Dark Sabbath — русскоязычная группа, готовят проникновение в сети Пентагона через подрядчиков. И новички — Erebus. Они изучают инфраструктуру умных городов.

Митчелл записывал названия:

— Откуда такая подробная информация?

— Альтернативная личность искала союзников. Мониторила даркнет-форумы, изучала их методы, пыталась установить контакт.

— Удалось?

— С Phoenix — да. Был предварительный контакт. Обмен техническими разработками. — Плечи поникли. — У меня есть архив их переписки и планы ближайших операций.

Машина затормозила у служебного входа федерального здания. Охранники в кевларовых жилетах проверяли документы у немногочисленных ночных посетителей. Из рации доносился треск: «…Браво-6, у нас арест по киберпреступлениям…»

— А что вы хотите взамен? — спросил Чен, выключая диктофон.

— Возможность работать. — Ричард посмотрел на освещённые окна здания. — Консультант по кибербезопасности под полным контролем ФБР. Электронный браслет, еженедельные отчёты, ограничение передвижения. Но не тюрьма.

— Почему мы должны вам доверять? — Митчелл открыл дверь, в салон ворвался холодный воздух.

— Потому что теперь все мои навыки работают в одном направлении. — Ричард медленно вышел из машины, вдохнул полной грудью. — И я хочу направить их на защиту того, что когда-то атаковал.

Впереди светились стеклянные двери федерального здания. Там ждали прокуроры, адвокаты, долгие часы переговоров о цене искупления.

Но выбор был сделан окончательно.

***

Допросная комната пахла кофе и промышленным ковролином. Серые стены, флуоресцентные лампы под потолком, стол из ламинированной фанеры и четыре пластиковых стула. В углу — камера видеонаблюдения с красным индикатором записи. На столе стоял защищённый ноутбук, под присмотром эксперта-криминалиста, подключённый к изолированной сети ФБР.

Ричард сидел напротив агентов, наручники сняли полчаса назад. Руки свободны, но охранник у двери и техник с ноутбуком не давали забыть о статусе. Часы на стене показывали 4:17 утра.

Рядом с Митчеллом устроился агент Коулман — специалист по цифровой криминалистике, худой мужчина в очках, с планшетом для протоколирования каждого действия.

— Продемонстрируйте, где хранятся украденные средства, — сказал Митчелл. — Но каждое ваше действие будет фиксироваться. Агент Коулман контролирует процесс.

Ричард потянулся к клавиатуре, остановился. Ладони вспотели — странно, учитывая, что он собирался избавиться от денег, а не красть их.

— Могу я сначала объяснить структуру хранения? Чтобы вы понимали каждый шаг.

— Объясняйте, — кивнул Коулман, включая запись на планшете.

— Деннис, альтернативная личность, создал трёхуровневую систему. — Пальцы нервно постукивали по столу. — Первый уровень — обычные Bitcoin-кошельки для сбора средств. Второй — конвертация в анонимную криптовалюту Monero. Третий — распределение по «спящим» кошелькам с задержкой вывода.

— Задержка вывода? — переспросил Чен.

— Защита от принуждения. — Горло пересохло, Ричард сглотнул. — Деньги нельзя потратить раньше определённой даты. Даже под пытками основная личность не смогла бы их вернуть.

В груди кольнуло — воспоминания Денниса накладывались на текущий момент. Тот был так горд этой схемой. А сейчас она рушилась по собственной воле.

— Но после интеграции у вас есть доступ к ключам? — уточнил Митчелл.

— Есть. — Ричард взял себя в руки, потянулся к клавиатуре. — Начинаем с первого кошелька.

Коулман придвинулся ближе, глядя через плечо. На экране появился анонимный браузер, затем — интерфейс криптокошелька. Чёрный фон, зелёные строки цифр.

— Вводите код доступа медленно, — попросил эксперт. — Каждый символ фиксируется.

Ричард набрал 24-символьную фразу восстановления. Руки слегка дрожали — не от страха, от внутреннего конфликта. Часть его помнила, сколько усилий потребовалось для создания этой системы.

— Первый кошелёк. Шесть биткоинов. — На экране появился баланс. — По текущему курсу примерно полмиллиона долларов.

Митчелл присвистнул, Чен отложил ручку:

— Вы серьёзно готовы от этого отказаться?

— Должен. — Ричард не смотрел на цифры, они резали глаза. — Это не мои деньги. Никогда ими и не были.

— Мне нужен адрес банка для возврата, — вмешался Коулман.

Митчелл достал телефон, набрал номер. Пока он говорил с представителем CityGroup, Ричард переключился на второй кошелёк. Сумма там была больше — 1,2 миллиона в эквиваленте.

— Боже мой, — прошептал Чен. — Вы украли больше, чем мы думали.

— Альтернативная личность планировала никогда этого не тратить, — признался Ричард. — Деньги были… трофеем. Доказательством мастерства.

— А сейчас?

Пауза. В голове эхом отзывались гордые мысли Денниса: Элегантно. Безупречно. Никто не догадается. А рядом — стыд Ричарда: Я предал доверие. Украл у невинных людей.

— Сейчас это просто цифры на экране. Чужая боль, превращённая в код.

Коулман получил банковские реквизиты, продиктовал адрес. Ричард начал первый перевод.

— Шесть биткоинов переводятся в резервный фонд CityGroup, — прокомментировал он, заполняя поля. — Комиссия сети — примерно сорок долларов.

— Подтвердите операцию, — сказал эксперт.

Клик. Транзакция ушла в сеть. Полмиллиона долларов исчезли из личного кошелька безвозвратно.

— Как себя чувствуете? — спросил Митчелл, наблюдая за лицом Ричарда.

— Странно. — Тот потёр виски. — Как будто отдаю чужие деньги, которые случайно оказались у меня.

Второй перевод оказался сложнее. Анонимная криптовалюта требовала дополнительных шагов — конвертации через автоматические обменники, подтверждения в двух сетях одновременно.

— Процесс займёт минут пятнадцать, — объяснил Ричард, запуская обмен. — Monero нельзя перевести напрямую в Bitcoin без посредников.

— Почему именно Monero? — поинтересовался Коулман.

— Полная анонимность. Невозможно отследить источник или получателя. — Плечи напряглись. — Деннис изучал её три года, искала способы улучшить приватность переводов.

— И находил?

— Несколько уязвимостей. Но не использовал их. — Голос стал тише. — У него были… этические ограничения. Красть у корпораций — одно дело, у частных лиц — другое.

— Преступник с моралью? — иронично заметил Чен.

— Преступник с самооправданиями, — поправил Ричард. — Он считала себя современным Робин Гудом. Обманывал сам себя.

Обмен завершился. Ещё 1,2 миллиона отправились в кошелёк банка. Ричард смотрел на подтверждение транзакции с каменным лицом.

— Остался третий кошелёк, — сказал он. — Там сложнее. Средства заблокированы в протоколе, который выплачивает проценты за хранение.

— И что это означает? — спросил Митчелл.

— Альтернативная личность не просто прятала деньги. Она их инвестировала. — Ричард открыл сложный интерфейс с графиками и диаграммами. — Доходность — восемь процентов годовых.

Коулман записывал технические детали. На экране мелькали названия протоколов с экзотическими именами: Compound, Aave, Yearn Finance.

— Чтобы вывести средства досрочно, нужно заплатить штраф, — объяснил Ричард. — Чуть больше четырёх процентов от суммы. Около пятидесяти тысяч долларов.

— Заплатите, — не колеблясь сказал Митчелл. — Время важнее денег.

— Как скажете.

Ричард запустил процедуру досрочного вывода. На экране появились предупреждения о штрафах, необходимости подтверждения операции. Он прошёл все шаги методично, без эмоций.

— 790 тысяч долларов, — объявил он, когда последняя транзакция завершилась. — После вычета штрафа.

Коулман подсчитал итоги:

— Общая сумма возврата — 2 миллиона 537 тысяч долларов. Комиссии и штрафы — 53 тысяч. Совпадает с заявленной суммой кражи.

— Каждый цент возвращён, — кивнул Ричард. — Добровольно.

За окном начинало светать. В коридоре послышались шаги — прибыл представитель банка для подтверждения операций.

Митчелл откинулся на спинку стула:

— Должен признать, впечатляет. Но возврат денег не отменяет преступления.

— Знаю. — Ричард закрыл последнее окно браузера. — Это не попытка избежать наказания. Это первый шаг к искуплению.

— А что дальше?

— Информация о других группах. Планы нереализованных атак. Всё, что может помочь предотвратить будущие преступления. — Он посмотрел на агентов. — У меня есть данные, которые могут спасти миллионы долларов и чьи-то жизни.

Чен закрыл блокнот:

— Говорите. Мы слушаем.

***

Кабинет федерального прокурора располагался на двадцать третьем этаже, панорамные окна выходили на утренний Манхэттен. Солнце поднималось над Ист-Ривер, отражаясь в стеклянных фасадах небоскрёбов. Воздух пах кожаными переплётами книг и дорогим кофе из эспрессо-машины в углу.

За массивным столом из тёмного дерева сидела прокурор Дженнифер Карлайл — женщина лет пятидесяти с седеющими волосами, собранными в строгий пучок, и стальным взглядом, отточенным годами федеральных процессов. Рядом устроились агенты Митчелл и Чен, между ними — стопки документов и планшеты с записями допросов.

Ричард сидел напротив, всё ещё в наручниках. Металл натирал запястья — напоминание о том, что формально он остаётся преступником. Рядом — назначенный адвокат Дэвид Стоун, молодой мужчина в дешёвом костюме, который явно впервые участвовал в деле такого масштаба.

— Мистер Уотсон, — начала Карлайл, медленно листая толстую папку, — у нас есть неопровержимые доказательства кибератак на сумму свыше двух с половиной миллионов долларов. Взлом критической инфраструктуры города. Создание массовой паники в транспортной системе.

Она подняла глаза от документов, изучая лицо обвиняемого:

— По федеральному законодательству, статьи 1030 и 2332b, это влечёт наказание от двадцати пяти до тридцати лет лишения свободы без возможности досрочного освобождения. Плюс компенсация ущерба в размере пятнадцати миллионов долларов.

Адвокат Стоун нервно поправил очки:

— Мы можем ходатайствовать о психиатрической экспертизе. Заявить о невменяемости на основании диссоциативного расстройства.

— Не можем, — спокойно перебил Ричард. — Все медицинские доказательства уничтожены автоматической системой зачистки. У нас нет ни записей терапевтов, ни документированных эпизодов, ни свидетелей раздвоения.

Стоун открыл рот для возражения, но Ричард продолжил:

— Суд присяжных не поверит рассказам о второй личности без медицинского подтверждения. Это будет выглядеть как попытка избежать ответственности.

Карлайл приподняла бровь, явно удивлённая таким пониманием правовых реалий:

— Значит, вы отказываетесь от единственной возможной защиты?

— Я предлагаю более ценную альтернативу. — Ричард выпрямился, насколько позволяли наручники, и посмотрел прокурору прямо в глаза. — Полное сотрудничество с федеральными органами взамен на возможность искупления через службу.

— Конкретнее, — потребовала Карлайл.

— Возврат всех украденных средств уже произведён. Два миллиона пятьсот сорок тысяч долларов переведены в резервный фонд CityGroup четыре часа назад. — Он кивнул агентам. — Плюс я готов предоставить исчерпывающую информацию о трёх крупных международных хакерских группировках.

Чен достал блокнот, приготовился записывать:

— Какие группировки?

— Phoenix Collective — европейская организация, планирующая атаку на межбанковскую систему SWIFT в течение восьми недель. У меня есть их переписка, включая схемы проникновения и список банков-мишеней.

Карлайл наклонилась вперёд:

— Продолжайте.

— Dark Sabbath — русскоязычная группа, готовящая многоэтапное проникновение в подрядческие сети Пентагона. Векторы атаки через системы Lockheed Martin и Raytheon. У меня есть их техническая документация и временны́е графики.

— И третья?

— Erebus. Новая группировка, специализирующаяся на инфраструктуре умных городов. — Голос Ричарда стал серьёзнее. — Они изучают уязвимости в системах управления светофорами, электроснабжением, водоочистными станциями. Готовят синхронную атаку на несколько мегаполисов одновременно.

Митчелл переглянулся с Ченом. Масштаб информации превзошёл ожидания.

— У вас есть доказательства этих планов? — спросила прокурор.

— Архивы переписки объёмом в четыре гигабайта. Схемы сетевой инфраструктуры целей. Исходный код инструментов для атак. — Ричард сделал паузу. — Плюс я могу предоставить уникальную экспертизу по защите от подобных методов.

— Каким образом?

— Стать техническим консультантом ФБР. — В его голосе не было самоуверенности, только понимание логики ситуации. — Кто лучше поймёт мышление хакера, чем бывший хакер? Я знаю их слабые места, потому что сам ими обладал.

Карлайл откинулась на спинку кресла, обдумывая предложение. За окном проплывал полицейский вертолёт, его лопасти отбрасывали тени на документы.

— А что вы хотите взамен? — спросила она осторожно.

— Пять лет условного заключения с обязательной работой консультантом. Постоянное ношение электронного браслета с GPS-отслеживанием. Запрет на самостоятельный доступ к финансовым системам. Еженедельные отчёты о деятельности перед куратором.

— Понимаете ли вы, мистер Уотсон, что федеральные обвинения в кибертерроризме — это не административное правонарушение? — Карлайл сжала губы. — За подобные преступления люди получают пожизненные сроки.

— Понимаю. — Ричард не отвёл взгляда. — И готов их отбывать, если мои услуги окажутся бесполезными. Но я предпочёл бы потратить следующие годы на защиту тех систем, которые когда-то атаковал.

Митчелл наклонился к прокурору:

— Мэм, его техническая демонстрация была безупречной. Возврат средств прошёл идеально. И информация о группировках выглядит достоверной — мы уже начали проверку через Интерпол.

— К тому же он единственный специалист, способный думать одновременно как атакующий и защитник, — добавил Чен. — Подобного опыта нет ни у кого в наших штатах.

Стоун попытался вмешаться:

— Возможно, стоит потребовать более мягких условий…

— Нет, — решительно перебил Ричард. — Предложенные условия справедливы. Я совершил серьёзные преступления и должен за них отвечать.

Карлайл несколько секунд изучала его лицо, словно пытаясь обнаружить обман или манипуляцию. Не найдя ни того ни другого, она отложила документы.

— Даже если я соглашусь на переговоры, окончательное решение принимает федеральный судья Харрисон. А он известен жёсткостью к киберпреступникам. — Прокурор постучала ручкой по столу. — Мне нужны веские доказательства вашей ценности.

— Тогда позвольте продемонстрировать её прямо сейчас, — предложил Ричард. — Дайте любую реальную задачу, с которой сталкивается ваш отдел.

Карлайл задумалась, взвешивая риски. В коридоре послышались шаги — смена дежурства федеральных маршалов.

— У нас действительно есть одна критическая проблема, — сказала она наконец. — Серия ransomware-атак на больницы восточного побережья. Уже пострадали шесть медицинских учреждений, включая детскую больницу в Бостоне. Пациенты в реанимации остались без мониторинга.

Ричард напрягся. Лицо стало серьёзным:

— Шифровальщики требуют выкуп?

— Полмиллиона долларов в Bitcoin за каждую больницу. Наши эксперты по кибербезопасности работают над проблемой две недели, но следы ведут в тупик.

— Дайте мне доступ к логам атак под полным контролем ваших специалистов, — попросил Ричард. — Сорок восемь часов, изолированная система, постоянное наблюдение.

— А если не справитесь?

— Тогда я принимаю максимальное наказание без апелляций и ходатайств.

Карлайл обменялась взглядами с агентами. Митчелл кивнул едва заметно.

— Хорошо, — согласилась прокурор. — Сорок восемь часов под круглосуточным контролем. Если поможете остановить атаки — я рекомендую судье рассмотреть вашу сделку.

***

Три дня спустя Ричард стоял на ступенях федерального здания, щурясь от яркого октябрьского солнца. На запястье поблёскивал чёрный электронный браслет — GPS-трекер с радиусом действия в пятнадцать миль от Федерал-Плаза. В руках — папка с подписанным соглашением о сотрудничестве и временное удостоверение консультанта ФБР.

Задание с больничными хакерами заняло тридцать четыре часа. Ричард вычислил преступников через анализ шифровального алгоритма — злоумышленники использовали модифицированную версию его собственного кода из давнего университетского проекта. Ирония оказалась болезненной: его разработки служили для атак на медицинские учреждения, где лежали дети.

Но результат превзошёл ожидания. ФБР арестовало семь человек в четырёх странах и конфисковало серверную инфраструктуру стоимостью в миллионы долларов. Все заблокированные больничные системы были разблокированы без выплаты выкупа. Карлайл лично договорилась с судьёй Харрисоном о сделке.

У выхода из здания собралась толпа журналистов. Около двадцати человек с камерами, микрофонами, прожекторами. Ричард остановился на верхней ступени, не пытаясь уклониться от внимания.

— Мистер Уотсон! — крикнула репортёр с логотипом CNN на микрофоне. — Вы раскаиваетесь в совершённых преступлениях?

Ричард посмотрел прямо в объектив камеры. Внутри головы была непривычная тишина — никаких конфликтующих голосов, никакого страха перед публичностью.

— Я принимаю полную ответственность за все свои действия. И намерен потратить следующие годы на искупление причинённого вреда.

— Собираетесь ли вы продолжать хакерскую деятельность? — выкрикнул репортёр NY Post.

— Да. Но теперь — на стороне закона. В качестве консультанта ФБР по кибербезопасности.

— Что вы скажете жертвам ваших атак? — настаивала журналистка CNN.

Ричард помолчал, подбирая слова. В памяти мелькнули лица коллег из SOC — Омара, Анны, Джейсона. Людей, которые ему доверяли.

— Я не прошу прощения, потому что некоторые действия непростительны. Но я обещаю сделать всё возможное, чтобы защитить других от подобных преступлений.

— Как мы можем вам доверять? — выкрикнул кто-то из толпы.

— Никак, — честно ответил Ричард. — Доверие нужно заслужить. Каждый день, каждым поступком. Я готов к этой работе.

Микрофоны потянулись ближе:

— А что вы чувствуете, выходя на свободу?

Ричард посмотрел на электронный браслет, потом — на удостоверение в руках.

— Впервые в жизни я точно знаю, кто я такой и что должен делать. Это не свобода в привычном понимании — это ответственность.

Вопросы сыпались ещё минут десять. Ричард отвечал терпеливо, без попыток произвести впечатление или вызвать сочувствие. Просто констатировал факты новой реальности.

Когда основная толпа начала расходиться, к нему подошёл агент Митчелл с ключами от служебной машины:

— Готовы к первому рабочему дню, консультант Уотсон?

— Готов. А где я буду жить? — Ричард осознал практическую проблему. — Моя квартира опечатана как место преступления.

— ФБР снимает временное жильё для сотрудников программы контролируемого освобождения. — Митчелл протянул адрес. — Студия в Куинсе, рядом с метро. Скромно, но чисто. Арендная плата удерживается из зарплаты консультанта.

— Зарплата?

— Две тысячи в неделю. После налогов и удержаний на жильё остаётся около тысячи на личные расходы. — Агент усмехнулся. — Меньше, чем вы украли за одну минуту, но честно заработано.

Ричард улыбнулся в ответ:

— Честные деньги стоят дороже.

— Завтра в восемь утра, седьмой этаж, отдел кибербезопасности. — Митчелл протянул временный пропуск и служебный телефон. — Добро пожаловать в команду.

Пластиковая карточка была тёплой от руки агента. На фото — его лицо, спокойное, сосредоточенное. Под фотографией надпись: Р. Уотсон — консультант, отдел кибербезопасности — допуск второго уровня.

Впервые должность точно отражала то, кем он хотел быть.

Служебный телефон был заблокирован — только рабочие контакты и система мониторинга. На экране уже мигало первое уведомление: Вводный инструктаж: завтра 08:00. Федерал-Плаза, кабинет 719. Явиться к агенту Митчеллу.

— Как добраться до квартиры? — спросил Ричард.

— На метро. Ваш браслет отслеживает перемещения, но разрешает общественный транспорт в пределах рабочих маршрутов. — Митчелл указал на устройство. — Нарушение периметра вызовет автоматическую тревогу.

— Понял.

— И ещё, — агент стал серьёзнее. — Ваша первая проверка куратором — через неделю. Агент Коулман будет контролировать адаптацию к программе. Не подведите нас, Ричард.

— Не подведу.

Спускаясь по ступеням к станции метро, Ричард не чувствовал ни триумфа, ни эйфории освобождения. Только тихое удовлетворение от правильно сделанного выбора. Электронный браслет напоминал о границах новой жизни, но не тяготил — скорее защищал от соблазна вернуться к старым привычкам.

В вагоне метро он сидел у окна, глядя на проплывающие станции. Пассажиры вокруг читали, слушали музыку, переписывались в телефонах — обычные люди, ведущие обычную жизнь. Теперь он тоже мог стать одним из них.

Студия в Куинсе оказалась крошечной — комната с кроватью, стол, мини-кухня, душевая кабина. Мебель простая, функциональная. На столе лежала папка с правилами программы контролируемого освобождения и график еженедельных отчётов.

Ричард сел на кровать, открыл папку. Первая страница — список ограничений: запрет на посещение интернет-кафе, компьютерных магазинов, хакерских конференций. Обязательная регистрация всех используемых устройств. Еженедельные встречи с куратором.

Вторая страница — рабочие обязанности: анализ угроз кибербезопасности, консультации по защите государственных систем, обучение агентов методам противодействия хакерам.

Ричард закрыл папку, лёг на кровать. За окном темнело, включались огни Куинса. Где-то там жили миллионы людей, которых он когда-то считал потенциальными жертвами. Теперь они стали теми, кого он должен защищать.

В телефоне пришло сообщение от системы мониторинга: День 1 контролируемого освобождения завершён успешно. Местоположение подтверждено. Комендантский час: 23:00-06:00. Спокойной ночи, консультант Уотсон.

Ричард улыбнулся, читая формальный текст. Впервые за месяцы он засыпал, точно зная, кто он и зачем живёт.

Человек, который больше не воевал сам с собой.

Эпилог

Шесть месяцев спустя.

Февральский снег покрывал Федерал Плаза тонким слоем, хрустя под ногами редких прохожих. Ричард поднимался по знакомым ступеням федерального здания на утреннюю смену — отдел кибербезопасности работал посменно, как и его прежнее место в SOC банка. Пропуск в руке уже не временный — постоянный, с голографической защитой и допуском третьего уровня. На запястье по-прежнему поблёскивал электронный браслет.

Седьмой этаж встретил привычным гулом кондиционеров и приглушёнными голосами дневной смены. За полгода работы здесь изменилось многое — коллеги больше не смотрели на него как на диковинку, а агент Митчелл даже иногда советовался по сложным случаям. Но полного доверия всё ещё не было — Ричард это чувствовал в осторожных взглядах, в том, как разговоры стихали при его приближении.

У своего стола в дальнем углу он остановился, включил защищённый терминал. На экране — новое задание с грифом «Приоритет-1». Серия подозрительных активностей в сетях трёх крупных банков Восточного побережья. Паттерны разведки, характерные для подготовки масштабной атаки.

— Доброе утро, консультант Уотсон, — раздался знакомый голос.

Агент Сара Джонсон — его куратор последние три месяца, женщина лет сорока с внимательными глазами и недоверчивым взглядом. Бывший программист из частного сектора, она относилась к Ричарду профессионально, но без тепла.

— Что видите в этих данных? — спросила она, кивая на экран.

Ричард изучил логи, фильтруя шум и выделяя значимые паттерны. Работа за полгода натренировала глаз — теперь он видел угрозы быстрее любого штатного аналитика.

— Профессиональная разведка, — сказал он наконец. — Слишком осторожная для новичков. Тот, кто это делает, изучает цели месяцами, не оставляет следов.

— Предположения?

— Phoenix Collective. — Ричард почувствовал, как напряглись мышцы шеи. — Та группа, о которой я рассказывал при аресте. Видите временные интервалы? Работают строго с 23:00 до 03:00 EST. Восточная Европа, скорее всего.

Джонсон нахмурилась:

— Уверены?

— На девяносто процентов. Но нужно проверить через их каналы связи.

— Какие каналы?

Ричард помолчал. То, что он собирался предложить, могло разрушить с трудом заработанное доверие.

— Зашифрованный форум в даркнете. Они знают меня как DwarF — потенциального союзника. Я мог бы…

— Нет, — резко перебила Джонсон. — Никаких контактов с преступными группировками.

— Но если они готовят крупную атаку…

— Используем стандартные методы наблюдения.

Ричард открыл программу анализа трафика, которую написал сам. Система начала искать скрытые паттерны, но это могло занять дни. А у Phoenix, судя по интенсивности разведки, времени оставалось мало.

Час спустя анализ дал предварительные результаты — атака планировалась на ближайшие две недели. Ричард показал прогноз Джонсон.

— Нужны более конкретные данные, — сказала она, изучая графики. — Точные даты, методы, список целей.

— Тогда без прямого контакта не обойтись.

— Я сказала — нет.

— Тогда готовьтесь к потерям в миллиарды долларов, — спокойно ответил Ричард.

Джонсон долго смотрела на экран с прогнозами. Наконец, достала телефон:

— Дайте мне час. Нужно обсудить с руководством.

Пока она звонила начальству, Ричард сидел за терминалом, борясь с внутренним конфликтом. Часть его — воспоминания Денниса — хотела этого контакта. Адреналин игры, азарт обмана, ощущение власти над системой. Другая часть боялась. А что, если он не устоит? Что, если старые инстинкты окажутся сильнее?

— Операция одобрена, — сообщила Джонсон вернувшись. — Но под жёстким контролем. Каждое сообщение проходит через меня и отдел внутренней безопасности.

Ричард кивнул и открыл зашифрованный мессенджер. Старые контакты всё ещё были в списке — отголоски прошлой жизни. Найдя группу Phoenix, он начал печатать.

Долго молчал. Проблемы решены. Готов к серьёзной работе. — DwarF

Ответ пришёл через полчаса:

DwarF! Думали, тебя посадили. Видели интервью — обещал федералам сотрудничать. Как нам знать, что ты не под колпаком?

Ричард показал сообщение Джонсон. Та побледнела:

— Они не доверяют. Операция провалена.

— Не обязательно, — медленно сказал Ричард. — Они просят доказательств лояльности.

— Каких доказательств?

— Небольшой взлом. Что-то символическое, чтобы показать — я всё ещё хакер.

Джонсон резко встала:

— Вы предлагаете совершить преступление?

— Я предлагаю остановить преступление. — Ричард не отводил взгляда. — Phoenix готовит атаку, которая может обрушить финансовую систему. Ради этого стоит пойти на небольшое нарушение.

— Небольшое нарушение федерального закона!

— Что-то символическое. Никаких данных не украдено, никого не ранено. Но для Phoenix это будет доказательством.

Лицо Джонсон стало каменным:

— Я не дам разрешение на взлом.

— Тогда звоните руководству. Объясните ситуацию.

Следующие два часа Джонсон провела в переговорах. Ричард слышал обрывки разговоров — резкие голоса, споры, эскалация вверх по иерархии. В какой-то момент к телефону подключился сам директор отдела.

Наконец, она вернулась, выглядя измученной:

— Операция одобрена. Но с жёсткими условиями.

— Какими?

— Цель — сайт Департамента сельского хозяйства. Простой DDoS на один час в период минимальной активности.

Ричард покачал головой:

— Нет. Это не сработает.

— Что значит — не сработает?

— DDoS сельского сайта — это уровень скрипт-кидди. Phoenix знает мой стиль. Они заподозрят подставу с федералами.

Джонсон нахмурилась:

— Тогда что вы предлагаете?

— DMV. Департамент автотранспорта. — Ричард замолчал, пальцы застыли над клавиатурой. — Я… изучал их систему раньше. Нашёл уязвимость, но… не использовал. Если я её продемонстрирую…

— Это серьёзнее сельского хозяйства!

— И поэтому убедительнее. DMV — это не Пентагон, но серьёзная цель. Символическое проникновение, замена логотипа на час, никаких украденных данных. Phoenix поверят, что это настоящий DwarF.

Джонсон помолчала, изучая его лицо:

— Мне нужно снова звонить наверх. DMV — это не шутки.

Следующий час она провела в новых переговорах. Голоса в трубке звучали ещё резче. В какой-то момент к телефону подключился директор отдела, потом его заместитель по национальной безопасности.

Наконец, она вернулась, выглядя измученной:

— Звонили из Вашингтона. Лично заместитель директора ФБР. — Она села, потёрла виски. — Операция одобрена на самом высоком уровне.

— Условия?

— Жёсткие. Никакого доступа к персональным данным. Никакого вреда инфраструктуре. Только визуальное изменение главной страницы максимум на час. И каждое ваше действие записывается.

Ричард кивнул, но внутри всё сжалось. Даже такой «безобидный» взлом шёл против всего, во что он поверил за полгода работы.

— Готовы? — спросила Джонсон.

— Нет, — честно ответил он. — Я боюсь.

— Чего?

— Что мне это понравится. Что я захочу большего.

Джонсон внимательно посмотрела на него:

— Тогда почему соглашаетесь?

— Потому что цена отказа выше цены риска.

Ричард открыл терминал и начал работать. Сердце стучало так, что казалось — Джонсон услышит через весь этаж. Пальцы помнили танец по клавишам — SQL-инъекция в параметр session_id, обход аутентификации через cookie manipulation. Старая уязвимость в системе управления контентом DMV была всё ещё там.

Ладони вспотели, мышь скользила в руке. Через пятнадцать минут в логах появилось предупреждение о подозрительной активности — пальцы на секунду замерли, но система успокоилась. Ещё пять минут, и он получил доступ к административной панели.

— Захожу в систему, — сообщил он Джонсон, задерживая дыхание.

На главной странице DMV он заменил официальный логотип на изображение зелёного гнома в автомобиле. Под картинкой добавил знакомую подпись: Owned by DwarF.

— Готово, — прошептал он, и только тогда понял, что всё это время не дышал. Выдохнул, делая скриншот.

Джонсон посмотрела на экран и покачала головой:

— Боже мой. Это действительно выглядит как ваш почерк.

Ричард отправил скриншот в чат Phoenix, добавив короткое сообщение:

Федералы думают, что владеют мной. Ошибаются. Глянули на DMV?

Через пять минут пришёл ответ:

Cipher_Ghost: Твою мать! Это же НАСТОЯЩИЙ гном!

Потом ещё несколько сообщений:

Phoenix_Leader: Ха-ха-ха… А ты всё тот же безумец. Мы думали, ты сломался в их руках.

Shadow_Walker: Чёрт, я аж ностальгию почувствовал. Этот гном в тачке — гениально. Добро пожаловать домой, DwarF.

Cipher_Ghost: Подключайся к закрытому каналу. Есть работа для настоящих профессионалов.

— Мы в деле, — сообщил Ричард, но голос звучал глухо.

Он убрал изменения с сайта DMV, стирая следы своего присутствия. На всю операцию ушло сорок минут.

— Как себя чувствуете? — спросила Джонсон.

— Отвратительно. — Он потёр виски. — Но теперь у нас есть шанс остановить их.

В закрытом канале Phoenix выложили детали операции — координированная атака на банковскую систему, запланированная на следующую пятницу. Масштаб поражал: двенадцать банков одновременно, парализация платёжных систем на всём Восточном побережье.

— Боже мой, — прошептала Джонсон, читая план. — Если они это осуществят…

— Экономический хаос на недели, — закончил Ричард. — Миллионы людей останутся без доступа к деньгам.

Он переслал всю информацию руководству операции. Через час началась международная спецоперация: аресты в пяти странах, изъятие серверов, блокировка инфраструктуры Phoenix.

К вечеру всё было кончено. Phoenix Collective прекратил существование.

— Операция завершена успешно, — сообщила Джонсон. — Руководство выражает благодарность.

Ричард сидел за своим столом, глядя на чёрный экран отключённого терминала. На запястье мигал браслет — напоминание о том, кто он есть. На столе лежал отчёт об операции — доказательство того, кем стал Ричард.

— Кстати, — сказала Джонсон, собирая бумаги, — в DMV уже звонили. Требуют объяснений.

— И что им сказали?

— Учения по кибербезопасности. Официально.

Ричард усмехнулся. Даже в победе федералы умели прикрывать следы.

— Сожалеете о взломе? — спросила она.

— Да, — честно ответил он. — Но не сожалею о результате.

— Это хороший знак?

— Это значит, что я всё ещё помню разницу между правильным и неправильным. — Ричард встал, собирая вещи. — Даже когда границы размываются.

За окном темнело. Смена заканчивалась, время возвращаться в свою скромную квартиру в Куинсе. Завтра будет новый день, новые угрозы, новые моральные дилеммы. Но сегодня он прошёл испытание — не сломался, не сорвался, остался тем, кем выбрал быть.

— До свидания, агент Джонсон, — сказал он у лифта.

— До свидания, консультант Уотсон. — Она помолчала, потом добавила: — Хорошая работа сегодня.

Это было первое настоящее одобрение от неё за три месяца. Ричард улыбнулся, нажимая кнопку вызова лифта.

В кармане завибрировал служебный телефон — новое задание. Какая-то группа хакеров атаковала госпитали в Техасе. Пациенты снова в опасности, системы жизнеобеспечения под угрозой.

Ричард посмотрел на экран, потом на отражение в зеркальных дверях лифта. Человек, смотревший на него из отражения, больше не сомневался в том, кто он такой.

— Завтра разберёмся, — пробормотал он, убирая телефон.

Двери лифта открылись. В метро домой он поймал своё отражение в окне вагона. На секунду мелькнуло — DwarF смотрит в ответ, усмехаясь знакомой наглой ухмылкой. Но это длилось мгновение. Человек в отражении снова стал Ричардом Уотсоном, консультантом по кибербезопасности, который просто делал свою работу.

Впереди ждал вечер, дом, и спокойный сон человека, который знал — он на правильной стороне.

Спасибо за чтение

Вернуться к книге