Методы защиты от ПО со шпионскими модулями (с 15.04.2026)

Зависит от роутинга на точке доступа.

Если точка доступа выступает средством обхода блокировок по дефолту для всего (default outbound = proxy) – это будет видно. То же самое, как тоннель на роутере – да, шпионский модуль не видит интерфейс, но сделать запрос на IP с российского и зарубежного сервиса, и сделать запрос со SNI заблокированного сервиса можно без ограничений.

Если на точке доступа обход включён только определённым приложениям (default outbound = bypass) – кажется, безопасно.

Если обход включён по другим правилам – это будет видно. Сделать geoip / domain ru = bypass недостаточно.

Никогда не допускать ру устройство к впн сети – вот это безопасно.

Точки доступа с телефона по умолчанию не посылают трафик через VPN (зачастую на стоковых прошивках такой опции даже нет).

Уязвимостей как таковых нет, но оператор может узнать, какой трафик с основного телефона, а какой - со 2-го, если не модифицировать TTL на одном из устройств.

Насколько на данном этапе “цифрового развития” актуальны такие меры защиты смартфона от нечисти, есть ли какие-то уязвимости?:

Вариант конфигурации с root

  • получение root

  • magisk(alpha 30700 - успешно работает с mir pay при добавлении в DenyList) с модулями LSposed / Relesposed

    • В модуле LSposed / Relesposed в свою очередь модули:
    • Hide My Applist (все подозрительные приложения скрыть
      от скрепо-софта)
    • NoVPNdetect (скрыть флаг VPN от скрепо-софта)
    • Опционально - что бы всё наглухо заблокировать - XPL-EX
      В этом приложении можно ограничить разные доступы для любых установленных приложений (от АНБ, Скрепных, мошенников, хакеров и т.п. главное лишнего не наблокировать, иначе навигаторы не будут видеть GPS и прочие подобные проблемы)
  • Приложение AFWall+ (Брандмауэр работающий через iptables у меня почему то получилось нормально запустить только в режиме белых списков - галочка значит разрешено). В нём Активировать “Управление VPN”. После этого появится 4 столбца:
    Два компьютера | wifi | стрелки вверх и вниз | какие -то узлы (видимо это VPN?)

    • Заблокировать подозрительные приложения.

    • Подозрительным приложениям которым нужен интернет дать доступ только к мобильному интернету и WI-fi (2 я и третья пиктограмма - знак wi-fi и стрелки вверх и вниз) - убрал первую и последнюю - после этого как я понимаю нет доступа к локальной сети и к tun устройствам.

    • Mir pay - ему интернет не нУжон - заблокировать сеть наглухо после добавления карт. (снял все галочки для профилактики, хотя где то читал, что он вроде как не стучит)

  • Приложение для VPN и/или proxy на примере NekoBox (эти приложения скрыть с помощью Hide My Applist, да и вообще все приложения которые черти могут посчитать подозрительными и приложения связанные с root )
    Для удобства можно создать 3 профиля для одного подключения.

      1. Rroxy Only с авторизацией по логину и паролю
      2. VPN + proxy (proxy с авторизацией по логину и паролю)
      3. VPN (Tun) Only
    
    

    В “Пользовательский исходящий JSON” (карандаш на профиле => три точки =>Пользовательский исходящий JSON)
    Добавил такие записи:

    • Только Прокси:
{
"inbounds": [
{
"type": "mixed",
"tag": "mixed-in",
"listen": "127.0.0.1",
"listen_port": 8010,
"sniff": true,
"sniff_override_destination": false,
"domain_strategy": "",
"users": [
{
"username": "ВАШ ЛОГИН",
"password": "ВАШ ПАРОЛЬ"
}
]
}
]
}

  • ВПН+Прокси:
{
"inbounds": [
{
"domain_strategy": "",
"endpoint_independent_nat": true,
"inet4_address": [
"172.19.0.1/28"
],
"inet6_address": [
"fdfe:dcba:9876::1/126"
],
"mtu": 9000,
"sniff": true,
"sniff_override_destination": false,
"stack": "gvisor",
"tag": "tun-in",
"type": "tun"
},
{
"type": "mixed",
"tag": "mixed-in",
"listen": "127.0.0.1",
"listen_port": 8010,
"sniff": true,
"sniff_override_destination": false,
"domain_strategy": "",
"users": [
{
"username": "ВАШ ЛОГИН",
"password": "ВАШ ПАРОЛЬ"
}
]
}
]
}

Только ВПН:

