Я інжынер па адукацыі, але маю зносіны больш з прадпрымальнікамі і дырэктарамі вытворчасцей. Некаторы час таму за парадай звярнуўся ўладальнік прамысловай кампаніі. Нягледзячы на тое, што прадпрыемства буйное, і створана ў 90-х, кіраванне і бухгалтэрыя працуюць па даўніне ў лакальнай сетцы.
Гэтае следства асцярог за свой бізнэс і ўзмацненні кантролю з боку дзяржавы. Законы і нарматывы могуць тлумачыцца правяраючымі органамі вельмі шырока. У прыклад можна прывесці папраўкі ў НК, якія ліквідуюць тэрмін даўнасці па падатковых парушэннях, фактычнае разбурэнне банкаўскай і аўдытарскай таямніцы.
У выніку ўладальнік прадпрыемства пачаў шукаць рашэнні для надзейнага захоўвання інфармацыі і бяспечнай перадачы дакументаў. Віртуальны "сейф".
Задачу прапрацавалі са штатным сістэмным адміністратарам: патрэбен глыбокі аналіз існуючых платформаў.
сэрвіс павінен быць не хмарны, у класічным разуменні гэтага слова, г.зн. без захавання на магутнасцях іншай арганізацыі. Толькі свой сэрвер;
патрабуецца ўстойлівае шыфраванне перадаюцца і захоўваемых дадзеных;
абавязковая магчымасць экстранага выдалення кантэнту з любой прылады па націску адной кнопкі;
рашэнне распрацавана за мяжой.
Чацвёрты пункт я прапанаваў прыбраць, т.я. расійскія прыкладанні маюць афіцыйныя сертыфікаты. Дырэктар прама сказаў, што трэба рабіць з такімі сертыфікатамі.
Выбіраемы варыянты
Я адабраў тры рашэнні (чым больш варыянтаў выбару, тым больш сумневаў):
Open Source – праект Syncthing.net , які падтрымліваецца энтузіястам-распрацоўшчыкам Джэйкабам Боргам.
Resilio.com, якое курыруецца амерыканскай Resilio Inc. (Раней гэты сэрвіс называўся BitTorrent Sync).
Уладальнік кампаніі слаба разбіраецца ў тэхнічных тонкасцях, таму я аформіў справаздачу ў выглядзе спісаў плюсаў і мінусаў кожнага варыянта.
Вынікі аналізу
Syncthing
Плюсы:
Адкрыты зыходны код;
Актыўнасць галоўнага распрацоўшчыка;
Праект існуе вельмі даўно;
Бясплатны.
Мінусы:
Няма кліента для абалонкі iOS;
Павольныя Turn сервера, (яны бясплатныя, таму тармозяць). Для тых хто
не ў курсе, Turn выкарыстоўваецца пры немагчымасці падлучыцца напрамую;
Складаная настройка інтэрфейсу (патрэбен шматгадовы вопыт у праграмаванні);
Адсутнасць хуткай камерцыйнай падтрымкі.
Рэзіліё
Плюсы: падтрымка ўсіх прылад і шустрыя Turn сервера.
Мінусы: Адзін і вельмі істотны - поўнае ігнараванне службай падтрымкі любых зваротаў. Нуль рэакцыі, нават калі пісаць з розных адрасоў.
Pvtbox
Плюсы:
Падтрымка ўсіх прылад;
Хуткія Turn сервера;
Магчымасць спампаваць файл без усталёўкі прыкладання;
Адэкватная служба падтрымкі, у т.л. па тэлефоне.
Мінусы:
Малады праект (мала водгукаў і добрых аглядаў);
Вельмі "тэхнарскі" не заўсёды зразумелы інтэрфейс сайта;
Няма дасканала падрабязнай дакументацыі, па многіх пытаннях даводзіцца тузаць падтрымку.
Што абраў заказчык
Яго першае пытанне: у чым сэнс распрацоўваць нешта бясплатна? Ад Syncthing адмовіліся адразу. Аргументы не працавалі.
Праз пару дзён замовец катэгарычна адмёў Resilio Sync з-за адсутнасці падтрымкі, т.я. незразумела, куды звяртацца ў няштатнай сітуацыі. Плюс недавер да амерыканскай прапіскі фірмы.
Для далейшага аналізу застаўся Pvtbox Электронны сейф. Правялі поўны тэхнічны аўдыт гэтай платформы з упорам на магчымасць перахопу, расшыфроўкі дадзеных і несанкцыянаванага пранікнення ў інфармацыйнае сховішча.
Працэс аўдыту
Зрабілі аналіз злучэнняў пры старце праграмы, у працэсе працы і ў спакойным стане. Трафік па сучасным стандарце першапачаткова ходзіць зашыфраваны. Паспрабуем правесці атаку MITM і падмяніць сертыфікат "на лёце" з дапамогай Linux (Xubuntu Linux 18.04/XNUMX), Wireshark, Mitmproxy. Для гэтага укарэнім пасярэдніка паміж прыкладаннем Pvtbox і серверам pvtbox.net (ёсць абмен дадзенымі з серверам pvtbox.net па https злучэнню).
Запускаем дадатак, каб пераканацца, што праграма і сінхранізацыя файлаў у ім працуе. У Linux можна адразу назіраць лагіраванне, калі запусціць праграму з тэрмінала.
Выключаем прыкладанне і падмяняем адрас хаста pvtbox.net у файле / Etc / хастоў з прывілеямі суперкарыстальніка. Адрас падмяняем на адрас нашага проксі-сервера.
Зараз падрыхтуем наш проксі-сервер для 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 проксі-сервера на кампутар з прыкладаннем Pvtbox у каталог /usr/local/share/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.
За час прэтэнзій ад знаёмага не было. Спадзяюся, мой агляд дапаможа чытачам Хабра ў падобнай сітуацыі.