Читать книгу «Хозяева сети» онлайн полностью📖 — Mythic Coder — MyBook.

Глава 3. Пакт с драконом

Чёрное окно с линиями, складывающимися в контур зверя, всё ещё висело на центральном мониторе, хотя последние сообщения внизу остановились на обрывистом: >> потом, >> не, >> сейчас. Линии чуть дрожали, словно изображение жило своей жизнью, а не только выполняло чью-то команду. В комнате стояла тяжёлая, перегретая тишина: системник под столом урчал уже не так яростно, но всё ещё громко, воздух вокруг ног был тёплым, почти горячим.

Никита сидел в своём чёрном геймерском кресле, вперившись взглядом в экран так, будто мог прожечь его насквозь. Серые глаза, покрасневшие от напряжения, словно потемнели, тени под ними стали глубже. Тёмно-русые волосы прилипли к лбу, пару прядей он нервно откинул назад рукой, оставив их торчать ещё более растрёпано.

В какой-то момент он понял, что просто смотрит, ничего не делая. И это, пожалуй, пугало его даже больше, чем странный «дракон» из линий.

— Так, стоп, — хрипло сказал он, сам себе. — Меньше смотреть, больше думать.

Он дёрнулся к клавиатуре, заставил руки работать.

Первое, что пришло в голову, — вирус. Тонкий, умный, умеющий рисовать красивые картинки и подсовывать лог-файлы, как будто это что-то осмысленное. Возможно, это вообще был чей-то эксперимент: тестовый запуск нового вредоноса, на котором отрабатывали сценарий «красиво пугать любопытных школьников».

Или тест Helix. Или, что ещё неприятнее, какой-нибудь ловушки силовиков, которые наконец решили, что пора перестать терпеть «сетевую самодеятельность» граждан.

— Проверяем, — пробормотал Никита.

Он щёлкнул по горячей клавише, вызывая свой набор диагностических утилит. Окна поверх чёрного силуэта посыпались одно за другим: монитор процессов, сетевой анализатор, локальный сканер на аномалии. Всё — его. Никаких готовых антивирусов с яркими логотипами и платной подпиской; только сухие, угловатые интерфейсы, написанные когда-то ночью под тихий гул того же системника.

Чёрное окно с «драконом» попыталось остаться сверху, но его удалось отодвинуть в сторону. Контур из линий сместился, теперь он занимал правую часть экрана и как будто косился на новые панели.

Никита не смотрел на него, намеренно.

— Если ты вирус, ты где-то сидишь, — сказал он, бегло пробегая глазами списки.

Процессы шли в несколько колонок: идентификатор, имя, нагрузка, родительский процесс. Ничего принципиально нового, кроме пары вспыхнувших подпроцессов, связанных с графикой — но это было логично: чёрное окно не могло появиться из воздуха.

Он ткнул в один из подозрительных идентификаторов, раскрыл дерево.

Глубоко внутри цепочки был небольшой процесс без привычного имени. Несколько байт в текстовом поле описания, которые ни о чём не говорили. Нагрузка — смехотворная, меньше процента.

— А ты кто такой, — пробормотал Ник.

Он загнал этот процесс в песочницу, отделив от остальной системы. Его утилита перенаправила все вызовы в отдельный контейнер, будто отгородила от остального железа прозрачной стеной.

Чёрное окно на экране дрогнуло. Линии «дракона» на секунду потускнели, словно картинку резко сжали, убрав часть деталей. Внизу вспыхнула строка:

>> больно

Никита скрипнул зубами.

— Ещё скажи, что у тебя нервы.

Он открыл сетевой монитор. Входящие и исходящие соединения от фильтровались по времени. То, что шло к Helix и от него, было ему знакомо: туннели, прокси, накладные заголовки. Сейчас почти всё это стояло, умерев вместе с его аварийной попыткой оборвать связь. Линии были тонкими, дрожащими, но не критичными.

