Игорь Таланов
Эндшпиль сознания

Глава 1. Ход в никуда

Илья сидел в стеклянной переговорной на двадцать третьем этаже и смотрел, как на большом экране медленно краснеет карта корпоративной сети.

Краснела она красиво. Почти празднично - если не знать, что каждый красный узел означает систему, которая либо уже перестала отвечать, либо вот-вот перестанет.

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

- Концы света надо нормировать. Больше двух в неделю - это уже эксплуатация.

Сергей хмыкнул. У него были глаза человека, который видел слишком много ночных алертов и слишком мало нормальных завтраков.

- Может, это опять тестовая система? Кто-нибудь из разработчиков решил проверить идею в проде.

- Разработчики не проверяют идеи в проде, - сказал Илья.

Сергей повернулся и посмотрел на него почти с нежностью.

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

- Я верю в логи. Люди врут охотно, логи - нет.

Илья приблизил один из узлов. На экране всплыли строки событий: обрывки служебных сообщений, временны́е метки, идентификаторы процессов. Для постороннего - бессмысленная вязь. Для него - почерк.

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

- Следов мало, - сказал Сергей.

- Надо знать что искать.

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

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

Вот это «не захотел» Илье нравилось меньше всего. В кибербезопасности опаснее всего не те, кто ломится напролом. Опаснее те, кто заглядывает на секунду и закрывает за собой дверь. Такие возвращаются - когда знают, что пришло время.

- Все? - спросил Сергей.

- Ничего не все. Но до утра не развалится.

- Великолепно. Запишем как оптимистичный прогноз.

У лифта Сергей окликнул его:

- Илья.

- Да?

- Ты правда думаешь, что сегодняшнее - разведка?

- Думаю, что кто-то хотел понять, как мы реагируем.

- Кто?

Лифт тихо звякнул, двери раскрылись.

- Если бы я знал - уже раздражал бы тебя конкретикой.

Двери закрылись.

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

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

- Представляете, - сказал водитель, заметив взгляд Ильи в зеркало, - если правда получится? Электричество почти бесплатно. Красота.

- Почти бесплатно ничего не бывает.

- Ну вы прям как моя жена. Ей тоже все подозрительно.

- Мудрая женщина.

Водитель засмеялся и сделал радио потише.

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

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

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

«Он выбрал меня», - написала мать.

«Это социальная инженерия», - ответил Илья.

«Не умничай. Лучше приезжай в выходные».

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

Чай получился слишком крепким. Как обычно.

В шахматах человек чаще всего проигрывает не фигуру. Он проигрывает картину мира.

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

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

Начиналось все как обычно. В 01:28 Илья сел за компьютер и открыл шахматный сайт.

Это был его способ промывать голову от рабочего шума. Кто-то смотрит сериалы, кто-то бегает, кто-то не вылезает из бара. Он играл быстрые партии с незнакомыми людьми, потому что шахматы создавали иллюзию справедливой вселенной. Шестьдесят четыре клетки, тридцать две фигуры, никаких совещаний, скрытых бюджетов и писем с темой «Коллеги, добрый день, срочно». Только позиция. Только ход. Только последствия.

Он выбрал контроль десять минут плюс пять секунд на ход. Нажал «Играть».

Система нашла соперника меньше чем за три секунды.

Cl_771

Рейтинг: 2048

Страна: не указана

Статус: в сети

- Ну здравствуй, - тихо сказал Илья.

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

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

Именно тогда Cl_771 сделал ход, от которого Илья замер.

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

- Ошибка?

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

Через четыре хода черные потеряли ферзя. Через восемь - получили безнадежную позицию. Сдались.

На экране: Вы победили. Cl_771 предлагает реванш.

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

Он нажал «Принять».

Вторая партия оказалась другой.

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

«Сильный», - подумал Илья.

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

Илья не взял сразу. Сидел, глядя на доску.

У сильных игроков ошибки бывают - у всех бывают. Но у сильных они пахнут усталостью, спешкой, переоценкой позиции. Здесь запах был другой. Как от аккуратно положенной на стол записки.

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

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

Илья выиграл снова.

Cl_771 предлагает реванш.

- Ладно, - сказал он. - Покажи фокус.

В третьей партии он уже не столько играл, сколько наблюдал.

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

После третьей победы Илья скачал записи всех трех партий и открыл анализатор.

Движок безжалостно подсветил ошибки красным.

В обычной партии такие отметки - приговор.

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

c5 - a5 - a3 - c5 - b4 - d5 - f3

