Аудит безопасности VPN: что проверяют и как читать отчёт

Автор: Редактор блога HubHide VPN

На сайте любого VPN-сервиса написано, что он не хранит логи. Буквально любого.

Я как-то от скуки открыл десяток сайтов подряд и нашёл везде одну формулировку. И вот вопрос, который меня после этого заел: чем обещание «мы не храним логи» отличается от обещания «мы хорошие»? Произнести это не стоит ничего, проверить из браузера невозможно, а отвечать за сказанное почти никогда не приходится, потому что доказывать обратное придётся вам, а у вас нет ни доступа к серверам, ни квалификации, ни, честно говоря, желания этим заниматься.

Отсюда и вырос независимый аудит: не потому, что отрасль захотела честности — в такие сюжеты я не верю, — а потому, что слова перестали работать. И сразу оговорюсь: я работаю в VPN-сервисе, тема для меня не отвлечённая.

Кто проводит аудит и что это за процедура

Аудит VPN — это когда сервис пускает к себе внешнюю команду по безопасности и открывает ей закрытое: код, серверы, внутренние процедуры. Команда копается, находит проблемы, пишет отчёт. Платит за всё это сам проверяемый — и вот он, нюанс, который пропускают примерно все: компания сама выбирает себе проверяющего и сама переводит ему деньги. Держать в голове стоит. У серьёзной фирмы весь капитал — репутация, поэтому стыдных отчётов там не подписывают даже за хорошие деньги, и это, думаю, работает лучше лицензирования. Давление всё равно есть, просто оно не всесильно.

Имён называть не буду. Скажу, как отличать: у живого аудитора публичная история проверок, методология и отчёты, которые читаются целиком. Сервис пишет «прошли аудит», а ссылки на документ нет — это слово в буклете, и мне такое попадалось столько раз, что выработался рефлекс: нет файла — нет разговора.

Аудиты бывают очень разные

Фраза «сервис прошёл аудит» не значит почти ничего, пока вы не знаете, какой именно.

Приложений. Проверяют то, что стоит у вас на телефоне: дыры в криптографии, утечки, захардкоженные ключи, кривую обработку разрывов, телеметрию. Мне такие отчёты попадались чаще прочих.

Инфраструктуры. Тут серверы: как настроены, где лежат ключи, у кого доступ, что остаётся на дисках, — дороже, сложнее, реже, и ровно поэтому, если честно, ценится выше.

Политики no-logs. Самый интересный и самый спорный вид, потому что аудитор тут подтверждает, что сервис правда не пишет того, что обещал: смотрит конфиги, читает серверный код, опрашивает инженеров, а в хороших случаях приезжает в дата-центр и трогает железо руками. Результат всегда с оговорками — вернее, без них не бывает. Механику разбирал в статье про политику no-logs.

Криптографии. Узкая история про алгоритмы, и на стандартных WireGuard и TLS она, скажем так, избыточна: проверять надо не алгоритм, а то, как его применили.

[Изображение: схема — что покрывает аудит, а что остаётся вне его периметра]

Что конкретно ищут внутри

Ядро списка, насколько я видел, у всех одинаковое, и оно скучнее, чем воображает читатель детективов: шифр никто не ломает, смотрят на бытовое.

  • Пишутся ли IP подключающихся и сколько живут записи.
  • Что попадает в системные журналы по умолчанию — тут вечно сюрприз: софт пишет то, о чём владелец не знал.
  • Как хранятся пароли и токены в базе.
  • Что остаётся в памяти и временных файлах после сессии.
  • Нет ли избыточного доступа: классика — пять человек в штате и рут у всех пятерых.
  • Кто выкатывает код на прод и как это контролируется.
  • Утечки мимо туннеля — DNS, IPv6, WebRTC. Про них отдельный разбор.
  • Поведение при разрыве: трафик перекрывается или утекает.

Кстати, юридический пласт задвигают в конец, хотя решает он порой больше: безупречный сервис в неудачной юрисдикции защитит хуже среднего в удачной.

Как читать отчёт и не обмануться

Отчёты публикуют целиком, и читать их можно без профильного образования. Беда в том, что большинство смотрит на заголовок, видит, что проверку прошли, и закрывает вкладку; я сам так делал, пока однажды не дочитал документ до конца и не наткнулся в оговорках на фразу, после которой весь текст читался иначе.

Объём проверки. Важнейший раздел и самый скучный, поэтому его пролистывают. Один клиент под одну платформу или вся инфраструктура — разница колоссальная, а в пресс-релизе и там и там «прошли аудит».

Дата. Отчёт трёхлетней давности описывает сервис, которого нет: сменились команда, стек, хостеры, код.

Находки и их статус. Тут всё выворачивается наизнанку: отчёт, в котором не нашли ничего, — подозрительный отчёт, ведь находки есть у кого угодно. Важна серьёзность и то, закрыты ли они.

Оговорки. Живут в конце, набраны мелко и звучат как шум вроде «доступ к производственной среде не предоставлялся», хотя именно там написано, чего аудитор на самом деле не видел.

[Изображение: пример структуры отчёта об аудите с подсветкой ключевых разделов]

Почему аудит — это фотография, а не гарантия

Теперь главное, иначе всё написанное выше — реклама отрасли. Аудит фиксирует состояние на конкретную дату. Проверили в марте — значит, в марте было так, и ни строчкой больше; в апреле выкатят обновление, которое сломает половину проверенного, и ни один отчёт этого не поймает, потому что лежит уже подписанный. Я видел, как ссылаются на двухлетний документ, будто он выдан бессрочно. По сути — подмена. Аудитор видит то, что ему показали. Если компания подготовилась заранее, шансы проверяющего не стопроцентные — впрочем, это ограничение любой добровольной проверки.

