Кирилл взглянул на часы и поежился: он по своему обыкновению явился на встречу чуть раньше назначенного времени и уже успел основательно замерзнуть. Но ждать пришлось недолго — едва он собрался спрятаться от пронизывающего ветра в здании вокзала, его окликнули.
— Кикс!
Этого долговязого парня в надвинутом на глаза капюшоне он узнал сразу и несказанно удивился: Кирилл, конечно, ожидал увидеть кого‑то из бывших коллег, но полагал, что инициатором станет начальство. Да и прозвище визави вполне соответствовало назначенному месту встречи.
— Привет, Шпала. Ты где мой номер раздобыл?
— Многие знания — многие печали, — философски отозвался тот. — Один пришел? Это хорошо. Пойдем местечко потеплее поищем, нефиг тут мерзнуть.
Подходящая забегаловка, где в этот час не было ни одного посетителя, отыскалась совсем рядом, на улице Лебедева.
— Я из нашей конторы полтора месяца назад свалил, как только срок обязательных работ вышел, — потягивая из похожего на цветочную вазу бокала «Василеостровское», начал рассказ Шпала. — Предлагали остаться, но я решил послать их к черту. Вроде и работа нормальная, но все равно как в тюрьме. Устроился в другую фирму, тоже инфобезом занимается.
— А остальные как? — отхлебнув из своей «вазы», поинтересовался Кирилл.
Пиво он не любил, но за компанию решил попробовать продукт местной пивоварни. Горечь разлилась по языку, и он, поморщившись, поставил кружку обратно на стол. Шпала пожал плечами:
— Да не общаюсь я ни с кем особо. Тебе вот только решил набрать. Короче, когда эта DDoS-атака началась, ну, ты врубаешься о чем речь, я до самого конца не верил, что это все «Терра» устроила…
— Я и сам сомневался, — согласился Кирилл, — ведь они, считай, себе приговор подписали. Кто с ними связываться после такого будет, софт покупать, акции? Да от их программ нормальные люди избавятся теперь при первой же возможности. Тут ибэшники по всему миру на уши должны были встать…
— А ни хрена, Кикс, — снова приложился к бокалу Шпала, — все немного сложнее, чем ты думаешь. Главные заказчики, которые из правительства, утонуть им в любом случае не дадут. Да и не тонет такое… Это мне Кущин рассказал, а он в теме. Короче, там у них уже давненько грызня шла между двумя противоборствующими группировками за финансирование и кусок пирога повкуснее. Одни продвигали идею, что, мол, все войны будущего будут вестись исключительно в сети, и хотели форсировать разработку кибероружия вроде этого самого «Перцептрона». Если взлетит, такую систему можно потом тому же государству продать за очень немалые суммы. Озолотишься, как какой‑нибудь «Локхид», который истребители штампует. Другие говорили: «Не занимайтесь фигней и давайте клепать танчики». Эти за традиционные подходы и в кибервойны будущего не верят. На всех, как ты понимаешь, денег не хватит. А тут подвернулся отличный случай проверить теорию на практике, да не первыми ударить, а как бы ответить на внешнее вторжение. Показать, так сказать, наглядно, на что идут бабки налогоплательщиков, а заодно и эффективность этого самого кибероружия протестировать. И конкурентам, которые на бабло претендуют, нос утереть. Они ведь там уверены, что атака на «Терру» была санкционирована на государственном уровне…
— И что‑то мне подсказывает, что это не прям стопроцентное заблуждение.