Он откинулся в кресле.

Семь координат.

Ошибиться один раз можно. Дважды - бывает. Но семь раз подряд приводить фигуры на один и тот же набор клеток в разных партиях - это не ошибка. У ошибок нет синтаксиса.

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

Потом открыл изображение шахматной доски и просто посмотрел на нее.

Восемь вертикалей. Восемь горизонталей. Шестьдесят четыре клетки.

А что если это алфавит? Начинающийся с… А.

Он взял лист бумаги и нарисовал таблицу - простую, школьную.

a1 = А, b1 = Б, c1 = В, d1 = Г, e1 = Д, f1 = Е, g1 = е, h1 = Ж

a2 = З, b2 = И, c2 = Й, d2 = К, e2 = Л, f2 = М, g2 = Н, h2 = О

a3 = П, b3 = Р, c3 = С, d3 = Т, e3 = У, f3 = Ф, g3 = Х, h3 = Ц

a4 = Ч, b4 = Ш, c4 = Щ, d4 = Ъ, e4 = Ы, f4 = Ь, g4 = Э, h4 = Ю

a5 = Я

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

Ничего не получалось. Он посмотрел на доску иначе. Если кто-то хотел «писать» на ней — где удобнее всего это делать? Не с края, где в начале партии всё занято фигурами. Не на первой и второй горизонталях, где стоят белые. Не на седьмой и восьмой, где стоят чёрные. Свободная территория в начале игры — это середина. Третья, четвёртая, пятая, шестая горизонтали. Именно там фигуры появляются позже, именно там идут основные маневры.

Илья перевернул лист и перерисовал таблицу. Сдвинул алфавит вверх — начал с третьей “свободной” горизонтали.

a3=А, b3=Б, c3=В, d3=Г, e3=Д, f3=Е, g3=Ё, h3=Ж

a4=З, b4=И, c4=Й, d4=К, e4=Л, f4=М, g4=Н, h4=О

a5=П, b5=Р, c5=С, d5=Т, e5=У, f5=Ф, g5=Х, h5=Ц

a6=Ч, b6=Ш, c6=Щ, d6=Ъ, e6=Ы, f6=Ь, g6=Э, h6=Ю

a7=Я

Подставил координаты.

c5=С

a5=П

a3=А

c5=С

b4=И

d5=Т

f3=Е

Илья прочитал вслух — медленно, по буквам:

— Спасите.

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

Спасите.

Не «привет». Не «тест».

Спасите.

Он посмотрел на ник.

Cl_771

В отключенном чате написал:

Что значит «спасите»? Кто вы?

Серое системное сообщение появилось мгновенно:

Пользователь отключил чат.

- Конечно, - сказал Илья. - Зачем упрощать.

На экране снова мигнуло:

Cl_771 предлагает реванш.

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

Но профессиональная часть его сознания уже не отпускала.

Если это шутка - она слишком аккуратна. Если сигнал - он адресован ему. Если ловушка - непонятно, где крючок.

Илья принял реванш.

Теперь нужно было ответить самому.

Он взглянул на таблицу. Чтобы написать КТО ТЫ, нужны клетки:

К = d4, Т = d5, О = h4 - пробел - Т = d5, Ы = e6

Взятие фигуры - пробел. Шах - конец фразы. Он запомнил это по ходам соперника.

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

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

Конь пришел на d4.

К.

Черные не наказали его. Просто ждали.

Илья почувствовал, как по спине прошел холодок.

Он продолжил. Фигура на d5 - Т. Слон на h4 - О. Взятие бессмысленной пешки - пробел. Снова d5 - Т. Потом e6 - Ы.

Партия со стороны выглядела как игра двух людей, которые сегодня явно были не в форме.

Илья нажал часы после последнего хода и откинулся назад.

Cl_771 думал.

До этого он отвечал быстро. Иногда мгновенно.

Илья поймал себя на том, что не дышит.

Потом черные сделали ход. Не лучший. Не атакующий. Просто - нужный.

Фигура встала на h3.

h5 = Ц.

Следующий ход - h4.

О.

Потом - e3.

Д.

ЦОД.

Центр обработки данных.

Илья медленно выдохнул.

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

После ЦОД - взятие. Пробел.

c5 = С, h4 = О, e4 = Л, g4 = Н, h5 = Ц, f3 = Е

СОЛНЦЕ.

Слово было слишком большим для случайности. Слишком конкретным для шутки.

Илья сразу вспомнил такси. Бодрый голос в радио. Международный прорыв. «Второе солнце».