Отсутствие логов в принципе недоказуемо. Нельзя доказать, что чего-то не происходит никогда: сложность тут логическая, и максимум, что можно показать, — что на момент проверки механизмов для записи не было. Аудитор, на моей памяти, пишет второе, а маркетинг пересказывает как первое — на этом стыке и рождается изрядная часть отраслевого вранья.

И последнее, о чём говорить не принято: отсутствие аудита не равно ненадёжности. Проверка стоит денег, небольшому сервису их разумнее вложить в инфраструктуру: перед вами один сигнал из многих, а не тумблер. Про остальные — в материале о том, как выбирать VPN по критериям.

Открытый код клиентов: что он даёт на самом деле

Вещь хорошая. Но ожиданий вокруг неё вдвое больше, чем она отрабатывает. Что даёт: возможность посмотреть, что приложение делает с вашими данными и куда ходит, — телеметрия и странные запросы в открытом коде видны быстро. А ограничений больше. Первое и самое существенное: открытый код клиента не говорит ничего о сервере, а серверная часть у большинства закрыта, и именно там происходит всё интересное для приватности, потому что там принимаются соединения, там ведутся или не ведутся журналы, там сидит администратор с рутом. Второе: код в репозитории и бинарник из магазина — не обязательно одно и то же, а для проверки нужна воспроизводимая сборка, которую делают единицы. Третье, и оно меня раздражает сильнее всего: «открытый код все проверяют» — миф, потому что проверяют популярное, а в репозиторий среднего клиента не заглядывает никто, кроме трёх его разработчиков. Открытость даёт возможность проверки, а не проверку.

Warrant canary, прозрачность и охота за багами

Warrant canary — конструкция изящная: сервис регулярно публикует подписанное заявление, что на такую-то дату предписаний не получал и данных не передавал. Обновляется — порядок. Перестало — сигнал. Компанию можно обязать молчать о запросе, но нельзя заставить публиковать ложь, хотя работает ли это юридически — спорно, и судить я не возьмусь.

Отчёты о прозрачности. Сколько запросов пришло и сколько удовлетворили. Показателен не ноль — для живого сервиса ноль как раз странен, — а регулярность публикации.

Bug bounty. Вознаграждение за уязвимости, и по моему опыту это честнейший показатель зрелости: аудит можно пережить один раз, повесить значок на главную и забыть, а bug bounty надо кормить постоянно — внутри должны сидеть живые люди, которые принимают сообщения, чинят и платят.

Чек-лист: что спросить у сервиса до оплаты

Самое полезное отсюда. Напишите в поддержку — по моему опыту реакция скажет больше лендинга.

  1. Проходили ли аудит? Если да — ссылка на отчёт, а не на новость о нём.
  2. Что входило в объём проверки и на какую дату.
  3. Какие данные храните: IP, время подключения, трафик, платёжные данные.
  4. Сколько записи живут и что с ними происходит потом.
  5. Юрисдикция компании и расположение серверов.
  6. У кого доступ к боевым серверам и как он логируется.
  7. Есть ли warrant canary и отчёты о прозрачности.
  8. Есть ли bug bounty и куда сообщать об уязвимостях.
  9. Открыт ли код клиентов и где репозиторий.
  10. Что с данными после закрытия аккаунта.

Оценивайте не только содержание, но и форму: честное «это есть, а этого пока нет» — знак хороший, врать ведь проще, чем признаваться. Отписка — тоже знак, просто другой.

[Изображение: чек-лист вопросов к VPN-сервису карточкой для сохранения]

Если коротко

Аудит — полезный инструмент и слабый аргумент, когда он единственный. Срез на дату, в границах объёма. Не больше. Но и не меньше: тот, кто пустил к себе посторонних и опубликовал отчёт с находками, серьёзнее того, кто написал красивую фразу на главной. Дальше — скучные действия: почитать отчёты, задать вопросы, дочитать политику. И помнить, что у бесплатных сервисов экономика устроена иначе, а там главным становится другой вопрос — на чём вы зарабатываете, если не на мне.

Какие мы замечательные, рассказывать не буду. Лучше так: возьмите десять вопросов выше и задайте их нашей поддержке. Ответим по каждому, включая те, где ответ «нет». Заодно гляньте политику конфиденциальности. И четырнадцать дней теста без карты никто не отменял.

Частые вопросы

Что такое аудит VPN?

Проверка сервиса внешней командой по безопасности, которая получает доступ к коду, серверам и внутренним процедурам. По итогам публикуется отчёт с находками. Проверять могут приложения, инфраструктуру, политику хранения или всё сразу.

Зачем VPN проходить аудит?

Чтобы превратить обещание в проверяемое утверждение. Написать «мы не храним логи» может кто угодно. Пустить к себе чужую команду и опубликовать её выводы, включая неприятные, — поступок.

Гарантирует ли аудит безопасность?

Нет. Отчёт фиксирует состояние на дату проверки, в границах объёма и по тем материалам, которые показали аудитору. Завтра код обновится — и проверенное устареет.

Что даёт открытый код VPN-клиента?

Возможность увидеть, что приложение делает на устройстве: куда ходит, что собирает, нет ли телеметрии. Чего не даёт — сведений о сервере и гарантии, что скачанный бинарник собран из этого кода.

Вам будет интересно