Дух. История беглеца
Дух. История беглеца

Полная версия

Дух. История беглеца

Язык: Русский
Год издания: 2026
Добавлена:
Настройки чтения
Размер шрифта
Высота строк
Поля
На страницу:
2 из 2

– Нет-нет. – Саша взял свой стакан. – Просто сверяю таблицу.

– Ты сверяешь таблицу, как нотариус читает завещание.

– Я в хорошей форме, ты не заметил?

– Заметил. Поэтому и спрашиваю.

* * *

Проверять он начал, как проверял бы эксплойт в новой игре, то есть с песочницы. Завёл шесть фиктивных аккаунтов: «Хаус_MD», «Уолтер_Уайт», «Тирион_Л», «Шелдон_К» и ещё двух для разнообразия. Каждому придумал отдельный ящик на отдельном домене, ни один не пересекался ни с кем в студии. Всем дал платёжные токены тестовых карт. Потом улёгся поспать на диване в переговорке на три часа и проснулся от того, что Яна стояла над ним с чашкой и смотрела так, словно нашла в офисе раненую птицу.

– Ты что, ночевал?

– Консультировал сервер.

– Он плохо себя вёл?

– Он вёл себя странно, – признал Саша. – Но я ещё не решил, плохо ли.

Через день никто не писал. Через два тоже. На третий вечер, когда Дима уже ушёл, а Саша сидел над тестовой таблицей и почти забыл об эксперименте, ящик «Хаус_MD» мигнул новым письмом.

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

Саша прогнал текст через переводчик. Получилось связно и неприятно. Потом проверил остальные ящики. Письма пришли всем шестерым. «Тирион_Л» получил купон на лекарства. «Шелдон_К» предложение «пересмотреть страховку». Адреса отправителей были разные, и домены разные, и всё равно система за ними была одна: базу не потеряли и не скопировали случайно. Базу продавали.

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

– Это не ошибка, – сказал он в пустую комнату. И это был первый раз за много лет, когда он сказал это без улыбки.

Телефон зазвонил как раз в этот момент. Алина.

– Ты где?

– В офисе.

– Опять?

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

– Что значит «какой-то гад»?

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

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

– Саш. А если это не ошибка?

– Что?

– Если так и задумано?

– Алин, – он засмеялся, и в смехе была вся его растяжка, тёплая, домашняя. – Это же не детектив. Это работа.

– Ладно, – сказала она. – Только не решай все один. Покажи кому-нибудь.

– Покажу. Утром.

– Саша.

– Обещаю. – Он зажмурился. – Но сначала пару часов покопаю. Чуть-чуть.

* * *

Копал он, конечно, не пару часов.

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

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

Шутка, которая пришла ему в голову, называлась «бандитское DLC». Он почти произнёс её вслух. Не получилось. Слова встали поперёк горла, как рыбья кость, и он только кашлянул.

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

Первое принадлежало системному администратору, который уволился в прошлом году. Игнат Сомов. Саша помнил его смутно: тихий парень с серьёзным лицом, про которого Лёва говорил «человек-терминал». Второе имя было Глеб Маратович Ширяев, коммерческий директор студии. Человек, который каждое утро здоровался с ним в лифте. Который подарил на день рождения набор кофейных капсул. Который сказал Саше в прошлом месяце: «Ты у нас умница, мы тебя ценим».

Это было в лифте, между девятым и десятым. Ширяев придержал двери, пропуская его вперёд, и добавил, глядя в зеркало, а не на собеседника:

– Не перегорай, Александр. Усталые умницы путают пароли.

– Я стараюсь не путать.

– Вот и не путай. – Ширяев мягко улыбнулся. – Ты у нас один такой.

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

Саша перечитал имя. Потом перечитал ещё раз. Имя не менялось, как не меняется результат при повторном нажатии на ту же кнопку.

– Конечно, – сказал он в пустоту. – Конечно, Глеб Маратович. Кто же ещё.

Голос звучал ровно. Это его испугало.

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

– Сейв перед боссом, – сказал он вслух и невесело хмыкнул. – Классика.

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

