ExpressVPN инструменты для проверки утечки

Иллюстрация протекающего компьютерного кабеля через лупу.


ExpressVPN Leak Testing Tools – это расширяемый набор инструментов Python, предназначенных как для ручного, так и для автоматического тестирования утечек в VPN-приложениях..

Инструменты, разработанные ExpressVPN для исследований конфиденциальности, изначально создавались для двух целей:

  • Обеспечение надежного автоматического регрессионного тестирования приложений ExpressVPN
  • Содействие расследованию утечек для дальнейшего усиления этих приложений

Вскоре мы поняли, что эти инструменты действительно могут быть полезны для более широкой индустрии VPN. Поэтому мы решили сделать их полностью доступными с открытым исходным кодом под лицензией MIT..

Мы надеемся, что сделав это, мы поможем обеспечить более конфиденциальный и безопасный опыт работы в сети для всех пользователей VPN путем:

  • предоставление пользователям и третьим сторонам независимого способа проверки качества VPN и оценки их собственных рисков в отношении конфиденциальности и безопасности;
  • создание более высокого уровня защиты от утечек для всей отрасли VPN; и
  • объединение опыта всей отрасли в области испытаний на утечку

Начало работы с инструментами

Инструменты можно найти на GitHub по адресу: https://github.com/expressvpn/expressvpn_leak_testing..

Для начала следуйте инструкциям в файле README.md. Хотя мы предоставляем обзор инструментов ниже, репозиторий GitHub всегда должен рассматриваться как единственный источник правдивости для документации, относящейся к инструментам.

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

Обзор инструментов

Мы используем Python

Инструменты написаны в основном на Python, с несколькими вспомогательными инструментами на других языках по мере необходимости. Мы выбрали Python по нескольким причинам:

  • Это кроссплатформенный и поддерживается из коробки в большинстве случаев
  • Это хорошо известно большому проценту разработчиков и поэтому легко доступно
  • Быстро развиваться – у нас нет требований к производительности для среды тестирования
  • Это выразительный язык, который позволяет нам писать легко читаемый код

Обратите внимание, что мы используем Python 3, так как он быстро становится стандартом де-факто.

Это как юнит-тестирование

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

Тест – или тестовый пример – примерно соответствует одному файлу Python. Набор тестов был разработан для того, чтобы быть знакомым разработчикам, привыкшим работать с наборами юнит-тестов, поэтому каждый тест соответствует привычному шаблону setup (), test () и teardown ()..

Тестовые случаи разработаны так, чтобы быть как можно более общими. Тестовые случаи могут выполняться с разными конфигурациями VPN, разными сетевыми конфигурациями и т. Д. Когда они запускаются, им предоставляется конфигурация, которая определяет, как они будут работать для этого конкретного цикла тестирования. Файл конфигурации передается в набор тестов, в котором перечислены все тесты для запуска и их конфигурации.

Примером запуска тестов может быть выполнение следующей команды из корневого каталога инструментов:

./run_tests.sh -c configs / case_studies / vanilla_leaks.py

Конфигурации устройства и сети

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

Устройство, с которого проводятся тесты, называется тестовый оркестр. Все остальные устройства просто называются тестовые устройства.

Самый простой тип теста выполняется на одном устройстве (тестирование одного устройства) и тестирование на наличие утечек непосредственно на этом устройстве. Например, можно выполнить широкий класс тестов на утечку Windows непосредственно на устройстве Windows. В этом случае тестовый оркестратор фактически является также тестовым устройством. Более сложные тесты (тесты с несколькими устройствами) могут включать тестовое устройство, на котором работает VPN, маршрутизатор и устройство захвата пакетов..

автоматизация

Набор тестов был разработан для полной поддержки автоматизации тестов. Однако из коробки тесты всегда требуют ручного взаимодействия. Всякий раз, когда требуется ручное взаимодействие, набор тестов четко подскажет пользователю и скажет ему, что делать.

Одной из самых сложных частей автоматизации тестирования является контроль над приложениями VPN. Действительно, для многих тестов это единственная часть головоломки, которая не автоматизирована. В настоящее время у нас нет планов предлагать поддержку для автоматизации управления приложениями VPN в хранилище. Добавление такой поддержки, однако, поддерживается архитектурой пакета.

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

Настройка инструментов

Подробные инструкции по настройке тестовых устройств приведены в репозитории GitHub. Мы просто даем здесь обзор того, что ожидать при настройке устройств.

Набор тестов поддерживается на устройствах Linux, macOS и Windows (т. Е. Пакет Python может быть установлен и непосредственно запущен на этих устройствах). Инструменты также поддерживают мобильные устройства, но сам пакет никогда не будет работать непосредственно на этих устройствах..

Мы рекомендуем максимально использовать виртуальные машины (ВМ), особенно для тестирования одного устройства. ВМ предлагают несколько преимуществ:

  • Легко создавать и настраивать новые сетевые интерфейсы
  • Позволяет защитить ваш хост-компьютер от множества сторонних установок программного обеспечения, которые требуются в тестах
  • Захват трафика, покидающего виртуальную машину, проще, чем захват трафика, оставляющего реальное физическое устройство
  • Простая предварительная настройка снимков и восстановление при необходимости

Для серьезного всестороннего тестирования мы всегда рекомендуем запускать тесты и на реальном физическом оборудовании, чтобы исключить любые потенциальные различия между виртуализированным и реальным оборудованием..

Обратите внимание, что большинству тестов требуются права администратора (администратора), поэтому для упрощения весь пакет будет работать от имени пользователя root.

Узнайте больше о сценариях утечки, которые тестируют инструменты

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

  • Пример 1: утечка «ванили»
  • Пример 2: утечки WebRTC
  • Пример 3: утечки сетевого перехода
  • Пример 4: недостижимые утечки VPN-серверов
  • Пример 5: сбой процесса VPN

Вклад в инструменты

Мы более чем рады получить вклад в инструменты, будь то исправление ошибок, предложения по улучшению или совершенно новые тестовые случаи. Вы можете отправлять вклады с помощью запросов в GitHub..

Свяжитесь с нами по поводу инструментов

Вы можете связаться с нами по поводу инструментов на герметичность@expressvpn.com.

Обратите внимание, что инструменты в настоящее время находятся в альфа состояние и, вероятно, будет часто меняться. Тем не менее, мы будем стремиться к тому, чтобы инструменты всегда были в рабочем состоянии.

Kim Martin Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map