Sono un ingegnere di formazione, ma comunico di più con imprenditori e direttori di produzione. Qualche tempo fa, un proprietario di un'azienda industriale si è rivolto a me per un consiglio. Nonostante l'azienda sia grande e sia stata fondata negli anni '90, la gestione e la contabilità operano in modo tradizionale all'interno di una rete locale.
Questo è il risultato delle preoccupazioni per il proprio business e dell'intensificazione del controllo da parte dello stato. Le leggi e i regolamenti possono essere interpretati in modo molto ampio dagli organi di controllo. Un esempio può essere fornito dalle modifiche al Codice Fiscale, per le violazioni fiscali, mentre si verifica la vera distruzione .
Di conseguenza, il proprietario dell'azienda ha iniziato a cercare soluzioni per un'immagazzinamento sicuro delle informazioni e un trasferimento sicuro dei documenti. Un "cassaforte" virtuale.
Il compito è stato analizzato con l'amministratore di sistema in servizio: è necessaria un'analisi approfondita delle piattaforme esistenti.
- il servizio deve essere non basato su cloud, nel senso tradizionale del termine, ovvero senza archiviazione su server di terze parti. Solo un server proprietario;
- è necessaria una crittografia robusta dei dati trasferiti e memorizzati;
- è obbligatoria la possibilità di rimuovere urgentemente il contenuto da qualsiasi dispositivo premendo un pulsante;
- la soluzione è stata sviluppata all'estero.
Ho suggerito di eliminare il quarto punto, dato che le applicazioni russe hanno certificati ufficiali. Il direttore ha detto chiaramente cosa fare con tali certificati.
Scelgo le opzioni
Ho selezionato tre soluzioni (più opzioni di scelta, più dubbi):
- Open Source — progetto , supportato dall'entusiasta sviluppatore Jacob Borg.
- , curato dall'americana Resilio Inc. (precedentemente questo servizio era chiamato BitTorrent Sync).
- Progetto di app per la sincronizzazione. Registrazione a Cipro.
Il proprietario dell'azienda ha una comprensione limitata delle complessità tecniche, quindi ho redatto il rapporto in forma di liste di pro e contro per ciascuna opzione.
Risultati dell'analisi
Syncthing
Pro:
- Open source;
- Attività dello sviluppatore principale;
- Il progetto esiste da molto tempo;
- Gratuito.
Contro:
- Non c'è un cliente per l'interfaccia iOS;
- Server Turn lenti (sono gratuiti, quindi rallentano). Per chi
non lo sa, Turn viene utilizzato quando non è possibile connettersi direttamente; - Configurazione dell'interfaccia complessa (è necessaria un'esperienza pluriennale nella programmazione);
- Mancanza di supporto commerciale rapido.
Resilio
Pro: supporto per tutti i dispositivi e server Turn veloci.
Contro: Uno molto significativo è l'ignoranza totale da parte del servizio di supporto di qualsiasi richiesta. Zero reazione, anche se si scrive da indirizzi diversi.
Pvtbox
Pro:
- Supporto per tutti i dispositivi;
- Server Turn veloci;
- Possibilità di scaricare file senza installare l'applicazione;
- Servizio di supporto adeguato, compreso quello telefonico.
Contro:
- Progetto giovane (poche recensioni e buone recensioni);
- Interfaccia del sito molto 'tecnica' e non sempre comprensibile;
- Non c'è documentazione dettagliata, su molte questioni si è costretti a contattare il supporto.
Cosa ha scelto il cliente
La sua prima domanda: qual è il senso di sviluppare qualcosa gratuitamente? Hanno subito rifiutato Syncthing. Gli argomenti non hanno funzionato.
Dopo un paio di giorni, il cliente ha categoricamente scartato Resilio Sync per mancanza di supporto, poiché non è chiaro a chi rivolgersi in una situazione non standard. Inoltre, una sfiducia nei confronti della registrazione americana dell'azienda.
Per ulteriori analisi è rimasto Pvtbox, il salvadanaio elettronico. Abbiamo condotto un audit tecnico completo di questa piattaforma, concentrandoci sulla possibilità di intercettazione, decifratura dei dati e accesso non autorizzato al deposito di informazioni.
Processo di audit
Abbiamo effettuato un'analisi delle connessioni all'avvio del programma, durante il funzionamento e in stato di inattività. Il traffico, secondo gli standard moderni, inizialmente circola in forma crittografata. Proveremo a condurre un attacco MITM e sostituire il certificato "on the fly" con l'aiuto di Linux (Xubuntu Linux 18.04), Wireshark, Mitmproxy. Per questo, inseriremo un intermediario tra l'applicazione Pvtbox e il server pvtbox.net (si sono scambiati dati con il server pvtbox.net tramite connessione https).
Avviamo l'applicazione per assicurarci che il programma e la sincronizzazione dei file stiano funzionando. In Linux è possibile osservare immediatamente il logging, se si avvia il programma dal terminale.

