Укључили сте бежично отклањање грешака, повезали лаптоп и сесија је наставила да ради док је VPN био активан. То изгледа као да је нешто прошло поред тунела. Готово сигурно није. Сесија за отклањање грешака и захтев апликације ка веб-сајту су различити мрежни односи и само један од њих треба да пређе тунел.

На ово погрешно читање наишао сам двапут: једном кад су телефон и лаптоп били на истој Wi-Fi мрежи, и једном после поновног покретања кад је упаривање остало. У оба случаја VPN је радио тачно оно за шта је био конфигурисан.

Именујте запажање пре него што именујете грешку

Пре тврдње о цурењу могу се догодити три догађаја и они нису заменљиви. Алат може открити услугу, уређај може одобрити радну станицу или овлашћена сесија може заиста преносити команде и бајтове. Запишите који сте видели, јер сваки доказује мање него што људи претпостављају.

Откривање је обично mDNS или скенирање портова. Упаривање је одлука о регистрацији донета на телефону, потврђена кодом који корисник унесе. Жива сесија значи да је саобраћај прешао између две упарене крајње тачке. Ништа од тога не описује куда иде HTTPS захтев апликације.

Држите одредиште, интерфејс, породицу адреса, временску ознаку и кориснички профил везане за догађај. Без тих детаља запажање се не може упоредити са предвиђеном политиком локалне мреже ни са верзијом VPN-а која је тада радила.

Зашто се два пута никада не сусрећу

Бежично отклањање грешака је улазна веза ка уређају. adbd слуша на порту везаном за Wi-Fi интерфејс, а радна станица се повезује на њега после упаривања. Смер је важан: ваш лаптоп посеже у телефон, а не обрнуто. То је супротно од излазног цурења.

Интернет саобраћај апликације излази кроз тунелски интерфејс који инсталира VpnService, упарен према UID-у и правилима усмеравања. adbd је системски демон који ради као корисник shell, а не апликација у том скупу усмеравања. Остаје на основној Wi-Fi вези чак и кад је свака апликација причвршћена за тунел.

Режим закључавања намеће тунел за обухваћене апликације. Он не претвара слушајући сокет у излазну путању.

Зато радна ADB сесија и радни прекидач за блокирање постоје заједно без противречности. Да бисте доказали цурење, морате посматрати смер који би требало да буде блокиран.

Како излазни тест заиста изгледа

Тестирајте обухваћену апликацију, а не канал за отклањање грешака. Намерно поставите услов за неуспех, затим упутите један нови захтев и забележите шта се догодило.

  1. Потврдите да је VPN једини пут: укључите стално укључен VPN уз блокирање веза без VPN-а.
  2. Зауставите VPN на подржани начин и потврдите да апликација пријављује да нема повезаности.
  3. Упутите један безазлен захтев из те апликације и забележите да ли не успева или успева.
  4. Поновите са укљученим, па искљученим бежичним отклањањем грешака, да изолујете променљиву.

Блокиран захтев под тим условима је доказ. Успешна ADB сесија није, као ни један ping из терминалне апликације.

Ако захтев ипак успе док је закључавање укључено, забележите UID апликације и њену дозволу за VPN, активну мрежу и верзију клијента. Та комбинација је стварно откриће.

Упаривање надживљава сесију

Упаривање је трајно стање, а не руковање које можете заборавити после теста с каблом. Документација Android-а о отклањању грешака описује бежични ток рада и напомиње да однос траје док се изричито не заборави или док се овлашћења не опозову.

Проверите шта је још овлашћено пре него што окривите тунел. Отворите Бежично отклањање грешака, погледајте Упарене уређаје и заборавите све што више не препознајете. Покрените adb devices са радне станице да видите који уноси још одговарају, и adb disconnect да одбаците застарео. Искључивање бежичног отклањања грешака потпуно затвара порт који слуша.

На дељеној или неповерљивој мрежи оставите га искључено. Трајно овлашћење на мрежи коју не контролишете већи је проблем од хипотетичког заобилажења TUN-а.

Пре него што пријавите ту грешку

Корисна пријава именује тачну границу која је пала. Укључите модел уређаја и издање Android-а, VPN клијент и верзију, да ли је закључавање било укључено, пакет апликације и UID и мрежу на којој је телефон био. Додајте команду или захтев који је произвео запажање и време када се догодило. Без тога нико не може да репродукује границу за коју тврдите да је сломљена.

Не искључујте спровођење и не излажите отклањање грешака на неповерљивој мрежи да би тест изгледао драматичније. То мења систем који мерите и оставља доказе које нико не може да понови.

Ако је ваш једини доказ то да се ADB повезао док је VPN био активан, измерили сте погрешан пут. Прво поновите тест на нивоу апликације; одговор обично стиже тамо.

Повезани чланци