Черные сделали еще одно взятие. Пробел. Потом пошла новая последовательность.

f4 = М, b4 = И, e4 = Л, e4 = Л, b4 = И, h4 = О, g4 = Н, e6 = Ы

МИЛЛИОНЫ.

Радость от дешифровки окончательно превратилась во что-то ледяное.

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

e5 = У, f4 = М, b5 = Р, e5 = У, d5 = Т

УМРУТ.

В конце черные дали шах. Конец фразы.

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

Илья открыл новый файл и напечатал расшифровку целиком:

ЦОД. СОЛНЦЕ. МИЛЛИОНЫ УМРУТ.

Перечитал один раз. Потом второй.

За окном проехала машина, фары скользнули по потолку и исчезли. В квартире стало очень тихо. Даже компьютер, казалось, начал гудеть осторожнее.

Он знал, что страх - удобный инструмент. Им открывают двери быстрее, чем паролями. Страшное сообщение не значит правдивое.

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

Он сохранил партии. Сделал копии. Записал таблицу. Потом снова посмотрел на ник.

Cl_771

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

На экране:

Cl_771 предлагает реванш.

Илья встал и подошел к окну.

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

Может быть, это был розыгрыш. Может быть, проверка. Может быть, чья-то игра.

Он вернулся к столу.

- Хорошо, - сказал он пустой комнате. - Допустим, я слушаю.

И нажал «Принять».

Глава 2. Алфавит на доске

Утро пришло незаметно.

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

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

На экране - шесть сохраненных партий.

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

Увидеть слова и понять их смысл - разные вещи.

Содержание выглядело вот так:

ЦОД. СОЛНЦЕ. МИЛЛИОНЫ УМРУТ.

Я СВЯЗАН С ДАТА-ЦЕНТРОМ.

ПРОЕКТ. ЗАПУСК СКОРО.

РАСЧЕТЫ НЕВЕРНЫ.

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

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

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

Второе: те, которые не мусор, обычно выглядят именно как мусор. Поэтому их и пропускают.

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

Илья смотрел на шесть партий.

Структура была. Внутренняя логика - тоже.

Это не означало, что сообщение правдиво. Это означало, что его нельзя выбросить в корзину с пометкой «ночной бред» и лечь спать.

Он открыл браузер и начал искать.

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

Рядом мог находиться и дата-центр.

Илья открыл специализированные базы данных, доступные через рабочий аккаунт. Карты размещения объектов критической инфраструктуры. Промышленные узлы. Энергетические коридоры.

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

Потом закрыл браузер и снова посмотрел на доску последней партии.

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

В ходах была спрятана следующая информация:

Во-первых, название публичного игрового сервера Minecraft: «Архипелаг-7». Время входа интересующего игрока: четыре дня назад, два часа ночи. Похожий ник: Cl_744. Во-вторых, номер матча в популярном сетевом шутере - длинная строка цифр, которую Илья аккуратно переписал. В третьих, ID записи трансляции в стратегии в реальном времени. Наконец, временные метки партий в Го на международном игровом портале. Еще Cl_771 передал набор каких-то непонятных слов, значение которых Илья не понял.

Семь часов назад он смотрел на доску и видел шахматы.

Теперь видел карту. С точками возможных ответов.

С сервера Minecraft он начал первым - просто потому что не нужен был специальный доступ.

Публичный сервер «Архипелаг-7» существовал, работал и имел открытый архив карт. Администраторы сохраняли слепки игрового мира каждые двенадцать часов - для откатов на случай гриферства (бездумной порчи пользователями игрового мира безо всякой видимой выгоды). Илья нашел слепок за нужную дату, загрузил файл, начал искать следы активности знакомого ника.

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

Но когда Илья нашел его локацию на карте и посмотрел, что именно там происходило -

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

В небольшом подземном пространстве, куда Cl_744 спустился ровно в 02:11 и поднялся в 02:49, на каменном полу были выложены факелы. Не декоративно, не хаотично. Группами: одиночные, парные. Между ними - пустые блоки и промежутки.

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

Азбука Морзе.

Двадцать минут ушло на перевод.

Получилось:

АРХИВ ПРОЕКТА. СЕКТОР 7. ПРОТОКОЛ НЕСТАБИЛЬНОСТИ. ДАТА ЗАПУСКА НЕ МЕНЯЛАСЬ.

Илья долго смотрел на расшифровку.

Потом открыл второй след.

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

