Jestem inżynierem z wykształceniem, ale częściej rozmawiam z przedsiębiorcami i dyrektorami zakładów. Jakiś czas temu o radę zwrócił się właściciel firmy przemysłowej. Mimo że zakład jest duży i został założony w latach 90., zarząd oraz księgowość działają według starych zasad w sieci lokalnej.
To skutek obaw o własny biznes i zaostrzającej się kontroli ze strony państwa. Prawo i normy mogą być interpretowane przez organy kontrolne bardzo szeroko. Przykładem mogą być zmiany w Kodeksie podatkowym, przy naruszeniach podatkowych, faktyczne zniszczenie .
W rezultacie właściciel firmy zaczął szukać rozwiązań do niezawodnego przechowywania informacji i bezpiecznego przesyłania dokumentów. Wirtualny "sejf".
Zadanie omówiliśmy z etatowym administratorem systemu: potrzebna jest głęboka analiza istniejących platform.
- usługa musi być nie chmurowa, w klasycznym rozumieniu tego słowa, tzn. bez przechowywania na zasobach zewnętrznej organizacji. Tylko własny serwer;
- wymagana jest silna encryptcja przesyłanych i przechowywanych danych;
- musi być możliwość natychmiastowego usunięcia treści z dowolnego urządzenia po naciśnięciu jednego przycisku;
- rozwiązanie zostało opracowane za granicą.
Czwarty punkt zaproponowałem usunąć, ponieważ rosyjskie aplikacje mają oficjalne certyfikaty. Dyrektor powiedział wprost, co należy zrobić z takimi certyfikatami.
Wybieramy opcje
Wybrałem trzy rozwiązania (im więcej opcji do wyboru, tym więcej wątpliwości):
- Open Source — projekt , wspierany przez entuzjastę-dewelopera Jakoba Borga.
- , nadzorowane przez amerykańską firmę Resilio Inc. (wcześniej ta usługa nazywała się BitTorrent Sync).
- Projekt od aplikacja do synchronizacji. Rejestracja na Cyprze.
Właściciel firmy słabo orientuje się w technicznych szczegółach, dlatego przygotowałem raport w formie listy zalet i wad każdej opcji.
Podsumowanie analizy
Syncthing
Zalety:
- Open source;
- Aktywność głównego dewelopera;
- Projekt istnieje od bardzo dawna;
- Darmowy.
Wady:
- Brak klienta dla interfejsu iOS;
- Wolne serwery Turn (są darmowe, więc hamują). Dla tych, którzy
nie wiedzą, Turn jest używane, gdy nie ma możliwości bezpośredniego połączenia; - Skomplikowana konfiguracja interfejsu (potrzebne jest wieloletnie doświadczenie w programowaniu);
- Brak szybkiego wsparcia komercyjnego.
Resilio
Zalety: wsparcie dla wszystkich urządzeń oraz szybkie serwery Turn.
Wady: Jeden bardzo istotny problem to całkowite ignorowanie wszelkich zgłoszeń do działu wsparcia. Zero reakcji, nawet gdy piszemy z różnych adresów.
Pvtbox
Zalety:
- Wsparcie dla wszystkich urządzeń;
- Szybkie serwery Turn;
- Możliwość pobrania pliku bez instalacji aplikacji;
- Adekwatna obsługa klienta, w tym telefoniczna.
Minusy:
- Młody projekt (mało recenzji i dobrych opinii);
- Bardzo techniczny, nie zawsze zrozumiały interfejs strony;
- Brak szczegółowej dokumentacji, w wielu sprawach trzeba kontaktować się z działem wsparcia.
Co wybrał klient
Jego pierwsze pytanie: jaki sens ma rozwijanie czegoś za darmo? Od razu zrezygnowano z Syncthing. Argumenty nie zadziałały.
Po kilku dniach klient stanowczo odrzucił Resilio Sync z powodu braku wsparcia, ponieważ nie było jasne, gdzie zwracać się w sytuacjach kryzysowych. Dodatkowo brak zaufania do amerykańskiej siedziby firmy.
Dla dalszej analizy pozostał Pvtbox Elektroniczna skarbnica. Przeprowadzono pełny audyt techniczny tej platformy, koncentrując się na możliwości przechwytywania, deszyfrowania danych i nieautoryzowanego dostępu do zbiornika informacyjnego.
Proces audytu
Zrealizowano analizę połączeń po uruchomieniu programu, w trakcie pracy i w stanie spoczynku. Ruch zgodny z nowoczesnymi standardami jest początkowo szyfrowany. Spróbujemy przeprowadzić atak MITM i podmienić certyfikat „na żywo” za pomocą Linux (Xubuntu Linux 18.04), Wireshark, Mitmproxy. W tym celu wprowadzimy pośrednika między aplikacją Pvtbox a serwerem pvtbox.net (jest wymiana danych z serwerem pvtbox.net za pośrednictwem połączenia https).
Uruchamiamy aplikację, aby upewnić się, że program i synchronizacja plików działają. W Linuxie można od razu obserwować logowanie, jeśli uruchomimy program z terminala.