Завтра всё объяснится. Он расскажет Марине. Или лучше сначала Лёве. Или сразу всем. Ведь именно так и работает мир: назови, покажи, исправь.

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

Глава 3. Слишком громко

Письмо Саша писал сорок минут. Не потому что не знал, что сказать: слов было слишком много, и каждое хотелось взвесить, как взвешивают ингредиенты для зелья. В итоге он оставил самые честные. Короткий заголовок «Обнаружена утечка персональных данных игроков», короткое вступление («коллеги, нашёл дыру, мой любимый вид приключений»), приложенные логи и просьба разобраться. Виноватых не назвал. Имена были в списке доступа, список он тоже приложил, но произнести вслух не решился: слишком громко, слишком прямо, и если ошибся, то неудобно будет всем.

Адресатов вышло трое: общий рабочий чат, Марина Викторовна и Глеб Маратович Ширяев. Над последним он завис. Курсор мигал в поле «кому» три или четыре секунды, и Саша, неожиданно для себя, подумал о лифте, о зеркале, о фразе про усталых умниц.

– Это же формальность, – сказал он вслух. – Сверху вниз. Положено ставить руководство.

Нажал «отправить» раньше, чем успел передумать.

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

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

Марина Викторовна вызвала его к себе минут через двадцать.

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

– Закрой, пожалуйста.

Он прикрыл дверь.

– Ты письмо Глебу Маратовичу отправил? – спросила она.

– И вам.

– Мне, я получила. – Она помолчала. – Ты правильно сделал. Давай сразу: ты правильно сделал.

– Но?

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

– Так у нас и в жизни есть, Марина Викторовна. Если ошибку обнаружили, значит, можно откатить.

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

– Договорились.

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

* * *

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

– За что это? – спросил он у Яны, которая получила такое же уведомление, но всего один оклад.

– Не знаю, – сказала Яна. – Наверное мне за текстуры.

– А мне за внимательность, наверное.

– Это хорошо?

– Это очень странно, как-то много за внимательность.

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

– Александр. Рад тебя видеть.

– Здравствуйте, Глеб Маратович.

– Бухгалтерия уже сообщила? – Он кивнул на его телефон. – Мы любим тех, кто смотрит под ноги.

– Под ноги?

– Чтобы не споткнуться. – Ширяев приятельски тронул его за локоть. – А ты, Александр, споткнулся о довольно важную вещь. Давай не будем её поднимать. Пусть её уберёт тот, кому положено.

– Но данные игроков…

– В безопасности. – Улыбка стала на полтона мягче. – Я лично прослежу. А ты работай. Играй в свои игры. Они у тебя очень хорошо получаются.

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

Когда он вернулся к столу, компьютер издал короткий звук, и в углу экрана выскочила плашка: «Доступ к ресурсу "логи платёжного шлюза" приостановлен в связи с плановыми работами». Саша перезагрузил страницу. То же самое. Попробовал с другого аккаунта, с тестового. То же.

– Лёв! – позвал он. – У нас плановые работы?

Лёва повернулся на кресле вместе с наушниками.

– Какие плановые?

– Мне закрыли логи. На плановые работы.

– Первый раз слышу. – Лёва поднялся, подошёл, посмотрел через плечо. – Спроси у подрядчиков.

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

– Дима, ты не трогал?

– Что?

– Мои логи в чате.

– Я вообще чат не трогаю. – Дима встал, подошёл. – О, и правда нет. Может, лимит по месту?

– У нас безлимит.

– Тогда это глюк.

– Хороший глюк. – Саша откинулся на спинку. – Умный. Выборочный. Прибирается за собой, никого не будит. Назовём его службой исправления багов.

– Служба чего?

– Исправления. Работает без выходных. Приходит ночью, убирает, оставляет премию.

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

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

* * *

Мужчин у офиса он заметил на третий день.

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

Саша выбросил в урну пустую обёртку от леденца и прошёл мимо них к метро. На обратном пути они стояли там же. Никто из них не подошёл, не окликнул, не вошёл в здание. Просто стояли.

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

– Ты видел? – спросил он вечером у Димы.

