Jsem inženýr vzděláním, ale více komunikuji s podnikateli a řediteli výroby. Před nějakým časem se na radu obrátil majitel průmyslové společnosti. I když je podnik velký a byl založen v 90. letech, řízení a účetnictví fungují staromódním způsobem v lokální síti.
To je důsledkem obav o vlastní podnik a zvýšeného dohledu ze strany státu. Zákony a normy mohou být kontrolními orgány vykládány velmi široce. Jako příklad lze uvést změny v daňovém kodexu, u daňových porušení, faktické zničení .
V důsledku toho majitel podniku začal hledat řešení pro spolehlivé uchovávání informací a bezpečný přenos dokumentů. Virtuální „trezor“.
Úkol jsme probrali s interním systémovým administrátorem: potřebná je důkladná analýza stávajících platforem.
- Služba by neměla být cloudová v klasickém smyslu slova, t.j. bez ukládání na zařízeních třetí strany. Pouze vlastní server;
- je vyžadováno spolehlivé šifrování přenášených a uchovávaných dat;
- je povinná možnost okamžitého smazání obsahu z jakéhokoliv zařízení stisknutím jednoho tlačítka;
- řešení je vyvinuto v zahraničí.
Čtvrtý bod jsem navrhoval odstranit, protože ruské aplikace mají oficiální certifikáty. Ředitel jasně řekl, co dělat s takovými certifikáty.
Vybereme varianty
Vybral jsem tři řešení (čím více možností, tím více pochybností):
- Open Source — projekt , podporovaný nadšencem a vývojářem Jacobem Borgem.
- , spravované americkou společností Resilio Inc. (dříve byl tento servis znám jako BitTorrent Sync).
- Projekt od aplikace pro synchronizaci. Registrace na Kypru.
Majitel společnosti se slabo vyzná v technických detailech, takže jsem zprávu sestavil ve formě seznamu pro a proti každé variantě.
Závěry analýzy
Syncthing
Výhody:
- Open source;
- Aktivita hlavního vývojáře;
- Projekt existuje velmi dlouho;
- Zdarma.
Nevýhody:
- Není klient pro shell iOS;
- Pomalé Turn servery (jsou zdarma, proto zpomalují). Pro ty, kdo
neví, Turn se používá, když není možné připojit se přímo; - Složitá konfigurace rozhraní (vyžaduje dlouholetou zkušenost s programováním);
- Nedostatek rychlé komerční podpory.
Resilio
Plusy: podpora všech zařízení a rychlé Turn servery.
Nevýhody: Jeden a velmi zásadní – úplné ignorování žádostí ze strany zákaznické podpory. Nulová reakce, ani když se píše z různých adres.
Pvtbox
Plusy:
- Podpora všech zařízení;
- Rychlé Turn servery;
- Možnost stáhnout soubor bez instalace aplikace;
- Přiměřená zákaznická podpora, včetně telefonické.
Nevýhody:
- Mladý projekt (málo recenzí a dobrých hodnocení);
- Velmi ‚technický‘, ne vždy srozumitelný rozhraní webu;
- Chybí podrobná dokumentace, u mnoha otázek je třeba kontaktovat podporu.
Co si vybral zákazník
Jeho první otázka: jaký je smysl vyvíjet něco zdarma? Od Syncthing se hned vzdali. Argumenty nefungovaly.
Po pár dnech zákazník kategoricky odmítl Resilio Sync pro nedostatek podpory, protože není jasné, na koho se obrátit v nestandardní situaci. Navíc nedůvěra k americké registraci společnosti.
Pro další analýzu zůstal Pvtbox Elektronický trezor. Provedli jsme kompletní technický audit této platformy se zaměřením na možnost odposlechu, dešifrování dat a neoprávněného proniknutí do informačního úložiště.
Proces auditu
Provedli jsme analýzu připojení při spuštění programu, v průběhu jeho činnosti a v klidovém stavu. Provoz podle moderních standardů byl zpočátku šifrovaný. Pokusíme se provést MITM útok a změnit certifikát „za běhu“ pomocí Linux (Xubuntu Linux 18.04), Wireshark, Mitmproxy. K tomu zavedeme prostředníka mezi aplikací Pvtbox a serverem pvtbox.net (existuje výměna dat se serverem pvtbox.net prostřednictvím https připojení).
Spouštíme aplikaci, abychom se ujistili, že program a synchronizace souborů v něm fungují. V Linuxu lze ihned sledovat logy, pokud spustíte program z terminálu.

