MORI VPN. Спасение или утка?
Долго думал, делать этот разбор или нет. Наркотрафик меня не особо интересует, но так как Мориарти — блогер с миллионной аудиторией, я просто не мог пройти мимо.
Триггером сработал ролик про РКН, который мне показался уж слишком плоским и заказным. А ведь так все хорошо начиналось, а сейчас что? Царь хороший — бояре плохие, импортозамещение и загнивающий запад. Это просто уныло!
Перед тем как приступить, сразу хочу зафиксировать, что сетевые настройки VPN MORI действительно защищены, а посему — стандартные инструменты сетевого сканирования не дали НИЧЕГО!
Я же парень упертый и полез в код, но начнем с самого начала. После перехода в Telegram-бот MORI VPN нас встречает политика конфиденциальности, в которой четко написано, что сервис собирает о вас данные.
Обратите внимание на пункт 1.2:
Из данного пункта сразу становится понятно, что MORI VPN ведет логи.
Если вам тоже странно видеть, как "наркодилер" собирает и обрабатывает данные в соответствии с законодательством РФ, то вы не одиноки в своем недоумении.
Ладно, скачиваем приложение. Не буду скатываться в обзор всех вкладок, но скажу, что выглядит действительно солидно — над фронтендом работали профессионалы. Этот проект явно серьезно финансируется и не выглядит как любительский пробный продукт. Однако, меня интересует вкладка пользователя.
А вот тут уже написано "Zero-Logs политика". Стоимость ежемесячной подписки в 250 рублей, при затратах на фронт — явно убыточна. Можно было бы сослаться на проявление альтруизма, если бы не предыдущий скам-проект Мориарти, который был направлен исключительно на получение прибыли.
Если коррелировать частоту выхода видео на канале "Мориарти" и его преемника "BAZA", то напрашивается вопрос, не происходила ли передача проектов в новые руки в период многомесячного простоя?
Думаю, код скажет нам больше, поэтому сразу открываю config.json:
В начале кода кажется, что логи на стороне клиента выключены, но это ни о чем не говорит, ведь главной опасностью для пользователя выступают серверные логи.
Переходим к приему трафика от приложений:
Казалось бы, локальный порт, значит безопасно, но есть нюансы. Например "auth": "noauth", это значит, что любой процесс на компьютере может использовать 10808 порт как прокси без подтверждения, но это мелочь, ведь "sniffing": {"enabled": false} — такие запросы могут уйти напрямую, минуя тоннель, раскрывая провайдеру или локальной сети реальные DNS-запросы. Эта утечка обходит шифрование и пускает трафик по обычному IP-маршруту, про что я уже говорил в своем ролике по безопасности.
Движемся дальше и пытаемся понять, куда идет трафик:
Это главная часть конфига, сразу видим единственный российский IP 83.166.239.100, который является главным, через него проходит весь трафик. Примечательно, что домен не подменяется, а используется свой, конечно же российский "serverName": "api.chrysalisservice.store", "flow": "" — пустой, что также ослабляет обфускацию, также выставлен рандомный фингерпринт, что тоже ослабляет вашу маскировку.
Все вышеперечисленные косяки — это детский лепет, ведь админ отключил шифрование VLESS "encryption": "none", но самое опасное, что на MORI VPN использует в своем конфиге следующую строку "allowInsecure": true, которая полностью игнорирует проверку сертификатов и позволяет проводить атаки типа MITM.
А что? Очень удобно! Сначала ты ослабляешь VLESS, а затем перекладываешь шифрование на транспортный уровень и отключаешь проверку сертификатов, чтобы трафик перехватывался ТСПУ. При нормальной проверке сертификата клиент обнаружил бы подмену и разорвал соединение, но с "allowInsecure" : true — этого не происходит и трафик пользователя читается в открытом виде.
Хочу напомнить, что сейчас мы разбираем только config.json. Тут нет интересных DNS-запросов, вместо этого указаны Google DNS 8.8.8.8 и 8.8.4.4. Однако, реальная обработка DNS-трафика пользователя происходит в tun.json, к которому мы перейдем позже.
Сейчас же предлагаю обратить внимание на статистический сбор данных:
"statsUserUplink": true,"statsUserDownlink": true, "statsOutboundUplink": true и "statsOutboundDownlink": true — отслеживают объем входящего и исходящего трафика по каждому пользователю, что позволяет определить, когда вы обычно выходите в сеть, в какое время активны и другие данные, которые затем подвергаются корреляции.
Видите значение 0.0.0.0? Оно указывает с каких адресов принимать запросы к API, в нашем случае — с любых. Другими словами, API нарочно открыт наружу, и любой внешний хост может опросить StatsService и получить статистику трафика пользователей. Можно подумать, что это стандартные настройки, но я вижу тут многоуровневую систему сбора информации.
Переходим к tun.json и сразу натыкаемся на блок с обещанной DNS-архитектурой:
Нас сразу встречает публичный DNS-сервис Alibaba Group, который любезно хранит логи запросов для китайских регуляторов, которые идут по незашифрованному UDP. Второй же сервер Alibaba уже с шифрованием, но уходит туда же.
В конфиге Мориарти мы также видим CloudFlare, от которого осталось только название, ведь админы выключили динамические IP и пустили трафик через Москву.
Переходим к правилам, чтобы понять кто и кого резолвит:
Видно, что любой IP-запрос сначала смотрит в локальную таблицу. В режиме Global — DNS-запросы идут через московский прокси, а в режиме Direct напрямую через китайский DNS. Дальше видно, что заблокировали HTTPS и SVCB записи, которые нужны для ECH. Примечательно, что запросы к Google идут через московские адреса, как и любой зарубежный трафик, который не попадает под правила, исключение — китайские адреса.
Система выстроена таким образом, чтобы пропускать китайский и российский трафик напрямую, а западный возвращать обратно в Россию.
Дальше продолжать не буду, так как конфиги отражают то, что мы уже выяснили, а именно:
- Трафик логируется и акцентирует свое внимание на зарубежных ресурсах, которые мифическим образом всегда возвращаются в Россию.
- Шифрование не только ослаблено, но и отсутствует в большинстве случаев.
- Фронтенд стоит дорого, а бэкенд не содержит случайных ошибок, что говорит о технической осведомленности админов.
- В конфигурациях все идет через единый центральный сервер в Москве с сомнительной историей.
- Были обнаружены точки входа, которые позволяют вмешиваться в соединение пользователя удаленно.
В заключение скажу, что лично для меня проект явно имеет государственные корни. Для чего это было сделано? Ответ прост — ты делаешь кумиром молодежи человека, который якобы против системы и все это в изумительном качестве. На выходе мы получаем слежку за "неблагонадежным" слоем населения в глазах государства. MORI VPN — это самый опасный проект из тех, которые я разбирал, ведь его организовывали не дураки, а люди, которые обладают огромными ресурсами и компетенцией.