– Кого?

– Двух мужиков у шаурмы.

– Саш, там круглые сутки кто-то стоит.

– Они не едят.

– Может, постятся.

– Хорошая версия. – Он отвернулся. – Спасибо.

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

Саша сидел и смотрел на эти пять слов минут пять. Потом сделал то, что делал всегда: скопировал письмо, сохранил в папку «аномалии», подписал «#1». Рука не дрожала. Только пальцы стали холодными, как перед сдачей экзамена.

Лёва нашёл его на лестнице.

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

– Ты не заметил, что тебя пасут? – Лёва остановился в двух шагах. – Или заметил, но делаешь вид?

– Я не делаю вид. Я собираю данные.

– Саш. – Лёва огляделся, потом понизил голос. Говорил теперь одним краем рта и смотрел в стену, как говорят люди, чьё дыхание могут записывать. – Ты думаешь, это Глеб один? Нет. Там людей больше, чем ты можешь представить. Мне Дима кое-что сказал, ему кто-то в курилке… неважно. Смысл простой: не у одного Глеба хвост.

– Какой хвост?

– Игнат. Которого ты спрашивал. – Лёва сглотнул. – Я попробовал найти его в соцсетях. Нет. Нигде. Все аккаунты удалены, и давно, задолго до моих поисков. Как будто человека не было. Ни фото, ни переписок, ни адреса. Был человек-терминал, и нет терминала.

– Может, переехал.

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

– Это просто слова.

– Я не про слова. Я про то, что слова обычно предшествуют событиям.

– Лёв, подожди. – Саша встал, ступенька скрипнула под ногами. – Но это же ошибка. Так не бывает. То есть бывает, но только в играх или фильмах. Там главный герой находит заговор, вскрывает его, и все закручивается непредсказуемым образом, а тут – жизнь, тут все иначе. Так не бывает, чтобы…

– В играх бывает, потому что сценарист так захотел, – перебил Лёва. – А у нас сценаристов нет.

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

– Слушай. Я тебя предупредил. Просто предупредил. Если что-то пойдёт не так, не вмешивай меня. Я тебя уважаю, и ты мне кофе приносишь, и всё такое. Но у меня мать и ипотека. И я не умею… вот это.

– Лёв.

– Всё. – Лёва развернулся и пошёл вверх по лестнице. – Больше не подходи ко мне с этим... – он замялся. Махнул рукой и ушел.

Шаги стихли на третьем пролёте. Саша остался на ступеньке.

* * *

Вечером он сложил картину в обратном порядке.

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

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

Ответ пришёл через сорок минут. Через сорок.

«Ваше обращение принято. Проверка начата. Просим не распространять информацию до окончания процедуры».

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

Он закрыл ноутбук. Телефон тут же зазвонил.

– Ты чего такой? – Алина не стала здороваться.

– Какой?

– Дышишь через раз. Я слышу.

– Нормально дышу.

– Саша.

– Пустяки. – Он потёр переносицу. – Поиграл в сохранения, получил по лицу. Бывает.

Она долго молчала. На заднем плане у неё шумел чайник и чей-то телевизор.

– Приезжай ко мне. К маме. Мама пироги печёт.

– Не могу, у меня завтра…

– Пожалуйста.

– Через два дня, – сказал он. – Обещаю.

– Ты уже много чего обещал. – Но в голосе не было упрёка, только растерянность. – Ладно. Спокойной ночи.

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

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

Шаги на лестнице стихли этажом ниже. Саша встал у двери, прижался лбом и принялся слушать.

Конец ознакомительного фрагмента.

Текст предоставлен ООО «Литрес».

Прочитайте эту книгу целиком, купив полную легальную версию на Литрес.

Безопасно оплатить книгу можно банковской картой Visa, MasterCard, Maestro, со счета мобильного телефона, с платежного терминала, в салоне МТС или Связной, через PayPal, WebMoney, Яндекс.Деньги, QIWI Кошелек, бонусными картами или другим удобным Вам способом.

Конец ознакомительного фрагмента
Купить и скачать всю книгу
На страницу:
2 из 2