– Тимофей Андреевич, зайдите ко мне. Срочно.
Голос Ларисы Марковой в трубке звучал так, будто кто-то лично ей задолжал. Я отложил бутерброд, вытер пальцы салфеткой и пошёл на четвёртый этаж.
Четырнадцать лет я работал в «ТехноЛогике». Начинал один – настраивал сеть, тянул кабели, ставил первый сервер в кладовке рядом с вёдрами. А к двадцать пятому году у меня было шесть человек в отделе, серверная на сорок стоек и бюджет, за который отвечал головой.
Лариса ждала за столом, на котором лежала распечатка. Одна. Развёрнутая ко мне вверх ногами, но я и так увидел цифру. Она была подчёркнута красным маркером.
– Миллион триста шестьдесят тысяч, – сказала Лариса. – За электричество. За один месяц.
Я молчал. Она повернула листок.
– Знаете, сколько было год назад? Триста сорок тысяч. В четыре раза меньше. Что происходит у вас в серверной?
И вот тут надо объяснить. Лариса – финансовый директор. Ей всё равно, как устроен сервер. Ей важно, почему цифра в счёте выросла так, будто мы начали плавить алюминий в подвале. А я – руководитель IT-отдела. Это моя зона ответственности. Валерий Павлович, наш генеральный, повторял эту фразу при каждом удобном случае: «IT – это ваша зона ответственности, Тимофей. Я в ваших серверах не разбираюсь, но спрошу с вас».
– Разберусь, – сказал я.
– Разберитесь, – кивнула Лариса. – Потому что на следующем совещании я буду докладывать, куда уходит бюджет. И ваша строка выглядит так, будто мы открыли филиал на Луне.
Я вышел. По дороге к лифту достал телефон. Женя Козлов, мой инженер, написал двадцать минут назад: «Тимофей Андреич, глянь мониторинг. Странное что-то».
Женя – тихий парень, тридцать четыре года, из тех, кто замечает лишний процесс в системе раньше, чем тот успевает наделать дел. Если он пишет «странное» – значит, что-то на самом деле не так.
Я спустился в серверную. Женя сидел перед экраном и показывал пальцем на график. Загрузка процессоров. Линия шла почти горизонтально – на уровне девяноста семи процентов. Все двенадцать серверов.
– С каких пор? – спросил я.
– Я поднял логи за три месяца. Вот тут, в июне, было тридцать–сорок процентов. Норма. А потом началось.
В серверной было жарко. Не как обычно, когда чувствуешь лёгкий поток от кондиционеров, а по-настоящему – рубашка липла к спине. Кондиционеры работали на максимуме, но не справлялись.
И тут мимо прошёл Кирилл. Кирилл Ладыгин, двадцать семь лет, инженер. Пришёл к нам в марте двадцать пятого. Его взяли по звонку. Валерий Павлович лично привёл его в отдел и сказал: «Это сын моего старого друга. Толковый парень, помогите ему освоиться». Я кивнул. Что ещё делать, когда директор просит?
Кирилл прошёл мимо, на ходу сунул флешку в карман куртки. Я запомнил машинально – привычка. В серверной каждая флешка на учёте. Эта была его личная, чёрная, он носил её с собой постоянно.
– Тимофей Андреич, – сказал Женя, понизив голос. – Я не знаю, что грузит серверы. Но процессы странные. Называются невинно – system_update, temp_clean. Только они жрут по восемьдесят процентов каждый.
У меня похолодело в животе. Не от названия процессов. От того, что я начал догадываться.
***
Две недели я копал. Ночами, после рабочего дня, когда офис пустел и оставались только охранник на первом этаже да шум серверной за стеной.
Процессы, которые нашёл Женя, были замаскированы грамотно. Но я занимаюсь системным администрированием двадцать лет. Я видел всякое. И когда я наконец добрался до исходного кода скрипта, скрытого в каталоге /opt/service/.cache/, я сел на стул и минуту просто смотрел в монитор.
Майнинг. Криптовалюта. Кто-то развернул на наших двенадцати серверах полноценную ферму. Скрипт запускался каждый день в шесть вечера, когда основная нагрузка падала, и работал до шести утра. А по выходным – круглосуточно.
Я посчитал. Двенадцать серверов, каждый с четырьмя видеокартами, установленными якобы для работы с графикой. Эти карты я сам одобрил полгода назад – Кирилл написал обоснование, что они нужны для обработки видеопотока с камер наблюдения. Я подписал, потому что обоснование выглядело грамотно.
Видеокарты стоимостью по сто двадцать тысяч каждая. Сорок восемь штук. Почти шесть миллионов рублей. Оплаченные компанией. Работающие на чей-то кошелёк.
Но прямых доказательств, что это Кирилл, у меня не было. Скрипт мог поставить кто угодно с админским доступом. А админский доступ был у четырёх человек: у меня, у Жени, у Кирилла и у Олега Дёмина, который уволился ещё в апреле.
На следующий день Кирилл пришёл на утреннюю планёрку в отличном настроении. Мы сидели в переговорной – я, Женя, Кирилл и двое младших инженеров. Кирилл рассказывал, как провёл выходные.
– Слушайте, – он вдруг повернулся к Жене, – а правда, что у нас серверная перегревается? Я слышал, кондиционеры не вытягивают.
Женя посмотрел на меня. Я кивнул – ничего секретного.
– Да, нагрузка выросла, – сказал Женя.
Кирилл усмехнулся. И произнёс – при всех, глядя мне в глаза:
– Тимофей Андреич, может, пора серверную обновить? А то мы на прошлогодних мощностях работаем, а потом удивляемся, что всё тормозит и горит. Я же говорил ещё летом – нужно апгрейдить.
Я почувствовал, как сжались кулаки под столом. Он это серьёзно. Он сидит напротив меня и вслух говорит, что это я виноват. Что серверная устарела. Что я не обновляю оборудование.
– Разберёмся, – сказал я. Как сказал Ларисе неделю назад. Только на этот раз внутри уже было не удивление, а злость.
После планёрки Кирилл задержался в коридоре и разговаривал с менеджером из коммерческого отдела. Я слышал обрывок:
– Да Горин просто не тянет уже, между нами. Серверы дохнут, счета растут. Старая школа, что поделать.
Я прошёл мимо. Не остановился. Но запомнил.
В тот вечер я сидел дома. Нина поставила передо мной тарелку, я ел и не чувствовал вкуса. Дочь Соня что-то рассказывала про школу, а я думал о процессах, которые каждую ночь включаются на серверах моей компании.
– Ты чего молчишь? – спросила Нина.
– На работе проблемы.
Она не стала расспрашивать. За четырнадцать лет научилась понимать, когда мне нужно просто подумать.
А через два дня директор вызвал меня. Валерий Павлович сидел за своим огромным столом, в кабинете пахло кофе и кожей кресла. Он не предложил мне сесть.
– Тимофей, мне Лариса показала счета. Я не буду вникать в подробности. IT – это ваша зона ответственности. Разберитесь. Или я найду того, кто разберётся.
Вот оно. Фраза, которую я слышал не раз. Только теперь она звучала как угроза.
– Валерий Павлович, – начал я, – у меня есть основания полагать, что на серверах запущены посторонние процессы. Кто-то использует наше оборудование для–
– Разберитесь, – повторил он. – Мне не нужны теории. Мне нужен нормальный счёт за электричество.
Я вышел. В приёмной на диване сидел Кирилл и листал телефон. Он поднял глаза, улыбнулся.
– Что, Тимофей Андреич, шеф вызывал? Из-за счетов, наверное?
Я не ответил. Просто прошёл мимо.
***
Следующие три недели я работал как следователь. Тихо, методично, без лишних разговоров.
Женя помогал. Мы вдвоём сидели вечерами, когда офис пустел. Я анализировал код скриптов. Женя мониторил нагрузку и записывал всё – время запуска, время остановки, объёмы вычислений.
На девятый день я нашёл то, что искал. В теле скрипта, в конфигурационном файле, был прописан адрес криптокошелька. Длинная строка букв и цифр. Я скопировал её, открыл блокчейн-эксплорер и вбил адрес.
Кошелёк был активен. За восемь месяцев на него поступило криптовалюты на сумму, эквивалентную двум миллионам четырёмстам тысячам рублей по текущему курсу. Последняя транзакция – вчера.
Но мне нужно было доказать, что кошелёк принадлежит Кириллу. Блокчейн анонимен. Адрес сам по себе ничего не говорит.
И тогда я вспомнил про флешку. Чёрную, которую Кирилл носил в кармане. Он оставлял её в ноутбуке, когда уходил на обед. Я видел это трижды. Рабочий ноутбук, выданный компанией, с рабочим столом, который я имел полное право проверить как руководитель IT-отдела.
Я дождался обеда. Кирилл ушёл в кафе через дорогу. Его ноутбук стоял на столе, крышка закрыта, но не выключен. Флешка торчала из USB-порта.
Я открыл крышку. Ввёл административный пароль. Флешка определилась как съёмный диск. Я открыл её.
Папка «mining». Внутри – копии тех самых скриптов. Конфигурационные файлы. И файл wallet_backup.txt с тем самым адресом кошелька и seed-фразой.
Я сделал скриншоты. Скопировал файлы на свою флешку. Закрыл крышку ноутбука. Вышел из кабинета. Руки не дрожали, но сердце стучало так, будто я пробежал десять этажей.
В тот вечер я составил отчёт. Подробный, с таблицами, с графиками нагрузки, со скриншотами скриптов и кошелька. Двенадцать страниц. Каждая цифра подтверждена.
На следующее утро я пошёл к Валерию Павловичу.
Он выслушал меня молча. Я положил отчёт на стол. Он не стал его открывать. Просто посмотрел на обложку, потом на меня.
– Тимофей, – сказал он, – ты понимаешь, что говоришь?
– Понимаю.
– Кирилл – сын Павла Ладыгина. Мы с Пашей тридцать лет знакомы. Он попросил меня присмотреть за парнем.
– Валерий Павлович, этот парень за восемь месяцев выкачал из компании больше восьми миллионов рублей на электричество. Намайнил себе два с лишним миллиона. Три сервера–
– Какие три сервера?
Я замолчал. Он не знал. Три сервера сгорели на прошлой неделе – перегрев, не выдержали постоянной нагрузки. Я ещё не успел доложить, потому что собирал доказательства.
– Три сервера вышли из строя. Замена – миллион восемьсот тысяч. Из-за перегрева. Из-за того, что они работали на девяносто семи процентах загрузки круглые сутки.
Валерий Павлович снял очки. Протёр их. Надел обратно. Поёрзал в кресле.
– Я поговорю с Кириллом.
– Поговорите?
– Я сказал, что поговорю. Положи мне отчёт и иди работай.
Я положил отчёт. Вышел. И понял, что он ничего не сделает. Он позвонит Пашке Ладыгину, они обсудят, Кирилл тихо удалит скрипты, а счёт спишут на «технические проблемы». И всё. А я останусь виноватым – руководитель IT-отдела, при котором серверы горели и счета росли.
Три дня я ждал. Ничего не произошло. Кирилл ходил на работу как обычно, улыбался, шутил. Скрипты продолжали работать – я проверял каждый вечер.
На четвёртый день Женя подошёл ко мне.
– Тимофей Андреич, я посмотрел график за эту неделю. Нагрузка не упала. Вообще.
– Знаю.
– И ещё. Кирилл добавил два новых скрипта. С другими именами. Будто подстраховался.
Я сел за стол. Кирилл не просто не испугался – он расширился. Видимо, директор поговорил с ним мягко. Или не поговорил вовсе.
Руки лежали на столе. Пальцы стучали по столешнице. Не от нервов – от решения, которое уже созрело.
Через неделю – квартальное совещание. Лариса будет докладывать по бюджету. Коммерческий директор. Валерий Павлович. Все руководители.
И я буду.
***
За пять дней до совещания я сделал презентацию. Двадцать четыре слайда. Графики загрузки серверов по месяцам. Скриншоты скриптов с выделенными строками кода. Адрес криптокошелька. Баланс кошелька – два миллиона четыреста тысяч рублей. Динамика счёта за электричество: триста сорок тысяч в мае, пятьсот двадцать в июле, девятьсот в октябре, миллион триста шестьдесят в январе. Акт на списание трёх серверов – миллион восемьсот. Итоговый ущерб компании за восемь месяцев – почти десять миллионов рублей.
Нина заметила, что я не сплю. Я сидел на кухне в час ночи с ноутбуком, и она вышла в халате.
– Тим, что ты делаешь?
– Готовлю презентацию.
– В час ночи?
Я посмотрел на неё. Нина знала меня лучше, чем кто-либо. Она видела, что это не обычная рабочая задача.
– Я нашёл, кто ворует у компании, – сказал я. – Но директор не хочет ничего делать. Потому что вор – сын его друга.
Она села рядом.
– И что ты собираешься?
– Показать это на совещании. При всех.
Нина долго молчала. Я знал, о чём она думает. Ипотека. Сонина школа. Четырнадцать лет стажа, которые можно потерять за одну презентацию.
– Ты уверен? – спросила она.
– Я четырнадцать лет строил этот отдел. Я не буду молча смотреть, как мальчишка его разваливает, а директор закрывает глаза.
Она кивнула. Потом взяла мою руку и сжала. Крепко, как тогда, когда Соне делали операцию на аппендицит и мы сидели в коридоре больницы.
– Только не жалей потом, – сказала она. – Что бы ни случилось.
Следующие дни я проверял каждый слайд по три раза. Пересчитывал цифры. Сверял даты. Один раз нашёл ошибку в графике – перепутал июль и август – и переделал. Ни одной зацепки для сомнений быть не должно.
Женя знал, что я готовлю. Я не говорил ему напрямую, но он видел файл на моём рабочем столе.
– Тимофей Андреич, – сказал он в четверг, за два дня до совещания. – Если что, я подтвержу. Логи мониторинга у меня сохранены отдельно.
Я посмотрел на него. Женя рисковал. Не так, как я, но всё-таки.
– Спасибо, Жень.
Он пожал плечами и вернулся к своему монитору. Хороший мужик. Тихий, надёжный.
В пятницу, за день до совещания, я столкнулся с Кириллом у кофейного автомата. Он стоял с бумажным стаканчиком, листал телефон и насвистывал. Увидел меня – кивнул.
– Тимофей Андреич, завтра совещание. Мне приходить?
– Приходи, – сказал я. – Будет полезно.
Он улыбнулся. Спокойно, без тени беспокойства. Он не знал. Или был настолько уверен в защите Валерия Павловича, что ему было всё равно.
Я взял свой кофе. Горячий стаканчик жёг пальцы. Я не чувствовал.
В день совещания я надел свежую рубашку, побрился, взял ноутбук и флешку с презентацией. Обычное квартальное собрание – докладывают все отделы. Мой слот – после Ларисы. Двадцать минут на доклад по IT-инфраструктуре.
Конференц-зал на третьем этаже. Большой стол, проектор, экран на стене. За столом – Валерий Павлович во главе, Лариса справа, коммерческий директор Андрей Игоревич слева. Руководители отделов по обе стороны. И Кирилл – он сидел у стены, пришёл как представитель IT-отдела. Я не возражал.
Лариса доложила по финансам. Когда дошла до строки «электроэнергия», её голос стал жёстче.
– Рост расходов на электроэнергию – триста процентов за восемь месяцев. Основной потребитель – серверная. Это вопрос к IT.
Она посмотрела на меня. Все посмотрели на меня.
– Тимофей Андреевич, ваш доклад, – сказал Валерий Павлович.
Я встал. Подключил ноутбук к проектору. Открыл презентацию.
Первый слайд: «Анализ аномальной нагрузки серверной инфраструктуры. Октябрь 2025 – январь 2026».
– В июне двадцать пятого года, – начал я, – нагрузка серверов начала расти. К октябрю средняя загрузка процессоров достигла девяноста семи процентов при норме тридцать–сорок.
Следующий слайд. График. Красная линия, уходящая вверх.
– Я провёл аудит. На серверах обнаружены скрипты, замаскированные под системные процессы. При анализе кода установлено, что это программы для добычи криптовалюты.
Кирилл шевельнулся у стены. Я не смотрел на него. Я смотрел на экран.
– Скрипты запускались ежедневно с восемнадцати ноль-ноль до шести утра и круглосуточно по выходным. Использовались графические процессоры, установленные в серверы по заявке, одобренной в апреле двадцать пятого года.
Следующий слайд. Скриншот конфигурационного файла. Адрес кошелька выделен жёлтым.
– В конфигурации скриптов указан адрес криптокошелька. По данным блокчейн-эксплорера, на этот кошелёк поступило криптовалюты на два миллиона четыреста тысяч рублей.
В зале было тихо. Лариса подалась вперёд. Андрей Игоревич нахмурился. Валерий Павлович сидел неподвижно.
Следующий слайд. Скриншот содержимого флешки. Папка «mining». Файл wallet_backup.txt.
– Копии этих скриптов и резервная копия ключей доступа к кошельку обнаружены на USB-накопителе, подключённом к рабочему ноутбуку инженера IT-отдела Кирилла Ладыгина.
И тут я наконец посмотрел на Кирилла. Он побелел. Не покраснел – именно побелел, как бумага, которую Лариса показывала мне месяц назад. Рот приоткрыт, глаза неподвижные.
– Итоговый ущерб компании, – продолжил я. – Переплата за электроэнергию – восемь миллионов сто шестьдесят тысяч рублей. Три сервера вышли из строя из-за перегрева – замена обойдётся в миллион восемьсот тысяч. Итого – почти десять миллионов.
Я выключил проектор.
– У меня всё.
Тишина. Такая, какая бывает, когда в комнате много людей и никто не знает, что сказать.
Первой заговорила Лариса.
– Десять миллионов?
Я кивнул.
– Подождите, – Валерий Павлович поднял руку. Его лицо стало красным. Не от стыда – от злости. – Тимофей, мы это обсуждали. Я сказал, что разберусь.
– Вы сказали, что поговорите с ним, – ответил я. – Прошло четыре дня. После вашего разговора он добавил на серверы два новых скрипта.
Кирилл вскочил.
– Это неправда! Он лезет в мой ноутбук! Это вообще законно?
– Ноутбук рабочий, – сказал я. – Выдан компанией. Я имею право проверять оборудование IT-отдела. Это моя зона ответственности. Вы сами мне это говорили, Валерий Павлович.
Он замер. Его собственная фраза, произнесённая его собственным голосом, ударила его с экрана.
Андрей Игоревич, коммерческий, повернулся к директору.
– Валерий Павлович, вы знали об этом?
Молчание. Пять секунд. Десять.
– Я знал, что есть подозрения, – сказал Валерий Павлович. – Я собирался решить это в рабочем порядке.
– Десять миллионов – это рабочий порядок? – Лариса сняла очки и положила на стол. – Десять миллионов – это полиция, Валерий Павлович.
Кирилл посмотрел на директора. Потом на меня. Потом снова на директора. И молча вышел из зала. Дверь закрылась за ним с тихим щелчком.
Совещание продолжалось ещё час. Лариса потребовала провести внутренний аудит. Андрей Игоревич задавал вопросы про страховку серверов. Валерий Павлович сидел и молчал, только кивал, когда к нему обращались. Я отвечал на технические вопросы, показывал слайды, объяснял разницу между штатной нагрузкой и тем, что творилось на самом деле.
Когда всё закончилось, я собрал ноутбук и вышел. В коридоре у окна стоял Кирилл. Он никуда не уехал. Ждал. Увидел меня и шагнул навстречу.
– Тимофей Андреич, – голос тихий, без прежней развязности, – зачем вы это сделали? Я бы всё удалил. Можно было просто сказать мне.
– Я говорил директору. Он тебе передал. Ты после этого поставил два новых скрипта.
Кирилл отвёл взгляд. За окном шёл снег – крупный, медленный, февральский.
– Мне отец голову оторвёт, – сказал он.
Мне хотелось ответить: а мне кто вернёт восемь месяцев нервов и десять миллионов рублей? Но я промолчал. Не из жалости. Просто устал.
Я прошёл мимо. Он не окликнул.
Я стоял у проектора. Ноги гудели, будто я час простоял на бетоне. Ладони мокрые. Но спина – прямая. Я сделал это. Я стоял перед всеми и говорил правду, которую директор хотел спрятать.
После совещания Женя поймал меня в коридоре.
– Тимофей Андреич, – он говорил шёпотом, – вы же понимаете, что Валерий Павлович вам этого не простит?
– Понимаю.
– И всё равно?
Я пожал плечами. Что я мог ответить? Что четырнадцать лет работы должны что-то значить? Что я не мог молча наблюдать, как двадцатисемилетний парень разваливает то, что я строил, а директор его прикрывает?
Вечером дома Нина ни о чём не спрашивала. Она посмотрела на моё лицо и просто поставила чай. Я сидел на кухне, пил и смотрел в окно. Было чувство – не победы. Скорее, пустоты. Как после драки, в которой ты прав, но синяки всё равно болят.
Соня заглянула на кухню.
– Пап, ты в порядке?
– Да, Сонь. Нормально.
Она ушла. Я допил чай и открыл телефон. В рабочем чате тишина. Ни одного сообщения после совещания. Это было красноречивее любых слов.
***
Прошёл месяц.
Кирилла уволили на третий день после совещания. По собственному желанию – Валерий Павлович настоял, чтобы без скандала. Ладыгин-старший, говорят, звонил директору и кричал в трубку минут двадцать. Но Лариса уже подала служебную записку, и замять не получилось.
А через две недели вызвали меня. Валерий Павлович смотрел мимо, на стену за моим плечом.
– Тимофей, компания реструктуризирует IT-отдел. Твоя должность упраздняется. Вот соглашение – три оклада, хорошая характеристика.
Три оклада. За четырнадцать лет. Я взял бумагу, прочитал каждый пункт. Стандартная формулировка: «по соглашению сторон». Ни слова про совещание, ни слова про Кирилла, ни слова про десять миллионов. Чистая, красивая бумага, будто ничего не было.
– Это из-за совещания?
Он не ответил. Но и не отвёл взгляд. Мы оба знали.
– Я мог бы не подписывать, – сказал я. – Мог бы обратиться в трудовую инспекцию.
– Мог бы, – согласился Валерий Павлович. – Но не будешь. Потому что ты умный человек и понимаешь, что тебе лучше уйти с хорошей характеристикой, чем сидеть здесь ещё полгода и ждать, пока я найду формальный повод.
Я смотрел на него. Пятьдесят восемь лет, седые виски, тяжёлые руки на столе. Он построил эту компанию. Он был хорошим директором – до того момента, пока не решил, что дружба важнее десяти миллионов.
Я подписал.
Нина сказала: «Найдёшь другое место. Ты же лучший в своём деле». Соня обняла меня и сказала, что её отец – самый смелый человек в мире. Я улыбнулся, но внутри было тяжело. Четырнадцать лет. Каждый кабель в этой серверной – мой. Каждый сервер – собран при мне. А теперь я иду с коробкой мимо охранника, и пропуск пикает в последний раз.
Через три недели мне позвонили из «НетКора» – IT-компании, о которой я слышал, но не думал, что они знают обо мне. Оказалось, Лариса Маркова порекомендовала. Собеседование заняло сорок минут. Должность – руководитель инфраструктуры. Зарплата – на сорок процентов больше, чем в «ТехноЛогике».
Я вышел из офиса «НетКора» и сел в машину. Руки на руле. За лобовым стеклом – февральское небо, серое и низкое. Я должен был радоваться. Новая работа, лучшая зарплата. Но внутри сидел вопрос, и он не отпускал.
Женя написал вчера: «Тимофей Андреич, на вашу должность взяли парня двадцати девяти лет. Он пока разбирается. Серверную так и не починили полностью».
Валерий Павлович, говорят, на последнем совещании сказал: «Инцидент исчерпан. Вернёмся к работе». Про десять миллионов никто больше не вспоминал. Про Кирилла – тоже.
А я сижу вечером на кухне и думаю. Нина моет посуду, Соня делает уроки. Обычный вечер. Только на столе лежит новый пропуск – «НетКор», с моей фотографией и чужим логотипом.
Я сделал правильно? Или надо было промолчать, подчистить скрипты тихо, доложить наверх и забыть? Сохранил бы работу, стаж, свой отдел. Кирилл бы ушёл через полгода сам – наигрался бы. А я бы остался.
Но я не промолчал. Вывел на экран, при всех, с цифрами и доказательствами. И потерял место, которое строил четырнадцать лет.
Жена говорит – правильно. Дочь говорит – правильно. Женя говорит – правильно, но жалко.
А я до сих пор не знаю.
Как бы вы поступили на моём месте? Промолчали бы – или вывели вора на чистую воду, зная, что это будет стоить вам работы?