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