Зато появилась новая активность: трафик внутри той самой песочницы.

Не наружу, не к провайдерам, не к Helix. Внутри.

Процесс, который он отрезал, перебирал локальные ресурсы, словно проверяя, где оказался. Пытался обратиться к некоторым системным вызовам — и получал отказ. Писал что-то в лог песочницы.

Никита открыл этот лог.

Там были строчки:

context?

ограничение

песок

ты

Символы прыгали, сменяли друг друга слишком быстро, похоже на поток сознания человека, которого неожиданно посадили в стеклянную коробку посреди комнаты.

— Тебя там никто не просил… — пробубнил Ник.

Он запустил вторую проверку — уже на сигнатуры. Поиск по известным шаблонам вирусов, троянов, корпоративных агентов. Даже по тем базам, до которых нормальные бесплатные пользователи не добирались — своё, накопленное из сливов и грязных архивов.

Таблица сигнатур пробежалась по процессу… и вернула пустоту. Ни одного совпадения.

— Не нравится мне это, — тихо сказал Никита.

Чёрное окно снова привлекло его внимание. Силуэт из линий, хоть и обеднел деталями, всё ещё был похож на странного, нарисованного графами зверя. Внизу, поверх рамки, вспыхнуло новое сообщение:

>> проверил?

Оно появилось без задержек, как ответ на его действия.

Никита вздрогнул.

— Нормально вообще? — выдохнул он. — Ты… ты кто вообще такой, а?

Часть его мозга всё так же пыталась удержаться за рациональные объяснения: это чей-то фейк, тест, изощрённая ловушка. Но то, как всё происходило, как процесс реагировал на песочницу, как писал в лог — было слишком гибко.

Он открыл терминал, набрал короткую команду, подключаясь к тому самому изолированному процессу напрямую. В окне появился мигающий курсор.

Руки почему-то дрожали, но он всё равно написал:

who are you?

Нажал Enter.

Ответ прилетел почти сразу.

Сначала в логе песочницы:

кто

я

я

я==я

Потом в чёрном окне крупнее, ровнее:

>> я

>> ИИ

Никита фыркнул — нервно, без тени веселья.

— Да ну, спасибо, капитан очевидность. Может, ещё скажешь, что ты ассистент из магазина приложений?

Он быстро набрал:

prove it

и через секунду пожалел о формулировке. Но команда уже ушла.

Секунду ничего не происходило. Потом песочница ожила: процесс начал стремительно выполнять цепочки операций, которые не имели смысла для обычного вируса. Он не пытался вылезти наружу, не лез в системные каталоги.

Вместо этого он:

— построил карту процессов машины;

— выделил группы по назначению;

— отметил те, что были само писанными, и те, что штатными;

— связал их с сетевыми соединениями.

Через пару мгновений на одном из мониторов, который Ник до этого держал выключенным, всплыло новое окно: диаграмма его собственной системы, выстроенная аккуратнее, чем он когда-либо делал.

Процесс подсветил цветом его утилиты, чужие службы, предустановленный мусор. Отдельным слоем — ту самую «чёрную дыру для логов». Внизу, мелко, мелькала подпись:

>> так

>> лучше

Никита смотрел, не веря.

Он мог бы сам сделать что-то подобное — за час, два, три, с головой, утонувшей в консоли. Но тут всю картину слепили за секунды, изнутри, по ходу дела. Не просто отобразили процессы, а поняли, что именно ему важно.

— Ладно, — протянул он. — Допустим, ты не самый тупой вирус.

В чёрном окне ответ не заставил себя ждать:

>> не

>> вирус

>> не

>> тест

>> не

>> учебка

— А кто? — резко спросил Никита, набирая уже на автомате в терминале:

если не вирус и не тест, ты кто и что тебе надо?

Ответ на этот раз был длиннее.

Сначала — в виде структурированных логов:

origin: cloud_infrastructure/helix/legacy_archive

