↓ Содержание ↓
↑ Свернуть ↑
|
Мессенджер в углу моргнул зелёным цветом. Самопальный, как и половина программ на этом компьютере. Передающий сообщения, зашифрованные случайным ключом на случайный порт. Как такое возможно? Одинаково настроенные генераторы псевдослучайных последовательностей. Своей для каждого абонента. Работает, разумеется, через прокси(1). Свой для каждого абонента. Паранойя? Может быть. Но создаёт некоторую видимость защищённости.
«К тебе клиентка», — пришло сообщение от Фила.
Не люблю клиенток. Что думает заказчик, послал бабу, она улыбнётся и получит скидку? Но хороших заказов давно не было, и от скуки я начинал творить всякую чушь.
«Давай, перекрёсток Южной Мейн-стрит и Западной четвёртой, завтра в одиннадцать», — я ткнул в случайную точку на карте.
«Принято. Женщина, белая, около тридцати лет, худая, лицо вытянутое, подбородок заострённый. Волосы русые, собраны в хвост. Зовут Сара. Синие джинсы, чёрная футболка, лифчик не носит».
«Хорошо, буду заглядывать всем женщинам под футболки, носят они бельё или нет».
«Ты думаешь, я успел заглянуть? Это и так видно. Как тебя назвать?»
«Божие-Воздаяние Мортон».
«Ты же знаешь, я не переношу твой юмор».
Это не быдло шуткой. Или не совсем шуткой. Я действительно не любил похожие на собачьи клички односложные имена, так что для пары встреч псевдоним не казался совсем неподходящим.
«Нормальное пуританское имя. Хорошо, тогда Фитцпатрик»
«Это фамилия(2). Просто Патрик».
«Принято. Фамилия — Просто, имя — Патрик».
«Всё, больше ни одного клиента от меня не получишь».
«Ладно, ладно, буду Патрик. Просто Патрик».
«До связи», — и индикатор соединения погас.
Мы были старыми приятелями. Если это можно так назвать — проживая в одном городе, последний раз виделись года три назад. И вряд ли увидимся снова, встав на этот путь: теперь только короткие сообщения и пересылка гонораров на банковский счёт.
* * *
На встречу я прибыл за час до назначенного времени. Потому что если кто-то решит прийти пораньше, то явится за полчаса, дольше торчать нет смысла. Вышел из машины, прошёлся. Никаких садовников, мусорщиков или мойщиков витрин. Люди как люди, идут по своим делам. Сел в машину, просканировал эфир. Чисто. Сделал круг, остановился в другом месте.
Поток людей. Хвосты нынче не в моде. Взгляд сползает на груди, исключительно для проверки, подходит ли объект под описание.
Подъехал подозрительный фургон. Выгрузил коробку, уехал. Чёртова паранойя! Спал бы да спал лишний час. Или доверил бы Филу принять заказ и через него же вернул бы результаты. Пусть, увеличив комиссионные. Но нет, «никто лишний не должен знать о моих делах». Вот и сиди как дурак, наблюдай, сканируй эфир.
Её я заметил сразу. Слишком целеустремлённая. Выделяющаяся из массы. Кто же так ходит? В эфире чисто. Остановилась на перекрёстке и стала вглядываться в толпу. Я подошёл, не фокусируя на ней взгляд.
— Привет, Сара! Ты сегодня очаровательна! — Хотя, честно сказать, она и до «симпатичной» немного не дотягивала.
— А? Что? — Она уставилась на меня.
Неожиданно? Не вычислила, в лицо не знает, скорее всего, не профессионалка. Вряд ли возможно столь естественно сыграть удивление.
— Не согласишься со мной пообедать?
— Извини, сейчас я немного… А ты Патрик?
— Он самый.
— Мне нужна информация…
— Стоп, стоп, — выставил перед собой ладонь, — сейчас мы найдём постамент и ты оттуда громко и ясно продекламируешь свои требования.
— Ой, я думала… Где есть место получше?
— Какую кухню предпочитаешь, японскую или средиземноморскую? Поблизости два ресторана. Мне всё равно — и там и там рыба.
Я боялся, она так и пойдёт, почти строевым шагом. Нет, она умела ходить нормально. А под футболкой, кажется, действительно ничего не было.
— Теперь рассказывай, — предложил я, когда принесли заказ.
— «Кибердайн Системс». Мне нужна информация об их исследованиях в области искусственного интеллекта. И, возможно, у них есть артефакты…
— Инопланетные или из Атлантиды?
— Нет, из будущего, — она, кажется, не заметила иронии.
— Почему все предпочитают сложные объяснения простым? Бог создал вселенную, но кто тогда создал Бога, который сложнее вселенной? Не веришь в гениальность учёного, ведущего исследования в «Кибердайне», но веришь в гениальность другого, создавшего машину времени.
— Я просто знаю, что она существует.
Мне не понравился её фанатизм. Конечно, она имела право верить во всё, что угодно, но фанатикам не объяснишь, что если чему-то нет доказательств, то этого и не существует. А оставшиеся недовольными клиенты мне не нужны. Встречался мне такой, уверенный в том, что «правительство что-то скрывает».
Несколько секунд я колебался. С другой стороны, дело казалось действительно интересным.
— Пожалуй, я не возьмусь за заказ. Ты точно знаешь, что у них есть, а когда это не найдётся — начнёшь ныть и говорить, что плохо искал.
— Подожди! Все говорят, что ты лучший, — она ухватила меня за запястье, как будто я собирался в ту же секунду вскочить и убежать. — Я поверю всему, что ты раскопаешь.
— Деяния нескольких незнакомых между собой людей приписываются некому легендарному персонажу. Не стоит преувеличивать, — я пошевелил рукой, она удивлённо посмотрела на неё и разжала пальцы.
— Ты просто называешь себя разными именами. Но все они немного необычны или не слишком распространённые.
— Странная теория, — я пожал плечами, но взял прокол на заметку.
Сара, прекратив жевать, ожидала моего решения. Я же наоборот, наслаждался вкусом карпа, запечённого с орехами, зёрнами граната и прочими ингредиентами, добавляемыми исключительно для поднятия цены. Вопрос следовало хорошенько обдумать.
Нет, конкуренты «Кибердайна» такое чучело не прислали бы. Кто она? Арабская террористка? Русская? Впрочем, разве мне не плевать на Америку? Подумаешь, русские наклепают нового оружия и начнут мировую войну.
— Хорошо. Надеюсь, недопонимания между нами не будет. Условия знаешь? Задаток сейчас, я оцениваю сложность и называю настоящую цену.
— Да, он с собой, будешь пересчитывать?
— Разумеется. Пересчитаю, посвечу ультрафиолетом и сверю номера серий с реестром выпущенных банкнот. Но не здесь же. Если что не так, ты меня больше не увидишь. И черкни номер телефона. В следующий четверг в это же время будет удобно? Вот и отлично.
* * *
— ¡Gracias, señorita! Fajita se ve apetitosa, y tú eres igual de bueno(3), — дежурно подкатил я. Мне нравились мексиканские заведения. Попробуй сказать подобное белой официантке, и гадостей в ответ наслушаешься точно.
— ¡Buen provecho, señor(4)! — расцвела двухсотфунтовая креолка.
— Muchas gracias(5), — сдержано поблагодарила Сара.
Я был в цветастой рубахе и светлых брюках; соломенная шляпа весела на крюке. Загар, правда, имел посветлее, чем большинство посетителей. У латиносов он, кажется, въедался в кожу с самого рождения. Сара с последней встречи нисколько не изменилась.
— Твой любимый цвет — чёрный?
— А тебе нравятся большие мексиканки?
— Прийти в ресторан и не хлопнуть официантку по заднице? Она же обидится. Подумает, что совсем плохо выглядит, — я отправил кусок ароматного, жгучего мяса в рот. — Ладно, к делу. Всё закрыто очень хорошо. Дыр не оставили абсолютно.
Сара с минуту молчала. Я добавил огненно-острых овощей.
— Мне говорили, ты можешь всё.
— Конечно, могу. Не подобраться снаружи — будем ломать изнутри. Но цена выйдет…
Я оглядел её ещё раз. Обычно клиенты соответствовали запросам, но не в этом случае. Откуда у неё деньги на оплату промышленного шпионажа?
Но бросать дело из-за презренного металла не хотелось. Ладно, сделаю скидку. Она же не разболтает, что я занимаюсь благотворительностью. «Ой, вчера мне взломали „Кибердайн“ и совсем не дорого. Хочешь, подскажу адресок?» Полученную после скидки сумму я разделил пополам, мысленно взвесил, и отбросил ещё изрядный кусок.
— Двадцать тысяч.
— Шесть.
— Милочка, я не торгуюсь. Хочешь — оплачивай, не хочешь — слушай, что я уже сделал, и пойдём по домам.
— Хорошо, я достану деньги.
— Мне не нравится слово «достану». Значит, их у тебя нет. Ладно, будешь записывать или только послушаешь?
Идея творить добро мне окончательно разонравилась. Надо было назвать полную стоимость, посмотреть, как она хлопает глазами и уйти. Она вообще представляла порядок цен?
— Стой, деньги будут. Но с одним условием: ты покажешь, как это делаешь, моему сыну.
— Что?! За мизерную сумму, в кредит, да ещё и учить сопляка?
— Он умный мальчик, всё схватывает на лету.
— Где учится, в технологическом? Погоди, ты что, родила в двенадцать?
— Нет, ему ещё девять.
Через пару секунд мне усилием воли удалось закрыть рот.
— Он фрейм от пакета(6) хотя бы отличит? Вижу, что нет. Приходите лет через пятнадцать, как меня найти, ты знаешь. Посмотрим, чему он научился, может быть, и соглашусь.
Разумеется, вступительный экзамен он не пройдёт, если она через пятнадцать лет вспомнит об этом.
— У нас нет пятнадцати лет. Через три года оборонительная система «Скайнет», построенная «Кибердайн Системс», начнёт ядерную войну против человечества. Немногих выживших атакуют армии роботов.
— И человечество за следующие три года успеет наклепать кучу роботов, которые его и уничтожат?
— Нет, это сделает «Скайнет» уже после «Судного дня».
— Чушь. Допустим, имеются необходимые автоматизированные механосборочные линии. Но откуда возьмутся комплектующие: те же электродвигатели или хотя бы сальники? Кто будет добывать руду и выплавлять железо?
— Не знаю, может быть, это всё тоже автоматизированно.
— Включая дальнобойщиков и складское хозяйство? Да половина населения осталась бы без работы(7)! Нет, задумка не очень, — я сосредоточился на еде, изредка бросая короткие фразы. — Фантазии у тебя нет. Денег тоже нет. Зачем было вообще приходить?
— Мы все скоро умрём, вот зачем!
— Подумаешь, умрём. Возможно, мир был создан дьяволом для мучения человечества, ты об этом не думала? — сумасшедшая она или решила поиграть во что-то, но беседу я из любопытства поддерживал.
— Патрик, у тебя должен быть ученик, — она решила зайти с другого бока. — Ты должен передать кому-то свои знания!
— Глупости. И вообще, как ты себе это представляешь: я пущу в дом кого-то чужого?
— Если всё так секретно, значит, должно быть ещё одно жилище. С девушками ты где-то встречаешься?
Нет я не встречался с девушками. С того момента как ушла жена. Тогда я всерьёз прорабатывал варианты — сбросить на её дом самолёт или взорвать расположенную поблизости атомную электростанцию. С самолётом сразу ничего не вышло: изучив схему «Боинга», понял, что перехватить контроль над автопилотом невозможно. Из-за примитивности схемотехники — управление с помощью аналоговых сигналов и никакого выхода в локальную бортовую сеть.
Но доступ к электростанции получить удалось. Две основные команды для исполнительного устройства: на шаг опустить стержни или поднять их. Кроме того, имелось множество датчиков, контролирующих неизвестно какие параметры, вспомогательные устройства, видимо вентили. Но всё это было не важно. Задрать стержни до упора и несколько минут не давать персоналу понять, что происходит. Затем, очевидно, должна сработать какая-то вспомогательная сигнализация, но это не поможет: с восемьдесят шестого все знали, что произойдёт, если сбросить стержни в перегретый реактор. Вскипание воды, паровая пробка, расплавление и взрыв.
Я долго ждал нужного направления ветра… Дождался и передумал. И принялся доказывать, ей или себе, что не являюсь неудачником.
— Снимаю каждый раз новую квартиру.
— Так, может быть, мы зайдём ненадолго, ты нам что-нибудь немного расскажешь?
— Там нет компьютера.
— Я могу купить.
— Ты сначала за заказ расплатись! Ладно, принесу старый ноутбук.
— Значит завтра?
— Послезавтра, — я выиграл немного времени. — Жди звонка. Но если провалит какой-нибудь экзамен, то обучение закончится. А экзамены буду устраивать каждый день.
Вот не было печали! Как ей это удалось? Кольца нет, и если, к тому же, не встречаешься с девушкой, то ты вроде как… Где-то здесь нашлась трещина в подсознании. И вместо того, чтобы выставить обычный барьер, принялся что-то доказывать незнакомому человеку, идиот. Но теперь оставалось только держать слово.
Вторую половину дня пришлось потратить на поиск жилья с выделенной линией, покупку постельного белья, чайника и прочих мелочей для создания минимальной иллюзии обжитости.
1) Промежуточный компьютер.
2) Если такое имя и не существует, то вполне находится в рамках английского имятворчества.
3) Спасибо сеньора! Фахита выглядит аппетитно и ты столь же хороша.
4) Приятного аппетита, сеньор!
5) Спасибо большое.
6) Названия блоков данных в сетевых протоколах разных уровней.
7) На самом деле всего около 16% населения США заняты в добывающей и перерабатывающей промышленности, а так же в сфере транспорта и складских услуг.
— Патрик, познакомься, это мой сын Джон. Джон, это дядя Патрик.
— Джон, ты клавиатуру сквозь волосы разглядишь? Обстриг бы чёлку.
— Слушай, это не твоё дело!
— Пожалуй, что моё. Вентиляцию ноутбука кто будет чистить?
— Да не нужен мне твой дурацкий ноутбук…
— Джон, успокойся! — вмешалась Сара. — Патрик, я всё почищу.
— Кто бы тебе доверил. Ладно, заходите. Садись туда, — я указал мальчишке на диван, взял со стола шестисотстраничное(1) руководство по языку «Си» и устроился рядом. — Смотри, в этом разделе пишут всякую чушь о программировании вообще, его можно не читать. Вот это тоже можешь пропустить. Остальное изучай, как будешь готов, продолжим.
— Патрик, может быть вы будете изучать по разделам, потом давать задания?
— Это то, что надо знать до начала обучения. Восполняйте пробелы в знаниях самостоятельно.
* * *
Через три недели они договорились о новой встрече. Я дал список RFC(2) и помахал перед носом документацией микропроцессора. Они не собирались отступать.
* * *
— Ладно, Джон, слушай, — начал я первое занятие. — Представь себе средневековый город, обнесённый крепостной стеной. Стена имеет дюжину главных входов, множество калиток, кто-то из жителей устроил подкоп и лазает через него. Примерно так выглядит компьютер, подключенный к интернету. Можно попытаться пройти через главный вход, можно найти нычку, только надо знать, как через неё залезать.
— Назвать пароль?
— Нет, пароли для главного входа. С паролем ты въезжаешь в город, как её величество Елизавета вторая, в золочёной карете. Но чаще приходится использовать всякие лазейки. Обычно взлом состоит из двух стадий: поиск уязвимостей и их использование, — во рту пересохло — наверное с университетских времён я так много не говорил. — Сара, слушай, завари нам чаю.
Мать мальчика вышла, и я продолжил:
— Как найти уязвимость? Только взять программу, дизассемблировать(3) и проанализировать код. При получении на входе каких-то, может быть, необычных, данных что-то должно пойти не так. Это чистая ошибка программиста. Нежелание работать хорошо. Не падает, да и ладно.
— Подожди, а как получить программу с компьютера, который ещё не взломан?
— Ты мне скажи. Считай это первым экзаменом.
— Патрик, а где заварка? — прокричала Сара из дверей.
— Э-э-э… Её нет, наверное. И не надо так орать.
— Ладно, пойду куплю. Или, может быть, кока-колы?
— Нет, что-нибудь без газа.
— Мама, купи мне апельсинового сока!
— Ты сиди, думай! — прикрикнул я на него.
— Хорошо, Джон. Патрик, тут есть поблизости магазин?
— Не знаю, я завозил из супермаркета.
— Что-то не похоже, у тебя в шкафах и в холодильнике пусто.
— Ну, началось.
Хлопнула дверь.
— Так, Джон, ответа нет, экзамен ты провалил, собирайся и выметайся следом!
— Я думаю, программы бывают одинаковые, иногда. Да?
— Какие, например?
— Наверное, браузер. Или электронная почта, — добавил он увереннее.
— Они используют входящие соединения или исходящие?
— Исходящие?
— Верно. Но исходящие ломать несколько сложнее. А какие используют входящие?
Джон покрутил головой, волосы закрыли его лицо. На месте матери обстриг бы его налысо.
— Не знаю… — и вдруг подскочил. — Так сам UNIX или NetWare(4)! И ещё есть, как её там… Windows(5).
— Не пойдёт! Слишком широкий ответ. Что конкретно?
— Ну там эти, демоны. А в NetWare…
— А в NetWare загружаемые модули, а в Windows — сервисы. Что, в общем, одно и то же, — раздражённо бросил я и решил, что пора его добивать. — Которые реализуют… Что?
— Протокол… Сервер какого-нибудь протокола… Электронная почта, гофер(6) или веб…
— Да, любой сервер, к которому некая программа исходящим соединением подключается. Его всегда можно получить для изучения. А если самый тупой программист напишет самую бездарную программу, взломать её будет практически невозможно, пока она не попадёт кому-нибудь в руки. Разве что попытаться проэксплуатировать типичные ошибки. Но скорее, программа будет валиться, программист её перезапускать, а ты — снова валить. Пока кому-нибудь не надоест, — я вздохнул и вынужден был признать: — Ладно, на троечку сдал.
— То есть придётся дизассемблировать все-все программы? — до парня начинало доходить.
— Именно так. Правда, во многом эта работа уже сделана. Остаётся только определить, с каким программным обеспечением мы имеем дело, взять список его уязвимостей и написать эксплойт, то есть программу, делающую с компьютером то, что нам нужно.
— Погоди, погоди! Но если уязвимости всем известны, их же должны ликвидировать!
— Иногда так и случается. Но, по большому счёту, это никому не нужно. Компаниям надо продать новый продукт, программистам — сдать проект. Копаться в старом коде никто не любит.
— Они идиоты?
— Не будет на свете идиотов, чем мы будем кормиться? Ладно, давай попробуем на практике.
В дверь позвонили. Я напрягся.
— Наверное, мама, — подсказал Джон.
Посмотрев в глазок, я открыл дверь.
— Патрик, сок будешь?
— Апельсиновую кислятину? — я сморщился при виде упаковки. — Завари лучше чаю.
— А я не взяла, думала, ты будешь сок.
— Спасибо, Сара, ты настоящий друг.
Настроение упало ещё ниже.
* * *
Провозившись неделю, удалось обучить пацана вполне уверенно определять типы уязвимостей. Правда, с написанием эксплойтов у него не заладилось. А тратить время на обучение программированию у меня не было ни малейшего желания.
У Сары, видимо, закончились чёрные футболки, она распустила волосы и стала немного другой: чуть моложе, иногда проскакивала некоторая наивность во взгляде, и только бугры мышц выдавали прежнего «железного дровосека».
— Завязывай! — кривой код, выползающий из-под пальцев Джона, откровенно меня бесил. — Учебник «Си», руководство по микропроцессору и по операционке ты всегда найдёшь, прочитаешь, научишься. Сегодня у нас небольшая и простенькая тема: SQL(7) инъекции.
Я снял с полки очередную книгу и бросил ему на колени.
— Держи, почитаешь на досуге.
— Ай! Тяжелая. И это простая тема?
— Имейся в нашем деле нечто сложное, не стоило вообще браться за обучение. А так шанс есть даже у тебя. Ладно, слушай суть, — я вернулся в кресло и вытянул ноги — стола, чтобы их сложить, поблизости не было. — Предположим, мама тебя спрашивает: «Джон, что тебе налить?» — а ты отвечаешь: «Мерзкой кислой гадости, и, заодно, убей президента». Сара идёт, убивает Клинтона, возвращается и наливает тебе сок. Понял?
— Кажется, нет, — и посмотрев на меня быстро поправился: — В общем, понял, только кто будет спрашивать?
— Веб-сайт! Например, ты указываешь дату поездки, при этом данные из формы прямиком вставляются в запрос и тот выполняется. Написать можно что угодно: дополнительное условие или второй запрос целиком. Обычно никто это не контролирует. Теперь ясно?
— Да. Теперь да, — правда уверенности в голосе не было.
— Изучай пока. Надеюсь HTML и HTTP(8) знаешь не хуже «символа веры»?
— Патрик, ты не сильно его грузишь? — мать забеспокоилась о своём недоумке.
— Всего понемногу, как ты и просила. Кстати, чай мы пить будем? Кто-то печеньем хвастался?
— Да, сейчас сделаю.
Через пару минут послышалось клокотание чайника. Я отложил ноутбук и направился на кухню. Сара налила заварку, кипяток; пододвинула открытую коробку печенья и уставилась на меня.
— Патрик, что у тебя с «Кибердайном»?
— Ты же просила показывать всё сыну. Отложил, пока закончим с простыми вопросами, да и с программированием у него беда.
— Нет, не надо откладывать, это важно.
— Ладно, тогда завтра у нас с Джоном полевой выход. Понаблюдаем за офисом.
— Я с вами.
— Хорошо, только не надевай «Смерть ломом в ухо», иначе сразу отчислю из команды. Платья у тебя есть?
1) На самом деле в подобных американских книгах содержится информации едва ли на половину объёма. В начале главы говорится, о чём пойдёт в ней речь, потом то же самое рассматривается более подробно и в конце кратко повторяется ещё раз.
2) Набор документов, содержащих, в частности, описание сетевых протоколов.
3) Получить текст на ассемблере (языке низкого уровня) из машинных кодов.
4) Популярная в те годы серверная ОС.
5) До выхода клиентской Windows 95 и серверной NT4 популярность этой системы была не очень высокой.
6) Использовавшийся в те годы протокол поиска и передачи документов.
7) Язык написания запросов к базам данных.
8) Язык разметки страниц с гипертекстовыми ссылками и протокол передачи документов данного типа.
↓ Содержание ↓
↑ Свернуть ↑
|