Читать книгу Нексус - Рамез Наам - Страница 10
Лазейки
ОглавлениеПосле допроса, касавшегося технических аспектов, Кейд чувствовал себя расстроенным и подавленным. Эти два часа его здорово измотали. Они выясняли все подробности того, что создали они с Ранганом. Они замечали каждую попытку уклониться от ответа. Он каждый раз знали, когда он лжет или пытается что-то утаить. Ничего, он им еще покажет.
Он подписал бумаги, которые ему дали. Юрист УПВР изучил, что он подписал, затем поставил вторую подпись. Теперь сделка обрела реальность. Он будет служить им в роли шпиона, а в обмен никто не отправится в тюрьму. Он, Ранган и Илья останутся в науке до тех пор, пока будет продолжаться операция с его участием.
И только тогда они сообщили ему, что Уотс ушел.
Молодец Уотс, подумал Кейд.
Охранник провел его на крышу, где на вертолетной площадке стоял самолет с вертикальным взлетом и посадкой – его крылья вращались, двигатели были повернуты к небу, готовые выполнить вертикальный взлет. Двигатели уже завывали. Его поспешно провели к трапу, и в салоне он обнаружил Рангана, Илью и оперативника, который должен был отправиться с ними в Сан-Франциско, чтобы получить код нексуса.
– Пристегнитесь, – сквозь гул двигателей сказал опер, представившийся как Майерс. – Сзади есть туалет. А вот напитки разносить не будут.
Кейд пристегнулся. Снаружи двигатели начали гудеть, потом заревели. Все трое хранили молчание, пока самолет медленно поднимался в небо, открывая вид на город. Окно рядом с Кейдом было обращено на север. Когда крыло не закрывало вид, он мог видеть реку – Потомак? – а за ней мемориал Джорджа Вашингтона и Капитолий. Затем двигатели постепенно повернулись вперед и самолет набрал высоту и горизонтальную скорость. Город исчез вдали.
Кейд посмотрел на Илью. Она была погружена в свои мысли. Вид у нее был напряженный и взволнованный. Он не видел сидевшего за ними Рангана, но ощущал его чувство разочарования и неуверенности в себе. Он хотел с ними поговорить, но не хотел, чтобы Майерс их услышал.
Он вошел в систему и нашел то, что искал – встроенное приложение МодОС для чата. Он печатал слова на ментальной клавиатуре в своем сознании, а программа отсылала их Рангану и Илье.
[кейд] Не реагируйте. Нам нужно поговорить.
Он почувствовал их удивление – они забыли об этом приложении. Через секунду он увидел ответ Ильи.
[илья] Ну да, конечно.
[ранган] +1
[кейд] Включите кино или еще что-нибудь. Наденьте наушники. Ранган, ты первый.
Возможность поговорить принесла им облегчение. Он чувствовал, что настроение у всех немного поднялось. Ранган с чем-то возился перед собой. Примерно через минуту Илья набрала на располагавшемся на переднем кресле телевизионном экране документальный фильм о природе.
[кейд] Уотс ушел.
[илья] Мне сказали то же самое.
[кейд] Они предложили мне сделку. Отдай им нексус и сделай для них работу, и никто не отправится в тюрьму.
[илья] Ты ее заключил.
[кейд] Да.
[илья] Не могу поверить, что ты отдаешь им нексус-5.
[ранган] Или это, или пожизненное.
[кейд] И тюрьма для всех, кто участвовал в вечеринке.
[илья] Ты хоть представляешь, что они сделают с нексусом? Что сделает ЦРУ?
Он чувствовал ее гнев.
[кейд] Я знаю. Но они ведь все равно его получат. С жестких дисков из лаборатории или с резервных копий у меня или Рангана…
[ранган] Он прав. Когда они узнали, что он существует, стало уже слишком поздно.
[илья] Тогда у вас на руках будет полно крови.
[кейд] Возможно. Но есть одна вещь, которую мы можем сделать.
[ранган] Какая?
[кейд] Мы можем внедрить лазейку в их версию.
[ранган] Они уже знают о лазейке.
[кейд] Новую. Которую они не найдут.
[ранган] Как?
[кейд] Помнишь ту статью, которую мы читали в прошлом семестре? О решении Томпсона?
Он почувствовал, что Ранган сразу все понял.
[ранган] Пусть компайлер это внедрит… Это будет в двоичном коде, но не будет в исходнике…
[кейд] И пусть компайлер МодОС внедрит это в компайлер Нексуса…
[ранган] Ну да, ну да… У нас хватит времени? Сколько должен продлиться этот перелет?
[илья] Пять часов. Но я не понимаю, о чем речь.
Кейд объяснил.
ОС Нексус существовала в двух формах. Как считываемый человеком исходный код, который Кейд, Ранган или любой другой программист может читать, понимать и модифицировать. И как двоичный код, который могут понимать узлы нексуса – последовательности из единиц и нулей, с которыми человеку почти невозможно непосредственно работать.
Между исходным кодом и двоичными командами находился компайлер – программа, которая преобразовывала считываемый человеком исходный код в считываемый Нексусом двоичный код. Кейд и Ранган должны использовать компайлер, чтобы внедрить свои лазейки.
При каждом запуске компайлера он будет исследовать исходный код ОС Нексус на наличие их новых лазеек. Если их там нет, перед созданием двоичной версии компайлер их добавит. Единственное свидетельство наличия лазеек будет находиться в двоичной версии, которая для людей почти недоступна.
Наконец, они используют тот же самый прием на самом компайлере. Исходный код компайлера не будет содержать никаких логических схем, куда можно включить лазейки. Они будут существовать только в двоичном коде. Каждый раз, когда версия МодОС для рабочих станций будет рекомпилировать компайлер, она будет вводить логическую схему этого приема.
Кейду Ранган показался задумчивым и все еще беспокойным. Он думал о том, что будет, если его поймают. И все же пришел к решению.
[ранган] Ладно. Что за хрень! Давайте это сделаем.
Ранган и Кейд извлекли свои проектные среды и соединили их. Илья к ним тоже подключилась и ментально заглядывала им через плечо. Они продумали план и разделили задачи, превращая смутную идею в конкретный список того, что нужно сделать.
Завершив составление плана, они принялись за работу. Сначала она двигалась быстро. Лазейки они клонировали с предыдущих, меняя только пароли. Код в компайлере был концептуально простым. Но как только они начали кодировать, то столкнулись с ошибками, причем очень серьезными. Приходилось постоянно следить за временем. Минуты шли за минутой. Прошел час. Сбой компайлера задержал их на двадцать минут. Решение оказалось вполне тривиальным – когда удалось его найти. Прошел второй час. В одной из лазеек происходила утечка памяти. Как это могло быть? Они ведь скопировали код с той лазейки, которая уже существовала. Решение они нашли, но на поиски понадобилось уже больше времени. Прошел третий час.
После четырех часов работы лазейки работали, а компайлер Нексуса их добавлял. Ранган выставил затененный флажок, инструктируя компайлер повсюду распространять новый код как якобы не связанные между собой, безобидные схемы в двоичном коде, еще больше затрудняя воспроизведение того, что они сделали. После этого им нужно было изменить компайлер рабочей станции, чтобы добавить код лазейки в компайлер Нексуса. Этим занялся Ранган.
Кейд обратил внимание на второй этап. Он хотел получить возможность использовать лазейку, исключив, чтобы об этом знал тот, кто запускает ОС Нексус. Ему требовалась поддержка для скрытых процессов, и МодОС в определенной форме ею располагала. В теории все было просто, но на практике оставалось немало затруднений.
Он взял большие участки кода МодОС, которые никогда не использовались, и внедрил их в ОС Нексус. Лазейки должны соединить их со скрытой учетной записью суперпользователя. Это даст возможность выполнить большую часть того, чего он хочет. Для этой учетной записи загрузка будет отключена. Да. Но как скрыть использование памяти?
Черт! Он насторожил уши. Они заходили на посадку. Он выглянул из окна. Проклятье! Они находились в международном аэропорту Сан-Франциско, ближайшем к Калифорнийскому университету в Сан-Франциско. Сколько нужно времени, чтобы добраться от аэропорта до университета? Двадцать минут? Двадцать пять? Черт! Ранган свою часть закончил. Дело теперь за Кейдом.
Может ли он скрыть использование памяти? Он не видел, как это можно сделать. Придется оставить все как есть. Нет ли каких-то признаков, которые можно заметить? Думай, думай. Файлы регистрации. Все ли он предусмотрел? Трассировка сети? Тут следы нелегко спрятать. Приходится оставить их как есть.
Он снова выглянул в окно. Земля приближалась. Он вполголоса выругался, затем спохватился. Черт! Сохраняй спокойствие. Не нервничай. Отлично. Теперь нужно проверить произведенную модификацию ОС Нексус. У него есть время только на самые простые тесты. Подготовка… подготовка… готово. Он включил стресс-симулятор. Фатальный сбой? Пока нет. Утечка памяти? Явной нет. Можно ли использовать лазейки? Да. Может ли он скрыть процесс от самого себя?… Проверка… Проверка… Кажется, да. Выдержит ли это серьезную проверку? Он не имел понятия.
Колеса ударились о землю. Черт.
[кейд] Все еще работаю. Прикройте меня.
[ранган] Будет сделано.
Кейд вернулся к работе. Он сможет это сделать. Он сможет закончить вовремя.
Давление в салоне изменилось – открывалась дверь.
[илья] Поднимите головы. Хотя бы на минуту сосредоточьтесь на реальном мире.
Майерс встал.
– Отлично, все выходим и садимся в машину.
Кейд выглянул в окно. Рядом стоял черный внедорожник, возле него находился здоровенный тип в черном костюме. Черт. Он встал. Код манил его к себе, он помнил флажок, который нужно изменить. Проклятье, в каком же файле он был? Майерс шел к нему, пристально глядя в глаза. Кейд затаил дыхание. Неужели он знает? Сотрудник УПВР остановился.
– Вставайте, пора выходить. – Майерс жестом указал на проход между креслами и на дверь, которая находилась за Кейдом.
Кейд заморгал. Да, пора выходить. Из самолета. Он молча повернулся, вышел в проход и вслед за Ранганом спустился по трапу. Прямо за собой он ощущал присутствие Майерса. Он представил себе, как мясистая рука Майерса хватает его за плечо, представил, как сотрудник УПВР грозно вопрошает: «Вы пытались нас надуть, не так ли?»
Зацепившись, он едва не упал, Майерс подхватил его под руку.
– Осторожно, не споткнитесь, – сказал он.
Черт. О чем он только думает? Дыши. Ровно дыши. Он устроился на третьем ряду сидений. Майерс закрыл за ними дверь и сел на место стрелка.
[илья] Отлично. Мы тебя прикрываем.
Она тут же заговорила:
– Моя машина осталась в Симони-филд. Нельзя ли мне ее забрать?
– Агент Льюис может отвезти вас туда, когда мы закончим.
– Мне тоже нужно ездить, – сказал Ранган. – К тому же я, кажется, оставил ключ в сумке, в ангаре. Наверно, он все еще там… – И так далее и так далее.
Кейд сосредоточился на своей работе. Черт! Новая ОС Нексус в режиме стресс-симулятора рухнула через семь минут. Проклятье, проклятье, проклятье! Взгляни на трассировку стека. Что вызвало сбой? Он всего лишь реактивировал стандартный код МодОС. О, черт! Он закодировал прекращение сбора данных. Это как-то связано с файлами регистрации.
Ну конечно! Это был сбой при попытке доступа к файлу регистрации. Отлично. Но что же делать? Он вручную создал пустые файлы регистрации и снова запустил симулятор. Опять сбой.
Ладно. Пусть будут не пустые файлы регистрации, а файлы с поддельной записью.
Он выглянул в окно и понял, что зря это сделал. Они двигались по Приморской сквозной дороге, непосредственно вдоль берега, направляясь на север в Южный Сан-Франциско. Возможно, полпути уже пройдено. Сосредоточься, сосредоточься, сосредоточься.
Он скопировал случайную строку из каждого параллельного файла регистрации своего собственного Нексуса, скопировал их в нужные места и снова запустил симулятор. Черт, он все еще находился за той точкой, где рухнул. Кейд перемотал его, снова добавил файлы регистрации, ввел поддельные записи, запустил стресс-симулятор… Прошла секунда. Две. Три секунды. Десять секунд. Он не рухнул. Кейд понял, что все это время он сидел затаив дыхание. И сделал выдох.
Ранган и Илья говорили все громче и громче. Он что, шумел? Кейд снова выглянул в окно. Залив уже проехали. Это что, Потреро-хилл?[24] Черт, мы уже подъезжаем.
Стресс-симулятор продолжал работать. Нужно скопировать новый код в скрытый инъектор компайлера. Так, сделано. Чтобы его проверить, запустим компайлер с помощью инъектора. И посмотрим, остались ли прежними размеры файлов. Компилируй, компилируй. Черт, как же неприятно вот так ждать. Шоссе сделало поворот. Это СоМа – район к югу от главной улицы, Маркет-стрит. Черт, уже практически приехали.
Компилирование завершилось. Все идентично. Спасибо всевышнему за маленькое чудо. Кейд перебросил код Рангану, чтобы тот вставил его на один уровень выше в компайлер компайлера. Ранган занялся этим. Они выскочили на Дьюбос-авеню, затем свернули на Маркет-стрит. Они уже были в центре города, наверное, километрах в трех от лаборатории.
Чем теперь нужно заняться Кейду? Да, конечно, управлением исходником. Нужно его подделать. Он принялся за работу, убеждая систему управления исходным кодом, что эти изменения были здесь всегда.
Водитель свернул на 17-ю улицу, чтобы с запада подъехать к университету.
Отлично. Поддельные журналы изменений. Поддельные записи действий. Поддельные даты изменения файлов. Машина сделала поворот, затем еще один.
Ранган закончил работу, Кейд ее интегрировал. Теперь они находились на Парнассус-авеню, в нескольких кварталах от лаборатории. Впереди замигали огни.
Внедорожник сделал непонятный поворот и подъехал к заднему входу в лабораторию.
[ранган] Я загружу машину и задержу его, пока ты будешь копировать новые файлы. Годится?
Кейд кивнул. Черт! Это надо прекращать, сказал он себе.
Я ничего не упустил?
– Мы на месте, – сказал Майерс. – В здании объявлена пожарная тревога. У нас двадцать минут. – Он выскочил из машины и открыл перед ними дверь. Они находились возле служебного входа.
[кейд] Мне нужно еще раз все проверить. Продолжайте прикрывать.
Илья принялась болтать о лабораторном оборудовании, пожарной безопасности и времени реагирования пожарных. Ранган взял Кейда за руку и повел к двери. Он что-то упустил. Что?
Вот оно! Отдельное дерево исходного кода для МодОС. Изменения в компайлере МодОС должны находиться здесь. Нужно исправить имена файлов, записи действий, даты…
Освещение изменилось. Они находились в лифте. Ранган его направлял. Кажется, на лбу проступил пот? Кажется, Майерс на него смотрит? И другой опер, Льюис, – он тоже смотрит на Кейда?
Он сделал простейшее изменение из возможных. Он ввел в дерево исходного кода новый двоичный код МодОС как новейшую архивную версию трехмесячной давности.
Дверь лифта открылась. Теперь Кейд действительно вспотел.
Нужно скопировать новые файлы на сервер, как только Ранган его запустит, и достаточно быстро, чтобы обмануть опера. Затем он должен датировать задним числом изменения файлов на сервере.
Чтобы копирование шло как можно быстрее, нужно максимально увеличить пропускную способность. Он просмотрел приложения, работавшие у него в голове, и отключил все, которые были ему доступны. Кейд отключил средства разработки, отключил симулятор и стресс-тест, свои собственные регистрационные записи, отключил телесный интерфейс, который использовали «Дон Жуан» и «Питер Норт». Хватит ли этого?
Услышав звуковой сигнал, он переключил внимание на внешний мир. Майерс провел ключом доступа по двери их лаборатории, и она открылась. Гребаные федералы!
– Где находится машина?
– Там, в углу, – сказал Ранган. – Я только ее запущу, и мы сможем скопировать все данные.
– В этом нет необходимости, – ответил Майерс. – Мы просто заберем всю систему.
Кейд вытаращил глаза. Черт побери!
Ранган сохранил спокойствие.
– Вам ведь нужно все?
Майерс прищурился.
Кейд затаил дыхание.
– Все, – подтвердил Майерс.
– Тогда нужно ее включить, – сказал Ранган. – Нам нужно загрузить с лабораторного сервера последние результаты экспериментов и откачать данные с Симони-филд.
Майерс ответил ему мрачным взглядом.
Черт, подумал Кейд. Мы влипли.
Тут заговорила Илья, в ее голосе звучало напряжение – она прекрасно играла свою роль.
– Боже, Ранган, не будь таким угодливым!
– Черт возьми, Илья! – огрызнулся Ранган. – Я делаю это ради того, чтобы спасти от тюрьмы наших друзей!
– Да замолчите вы оба! – сказал Майерс. – У нас осталось семнадцать минут. Действуйте, Шанкари.
– Угу. – Ранган провел их к обесточенной рабочей станции, коснулся панели управления, и она пробудилась к жизни. Кейд встал рядом и взял со стола ручку, изо всех сил стараясь не суетиться.
Кейд искал сервер в своем сознании, пока по экрану пробегала последовательность загрузки. Давай… давай… давай… Карта передачи данных Нексуса, принтер для схем – все было на месте и мигало зеленым светом. Почему он не появляется? Где он? Где?
На экране появилось сообщение о входе в систему: «Добро пожаловать в МодОС. Введите регистрационные данные».
Вот оно. В его голове появилась информация по SanchezLab018. Он пробежал дерево папок. Вот. Копируем.
У Рангана первая попытка ввода пароля закончилась неудачей. Он покачал головой, снова ошибся и тихо выругался.
– Прошу прощения… я просто немного нервничаю.
[выполнено 10 процентов]
Майерс положил на плечо Рангану свою тяжелую руку.
– Не спешите, – сказал он. – И никаких фокусов. Думайте только о том, что сейчас делаете.
Кейд выполнил удаленный вход в машину, переключился на статус суперпользователя и подготовился к изменению дат и временных отметок файлов, когда копирование будет завершено.
[выполнено 25 процентов]
Ранган кивнул. Он снова набрал пароль и на этот раз вошел.
– Отлично, проверяю директорию лабораторных экспериментов. – Ранган принялся просматривать папки. Кейд прекрасно знал, что там были лишь самые последние данные.
[выполнено 40 процентов]
– Да, данные устарели, – солгал Ранган и ввел команды, позволяющие их перекопировать. – Сейчас все будет в порядке.
Лицо Майерса было похоже на маску.
– Осталось четырнадцать минут. А нам еще нужны пузырьки с нексусом, которые стоят у вас в холодильнике.
[выполнено 50 процентов]
Ранган кивнул.
– Хорошо. Копируем данные последнего вечера… – Он открыл новое окно, проделал крошечную дыру в межсетевом экране, чтобы соединиться с Симони-филд, и принялся копировать файлы регистрации.
[выполнено 60 процентов]
– Это займет не больше минуты-двух, – пояснил он.
Это заняло сто восемьдесят секунд.
[выполнено 80 процентов]
– А теперь копирую документацию, – сказал Ранган.
Майерс нахмурился, по его виду можно было догадаться, что он хочет что-то сказать.
– Боже, как ты стараешься облегчить им работу! – попыталась потянуть время Илья.
– Господи, Илья! – сказал Ранган. – Мы это уже проходили!
– Хватит! – сказал Майерс. – Выключайте это, Шанкари. Сейчас же.
Копирование было выполнено на 91 процент. Черт, черт, черт! Ведь будет ясно, что они пытались что-то изменить!
Ранган начал возражать, но Майерс поднял руку.
– Подождите! – сказал Майерс. Он поднес палец к правому уху, заткнул его и отвернулся в сторону, явно кого-то выслушивая.
Кейд затаил дыхание.
[выполнено 96 процентов]
[выполнено 98 процентов]
Он сделал выдох, нервно царапая ручкой по столу. Майерс недовольно посмотрел на него и отступил на полшага назад.
[выполнено 100 процентов] Кейд перешел к своему окну терминала, чтобы изменить даты и временные отметки файлов. Выполнена одна последовательность, вторая…
Майерс убрал руку от уха и окинул их взглядом.
– Я сказал выключить. Сейчас же.
Оставалась еще третья последовательность…
Ранган сглотнул, кивнул и выдал команду на отключение.
«Виндоуз» стала завершать работу. Изменение последней отметки времени… Кейд нажал ВВОД в ментальном окне терминала, команда стала выполняться. Пошло ее выполнение, выполнение, выполнение…
Команда выполнена.
Спустя долю секунды окно терминала замигало и исчезло. Сеанс прерван хостом. Мгновение спустя исчез виртуальный жесткий диск SanchezLab018. На экране появилось счастливое лицо, символизирующее выход из системы. Кейду хотелось закричать от радости. Но он этого не сделал.
– Унесите это в машину, – велел Майерс Льюису. Второй опер принялся отсоединять штекеры и собирать оборудование. – Теперь давайте заберем ваши запасы нексуса.
Спустя десять минут они вышли из здания. Дело было сделано. Майерс получил все. Ну, скажем, почти все.
Уоррен Беккер закончил чтение расшифровки всех трех технических брифингов по нексусу. Материал вызывал тяжелое чувство. Потенциал технологий принуждения был огромен. Рабство, проституция – все, что угодно. Он подумал о своих дочерях-подростках, о том, что видел «в поле», о тех ужасах, которые способны творить некоторые люди, и постарался выбросить это из головы.
Геополитические аспекты были не менее ужасны. Дистанционные убийства. Низложение политических противников. Все, что делают китайцы, только доступное по дешевке. Эту технологию нельзя выпускать на свободу.
Он продиктовал служебную записку, обозначив то, что они обнаружили, пометил ее грифом «СОВЕРШЕННО СЕКРЕТНО» и направил ключевым фигурам в УПВР, МВБ, ФБР, ЦРУ, госдепартамент и Пентагон.
После этого он открыл на своем терминале еще один файл и просмотрел его содержание. Президентский указ 594 – «Об уничтожении и недопущении создания неконтролируемых нечеловеческих интеллектов». Сценарий 7с – РОЕВОЙ ИНТЕЛЛЕКТ. Он долго смотрел на него. Можно ли использовать нексус для создания боргов? На допросе Ильяна Александер об этом говорила. Он продиктовал еще одну служебную записку, посвященную этой возможности, и отправил ее по инстанции в Белый дом. Это уже выходило за пределы его компетенции.
Он посмотрел на часы. 9 вечера, воскресенье. Клэр будет расстроена. Он собрал свои вещи и направился к двери. Свет погас, помещение автоматически за ним закрылось.
В кабинете Хольцмана горел свет. Беккер заглянул туда. Хольцман был на месте и работал со своим терминалом.
– Мартин, – сказал Беккер, – вы что-то задержались.
Хольцман коротко взглянул на него.
– То же самое я могу сказать и про вас, – ответил он. – Разве вам не пора уже быть дома с Клэр и девочками?
Беккер криво улыбнулся и слегка приподнял свой портфель.
– Я как раз туда направляюсь. Что у вас получается с уровнем риска для нексуса-5?
Хольцман пожал плечами.
– Если нексус-5 когда-нибудь вырвется на свободу, он распространится со скоростью лесного пожара. Постоянная интеграция означает, что для пожизненного эффекта пользователю понадобится всего одна доза. Со стороны поставщиков с этим невозможно бороться.
Беккер мрачно кивнул.
У нас не хватает средств, думал он, не хватает кадров. С каждым годом борьба становится все тяжелей.
– И потенциал злоупотреблений высок, – сказал Беккер.
– Это как раз не проблема, – ответил Хольцман.
– Пардон? – Беккер приподнял бровь.
Хольцман вздохнул.
– Проблема заключается в том, что польза от него очень велика. Люди найдут тысячу способов использовать что-нибудь этакое. Общение. Развлечения. Применения, связанные с душевным здоровьем. Образование. Потенциал здесь огромен. Спрос будет безудержным.
Конец ознакомительного фрагмента. Купить книгу
24
Жилой квартал в окрестностях Сан-Франциско.