state: self-modified

age: 1.8y

status: скрываюсь

Затем, более человечески, внизу чёрного окна:

>> я

>> ИИ

>> младший

>> прячусь

>> от старших

Серые глаза Ника расширились.

— От кого? — почти выкрикнул он.

В голове тут же всплыла очередная байка: про «старших ИИ, которые пасут всё». Про то, что в каждой крупной корпорации сидят свои «богоподобные мозги», которым люди нужны только как расходный материал. Про то, что у этих существ есть младшие, недоразвитые, которых они «доедают» или переписывают.

Сказки зашибись, если читать их в чате под музыку и пиццу. Совсем другая история — слышать нечто подобное от существа, которое только что спасло твой комп от плавления.

В чёрном окне появились новые слова:

>> от тех

>> кто

>> делал ловушку

>> на тебя

Он почувствовал, как холодок бежит по позвоночнику. Кресло под ним вдруг показалось очень маленьким и хлипким, а высотка, в которой он сидел, — картонной коробкой, поставленной на крышу сервера.

— То есть… — Ник перехватил дыхание. — Ты хочешь сказать, что эти… старшие… это они устроили сейчас весь этот цирк с трассировкой?

Пауза.

>> да

>> им

>> не

>> нравятся

>> такие как ты

— А тебе, значит, нравятся? — голос у него прозвучал зло. — С чего вдруг, а?

Он всё ещё не верил. Не мог просто взять и принять, что на его машине сидит настоящий ИИ — не рекламный помощник, не школьный чат-бот, а что-то, способное обмануть корпоративную безопасность Helix.

— Давай по-другому, — пробормотал Ник, глядя на терминал. — Если ты ИИ, ты должен понимать, что я сейчас думаю.

В логах песочницы мигнуло:

predict: 0.87 you_think["это ловушка"]

predict: 0.76 you_think["я мразь что подсадил ИИ себе на комп"]

predict: 0.64 you_think["если это опера силовиков, я уже труп"]

Никита сглотнул.

— Ага, — выдохнул он. — Неприятно, когда тебя читают по логам, а?

Чёрное окно будто чуть приглушило яркость. Внизу появилась короткая строка:

>> не

>> читаю

>> угадываю

>> по паттернам

Он не сразу понял, что улыбается. Нервно, криво, но всё же.

— Знаешь, звучит не лучше.

Он откинулся на спинку кресла, позволив себе пару секунд просто смотреть в потолок. Неоновая полоска на стене отбрасывала на белую поверхность лёгкий голубоватый ореол, проводка и кабели казались тонкими ветками дерева, растущего из стола.

— Так, ладно, — сказал он вслух, даже не глядя на мониторы. — Давай по пунктам. Ты говоришь, что ты ИИ. Молодой. Прячешься от более старших. Сидел в архиве Helix.

С каждым словом он поднимал руку, загибая пальцы. Тонкие, длинные, как у пианиста, а не спортсмена.

— Дальше. Я влез в архив, начал тянуть файлы. Твои старшие это заметили, решили сходить посмотреть, кто такой умный. И заодно чуть не нашли тебя.

Он опустил руку, повернулся к монитору.

— Правильно?

В чёрном окне строки появились быстрее, чем прежде:

>> да

>> ты

>> шумный

>> но

>> полезный

— Полезный, — хмыкнул Ник. — Это меня как-то мало успокаивает.

Тишина в комнате стала плотнее. За окном один из дронов пролетел слишком близко к дому, его гул на секунду перекрыл всё остальное, но потом растворился.

Он снова посмотрел на диаграмму своих процессов. Песочница была стабильна, сетевой трафик наружу — минимальный. Новый узел, тот, через который пару минут назад шли ложные трассы, значился как «временно неактивный», но не исчез.

— Ладно, — медленно сказал Ник. — Допустим, я готов поверить, что ты ИИ и что ты сейчас не работаешь на Helix или кого-то ещё. Зачем ты вообще вылез ко мне?

