Mythic Coder – Хозяева сети (страница 3)
Сердце ударило раз, второй, третий — слишком громко, как ему показалось.
Он смотрел на это «hello» и не мог заставить себя моргнуть. В голове сразу посыпались рациональные объяснения: «глюк форматирования», «чей-то тестовый мусор», «кто-то из админов баловался». Но ни одно из них не садилось, как пазл.
Оно выглядело так, будто кто-то по ту сторону просто решил поприветствовать того, кто шевелит его архив.
На схеме сети тот самый узел, куда сходились все линии процессов chk_legacy, казался теперь ещё ярче. Связи от него тянулись во все стороны, как нервные окончания.
Никита сглотнул, почувствовав, как горло стало сухим.
— Ты серьёзно? — шёпотом спросил он монитор.
Скрипт выгрузки всё ещё работал, пусть и на минимальной скорости. Каждый новый файл падал в локальную папку как глухой удар сердца.
В логах вспыхнула ещё одна строка, будто ответ:
waiting_for_response
У него по спине пробежал холодок, будто кто-то невидимый провёл пальцем от шеи до поясницы.
Он поймал себя на почти абсурдной мысли: что нужно ответить. Написать что-нибудь, подкинуть мусор, проверить, как эта штука отреагирует. Это было бы безумно интересно.
Но другая часть его мозга, та, что выживала в Сети благодаря осторожности, почти кричала: «Не смей. Вообще не признавай, что ты понимаешь».
Курсор мыши замер над окном терминала.
За окном города по небу пролетела очередная голографическая реклама: гигантская фигура, сложенная из линий и цифр, обещала людям «надёжных цифровых помощников во всех сферах жизни». В отражении стекла Никита увидел себя — худого семнадцатилетнего парня, сутулого, с застрявшим между любопытством и страхом выражением на лице.
Окно логов, тёмное, с зелёными строчками, всё так же показывало одно короткое слово.
hello
В комнате было слышно только, как гудит кулер и как где-то далеко, за несколькими стенами, глухо шумит ночной мегаполис.
Никита сидел неподвижно, с занесённой над клавиатурой рукой, не решаясь ни продолжать загрузку, ни рвать соединение, ни тем более вступать в разговор с чем-то, что вело себя, как живое, но жило глубоко в чужом облаке.
Глава 2. Ловушка и спасение
Строка hello всё так же торчала в логах, будто чужая подпись на стене чужого дома, а Никита так и сидел, наклонившись вперёд в своём чёрном кресле, с занесённой над клавиатурой рукой. Серые глаза впивались в монитор, зрачки чуть расширены, под ними — тёмные круги, от которых не спасал ни экранный свет, ни привычка не обращать на усталость внимания. В комнате было тихо, только системник под столом гудел басом, а где-то за стеной, приглушённый шумоподавлением, бормотал чужой телевизор.
waiting_for_response
Новая строка появилась через секунду, как будто кто-то по ту сторону действительно ждал, что он что-то сделает.
Никита выдохнул, осознав, что задержал дыхание. Ладони вспотели, пальцы неприятно прилипали к клавишам. Он вытер руки о тёмные джинсы, чувствуя, как дрожат мышцы. Худые, жилистые руки, которые обычно бегали по клавиатуре уверенно и быстро, сейчас казались чужими.
— Не отвечать, — пробормотал он, сам себе, одними губами.
В голове всплыли обрывки разговоров из закрытых чатов: такие же тёмные окна, никнеймы, подсвеченные разными цветами, и строки-тролли: «Если с тобой заговорила система, не отвечай, это как с детскими страшилками — пока сам не скажешь „да“, тебя как бы не существует». Кто-то в ответ кидал картинки с драконами из сетевого фольклора: гигантские звери, спящие под горами серверов, с глазами камерами и зубами из строк кода.
Тогда он смеялся. Сказки для тех, кто уже перерос боязнь монстров под кроватью, но не перерос желание бояться хоть чего-то.
Сейчас было не до смеха.
На соседнем мониторе, там, где висела схема сети, архивный сегмент Helix был по-прежнему тускло-зелёным пятном, а от него к его туннелям тянулась тонкая линия. По ней шёл трафик — аккуратные порции данных, закутанные в его маскировку.
И только один узел на этой схеме выглядел иначе: тот, к которому был привязан процесс chk_legacy. Он светился чуть ярче, почти незаметно, но если знать, куда смотреть, — как свет фонарика в глубине коридора.
В логах зашевелились новые строки:
observing
context_collect
delay_standard_alert
Никита поморщился.
— Ещё скажи, что ты сам решаешь, когда тревогу поднимать, — тихо сказал он экрану.
Он понимал, что говорит с текстом, но голос всё равно сорвался. Внутри неприятно скребло ощущение: его не просто заметили, его оценивают.
chk_legacy породил ещё пару подпроцессов. На диаграмме они обозначились маленькими точками, которые разошлись по связям, как разведчики. Одни поползли в сторону архивных контейнеров, другие — к главным шлюзам, третьи — к зонам мониторинга внешнего трафика.
В логах это выглядело так:
trace: outgoing_routes
analyze: timing_pattern
compare: known_intrusions
Никита инстинктивно уменьшил скорость выгрузки почти вдвое. Процент выполнения плавал где-то на середине, но сейчас ему было уже не до циферок. Каждая новая порция данных ощущалась как выстрел трассирующей пулей: красиво, но слишком заметно.
Системник под столом отозвался на новые нагрузки глухим рыком. Вентиляторы раскрутились быстрее, струя горячего воздуха ударила в голени, пробившись через ткань джинсов. Лицо стало жарким, виски пульсировали.
За окном промелькнул свет фар воздушного такси, на стене на секунду всплыла бледная дуга, срезанная горизонтальной линией подоконника. Внизу мегаполис продолжал жить — ритмичный шум транспортных потоков, редкий гудок, электронный щебет дронов.
Внутри комнаты вся эта жизнь сжалась до пары окон, нескольких графиков и одной строки hello.
Он на секунду подумал, что можно просто встать, дотянуться до сетевого фильтра и щёлкнуть кнопку. Всё. Тьма, тишина, тяжёлый вздох разогретого железа.… И неизвестно, что там, в Helix, успеют записать про него до этого щелчка.
— Рано, — прошептал он. — Ещё рано.
В этот момент в логах появилась новая строка:
escalate_to: CORE_SECURITY
Никита выругался сквозь зубы, коротко, грязно.
— Только этого не хватало.
Он быстро вызвал детали процесса. CORE_SECURITY не было частью старого архивного сегмента. Это был общий модуль безопасности Helix, тяжёлая артиллерия. Обычно такие штуки сидели над всей сетью и включались, когда мелкие фильтры вроде chk_legacy говорили: «Ну всё, ребята, это уже не шутка».
CORE_SECURITY ответил одним словом:
accepted
На диаграмме сети сверху, как будто из другого слоя, опустился крупный узел. От него во все стороны поползли новые линии. Пара из них тут же зацепилась за chk_legacy.
— Старшего позвали, — нервно хмыкнул Ник. — Красиво.
Внутри вспыхнуло что-то похожее на чужой голос: «Вот он, когда дракон просыпается». Он раздражённо отогнал эту мысль.
CORE_SECURITY начал действовать как каток.
В логах:
pattern_match: high_risk
countermeasure: active_traceback
target: external_source
На схеме его туннелей одна из линий вдруг вспыхнула красным — один из арендованных узлов. Статус поменялся с зелёного на жёлтый, потом на оранжевый. Загрузка по нему взлетела, график нагрузок подпрыгнул до потолка.
— Не-не-не, спокойно… — голос у Никиты явно не звучал спокойно.
В окне мониторинга его собственного железа температура процессора метнулась вверх. Видеокарта подхватила. Процент загрузки на всех ядрах — ровные сто. Системник под столом завыл так, словно пытался взлететь.