Незнакомые файлы OVPN: локальный риск и удалённое доверие
Профиль может влиять на клиент на вашей машине и выбирать оператора, который видит ваш трафик. Проверьте оба решения, прежде чем импортировать файл.
Относитесь к файлу OVPN как к входным данным программы, а не как к свидетельству того, что его содержимое безвредно. Проверка адреса сервера отвечает только на то, куда профиль хочет подключиться, и ни на что больше. В этом файле два отдельных решения о доверии: что клиент может делать на вашей машине и какой оператор получает трафик. Знакомое имя протокола не решает ни одного из них.
В одном файле скрыты два решения
Первое решение локальное. Профиль — это язык конфигурации, и клиент, который его читает, может поддерживать директивы, загружающие плагин, запускающие скрипт или меняющие то, как применяются маршрутизация и DNS. Второе решение удалённое. Что бы ни содержал файл, оператор выхода видит трафик, который до него доходит.
Смешивать эти два — значит давать плохой совет в обе стороны: чистый на вид профиль от неизвестного оператора или профиль известного оператора с хуком, который никто не читал. Профиль, безопасный локально, всё равно может передать ваш трафик тому, кого вы не выбрали бы.
Прочитайте профиль раньше, чем это сделает любой клиент
Прочитайте файл как текст до того, как любой клиент его обработает. Ищите директивы, которые указывают за пределы файла, ссылаются на исполняемые файлы или меняют привилегии, и сравните этот список с документированной поддержкой клиента. Короткий поиск — не аудит безопасности, но он говорит, список ли это серверов или нечто большее.
grep -nE '^(script-security|up|down|plugin|route-up|ipchange)' untrusted.ovpn
Пустой результат успокаивает и не является окончательным, потому что опции могут взаимодействовать или приходить из включённого файла. Считайте отфильтрованный список причиной читать дальше, а не приговором.
Инструкции, которые приходят вместе с профилем, заслуживают той же проверки, что и сам профиль. Четыре просьбы должны вас остановить: включить скрипты, установить помощник или библиотеку, запустить клиент от имени администратора или ослабить ограничение импорта. Каждая из них сдвигает границу доверия наружу, и ни одна не является обычной частью импорта списка серверов.
Прочитайте также весь файл целиком один раз, потому что одну незнакомую строку легче оценить в контексте, чем в отфильтрованном списке. Если строка незнакома, найдите её в руководстве для вашего клиента, а не гадайте.
Что клиент действительно выполнит
Руководство 2.6 Community OpenVPN описывает ступени script-security: уровень 1 задан по умолчанию и блокирует скрипты, определённые пользователем, а уровень 2 их разрешает. Загрузка плагинов — отдельный механизм со своей директивой. Поэтому один и тот же файл может означать разное в разных клиентах. Мобильные клиенты и клиенты производителей могут принимать более узкий набор директив или ни одного из хуков.
Способ запуска важен не меньше клиента. Профиль, запущенный привилегированным помощником, может делать больше, чем запущенный в пользовательском пространстве, и эта разница — причина прочитать запрос импорта, а не отмахнуться от него.
Версия тоже важна, потому что эти уровни определяются для каждого выпуска, и клиент, отставший на несколько версий, может не реализовывать ту же политику. Читайте руководство, соответствующее сборке, которую вы запускаете, а не самое новое из найденных. Если клиент нигде не показывает строку версии, это уже повод замедлиться.
Сравните оператора, а не только адрес
Сравнивайте операторов так, как сравниваете любого другого посредника. Спросите, кто управляет выходом, что они журналируют и как профиль попал к вам. Проверенная страница загрузки и совпадающий отпечаток говорят больше, чем знакомое имя хоста. Доступный сервер доказывает лишь то, что что-то ответило.
Учётные данные — это то, в чём люди под давлением ошибаются. Не вводите пароль посторонней учётной записи в загруженный профиль только потому, что имя сервера кажется знакомым. Профиль может также нести закрытый ключ в открытом виде, поэтому публикация всего файла в ветке обсуждения передаёт этот ключ ветке.
Надёжно проверенная сессия HTTPS всё ещё скрывает содержимое страницы от любого, кто лишь пересылает пакеты, поэтому выход не видит автоматически каждый пароль. Но он видит, к каким сайтам вы обращаетесь, и эту границу стоит называть точно, а не преувеличивать.
Там, где происхождение файла остаётся неясным или запрашиваемая привилегия не имеет объяснения, которое вы можете принять, замените профиль тем, что взят из источника, который можно призвать к ответственности. В управляемом рабочем подключении администратор должен утверждать клиент и конфигурацию как одно решение, а не два. Ничто здесь не требует сначала доказать злой умысел; отказать в доступе — законный ответ.