Spegnere l'applicazione e sostituire l'indirizzo host pvtbox.net nel file /etc/hosts con i privilegi di superutente. Sostituiamo l'indirizzo con quello del nostro server proxy.

Ora prepariamo il nostro server proxy per un attacco MITM su un computer con indirizzo 192.168.1.64 nella nostra rete locale. A tale scopo, installeremo il pacchetto mitmproxy versione 4.0.4.
Avviamo il server proxy sulla porta 443:
$ sudo mitmproxy -p 443
Avviamo il programma Pvtbox sul primo computer, osserviamo l'output di mitmproxy e i log dell'applicazione.

Mitmproxy riporta che il cliente non si fida del certificato sostitutivo fornito dal server proxy. Nei log dell'applicazione osserviamo anche che il certificato del server proxy non supera la verifica e il programma si rifiuta di funzionare.
Installiamo il certificato del server proxy mitmproxy sul computer con l'applicazione Pvtbox per rendere il certificato "fidato". Sul computer installeremo il pacchetto ca-certificates. Poi copieremo il certificato mitmproxy-ca-cert.pem dalla cartella .mitmproxy del server proxy sul computer con l'applicazione Pvtbox nella cartella /usr/local/share/ca-certificates.
Eseguiamo i comandi:
$ sudo openssl x509 -in mitmproxy-ca-cert.pem -inform PEM -out mitmproxy-ca-cert.crt
$ sudo update-ca-certificates

Avviamo l'applicazione Pvtbox. Il certificato non ha nuovamente superato la verifica, il programma si rifiuta di funzionare. Probabilmente, l'applicazione utilizza un meccanismo di protezione Certificate pinning.
Un attacco simile è stato effettuato sull'host signalserver.pvtbox.net, e anche sulla connessione peer-to-peer stessa tra i nodi. Lo sviluppatore indica che l'applicazione per stabilire connessioni peer-to-peer utilizza il protocollo aperto webrtc, che usa la crittografia end-to-end tramite il protocollo DTLSv1.2.
Le chiavi vengono generate per ogni stabilimento di connessione e vengono trasferite attraverso un canale crittografato tramite signalserver.pvtbox.net.
Teoricamente sarebbe possibile catturare i messaggi offer e answer di webrtc, sostituire le chiavi di crittografia e avere la possibilità di decrittografare tutti i messaggi inviati tramite webrtc. Tuttavia, non è stato possibile effettuare un attacco mitm su signalserver.pvtbox.net, quindi non ci sono opportunità di catturare e sostituire i messaggi inviati tramite signalserver.pvtbox.net.
Di conseguenza, non è possibile effettuare tale attacco sulle connessioni peer-to-peer.
È stato anche scoperto un file con i certificati fornito con il programma. Il file si trova nel percorso /opt/pvtbox/certifi/cacert.pem. Questo file è stato sostituito da un file che contiene un certificato fidato del nostro server proxy mitmproxy. Il risultato non è cambiato: il programma si rifiutava di connettersi al sistema e nel log si è osservato lo stesso errore,
che il certificato non supera la verifica.
Risultati dell'audit
Non sono riuscito a effettuare la cattura o la sostituzione del traffico. I nomi dei file, e tanto meno il loro contenuto, vengono trasmessi in forma crittografata, si utilizza una crittografia end-to-end. L'applicazione implementa una serie di meccanismi di protezione che ostacolano l'ascolto e l'inserimento.
Di conseguenza, l'azienda ha acquistato due server dedicati (fisicamente in luoghi diversi) per un accesso permanente alle informazioni. Il primo server è utilizzato per la ricezione, l'elaborazione e l'archiviazione delle informazioni, il secondo – per il backup.
Al cloud individuale ottenuto è stato collegato il terminale di lavoro del direttore e un telefono mobile iOS. Altri dipendenti sono stati collegati dall'amministratore di sistema e dal supporto tecnico di Pvtbox.
Nel frattempo, non ci sono state lamentele da parte del conoscente. Spero che la mia recensione possa aiutare i lettori di Habr in una situazione simile.
Fonte: habr.com