Vypínáme aplikaci a měníme adresu hostitele pvtbox.net v souboru /etc/hosts s právy superuživatele. Adresu měníme na adresu našeho proxy serveru.

Nyní připravíme náš proxy server pro MITM útok na počítači s adresou 192.168.1.64 v naší místní síti. K tomu nainstalujeme balíček mitmproxy verze 4.0.4.
Spouštíme proxy server na portu 443:
$ sudo mitmproxy -p 443
Spouštíme na prvním počítači program Pvtbox, sledujeme výstup mitmproxy a logy aplikace.

Mitmproxy oznamuje, že klient nedůvěřuje podvrženému certifikátu od proxy serveru. V logách aplikace také vidíme, že certifikát proxy serveru neprochází kontrolou a program odmítá pracovat.
Instalujeme certifikát proxy serveru mitmproxy na počítač s aplikací Pvtbox, aby se certifikát stal „důvěryhodným“. Na počítači nainstalujeme balíček ca-certificates. Poté zkopírujeme certifikát mitmproxy-ca-cert.pem z adresáře .mitmproxy proxy serveru na počítač s aplikací Pvtbox do adresáře /usr/local/share/ca-certificates.
Provádíme následující příkazy:
$ sudo openssl x509 -in mitmproxy-ca-cert.pem -inform PEM -out mitmproxy-ca-cert.crt
$ sudo update-ca-certificates

Spouštíme aplikaci Pvtbox. Certifikát opět neprošel kontrolou, program odmítá pracovat. Pravděpodobně aplikace používá ochranný mechanismus Certificate pinning.
Podobný útok byl proveden na host signalserver.pvtbox.net, a také na samotné peer-to-peer spojení mezi uzly. Vývojář uvádí, že aplikace pro zajištění peer-to-peer spojení používá otevřený protokol webrtc, ve kterém se používá end-to-end šifrování podle protokolu DTLSv1.2.
Klíče se generují při každém navázání spojení a přenášejí se šifrovaným kanálem přes signalserver.pvtbox.net.
Teoreticky by bylo možné zachytit nabídky a odpovědi webrtc, podvrhnout tam šifrovací klíče a mít možnost dešifrovat všechny příchozí zprávy přes webrtc. Ale provést mitm útok na signalserver.pvtbox.net se nepodařilo, a proto není možné zachytit a podvrhnout zprávy odesílané přes signalserver.pvtbox.net.
Proto není proveditelný tento útok na peer-to-peer spojení.
Byl také nalezen soubor se certifikáty dodávaný s programem. Soubor se nachází na cestě /opt/pvtbox/certifi/cacert.pem. Tento soubor byl nahrazen souborem, který obsahuje důvěryhodný certifikát od našeho proxy serveru mitmproxy. Výsledky se nezměnily — program odmítal připojení k systému, v logu byla stejná chyba,
že certifikát neprochází kontrolou.
Závěry auditu
Podařilo se mi nezachytit ani podvrhnout provoz. Jména souborů, a tím spíše jejich obsah, se přenášejí zašifrovaně, používá se koncové end-to-end šifrování. V aplikaci je implementováno několik ochranných mechanismů, které brání odposlouchávání a vniknutí.
Společnost si zakoupila dva dedikované servery (fyzicky na různých místech) pro trvalý přístup k informacím. První server slouží k přijímání, zpracování a ukládání informací, druhý pro zálohování.
K získanému jednotlivému cloudu byly připojeny pracovní terminál ředitele a mobilní telefon na iOS. Ostatní zaměstnance připojil interní IT administrátor a technická podpora Pvtbox.
Od známého jsem v uplynulém čase nedostal žádné stížnosti. Doufám, že moje hodnocení pomůže čtenářům Habr v podobné situaci.
Zdroj: habr.com