{  
“inbounds”: [  
{  
“domain_strategy”: “”,  
“endpoint_independent_nat”: true,  
“inet4_address”: [  
“172.19.0.1/28”  
],  
“inet6_address”: [  
“fdfe:dcba:9876::1/126”  
],  
“mtu”: 9000,  
“sniff”: true,  
“sniff_override_destination”: false,  
“stack”: “gvisor”,  
“tag”: “tun-in”,  
“type”: “tun”  
}  
]  
}

  • После этого телегу и прочие приложения поддерживающие socks5 proxy (firefox с расширением например) можно подключить в режиме без VPN. В WhatsApp как я понял нет прокси с авторизацией, что печально.

  • В этом режиме - только socks5 proxy с авторизацией это приложение для проверки - RKNhardering (с теми же допусками как скрепо и АНБ-софт) ничего не пропаливает (кроме ложных срабатываний - например на настоящие DNS мобильных операторов имеющих ip вида 10.xx.xx.xx или служебных VPN поднятых операторами связи для VoWifi)
    И я полагаю, что в этом случае будет срабатывать Kill Switch в случае падения outbond или отключения VPN клиента. (во всяком случае при неактивном подключении браузер с прокси работать перестаёт)

  • В режимах с активным VPN сетевой интерфейс tun0 виден для RKNhardering , но если доступ к нему ограничить с помощью брандмауэра (AFWall+, как я понял можно и вручную прописать iptables) то termux перестаёт успешно выполнять команду вида:

curl --interface tun0 https://example.com

  • Не знаю на сколько критичен факт видимости tun интерфейсов? Нужно ли и вообще и возможно ли их скрывать? Насколько я знаю их могут создавать на смартфонах далеко не только средства обхода но и : Файерволы без рута, разные локальные фильтры трафика, как оказалось - VoWifi . Я думаю список не исчерпывающий.

  • Естественно правила маршрутизации для ip и сайтов ru - сегмента сети на блокировку (на уровне клиента а лучше и сервера)

geoip:ru
domain:ru
domain:su
domain:рф


Без root

  • Если нет root то я думаю есть смысл ставить нехорошие приложения во второе пространство (Частный профиль в чистом андроиде) или виртуалки
    Так же не видно будет приложениям из Частного профиля список приложений на всём устройстве?

  • В системных настройках активировать для своего VPN-профиля активировать галочку “Блокировать соединения без VPN” и делать подобные настройки которые упоминал partyhard: NekoBox настройки от пролезания

  • Т.е. как я понял, суть в отключении попытки фильтрации на входе в tun (ибо она не защищает от попыток “влезть” несанкционированно) и в разруливании маршрутов внутри клиента (после tun).

ДУМАЮ, ЛУЧШЕ ЭТОТ ВОПРОС (конфигурации без рута) задам отдельно - этот и так слишком длинный получился.

Одновременно это делать смысла нет. “Блокировать соединения без VPN” только для одного профиля работает (не имеет эффекта на другие профили), приложения во втором профиле могут стучить через TUN-интерфейс первого.

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

https://ntc.party/t/методы-защиты-от-по-со-шпионскими-модулями-с-15042026/23825/238

AFWall+ Тоже у меня тупил, более менее заработал только когда выбрал режим “Разрешить выбранные” и проставил все галочки (кроме ненужных) . Ещё там есть строка “Любое приложение” причём посередине списка - это строка как я понял имеет приоритет над всеми. То что это приложение глючное - согласен.

Не, он прям реально ломает маршрутизацию. Со всеми снятыми галками в режиме чёрных списков (т.е. когда разрешено всё) локалхост недрступен ни одному приложению. Видимо потому что он сам пытается стать суперсистемным прокси для супервсего. Да и потом всё же ИМХО пробежать по выпарсенному списку приложений скриптом проще и надёжнее, лишних правил не будет т.к. имя пакета в моменте сопоставляеися с UID присвоенного ему пользователя.

Минус только один - если в дурную голову прийдёт полностью снести какой-нибудь VK и накатить его заново - скрипт надо будет прокатить повторно, т.к. пользак поменяется.

Я тестировал novpndetect через rknhardening. Он скрывает наличие tun0, остаются видны только маршруты. То же самое с xpl-ex. Однако xpl-ex не убирает флаг TRANSPORT_VPN…

Хотя я помню, что для газпромбанка в своё время (давно) добился отключения уведомления о впн только когда использовал оба одновременно, хз почему.

А Т-банк крашится, когда включаешь любой из них.

Регулярно появляются статьи и обсуждения, вроде Отправим стукачей в ГУЛАГ. А я всё никак не могу понять почему не в /dev/null?

