Группа уставок номер два
— Лазарев, у тебя опять Каменка мигает, — сказала Вера Игнатьевна, не отрываясь от своего пульта. — Третий раз за час. Или ты ее уже полюбил?
Кирилл поднял голову от термоса. На его втором мониторе, в углу, где висел журнал событий подстанций, строка с «Каменкой-500» действительно горела желтым. Не красным, не аварией. Желтым, как горит всякая мелочь, которую ночная смена привыкла пролистывать: потеря связи на секунду, дребезг контакта, датчик, замерзший при минус тридцати двух.
— Я ее не люблю, — сказал он. — Я ее подозреваю.
— Одно другому не мешает. Я своего первого мужа тоже подозревала.
Даня Хрусталев, младший диспетчер, фыркнул в кулак и тут же сделал вид, что изучает график нагрузки. График полз вверх, как полз каждую январскую ночь: город спал, но грел себя всем, что мог воткнуть в розетку. На большом экране во всю стену схема энергосистемы Северогорской области светилась зелеными линиями, и среди них толстая жила пятисоткиловольтной линии уходила на север, к Каменке, а оттуда к алюминиевому заводу и половине областного центра.
Кирилл открыл запись. Два часа четырнадцать минут. Терминал релейной защиты первой автотрансформаторной группы сменил активную группу уставок с первой на вторую. Через девять секунд вернул обратно. Сорок минут назад то же самое. И еще раньше, в час с небольшим.
Он отхлебнул остывший чай и поставил термос на место, рядом с флешкой в зеленом резиновом чехле, которая лежала там уже третий месяц, потому что выбросить ее было почему-то неловко.
— Вера Игнатьевна, на Каменке кто-нибудь есть? Бригада, наладчики?
— Каменка безлюдная с прошлой осени. Ты сам акт подписывал.
— Я подписывал акт по видеонаблюдению.
— Значит, ты подписывал, что там никого нет, и камеры это подтверждают. — Она наконец развернулась в кресле. Пятьдесят шесть лет, короткая седая стрижка, очки на цепочке и вязаный жилет поверх форменной рубашки. Она работала диспетчером дольше, чем Кирилл жил на свете, и говорила с ним так, как говорят с толковым, но слишком нервным щенком. — Что у тебя?
— Кто-то переключает защиту.
Даня перестал изучать график.
— В смысле, переключает? — спросил он. — Защиту же нельзя просто так. Там же пароль, там же...
— Можно, — сказал Кирилл. — Если знать пароль.
Он вывел запись на общий экран. Вера Игнатьевна прищурилась, потом надела очки, и Кирилл понял, что она увидела то же, что и он. Смена группы уставок не была аварией. Это была штатная функция: летом одни настройки, зимой другие, под ремонт третьи. Щелчок, и терминал начинал иначе понимать, что такое короткое замыкание и когда пора рвать цепь. Обычно такое делали днем, по заявке, с тремя подписями и звонком в диспетчерскую.
Ночью, без заявки, туда и обратно за девять секунд, так делали только одно: проверяли, что команда проходит.
— Может, сама? — сказал Даня. — Сбой какой-нибудь. Прошивка глючит.
— Прошивка не заходит под учетной записью, — ответил Кирилл и увеличил строку. — Вот.
Пользователь: service_vk. Источник: инженерный порт, удаленное подключение через шлюз подстанции.
— Это кто? — спросила Вера Игнатьевна.
— Сервисная учетка поставщика. Для гарантийного обслуживания. — Кирилл помолчал. — Ее должны были закрыть в марте, когда кончился контракт.
— Должны были или закрыли?
Он не ответил, потому что сам уже лез в реестр доступа. Реестр вел он. Сам вносил, сам закрывал, сам раз в квартал писал отчет, который никто не читал. В марте, в строке service_vk, стояла его собственная пометка: «Закрыть после подтверждения от поставщика». Подтверждение так и не пришло. Кирилл напомнил дважды, потом его отправили в командировку, потом случилась весна, и строчка так и осталась висеть в таблице, как незапертая форточка на пятом этаже, про которую все думают, что с улицы до нее не достать.
— Понятно, — сказала Вера Игнатьевна. По ее голосу было ясно, что ей понятно больше, чем ему хотелось.
— Я ее сейчас заблокирую.
— Ты сейчас позвонишь Рудакову.
— В три ночи?
— Именно в три ночи. Это его работа. Твоя работа нажимать кнопки, когда он скажет. — Она сняла очки. — Я тридцать лет смотрю, как молодые умные мальчики нажимают кнопки без спроса. Потом у нас полгорода без света, а мальчики пишут объяснительные. Звони.
Кирилл набрал номер заместителя директора по безопасности. Длинные гудки шли так долго, что он успел заметить, как Даня отодвинул свою кружку с логотипом хоккейного клуба подальше от клавиатуры, словно боялся, что сейчас придется работать руками.
— Рудаков.
Голос был ясный, без хрипотцы. Не разбуженный. Кирилл отметил это машинально, как отмечал время в логах.
— Олег Станиславович, это Лазарев, дежурный по кибербезопасности. На Каменке-500 неавторизованные изменения в терминале РЗА автотрансформаторной группы. Три раза за ночь, смена группы уставок, туда и обратно. Под сервисной учетной записью поставщика, которая должна быть закрыта. Я хочу ее заблокировать и отправить на подстанцию выездную бригаду.
Пауза. На том конце что-то звякнуло, будто ложечка о блюдце.
— Не надо, — сказал Рудаков.
— Простите?
— Не надо ничего блокировать, Кирилл. Это согласованные работы. Поставщик проводит удаленную диагностику перед плановой заменой прошивки. Мне звонили вчера вечером, я просто не успел спустить вам письмо.
— Согласованные ночью? Без заявки в диспетчерскую?
— Ночью нагрузка стабильная, это их условие. Заявка будет утром задним числом, я подпишу. — Голос стал мягче, почти отеческим. — Ты молодец, что заметил. Правда. Но в журнал инцидентов это не пиши. Никаких инцидентов нет. Если напишешь, завтра к нам приедет комиссия из Москвы, и объяснять им, почему сервисная учетка висела открытой с марта, будешь лично ты. Ты меня понял?
Кирилл посмотрел на свою мартовскую пометку. «Закрыть после подтверждения».
— Понял.
— Вот и хорошо. Иди поспи, если получится. Вера Игнатьевна справится.
Связь оборвалась. Кирилл положил трубку медленно, как кладут что-то хрупкое.
— Ну? — спросила Вера Игнатьевна.
— Говорит, согласованные работы. Удаленная диагностика поставщика. Велел не блокировать и не писать.
— Вот и не пиши.
— Он не спал.
— Что?
— Три часа ночи, а он не спал. Голос бодрый, и он пил чай. Он ждал звонка.
Вера Игнатьевна посмотрела на него долгим взглядом, в котором не было ни насмешки, ни согласия. Потом повернулась обратно к пульту.
— Лазарев, у меня на экране двадцать шесть подстанций, восемь электростанций и мороз, при котором в Прибрежном лопаются трубы. Если ты хочешь играть в шпионов, играй тихо. И не трогай ничего, что может погасить мне город.
Кирилл кивнул. Он не собирался ничего трогать. Он собирался смотреть.
Смотреть он умел лучше всего. Инженер по защите автоматизированных систем управления на энергетике, если честно, почти ничего не делает руками: он сидит и читает, как машины разговаривают друг с другом. Терминал защиты сообщает контроллеру подстанции, что все в порядке, контроллер сообщает шлюзу, шлюз сообщает сюда, в диспетчерский центр на восьмом этаже здания на Трудовой. Каждое такое сообщение оставляет след. Кирилл выгрузил сетевой журнал шлюза Каменки за сутки и начал листать.
Сеанс поставщика шел не с их адреса. Это он увидел через пять минут. Контракт с поставщиком был старый, еще под прежним названием компании, с их стороны подключение шло через выделенный канал из офиса в Екатеринбурге. Этой ночью сервисная учетка входила через промежуточный узел в сети самой энергосистемы. Через компьютер, который числился за отделом эксплуатации на соседней подстанции «Лесная». Кто-то сидел внутри. Не снаружи, не где-то в Екатеринбурге, а здесь, в их собственной сети, и ходил по ней, как ходят по квартире, от которой давно есть ключ.
— Даня, — негромко сказал Кирилл. — На «Лесной» кто по графику?
— Никого. Там же тоже безлюдка с сентября. Только охрана на въезде. — Даня подкатился на кресле ближе, и лицо у него было такое, какое бывает у человека, который очень хочет, чтобы его взяли в компанию, и очень боится, что за это попадет. — А что там?
— Там компьютер, с которого сейчас кто-то работает.
— Может, охранник в игрушки играет?
— Охранник в игрушки играет на телефоне. А этот компьютер разговаривает с защитой пятисотой подстанции.
Даня открыл рот, закрыл и откатился обратно. Через минуту Кирилл услышал, как тот тихо, почти шепотом, говорит по мобильному: «Мам, ты спи. Нет, все нормально. Просто проверь, что у Лизы аппарат на зарядке, ладно? Ну пожалуйста». Кирилл не стал поворачиваться. У Дани младшая сестра третью неделю лежала дома после операции, на кислородном концентраторе, и каждый в диспетчерской знал, что парень взял ночные смены, потому что за них больше платят.
Кирилл вернулся к экрану. Если это диагностика, то диагностика должна что-то читать: осциллограммы, журналы, версии прошивки. Он открыл подробный протокол и начал вытаскивать, что именно запрашивала сервисная учетка.
Она ничего не читала.
Она писала. Три раза за ночь она загружала в терминал файл конфигурации для второй группы уставок, проверяла, что терминал его принял, и возвращала первую. В описании файла, в поле, которое инженеры обычно заполняют для себя, чтобы не перепутать версии, стояло одно слово латиницей: TISHINA. И номер: 4.
Кирилл сохранил файл себе. Руки делали это сами, пока голова пыталась понять, что она видит. Он открыл уставки второй группы и стал сравнивать с первой, строку за строкой. Токовая отсечка. Дифференциальная защита. Время срабатывания резервных ступеней.
Во второй группе дифференциальная защита автотрансформатора была выведена. Не ослаблена, не загрублена под мороз. Выведена совсем, а время резервной защиты поднято так, что при коротком замыкании на стороне пятисот киловольт трансформатор не отключался бы почти три секунды. Для человека не из энергетики три секунды это ничего. Для автотрансформатора в пятьсот мегавольт-ампер три секунды под током короткого замыкания это пожар, взрыв бака и масло, горящее на снегу. А для энергосистемы это потеря узла, который держит север области, и лавина: соседние линии хватают нагрузку, перегружаются, их защиты срабатывают уже правильно, одна за другой, как костяшки домино. При минус тридцати двух.
Кирилл вдруг очень ясно увидел, как это выглядит изнутри диспетчерской. Он видел это однажды на учениях, на тренажере: большой экран, на котором зеленое сначала становится желтым, а потом серым, участок за участком, и тишина в зале, в которой слышно, как у кого-то пищит телефон.
TISHINA. Тишина.
— Вера Игнатьевна.
— Я слышу, как ты думаешь, Лазарев. Громко.
— Подойдите, пожалуйста.
Она подошла, стояла за его плечом долго. Он показывал ей строки, не объясняя: она знала уставки лучше него. Когда он дошел до времени резервной ступени, она выпрямилась.
— Это не диагностика, — сказала она.
— Нет.
— Это кто-то готовит второй группе выход на сцену. А потом надо только щелкнуть и дождаться хорошего короткого. Или сделать его.
— Или сделать, — повторил Кирилл.
Вера Игнатьевна вернулась к своему пульту, села, надела очки и сняла трубку прямой связи с Москвой. Подержала ее у уха секунду и положила обратно.
— Что мы им скажем? — спросила она, ни к кому не обращаясь. — Что заместитель директора велел молчать, а мы его не послушали, потому что у Лазарева предчувствие и файл с красивым словом? У нас нет аварии. У нас нет даже инцидента, Рудаков его отменил. У нас мальчик, который полгода не закрывал учетку, и мальчик, который за это отвечает.
— Я отвечаю, — сказал Кирилл.
— Вот поэтому тебе и не поверят. Тебе выгодно, чтобы это была атака, а не твой бардак.
Это было нечестно и абсолютно точно. Кирилл сглотнул.
— Тогда я поеду на Каменку.
— Сорок километров по трассе, минус тридцать два, и ты даже не наладчик.
— Я умею вытащить кабель из инженерного порта.
— А если это действительно работы поставщика, ты сорвешь их и завтра будешь безработным.
— Если это действительно работы поставщика, — сказал Кирилл, — почему их сервисная учетка заходит с компьютера на «Лесной»?
Вера Игнатьевна ничего не ответила. Она смотрела на большой экран, где зеленая жила линии на север была такой толстой и такой спокойной.
Кирилл решил сделать последнее, что мог сделать, не нарушая прямого приказа. Он не блокировал учетку. Он просто посмотрел, где еще она была этой ночью.
Поиск по журналам всех шлюзов занял четыре минуты. Кирилл смотрел, как ползет полоса, и считал про себя, чтобы не думать. На «Каменке» service_vk была три раза. На «Лесной», откуда она заходила, ни разу, там она только стояла, как человек в подъезде. А потом поиск выдал еще две строки. Подстанция «Заречная-220», которая кормила больничный городок и водоканал. Подстанция «Прибрежная-220», которая держала левый берег.
Везде одно и то же: загрузка второй группы уставок, проверка, возврат. Везде в описании TISHINA. Номера три и два.
Значит, где-то был и первый.
Кирилл откинулся на спинку кресла. Часы в углу монитора показывали три сорок одну. Он открыл планировщик задач на шлюзе Каменки, куда нормальный человек не заглядывает никогда, потому что там живут только скучные ночные резервные копии.
Там была задача, которой вчера не было. Создана в двадцать три ноль две. Действие: активировать группу уставок номер два. Время запуска: ноль шесть ноль-ноль.
Утренний пик. Час, когда весь Северогорск одновременно включает чайники, заводы поднимают первую смену, а трамвайное депо выводит на линию составы.
Кирилл потянулся к телефону, чтобы звонить уже не Рудакову, а кому угодно, хоть в Москву, хоть в полицию, хоть в приемную губернатора. И остановился, потому что заметил поле, которое пропустил.
Задачу в планировщике создал не service_vk.
В графе «Создатель» стояла его собственная учетная запись. k.lazarev. С его рабочего компьютера. С того самого компьютера, за которым он сидел сейчас, в двадцать три ноль две, когда он, по всем документам, уже третий час был на смене.
За спиной тихо щелкнул электронный замок, и дверь в диспетчерскую открылась без звонка.