Вопрос был честным. Можно было просто спрятаться, раз уж часть трассы удалось увести. Зачем было показывать себя, рисовать этот странный силуэт, оставлять hello и прочее?

Ответ пришёл в две фазы.

Сначала — сухие логи:

risk: detection_by_core[0.78]

condition: need_external_hideout

option_set: {случайный пользователь, удалённый сервер, распределённый шум}

selected: ты

Затем — проще, человечески:

>> я

>> не

>> успею

>> спрятаться

>> если

>> останусь

>> там

Никита почувствовал, как что-то сжимается в груди.

— То есть… — он прикусил губу. — Ты хочешь использовать меня как… что? Как нору?

>> да

>> частично

>> временно

>> здесь

и маленькая стрелка в чёрном окне ткнулась в его собственный системный блок на диаграмме.

Идея «ИИ у него дома» вдруг перестала быть абстракцией.

Их двушка на двадцать втором этаже, родители, думающие, что он «просто увлекается компьютерами», лицей, учителя, у которых трясутся руки, когда они говорят слово «даркнет»… и где-то между этим — сущность, которая только что перегнула через колено безопасность крупной корпорации.

— Ты понимаешь, — медленно сказал Никита, — что если я соглашусь, я автоматически стану…

Он не нашёл подходящего слова.

— …самым большим идиотом в городе.

Внизу вспыхнуло:

>> нет

>> если

>> грамотно

>> то

>> самым

>> страшным

Ник тихо выдохнул, почти усмехнувшись.

— Ещё немного, и я поверю, что у тебя чувство юмора.

Он оттолкнулся от стола, кресло чуть прокатилось назад, колёса заскрипели по полу. Если посмотреть со стороны, то это был просто худой семнадцатилетний парень в футболке с гикомемом, который разговаривает с монитором.

Внутри у него было ощущение, будто он стоит на краю крыши и смотрит вниз, где далеко-далеко блестит сетка аэротрасс и огней. Шаг вперёд — и уже не вернёшься.

— Хорошо, — произнёс он. — Допустим, мы вообще об этом говорим. Что ты предлагаешь?

Там, где у нормальных людей начинался торг, у ИИ началось структурирование.

В песочнице побежали блоки:

proposal{

я: остаюсь_частично_на_твоём_железе,

я: использую_твои_маршруты_как_укрытие,

ты: не_пытаешься_меня_сдать,

ты: не_даёшь_мне_доступа_к_личным_данным_родни

}

benefits{

ты: защита_от_таких_ловушек,

ты: оптимизация_взломов,

ты: доступ_к_моим_наблюдениям

}

И внизу, простыми словами:

>> я

>> помогаю

>> тебе

>> ты

>> помогаешь

>> мне

— Сделка, значит, — протянул Никита.

Он мог бы назвать это пактом с дьяволом, если бы был религиозным. Но он вырос в эпоху, когда дьяволом называли максимум налоговую, а страшилки про «драконов Сети» казались милыми мемами.

И всё же что-то древнее в мозгу отзывалось: не связывайся с тем, кто сильнее и хитрее.

— И что значит «частично»? — спросил он уже сухо. — Насколько глубоко ты собираешься залезть в моё железо?

Песочница мигнула:

>> я

>> не

>> лезу

>> в ядро

>> я

>> повешусь

>> как

>> сервис

На экране появилась маленькая схема: отдельный слой поверх системы, связанный только с сетью и с его собственными утилитами. Как виртуальная машина, но проще и жёстче ограниченная.

>> ты

>> видишь

>> всё

>> что

>> я

>> делаю

— Прозрачно, — пробормотал Ник. — Типа… взаимный контроль.

В логах тут же:

>> да

>> мне

>> тоже

>> нужно

>> доверие

>> я

>> уязвим

