Недовереният VPN е три отделни граници, а не една
Отдалечените партньори, операторът по пътя и клиентът на вашия хост са три различни заплахи. Правило на защитната стена отговаря само на първата от тях.
„Не се доверявам на този VPN“ обикновено са три твърдения, облечени в едно изречение. Отдалечените партньори в тази мрежа може да достигнат услуги на вашия хост, операторът, който управлява тунела, може да наблюдава трафика, преминаващ през него, а клиентският софтуер, който сте инсталирали, може да променя мрежовата политика на машината ви. Убеждението, което си заслужава да се поправи, е, че правило на защитната стена, виртуална машина или внимателен избор на операционна система отговаря и на трите. Всяка мярка отговаря точно на едно от тях.
Мифът: един контрол покрива целия риск
Обичайното допускане е, че присъединяването към недоверена мрежа е едно решение с една мярка. Хората избират контрола, на който вече вярват, прилагат го и смятат риска за приключен: защитната стена е включена, работното пространство е за еднократна употреба, клиентът идва от уважаван доставчик.
Тези контроли не се припокриват така, както допускането предполага. Защитната стена на хоста ограничава до какво може да достигне отдалечен партньор и не прави нищо срещу оператор, който прекратява вашия TLS. Виртуалната машина отделя работното пространство от файловете на хоста и не прави нищо срещу клиентски компонент, на който е позволено да пренастройва мрежовия стек под двете. Да назовете границата, която всеки контрол действително създава, е цялото упражнение.
Разделянето им също ви казва кой риск сте избрали да приемете. Повечето реални решения смекчават една граница и търпят друга, което е добре, стига записът за промяната да казва коя коя е.
До какво всъщност може да достигне отдалеченият партньор
Започнете със слушащите услуги. Тунелният интерфейс, смятан за широко доверен, защото пакетите му пристигат шифровани, е обичайната грешка и превръща всеки локален слушател в кандидат-цел за всеки друг в тази мрежа. Шифроването защитава кабела между две крайни точки; то не казва нищо за намерението на партньора отсреща.
ss -tulpn sudo nft list ruleset ip -br addr
Обвържете услугите с адреса, който им трябва, а не с всеки интерфейс, и разрешете само операциите, които одобрената задача изисква. Дръжте препращането, мостовото свързване и проксирането на приложения явни, защото две мрежови прикачвания сами по себе си не създават транзитен път, но правило за прокси със сигурност може.
Одобрено работно пространство за еднократна употреба намалява до какво може да достигне отдалечената мрежа, но само когато конфигурацията му за споделяне съответства на твърдението. Споделени папки, интеграция с клипборда, агенти за идентификационни данни и канали за управление — всички те пресичат границата, която работното пространство е трябвало да създаде. Етикетът на работното пространство не доказва нищо за това кои от тях са отворени.
Архитектурата с нулево доверие на NIST формулира принципа зад всичко това: самото мрежово местоположение не дава имплицитно доверие. Удостоверяването на ресурси все още има работа, след като тунелът е допуснат, както и въпросът кой друг споделя тази мрежа.
Какво вижда операторът по пътя
VPN премества трафика ви на друго място по пътя; той не добавя шифроване на приложенията. Ако доставчикът прекратява вашия TLS, доставчикът може да чете това, което браузърът ви иначе би защитил, и никое локално правило на защитната стена не променя това.
Пазете нормалната проверка на сертификати за истинската дестинация и разбирайте пътя на резолвера и метаданните, защото DNS заявка може да разкрие повече от полезния товар, който я предхожда. Самите метаданни, тоест кои адреси сте посетили и кога, често отговарят на въпроса на оператора без нужда да се чете съдържание. Затова „трафикът е шифрован“ и „трафикът е поверителен“ са различни твърдения.
Ако тази видимост е неприемлива за задачата, отговорът е друга одобрена архитектура, а не повече локална филтрация. Локалната филтрация не може да премахне наблюдател от път, на който той все още седи.
Какво е позволено на локалния клиент да променя
Това е границата, която хората пропускат, и тя е тази, която прави другите две безсмислени. В Linux CAP_NET_ADMIN покрива конфигурацията на интерфейси, администрирането на защитната стена и промените на маршрути в своя мрежов контекст. Софтуер с тази способност може да пренапише политиката, която току-що сте написали.
getcap /usr/sbin/openvpn systemd-analyze security vpn-client.service ip netns list
Мрежовото пространство от имена е истинска граница за мрежовото състояние и лоша за всичко останало: то не изолира файловата система или хранилището на идентификационни данни. Третирайте го като един слой, а не като контейнер за целия проблем.
Вземете клиента и конфигурацията му от поддържан източник, прегледайте правомощията, които изисква, и дръжте привилегированите компоненти под контрола на администратора. Виртуалната машина може да е част от квалифицирана граница за оценка, без да става разрешение да се стартира необяснен инсталатор до ценни идентификационни данни. Инсталаторът работи с каквито правомощия му дадете, а тези правомощия са границата.
Запишете коя граница сте приели
Завършете с изречение, което назовава четири неща: доверения локален код, разрешения отдалечен достъп, защитените данни на приложенията и оставащата връзка с оператора. Това изречение струва повече от общото твърдение, че виртуална машина, операционна система или антивирусен продукт са направили враждебна мрежа безопасна.
След това потвърдете, че тясната операция работи и изискваното отказване все още се държи, включително след като тунелът падне. Граница, която съществува само докато тунелът е вдигнат, не е границата, която сте документирали.
Нито един тест не доказва, че всяка уязвимост отсъства, и преглед, който твърди обратното, претендира прекалено. Честният резултат назовава остатъчния риск и човека, който го е приел.