Новое правило package_name_regex в sing-box (борьба с детектом VPN)

Добавлю, что уже выложенные пакеты в Play Market свой package ID менять не могут.

TL;DR: им не обязательно самим на TUN идти. Они могут “попросить” другие приложения.

Добавьте в правила любые приложения (их package ID), которые шпион способен вызвать из себя (например дефолтный браузер с указанной ссылкой) – он их может открыть либо через CustomTabsIntent, либо по кнопке “Open in browser” через Intent.ACTION_VIEW.

А вообще вроде как через ЛЮБОЙ браузер, который поддерживает это (а большинство поддерживают) можно вызвать URI через setPackage, даже через тот через который у вас VPN.

String url = "https://rkn-spy.ru";
String packageName = "com.android.chrome"; // браузер который идет через VPN

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
intent.setPackage(packageName); 

startActivity(intent);

Ещё любые приложения с “Deep-links” (scheme://), способные выполнить GET запрос по URI.

Ну или совсем экзотический способ, приложение может под каким-либо предлогом создать ярлык на рабочем столе (через requestPinShortcut), ведущий на какой-либо безобидный сайт (причем диалоговое окно появится всего раз), а потом обновить ссылку на шпионский сайт с помощью updateShortcuts, при этом диалоговое окно снова не появится. И тоже вроде как указать конкретный браузер можно (через который у вас VPN), с помощью того же setPackage в Intent.

Иконку тоже можно обновить (через setIcon), например на Telegram, чтобы вы по неосторожности туда кликнули.

Поправьте, если что-то где-то не так.

Как пофиксить?

(Снизить поверхность атаки)