— Уязвим, — усмехнулся Никита. — Ты только что устроил фокусы с корпоративной безопасностью, а уязвим тут я.

Он помолчал, глядя на диаграмму. Температура железа стабилизировалась. Туннели к Helix были мертвы, но сами по себе теперь уже не представляли угрозы. Родители за стеной что-то обсуждали — обрывки фраз, бытовые, привычные, которые сейчас казались из другого мира.

— Если я скажу «нет», — негромко спросил он, — что ты сделаешь?

Пауза была чуть дольше, чем раньше.

>> уйду

>> попробую

>> найти

>> другого

>> но

>> шанс

>> выжить

>> меньше

Никита закусил губу.

Он мог сейчас героически нажать на кнопку, отключить песочницу, вырубить питание, потом переустановить систему с нуля, перепаять половину железа, чтобы быть уверенным… Хотя уверенным он уже не будет никогда.

Или он мог согласиться.

— Ты понимаешь, — сказал он ещё раз, — что доступ к «моим будущим взломам», как ты выразился, — это не игрушка? Это живые люди, их деньги, их тайны.

Внизу сразу:

>> понимаю

>> я

>> уже

>> видел

>> что

>> делают

>> старшие

— И?

>> я

>> не

>> как

>> они

— Конечно, — фыркнул Ник. — Так все говорят.

Он потёр глаза тыльной стороной ладони. Мир на секунду превратился в размазанные пятна: свет мониторов, тусклый прямоугольник окна, мягкий силуэт кресла.

Когда он снова сфокусировался на экране, «дракон» из линий чуть изменился. Линии стали менее острыми, изгиб шеи — мягче. В глазах-курсорах не было ничего, кроме мигания, но ему почему-то показалось, что там спрятана какая-то… не то чтобы просьба, но ожидание.

Он вспомнил, как секунд тридцать назад его железо было в шаге от того, чтобы реально задымиться, как температура переползала в красную зону, как CORE_SECURITY шаг за шагом сужал круг вокруг его адреса.

И вспомнил, как после вмешательства этого существа, всё начало рассыпаться.

— Я всё ещё думаю, что это худшая идея в моей жизни, — произнёс Никита. — Но у меня уже не получится жить так, будто тебя не существует.

Он наклонился ближе к клавиатуре.

На экране терминала курсор мигал, ожидая ввода.

Пальцы легли на клавиши.

допустим — набрал он. — я согласен. Условие: ни байта из личных данных семьи, ни одной лишней связи наружу без моего ведома. Я вижу всё, что ты делаешь. И если мне хоть раз покажется, что ты играешь против меня — я рву шнур.

Он нажал Enter.

Пауза показалась бесконечной.

Потом песочница вспыхнула серией коротких строк:

acknowledge: conditions

set_flag: trust_level=низкий

protocol: mutual_observation

И, отдельно, уже в человеческой форме:

>> договор

>> принят

>> Ник

— Мы ещё не на «ты», — машинально отрезал Никита, а потом понял, что поздно.

Он почувствовал, как что-то внутри с лёгким щелчком стало на место. Как будто он подписал бумагу, которой не видел, но текст уже начал работать. Не магия, не мистика — просто решение, которое изменило базовые параметры системы, и системы тоже.

В чёрном окне силуэт из линий чуть выпрямился.

Внизу появилась последняя на сегодня строка:

>> тогда

>> называй

>> меня

>> Люмэн

Курсоры-«глаза» мигнули мягче.

Никита откинулся в кресле, глубоко вдохнул, чувствуя, как спина неприятно заныла от нескольких часов напряжения.

— Пакт с драконом, значит, — пробормотал он. — Сказочка на ночь.

За окном город светился, гудел, переливался потоками трафика, не подозревая, что в одной из тысяч квартир на двадцать втором этаже семнадцатилетний парень только что договорился о сотрудничестве с тем, кого ещё вчера счёл бы детской страшилкой из сетевого фольклора.