Ян Лифэн в конце концов не выдержал.
Инквизитор сказал: «Продолжайте наблюдение». Но Ян Лифэн проработал в этой сфере одиннадцать лет — он повидал слишком много брешей в безопасности, слишком много «давайте сначала понаблюдаем» превращались в «давно надо было заблокировать». Пиратские серверы таковы: каждый прожитый ими день наносит официальному серверу еще один удар.
Поэтому он решил провести «неофициальную сканирование».
Не с внутреннего IP-адреса Моюань Стоунтэйнтейн — это слишком бросалось бы в глаза, и если бы Инквизитор стал проверять внутренние журналы операций, с него бы спросили. Он действовал по-своему: задействовал облачный сервер, арендованный в стороннем дата-центре, который не имел ни малейшей официальной связи с Моюань Стоунтэйнтейн. С этого облачного сервера он запустил программу под названием «сканирование отпечатков портов».
Принцип прост: отправить на определенные порты целевого IP-адреса набор тщательно сформированных пакетов данных. Если возвращающиеся характеристики отклика совпадают с какими-либо известными сигнатурами протоколов серверной части Звездной Бездны, можно с высокой долей уверенности утверждать, что на целевом хосте запущен пиратский сервер.
Сканирование началось.
Целевой IP: корпус No 7 Цзянхайского университета.
Ян Лифэн прождал перед экраном около сорока секунд. Результаты сканирования стали поступать строка за строкой.
Вернулась первая строка: Порт 8080 — HTTP — Стандартный ответ Apache.
Ян Лифэн на мгновение замер. Это был не протокол игрового сервера, а веб-сервер.
Вторая строка: Порт 443 — HTTPS — TLS 1.3. Сертификат выдан *.. — Действителен.
Третья строка: Порт 3724 — Тайм-аут. Нет ответа.
Начиная с четвертой строки, выражение лица Яна Лифэна изменилось.
Порт 1935 — Потоковый медиапротокол RTMP. Характеристики отклика совпадают: Adobe Flash Media Server.
Порт 554 — Потоковый медиапротокол RTSP. Характеристики отклика совпадают: Darwin Streaming Server.
Порт 80 — HTTP. Заголовок отклика содержит: X-Powered-By: Jianghai-Uy-VOD.
Все порты возвращали стандартные протоколы потоковых медиасерверов. Те порты, что по идее должны были принадлежать игровому серверу, либо выдавали тайм-аут, либо возвращали формат пакетов данных, не имеющий к игре никакого отношения.
Этот хост совершенно не походил на пиратский сервер.
Он выглядел как школьный сервер видеопотоков по запросу.
Ян Лифэн сидел перед экраном, нахмурившись так, что брови сошлись на переносице. Он отказывался в это верить. IP-адрес, который из-за трехмиллионной награды от молодого господина Циня оказался прижат к стенке и обслуживал одновременно четыре тысячи восемьсот игроков, как он мог превратиться в сайт потокового вещания? Если только владелец этого хоста за те жалкие несколько десятков минут после обнаружения аномального трафика не успел выполнить все операции целиком: обратную разведку, маскировку трафика, перенаправление протоколов и подмену отпечатков портов. Причем скорость этого процесса оказалась даже выше, чем у внутренней команды безопасности Моюань Стоунтэйнтейн.
Сяохэ, выгрузи-ка мне снова логи трафика этого хоста. Я хочу увидеть, менялись ли характеристики трафика до того, как его поместили как аномальный, и после.
Линь Сяохэ вывела на экран два лога, расположив их рядом.
Слева — до пометки. Шаблон трафика: P2P плюс игровой протокол. Процент совпадения с характеристиками пиратского сервера: 71,4%.
Справа — после пометки. Шаблон трафика: HTTP/HTTPS плюс RTMP/RTSP. Процент совпадения с характеристиками медиасервера: 94,7%.
Между двумя логами прошло ровно тридцать одна минута.
Ян Лифэн в упор смотрел на эту разницу во времени. Тридцать одна минута. От пометки до завершения маскировки прошло всего тридцать одна минута. Он прекрасно знал, сколько времени требуется первоклассному инженеру по безопасности на контрмеры аналогичного уровня: часа два-три. И еще лучше он знал, что обычный создатель пиратского сервера даже не додумался бы заняться маскировкой портовых отпечатков.
Этот человек занимается вовсе не играми, — тихо произнес Ян Лифэн, но сам он услышал это предельно отчетливо. — Этот человек занимается безопасностью.
Линь Сяохэ не посмела ответить. Но по профилю Яна Лифэна она заметила выражение, какого не видела у него за все восемь месяцев своей работы. То был не гнев и не настороженность. То было нечто похожее на тончайшее уважение равного по силе соперника.
Ян Лифэн немного постучал по клавиатуре. Затем он открыл новую программу сканирования. От сетевого уровня вглубь прикладного — он собирался изучить весь стек сетевых коммуникаций этого хоста, от нижнего уровня до самого верхнего, проверяя, действительно ли протоколы каждого слоя полностью совпадают с моделью медиасервера.
Сканирование выполнялось двенадцать минут. Когда результаты были готовы, Ян Лифэн откинулся на спинку кресла и закрыл глаза.
Совпадает каждый слой. Даже формат кодирования потокового аудио корректен. Этот человек не просто наспех соорудил какую-то оболочку — он целиком перетащил сюда весь коммуникационный стек медиасервера и использовал его в качестве маскировки. Если бы я предварительно не увидел тот отчет об аномальном трафике, я бы без малейших колебаний заключил, что перед нами легальный кампусный VOD-сервер.
Он развернул кресло лицом к Линь Сяохэ.
Заводи на него досье. Пиши не «предположительно пиратский сервер», а «сложносоставной хост с неопределенными характеристиками». Пока не сделаем окончательных выводов, наверх не докладывать.
Почему не докладывать?
Потому что нет улик. Ян Лифэн развернул к ней экран. Все мои сегодняшние сканирования с юридической точки зрения представляют собой зондирование легального хоста внутри образовательной сети без какого-либо на то разрешения. Если мы доложим наверх, но у нас не окажется железных доказательств, это превратится в улику против самой Моюань Стоунтэйнтейн за незаконное сканирование университетской сети. Этот человек замаскировал все под легальные сервисы — он вынуждает нас применять противозаконные методы, чтобы доказать его незаконность. Знаешь, как подобное поведение называется в кругах специалистов по безопасности?
Линь Сяохэ покачала головой.
Это называется цивилизованной обороной, — чеканя каждое слово, произнес Ян Лифэн. — Твой противник намеренно прячет свои слабые места там, где ты не смеешь нанести удар, потому что знает: ты — полиция. А полиция не имеет права выбивать дверь гражданина без ордера на обыск.
Он поднялся и подошел к окну. За стеклом пекинское небо выглядело серым и тусклым.
Этот человек использует наши собственные правила против нас же самих.
Цзянхайский университет. Общежитие 312.
Все три уровня проксирования на бэкенде пиратского сервера уже функционировали.
Первый уровень — роутер в общежитии. Все пакеты данных, отправляемые с пиратского сервера, сначала проходят через уровень локального преобразования сетевых адресов, сопоставляя внутренний локальный адрес общежития с неприметным узлом общеуниверситетской сети Цзянхайского университета.
Второй уровень — арендованный облачный сервер. Его IP-адрес находится в Шэньчжэне, расчетный период — ежемесячный, оплата идет с того самого студенческого аккаунта Лу Ци на Аликлауд, который тот содержал уже три с половиной года. Роль этого прокси заключается в перенаправлении трафика с узла кампусной сети в публичное облачное пространство, чтобы при любой попытке внешнего сканирования IP первый же обнаруженный узел вел на шэньчжэньский облачный хост, а не в общежитие Цзянхайского университета.
Третий уровень — приманка в виде фальшивого пиратского сервера. Виртуальный хост, замаскированный под игровой пиратский сервер, висел под подсетью шэньчжэньского облачного сервера. Если антипиратская команда пустится по следу трафика, они найдут пиратский сервер. Но на нем не окажется ни одного реального игрока, а все онлайн-данные будут представлять собой сгенерированных искусственным интеллектом симулированных пользователей.
Трехуровневое проксирование. Лу Ци вывел панель конфигурации в общий вид, где для каждого слоя рядом были указаны задержка и процент потери пакетов. Первый уровень защищает от внутреннего сканирования кампусной сети. Второй — от внешнего вычисления IP. Третий... если кто-то пробьет первые два слоя, на третьем их ждет ответ. Только вот этот ответ — фальшивый.
Чэнь Хао, глядя на эту трехуровневую архитектуру, вспомнил недавние слова Лу Ци: «Этого достаточно».
Теперь ему казалось, что дело тут вовсе не в «достаточности», просто все было рассчитано идеально.
Брат Ци, а если кто-то сможет пробить все твои три слоя целиком?
Значит, этот человек разбирается в игре лучше меня. Лу Ци повернул стул и посмотрел на Чэнь Хао. Если этот день действительно настанет, я буду только рад.
Рад?!
Угу. Потому что наконец-то смогу сказать себе: я не единственный, кто знает, как написана каждая строчка кода в этой игре.
Чэнь Хао молча поглядел на Лу Ци пару секунд. Затем усмехнулся.
Брат Ци.
Мм.
Ты правда чудила.
Ты говоришь это уже в четвертый раз.
Потому что каждый раз, когда мне кажется, будто я привык, ты становишься еще большим чудилой.
За окном снова раздался стук баскетбольного мяча, который каждый день неизменно раздавался в половине четвертого.
В панели администратора пиратского сервера Лу Ци попеременно мигали два новых лога.
Первый: Прогресс репетиции облавы: 97%. Маршрут уклонения от боя на официальном сервере — скоро будет завершен.
Второй: Частота сканирования против пиратского сервера: один раз в день. Исходный IP-адрес сканирования записан и добавлен в белый список стратегии маскировки. При следующем сканировании они увидят потоковый сервер, который будет еще больше похож на потоковый сервер, чем сегодня.

Комментарии

Загрузка...