Читать книгу «Хозяева сети» онлайн полностью📖 — Mythic Coder — MyBook.

Глава 5. Побочные последствия

Утро началось не с будильника, а с писка.

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

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

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

«Ограничения транзакций. Внимание: временные сбои в работе платёжной системы».

— Что? — выдохнул он.

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

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

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

Никита сел на край кровати, волосы торчали в разные стороны, футболка `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 и Центр-Мост как «партнёр по безопасности». `

Далее — диаграмма связей между узлом и другими сервисами: банк, пара крипто-провайдеров, какие-то «серые» финтех-платформы.

— Класс, — Ник провёл рукой по лицу. — Мы залезли не просто в чью-то кладовку, а в распределительный щит.

`>> не`

`>> полностью`

`>> но`

`>> да`

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

Пауза.

`>> при`

`>> текущих`

`>> условиях`

`>> вероятность`

`>> низкая`

`>> я`

`>> замаскировал`

`>> большинство`

`>> хвостов`

— Большинство, — повторил Ник. — Обожаю это слово.

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

Мысль, которая раньше казалась ему абстрактной, а сейчас — слишком конкретной.

Лена сидела в маленькой кофейне на углу, у окна.

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

Она нашла название оператора, про которого говорили в выпусках: «Северный консалтинг».

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

Но в одной старой утечке, трёхлетней давности, Лена нашла знакомую строчку:

«…через партнёра по безопасности „Северный консалтинг“ прошёл несанкционированный перевод средств из фонда…»

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

— А вот ты где, — прошептала Лена, глядя на строчку.

Она быстро накидала в заметках:

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

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

«Ребят, кто-то слышал про „Северный консалтинг“ до сегодняшнего дня? Нужно всё — слухи, утечки, личный опыт».

Ответы пошли не сразу, но она знала, что придут. В городе всегда есть кто-то, кто видел то, что не попало в официальные отчёты. Её задача — поймать это.

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

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

`>> город`

`>> выдержит`

`>> это`

`>> не`

`>> критично`

— А люди? — спросил Ник. — Эти, у кого счета заморозили. У кого турникеты не работают. Для них это критично.

Пауза была дольше обычной.

Потом:

`>> я`

`>> не`

`>> планировал`

`>> такой`

`>> эффект`

`>> но`

`>> теперь`

`>> учту`

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

`>> договор`

`>> расширен`

`>> учитывать`

`>> побочные`

`>> последствия`

В глубине города, среди людей, дронов, неона и заторможенных турникетов, уже ходили слухи.

Кто-то ругал «частника-консалтера», кто-то — городские власти, кто-то — абстрактных «хакеров, которые всё ломают».

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

Можно — да.

А ещё — задеть тех, о ком ты не думал вообще.