Марина Соколова нервно постукивала пальцами по клавиатуре, вглядываясь в строки кода на экране. Конференц-зал на двадцать третьем этаже бизнес-центра "Меркурий" опустел час назад, но она не спешила уходить. В окнах отражались огни ночной Москвы, а на столе остывала третья чашка кофе.
"Это просто невозможно", — пробормотала она, проверяя логи в четвертый раз. Система пакетной обработки, над которой она работала последние три недели, снова дала сбой при тестировании. И снова в одном и том же месте, хотя Марина была уверена, что исправила ошибку.
Телефон завибрировал — сообщение от Андрея Васильева, руководителя IT-отдела: "Как продвигается? Финансовый директор ждет демонстрацию в пятницу".
Марина вздохнула. До пятницы оставалось два дня, а ее API для пакетной обработки финансовых данных работал как капризная примадонна — идеально на тестовых данных и катастрофически на реальных.
— Засиделась, трудоголик? — раздался голос от двери.
Марина вздрогнула и обернулась. В дверях стоял Виктор Зорин, системный администратор с пятнадцатилетним стажем в компании "Финансовые Технологии". Его полноватая фигура и добродушная улыбка всегда вызывали у коллег доверие, но Марина, работавшая в компании всего четыре месяца, чувствовала в нем какую-то фальшь.
— Отлаживаю систему, — коротко ответила она. — Странные сбои при интеграции с основной базой.
Виктор подошел ближе, чуть наклонившись над ее ноутбуком.
— Новые технологии, новые проблемы, — произнес он с легкой усмешкой. — Может, не стоит изобретать велосипед? Старая система обработки работает уже восемь лет без сбоев.
— Которую обслуживаешь ты? — Марина подняла бровь. — Но ручная обработка этих объемов данных уже неэффективна. Моя система автоматизирует все процессы и ускорит работу в десять раз.
Виктор выпрямился, и его улыбка стала натянутой.
— И сократит штат отдела обработки на треть. Пятнадцать человек, у которых семьи, дети, кредиты.
— Это решение руководства, не мое, — пожала плечами Марина.
— Конечно, — кивнул Виктор. — Ты просто делаешь свою работу. Как и я.
Когда он ушел, Марина еще долго смотрела на дверь. Что-то в его тоне заставило ее почувствовать холодок по спине.
***
На следующее утро, придя в офис раньше обычного, Марина обнаружила, что ее рабочая станция была перезагружена, а нек��торые конфигурационные файлы изменены. Формально это не было нарушением — Виктор как системный администратор имел право на технические работы. Но чутье подсказывало ей, что это не случайность.
— Доброе утро, Марина Алексеевна, — раздался мелодичный голос Ирины Крыловой, финансового директора. Высокая блондинка в безупречном костюме цвета слоновой кости остановилась у ее стола. — Как продвигается наш проект?
— Доброе утро, Ирина Дмитриевна. Были некоторые технические сложности, но к пятнице все будет готово, — Марина старалась звучать уверенно.
— Отлично, — глаза Ирины блеснули. — Этот проект имеет стратегическое значение. После его внедрения мы сможем привлечь нового крупного инвестора.
Когда Ирина ушла, к столу Марины подоше�� Андрей.
— Я слышал, у тебя проблемы с интеграцией? — спросил он, небрежно опираясь на перегородку.
— Справлюсь, — коротко ответила Марина. — Но мне кажется странным, что сбои происходят только при определенных условиях. Будто кто-то намеренно создает помехи.
Андрей нахмурился:
— Ты на кого-то конкретного намекаешь?
— Пока нет, — Марина внимательно посмотрела на своего начальника. — Но я выясню.
После обеда она решила изменить стратегию и создала фальшивую версию своего кода, с очевидной ошибкой, а настоящую перенесла на зашифрованный внешний носитель. Затем добавила скрытый модуль, регистрирующий все обращения к файлам проекта.
Когда в семь вечера офис опустел, Марина притворилась, что уходит, но вместо этого поднялась в комнату отдыха на другом этаже и стала ждать. Через час ее ноутбук, подключенный к сети, зафиксировал вход в систему. Кто-то просматривал ее код.
Вернувшись через служебную лестницу, она тихо подошла к своему рабочему месту и увидела Виктора, сосредоточенно изучающего ее код на экране.
— Ищешь что-то конкретное? — спокойно спросила Марина, включая свет.
Виктор вздрогнул, но быстро взял себя в руки.
— Плановая проверка безопасности, — ответил он с деланной уверенностью. — После участившихся кибератак мы проверяем все новые программные модули.
— В нерабочее время? Без уведомления разработчика? — Марина скрестила руки на груди. — Признайся, Виктор, ты саботируешь мой проект.
Виктор молчал несколько секунд, затем его плечи поникли.
— Ты не понимаешь, что поставлено на карту, — произнес он тихо. — Это не просто автоматизация. Ты создаешь систему, которая изменит всю структуру компании.
— И это плохо?
— Это катастрофа, если система окажется �� неправильных руках, — Виктор огляделся и понизил голос. — Послушай, я действительно вносил небольшие помехи в твой код. Но только чтобы выиграть время и разобраться, что происходит.
Марина недоверчиво покачала головой:
— Разобраться в чем?
— В финансовых потоках, — Виктор вытащил флешку и протянул ей. — Посмотри эти данные. Я их обнаружил случайно, когда настраивал резервное копирование для финансового отдела.
Марина колебалась мгновение, затем взяла флешку и подключила к своему компьютеру. На экране появились таблицы транзакций за последние шесть месяцев.
— Я не вижу ничего необычного, — сказала она после беглого просмотра.
— Теперь запусти свой алгоритм кластеризации, — предложил Виктор. — Тот, который ты разработала для ��ыявления аномалий.
Марина с подозрением посмотрела на него:
— Откуда ты знаешь о моем алгоритме?
— Я же системный администратор, — пожал плечами Виктор. — К тому же, у тебя репутация одного из лучших специалистов по анализу данных. Тебя ведь не случайно пригласили в компанию.
Марина запустила свой алгоритм, и через несколько минут на экране появилась визуализация данных, где явно выделялись несколько кластеров аномальных транзакций.
— Видишь? — Виктор указал на один из кластеров. — Эти транзакции проводятся ежемесячно через разные счета, но в итоге деньги возвращаются к одному бенефициару. И суммы каждый раз увеличиваются.
Марина чувствовала, как ее сердце начинает биться быстрее.
— Кто бенефициар?
— Офшорная компания, связанная с нашим IT-директором и финансовым директором, — Виктор открыл еще один файл. — Посмотри на даты основания этой компании и даты начала странных транзакций.
Марина просмотрела документы и почувствовала, как кровь отливает от лица. Все совпадало. Но самое шокирующее было в другом — проектное задание для ее системы было составлено таким образом, чтобы автоматизировать и скрыть эти махинации.
— Они используют мою работу для легализации своих схем, — прошептала она.
— Именно, — кивнул Виктор. — А когда система заработает в полную силу, объемы вырастут в десятки раз.
— Почему ты мне это показываешь? — Марина пристально посмотрела на него. — Разве ты не боишься потерять работу из-за моей системы?
Виктор горько усмехнулся:
— Конечно боюсь. Но я еще больше боюсь стать соучастником мошенничества такого масштаба. К тому же, я не единственный, кто заметил странности. Служба безопасности уже начала внутреннее расследование.
Марина встала и начала ходить по комнате, обдумывая ситуацию.
— Мне нужно изменить код, — наконец сказала она. — Внести в него функцию, которая будет выявлять и блокировать такие схемы, а не способствовать им.
— У тебя меньше двух дней, — напомнил Виктор. — И они ждут совсем другого результата.
— Значит, им придется разочароваться, — в глазах Марины появился стальной блеск.
***
Следующие тридцать шесть часов превратились в марафон кодирования. Марина переписывала ключевые алгоритмы, добавляя скрытые проверки и функции аудита, которые сдел��ли бы мошеннические схемы невозможными. Виктор помогал ей, обеспечивая техническую поддержку и отвлекая внимание Андрея правдоподобными историями о технических проблемах.
Утром пятницы, за час до презентации, Марина получила сообщение от Ирины с просьбой о встрече в конференц-зале для "предварительного обсуждения".
— Это ловушка, — предупредил Виктор. — Они хотят проверить систему до официальной презентации.
— Я знаю, — кивнула Марина. — Но у меня есть план.
Когда она вошла в конференц-зал, там ее ждали Ирина и Андрей. Оба выглядели напряженными, несмотря на дружелюбные улыбки.
— Марина, мы так рады, что ты справилась со всеми сложностями, — начала Ирина, указывая на кресло рядом с собой. — Андрей рассказал мне о технических про��лемах.
— Да, были определенные трудности, — спокойно ответила Марина, открывая ноутбук. — Но сейчас система полностью функциональна.
— Замечательно, — Андрей наклонился вперед. — Может, покажешь нам, как она обрабатывает партию транзакций из тестового набора?
Марина улыбнулась:
— Конечно. Я даже подготовила специальную демонстрацию.
Она запустила систему и загрузила набор данных. На экране появились графики и таблицы, показывающие процесс обработки в реальном времени.
— Как видите, система анализирует каждую транзакцию и группирует их по определенным паттернам, — объясняла Марина, наблюдая за реакцией своих начальников.
Ирина и Андрей обменялись довольными взглядами, когда система успешно обработала данные без каких-либо предупреждений.
— А теперь давайте проверим на реальных данных за последний месяц, — предложил Андрей, передавая ей флешку.
Марина подключила носитель и запустила обработку. Через несколько минут система остановилась и выдала предупреждение: "Обнаружены аномальные транзакции. Возможно мошенничество. Требуется дополнительная проверка".
Лицо Андрея исказилось от гнева:
— Что это значит? Система должна обрабатывать эти транзакции без предупреждений!
— Должна? — Марина подняла бровь. — По моему техническому заданию, система должна выявлять аномалии и потенциальные нарушения. Что она и сделала.
Ирина побледнела:
— Это какая-то ошибка. Отключи эту функцию.
— Не могу, — покачала головой Марина. — Это ключевая функция безопа��ности. К тому же, копия этих результатов уже отправлена в службу безопасности компании и в финансовый мониторинг.
В этот момент дверь открылась, и в конференц-зал вошли трое мужчин в строгих костюмах.
— Андрей Васильев и Ирина Крылова? — спросил один из них, показывая удостоверение. — Служба экономической безопасности. У нас есть вопросы относительно некоторых финансовых операций вашей компании.
Марина встала:
— А у меня есть все ответы и доказательства.
***
Три месяца спустя Марина сидела в том же конференц-зале, но теперь в качестве руководителя нового отдела аналитики и безопасности данных. Рядом с ней был Виктор, получивший должность заместителя.
— Кто бы мог подумать, что мы будем работать в одной команде, — улыбнулся он, глядя на московский пейзаж за окном.
— Жизнь полна сюрпризов, — согласилась Марина. — Как и данные. Главное — уметь видеть настоящие паттерны среди шума.
— И различать настоящих друзей среди врагов, — добавил Виктор.
Марина кивнула, возвращаясь к экрану, где ее усовершенствованная система пакетной обработки теперь защищала компанию от внешних и внутренних угроз. Код, который должен был стать инструментом мошенничества, превратился в щит справедливости. Иногда предательство становится началом чего-то значительно более важного.