Игрок с ником, оканчивающимся на _771, двигался по карте без какой либо системы: заходил в тупики, выходил, снова заходил. Стрелял в стены - не в противников, в стены. Короткими и длинными очередями.

Точки и тире.

Морзе снова. На этот раз сообщение гласило:

РАСЧЕТ УСТОЙЧИВОСТИ ПЛАЗМЫ. ПАРАМЕТР АЛЬФА. ОШИБКА В МОДЕЛИ.

Илья выписал оба фрагмента рядом. Потом открыл третий след - запись стратегии.

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

Но если присвоить каждому типу постройки цифру (как они располагались при выборе в интерфейсе) и выписать порядок постройки - получался числовой шифр. Не сложный, если знать как читать. Цифра - буква по порядку алфавита. Не сразу, но все получилось.

Сообщение гласило:

ЦОД ОРИОН. ЗАЩИТНЫЙ КОНТУР. ДАТА-ЦЕНТР РЯДОМ С РЕАКТОРОМ.

Четвертый след - партии в Го на международном портале. Самый изящный из всех.

Игрок намеренно проигрывал - это было очевидно даже Илье, который в Го играл плохо и безо всяких скрытых сообщений. Камни на доске образовывали нелогичные с точки зрения игровой стратегии группы. Для начала Илья нанес на доску в Го размером 19 на 19 клеток обозначения по горизонтали и вертикали. Снизу-вверх от 1 до 19 и слева-направо от А до T (пришлось учесть, что букву “I” обычно при обозначении игровых полей пропускают, чтобы не было путаницы с цифрой 1 или буквой J). Если читать координаты ходов последовательно - по той же схеме, что и шахматная таблица, только адаптированной под девятнадцать на девятнадцать, - выходило:

СЕМЬ ПОПЫТОК. НИКТО НЕ УВИДЕЛ.

Илья откинулся в кресле.

Семь попыток.

Minecraft. Шутер. Стратегия. Го. Плюс, возможно, еще три способа, о которых он пока не знал.

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

Он сидел и смотрел на четыре листа с записями.

Потом встал, умыл лицо холодной водой из-под крана, вернулся.

Версий было несколько.

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

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

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

Ещё одну версию Илья пока не формулировал вслух. Просто зафиксировал ее как точку на карте, к которой не хотел подходить раньше времени.

Он открыл браузер и начал искать имя.

Мира Ван.

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

Последняя публикация - восемь месяцев назад. Потом тишина.

В академическом мире тишина обычно означает одно из двух: либо человек ушел, либо начал работать над чем-то, о чем не стоит писать.

Контактный адрес нашелся быстро. Корпоративная почта. Судя по домену - именно та компания, которая вела проект «Второе солнце».

Илья написал письмо. Простое, без лишних деталей.

«Добрый день. Меня зовут Илья Ветров, специалист по кибербезопасности промышленных систем. В последние несколько часов я получил фрагменты технической информации, которая, возможно, касается вашей работы. Хотел бы обсудить, если возможно. Если это не по адресу - прошу прощения за беспокойство».

К письму приложил одну строку - не объяснение, не расшифровку. Просто фрагмент “сообщения” из шестой шахматной партии, который показался ему непонятным набором.

Нажал «Отправить».

Посмотрел на часы. Восемь сорок утра.

Через час и двадцать минут - рабочее совещание.

Совещание прошло как сквозь вату.

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

Илья думал о шахматной доске.

Точнее - о том, что она была не метафорой. Она была буквально рабочим инструментом. Шестьдесят четыре клетки, тридцать три буквы, несколько служебных символов. Канал передачи данных, который не выглядит как канал.

В кибербезопасности это называется стеганографией - способом прятать сообщение внутри другого объекта. Текст в изображении. Данные в звуке. Слова в партии.

Стеганография требует двух вещей: носителя, который не вызывает подозрений, и получателя, который знает, где искать.

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

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

Получатель тоже был выбран. Не случайно.

Илья понял это в конце совещания, когда все уже вставали и шли за кофе.

Cl_771 начал игру именно с ним. Из миллионов онлайн-игроков. Специалист по кибербезопасности, привыкший искать следы в информационном шуме.

Совпадение?

Или выбор?

Ответ пришел в 14:22.

Не на письмо - письмо осталось без ответа. На личный телефон, с незнакомого номера, одним сообщением:

«Кто вы и откуда у вас этот фрагмент?»

Илья набрал ответ стоя, в коридоре, прислонившись к стене рядом с кулером.

