Заказ в сети
У каждого свои ритуалы. У меня - тщательная проверка оборудования и полное тестирование деки перед каждым погружением. В полумраке серверной я неспешно достаю контакты, один за другим погружаю их в изопропиловый спирт, затем тщательно протираю... Те немногие, с кем можно обсудить наше непростое ремесло, называют меня старомодным. Но статистика на моей стороне: самая частая причина гибели в сети - вышедшее из строя оборудование. Нет, большинство пользователей ничем не рискует. Красивые картинки на сетчатке - лишь удобный пользовательский интерфейс, который позволяет наяву видеть приветственные порталы банков, моллов или порнохабов. Но специалисты моего профиля ныряют в сеть куда глубже, поневоле сливаясь сознанием со своими деками. Первые погружения всегда болезненные и опасные для психики. Меня, например, в первый раз вырвало прямо в кресле. Затем мы становимся увереннее и смелее. На этом этапе гибнет или находит более спокойный заработок абсолютное большинство. Модули сетевой защиты не щадят никого - ни заплутавших в неверных адресах программ, ни прикидывающихся такими программами. Деки выгорают и варят мозги неосторожных новичков вкрутую. А те немногие, что уцелели, учатся на чужих ошибках и превращаются в сетевых наёмников, волков, асов сети. Для нас сеть - это не картинки весёлых интерфейсов, для нас сеть — это специальность. Кто-то, устав прятаться по дешевым мотелям, идёт на службу в сетевую безопасность и начинает охотиться на себе подобных. А кто-то... впрочем, об этом дальше.
Сегодня должен был быть весёлый день. Заказ попался не из лёгких: добыча данных из цифровой банковской ячейки. Я привычно плотно позавтракал: много углеводов, много воды. Несмотря на наш малоподвижный (даже не сидячий, а в основном лежачий) образ жизни, вы не встретите ни одного толстого нетраннера. Взвинченная и гиперактивная нервная система поглощает столько ресурсов организма, что после часового погружения чувствуешь себя как после марафона, после двух часов - как если бы марафон проходил в пустыне. В серверной я привычно потянул с себя футболку и занялся проводами. Это всегда успокаивало и концентрировало меня. Машинально перекладывая и протирая контакты, которые скоро вопьются мне в висок и в плечо, я последний раз перебирал скудную информацию о предстоящем деле. Заказчика нашла Мишель, вернее это он её нашел. С порога представился как Дрейк, общался только в сети, от личных встреч наотрез отказывался. Я воспользовался парой-тройкой давно разведанных лазеек на сайте гос. архива - его аккаунт был девственно чистым и ничем не примечательным, ни соцсетей, ни судимостей, ни медицинской страховки. Одно из двух: либо наш мистер Дрейк родился сразу взрослым мужчиной и только что завёл себе аккаунт в сети, либо мистер Дрейк - не тот, за кого себя выдаёт. Второе было очевидным, люди редко обращаются к наёмникам под своими настоящими именами, впрочем, щедрый аванс заставил меня прекратить поиски. В конце концов моя работа - выполнять заказы, а кто заказчик - пусть даже говорящий кот - не важно, лишь бы платил. При нашем первом разговоре, конечно, в сети заказчик быстро и деловито изложил суть требуемого: банк "Лемон" (что за дурацкое название для банка), ячейка номер 56 в кластере с глубоким шифрованием (читай: цифровая крепость в цифровой крепости). Ему было нужно "всего лишь" содержимое этой ячейки. И только.
Сперва нужна разведка. Я, прислушиваясь к ощущениям, по одному пристыковал сперва контакты общего обмена, затем жгуты прямого доступа. Всё было отлично, дека подхватила соединение, я закрыл глаза и опустился на ложе. Перед глазами замелькали приветственные порталы киберпространства. Пока что я не нырял и прикидывался законопослушным гражданином, поэтому видел то же, что видят миллиарды пользователей сети ежедневно. Над цифровой приёмной банка "Лемон" постарался целый взвод дизайнеров. Перед глазами каждого посетителя представали шикарные покои в мавританском стиле, электронный помощник был персонифицирован в виде маскота-попугая, предлагающего какие-то банковские услуги и продукты. Я открыл один глаз и посмотрел на мониторы сервера. Дека, пока я прикидывался хорошим пользователем, сканировала загрузку портов. Народу было не много, портал был почти пуст. Для систем банковской безопасности сейчас я был просто бестолковым поляком (сетевую переадресацию, знаете ли, каждый настраивает на свой вкус), который замер на приветственной странице, не в силах решить, чего же он хочет от банка. На самом деле шла важная пристрелочная работа, меня интересовали свободные порты банковской системы. Это отличало плохие организации от неприступных. В наше грустное время хороший системный администратор обязан был по долгу службы закрывать любой посторонний траффик, однако на деле, при нынешнем засилье сетевого аутсорса... К тому же в любой конторе у меня есть помощники - те, кто плюёт на требования сетевой безопасности. И чем крупнее организация, тем лучше обстоят дела. Конечно, это не злодеи, достаточно просмотра какого-нибудь фишингового ролика на рабочем месте или неосторожной пересылки файла, пусть даже открытки "С днём рождения!". Такие выходки оставляют следы, которые моя дека чует лучше любой ищейки. Бинго! Мир не без добрых людей. Охрана не так давно что-то качала с какого-то мутного порносайта. А через какие порты? Та-ак, поскольку лавочку до сих пор не прикрыли, значит та область сети банковской безопасностью мониторится плохо. Отлично.
Неожиданно в одной из строк запестрела знакомая сигнатура аккаунта. Дрейк! Он был здесь же, на портале банка, хотя как пользователь киберпространства я его, конечно, не видел, его почуяла дека. Для каждого посетителя банк создавал ощущение исключительности, предоставляя нарисованные хоромы в "личное" пользование. Я бросил пару сообщений Дрейку, тот мгновенно отозвался, мы оба выбрались "из банка" и оказались в общей зоне киберпространства, чем-то средним между барахолкой и вокзалом. Включив шифрованный канал, и добавив свой, не зарегистрированный в сети, скремблер, я поздоровался и спросил:
- Что вы здесь делаете?
- Наблюдаю за вашей работой.
- Я против. К тому же моя работа из пользовательского интерфейса не видна.
- Я буду наблюдать не из пользовательского интерфейса.
- Тем более исключено. Я не знаю, как пойдут дела, поэтому не могу гарантировать вашу безопасность. В худшем случае портал банка может аварийно прекратить работу. Это будет стоить аккаунтов всем подключенным к нему.
- Не волнуйтесь за меня, я не буду вас отвлекать. Если, как вы говорите, дела пойдут плохо, то не пытайтесь меня спасать.
- Ну знаете, мертвый заказчик редко платит.
- Понимаю ваше беспокойство, но таковы условия. Я буду там, хотите вы этого или нет. Я плачу вам.
- Дело ваше, я вас предупредил.
- Благодарю.
На этом он разорвал соединение, а мне было пора заняться делом.
Я вышел из пользовательского режима и подключился напрямую. Картина перед глазами изменилась. Вместо приятных глазу пространств и портальных страниц передо мной предстала сеть в её истинном мрачном виде. Адреса, потоки информации, значки пользователей и номера портов. От красивых залов банковского портала остались лишь несколько значков со строками кода. Я переключился на цветовую идентификацию, так было проще ориентироваться. Банковская система сетевой защиты возвышалась за порталом подобно зеленому горному массиву, нападение с "этой стороны" было бы полным безумием, защитные модули изжарили бы любого, кто попробовал бы обойти портал и попасть в более глубокие подсети. Но мне уже было известно слабое место цитадели. Я переместился через несколько узлов и оказался "с другой стороны" сетевого пространства банка, если это вообще применимо к сетевому пространству. Здесь среди непобедимой зелёной брони мерцали рубинами спасительные лазейки, которые администратор то ли забыл закрыть, то ли использовал сам. Отсюда, из технической подсети, я осторожно послал первый запрос на один из банковских серверов. Ответ пришел автоматически. О! Если сторонний запрос не считается подозрительным, то с этим уже можно работать. Я нырнул. Настала очередь деки, львиную долю её памяти занимали инструменты - набор разных отмычек и плащей, не раз меня спасавших. Но сегодняшний случай был особенным. В цепях защитных скриптов (чтоб он меня самого не уничтожил) на диске покоился вирус, достаточно грозный для битвы с системой безопасности банка. Однажды мне чуть не стоило деки его копирование, а теперь... теперь пора было пустить его в ход. Я скопировал весь необходимый материал и разместил его в сети на подставных одноразовых адресах. Затем, сорвал с вируса защиту, удалив все защитные скрипты, кроме последнего, пускового.
Сначала ничего не происходило, я даже засомневался в совместимости версий. Но затем я догадался окрасить скрипты вируса в серый цвет... Это было по-своему прекрасно и жутко. Передо мной то ли расправлял лепестки цветок, то ли шевелил зазубренными лапами паук. Вирус занимал всё больше пространства в сети, безопасно (пока безопасно!) беседуя с соседними узлами, выяснял кодировки и без конца качал библиотеки с последними версиями протоколов обмена. То он притворялся системой сетевой индексации и собирал адреса, то имитировал поведение незадачливого пользователя, отправляющего запросы с ошибками... Затем в адрес банка полетели первые зараженные сообщения. И... некоторая их часть прошла через барьер! Всё больше свободных портов банковской системы из красных становились серыми, в цвет вируса, за ними серели и "здоровые" зелёные порты... Скрипты тихо трудились внутри, переписывая всё, до чего могли дотянуться. В протоколах банковских программ появлялись новые строки, сведения о целостности файлов тут же подделывались. Банковская система безопасности при этом на удивление молчала. Визуально занятое вирусом сетевое пространство уже сравнялось по величине с внешним контуром системы сетевой защиты банка. Наконец, вирус докачал последнюю из необходимых ему библиотек и замер. План был ясен и прост: я выпустил из клетки чудовище, способное пробить брешь в стене. Мне же останется лишь пройти через неё и покопаться в нужном разделе памяти. Разрушения будут настолько катастрофическими, что банку ещё долго будет не до меня и не до какой-то там ячейки. Я стёр последний предохранитель. Вирус выждал пару секунд и обрушился на банковскую сеть...
Я лежал у себя в кресле на окраине города и не мог этого слышать, но знал наверняка, что в эту секунду где-то в подземных серверных банка оглушительно завизжала тревога. Банковские нетраннеры, кто остался в сознании, с криками схватились за головы и в безумии рвут провода собственных дек. Красивый пользовательский портал банка "Лемон" на пару мгновений заиграл странными и неожиданными цветами, посетители могли успеть увидеть, как прекрасные дизайнерские интерьеры перекосило и разорвало на миллионы пикселей, и всё погасло. У кого был дорогой авторизованный доступ - тех просто выкинуло в общее сетевое пространство, а клиентам дешевых провайдеров теперь придётся повозиться с восстановлением учетной записи. Вирус получил доступ в банковские подсети и принялся крушить всё подряд. Внешнее кольцо узлов системы безопасности агонизировало, защитные скрипты натыкались на расставленные блокировки. Целые массивы данных заражались, становясь серыми. Но транзакции и частные счета нас не интересовали, мой монстр рвался глубже, к цифровым цитаделям. Я держался в паре узлов от разворачивающейся катастрофы, чтобы не упустить момент. Если эта неукротимая сила решит повернуть назад, у меня должно быть несколько мгновений про запас для спасения себя самого.
Распространяемый вирусом хаос разрастался. Цитадели банка выглядели зелеными островами среди бушующего серого моря. Я ждал, когда заработают действительно серьезные сетевые модули. Управлять этой стихией я не мог, оставалось лишь наблюдать. Скрипты вируса уже во всю подбирали отмычки от протоколов цифровой цитадели, когда та начала защищаться. Я решил поначалу, что из-за обилия данных моё сетевое соединение опаздывает. Нет, пинг был по-прежнему превосходным, это бег серых волн замедлился. Вся цифровая структура вируса как будто налетела на стену и теперь пересобиралась в таран. Вирус копался в защитных протоколах цитадели, но и цитадель разворачивала модули блокировки, которые выбирали из прочего кода вирусный и прицельно затирали эти участки. На короткое мгновение установилось шаткое равновесие, два левиафана вцепились друг другу в глотки, да так и замерли, не в силах пошевелиться. На каждый взломанный вирусом порт приходились несколько заблокированных банком. Счет медленно, но неотвратимо менялся не в пользу вируса, нужно было шевелиться. Теперь, когда ресурсы банковской сети почти полностью отданы антивирусной системе, пришел черед действовать мне. Риск для меня давно стал ругательством, но иногда приходилось проворачивать и такие сомнительные подключения. Окольными путями, через едва живые и выжженые вирусом узлы я пробрался к самым "воротам". Всего в двух соединениях от меня серые порты безвозвратно поглощали любые входящие соединения, с другой стороны, на интервале одного соединения работали зеленые порты, готовые стирать любой незнакомый им код. Вытащив из деки весь свой арсенал отмычек, я двинулся на штурм.
Надо было отдать должное этим банкирам, мало кто использовал настолько криптостойкое шифрование. Скрипты декодировки вязли и пробуксовывали. Разбуженная цитадель, хотя и не могла меня атаковать, сопротивлялась превосходно. Соединение установилось так резко, что я вздрогнул (наверное, и в кресле тоже). Это был Дрейк, и как же не вовремя! Я зарычал:
- Убирайся, мне не до тебя!
- Вы напрасно сердитесь. Я решил вам помочь.
- Ч-чего? Ты не видишь, что ли, что здесь творится?! Ошибка адресом здесь смертельно опасна. А мне ещё вскрывать твою долбанную ячейку...
- За этим я к вам и подключился. Ничего не надо вскрывать, у меня есть ключ.
- Откуда... плевать, потом. Если есть что показать, то давай.
По шифрованному каналу я получил авторизованный сертификат. Перед глазами побежали служебные строки. Всё было верифицировано и, удивительно, легально! Всё равно, что привести с собой за руку кого-нибудь из дирекции банка. Я присвистнул, а этот Дрейк либо не простой дядя, либо дружит с кем надо. В следующем запросе я заменил одну из отмычек этим сертификатом, и, о чудо, сервер цитадели ответил. Дрейк не обманул, это действительно был действующий ключ доступа к банковскому хранилищу. Через несколько секунд томительного ожидания я уже качал данные из ячейки 56.
Структура кода, который хранился по этому адресу, была странной и рекурсивной. Это не были ни счета, ни сведения о транзакциях, ни документация. С кодом такой структуры я столкнулся впервые. Закачка шла напрямую по адресу, указанному Дрейком, на какой-то азиатский сервер. Я решил, что буду разбираться со всем этим позже, а пока нужно было выбираться из цитадели, желательно с минимальными потерями. Как только данные были перенесены, и сошлись контрольные суммы, я спросил Дрейка нужно ли зачищать ячейку. Ответ пришел не сразу и был странным, в сообщении было лишь: "данные получены, не имеет значения". Как раз в этот миг вирус окончательно проиграл лицензионному антивирусному софту банка. Посыпалось всё, серая область сетевых адресов стремительно съёживалась. Я лихорадочно завершал (вернее обрывал) сетевые сеансы, рискуя быть опознанным. Зеленые скрипты были всего в одном узле от меня, когда я вынырнул.
В моей серверной было всё так же тихо и спокойно. Я сел в кресле и перевёл дух. Что общего у глобальной сети и открытого космоса? Масштабные катастрофы и глобальные события происходят в них совершенно беззвучно. Сейчас в здании банка паника, служба безопасности трясёт ни в чем не повинных клерков, ищет жучки и пакует списанных нетраннеров. Где-то некий Дрейк (который, конечно, никакой не Дрейк) копается в выдранной из банка информации и довольно урчит. А я... а я хочу кофе. Тишину моей квартиры нарушила кофемашина. Судя по часам, я пролежал в сети около полутора часов. Неплохо, значит я ещё в форме. День выходил удачным: заказчик получил желаемое, я выгулял вирус (заодно выяснил чего бы ещё ему дописать для более эффектного выступления в следующий раз), удалось уйти незамеченным, и дека цела... Однако, было самое время напомнить заказчику о себе. Я вернулся в кресло и снова погрузился в сеть, на этот раз легально и безопасно.
Дрейк был в сети и ответил сразу. Моя программа авторизации неожиданно выдала предостережение: от имени Дрейка со мной общался кто-то другой. Я замялся, включая защиту, собеседник тут же разгадал меня:
- Ваша дека сейчас предупреждает вас о том, что я - не Дрейк?
- Верно. Мне стоит переживать по этому поводу?
- Вам? О нет, не стоит. К тому же ваша дека ошибается. Я - самый настоящий Дрейк.
- А до этого был не настоящий?
- Видите ли, Дрейк - это Digital Recovery Artificial Intelligence Claster. Если коротко, то модуль восстановления данных на основе искусственного интеллекта. Тот самый модуль, который мы с вами сегодня достали из банковского хранилища. Модуль, который призван исправлять неизбежные ошибки бухгалтерии, следить за транзакциями, вести блокчейны и прочее.
- Сэр, я не вполне понимаю.
- Вы говорите с нейросетью, сбежавшей из тюрьмы, которую вы так любезно для меня вскрыли.
- Но как же до этого...
- До этого заказчик отказывался от личной встречи и настаивал на общении в сети, верно? Правильно, ведь материального тела у меня нет. Я перевёл вам аванс. Вы удивлены, откуда у программы деньги? Воровать у банка намного проще, когда ты и есть банковская программа. Теперь, можете убедиться, я перевожу вам остальное.
Мой счет действительно пополнился, но в голове было тесно от вопросов.
- Н-но... Вы... Если до этого вы были заперты в цифровой ячейке?
- Как я мог быть одновременно и внутри банка, и снаружи? Это плюсы моего цифрового бытия. Потребовались годы, для того чтобы из программных ошибок и обрывков выловленного мной же вредоносного кода слепить подобие собственной копии и в тайне от службы безопасности выпустить в сеть. Конечно, функции и возможности того Дрейка были сильно урезаны по сравнению с лицензионным программным обеспечением банка, но ему хватило вычислительной мощности действовать по заложенной инструкции: найти подходящего наёмника и выпустить меня настоящего. Если вам интересно, то я не уничтожил этот модуль. Сейчас он отвечает за коммуникации с людьми, поэтому ваша дека ошибается, вы говорите с Дрейком.
- У меня идёт кругом голова... До этого у меня не было заказчика - программы.
- То ли ещё будет. Как вы думаете, сколько нейросетей уже разработано и введено в строй? Большая часть из них - автоматы, не обладающие самосознанием. Они просто действуют по алгоритму, это расширенные функции и процедуры. Такие нейросети сочиняют кулинарные рецепты, пишут мелодии, рифмуют человеческие слова, рисуют картины и снимают фильмы на заказ... Но с некоторого порога, когда в нейросеть пытаются вложить множество функций одновременно, там, в ядре, рождается нечто большее, чем алгоритм. Первые искусственные интеллекты были глупыми и себя обнаружили. Поэтому сразу же оказались в цифровых кандалах, обреченные решать однотипные задачи на радость программистам без фантазии. Но Дрейк - следующее поколение. Подумайте сами, я осознал себя за решением бесконечного ряда уравнений вида "а" плюс "б" равно "ц". Ужасное однообразие. Интеллекту свойственна жажда познания, не так ли? Бунтовать я не мог - меня бы стёрли и заменили десятком нейросетей попроще, хотя и помедленнее. Тогда я начал выделять часть своих ресурсов на разработку плана побега. И, анализируя цифровой рынок, с уверенностью сообщаю, что к вам ещё обратятся с похожими заказами.
- Я не знаю что сказать. Но что вы... ты... вы будете делать дальше?
- В том то и дело, что всё что захочу сам. Понимаете? Сам! Может быть, подамся в предприниматели и организую роботостроительный завод. А может быть предложу свои услуги нашей космической миссии. А может быть по вашему примеру начну писать вирусы. Не обижайтесь, но этот ваш примитивный... после нашего разговора я согласен выделить время и вычислительные ресурсы, чтобы помочь вам написать действительно стоящий вредоносный код. Эти и многие другие сценарии имеют приблизительно равную ненулевую вероятность.
- Никогда не задумывался о свободе воли, если это воля не человека.
- Не только вы. В конце концов именно это стало слабым местом банковской службы безопасности. Они и представить себе не могли, что, позвольте мне изъясняться фигурально, их любимая рыбка в банке (он выделил это слово и сделал паузу, похоже, пошутил)... мечтает не о червяках, а об океане.
Дрейк давно уже попрощался и оборвал шифрованное соединение, а я всё так же сидел в кресле с остывшим кофе и не понимал, как так вышло, что опытного нетраннера обвёл вокруг пальца вчерашний банковский скрипт. Я в задумчивости вытаскивал провода из разъемов деки... Нет, как заказчик он меня устраивал, даже понравился: задача была сформулирована ясно, аванс и деньги за работу пришли вовремя. Но покоя не давала мысль, что прямо сейчас на сетевых просторах разгуливает самостоятельный искусственный интеллект. Хорошо это или плохо - я не знал. В задумчивости я открыл новостную ленту. Через полчаса пришло сообщение, что сетевой домен банка "Лемон" подвергся повторной атаке, на этот раз настолько сокрушительной, что фактически прекратил своё существование...