Осень 2024 года.

Нью-Йорк дышал в ритме мегаполиса: снаружи бушевала осень, тонкий дождь сбегал по стеклу фасада, будто торопясь вниз, к лужам и неоновым отражениям. Где-то там — пробки, сирены, кофе навынос, чужие разговоры. Здесь же, в сердце информационного щита банка CityGroup, царила тишина, нарушаемая лишь шелестом клавиш и редким гудением серверных стоек за стеклянной перегородкой.

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

У Джейсона, парня лет на шесть моложе Ричарда, стол выглядел как зона высадки хаоса: провода, термос, обёртка от энергетика, несколько разложенных бумажек со схемами Bash-автоматизации. Растрёпанные волосы, тёмная толстовка, с которой постоянно сползал капюшон. Его ноутбук был открыт, а в терминале — мигающий курсор рядом с незавершённой строкой for host in…. Он сидел с ногами на перекладине кресла, задумчиво глядя в монитор и почёсывая затылок. Периодически поглядывал на Ричарда — не враждебно, а с интересом, почти ученическим.

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

И был Ричард — тридцатилетний SOC-инженер, замкнутый и точный, словно синхронизированный с теми же циклами, что и серверы под его защитой.

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

Анна бросила на него взгляд:

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

Ричард поднял брови, оторвался от графика событий и пожал плечами:

— Я… как-то… не люблю толпу.

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

— Это не я… это просто в логах было странное поведение сессий… — пробормотал он, чувствуя, как где-то внутри сжимается что-то тёплое и тяжёлое, похожее на стыд.

— И ты был единственный, кто это заметил. — Вмешался Джейсон, оживлённо. — Я даже реплей потом смотрел. Как ты вычислил SSH-сессию через нестандартный порт и восстановил сессию PAM из auditd — это было офигенно.

Ричард смутился. Отвёл взгляд. Сжал пальцы на стакане чуть сильнее, чем надо. Голос стал тише:

— Я просто делал свою работу.

— Да ты не просто, ты как машина. — Джейсон повернулся на стуле. — Я бы так хотел уметь видеть сигналы в потоке. У меня всё пока через grep и наудачу.

— Все мы через это проходили, — отрезала Анна. — Просто у кого-то чуть лучше глазомер. Или интуиция. Или обсессивно-компульсивное расстройство, не правда ли, Ричард?

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

Над головой негромко щёлкнул динамик, и раздался ровный голос дежурного алгоритма:

«Alert. Unauthorized access. PCI-DSS segment. Investigate immediately.»

Мониторы замерцали, на стене — красная метка. SOC-центр будто втянул воздух.

Ричард уже подался вперёд, пальцы легли на клавиатуру.

— Я разберусь. — Голос был твёрже обычного. Глубже.

Экран окрасился в тревожный оттенок янтаря. Система вывела детали: попытка доступа к защищённому сегменту PCI-DSS из пользовательской зоны. Время события: три минуты назад. IP-адрес внутренний. Учётная запись — привилегированная. Команда — sudo su в нестандартный момент, вне графика задач.

Ричард пробежался глазами по панели: тревога не всплыла бы без сигнатуры в SIEM, значит, сработал поведенческий шаблон. Не банальная ошибка, не ложный флаг. Что-то выбивалось из общего паттерна. Он уже прокручивал в голове возможные векторы: инсайдер? Подмена сессии? Ошибка конфигурации PAM? Нарушение политики учётных данных?

Курсор замер над сессией, запущенной с IP 10.37.118.44. Пользователь . На экране — пустое окно терминала с логами. Он запустил воспроизведение PAM-сессии, привязанной к идентификатору события. Строки побежали по экрану.


session opened for user root by (uid=1047)

command: su -

tty: pts/2

rhost=172.16.41.2

cwd=/opt/tools


Хэши бинарников совпадали. md5sum от su, bash, — без изменений. Структура доступа через sudo соответствовала. Никаких вызовов вне политики. Ни попытки эскалации, ни нетипичного поведения. Но чувство беспокойства не исчезало — наоборот, нарастало.

Он переключился на уровень сетевого стека. В NetFlow — обычный трафик, SSH-соединение шло по стандартному порту, зашифровано. Логины совпадали. Он открыл журнал аудита — и тут, на полпути между строками, началась боль.

Сначала — как будто усталость. Тяжесть в лобной части. Затем — давление. Острые тени по краям зрения. Мониторы будто стали чуть дальше, как сквозь стекло с искажением.

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


sock = socket(AF_INET, SOCK_STREAM, 0);

connect(sock, &addr, sizeof(addr));

exec(“/bin/sh”);


Код промелькнул на экране — или в его голове? Он знал эти строки. Не из журнала. Из чего-то иного. Он не мог вспомнить, откуда, но они казались… знакомыми. Почерк был чужим, но смысл — до боли родным.

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

Анна посмотрела на него прищурившись:

— Код под глазами пляшет, Ричард?

Он не сразу ответил. Слишком много звуков. Света. Дыхание сбилось.

— Что там у тебя? — спросил Джейсон, привстав.

— Пока ничего… — с трудом выговорил он. — Просто… сейчас…

Он замолк. Нажал клавишу для отметки сессии. Оставил комментарий. Глубоко вдохнул. Взгляд метнулся к панели. Время реакции — уже вышло за норматив.

— Анна… подключись. У меня с головой не очень.

Она кивнула. Уже без подколок.

— Джейсон, ты тоже. Посмотрим вместе. Возможно, ложная тревога. Но надо убедиться.

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

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

— Смотрю PAM и sudo, — отозвалась Анна, сухо.

— Я возьму NetFlow и arp-таблицы, — подхватил Джейсон.

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

— Сессия от пришла с рабочей станции WKS-412 из общего отдела. IP совпадает. TTY совпадает. PAM-чек-лист — чистый, — прокомментировала Анна. Она не отвлекалась, говорила быстро, точно, безэмоционально.

— На arp-снимке всё в порядке. Адрес не дублируется. Переброса не вижу. DNS-резолв совпадает, — добавил Джейсон.

Анна нажала клавишу вызова. В линии появился гудок.

— Говорит SOC. Мы зафиксировали активность с вашей машины WKS-412 около десяти минут назад. Вы выполняли sudo-подключение к зоне PCI?

— Да, это я запускал. Был внеплановый апдейт скриптов, ошибка в расписании. Забыл сообщить, простите, — отозвался спокойный, немного усталый мужской голос на том конце.

Анна отключилась, повернулась к команде:

— Подтвердил. Легитимная активность. Просто не уведомил. Человеческий фактор.

Она бросила взгляд на Ричарда. В её голосе не было иронии:

— Ложный аларм.

Ричард кивнул. Всё действительно сходилось. Всё было в норме. Кроме одного — того, что он увидел. Или думал, что увидел. Того, чего не было.

Молча отметил событие как «ложную тревогу» в панели и закрыл вкладку. Голова всё ещё пульсировала, но слабее. Реальность понемногу возвращалась, вытесняя ту странную вспышку.

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

Анна лишь кивнула. Джейсон чуть улыбнулся.

— Ты нас ещё и напугал. Сначала думал, ты упал в транс.

— Почти, — сухо отозвался Ричард и встал. — Я… отойду на минуту. Нужно умыться.

Он шагнул прочь из круга света мониторов — туда, где тусклое освещение коридора становилось мягче, звук вентиляции глуше, и воздух казался прохладнее. Где-то за дверями продолжало жить здание — равнодушное, многоэтажное, полное чужих дел и голосов.

Загрузка...