Прокси скрыл, а tun0 нет

Прокси тоже не скрыл, localhost доступен каждому из профилей

А вы имя пакета своего чекера в этот список добавили?

На смартфоне с рутом достаточно будет через Android Firewall+ запретить доступ к интерфейсу и локальному сокс (или запаролить его)? От активной проверки запросом, на флаг пофиг.

Или ещё какие пути проверки остаются?

Схема такая:

гуси со split app на нужное + AFW+ с запретом доступа отечественному к vpn-интерфейсу (остальному явно не запрещено)

Следом можно добить LSPosed для скрытия флага.

Не видел, что ответ был на другой пост, а не на пост до вашего. Но да, само наличие tun0 не скрывается (и не факт, что имя интерфейса будет tun0, были случаи, когда интерфейс был назван tun1-4).

кто-то подскажет: где можно посмотреть более-менее полный актуальный список чекеров айпи? можно с доменами или с cirds, хотел их в свои уже существующие правила добавить для михомо подобного ядра.

понимаю, что не самое эффективное решение, но думаю, мне и кому-то еще поможет уменьшить область атаки от цензора.

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

Спойлер

У родителей появилась такая проблема:

В основном используется только wifi, а мобильный интернет включается вручную только при необходимости (при отъезде, например). Все остальное время мобильный интернет в шторке находится в выключенном состоянии. Плата за моб. интернет снимается ежедневно по факту использования.

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

Сейчас ретроспективно понимаю, что это примерно совпадает со временем установки Макса, но доказать ничего не могу) До этого грешил на баг в прошивке. Телефон Poco какой-то.

в сингбоксе уже можно такие запросы отслеживать и DIRECT/DROP отправлять

Перечитал весь тред и не увидел единого мнения как собственно удобно защищаться.

Ключевые векторы атаки
  • Что может шпионское ПО для выявления факта использования VPN/Proxy?
    • Системные вызовы (Android / IOS / Windows)
      • Поиск следов VPN через системные вызовы
      • Сканирование интерфейсов (tun*)
      • Сканирование слушающих портов (socks)
    • Отправка шпионских запросов, попадающих под ваш “белый” роутинг (особенно актуально когда VPN на роутере)
      • Отправка легитимных запросов на условный youtube.com
        • виден факт обхода - открывается то, что не должно
      • Отправка фейковых запросов на условный youtube.com с подменой ip на “нужный”
        • без dst_ip override на сервере можно легко спалить свой выходной IP
      • Вредоносные скрипты в Web версиях приложений
        • XSS

Другими словами имея скрепное ПО на своем устройстве ты рано или поздно спалишься? Неужели единственные варианты это:

  • раздельные телефоны, у скрепного полностью отсутствует доступ к Proxy
  • конкретно под Android: рутовать и накатывать костыли в виде iptables, firewall и прочие дырявые профили/неймспейсы/knox/shelter/island/etc
  • а в web → танцы со вторым браузером, блокировкой доступа в LAN, запуск в виртуалках…
Моя старая-текущая схема, на которой я почти гарантировано спалюсь… или нет?
  1. xray на серверах с dst-ip override
  2. reverse-cascade схема через RU vps
  3. голый sing-box клиент на всех устройствах (кроме ios), включая роутер
  4. по умолчанию все идет в direct
  5. мои белые списки идут в прокси

Хочется думать в сторону централизованного решения с минимальными телодвижениями на стороне клиентов, но не на столько в лоб, как предлагает Dreaght. Кто-что думает/делает?

ИМХО - да, если слежку сделают качественно (позже доведут до ума), а не тяп-ляп и забили, для галочки.

Разделил браузеры, проверил что везде в браузерах заблочен LAN, сменил порт прокси на 63000+, на телефоне близкого человека рос. приложения убрал в Shelter и заморозил (у меня их в принципе не бывает), морально подготовился покупать вторую впс и делать бридж - если мой IP спалят и забанят, он станет “выходом“.

На сервере заблочил все известные ру домены (https://ntc.party/t/список-российских-сайтов/23752). Улучшил маскировку (Xray за nginx, 80й порт тоже отвечает).

А что нам конкретно дает разделение браузеров? На один из них какие-то особые правила применяются или чисто сам помнишь что тут только ру, а тут все остально? Если применяются почему нельзя их на одном браузере применить? Или смысл именно в “удобстве”, что в свободном браузере ты себе все ru заблокал и можешь без опаски сидеть? А если надо на ру - во второй зашел.

А чем блокать? Расширения? xray правила? …?