Wyłączamy aplikację i podmieniamy adres hosta pvtbox.net w pliku /etc/hosts z uprawnieniami superużytkownika. Podmieniamy adres na adres naszego serwera proxy.

Teraz przygotujemy nasz serwer proxy do ataku MITM na komputerze z adresem 192.168.1.64 w naszej lokalnej sieci. W tym celu zainstalujemy pakiet mitmproxy w wersji 4.0.4.
Uruchamiamy serwer proxy na porcie 443:
$ sudo mitmproxy -p 443
Uruchamiamy program Pvtbox na pierwszym komputerze, obserwujemy wyjście mitmproxy i logi aplikacji.

Mitmproxy informuje, że klient nie ufa zamiennemu certyfikatowi od serwera proxy. W logach aplikacji zauważamy również, że certyfikat serwera proxy nie przechodzi weryfikacji i program odmawia działania.
Instalujemy certyfikat serwera proxy mitmproxy na komputerze z aplikacją Pvtbox, aby uczynić certyfikat „zaufanym”. Na komputerze zainstalujemy pakiet ca-certificates. Następnie skopiujemy certyfikat mitmproxy-ca-cert.pem z katalogu .mitmproxy serwera proxy na komputer z aplikacją Pvtbox do katalogu /usr/local/share/ca-certificates.
Wykonujemy polecenia:
$ sudo openssl x509 -in mitmproxy-ca-cert.pem -inform PEM -out mitmproxy-ca-cert.crt
$ sudo update-ca-certificates

Uruchamiamy aplikację Pvtbox. Certyfikat ponownie nie przeszedł weryfikacji, program odmawia działania. Prawdopodobnie aplikacja wykorzystuje mechanizm ochronny Certificate pinning.
Podobny atak został przeprowadzony na hoście signalserver.pvtbox.net, a także na samym połączeniu peer-2-peer między węzłami. Programista wskazuje, że aplikacja do ustanawiania połączeń peer-2-peer wykorzystuje otwarty protokół webrtc, w którym stosowane jest szyfrowanie end-to-end w protokole DTLSv1.2.
Klucze są generowane na każde nawiązanie połączenia i przekazywane przez szyfrowany kanał przez signalserver.pvtbox.net.
Teoretycznie można byłoby przechwycić wiadomości oferty i odpowiedzi webrtc, podmienić tam klucze szyfrowania i mieć możliwość odszyfrowania wszystkich przychodzących wiadomości webrtc. Jednak nie udało się przeprowadzić ataku mitm na signalserver.pvtbox.net, dlatego nie ma możliwości przechwycenia i podmiany wiadomości wysyłanych przez signalserver.pvtbox.net.
W związku z tym przeprowadzenie tego ataku na połączenia peer-2-peer nie jest możliwe.
Odkryto również plik z certyfikatami dostarczany z programem. Plik znajduje się pod ścieżką /opt/pvtbox/certifi/cacert.pem. Ten plik został zastąpiony plikiem, który zawiera zaufany certyfikat z naszego serwera proxy mitmproxy. Wynik się nie zmienił — program odmawiał połączenia z systemem, w logu pojawiała się ta sama błąd,
że certyfikat nie przechodzi weryfikacji.
Podsumowanie audytu
Nie udało mi się przechwycić ani podmienić ruchu. Nazwy plików, a tym bardziej ich zawartość są przesyłane w formie zaszyfrowanej, stosowane jest zakończone end-to-end szyfrowanie. W aplikacji wprowadzono szereg mechanizmów ochronnych, które uniemożliwiają podsłuch i ingerencję.
W wyniku tego firma zakupiła dwa dedykowane serwery (fizycznie w różnych lokalizacjach), aby zapewnić stały dostęp do informacji. Pierwszy serwer służy do odbierania, przetwarzania i przechowywania informacji, a drugi – do tworzenia kopii zapasowych.
Do utworzonej indywidualnej chmury podłączono roboczy terminal dyrektora oraz telefon komórkowy z systemem iOS. Innych pracowników podłączył etatowy administrator systemów i wsparcie techniczne Pvtbox.
W minionym czasie nie było żadnych skarg ze strony znajomego. Mam nadzieję, że moja recenzja pomoże czytelnikom Habr w podobnej sytuacji.
Źródło: habr.com
