– По телефону он сказал, чтобы я прислала ему свою фотографию.
– Наверно, для постоянного пропуска, у них ведь режимное здание, – глаза Артюхова масляно засверкали. – Прислала?
– Да.
– И-и?
– Потом он пригласил меня на встречу, в сауну.
– Так, хорошо. Для разговора о сотрудничестве? – невинно спросил Артюхов. Его пальцы усиленно задвигались по сигарете.
– Для, другого… – окончательно смутилась Катя.
– И ты, отказалась? – Артюхов наигранно изобразил удивление и в ту же секунду понял, что ее смущение, возможно, становится для него спасительной соломинкой.
Катя со вздохом кивнула.
– А зря, зря… И что бы ты потеряла? А так убойный получился бы репортаж: «Как меня изнасиловали в сауне»! Техникой для скрытой съемки мы бы тебя обеспечили.
– Но ведь это же позор! – воскликнула Катя, чувствуя, что ее надежда на публикацию повисает в воздухе.
– Ты, главное, сделай материал. А не хочешь огласки – ладно, публиковать не будем, но зачтем как публикацию. Продадим его лично герою материала Дериногину. И еще мы с тобой хорошо заработаем на этом, раскрутим бравого генерала. Уж он-то точно не нуждается в такой рекламе!
Катя вспыхнула:
– Я не проститутка, у меня жених есть!
– Нисколько не сомневаюсь в твоей порядочности, Катенька. Но даже очень хороший человек на девяносто процентов состоит из воды. Поэтому надо решаться. Ты же хочешь реализовать свой талант и быть полезной обществу?
– Да.
– Тогда смелее, вперед! Наши читатели еще как-то смогут прожить без секса, а вот без разговоров о нем – никогда! Звони Дериногину, соглашайся на его условия. – Стараясь сохранить непроницаемое лицо шулера, Артюхов пододвинул к ней служебный телефон. – У нас с тобой нет другого выбора. – Блефовать за свою многотрудную карьеру Артюхову приходилось не раз. Сегодня же, от скрываемого волнения, вызванного тонкими маневрами между КГБ и ЦРУ, у него покраснело лицо, он почувствовал, что блефует по-крупному.
– Нет, – упрямо тряхнула Катя белокурыми локонами.
– Ты, хорошо подумала? Ты понимаешь, чем это для тебя обернется? – Как можно сочувственнее проговорил Артюхов.
– Угу.
– Ну,… как знаешь, – он с облегчением развел руками, чуть не выронив занюханную сигарету. – Каждому кажется, что он не каждый. А получается, что каждому – свое, как писали когда-то на воротах… Выходит, газета остается без твоего материала, твой испытательный срок – без результата, а мы остаемся без тебя?
– Да? – беззащитно спросила Катя.
– Ты же видишь, я сделал для тебя все, что мог. А ты сделала сама для себя свой выбор. Скажу честно, мне было приятно работать с тобой, очень жаль, оформленные на тебя бумаги получишь у секретаря.
Когда Катя, оглушенная скорым и неожиданным приговором, вышла из кабинета, Артюхов облегченно вздохнул и вызвал к себе смазливую разбитную секретаршу. Возможно, впервые на своей памяти он обрадовался проявлению человеческой порядочности, которая позволила ему подвести Катю под необходимое ему увольнение.
5
Как принадлежащий к сетевому поколению, более приспособленному к жизни в цифровом обществе, Костян рано открыл для себя компьютер. Это было круто. Как будто он добился чего-то, к чему давно стремился. Комп стал давать ему всё или почти всё: осознание, что ты умнее многих других, ликующее ощущение собственной силы, вызов встречи с нерешаемой программерской задачей и эйфорию от найденного наконец-то решения. По этой стезе Костян шел обычным путем: поначалу резвился и наращивал силу на сетевых игрушках. Старый добрый «комбат» полюбился ему сразу и навсегда. Подрастая, Костян увлекся гораздо более адреналиновым занятием – свободным разгуливанием по Сети и вторжением в различные серверы, набитые важной и скучной информацией. Это тоже была игра, – поединок с администраторами, которые латали дыры в своих системах безопасности, а он уходил от них незамеченным. Костян не извлекал из этого никакой материальной выгоды, но получал пьянящее ощущение от творческого акта взлома, произведенного вдобавок, в условиях риска и опасности быть раскрытым. И получить за это реальный срок. Костян не задумывался над тем, кем он хочет быть. Он просто им стал – программистом.
Внешне Костян вырастал сухопарым и сутуловатым. Физическое развитие требовало движений, и у Костяна появилось еще одно рисковое увлечение – горный байк. Уж где-где, а в горном байке риск свернуть себе шею был ежесекундным, и Костяна это устраивало. Потом он ненадолго увлекся парапланом. Правда, вскоре параплан и все, что связано с самодеятельными полетами, а также со стрелковым спортом, запретили имперским указом. Дабы простые смертные не смели обозревать окрестности, им не принадлежащие. Да и несанкционированные стрелки властям тоже были ни к чему. После байка и параплана Костян всерьез занялся йогой. В ней его притягивал риск потери привычного состояния сознания, восторг тотального прыжка в пустоту, в бездну, в неизвестность, – без гарантии возврата. Или возврата, но уже не в своем, прежнем, уме. Но это того стоило, так как вплотную подводило Костяна к важному для него вопросу о том, имеет ли он какое-то отношение к бесконечности, или нет?..
Включенный Костяном большой стационарный монитор был готов к работе и только ждал команды. Но какой команды? Костян раздумывал. Возможно ли спасти Катю? До ее чипирования оставалось два дня. Что делать? Перед ним словно высилась глухая стена Империи, – ни пробить, ни обойти.
Из истории увольнения, простодушно рассказанной Катей, следовало, что Артюхов – чуткий и заботливый, а Дериногин – похотливый злодей, который явился камнем преткновения и причиной увольнения. Хотя, Костян не сомневался, что все они – одна шайка… Напрашивалось ещё одно предположение, совсем уже фантастическое. А может, сама Империя мстит ему за то, что он дважды проигнорировал ее приглашение? Ведь он даже не ответил вежливым отказом с благодарностями, как это принято, а просто удалил их письма, вместе с остальным мусорным спамом? Нет, это вряд ли. Не такой уж он знаменитый светила, чтобы окружать его подобными ходами.
Если бы сейчас он видел реальное решение спасти Катю, пусть даже ценой собственной жизни, он бы не задумывался. Но решения он не видел. Идти против Империи и ее порядков, – все равно что изменять ход планет. Собственная жизнь будет потеряна задолго до подступов к спасению Кати. Ясное понимание ситуации вызывало в нем переживание беспомощности, невозможности что-либо изменить и сделать. Но ничего не делать он не мог, – надо было как-то отреагировать, выплеснуть свой протест.
Что получилось? Катя попала в жернова между газетенкой и полицейским управлением. Значит, можно постебаться над этими двумя начальничками, известными со слов Кати, а лучше зло потроллить их в Сети и насолить им, насколько возможно. Это он может. Лучше сделать хоть что-то, пусть даже ничтожное, чем сидеть, сложа руки. Решив так, Костян уже не думал о собственной безопасности и возможных для себя последствиях. Будет что будет.
Обуреваемый драйвом протеста, не вникая в смысл и целесообразность своих действий, он начал действовать лихорадочно, импульсивно, на автопилоте профессиональных навыков.
Первое, что он сделал – нашел сайт той самой газетенки. Сайт оказался так себе, давно и убого сделанный, неуклюжий и старомодный. Видно, экономили на бюджете, и экономят до сих пор. Продвижение сайта и статистика посещений – ни о чем. А что у них с безопасностью? Так же убого? Для начала Костян применил программу определения топологии сайта. Ничего особенного, обычная корпоративная сеть, никаких побочных активных ответвлений. Затем, соблюдая меры предосторожности, Костян просканировал порт сайта. Опаньки! Порт газетенки оказался соединен с портом имперской почты горячей линии. Окрещенной в народе почтой стукачей. Это уже интересно! Что у них там за дела – это другой вопрос, но в таком случае, большой брат должен предоставлять газетенке, как своей периферийной системе нижнего уровня, какую-то степень защиты, с барского плеча своей сетевой службы.
Это обстоятельство не смутило Костяна, так как он был в курсе, что головные структуры, как правило, предоставляют своим удаленным подразделением сниженный уровень защиты. Костян решил прощупать газетенку дополнительно, с помощью сканера безопасности, предварительно замаскировав процесс сканирования под вид новостного трафика. Так и есть, – предоставленный газетенке режим обнаружения потенциальных угроз включал простой функциональный набор: ошибки в настройках текущей работы, иерархия прав доступа к папкам и файлам, шаблонный анализ сторонних подключений. Умным людям можно было брать газетенку практически голыми руками.
По уточняющему запросу Костяна, сканер выдал список уязвимостей теперь уже приговоренной системы. Ожидаемо, на первом месте узвимостей стояла брешь пользовательской переписки с внешними и внутренними абонентами. Не отвлекаясь на иные варианты, связанные с дебрями хлипких пакетных фильтров, с ресурсами обновления реестра памяти и так далее, Костян, с помощью программы-вынюхивателя, написанной когда-то им самим, подобрался к блоку почтовой переписки. Там он обнаружил два катиных письма Артюхову, с подготовленными к печати материалами. Автоответчик артюховской почты дважды откликался вежливым уведомлением о получении.
Что ж, это уже кое-что. Видимо, у Кати был временный код доступа в систему, с привилегиями пользователя низшего уровня. Ее пароль восстановить можно, но сейчас им не воспользуешься, так как наверняка он уже заблокирован. А вот артюховским автоответчиком заняться стоит. Костян ещё раз пустил вынюхивателя вперед, к учетной записи Артюхова, которая, естественно, оказалась запароленной. Костяну понадобилась программа-отмычка, опять же собственный самопис, на классических цепях Маркова и алгоритмах фонетического анализа. Подбирает простые пароли на раз-два. От редактора такой газетенки сложный пароль маловероятен. Немного ждем. Ну да, вот оно! Открываются электронные реквизиты Артюхова! Коды доступа, логины, пароли, даже электронная подпись. Вот он весь, с потрохами, делай с ним что хочешь.
Ладно, сейчас не время было вести анализ его виртуальной жизни, хотя это может быть кому-то интересно. У Костяна созрел другой план. Не заморачиваясь, он сделал точную копию сайта газетенки, со всеми ее текущими движениями и новостями. Для пущей убедительности, верифицировал копию с помощью корневого кода Артюхова, который оказался еще и администратором сайта. Хреновеньким, кстати сказать, администратором.
Придав таким образом сделанной копии самый что ни на есть натуральный вид, Костян разместил на главной странице сайта-копии новость-бомбу: «Срочно! Сегодня ночью произошел взрыв в центре города, в фешенебельной сауне „Семирамида“. Генерал полиции Дериногин и находившаяся рядом с ним жрица продажной любви ранены. Наш корреспондент ведет прямой репортаж с места происшествия. Подробности здесь.» Новость была подписана именем главного редактора Артюхова и скреплена его электронной подписью.
В окошке рассылки Костян обозначил адреса полицейского управления, имперской почты горячей линии и пары центральных новостных лент. Этого достаточно. Он уже хотел было нажать на отправку, но в последний момент остановился. В целом, получалось неплохо, но как-то легковесно. Стоило огород городить ради одной только троллинговой новости? Слишком легко хотят отделаться. Костян счел нужным прицепить сюда какой-нибудь довесок, что-нибудь зловредное, вирусное, троянское. Но что? Он призадумался. Ничего специально зловредного он не хранил в своей обширной базе софта, за ненадобностью, полагая, что настоящий хакер – не тот, кто обозлен на весь мир и держит камень за пазухой, а тот, кто, прежде всего, профессионал в своем деле. Хотя поводов обозлиться предостаточно.
После недолгих раздумий Костян вспомнил, как пару лет назад купил на хиреющем на окраине города черном радиорынке последнюю версию «комбата». Продавал дискету алкашного вида мужичок, потертый жизнью пенсионер. Перегаром от него не разило, речь была убедительной, взгляд собранный, проникающий, но не навязчивый. Он был похож на профессионала-технаря, недавно уволенного из секретного оборонного ящика. И распродающего теперь все, что успел вынести с родного предприятия за многие годы вдохновенного и честного труда.
Мужичок хвалил дискету за полную и качественную запись последней версии «комбата».
– А также, между прочим, – говорил он, таинственно понижая голос, – если вы, молодой человек, специалист, то найдете здесь много чего интересного. Дискета эта была когда-то не личной, а служебной. Возьмите, не пожалеете. – Он сопроводил свое высказывание сильным взглядом, со значительным выражением глаз, с особым упором на «не пожалеете». Как будто на что-то намекал, о чем-то недоговаривал.
Тогда Костяна интересовал только «комбат» и незавирусованность купленной с рук дискеты. Насчет чистоты дискеты мужичок сурово клялся, и Костян – по бросовой цене – взял. Дома он с предосторожностями перекачал «комбата» на комп, остальное просмотрел бегло, увидел два файла, в кодовых названиях которых присутствовало слово «вирус», и, не открывая эти файлы, забросил дискету в дальний ящик стола.
Сегодня пришло время заглянуть в эти файлы. Костян открыл первый из них. Ничего там не увидел. Файл был пуст, хотя какой-то объем памяти занимал. Второй тоже оказался пустым. Третьим после них значился файл, обозначенный как декодер. Костян открыл и его. Оказалось, что это громоздкий и какой-то туманный шлюзовичок, инструктирующий, как активировать вирусы внутри его программной оболочки. Костян так и сделал, – вложил в декодер первый вирус и активировал его. На экране появился текст вирусной программы. Странно, знаки, символы и команды были как будто знакомы, но не прочитывались, а обрывались на середине и пропадали. Не складывались в понятную фразу какого-либо известного Костяну языка программирования. Потом обрывки и концовки всплывали в других местах, посреди уже других символов и команд. В этих обрываниях не угадывалось никакой, даже смутной закономерности.
Костян вернулся из вируса к декодеру, просмотрел его программное тело, в заголовке обнаружил меню настроек, полистал их, увидел опции кодовых переходов, под грифами «с два на три» и «с три на два». Долго и с интересом бродил по этим опциям, с затаенным ожиданием подсказки… Хрясь! Костян вдруг просек! Вирусы, блин, написаны другой математикой! Не двоичным кодом, как везде, ноль-единица. А тут скрывался третий знак – пара! Неразложимая пара нольединица. В зависимости от того, как пара упаковывалась, нольединица или единицаноль, она давала векторный ключ. При попытке традиционно разложить пару на простые составляющие, векторная информация пропадала, смысловой текст исчезал! Оставалась рваная абракадабра. Ай да мужичок! Не соврал!
Используя опции декодера, Костян прочел оба вируса, оба оказались троянами. Первый из них был до жути простым, но, очевидно, крайне опасным именно своей простотой, – как лом, – из серии вандальных разрушителей всего и вся. Второй посложнее и поинтереснее – полиморфный троян внедрения и скрытого удаленного управления им. С высокоуровневым отслеживанием атакуемой системы и закладкой под нее неслабых угроз, вплоть до фатальных сценариев. Оба трояна, вероятно, предназначались для совместного применения. Работа вызывала уважение, правда, в нескольких местах Костян поправил входные и выходные коды, не в упрек безвестным авторам. Все-таки, работа была сделана больше двух лет назад, сейчас уже никто так себя не криптует. Прежнее криптование может не устоять перед контролирующей мощью новых экранирующих периметров. А само залегание троянов в атакуемой системе должно быть безупречным. В силу троичности своего кода, они становятся абсолютно невидимыми для двоичных дешифровщиков.
Костян прикрепил трояна внедрения к телу письма. Теперь, когда троян доберется до адресата, за счет скрытого управления он сделает все, что прикажет ему «папа». Костян заранее настроил трояна залечь по прибытии на дно, прикинуться табуреткой и ждать дальнейших указаний. Обнаружить резидентную копию такого вируса, находящегося в нулевом кольце инфицированного процессора, практически невозможно.
Костян отформатировал всю конструкцию как единое целое: анонс фейковой новости со ссылкой на фальшивый сайт, троян в теле новости и сам фальшивый сайт. В целом получался такой незатейливый, наскоро собранный «рыболовный крючок». Теперь оставалось продумать вход в Сеть и выход из нее. Неопытного хакера легко вычислить по месту входа в Сеть по журналам регистрации. Служба безопасности находит сетевой адрес, по нему определяет геолокацию, и – все. Опергруппа на месте производит дознание, не церемонясь с методами физического воздействия. Обычно так все и происходит. Опытные же хакеры входят в Сеть такими способами, о которых трудно даже представить. Многое зависит от изобретательности и технической подкованности хакера. Для заметания следов своего входа и выхода, в качестве только одной из примочек, Костян применил трассер кода, который создавал прерывистый, петляющий маршрут, – эдакую непредсказуемую походку виртуального диверсанта, с функцией автомаскировки под любую цифровую среду. Не бог весть что, но для приличия подстраховаться надо. Ну все, запускаем, поехали!..
Теперь надо ждать поклевки. Но спокойного ожидания не получалось. Только сейчас Костян почувствовал, что его бьет мелкая нервная дрожь. О чем-то думать и осмысливать потенциальную опасность происходящего не хотелось. Чтобы унять дрожь и отвлечься, он, несмотря на заполночный час, начал с упоением рубиться в «комбата». Чтобы усилить вовлеченность в игру, он надел на голову шлем дополненной реальности, внешне похожий на бейсболку. В её козырек были вмонтированы самонаводящиеся голографические проекторы, посылающие изображение прямо в сетчатку глаза. Для увеличения скорости игры Костян включил шлем на турбо-режим. В этом случае головные датчики шлема подключали сенсорные возможности его мозга к программным шлюзам игры. Получалась как бы общая нейросеть, с расширенными вариантами действий и увеличенной скоростью реакции. С другими настройками и выбором оружия Костян не стал заморачиваться, а просто стал играть с тем, что было под рукой, по умолчанию. Своему подразделению элитных коммандос Костян поставил срочную боевую задачу: спасти попавшую в заложницы журналистку.
6