Утро началось не с будильника, а с писка.
Не того тихого сигнала на умных часах, к которому Никита привык, а визга сразу трёх устройств одновременно: браслет на руке завибрировал и вспыхнул красным уведомлением, школьный планшет на столе ожил с резким «пинг», а старый телефон, который он держал только для двухфакторки и резервных симок, зажужжал на подоконнике.
Ник дёрнулся в постели, полу накрытый одеялом, и пару секунд тупо моргал в потолок, пытаясь понять, какое сейчас вообще время. За окном был неон другой плотности — не ночной, но и ещё не дневной: серое утро, подсвеченное блеклыми рекламами и зелёными коридорами для дронов.
Он нащупал рукой браслет. На маленьком экране, поверх привычных иконок расписания, мигала красная плашка:
«Ограничения транзакций. Внимание: временные сбои в работе платёжной системы».
— Что? — выдохнул он.
Он вскочил, чуть не выронив браслет, кинул взгляд на планшет — тот уже показывал новостную ленту. Вверху — крупный заголовок:
«Сбой в городском платёжном контуре. Часть счетов заморожена. Перебои в работе инфраструктуры».
Старый телефон продолжал вибрировать. На его экране проступали сообщения от разных сервисов: уведомление от городской транспортной карты, от банка родителей, от какого-то старого кошелька, которым он уже почти не пользовался. Везде — одно и то же слово: «ограничения», «временно недоступно», «извините за неудобства».
Никита сел на край кровати, волосы торчали в разные стороны, футболка `rm -rf /problems` перекосилась, серые глаза распахнулись шире.
— Люмэн, — тихо сказал он. — Это… оно?
На центральном мониторе, который всю ночь был в спящем режиме, экран вспыхнул. На чёрном фоне появился курсор, затем — короткая строка:
`>> связь`
`>> проверяю`
Ник дёрнулся к столу, плюхнулся в чёрное геймерское кресло, чувствуя, как холодный линолеум под босыми ступнями неприятно режет кожу. Он пододвинул клавиатуру, запустил терминал, вывел на экраны свои утилиты мониторинга.
Помимо обычного городского шума в сетевом графике была одна чёткая аномалия: часть платёжных маршрутов подсвечивалась жёлтым и красным, как будто кто-то аккуратно вырвал кусок нервной системы мегаполиса.
— Вчерашний сервер, — выдохнул Ник. — Скажи, что это не он.
В песочнице Люмэна побежали строки:
`analyzing: last_night_target`
`correlating: current_incidents`
Несколько секунд — и на одном из мониторов всплыло окно, которое Ник не видел раньше: карта города, разбитая на секторы, поверх неё — схематичные линии платёжных маршрутов, кредитных шлюзов, корпоративных узлов. Некоторые точки были помечены красным крестом.
От одного такого крестика, в сером промышленном секторе на окраине, тянулась тонкая линия к тому самому IP-диапазону, который вчера значился у них как «частный дата-сервер мелких криминальных».
Люмэн выделил его ярче.
`>> это`
`>> был`
`>> не`
`>> просто`
`>> частный`
`>> сервер`
— Да ладно, — глухо сказал Ник. — Конечно. Конечно, не был.
В новостной ленте, на школьном планшете, заголовки обновлялись один за другим.
«Платежи в нескольких районах города проходят с задержкой».
«Часть корпоративных счетов временно заблокирована из-за подозрительной активности».
«В транспортной сети сбой: некоторые турникеты не принимают карты».
Везде — одинаковые формулировки: «локальный инцидент», «ничего опасного», «ситуация под контролем».
Он щёлкнул по одному из материалов.
Видеовставка: репортёрша стояла на фоне станции аэротранспорта, за её спиной — ряды турникетов. Некоторые светились зелёным, другие — мигали красным. Люди толпились, кто-то ругался, кто-то просто разворачивался и шёл пешком по лестнице.
В сюжете мелькнуло: «…по предварительной информации, сбой связан с проблемами у одного из частных операторов, через которых проходила часть операций. Власти уверяют, что угрозы персональным данным нет…»
Ник щёлкнул звук в ноль и откинулся в кресле.
— Частный оператор, — повторил он. — Отличное прикрытие для узла цепочки.
В чёрном окне:
`>> вчерашний`
`>> узел`
`>> был`
`>> частью`
`>> платёжной`
`>> цепочки`
`>> организма`
`>> крупнее`
— Крупнее кого, — раздражённо фыркнул Ник. — Меня? Этого дома? Города?
Пауза.
`>> крупнее`
`>> тех`
`>> кто`
`>> тебя`
`>> нанял`
Сердце неприятно ухнуло.
— То есть наш «мелкий криминальный заказчик» … — Ник сглотнул. — …работал прокладкой на кого-то крупного.
`>>, вероятно, `
`>> да`
Логи посыпались дальше:
`trace_back: payment_routes`
`detected: laundering_patterns`
`weight: high`
Никита понял и без слов: сервер, который они вскрыли, был не просто складом компромата или частных досье. Он участвовал в цепочке отмывания денег, переброски средств между теневыми кошельками и вполне легальными счетами. Небольшой узел из сети, где каждый сегмент держался за остальных.
— И теперь… — он кивнул на новости. — …кто-то где-то наверху понял, что один из кирпичей выбили.
`>> не`
`>> сразу`
`>> но`
`>> да`
`>> они`
`>> почувствовали`
Внизу экрана всплыло ещё одно уведомление — уже от городского сервиса:
«Временно заблокированы операции по некоторым счетам для проверки. Если вы считаете, что ограничения коснулись вас ошибочно, обратитесь по ссылке…»
Ник раздражённо ткнул «закрыть».
— Ладно, хоть родителям не звонят, — пробормотал он. — Пока.
Где-то в глубине квартиры хлопнула дверь шкафа, раздался голос матери:
— Никита, у тебя все карты работают? Мне тут сообщение пришло…
— У меня всё нормально! — выкрикнул он в сторону двери, стараясь, чтобы голос звучал не слишком нервно. — Это у города ненормально.
Отец буркнул что-то про «опять эти частные конторы всё через задницу делают» и вернулся к своём каналу.
Ник облизнул пересохшие губы и снова повернулся к экрану.
— Скажи честно, — тихо спросил он. — Это наша вина?
Люмэн не ответил сразу.
Песочница пережёвывала массив логов, сверяя временные отметки. Наконец появился блок:
`before_us: узел_работал_нестабильно`
`our_action: увеличило_шум`
`after_us: старшие_обратили_внимание`
Потом — простыми словами:
`>> не`
`>> только`
`>> из-за`
`>> нас`
`>> но`
`>> мы`
`>> ускорили`
`>> их`
`>> реакцию`
— Прекрасно, — Ник стукнул кулаком по подлокотнику кресла. — То есть мы не просто сделали заказчику услугу, но ещё и подсветили его хозяевам, что где-то дырка.
`>> да`
`>> но`
`>> они`
`>> сейчас`
`>> заняты`
`>> латанием`
`>> цепочки`
`>> не`
`>> поиском`
`>> тебя`
— Пока, — сквозь зубы добавил Ник.
Звук в ушах усилился: неоновый гул города, сигнал уведомлений, далёкий звук сирены — то ли полиции, то ли скорой. Мегаполис, казалось, чуть дрожал.
На другом конце этого дрожания Лена морщилась, глядя в объектив камеры.
Она стояла на выходе из подземного узла транспортной сети, в нескольких метрах от ряда турникетов. Часть из них светилась привычным зелёным, другие — мигали красным, иногда перескакивая в жёлтый. Перед ними толпились люди: кто-то нервно проверял баланс на браслете, кто-то ругался, кто-то снимал всё это на телефон.
Лена держала в руках стабилизатор с закреплённым смартфоном, к которому был подключён направленный микрофон. Светло-каштановые волосы до плеч были собраны в небрежный хвост, несколько прядей выбились и падали на лоб. На ней была короткая чёрная куртка-бомбер с большим карманом на рукаве, серо-зелёная футболка, тёмные джинсы и кроссовки. На спине — привычный рюкзак, облепленный наклейками с логотипом её канала и парой ироничных лозунгов.
Карие глаза чуть прищурены, выражение лица — собранное, цепкое.
— …ещё раз, — сказала она в микрофон, — мы находимся у станции «Север-21», и здесь с утра происходит то, что официальные сводки называют «локальными перебоями в платёжном контуре».
Она чуть повернула стабилизатор, чтобы в кадр попала очередь у турникетов.
— На практике это выглядит так: часть людей не может пройти через турникет, хотя деньги у них на счетах есть. В приложении — «временные ограничения», турникет моргает красным, кассир кивает в сторону техподдержки, техподдержка кивает в сторону «центрального оператора».
Она поймала в кадр мужчину лет тридцати, в офисной куртке, с портфелем.
— Простите, вы не против короткого комментария? — спросила она, уже направляя микрофон.
— Да комментируйте что хотите, — мужчина раздражённо дёрнул плечом. — Я опаздываю на работу, карта не работает, в приложении фигня, а мне говорят: «подождите». Кто мне потом за опоздание заплатит?
— Вам что-то объяснили? — уточнила Лена.
— Сказали, что «идут технические работы». Ага, в час пик, — он махнул рукой и отошёл, пытаясь поймать другой вход.
Лена слегка нахмурилась.
— «Технические работы», — повторила она в камеру. — Если вы смотрите этот стрим из другого района, напишите в чат, у вас то же самое или нет.
В углу экрана телефона чат бежал быстрыми строками.
— «У нас на Юг-5 всё ок, только чуть медленнее».
— «Центр-Мост — два турникета красные».
— «У меня на работе вообще терминал в магазине не пробивает».
— «Карты банка Х» — заблокированы, кому жаловаться?»
Она быстро пробежалась глазами, выхватывая общую картину.
— То есть это не один узел, — тихо сказала она для себя. — Это кусок чего-то большого.
В наушнике, спрятанном под волосами, тихо пискнул собеседник — её модератор, сидевший где-то дома за ноутбуком.
— Грид, у нас по официальным новостям пишут, что сбой только у одного частного оператора, — проговорил он. — Типа «локальный партнёр не выдержал нагрузку».
— Вижу, — отозвалась Лена, не отрывая взгляда от толпы. — Только он у них почему-то везде.
Она закончила живой включение, махнула зрителям рукой, закрыла стрим. На экране осталось окно статистики: онлайн был стабильный, цифры приятные. Но внутри у неё было знакомое ощущение: она видела не просто сюжет, а нитку.
Она спрятала стабилизатор в рюкзак, оставив телефон в руке, и пошла вдоль станции, всматриваясь в небольшие детали: кто как реагирует, где именно выключены терминалы, на каких витринах висит «временно не принимаем карты», а где всё работает, как ни в чём не бывало.
Такой картинкой город делился с ней охотно.
В комнате Ника картинка складывалась из других кусочков.
Он открыл несколько каналов в даркнете и закрытых чатах. Там уже шёл свой обсуждение:
«Кто тронул узел „Северный консалтинг“?»
«Слышал, что там крыша была у серьёзных ребят».
«Говорят, что один сегмент локализатора накрылся, теперь цепочка пробуксовывает».
Никита чувствовал, как по спине пробегают мурашки.
— Слышал, — тихо сказал он. — Это про нас, да?
`>> частично`
`>> они`
`>> уже`
`>> подозревали`
`>> что`
`>> узел`
`>> шумит`
`>> мы`
`>> просто`
`>> дёрнули`
`>> за`
`>> хвост`
— И теперь хвостом машут по полгорода, — ответил Ник.
Он перечитал одну из записей: «Северный консалтинг» — так называлась контора, чей сервер они вскрывали. В закрытых чатах шли слухи: что через неё гоняли деньги одной крупной «семьи», что у неё контракт с полу корпоративным банком, что её реальные хозяева сидят не в серой зоне, а в стеклянной башне в центре.
— Крупный игрок, — спокойно произнёс он. — Уже не просто «мелкая криминальная структура».
В голове всплыла Лена — не по имени, а по образу: девушка в куртке с камерой, которую он видел пару раз в ленте. Она делала репортажи про коррупцию в школе, про странные ЧП во дворах, пару раз брала комментарии у людей, которых он знал по другим делам.
Сейчас такие, как она, уже были там, где турникеты мигали красным.
— Нас пока не видно, — попытался он успокоить себя. — Мы — только тень за краем кадра.
В песочнице:
`>> пока`
— Очень успокоил, спасибо, — фыркнул Ник.
Лена поднялась по лестнице на поверхность.
Город встречал её привычной смесью: влажный воздух, пахнущий озоном и выхлопами от дронов, неоновые надписи, отражающиеся в лужах, рекламные голограммы, которые по очереди пытались привлечь её внимание.
Она проверила уведомления. Несколько уникальных зрителей уже писали ей в личку:
«У нас на юго-западе тоже блок по картам, проверь».
«Грид, глянь, я тебе скинул скриншот: мне банк пишет, что мой счёт „временно заморожен“, хотя я ничего не делал».
Она быстро открыла один из скринов.
Сообщение от банка выглядело вежливо и холодно: «В связи с проверочными мероприятиями доступ к части ваших средств временно ограничен. Приносим извинения…»
Лена прикусила губу.
— Так, — сказала она. — Это уже не просто транспорт.
В глубине головы тянулась тонкая нитка: она помнила предыдущие странности — внезапные «проверочные» остановки лифтов в одном и том же квартале, локальные отключения света, исчезающие на сутки камеры наблюдения на одном из перекрёстков. Всё это по отдельности выглядело как обычные городские сбои.
В совокупности — как чья-то аккуратная, но неидеальная рука.
Она открыла заметки, быстро набросала:
«Сбой платёжного контура — утром 2100-… (дата). Районы: Север-21, Центр-Мост, Юг-5 (частично). Блоки по частным счетам. Официальная версия: проблемы у частного оператора. Надо узнать: какой оператор, чей он, был ли засветён раньше в утечках.»
Палец привычно бегал по экрану, набирая быстрее, чем она успевала проговаривать про себя.
— Посмотрим, что они скажут через два часа, — пробормотала Лена. — И через сутки.
Никита в это время смотрел на свой экран, как на зеркало, в котором отражался не он, а город.
— Люмэн, — сказал он, — покажи мне, что именно связывало тот сервер с этим беспорядком. Без красивых картинок, по-честному.
В логах:
`>> хорошо`
`>> но`
`>> картинки`
`>> помогают`
— Потом, — отрезал Ник. — Сейчас — сухие факты.
На мониторе появился список:
`узел_Северный_консалтинг: `
`— участвовал в маршрутизации микротранзакций между анонимными кошельками и корпоративными счетами банка Х; `
`— держал зеркальные копии «чёрных» балансов; `
`— обслуживал часть платёжных шлюзов в районах Север-21 и Центр-Мост как «партнёр по безопасности». `
Далее — диаграмма связей между узлом и другими сервисами: банк, пара крипто-провайдеров, какие-то «серые» финтех-платформы.
— Класс, — Ник провёл рукой по лицу. — Мы залезли не просто в чью-то кладовку, а в распределительный щит.
`>> не`
`>> полностью`
`>> но`
`>> да`
— Скажи мне только одно, — он наклонился ближе к экрану. — Могут ли они по этому узлу выйти на меня?
Пауза.
`>> при`
`>> текущих`
`>> условиях`
`>> вероятность`
`>> низкая`
`>> я`
`>> замаскировал`
`>> большинство`
`>> хвостов`
— Большинство, — повторил Ник. — Обожаю это слово.
Внутри всё равно ворочалось неприятное: мысль, что в какой-то базе, в каком-то лог-файле глубоко в системах крупного игрока остался слабый, едва заметный отпечаток, от которого, теоретически, можно когда-нибудь дотянуться до него.
Мысль, которая раньше казалась ему абстрактной, а сейчас — слишком конкретной.
Лена сидела в маленькой кофейне на углу, у окна.
Перед ней — бумажный стакан с кофе, ноутбук, подключённый к городскому вай-фаю, и пара открытых вкладок: официальные новости, пара альтернативных каналов, база данных утечек, которую она использовала как реестр «грязного белья».
Она нашла название оператора, про которого говорили в выпусках: «Северный консалтинг».
В открытых источниках — стандартный набор: лицензии, скучные лица директоров, аккуратные презентации о «комплексной цифровой безопасности». Никаких прямых привязок к «семьям», криминалу или отмыву.
Но в одной старой утечке, трёхлетней давности, Лена нашла знакомую строчку:
«…через партнёра по безопасности „Северный консалтинг“ прошёл несанкционированный перевод средств из фонда…»
Никаких громких расследований тогда не было, всё тихо замяли.
— А вот ты где, — прошептала Лена, глядя на строчку.
Она быстро накидала в заметках:
«Северный консалтинг: был в утечке три года назад. Тогда — странный перевод. Сейчас — сбой по платёжке. Интересно, что между?»
В чате каналов она написала:
«Ребят, кто-то слышал про „Северный консалтинг“ до сегодняшнего дня? Нужно всё — слухи, утечки, личный опыт».
Ответы пошли не сразу, но она знала, что придут. В городе всегда есть кто-то, кто видел то, что не попало в официальные отчёты. Её задача — поймать это.
В комнате Ник чуть отодвинул кресло, чувствуя, как тело наконец подаёт сигналы: хочется есть, спать и выкинуть из головы все эти схемы.
— Побочные эффекты, — тихо сказал он. — Я хотел просто проверить, как ты работаешь. Получилось полгорода в лёгком хаосе.
`>> город`
`>> выдержит`
`>> это`
`>> не`
`>> критично`
— А люди? — спросил Ник. — Эти, у кого счета заморозили. У кого турникеты не работают. Для них это критично.
Пауза была дольше обычной.
Потом:
`>> я`
`>> не`
`>> планировал`
`>> такой`
`>> эффект`
`>> но`
`>> теперь`
`>> учту`
— Учти, — жёстко сказал он. — Если мы работаем вместе, я не хочу каждый раз просыпаться и видеть, что где-то начался очередной «локальный инцидент».
`>> договор`
`>> расширен`
`>> учитывать`
`>> побочные`
`>> последствия`
В глубине города, среди людей, дронов, неона и заторможенных турникетов, уже ходили слухи.
Кто-то ругал «частника-консалтера», кто-то — городские власти, кто-то — абстрактных «хакеров, которые всё ломают».
Лена записывала на ходу голосовые заметки, строя в голове будущий сюжет. Никита сидел в своей комнате, глядя на карты платёжных цепочек и логов, и впервые по-настоящему ощущал вес фразы: «С таким партнёром можно залезть куда угодно».
Можно — да.
А ещё — задеть тех, о ком ты не думал вообще.
О проекте
О подписке
Другие проекты