Аз съм инженер по образование, но общувам най-вече с предприемачи и директори на производства. Преди време мe потърси за съвет собственик на промишлена компания. Въпреки че фирмата е голяма и е основана през 90-те, управлението и счетоводството работят по старомоден начин в локална мрежа.
Това е следствие от опасения за собствения бизнес и засиления контрол от страна на държавата. Закони и нормативи могат да бъдат тълкувани много широко от проверяващите органи. Например, измененията в НК, по данъчни нарушения, фактическото разрушаване .
В резултат на това собственикът на предприятието започна да търси решения за надеждно съхранение на информация и безопасна предаване на документи. Виртуален „сейф“.
Задачата проработихме с щатния системен администратор: необходим е дълбок анализ на съществуващите платформи.
- услугата не трябва да бъде облачна в класическия смисъл на тази дума, т.е. без съхранение на мощностите на трета страна. Само собствен сървър;
- нужно е устойчиво криптиране на предаваните и съхраняваните данни;
- задължително е възможността за спешно изтриване на съдържание от всяко устройство с натискане на един бутон;
- решението е разработено в чужбина.
Четвъртата точка предложих да се премахне, тъй като руските приложения имат официални сертификати. Директорът директно каза какво да правим с такива сертификати.
Избираме варианти
Подбрах три решения (колкото повече варианти за избор, толкова повече съмнения):
- Open Source — проект , поддържан от ентусиаста-разработчик Джейкоб Борг.
- , куриран от американската компания Resilio Inc. (преди този сервис се наричаше BitTorrent Sync).
- Проект от приложение за синхронизация. Кипърска регистрация.
Собственикът на компанията не разбира добре техническите детайли, затова подготвих отчета под формата на списъци с плюсове и минуси на всеки вариант.
Резултати от анализа
Syncthing
Плюсове:
- Open source;
- Активност на главния разработчик;
- Проектът съществува от много време;
- Безплатен.
Недостатъци:
- Няма клиент за iOS;
- Бавни Turn сървъри (те са безплатни, затова забавят). За тези, които
не знаят, Turn се използва, когато не може да се свържете директно; - Сложна настройка на интерфейса (необходим много опит в програмирането);
- Липса на бърза бизнес поддръжка.
Resilio
Плюсове: поддръжка на всички устройства и бързи Turn сървъри.
Недостатъци: Един много важен аспект – пълно игнориране от страна на поддръжката на всички запитвания. Нула реакция, дори когато се пише от различни адреси.
Pvtbox
Плюсове:
- Поддръжка на всички устройства;
- Бързи Turn сървъри;
- Възможност за изтегляне на файл без инсталация на приложение;
- Адекватна служба за поддръжка, включително по телефона.
Недостатъци:
- Млад проект (малко отзиви и добри ревюта);
- Много 'техничен' и не винаги разбираем интерфейс на сайта;
- Липсва детайлна документация, по много въпроси се налага да се свързваме с поддръжката.
Какво избра клиентът
Неговият първи въпрос: какъв е смисълът да се разработва нещо безплатно? Отказаха се веднага от Syncthing. Аргументите не работиха.
След няколко дни клиентът категорично отхвърли Resilio Sync поради липса на поддръжка, тъй като не е ясно къде да се обърне в неконвенционални ситуации. Освен това имаше недоверие към американската регистрация на фирмата.
За по-нататъшен анализ остана Pvtbox. Проведохме пълен технически одит на тази платформа, със специален акцент върху възможността за прихващане, декриптиране на данни и неавторизирано проникване в информационното хранилище.
Процес на одит
Анализирахме връзките при стартиране на програмата, по време на работа и в спокойно състояние. Трафикът по съвременните стандарти поначало е криптиран. Ще направим опит за MITM атака и да заменим сертификата 'на летящо' с помощта на Linux (Xubuntu Linux 18.04), Wireshark, Mitmproxy. За това ще внедрим посредник между приложението Pvtbox и сървъра pvtbox.net (има обмен на данни със сървъра pvtbox.net по https връзка).
Стартираме приложението, за да се уверим, че програмата и синхронизацията на файлове работят. В Linux може веднага да се наблюдава логването, ако стартирате програмата от терминала.

Изключваме приложението и заменяме адреса на хоста pvtbox.net в файла /etc/hosts с привилегии на суперпотребител. Заменяме адреса с адреса на нашия прокси-сървър.

Сега подготвяме нашия прокси-сървър за MITM атака на компютър с адрес 192.168.1.64 в нашата локална мрежа. За това инсталираме пакета mitmproxy версия 4.0.4.
Стартираме прокси-сървъра на порт 443:
$ sudo mitmproxy -p 443
Стартираме програмата Pvtbox на първия компютър, гледаме изхода на mitmproxy и логовете на приложението.

Mitmproxy съобщава, че клиентът не доверява на подменения сертификат от прокси-сервера. В логовете на приложението също наблюдаваме, че сертификатът на прокси-сервера не минава проверка и програмата отказва да работи.
Инсталираме сертификат на прокси-сервера mitmproxy на компютър с приложението Pvtbox, за да направим сертификата "доверен". На компютъра инсталираме пакета ca-certificates. След това копираме сертификата mitmproxy-ca-cert.pem от каталога .mitmproxy на прокси-сервера в каталога /usr/local/share/ca-certificates на компютъра с приложението Pvtbox.
Изпълняваме следните команди:
$ sudo openssl x509 -in mitmproxy-ca-cert.pem -inform PEM -out mitmproxy-ca-cert.crt
$ sudo update-ca-certificates

Стартираме приложението 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.
През миналото време няма подадени оплаквания от познатия. Надявам се, че моят преглед ще помогне на читателите на Хабра в подобна ситуация.
Източник: habr.com