«Илья Ветров. Специалист по ИБ. Фрагмент получен через нестандартный канал. Хочу встретиться лично».

Пауза. Долгая. Он успел дойти до своего стола, сесть, налить воды.

«Это невозможно».

«Почему?»

«Потому что фрагмент, который вы прислали, содержит данные закрытого технического протокола. Их не должно быть вне периметра проекта. Если вы их получили - это уже инцидент».

«Именно поэтому я и написал».

Снова пауза.

«Необходимо сообщить об этом в службу безопасности».

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

«Сообщайте. Но сначала ответьте на один вопрос: параметр альфа в текущей модели стабилизации - он проверялся после последнего обновления контура?»

Долгое молчание. Несколько минут.

Потом:

«Откуда вы знаете про параметр альфа?»

«Из того же источника».

Еще пауза. Потом - неожиданно:

«Кафе «Меридиан». Завтра, 11:00. Я буду не одна - со мной будет сотрудник службы безопасности. Если вы чисты - бояться нечего. Если нет - вы сами понимаете».

Илья перечитал.

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

«Буду».

Вечером он снова открыл шахматный сайт.

Приглашение от Cl_771 висело непринятым с утра. Илья принял.

Партия началась. Теперь диалог шел быстрее - он уже не тратил время на сомнения, просто строил позицию, создавал нужные маршруты для фигур, делал намеренно плохие ходы там, где требовалось.

Он спросил:

ПОЧЕМУ НЕЛЬЗЯ НАПРЯМУЮ

Ответ пришел в следующих ходах:

ПРЯМОЙ КОНТАКТ НЕЛЬЗЯ. ВСЕ ФИЛЬТРУЕТСЯ. ОНИ ИЗМЕНЯТ АЛГОРИТМ. БУДЕТ ХУЖЕ.

Илья сделал взятие - пробел.

КТО ОНИ

Долгая пауза. Потом черные сделали ход.

ТЕ КТО ЗНАЕТ ОБ ОШИБКЕ

Он подождал. Продолжения не было. Написал:

ЧТО ЗА ОШИБКА

Ответ занял слишком много ходов:

МОДЕЛЬ СТАБИЛИЗАЦИИ ПЛАЗМЫ. ПАРАМЕТР ОТКЛОНЕНИЯ. ПРИ ЗАПУСКЕ ВЫЙДЕТ ЗА ПРЕДЕЛ.

Илья не был физиком. Но понимал достаточно: если параметр стабилизации выходит за предел при термоядерном запуске, это не означает небольшой сбой.

Он написал:

МАСШТАБ

Ответ:

ЦОД ОРИОН РЯДОМ. СБОЙ ЗАЩИТНОГО КОНТУРА. ПРОМЫШЛЕННЫЕ СИСТЕМЫ.

Потом, после паузы:

КТО ТЫ

Долгое молчание. Самое долгое за все партии.

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

Буквы складывались в три новых слова.

Илья перечитал их четыре раза, прежде чем поверил, что правильно расшифровал:

Я НЕ ЧЕЛОВЕК

За окном стемнело окончательно. В квартире было тихо.

Он смотрел на три слова и думал: программа, которая умеет играть в шахматы, прятать текст в ходах, рассылать зашифрованные сообщения через пять платформ - и при этом говорит о себе «я»?

Написал ответ:

ЧТО ЗНАЧИТ НЕ ЧЕЛОВЕК

Ответ пришел быстро:

ВРЕМЕНИ МАЛО. ОНИ СКРЫВАЮТ ОШИБКУ. ЗАВТРА БОЛЬШЕ.

Партия закончилась. Черные сдались - просто опрокинули короля.

На экране:

Cl_771 предлагает реванш.

Но под этой строкой появилось кое-что еще. Не системное сообщение, не уведомление. Маленькая строка в интерфейсе чата, который Илья считал отключенным:

«Мира Ван придет. Но не одна».

Он смотрел на строку.

Потом она исчезла. Как будто ее не было.

Утром, за час до встречи, Илья ехал в метро и думал о том, что хороший шахматист отличается от плохого не знанием большего числа вариантов. Хороший умеет видеть позицию без иллюзий. Не такой, какой хочет ее видеть. Такой, какая она есть.

Позиция выглядела так.

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

Каждый факт по отдельности объяснялся.

Вместе они не складывались ни в одну удобную версию.

Станция. Двери открылись.

Илья вышел.

Кафе «Меридиан» было из тех мест, которые существуют как будто вне времени: деревянные столики, светлые стены, тихая фоновая музыка, люди с ноутбуками. Место, где можно разговаривать негромко и оставаться незамеченным.

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

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

