Смартфони

Редакция Overclock.bg ·

Android може да отреже достъпа до localhost

Android може да отреже достъпа до localhost

Инженери на Google обсъждат публично дали Android да спре да позволява на приложенията да си говорят помежду си през локалния адрес 127.0.0.1. Дискусията тече в Google Issue Tracker (задача 526109803) и стана широко известна в края на юли 2026 г., след като Android Authority я забеляза. Решение все още няма, но посоката е ясна: loopback интерфейсът, който 15 години беше сива зона в пясъчника на Android, вече не се смята за безопасен по подразбиране.

Какво представлява 127.0.0.1

127.0.0.1 (и IPv6 еквивалентът ::1) е адрес, който сочи към самото устройство. Пакетите, изпратени към него, не напускат телефона — обработва ги виртуален мрежов интерфейс lo. Това го прави удобен канал за комуникация между процеси: всяко приложение може да отвори TCP или UDP порт и всяко друго приложение на устройството може да се свърже към него.

И точно тук е проблемът. Android изолира приложенията едно от друго с UID-и, SELinux политики и разрешения. Loopback обаче не минава през нито един от тези филтри — не изисква разрешение, не се показва в интерфейса и не оставя следа пред потребителя. Проверява се тривиално:

adb shell netstat -tulpn | grep 127.0.0.1

Аргументът за сигурност: случаят Local Mess

Най-силният довод дойде от изследване на университета Radboud, IMDEA Networks и KU Leuven, публикувано под името Local Mess и прието за USENIX Security Symposium 2026.

Екипът документира как рекламните скриптове Meta Pixel и Yandex Metrica са ползвали именно loopback, за да свържат анонимното уеб браузване с идентичността на потребителя в мобилното приложение. Схемата: скриптът в браузъра отваря връзка към локален порт, на който слуша самото приложение на Facebook, Instagram или Yandex. Приложението знае кой сте — то е логнато. Браузърът знае какво четете. Резултатът е сливане на двете.

Схема как Meta Pixel предава бисквитката _fbp към приложението през локален порт Снимка: Local Mess (Radboud University, IMDEA Networks, KU Leuven)

Конкретните портове: приложенията на Meta са слушали на TCP 12387 и 12388, както и на UDP 12580–12585 за WebRTC трафик; Yandex е ползвал 29009 и 30102 за HTTP, 29010 и 30103 за HTTPS. Meta е стигнала дотам да вмъква бисквитката _fbp в полето ice-ufrag на SDP пакет — техника, наречена SDP munging, за да мине през WebRTC.

Мащабът е основното. Meta Pixel е вграден в около 5,8 млн. сайта, Yandex Metrica — в близо 3 млн. Yandex прилага метода от февруари 2017 г., Meta го въвежда през септември 2024 г. и го спира на 3 юни 2025 г., часове след публикацията. Chrome блокира портовете и SDP munging във версия 137, Firefox — във версия 139.

Ключовото: инкогнито режимът не помагаше. Заобикаляше се и пясъчникът на браузъра, и разрешенията на Android едновременно.

Какво вече е факт и какво предстои

Част от затягането вече е в сила. При Android 17 приложенията с targetSdk 37 трябва да декларират новото разрешение ACCESS_LOCAL_NETWORK, за да достигат локалната мрежа — но, важно уточнение, документацията на Google изрично изключва loopback от обхвата му. Отделно Android 17 блокира по подразбиране loopback трафика между профили, независимо от targetSdk.

Обсъжданата сега промяна е друга и по-радикална. Предложението на инженер от Google е демонът adbd да слуша само на външни интерфейси като wlan0. Мотивът е директен: „Връзката към localhost е източник на експлойти, при които приложения ползват сокета към adbd, за да си повишат привилегиите.” Поводът е CVE-2026-0073 — пробив в автентикацията на безжичния ADB, закърпен с майските поправки за 2026 г.

Кой губи

Ако ограничението мине в общия си вид, страдат легитимни сценарии:

  • Shizuku, libadb-android, App Manager, aShell — целият клас инструменти, които изпълняват ADB команди на самото устройство, без компютър и без root.
  • Termux и терминалните емулатори с повишени права.
  • VPN и прокси клиенти, които вдигат локален прокси на 127.0.0.1 и пренасочват трафика през него.
  • Локални сървъри за разработка, емулатори и мобилни IDE.
  • Синхронизация с настолни програми през локален порт, ADB през Ethernet или VPN.

Изключения и миграция

Компромисът, който се обсъжда най-сериозно, е превключвател в Developer Options — изключен по подразбиране, оцеляващ след рестарт и недостъпен за четене от други приложения. Тоест защита за масовия потребител и изход за тези, които знаят какво правят.

За разработчиците практическата подготовка е три неща: махнете loopback като канал за IPC и минете към Binder, ContentProvider или Unix domain sockets в частната директория на приложението; обработвайте коректно грешките (TCP дава timeout, UDP връща EPERM); тествайте отсега с compat флага RESTRICT_LOCAL_NETWORK.

Какво значи това за нас

Времето е показателно. Същата година Google въвежда задължителна верификация на разработчиците за инсталации извън Play Store — пилотно от септември 2026 г. в Бразилия, Индонезия, Сингапур и Тайланд, с глобално разширяване през 2027 г. Добавете и затягането на заключването в One UI 9 и се очертава ясна линия.

За българските потребители прекият ефект е малък — повечето хора не ползват Shizuku. За българските Android разработчици обаче ефектът е реален: ако продуктът ви разчита на локален порт, започнете миграцията сега, а не когато Android 18 излезе. А по-широкият въпрос остава отворен — всяко затваряне на Android е обосновано поотделно, но сборът им променя платформата.

Харесва ви? Отбележете ни и ще ни виждате по-нагоре в Google.

Предпочитан източник в Google

Прочетете още