18+
реклама
18+
Бургер менюБургер меню

Mythic Coder – Хозяева сети (страница 2)

18

— Сойдёт, — выдохнул Никита. — Мне больше и не надо.

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

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

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

Это его устраивало.

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

За окном пролетел грузовой дрон, его свет на мгновение полоснул по потолку комнаты. Где-то в глубине квартиры хлопнула дверь — кто-то из родителей пошёл на кухню, оттуда донёсся приглушённый звон посуды.

Никита почти не обращал на это внимания. Вся его реальность сейчас была в зелёных и белых строках на чёрном фоне.

Наконец всё было готово.

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

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

Никита выдохнул, чувствуя, как грудная клетка неприятно сжимается от предвкушения, и нажал Enter.

Скрипт начал работать.

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

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

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

— Ну вот и весь «крупняк», — пробормотал он. — Страшно только по телевизору.

И именно в этот момент что-то изменилось.

На втором мониторе, там, где шёл его внутренний мониторинг процессов внутри архивного сегмента, один из служебных модулей внезапно ожил.

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

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

Но chk_legacy вёл себя странно.

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

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

observing unusual access pattern

collecting environment data

delay standard alert

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

— С чего это ты такой умный, приятель? — тихо сказал он экрану.

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

Здесь же chk_legacy отчётливо думал.

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

На схеме сети это выглядело как стайка светящихся точек, которые разъехались от одного центра и поползли по линиям связей.

Никита машинально сбросил скорость своей выгрузки вдвое, затем ещё.

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

В логах появилась новая строка, уже совсем не похожая на стандартные описания операций:

query: source_identity?

Никита моргнул и перечитал. Потом ещё раз.

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

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

«Может, это какой-то экспериментальный режим, оставленный разработчиками, — попытался он объяснить. — Типа "дружелюбная" отладка. Или шутка админа».

Однако ощущение было другим.

Новая группа строк одна за другой заполнила окно:

classification: not_regular_background_noise

action: postpone_block

reason: need_more_data

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

Это не похоже было на автоматическую реакцию.

Это было похоже на то, как человек, заметив странный шорох, сначала прислушивается, а уже потом зовёт охрану.

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

— Спокойно, — шепнул сам себе. — Тебя всего лишь сканируют. Ничего нового.

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

chk_legacy тем временем не отключался.

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

updating internal model

anomaly_score: rising

focus: external_like_pattern

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

Он поёрзал в кресле, откинулся назад, потом снова подался вперёд. Ладони вспотели; он вытер их о джинсы, не отводя глаз от экрана.

— Ладно, хватит, — пробормотал Ник. — Забрал половину — и будет людям счастье. Остальное пусть сами берегут.

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

И тут в самом центре окна логов появилась короткая строка:

hello

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

Никита застыл.