Asiri "awọsanma". A n wa yiyan si ṣiṣi awọn solusan

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

Это следствие опасений за свой бизнес и усиления контроля со стороны государства. Законы и нормативы могут трактоваться проверяющими органами очень широко. В пример можно привести поправки в НК, ликвидирующие срок давности по налоговым нарушениям, фактическое разрушение банковской и аудиторской тайны.

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

Задачу проработали с штатным системным администратором: нужен глубокий анализ существующих платформ.

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

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

Выбираем варианты

Я отобрал три решения (чем больше вариантов выбора, тем больше сомнений):

  • Open Source — проект Syncthing.net , поддерживаемый энтузиастом-разработчиком Джейкобом Боргом.
  • Resilio.com, курируемое американской Resilio Inc. (ранее этот сервис назывался BitTorrent Sync).
  • Ise agbese na Pvtbox Электронный сейф lati pvtbox.net приложения для синхронизации. Кипрская регистрация.

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

Итоги анализа

Syncthing

Плюсы:

  • Orisun ṣiṣi;
  • Активность главного разработчика;
  • Проект существует очень давно;
  • Бесплатный.

Konsi:

  • Нет клиента для оболочки iOS;
  • Медленные Turn сервера, (они бесплатные, поэтому тормозят). Для тех кто
    не в курсе, Turn используется при невозможности подключиться напрямую;
  • Сложная настройка интерфейса (нужен многолетний опыт в программировании);
  • Отсутствие быстрой коммерческой поддержки.

resilium

Aleebu: поддержка всех устройств и шустрые Turn сервера.

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

Pvtbox

Aleebu:

  • Поддержка всех устройств;
  • Быстрые Turn сервера;
  • Возможность скачать файл без установки приложения;
  • Адекватная служба поддержки, в т.ч. по телефону.

Минусы:

  • Молодой проект (мало отзывов и хороших обзоров);
  • Очень «технарский» не всегда понятный интерфейс сайта;
  • Нет досконально подробной документации, по многим вопросам приходится дергать поддержку.

Что выбрал заказчик

Его первый вопрос: в чем смысл разрабатывать что-то бесплатно? От Syncthing отказались сразу. Аргументы не работали.

Через пару дней заказчик категорически отмёл Resilio Sync из-за отсутствия поддержки, т.к. непонятно, куда обращаться в нештатной ситуации. Плюс недоверие к американской прописке фирмы.

Для дальнейшего анализа остался Pvtbox Электронный сейф. Провели полный технический аудит этой платформы с упором на возможность перехвата, расшифровки данных и несанкционированного проникновения в информационное хранилище.

Процесс аудита

Сделали анализ соединений при старте программы, в процессе работы и в спокойном состоянии. Трафик по современному стандарту изначально ходит зашифрованный. Попробуем провести атаку MITM и подменить сертификат «на лету» с помощью Linux (Xubuntu Linux 18.04), Wireshark, Mitmproxy. Для этого внедрим посредника между приложением Pvtbox и сервером pvtbox.net (есть обмен данными с сервером pvtbox.net по https соединению).

Запускаем приложение, чтобы убедиться, что программа и синхронизация файлов в нем работает. В Linux можно сразу наблюдать логирование, если запустить программу из терминала.
Asiri "awọsanma". A n wa yiyan si ṣiṣi awọn solusan

Выключаем приложение и подменяем адрес хоста pvtbox.net в файле / Ati be be / ogun с привилегиями суперпользователя. Адрес подменяем на адрес нашего прокси-сервера.
Asiri "awọsanma". A n wa yiyan si ṣiṣi awọn solusan

Теперь подготовим наш прокси-сервер для MITM атаки на компьютере с адресом 192.168.1.64 в нашей локальной сети. Для этого установим пакет mitmproxy версии 4.0.4.

Запускаем прокси-сервер на порту 443:
$ sudo mitmproxy -p 443

Запускаем на первом компьютере программу Pvtbox, смотрим на вывод mitmproxy и логи приложения.
Asiri "awọsanma". A n wa yiyan si ṣiṣi awọn solusan

Mitmproxy сообщает, что клиент не доверяет подменному сертификату от прокси-сервера. В логах приложения также наблюдаем, что сертификат прокси-сервера не проходит проверку и программа отказывается работать.

Устанавливаем сертификат прокси-сервера mitmproxy на компьютер с приложением Pvtbox, чтобы сделать сертификат «доверенным». На компьютере установим пакет ca-certificates. Затем скопируем сертификат mitmproxy-ca-cert.pem из каталога .mitmproxy прокси-сервера на компьютер с приложением Pvtbox в каталог /usr/local/share/ca-certificates.

Выполняем команды:
$ sudo openssl x509 -in mitmproxy-ca-cert.pem -inform PEM -out mitmproxy-ca-cert.crt
$ sudo update-ca-certificates
Asiri "awọsanma". A n wa yiyan si ṣiṣi awọn solusan

Запускаем приложение Pvtbox. Сертификат снова не прошел проверку, программа отказывается работать. Вероятно, приложение использует защитный механизм Certificate pinning.

Аналогичная атака была проведена на хост signalserver.pvtbox.net, а также на само peer-2-peer соединение между нодами. Разработчик указывает, что приложение для установки peer-2-peer соединений использует открытый протокол webrtc в котором используется end-to-end шифрование по протоколу DTLSv1.2.

Ключи генерируются на каждую установку соединений и передаются по зашифрованному каналу через signalserver.pvtbox.net.

Теоретически можно было бы перехватить offer и answer сообщения webrtc, подменить там ключи шифрования и иметь возможность расшифровать все поступающие по webrtc сообщения. Но провести mitm атаку на signalserver.pvtbox.net не удалось, поэтому и возможности перехватить и подменить сообщения отправляемые через signalserver.pvtbox.net нет.

Соответственно на peer-2-peer соединения данную атаку провести не представляется возможным.

Также был обнаружен файл с сертификатами, поставляемый с программой. Файл расположен по пути /opt/pvtbox/certifi/cacert.pem. Этот файл был заменен файлом, который содержит доверенный сертификат от нашего прокси-сервера mitmproxy. Результат не изменился — программа отказывалась подключаться к системе, в логе наблюдалась та же ошибка,
что сертификат не проходит проверку.

Итоги аудита

Произвести перехват или подмену трафика мне не удалось. Имена файлов, а уж тем более их содержимое передаются в зашифрованном виде, используется оконечное end-to-end шифрованию В приложении реализован ряд защитных механизмов, препятствующих прослушке и внедрению.

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

К полученному индивидуальному облаку подключили рабочий терминал директора и мобильный телефон на iOS. Других сотрудников подключали штатный сисадмин и техподдержка Pvtbox.

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

orisun: www.habr.com

Fi ọrọìwòye kun