— Я не о том сейчас, Кикс. — Шпала одним глотком осушил половину своей «вазы» и вытер пену с лица тыльной стороной ладони. — Мы тут в нашей конторе, ну, где я сейчас работаю, постоянно сеть мониторим. Активность ботнетов отслеживаем и все такое. Так вот, в сетях с айпишниками «Терры» в последнее время ходит подозрительный шифрованный трафик… Ну как подозрительный… Необычный.
— Думаешь, оно никуда не делось? — насторожился Кирилл.
Шпала криво усмехнулся:
— А сам как считаешь? Должны же у таких серьезных ребят остаться бэкапы. Полностью изолированные от внешнего интернета air-gapped-серверы или целые сети, например. Не могли они не предусмотреть такую защиту. Так что рано или поздно опомнятся, точно тебе говорю. Только вот не это самое неприятное.
— А что?
— Да клиенты их, которым мы хвост накрутили. Вернее, ты накрутил. Я с Кущиным пообщался, он мужик умный, хоть и упертый, как баран. У ФБР десятки собственных отделений по всему миру и больше полусотни представительств. А есть еще Интерпол и Европол с их киберкрайм‑подразделениями. Все наши ники, IP-адреса, имейлы и аккаунты на форумах там известны, и, если захотят, они любого могут упрятать в камеру лет эдак на тридцать.
— Если найдут.
— Ну, я‑то тебя нашел…
Шпала допил свое пиво, поставил опустевший бокал на стол и, поднявшись, натянул на голову капюшон.
— В общем, Кикс, я тебя предупредить хотел, чтобы ты того… Был поосторожнее. Ничего еще не закончилось, чувак. Такие вот дела… Ладно, бывай.
Кирилл проводил его взглядом, дождавшись, когда черный капюшон растворится в толпе прохожих за окнами кофейни. Внутри неприятно кольнуло: а ведь они со Шпалой никогда не были близкими друзьями и работали вместе совсем недолго. Да и в те времена не слишком часто общались. И вдруг тот решил его разыскать, проявить заботу… За этим предупреждением может скрываться что угодно — от искреннего желания предостеречь до чьей‑то непонятной игры. И не факт, что игра эта — в его пользу.
Открыв крышку ноута и запустив браузер, Кирилл смачно выругался. В его новые обязанности входило не только поддерживать чистоту в компьютерном зале и в сортире, но и следить за порядком на сайте игрового клуба. Ну как сайт — так себе, домашняя страничка на сервере провайдера, предоставлявшего «Синему экрану» доступ в интернет. Зато с гостевой книгой. Вот в этой гостевой книге и творился сейчас форменный хаос: некто под ником iV1rus непрерывно постил туда матерные сообщения, не отличающиеся особым словарным разнообразием. Кирилл насчитал четыре десятка и даже удалил несколько, но на их месте спустя всего лишь пару минут появились новые. Судя по всему, это развлекался какой‑то не слишком умный школьник, наслаждающийся своей анонимностью и полной безнаказанностью, причем Кирилл даже смутно догадывался, кто именно.
Конечно, можно закрыть поганцу доступ к сайту по IP, но тот, если в голове у него имеется хоть немного мозгов, войдет в сеть через прокси, и все начнется сначала. Нужно отбить у малолетнего хулигана само желание пакостить в чужой гостевой книге. Работу гостевухи обеспечивал написанный на Perl примитивный CGI-скрипт, позаимствованный из общедоступной коллекции бесплатного софта. Запрещать отправку содержимого формы отдельным пользователям он не умел, максимум, на что был способен, — зафиксировать дату и время публикации каждого сообщения. Этим скромным набором и ограничивалась вся исходная информация.
Кирилл подключился к серверу провайдера по FTP и открыл файл апачевского журнала access.. Файл оказался здоровенным, и на то, чтобы найти точные соответствия между моментами появления нецензурных посланий в гостевой книге и вызова CGI-скрипта, ушло немало времени. Но оно не пропало впустую — вскоре Кирилл собрал целую коллекцию строк, описывавших интересующие его события. Все они содержали одну и ту же запись: "GET/, свидетельствующую о том, что отправка очередного сообщения завершилась успехом. Однако самое любопытное обнаружилось в конце — "http://.
Ну, уже хоть что‑то. Во‑первых, хулиган всегда заходил на сайт клуба с одного и того же IP-адреса, во‑вторых, пользовался он браузером Internet Explorer 6.0 на компе с Windows 2000, а часовой пояс у него настроен московский. Кирилл пробежался по соседним запросам: вот неизвестный открыл страницу гостевой книги, вот отправил форму, а затем перешел на страничку с результатами, любуясь содеянным. Сравнив User-Agent в этих записях, Кирилл убедился, что перед ним один и тот же пользователь.
Интересно, а кому принадлежит этот айпишник? Он открыл терминал, набрал на клавиатуре команды whois и dig , пробежался глазами по выводу консоли. Среди вороха прочих данных база RIPE выдала запись: «LENTRANSMASH-SPB Network». На всякий случай Кирилл пинганул адрес — тот откликнулся, значит, машина жива.
Поискав в сети, Кирилл быстро нашел этот самый «Лентрансмаш» — большое научно‑производственное объединение на южной окраине города. Видимо, безобразник пользовался папиной служебной персоналкой за неимением домашнего компьютера: об этом говорило и то, что все сообщения отправлялись строго в рабочее время, до восемнадцати нуль‑нуль, и к тому же после трех пополудни, когда заканчивались занятия в школе. Да и двухтысячная винда намекала: это определенно конторский комп, обитающий в пыльном кабинете какого‑нибудь замшелого госпредприятия.
Рассчитывая хоть на какой‑то полезный улов, Кирилл забил ник iV1rus в «Гугле», «Рамблере» и «Яндексе». Удача оказалась на его стороне: поисковики выдали не только ICQ UIN, принадлежащий пользователю по имени Ivan Zarubin, но в дополнение к нему — кучу постов этого юзера на формах overclockers.ru, gametech.ru и cyberforum.ru. На аватарке «Киберфорума» Кирилл узнал давешнего любителя пива, которого выгнал накануне из компьютерного клуба, а в профиле обнаружил адрес электронной почты. Он побродил по выдаче «Гугла» еще немного. В ответ на следующий запрос из недр поисковой системы выплыло имя и настоящего владельца персоналки: Владимир Зарубин, главный инженер «Лентрансмаша». Усмехнувшись, Кирилл запустил почтовик и, поглядывая на мигающий курсор, начал набирать строчку за строчкой:
To: Ivan Zarubin
From: admin@bluescreen.plink.spb.ru
Subject: Покайся, ибо грядёт!
Здравствуй, Ванюша.
Да‑да, именно ты.
Мне понравились твои шутки в гостевой книге на хоумпаге bluescreen.plink.spb.ru. Правда, IP, с которого ты туда писал, ведет в «Лентрансмаш», в кабинет главного инженера — твоего отца, Владимира Зарубина. Я знаю, что ты учишься в школе на Братской улице, знаю твой домашний адрес, знаю, какая система стоит на компе твоего папы и как зовут твою таксу. Я мог бы зайти на этот комп и поменять заставку на твое фото в розовом купальнике, отправить лог твоих подвигов директору школы и на почту отца или просто хакнуть твой аккаунт на Cyberforum и подписать все твои посты: «Я люблю Барби» (кстати, пароль там у тебя не самый надежный). Но я добрый :). Поэтому у тебя есть ровно сутки, чтобы:
- Извиниться в гостевой.
- Написать, что Админ — крут.
Иначе я запущу операцию «Папа в ярости».
Выбор за тобой, iV1rus.
Kicks, тот‑кто‑всегда‑в-сети.
Перечитав с улыбкой написанное, Кирилл нажал на кнопку, отправляя письмо адресату. Осталось подкрепить свои угрозы чем‑то чуть более действенным, нежели простые слова. Поскольку веб‑страницы гостевой книги создавались при вызове CGI-скрипта автоматически, Кирилл добавил в код пару строк, которые в момент обращения к этому скрипту проверяли IP-адрес посетителя и заносили его в переменную $ip. На всякий случай Кирилл решил получить и реальный адрес пользователя с помощью параметра HTTP_X_FORWARDED_FOR — вдруг тот все‑таки знает, что такое прокси. Конечно, первый адрес в цепочке не всегда гарантированно настоящий клиентский IP — заголовки можно и подделать, но на такое наш Ванюша вряд ли способен. Это значение Кирилл поместил в переменную $real_ip. Если любой из полученных IP-адресов совпадал с айпишником лентрансмашевского компьютера, забитого в переменную $lamer_ip, вступала в действие вторая часть программы.

