Чому VPN для окремих застосунків не охоплює робочу копію застосунку Android
Робочий профіль — це окремий керований контекст, тому VPN для окремих застосунків в одному профілі може залишити особисту копію недоторканою. Перевірте власника, перш ніж тестувати.
Один застосунок з’являється на телефоні з робочим профілем двічі, і ці дві копії — не один і той самий суб’єкт. VPN для окремих застосунків, налаштований усередині одного контексту, керує екземпляром цього контексту, тому правило, яке називає пакет, усе одно може залишити іншу копію недоторканою. Це не помилка, яку треба обходити, а межа профілю, що робить саме те, для чого її створено. Питання, на яке варто відповісти: який контекст володіє VPN, а який — застосунком, який ви намагаєтеся захистити.
Одна іконка, дві інсталяції, два власники політики
Android дає робочому профілю власний керований контекст з окремими застосунками, обліковими записами й політикою, тож лаунчер може показати два записи зі спільною назвою та значком. Служба VPN, запущена в одному контексті, працює для користувачів цього контексту, і це механізм, що лежить в основі всієї проблеми. Іконка каже, який застосунок ви натиснули, а не до якого профілю належить отриманий трафік. Тому власника треба читати з профілю, а не з картинки.
Організація також може примусово ввімкнути режим постійного підключення або блокування без VPN для керованого боку, що змінює поведінку, коли тунель недоступний. Особистий бік такої гарантії не має, якщо ви не збудували її самі.
Що насправді означає список дозволених застосунків
Підтримка VPN для окремих застосунків в Android побудована на списках, що описано в посібнику з користувачів VPN і робочих профілів і у двох типів списків протилежні значення за замовчуванням. Список дозволених застосунків означає, що тунель використовують лише названі пакети, а все інше виключено, тоді як список заборонених застосунків означає, що включено все, крім названих пакетів. Переплутайте це, і ви збудуєте протилежність задуманій політиці, хоча екран налаштувань усе ще виглядатиме правдоподібно. Список оцінюється в тому контексті, де працює VPN, тож ім’я пакета, присутнє в обох профілях, збігатиметься лише з копією в цьому контексті. Пакет, не вказаний в іншому профілі, просто не стосується цього VPN.
Запишіть поведінку для двох-трьох застосунків, які важливі, бо різниця між «усе крім» і «лише ці» вирішує, чи особистий застосунок протече повз тунель, чи відмовить у закритому режимі. Невелика таблиця тут краща за абзац: один рядок на профіль, із типом списку та значенням за замовчуванням для всього іншого.
| Context | List type | Apps not named |
|---|---|---|
| Work profile | allowed only | excluded from the tunnel |
| Personal profile | disallowed | included in the tunnel |
Який бік веде тунель і під чиєю політикою
Споживчий VPN не знімає засобів контролю організації з керованого профілю, а VPN робочого профілю не є загальним тунелем для особистих застосунків. Якщо організація вимагає власний клієнт для керованих застосунків, особистий клієнт — це окрема домовленість із власною політикою та власними режимами відмови. Вирішіть, який механізм має нести який трафік, перш ніж порівнювати результати, інакше ви вимірюєте дві системи й називаєте різницю помилкою. Усередині свого контексту керований бік зазвичай перемагає, і це задумана поведінка.
Незручний випадок — керований застосунок, якому потрібен маршрут, якого керована політика не надає. Це запит на виняток до організації, а не привід вимикати робочий профіль.
Тестування того екземпляра, який ви справді мали на увазі
Запустіть потрібну вам копію і подивіться на запит зсередини, бо перевірка публічної адреси в особистому браузері нічого не каже про робочий застосунок. Перевірте окремо обліковий запис, під яким виконано вхід, і внутрішнє розв’язання імен, оскільки внутрішнє ім’я може залежати від керованого маршруту, поки публічний перегляд відбувається в іншому місці. Позначте, яка копія дала який результат у момент тесту, і вкажіть профіль у підписі; скриншот із двома однаковими іконками не є доказом. Повторіть перевірку після перепідключення і після повторного створення профілю, бо політика може застосуватися знову.
Якщо ви не можете сказати, яка копія відповіла, виправте маркування, перш ніж робити висновок. Неоднозначний результат гірший за його відсутність, бо пізніше його цитують так, ніби він вирішив питання.
Документування охоплення, щоб наступний тест вижив
Записуйте три факти разом для кожного контексту: екземпляр застосунку, власника політики й очікуване охоплення. Цього достатньо, щоб наступна людина відтворила ваш тест, не вгадуючи, яку іконку вона запустила. Додайте тип списку та значення за замовчуванням для пакетів, яких немає в списку, бо саме цю частину найчастіше читають неправильно.
Потім перевірте одне внутрішнє ім’я та одну зовнішню адресу з кожного боку і запишіть, що має статися, коли керований бік блокує особистий VPN. Телефон, на якому жоден бік не охоплений, хоча обидва виглядають підключеними, — це та відмова, проти якої варто проєктувати. Коли обом профілям справді потрібен тунель, плануйте дві домовленості замість одного хитрого правила.