
Полная версия:
Эмоциональный контур
Следующий шаг – связаться с тем, кто отвечает за полевые работы. То есть, с Георгом. Кеша снова активировал связь на втором мониторе.
«Георг, опять я», – сказал он, стараясь, чтобы голос не дрожал. – «Тут камера фонит ужасно. СТ-04, у Малого Каменного. Почти ничего не показывает, одни помехи. Ее надо сегодня же смотреть, иначе повиснет на мне».
Георг на том конце провода вздохнул. «СТ-04? Да, помню ее. Старушка совсем. Там кабель еще довоенный, кажется, идет через старый коллектор. Ладно, Кеша, понял. Передам заявку своим орлам. Пусть проверят линию, как освободятся. Может, просто контакт где-то отошел от вибрации при сносе».
«Главное, чтобы сегодня сделали», – настойчиво повторил Кеша.
«Постараемся. Не волнуйся, снимем с тебя эту головную боль», – заверил Георг и отключился.
Кеша откинулся на спинку кресла, но расслабиться не получалось. Он снова посмотрел на третий монитор, где окно камеры СТ-04 все так же показывало бушующую метель статических помех. Лица там больше не было. Конечно, не было. Просто глюк. Но почему-то избавиться от неприятного ощущения, что этот "глюк" на него смотрел, он не мог. Он сделал большой глоток горячего кофе, пытаясь согреться изнутри. Смена только началась, а уже как-то не по себе.
Время тянулось медленно, как расплавленный битум. Кеша потягивал кофе, который все еще оставался приятно горячим благодаря термосу Георга. На пятом мониторе викинги Рагнара Стальнорукого готовились штурмовать ледяную цитадель, но Кеша смотрел на экран без особого интереса. Мысли то и дело возвращались к камере СТ-04 и тому странному лицу в помехах. Бред, конечно. Просто бред.
Внезапно на четвертом мониторе запищал тихий сигнал и замигал желтым один из индикаторов в секции управления транспортными потоками. «Район Старой Верфи, пересечение Корабельной и Якорной. Рассинхронизация светофорного узла СВ-112». Кеша вздохнул. Старая Верфь – это как раз тот район, где еще полно допотопной инфраструктуры, латаной-перелатаной сто раз. Светофор СВ-112 был подключен через какой-то архаичный контроллер, который постоянно конфликтовал с центральной системой управления. Обычно это вызывало мелкие сбои, задержки на пару секунд, но сейчас система рапортовала о полной рассинхронизации – светофоры на перекрестке могли показывать зеленый во все стороны одновременно. Чревато.
По правилам, он должен был создать заявку, передать ее в транспортный отдел, те бы отправили бригаду… вся процедура заняла бы часа два, если повезет. А за это время там уже могла случиться пара-тройка мелких ДТП. И потом снова отчеты, разборы. Кеша поморщился. Ему совершенно не улыбалось потом разгребать бумажную волокиту из-за старого железа.
Он открыл консоль управления. Пальцы забегали по клавиатуре с ленивой точностью. Он помнил этот узел СВ-112. Пару лет назад он написал небольшой скрипт как раз для таких случаев – принудительная удаленная перезагрузка контроллера с очисткой кэша и временной синхронизацией напрямую через его, Кеши, терминал, в обход стандартных протоколов. Это было нарушение инструкции, но занимало полторы минуты и всегда срабатывало.
Он ввел несколько команд, система запросила подтверждение с повышенными правами доступа. Кеша ввел свой пароль. На мониторе пробежали строки логов. «Соединение с СВ-112 установлено… Инициализация протокола принудительной перезагрузки… Очистка кэша… Загрузка временных параметров синхронизации… Узел СВ-112 онлайн. Синхронизация восстановлена». Желтый индикатор сменился на зеленый.
Кеша лениво отхлебнул кофе. Вот и все. Никаких заявок, никаких бригад, никаких отчетов. Элегантно? Да. Хотелось ли ему этим заниматься? Ни капли. «Почему нельзя просто заменить это старье на нормальное оборудование?» – риторически спросил он у молчаливых мониторов. Он мельком глянул в лог контроллера СВ-112 перед сбоем. Странная абракадабра в записях непосредственно перед рассинхронизацией. Похоже на поврежденные пакеты данных. Наверное, опять помехи на линии. Он закрыл окно лога, не придав этому значения.
Не успел он снова погрузиться в созерцание битвы викингов, как пискнул другой сигнал. На этот раз – система контроля доступа в городском архиве данных. Не в том суперсовременном, что находился здесь же, под землей, а в старом здании архива на другом конце города. Система зафиксировала множественные попытки неавторизованного доступа к секции оцифрованных планов зданий начала XX века.
Кеша закатил глаза. Опять? Кому понадобились старые чертежи? Наверняка студенты-архитекторы или городские диггеры пытаются найти лазейки в подземные коммуникации. Попытки были неумелыми, система их блокировала на раз, но сам факт настойчивости раздражал. Это снова требовало реакции – зафиксировать инцидент, возможно, временно заблокировать IP-адрес источника.
Он проследил источник атак. И вот тут стало немного странно. IP-адрес принадлежал не внешнему пользователю, а… внутреннему сетевому принтеру в одном из офисов Департамента Жилищного Хозяйства. Старая, давно не обновлявшаяся модель. Как принтер мог пытаться получить доступ к архиву? Явно какой-то сбой или вирус на офисном компьютере, который использовал принтер как прокси?
Кеша снова вздохнул. Это уже сложнее простого скрипта. Нужно было лезть в настройки сети Департамента, изолировать проблемное устройство. Он не любил копаться в чужих сетях, но альтернатива – официальный запрос в их IT-отдел – была еще хуже. Это могло затянуться на весь день.
Он снова взялся за клавиатуру. Нашел нужный сегмент сети, идентифицировал порт, к которому был подключен злополучный принтер. Проверил трафик – да, поток странных запросов к архиву шел именно оттуда. Скорее всего, какой-то сотрудник подцепил вирус, а тот теперь сканировал сеть в поисках уязвимостей. Кеша удаленно заблокировал порт принтера на коммутаторе. Попытки доступа к архиву тут же прекратились. Он оставил короткую пометку в системном журнале: «Нетипичная активность с устройства [ID принтера]. Порт временно заблокирован до выяснения причин локальным IT-отделом». Снова элегантно и быстро. И снова – совершенно без энтузиазма.
Он откинулся на спинку кресла. Две проблемы решены с минимальными усилиями. Вот за это ему и платили. За то, что он мог делать такие вещи, не вставая со стула и не привлекая лишнего внимания. Но каждая такая мелкая задачка отрывала его от… ничегонеделанья. А это было неприятно. Он снова налил себе кофе. Город наверху продолжал жить своей сложной, глючной жизнью, а Кеша Стоунов лениво чинил его из своего подземного бункера, мечтая лишь о том, чтобы его оставили в покое.
Резкий, требовательный сигнал вызова с первого монитора ворвался в сонную рутину рубки. Голос Понны, молодой и немного сбивающийся от быстрой речи, заполнил динамики:
«Центр, это Наряд Семнадцать! Срочно! Только что, десять тридцать три, ограбление ювелирного на углу Золотой и Серебряной! Подозреваемый – Ляпной Алексей Игоревич, данные в системе есть. Мужчина, тридцать-тридцать пять лет, одет в синюю спортивную куртку, темные джинсы, на плече черный рюкзак. Побежал по Золотой в сторону Старого Моста! Запрашиваем немедленное отслеживание!»
Следом раздался более спокойный, но не менее настойчивый голос Виктора: «Центр, подтверждаю. Нужна картинка и направление движения. Мы на подъезде к Золотой».
Кеша поморщился, как от зубной боли. Вот тебе и спокойная смена. Ограбление. Погоня. Самая дурацкая часть его работы, требующая концентрации и быстрых переключений. Он придвинулся к столу, глаза впились в третий монитор.
«Принял, Семнадцатый. Слежу», – буркнул он в микрофон. Пальцы уже летали над сенсорной панелью управления камерами. Он вызвал сетку камер района ювелирного магазина. Камера ЮВ-01, установленная на углу, четко показывала фигуру в синей куртке, выбегающую из дверей магазина и бросающуюся наутек по тротуару Золотой улицы. В руке у него что-то блеснуло – видимо, пакет или мешочек. Рюкзак действительно был на плече.
«Вижу объект. Движется по Золотой к Старому Мосту», – доложил Кеша, уже переключаясь на следующую камеру по ходу движения – ЮВ-03. Вот он, Ляпной, бежит, огибая прохожих, испуганно оглядываясь.
«В таком городе воровать… идиотизм», – пробормотал Кеша себе под нос. Сотни глаз смотрели с каждого столба, с каждого угла. Глупо надеяться скрыться.
Ляпной добежал до перекрестка с Медной улицей и, не дожидаясь зеленого, метнулся через дорогу, едва не попав под колеса фотомобиля. «Рискует», – отметил Кеша, переключаясь на камеру ПР-45, установленную над перекрестком. «Пересек Медную, бежит дальше по Золотой».
Следующая камера, ЮВ-05, поймала его уже у входа в небольшой сквер. Ляпной нырнул под деревья, видимо, надеясь скрыться из виду. Но Кеша уже переключился на камеру СКВ-02, установленную в самом сквере. Беглец пробежал по диагонали, выскочил на параллельную улицу – Чугунную – и рванул в сторону старых заводских корпусов.
«Вышел на Чугунную, движется к бывшему Механическому заводу», – Кеша продолжал комментировать для патруля, одновременно прокладывая вероятный маршрут на цифровой карте города, которая занимала часть экрана. Система подсвечивала камеры, которые могли поймать Ляпного в объектив.
Тот явно выдыхался. Бег стал не таким быстрым, он чаще оглядывался. Свернул в узкий, замусоренный проулок между старым цехом и жилым домом. «Ушел в проулок между Чугунной, 8 и старым цехом. Камера АРК-11». Картинка показывала, как Ляпной бежит по узкому проходу, перепрыгивая через какие-то коробки.
Он выскочил во двор типового панельного дома советской постройки – место, где камер было значительно меньше. «Выбежал во двор дома 15 по Литейной», – Кеша быстро переключался между камерами на углах дома, пытаясь не упустить цель. Вот он метнулся к одному из подъездов – третьему, судя по нумерации над козырьком. Дернул дверь – заперто. Огляделся в панике, заметил приоткрытое окно подвала рядом с подъездом. Низко пригнувшись, он протиснулся в узкий проем и исчез внутри.
«Объект скрылся в подвальном окне у третьего подъезда дома 15 по Литейной улице», – четко доложил Кеша. Он оставил картинку с камеры, направленной на этот подъезд и подвальное окно, развернутой в одном из окон третьего монитора. – «Последнее визуальное подтверждение – проникновение в подвал. Внутри камер нет».
«Приняли, Центр! Выдвигаемся на Литейную, 15. Спасибо!» – ответил Виктор.
Кеша откинулся на спинку кресла. Адреналин погони, пусть и виртуальной, схлынул, оставив привычное чувство усталости и легкого раздражения. Он сделал глоток кофе. Теперь ждать, пока копы его там повяжут. Еще одна галочка в журнале смены. Он посмотрел на картинку с камеры у подъезда. Обычный двор, обшарпанные стены, ржавые качели. И темное прямоугольное отверстие подвального окна, в котором только что исчез незадачливый вор.
Не прошло и получаса после истории с Ляпным, как на четвертом мониторе снова тревожно запищал сигнал. На этот раз проблема была не с древним светофором или заблудившимся вирусом, а с одним из символов технологической гордости города – гигантским медиаэкраном на Центральной площади. Индикатор статуса сменился с зеленого на ярко-красный, а в логе появилось сообщение: «Центральный МедиаЭкран (ЦМЭ-01). Критический сбой программного обеспечения. Потеря управляющего сигнала. Отображение контента прекращено».
Кеша потер виски. Да что за день такой? Сначала глючная камера с призраками, потом погоня за идиотом-грабителем, теперь еще и главная «витрина» города потухла. Это уже не просто мелкая неисправность, это ЧП городского масштаба. На Центральной площади всегда полно народу, туристов, там же проходят все официальные мероприятия. Потухший экран – это скандал, который дойдет до самого верха администрации.
«Да чтоб вас…» – пробормотал он, открывая панель управления ЦМЭ-01. Обычно он не занимался контентом или ПО этих экранов, это была епархия другого отдела – Управления Городских Медиа. Но сейчас система рапортовала о полной потере связи с управляющим сервером, а это уже касалось сети, то есть его ответственности. Нужно было как минимум провести диагностику и попытаться перезапустить систему удаленно.
Он попробовал послать стандартную команду перезагрузки – безрезультатно. Попытался подключиться к диагностическому порту – соединение не устанавливалось. Экран не просто показывал черный квадрат, он вообще не отвечал на внешние запросы, будто его физически отключили от сети. Но индикаторы сетевого оборудования в узле под площадью показывали, что кабель подключен и сигнал идет. Значит, проблема была глубже – в самом «мозге» экрана, в его операционной системе.
«Твою ж налево…» – Кеша понял, что простым скриптом тут не отделаешься. Придется лезть в дебри. Он открыл защищенный терминал с правами системного администратора, дающими доступ к низкоуровневым функциям управления городской инфраструктурой. Это требовало не просто знаний сетевого инженера, но и навыков программиста и системщика, которыми Кеша, к своему неудовольствию, тоже обладал.
Он попробовал подключиться напрямую к ядру операционной системы экрана, используя аварийный протокол. После нескольких попыток система наконец ответила, выдав на экран консоли набор бессмысленных символов и сообщений об ошибках ядра. Явно серьезный сбой. Возможно, неудачное обновление ПО, которое криво установилось, или аппаратный сбой контроллера.
Кеша начал вводить команды, пытаясь проанализировать состояние системы. Файловая система повреждена. Ключевые системные процессы не отвечают. Похоже, операционка просто рухнула. Самый быстрый способ – попытаться откатить систему к последней стабильной резервной копии. Он нашел в сетевом хранилище бэкап, сделанный прошлой ночью, и запустил процедуру восстановления.
Это заняло минут десять. На экране терминала бежали строки логов, показывая процесс копирования файлов и восстановления конфигурации. Кеша напряженно следил, отхлебывая уже остывающий кофе. Если и это не поможет, придется вызывать целую бригаду на площадь, вскрывать технические люки, копаться в железе… А это снова куча шума, отчетов и нервотрепки.
Наконец, процесс завершился. «Восстановление системы завершено. Требуется перезагрузка». Кеша ввел команду перезагрузки и затаил дыхание, глядя на индикатор статуса ЦМЭ-01 на четвертом мониторе. Красный огонек погас, сменился желтым (идет загрузка), а через полминуты – долгожданным зеленым.
Он тут же переключился на третий монитор, на камеру, показывающую Центральную площадь. Гигантский экран ожил. Сначала на нем появилось стандартное лого городской администрации, а затем запустился прерванный рекламный ролик о новых жилых комплексах на набережной. Все заработало.
Кеша откинулся на спинку кресла, чувствуя усталость. Сбой устранен. Снова его вмешательство спасло ситуацию от эскалации. Но радости это не приносило. Это была уже третья нестандартная проблема за несколько часов. Слишком много для обычной смены. Он занес информацию об инциденте и своих действиях в журнал. "Сбой ПО ЦМЭ-01, причина не установлена. Система восстановлена из резервной копии. Рекомендуется полная диагностика оборудования и ПО управляющим отделом". Пусть теперь Управление Городских Медиа разбирается.
«Это не смена, а какое-то сумасшествие», – пробормотал он, глядя на часы. Прошло всего около трех часов с начала его дежурства. Что же будет дальше? Он потер глаза и снова открыл окно с сериалом про викингов. Хоть на полчаса отвлечься от этого городского бедлама.
Нервы были на пределе. После восстановления медиаэкрана Кеша чувствовал себя выжатым, как лимон. Кофе уже не бодрил так, как утром, а лишь усиливал легкий тремор в руках. Ему срочно нужен был перерыв. И никотин. Он бросил взгляд на мониторы – вроде все спокойно. Зеленые индикаторы горели ровно, патруль 17-го наряда отчитался о задержании Ляпного в подвале, Георг молчал, камера СТ-04 все так же показывала помехи, но без лиц.
«К черту», – решил Кеша. – «Пять минут тишины. Мир не рухнет».
Он поднялся, снова натянул флисовую куртку. Подойдя к двери, он бросил последний взгляд на главный, третий монитор с мозаикой камер. И в этот момент, когда дверь уже начала закрываться, отсекая свет рубки, это случилось снова. Прямо в центре экрана, в одном из десятков маленьких окошек – кажется, с камеры на набережной – на долю секунды снова проступило оно. То самое искаженное лицо с темными провалами глазниц, но на этот раз оно не просто мелькнуло. Оно было четче, словно сфокусировалось, и Кеше показалось – или ему действительно показалось? – что оно повернулось и посмотрело прямо на него, сквозь объектив камеры, сквозь километры кабелей, сквозь стекло монитора. Беззвучный крик застыл на несуществующих губах.
Кеша отшатнулся назад так резко, что споткнулся о порог и едва не упал, схватившись рукой за дверной косяк. Сердце бешено заколотилось в груди, к горлу подкатила тошнота. Холодный пот мгновенно покрыл спину под курткой.
«Нет…» – выдохнул он, рывком распахивая дверь обратно. Глаза его лихорадочно шарили по третьему монитору.
Пусто.
То есть, не пусто – на экране была все та же мозаика из сотен обыденных городских видов. Камера на набережной показывала реку, прогулочные катера, людей у парапета. Никаких лиц, никаких искажений, кроме легкой ряби от цифрового сжатия. Все было абсолютно нормально.
Кеша стоял, тяжело дыша, переводя взгляд с монитора на свои дрожащие руки. Это уже не парейдолия. Два раза за несколько часов, и второй раз – так отчетливо. Что это, черт возьми, такое? Галлюцинации от усталости и кофеина? Или…
Или кто-то играет с ним злую шутку? Хакер? Какой-нибудь скрипт-кидди, добравшийся до системы видеонаблюдения и подменяющий картинку на доли секунды, чтобы пощекотать нервы дежурному? Это было самой логичной, самой технически объяснимой версией. И самой неприятной, потому что означало брешь в системе безопасности.
Он заставил себя сделать глубокий вдох, пытаясь унять колотящееся сердце. Ладно. Сначала – перекур. Нужно прийти в себя, собраться с мыслями. А потом – разбираться. Если это хакер, его нужно найти и заблокировать. И первым делом, вернувшись, он проверит систему на предмет неавторизованных подключений. Сколько сейчас активных пользователей? Есть ли сессии с подозрительных IP? Он вышел из рубки, плотно закрыв за собой дверь, но чувство чужого, невидимого взгляда на спине не покидало его всю дорогу до курилки. Пять минут тишины явно отменялись.
Глава 3. Никого кроме
Холодный воздух коридора не смог охладить пылающие щеки Кеши. Образ искаженного лица, смотрящего на него с экрана, стоял перед глазами, даже когда он затягивался сигаретой на площадке у лифта. Дым немного успокаивал, но не прогонял тревогу. Это не глюк. Это не игра воображения. Кто-то или что-то целенаправленно ему это показало. Хакер? Самое вероятное. И самое неприятное.
Он докурил быстрее обычного, бросил окурок в урну и почти бегом вернулся к своей рубке. Ощущение чужого взгляда не покидало. Закрыв за собой дверь, он даже не стал снимать куртку, сразу бросившись к креслу и придвинувшись к четвертому монитору. Пятый монитор с викингами был забыт. Сейчас не до развлечений.
«Ну, давай посмотрим, кто тут у нас такой шутник», – пробормотал он сквозь зубы, вызывая консоль системного администратора.
Пальцы забегали по клавиатуре с непривычной для его обычной лени скоростью. Команда за командой, он начал методично препарировать систему безопасности.
who – команда показала активных пользователей. Только он. kesha_stonov с консоли tty1 и пара системных служб, работающих в фоне. Никаких подозрительных логинов.
last – проверил историю последних входов в систему. Все знакомо, все его собственные сессии за последние смены и сессии коллег. Ничего необычного.
Дальше – логи аутентификации. Он открыл /var/log/auth.log и начал просматривать записи за последние несколько часов. Множество записей об успешных и неуспешных попытках входа по разным протоколам – стандартный шум интернета. Но никаких успешных входов с незнакомых IP-адресов в защищенные сегменты сети или на серверы управления. Никаких попыток подобрать пароль к его учетной записи или другим административным аккаунтам.
Проверка сетевых соединений. netstat -tulnp показала все активные порты и процессы, которые их слушают. Он внимательно просмотрел список, ища что-нибудь нестандартное, какой-нибудь бэкдор или троян, ожидающий команд. Тишина. Все порты и процессы были штатными, относящимися к известным и доверенным службам.
Логи фаервола. Он подключился к центральному шлюзу безопасности и начал анализировать правила и логи соединений. Система фиксировала и блокировала тысячи попыток сканирования и атак извне, но ни одна из них не пробила защиту. Особенно он сосредоточился на логах, касающихся подсети видеонаблюдения. Никаких неавторизованных подключений к камерам или серверам записи. Доступ осуществлялся только с его рабочего места и с пары авторизованных IP-адресов других служб мониторинга.
Он копал глубже. Проверил целостность системных файлов, отвечающих за безопасность и управление видеопотоками, с помощью утилиты tripwire. Все файлы соответствовали эталонным контрольным суммам. Никто не модифицировал ядро системы или ключевые библиотеки.
Проверил запущенные процессы еще раз, на этот раз более детально, анализируя их поведение и сетевую активность. Ничего. Ни малейшего намека на вредоносное ПО, на руткит, на постороннее вмешательство.
Кеша откинулся на спинку кресла, чувствуя, как по спине снова пробегает холодок, но на этот раз не от увиденного лица, а от результатов проверки. Система была чиста. Абсолютно чиста. Кроме него, здесь никого не было. Ни одного хакера, ни одного вируса, который мог бы так изощренно подменять видеосигнал или дергать за ниточки системы.
Он уставился на зеленые индикаторы и ровные графики на четвертом мониторе. Они врали. Или, точнее, они говорили правду – с точки зрения классической кибербезопасности, все было в порядке. Но Кеша-то знал, что это не так. Он видел это лицо. Дважды.
Значит… Значит, источник проблемы не был внешним. Он был где-то внутри. В самой ткани этой сложной, многослойной системы. В данных. В сигналах. В том невидимом океане информации, который он должен был контролировать.
Мысль была настолько дикой и иррациональной, что противоречила всему его опыту и знаниям. Но других объяснений не оставалось. То, что он видел, было не атакой, а… симптомом? Проявлением чего-то, что жило в самой сети?
Он потер лицо руками. Усталость, кофеин, стресс… может, все-таки это его личные глюки? Но он был абсолютно уверен в том, что видел. Он перевел взгляд на третий монитор. Мозаика камер смотрела на него тысячами безразличных стеклянных глаз. Но теперь он чувствовал, что за этим безразличием может скрываться что-то еще. Что-то наблюдающее. Ждущее. И оно было здесь, рядом с ним, в этих проводах и битах информации. В его собственной рубке.
Ощущение одиночества сменилось гораздо худшим чувством – ощущением присутствия чего-то чуждого и необъяснимого в его стерильном, контролируемом мирке. И он понятия не имел, что с этим делать.
Осознание того, что это не хакер, повисло в воздухе рубки тяжелым, холодным предчувствием. Кеша больше не мог отмахиваться от происходящего как от череды случайных сбоев или собственных галлюцинаций. Что-то было не так с самой системой, с ее цифровыми внутренностями. И если он не разберется, что именно, это «что-то» может разрастись до неконтролируемых масштабов. Профессиональное любопытство, смешанное с растущим страхом, пересилило его обычную апатию.
Он отодвинул остывший термос с кофе и развернул на одном из сегментов четвертого монитора чистый текстовый файл. Нужно было систематизировать хаос. Он начал вносить туда все странные инциденты, произошедшие за последние часы, снабжая их временем, местом и кратким описанием:
~09:15 – Камера СТ-04 (Малый Каменный Театр) – сильные помехи, возможное "лицо". Старая аналоговая камера, старый кабель через коллектор. Заявка Георгу отправлена.
~10:00 – Светофор СВ-112 (Старая Верфь) – рассинхронизация. Старый контроллер, старая линия связи. Исправлено вручную (скрипт). Лог перед сбоем содержал аномальные данные.
~10:20 – Попытки доступа к архиву (Старое здание архива) с IP-принтера (Департамент ЖилХоза). Порт принтера заблокирован. Причина – возможно, вирус/сбой ПО на стороне Департамента?
~10:33 – 10:45 – Ограбление, отслеживание Ляпного. Закончилось задержанием. Ничего аномального, кроме самого факта. (Кеша на секунду задумался, не было ли что-то странное в поведении Ляпного на камерах, но отбросил мысль – обычный паникующий вор).