Кирилл знал: одно из наиболее слабых мест Internet Explorer версии 6 заключается в том, что при большом числе обращений к удаленным узлам браузер получает множество HTTP-ответов, а из‑за особенностей управления окнами и памятью это приводит к зависанию программы. Если с помощью цикла попытаться открыть на машине Вани Зарубина примерно сто тысяч окон Internet Explorer, браузер попросту рухнет под собственной тяжестью. Крутилась бы на его машине Windows 98 или Millennium, «Эксплорер» похоронил бы операционную систему под своими руинами, но двухтысячная, пожалуй, выдержит. Ко всему прочему, с использованием нескольких простых команд JavaScript эти окна можно открывать в полноэкранном режиме, предварительно убрав из интерфейса браузера все средства управления, из‑за чего закрыть их будет не так‑то просто…
Примитивно, конечно, но придумывать более изощренную подлянку Кириллу было сейчас лень. С какой бы целью Ваня ни зашел теперь в гостевую — написать очередную гадость или все‑таки извиниться, его будет ждать очень неприятный сюрприз…
Кирилл откинулся на спинку стула, довольный проделанной работой. В голове уже рисовалась картина, как школьник начнет в панике метаться между сотнями всплывающих окон, не понимая, что происходит. Это чувство грело лучше, чем батарея центрального отопления. Минимум усилий — максимум эффекта, зато гостевая теперь под его полным контролем, а малолетний ламер будет знать, что интернет — это не место для безнаказанных выходок. Потянувшись за наушниками, Кирилл включил музыку и впервые за сегодняшний день позволил себе расслабиться. Мельком взглянул на часы в нижнем углу экрана: до закрытия магазинчика, что обосновался в цокольном этаже соседнего дома, есть еще несколько часов, а значит, он успеет пополнить запасы продуктов.
В поход за едой он заставил себя отправиться минут через сорок. Нацепил на ноги не успевшие толком просохнуть ботинки, запихнул в карман куртки мятый полиэтиленовый пакет и достал из кармана ключи. Размышляя о том, что приготовить сегодня на ужин, да еще и с таким расчетом, чтобы хватило на пару дней, он принялся запирать входную дверь, когда его неожиданно окликнули.
— Добрый вечер, Кирилл!
Сосед из квартиры напротив, приметный старик с пышными седыми усами, вышел на свой традиционный променад до мусоропровода в синих тренировочных штанах и с пластмассовым ведром в руках.
— Здравствуйте, — вежливо кивнул Кирилл.
— Борис Семенович, — представился сосед. — Ты извини, пожалуйста, что я вот так беззастенчиво тебя задерживаю, но вот хотел с одной небольшой просьбой обратиться. Можно?
Кирилл подтолкнул непослушную дверь коленом, и замок наконец закрылся.
— Пожалуйста.
— У меня тут с компьютером что‑то случилось. Не то вирус какой подцепил, не то сломалось чего. А мне без компьютера никак, я через него и с дочкой общаюсь, и внука увидеть могу, не на коленках покачать, ну хоть так. Посмотришь, когда свободная минутка появится?
— Конечно, — пожал плечами Кирилл.
— Вот спасибо! — расплылся в улыбке Борис Семенович. — Я, знаешь ли, еще шахматы очень люблю. Раньше ведь как было: хочешь с кем‑то в шахматы сразиться, можно по переписке партию организовать. Пишешь свой ход на бумаге и отправляешь письмом. Так письмо‑то долго идет, а потом ждешь ответа еще месяц, оттого партия, бывает, и на год растягивается. А сейчас все проще стало: зашел в интернет и выбирай себе соперника по силам, хоть из Владивостока, хоть из Америки… Ты сам‑то в шахматы играешь?
— Не доводилось.
— А я тебя научу, коли захочешь. Только сначала нужно компьютер починить.
«Почему бы и не помочь старику? — подумал про себя Кирилл, — тем более это отличный повод наладить отношения с живущим напротив пенсионером, к которому можно будет потом обратиться, случись такая нужда. Вряд ли там с компом что‑то серьезное…»
И вдруг замер на месте.
А ведь он никогда раньше не называл соседу своего имени. И тем более не говорил, что каким‑то образом связан с компьютерами.