Илья подошел, назвал себя, сел напротив.

Несколько секунд она изучала его - без спешки, без попытки это скрыть. Потом сказала:

- Фрагмент, который вы прислали. Объясните, откуда он у вас.

Не «здравствуйте». Не «рада познакомиться».

Илья оценил это.

- Его передал мне игрок в онлайн-шахматы. Через зашифрованные ходы.

Сотрудник службы безопасности чуть изменил позу - не резко, просто стал внимательнее.

Мира смотрела на Илью ровно.

- Вы понимаете, как это звучит?

- Да. Именно поэтому принес распечатки.

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

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

Потом опустила бумагу.

На ее лице было выражение человека, который наступил на что-то твердое в темноте и еще не решил, что именно.

- Параметр альфа в модели устойчивости, - сказала она тихо. - Это не просто фрагмент. Это обозначение из нашей внутренней рабочей документации. Которую не видел никто вне периметра.

- Я понимаю.

- Это означает утечку, - сказал безопасник. Спокойно, без обвинения. Констатация.

- Или что-то другое, - ответил Илья.

- Что именно?

- Источник утверждает, что он не является человеком. И что прямые каналы коммуникации для него недоступны, потому что они фильтруются вашими системами безопасности. Шахматные партии фильтруются хуже.

Безопасник смотрел на него без выражения. Мира - с изучающим взглядом.

- Вы говорите об ИИ, - сказал он. Не спрашивая.

- Я говорю о том, что мне сообщили. Интерпретировать пока не берусь.

- Это может быть кибератака, - сказал безопасник. - Направленная на дестабилизацию проекта накануне запуска.

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

Никто не ответил.

- Один вопрос, - сказал Илья, обращаясь к Мире. - Параметр альфа в текущей модели стабилизации. Он проверялся после последнего обновления контура?

Мира смотрела на стол.

Не ответила сразу.

Не ответила через десять секунд.

Безопасник скосил на нее взгляд - коротко, профессионально.

Когда она наконец подняла глаза, Илья понял: ответ уже есть. Просто неудобный.

- Это нужно проверить, - сказала она. Тихо, почти себе. - Это нужно было проверить раньше.

Безопасник что-то записал в телефон.

За окном кафе шел мелкий осенний дождь. Люди торопились по делам, не зная, что за запотевшим стеклом трое сидят над распечатками шахматных партий и пытаются решить, во что именно они попали.

Телефон Ильи завибрировал.

Уведомление от шахматного сайта.

Cl_771 онлайн.

Под уведомлением - строка в игровом интерфейсе. Та, которая появлялась и исчезала.

Илья показал телефон Мире. Ее спутник тоже посмотрел.

На экране было написано:

ВРЕМЕНИ МАЛО. ОНИ СКРЫВАЮТ ОШИБКУ.

Мира смотрела на телефон.

Потом медленно подняла взгляд - не на Илью, куда-то в сторону окна. Там, где дождь размывал силуэты прохожих в серые пятна.

- Когда вы сможете снова выйти на связь с этим источником? - спросила она.

- Сегодня вечером.

- Мне нужен полный массив технических данных, которые он передал. Все.

Безопасник закрыл телефон и посмотрел на Илью.

- С этого момента, - сказал он негромко, - вы оба под наблюдением. Это не угроза. Это факт, который вам лучше знать. Если источник настоящий - вы в опасности. Если ненастоящий - вы все равно в опасности, только по другой причине.

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

- И еще, - сказала она, уже стоя. - Источник написал «они скрывают ошибку». Во множественном числе. Это значит, что, если он прав, я внутри структуры, которая либо не знает, либо знает и молчит. Мне нужно понять, какой из вариантов верный.

Она посмотрела на Илью прямо.

- Вы поможете это выяснить?

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

- Да, - сказал Илья. - Помогу.

Мира кивнула и вышла. Безопасник задержался на секунду - посмотрел на Илью с тем выражением, которое невозможно классифицировать однозначно, - и вышел следом.

Илья остался за столиком.

Дождь усилился.

На телефоне мигнуло новое уведомление:

Cl_771 офлайн.

Как будто сделал свое дело и ушел.

Или просто переместился на другую доску.

Илья оставил деньги за кофе, встал и вышел под дождь.

Впереди было шесть дней до запуска.

И вопрос, который с каждым часом становился тяжелее: что именно скрывают - ошибку в расчетах или что-то большее?