Czytaj książkę: «Исповедь Задрота 3. Финальный код»
Пролог
Абу-Даби, ноябрь 2023
Вероника сидела в зале ожидания и смотрела на экран ноутбука. Новостная лента была полна привычной суеты: очередные миллиарды, вливающиеся в стартапы, IPO-лотерея, споры о регулировании ИИ. Но одна заметка выделялась среди общего потока информационного шума.
«MindForge AI получает $750 миллионов инвестиций и становится единорогом».
Российская компания генеративного контента достигла оценки в два с половиной миллиарда долларов. На фотографии к новости – современный офисный комплекс в Подмосковье, весь в стекле и металле, с логотипом в виде стилизованного мозга.
Вероника медленно провела пальцем по тачпаду, листая статью. За десять лет она превратилась в призрак – смена документов, городов, лиц. Но главное – она научилась ждать. В программном ядре MindForge уже больше года лежали её инъекции кода, невидимые для любых проверок. Никто не искал угрозы внутри собственных генеративных моделей.
Она улыбнулась, закрывая ноутбук. За эти годы Евгений построил империю, семью, репутацию. А теперь пришло время всё это разрушить. Не просто обрушить компанию – лишить его души, заставить потерять тех, кого он любит. Пусть узнает, что значит остаться совершенно одному.
– Готова? – тихо спросила она девушку за соседним столиком.
Вера подняла голову от недопитого коктейля и кивнула. Её взгляд был затуманен – девять лет странствий и чужих имён оставили след. Она поднялась и послушно пошла за сестрой к выходу на посадку.
«Рейс EY 41, Абу-Даби – Москва».
Вероника посмотрела в сторону взлётной полосы, где в вечерних огнях блестел фюзеляж широкофюзеляжного Boeing. Впереди – Москва, декабрь. MindForge AI на пике славы, ничего не подозревая о том, что катастрофа уже прописана в их собственном коде.
Глава 1. Семейный завтрак
Я проснулся, как обычно, в половине седьмого. Будильник не нужен – внутренний ритм давно стал моим лучшим помощником. Мягкий свет за окном едва пробивался сквозь штору, отражаясь на стеклах спальни. Из панорамных окон вдалеке мерцал офисный комплекс, где рождалась наша мечта – MindForge.
Я встал с постели, потянулся и направился в ванную, где контрастный душ окончательно меня разбудил.
На улице стоял мороз, но дом был наполнён тёплым мягким светом. Я спустился вниз, к кухне – там уже пахло свежим кофе и хрустящим тостом.
Марина Петровна, как всегда, была на своём месте. Посмеялась, заметив моё замешательство – вот уже пять лет она живёт с нами, как часть семьи. Мы давно перестали быть просто нанимателями.
– Доброе утро, Евгений Николаевич, – Марина Петровна поставила передо мной чашку кофе. – Катя с утра была на пробежке, потом в душ. А Женечка ещё спит.
Я кивнул, отхлёбывая кофе. Катя всегда была жаворонком – в шесть утра уже на беговой дорожке в домашнем спортзале или на улице, если позволяет погода. За панорамными окнами я заметил силуэт Сергея возле калитки – дневной охранник заступил на смену. Ночной Павел уже ушёл в домик для персонала в глубине участка.
Охрана – это тоже из-за Вероники. Десять лет поисков, и ни одной зацепки. Словно она растворилась в цифровом тумане.
– Разбудите Женю через полчаса. У нас важная встреча.
Взял планшет, пролистал новости. MindForge снова в заголовках – на этот раз как пример успешного российского ИИ-стартапа. Фотография Кати на пресс-конференции заняла полэкрана. Она объясняла журналистам принципы этичного генеративного контента, выглядела уверенно, по-взрослому.
Двадцать три года. Когда я познакомился с ней, она была уличной девочкой, которая воровала еду в супермаркете. Теперь – Екатерина Евгеньевна Стрелецкая, моя приемная дочь. В последнее время она постоянно жалуется на усталость от интервью, презентаций, переговоров с инвесторами.
Женя всё ещё досыпал в своей комнате. Младший сын, настоящий, родной. Я никогда не должен забывать, за что люблю его – не за кровь, а за смелость идти по жизни по-своему.
Мои дети – мой якорь. Мой свет в этой буре.
В комнате послышались шаги – Катя появилась в кухне.
– Доброе утро, – сказала она, наливая себе зелёный чай.
Её голос был мягким, но в глазах читалась усталость, которую я безуспешно старался понять.
– Сегодня ужинаем вместе? – тихо спросила она, ставя чай.
– Обязательно. Надо поговорить.
Телефон внезапно зазвонил – Владилен. Его появление для меня – знак, что очередной день пройдёт под гнётом неопределённости.
Жизнь не бывает спокойной, пока прошлое бродит рядом…
Глава 2. Пресс-конференция
Катя стояла перед зеркалом в элегантном деловом костюме темно-синего цвета, поправляя невидимые складки. За годы она научилась выглядеть увереннее, чем чувствовала себя на самом деле. Пресс-конференция MindForge по поводу нового статуса единорога была назначена на одиннадцать утра в центральном офисе компании.
– Нервничаешь? – спросил Женя, заглядывая в её комнату.
– Немного, – призналась она. – Вопросы про этику ИИ всегда самые каверзные.
– Ты справишься. Ты всегда справляешься.
Катя улыбнулась брату. В семнадцать лет он иногда выглядел мудрее её.
Офисный комплекс MindForge встретил её привычным гулом. Сотрудники спешили по коридорам, в переговорных комнатах мелькали экраны с кодом и диаграммами. Конференц-зал уже был подготовлен: длинный стол с микрофонами, камеры, журналисты с блокнотами и диктофонами.
Катя заняла место в центре, рядом с техническим директором Игорем Семёновичем – опытным программистом, который работал с отцом ещё с самого начала. Справа от неё сидел финансовый директор.
– Добро пожаловать на пресс-конференцию MindForge AI, – начала Катя. – Сегодня мы хотим поделиться с вами результатами последнего раунда инвестиций и планами развития компании.
Руки тут же поднялись.
– Екатерина Евгеньевна, – обратился к ней журналист из «Ведомостей». – Как вы прокомментируете обвинения в том, что генеративный AI угрожает творческим профессиям?
– Мы рассматриваем ИИ как инструмент расширения человеческих возможностей, а не их замещения, – ответила Катя привычно. – Наша цель – создавать технологии, которые помогают людям быть более креативными.
В заднем ряду поднял руку молодой мужчина с блокнотом. Катя не сразу его заметила – он был не похож на остальных журналистов. Моложе, с внимательным взглядом и немного растрёпанными тёмными волосами.
– Алексей Морозов, «Деловой вторник», – представился он. – У меня вопрос о контроле качества контента. Как вы гарантируете, что ваши системы не будут создавать дезинформацию?
Катя почувствовала, как что-то дрогнуло в груди при звуке его голоса. Она старалась держаться профессионально.
– Отличный вопрос. У нас многоуровневая система проверки контента…
После конференции, когда журналисты разошлись, Алексей подошёл к ней.
– Извините за настойчивость, но мне бы хотелось задать ещё пару вопросов для материала. Может быть, за кофе?
Катя знала, что не должна. Отец всегда предупреждал о журналистах – они могут казаться дружелюбными, но ищут скандальную информацию. Но что-то в этом человеке было по-настоящему искренним.
– Хорошо, – согласилась она. – Но только пятнадцать минут.
Они спустились в кафе на первом этаже офисного комплекса. Алексей заказал эспрессо, Катя – латте.
– Вы очень молоды для такой должности, – заметил он.
– Это комплимент или подводка к каверзному вопросу?
– Искреннее удивление, – улыбнулся Алексей. – В вашем возрасте я работал в районной газете и писал заметки о субботниках.
– А теперь освещаете IT-индустрию?
– Пытаюсь. Если честно, все эти нейронные сети и генеративные модели – для меня пока тёмный лес. Но мне интересно, как технологии меняют общество.
Катя расслабилась. Он не пытался выудить из неё корпоративные секреты, а действительно хотел понять.
– Знаете, – сказала она, – главная проблема не в самих технологиях, а в том, как люди их используют. Можно создать прекрасный инструмент, но если он попадёт в неправильные руки…
– Как молоток. Можно построить дом, можно разбить голову.
– Точно! – Катя удивилась. – Откуда вы это знаете?
– Мой редактор любит эту метафору.
Пятнадцать минут растянулись на час. Они говорили о технологиях, об этике, о будущем человечества. Алексей оказался не только грамотным журналистом, но и интересным собеседником.
– Мне пора, – наконец сказала Катя, взглянув на часы.
– Конечно. Спасибо за интервью, – Алексей убрал блокнот. – И… простите за дерзость, но не хотели бы вы как-нибудь продолжить этот разговор? Не для статьи. Просто так.
Катя покраснела. Она давно не испытывала такого волнения.
– Я подумаю, – сказала она и поспешила к лифту.
По дороге домой она несколько раз поймала себя на том, что улыбается без причины. Алексей был совсем не похож на тех мужчин, с которыми она встречалась. Не из IT-сферы, не из богатой семьи. Обычный журналист с искренними глазами и умными вопросами.
Но она знала, что отец не одобрит. За десять лет он так и не научился доверять чужим людям. Особенно журналистам.
Вечером, за семейным ужином, отец спросил, как прошла пресс-конференция.
– Нормально, – ответила Катя. – Обычные вопросы про этику и безопасность ИИ.
– Кто-то из журналистов показался подозрительным?
– Нет, пап. Всё было как всегда.
Она не солгала. Алексей не показался ей подозрительным. Наоборот – он показался ей настоящим.
Глава 3. Сбой в системе
Мне нравилось приходить в офис рано утром, когда коридоры ещё пусты, а в переговорных комнатах не слышно голосов. В такие моменты компания казалась мне спящим городом – серверы гудели, как отопительные батареи в старой квартире, мониторы мерцали синеватым светом. Я прошёл к своему кабинету, попутно заглядывая в комнаты разработчиков. Пустые кружки из-под кофе, стикеры с заметками на мониторах, кроссовки под столами – всё это напоминало мне о людях, которые здесь работают. Простых парнях и девчонках, которые пишут код и получают за это зарплату.
Поднялся на четвёртый этаж. Через панорамные окна виднелся наш дом на холме. Я включил компьютер и погрузился в утреннюю рутину: отчёты, финансовые сводки, планы на день. Обычные дела обычного руководителя. Пробивает на зевоту.
В половине десятого в кабинет ворвался Женя. За ним следовал Максим Борисович Егоров – технический директор компании. Худощавый мужчина лет сорока, вечно в клетчатой рубашке и джинсах. Восемь лет назад он был простым фрилансером, брал небольшие заказы на биржах. Я нашёл его через объявление в интернете, когда искал программиста для первых проектов после потери Ани и переезда в Азию. Честный работник, никогда не подводил. За годы вырос до технического директора, хотя и остался тем же скромным парнем.
– Пап, у нас проблема, – сразу перешёл к делу Женя.
– Серьёзная проблема, – подтвердил Максим Борисович, кладя на стол планшет с графиками. – Наши генеративные модели дают сбои. Вчера создали серию изображений для рекламного агентства, а там…
– Что там? – нетерпеливо спросил я.
– Неуместный контент, – осторожно ответил Максим Борисович. – Ничего критичного, но клиент недоволен. А сегодня утром текстовая модель выдала пресс-релиз с фактическими ошибками. Пришлось всё переделывать.
Я пролистал скриншоты на планшете. Действительно – контент был некачественным, местами абсурдным. Но такое случалось и раньше.
– Может, просто случайность? Нейросети иногда дают сбои.
– Нет, – покачал головой Максим Борисович. – Слишком много совпадений. И главное – ошибки системные, не случайные. Словно кто-то намеренно портит алгоритмы.
Женя нетерпеливо кивнул:
– Мы с Максимом Борисовичем уже всё проанализировали. Нужно остановить продакшн-модели, провести полный аудит кода. Лучше потерять неделю, чем репутацию.
Я почувствовал, как напрягся. Неделя простоя – это миллионы убытков, недовольство инвесторов, вопросы акционеров.
– Женя, мы не можем себе этого позволить. У нас контракты, обязательства…
– А клиенты? – возмутился сын. – Мы обещаем им качественный продукт, а даём брак. Это будет нечестно!
– Нечестно – это красивое слово. У нас есть сотрудники, которым нужно платить зарплату. Инвесторы, которые ждут прибыль.
– Значит, деньги важнее качества?
– Без денег не будет ни качества, ни компании! – повысил голос я. – Ты думаешь, мы можем позволить себе идеальный мир, где все довольны и никто не торопится?
Максим Борисович осторожно поднял руку, пытаясь вмешаться. Он всегда был дипломатом, умел найти компромисс между мной и сыном:
– Евгений Николаевич, может, поступим иначе? Отключим самые проблемные модули, а остальные оставим под усиленным контролем.
– Хорошо, – согласился я. – Делайте как считаете нужным. Но молча и быстро.
Женя посмотрел на меня с разочарованием.
– Ты изменился, пап. Раньше ты думал о людях, а не только о прибыли.
– Я думаю о людях. О наших сотрудниках, о твоём будущем, о будущем Кати. Для этого нужны деньги.
Сын развернулся и направился к двери. На пороге остановился:
– А если из-за наших ошибок пострадают люди? Кто будет отвечать?
– Я буду отвечать. Как всегда отвечал.
Женя ушёл, хлопнув дверью. Максим Борисович собрал планшет и виновато посмотрел на меня:
– Евгений Николаевич, он же не со злости. Просто переживает за качество. И я его понимаю – эти сбои действительно не случайны. Кто-то мог внедрить вредоносный код.
– Кто? У нас лучшая система безопасности в отрасли.
– Не знаю. Но я буду копать. И постараюсь сделать так, чтобы и Женя был спокоен, и вы.
Когда технический директор ушёл, я остался один. За окном над лесом кружили вороны – чёрные точки на белом небе. Почему-то это показалось мне дурным знаком.
Зазвонил внутренний телефон.
– К вам Владилен Серафимович, – доложила секретарь.
– Пусть проходит.
Владилен вошёл с серьёзным лицом. Уже много лет он был моей правой рукой, моими глазами и ушами. Постарел, поседел, но взгляд остался прежним – внимательным, настороженным.
– Есть новости, – сказал он без предисловий. – И они тебе не понравятся.
– Говори.
– Женщина по описанию похожая на Веронику замечена в Москве. Три дня назад. В аэропорту Внуково.
Я почувствовал, как что-то сжалось в груди. Десять лет ожидания – и вот она снова здесь.
– Уверен?
– Почти. Наш человек в службе безопасности аэропорта показал фотографии с камер. Внешне похожа, возраст подходит. Но след потерян.
– Как потерян?
– Вышла из аэропорта и растворилась. Либо сменила внешность, либо использует чужие документы. Или…
– Или что?
– Или это не она, – пожал плечами Владилен. – Но если это она, то явно не для туризма.
Я встал и подошёл к окну. Дом на холме казался таким далёким и беззащитным.
– Что делаем?
– Усиливаю охрану. Ещё двух человек к дому, круглосуточное дежурство. Детям нужно быть осторожнее. Никаких одиночных поездок, никаких спонтанных планов.
– А компания?
– И здесь тоже. Дополнительная проверка персонала, мониторинг всех систем. Хотя…
– Что?
– Логика Вероники никогда не поддавалась объяснению до самого конца. Помнишь историю с близнецами? Кто мог предугадать такой поворот?
Я помнил. Слишком хорошо помнил.
– Сколько времени у нас есть?
– Понятия не имею. Может, она уже здесь месяц и наблюдает. А может, просто проездом была.
– Но ты не веришь в совпадения.
– Не верю, – покачал головой Владилен. – Особенно когда речь идёт о ней.
Он ушёл, оставив меня наедине с тревогой. Я снова посмотрел на дом за лесом. Пока мы в безопасности. Но надолго ли?
Сбои в системе MindForge вдруг показались мне не случайностью. Если Вероника действительно вернулась, она не станет атаковать в лоб. Слишком умна для этого. Она будет бить исподтишка, методично разрушая всё, что я построил.
Компанию. Семью. Будущее детей.
Я взял телефон и набрал номер Кати.
– Привет, пап, – её голос звучал беззаботно.
– Где ты?
– В городе, на встрече с журналистами. А что?
– Ничего особенного. Просто… будь осторожнее. И вечером приезжай домой пораньше.
– Хорошо. Ты в порядке?
– В порядке. Увидимся дома.
Я положил трубку и снова посмотрел в окно. Вороны исчезли. Но тревога осталась.
Глава 4. Под микроскопом
Женя сидел в серверной комнате уже четыре часа подряд. Экраны мониторов отражались в его усталых глазах, а клавиатура была горячей от непрерывной работы. Максим Борисович принёс ему уже третью чашку кофе.
– Что нашёл? – спросил технический директор, наклоняясь над плечом младшего программиста.
– Вот, смотри, – Женя ткнул пальцем в экран. – Эти строки кода появились в системе три месяца назад. Но в наших коммитах их нет. Более того, они интегрированы так глубоко, что изменения кажутся частью основной архитектуры.
Максим Борисович нахмурился. За десять лет работы в IT он видел разные типы атак, но такая изощрённость была редкостью.
– Кто мог получить доступ к основному репозиторию?
– Только мы с тобой, пап и ещё трое разработчиков из ядра команды. Но все проходили проверку службы безопасности.
Женя открыл другое окно с логами системы. Строчки кода мелькали на экране, как зелёные водопады из старых фильмов про хакеров.
– Максим Борисович, а что если это не внешняя атака? Что если код попал в систему изнутри, но очень давно? И спал, пока кто-то не активировал его удалённо?
Техдиректор присвистнул. Спящий код – классический приём опытных хакеров. Внедрить вредоносную программу в систему, но не активировать её годами, пока не понадобится.
– Покажи мне временные метки.
Женя переключился на другую вкладку. На экране появилась таблица с датами и временем.
– Первые инъекции – полтора года назад. Но активировались они только на прошлой неделе. И самое странное – активация произошла не изнутри сети компании, а извне.
– Откуда?
– Сигнал шёл через цепочку прокси-серверов. Я пока отследил только до Сингапура, дальше след обрывается.
Максим Борисович снял очки и протер их. В голове складывалась неприятная картина. Кто-то очень умный и терпеливый полтора года назад заложил мину замедленного действия в сердце MindForge, а теперь начал её взрывать.
– Сколько клиентов пострадало?
– Пока семь крупных заказчиков получили бракованный контент. Двое уже заморозили договоры до выяснения обстоятельств.
Женя отвернулся от экрана и посмотрел на Максима Борисовича.
– Понимаешь, что это значит? Кто-то знает нашу систему изнутри. Кто-то, кто имел доступ к коду полтора года назад.
– Или кто-то, кто сумел внедрить своего человека в команду разработки.
В этот момент дверь серверной открылась, и вошёл Евгений. Лицо отца было мрачным.
– Ну что, нашли виновника?
– Пап, это сложнее, чем мы думали, – Женя повернулся к отцу. – Кто-то заложил спящий код полтора года назад и активировал его только сейчас. Это профессиональная работа.
Евгений молча выслушал объяснения сына, изучил экраны с кодом. В IT он разбирался поверхностно, но масштаб проблемы понимал отлично.
– Сколько времени нужно, чтобы это исправить?
– Если работать круглосуточно, то неделю, – ответил Максим Борисович. – Но только если больше ловушек не обнаружится.
– А если они есть?
– Тогда месяц. Может, больше.
Евгений прислонился к стене. Месяц простоя – это крах компании. Инвесторы потребуют объяснений, клиенты уйдут к конкурентам, сотрудники начнут искать новую работу.
– Есть другой вариант? – спросил он.
Женя и Максим Борисович переглянулись.
– Можем отключить заражённые модули и работать в режиме ограниченной функциональности, – предложил техдиректор. – Клиенты получат урезанный продукт, но качественный.
– Как долго?
– Пока не вычистим весь вредоносный код.
Евгений задумался. Урезанный продукт – это удар по репутации, но не смертельный. Полный простой – это смерть компании.
– Делайте. И найдите того, кто это сделал.
Когда отец ушёл, Женя снова уткнулся в мониторы. Максим Борисович сел рядом на второе кресло.
– Женя, а что если твой отец прав насчёт прошлого? Что если эта Вероника действительно вернулась?
– Ты думаешь, она могла это сделать?
– Не знаю. Но полтора года назад – это как раз то время, когда мы активно нанимали новых людей. Рост компании, расширение штата. Кто-то мог проскочить через проверки.
Женя открыл базу данных сотрудников и начал фильтровать по дате приёма на работу. На экране появился список из двадцати трёх человек, принятых в период с января по июнь прошлого года.
– Максим Борисович, а если проверить, кто из них имел доступ к основному репозиторию?
– Хорошая идея. Но это займёт время.
– У нас есть время. Пока чистим код, параллельно ищем крота.
Максим Борисович кивнул и взялся за свой ноутбук. За окнами серверной комнаты уже смеркалось – рабочий день незаметно перетёк в вечер. Но они оба понимали: сегодня домой они не пойдут. Слишком много поставлено на карту.
Женя сделал глоток остывшего кофе и снова погрузился в код. Где-то в этих тысячах строк скрывался цифровой вирус, способный уничтожить всё, что строила их семья последние годы. И он его найдёт. Во что бы то ни стало.