Она продолжила просматривать сайт, время от времени делая заметки. Как и всегда, ее поразило количество информации, с готовностью разглашаемой корпорациями на своих сайтах: структура организации, адреса, телефоны, номера факсов, электронные письма, схемы городских маршрутов, телефонные номера службы поддержки клиентов, и все это — потенциальная артиллерия для хакерской атаки.
В разделе «Карьеры» было вывешено объявление о наборе персонала в справочную службу банка, а также электронный адрес менеджера по кадрам. Гарри прочитала о том, что кандидаты должны иметь навыки работы с компьютером и, кроме того, быть доброжелательными, общительными и отзывчивыми. Она подняла брови: ей вспомнилась Сандра Нэйгл. По сравнению с «Розенстоком» стандарты банка «Шеридан» явно проигрывали.
Гарри посмотрела на адрес электронной почты. Попытка — не пытка. Она сочинила короткое письмо с заявкой на должность оператора справочной службы и вслед за этим извлекла на свет божий «крысу», которую до этого использовала, чтобы проникнуть в сеть «КВК». Замаскировав ее под невинный Word-документ, озаглавленный «Резюме», Гарри присоединила «крысу» к электронному письму и нажала кнопку «Отправить». Все, что ей было нужно, это чтобы менеджер по кадрам запустил приложение. Как только «крыса» вырвется на свободу, она откроет дверь черного хода в сеть «Розенсток» и Гарри проскользнет внутрь. При условии, конечно, что «крысу» не перехватят банковские антивирусные сканеры. Если сканеры достаточно современные, такое вполне может случиться.
Пока она занималась всем этим, ей пришло в голову, что было бы неплохо ударить по банку агрессивным телефонным набором. Она записала телефонные номера банковского филиала в Нассо. Как факсовые, так и телефонные номера, которые у нее уже были, начинались на 513-84; последние две цифры варьировались, образуя номера параллельных телефонов. Быстро нажав нужные клавиши, Гарри велела программе-наборщику обзвонить все параллельные номера от 513-84-00 до 513-84-99 включительно, пока не откликнется другой модем. Если окажется, что модем принадлежит компьютеру в сети «Розенсток», можно считать, что она в нее вошла.
Гарри побарабанила пальцами по столу. В любом случае ей предстояло преодолеть банковскую защиту и отыскать отцовский номерной счет. Она не льстила себя надеждой на то, что сразу получит доступ к деньгам. Конечно, она могла изменить пару-тройку цифр в нескольких базах данных, но это отнюдь не заставит реальные деньги переместиться куда ей вздумается. Все это будет лишь иллюзия — так же, как и те двенадцать миллионов евро у нее на счету. Поддельные трансакции доживают лишь до ближайшей банковской контрольной процедуры.
Переместить деньги по сети гораздо труднее, чем принято думать.
Гарри встала и пошла в кухню, чтобы налить себе бокал вина. На обратном пути она вспомнила о степенях защиты отцовского счета. Если верить отцу, всякая операция с банковским счетом, включая снятие наличных и перевод денег на другой счет, должна была осуществляться им лично, с предварительным зашифрованным уведомлением по факсу.
Значит, чтобы добраться до денег, ей нужно будет перевоплотиться в своего отца и взломать его кодовое имя, а на все это у нее два дня. На текущий момент ее шансы вряд ли можно было назвать блестящими.
Вздохнув, она села за ноутбук и начала с цифр, записанных в блокноте. Первым делом нужно было проверить, является ли эта последовательность цифр вообще счетом ее отца. Гарри размяла пальцы и принялась набирать. Даже если она найдет банковский счет, не стоит надеяться, что к нему будет прилагаться фамилия отца. Если верить Джуду, сведения о личности владельцев номерных счетов хранятся в файле вне банковских архивов и никогда не отображаются в онлайн-системах. Впрочем, Гарри сочла, что если она хотя бы убедится в существовании счета с таким номером, то уже сам этот факт будет доказательством того, что она на правильном пути.
Она проверила «крысу» и программу-наборщик. И там, и там — ничего. На всякий случай Гарри расширила диапазон набора телефонных номеров, хотя и понимала, что не может позволить себе выжидать до бесконечности. Ей необходимо было исследовать сеть «Розенстока» и срочно найти другой способ проникнуть внутрь.
Покинув банковский сайт, Гарри задала поиск ссылок на доменное имя «rosenstockbankandtrust.com» в общедоступном поисковике. Гарри знала, что, когда организация регистрирует доменное имя в Интернете, она оставляет там море побочной информации, бесценной для хакера: имена технических работников, телефоны, адреса электронной почты, номера факсов и, что самое важное, свои сетевые серверы и IP-адреса. IP-адрес компьютера — все равно что номер дома в Интернете. Он давал точные сведения, где расположен компьютер и как его найти.
По экрану побежали сообщения результатов поиска. Сердце Гарри забилось быстрее, когда она начала копировать адреса компьютеров «Розенсток». Теперь, когда она узнала, в каком месте Интернета расположена банковская сеть, все, что ей оставалось сделать, — подкрасться к дверям и взломать замки.
Сначала, впрочем, следовало убедиться, обитает ли в доме вообще кто-нибудь. Всегда была опасность, что зарегистрированная информация устарела и IP-адреса уже недействительны. Гарри запустила пинг-чистильщик — программу, передававшую пакеты данных на намеченные компьютеры для проверки их активности. Сеть «Розенстока» отозвалась тем же образом. Бинго!
Далее ей нужно было узнать, какие программы установлены на удаленных компьютерах. Больше всего в компьютерных программах Гарри нравилось то, что их составляли живые люди. А как известно каждому хакеру, единственное, в чем можно было положиться на людей, так это совершение ими ошибок. Множества ошибок. Независимо от того, насколько хорош программист, он обязательно оставит дырки в программе. Дырки, известные как «уязвимые места», повсеместно документировались в хакерском подполье. Именно ими пользовались для компьютерного взлома «черные шляпы».
Гарри застучала по клавиатуре, озадачивая компьютеры «Розенстока» хаотическими попытками соединения и пытаясь заставить тамошние программы идентифицировать себя. Если повезет, среди них найдется программа с известными «уязвимыми местами», которыми Гарри тут же воспользуется, чтобы проникнуть в сеть. Она впилась глазами в проплывавшие перед ней на экране цифры, вся, до кончиков пальцев, растворившись в виртуальном мире, словно взломщик сейфа, прильнувший ухом к наборному диску. Буквально через минуту одна из программ, установленных на компьютерах «Розенстока», выдала на экран красноречиво-многословное сообщение об ошибке: «Неверный запрос. Сервер: Apache 2.0.38. Ваш браузер отправил сообщение, несовместимое с HTTP».
Кивнув, Гарри откинулась в кресле. «Apache» — популярное программное обеспечение для интернет-серверов, но в старых его версиях имелись хорошо известные дыры в системе безопасности. Она побарабанила пальцами по столу, мысленно перебирая свой арсенал, после чего упаковала другую команду и запустила ее, как стрелу, прямиком в сервер «Apache». Дыра в системе безопасности, в которую метила Гарри, позволяла до отказа забить буферную память «Apache» непроверяемым объемом данных. Само по себе это мало что давало хакеру, но если в данных переполнения содержался фрагмент программного кода, «Apache» можно было обманом заставить исполнить его. А аккуратный кусочек кода, вложенный Гарри в отосланный пакет данных, при исполнении давал ей командный доступ к системе.
Стрела попала в «яблочко». Через несколько секунд на экран выскочило окно системного приглашения, терпеливо дожидающееся инструкций Гарри. Она вошла в сеть. Отныне она могла свободно по ней бродить — так же, как если бы сидела сейчас на Багамах за одним из компьютеров «Розенстока».
Гарри поежилась. Она почувствовала необъяснимое желание оглянуться через плечо и проверить, не смотрит ли ей кто-нибудь в спину. С трудом поборов искушение, она снова застучала по клавишам, пролагая себе тайный путь в компьютерной сети «Розенстока» и попутно оставляя в укромных местах свои инструменты для взлома. Среди них была программа-ищейка для просеивания входящего и исходящего сетевого трафика. Не прошло и десяти минут, как Гарри выудила из компьютерного эфира пароль административного доступа и расширила свои привилегии на всю систему. Сеть лежала у ее ног.
Тем не менее Гарри нахмурилась. Вместо обычного прилива возбуждения она испытывала лишь смутное беспокойство. Опытный хакер, она привыкла полагаться не только на технологию, но и на интуицию — и если чувствовала, что что-то не так, то, как правило, признавала наличие определенной причины. Но сейчас Гарри усилием воли стряхнула с себя это ощущение и двинулась дальше. Времени было в обрез.
Пользуясь своим привилегированным статусом, она прошла сеть «Розенстока» насквозь, жадно набрасываясь на все попадающиеся на пути файлы. Глаза ее были натренированы с первого взгляда распознавать файлы с интересными данными, — а таких было великое множество. Архивы, журналы регистрации системных событий, базы данных, электронные таблицы, письма, конфиденциальные документы — Гарри просматривала все подряд, становясь более мрачной по мере того, как отзывы на ее команды приходили все с бóльшим опозданием. Обычно Гарри порхала от файла к файлу с легкостью бабочки, играющей в классы, но сейчас ей казалось, будто она бредет по колено в патоке. Некоторые ее команды вообще игнорировались или выполнялись как-то странно, не до конца. Отдельные утилиты из ее хакерского набора начали функционировать неправильно, постепенно замедляя работу. В подсознании Гарри забрезжила смутная догадка, однако она по-прежнему не могла понять, в чем проблема.
Наконец — когда Гарри уже подумывала о том, чтобы отключиться, — она наткнулась на базу данных, которую искала. Это был настоящий кладезь банковской информации: номера счетов, истории трансакций, балансовые записи, кредитные ограничения. Гарри присмотрелась к номерам счетов. Длина их варьировалась, но большинство состояло из восьми цифр. Ни в одном из номеров не использовались буквы. Она задала поиск счета за номером 72559353 — как с буквой J, так и без нее. Безрезультатно.