Sono ingegnere di formazione, ma parlo di più con imprenditori e direttori di produzione. 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à funzionano ancora secondo metodi tradizionali nella rete locale.
Ciò è il risultato delle preoccupazioni per il proprio business e di un crescente controllo da parte dello stato. Leggi e normative possono essere interpretate in modo molto ampio dagli organi di controllo. Un esempio sono le modifiche al Codice Fiscale, per le violazioni fiscali, la reale distruzione .
Di conseguenza, il proprietario dell'azienda ha iniziato a cercare soluzioni per proteggere in modo affidabile le informazioni e trasmettere documenti in sicurezza. Una «cassaforte» virtuale.
Abbiamo affrontato il compito con l'amministratore di sistema: è necessaria un'analisi approfondita delle piattaforme esistenti.
- Il servizio non deve essere basato su cloud, nel senso classico del termine, cioè senza archiviazione su server di terzi. Solo server proprio;
- è richiesta una crittografia sicura per i dati trasmessi e memorizzati;
- è obbligatoria la possibilità di rimuovere urgentemente i contenuti da qualsiasi dispositivo con un semplice clic;
- la soluzione è stata sviluppata all'estero.
Ho suggerito di rimuovere il quarto punto, poiché le applicazioni russe hanno certificati ufficiali. Il direttore ha detto chiaramente cosa si deve fare con tali certificati.
Scegliamo le opzioni
Ho selezionato tre soluzioni (più opzioni ci sono, più dubbi sorgono):
- Open Source — progetto , supportato dall'entusiasta sviluppatore Jacob Borg.
- , curato dalla americana Resilio Inc. (precedentemente questo servizio si chiamava BitTorrent Sync).
- Progetto da applicazioni per la sincronizzazione. Registrazione a Cipro.
Il proprietario dell'azienda non ha molta esperienza nelle questioni tecniche, quindi ho redatto il rapporto sotto forma di elenchi di pro e contro per ogni opzione.
Risultati dell'analisi
Syncthing
Pro:
- Open source;
- Attività dello sviluppatore principale;
- Il progetto esiste da molto tempo;
- Gratuito.
Contro:
- Nessun client per l'interfaccia iOS;
- Server Turn lenti (sono gratuiti, quindi sono lenti). Per chi
non è a conoscenza, Turn è utilizzato quando non è possibile connettersi direttamente; - Configurazione complessa dell'interfaccia (richiesta un'esperienza pluriennale nella programmazione);
- Assenza di un supporto commerciale rapido.
Resilio
Vantaggi: supporto per tutti i dispositivi e server Turn rapidi.
Contro: Uno e molto significativo – assoluto disinteresse da parte del servizio di assistenza per qualsiasi richiesta. Zero reazione, anche scrivendo da indirizzi diversi.
Pvtbox
Vantaggi:
- Supporto per tutti i dispositivi;
- Server Turn veloci;
- Possibilità di scaricare file senza installare l'applicazione;
- Servizio di assistenza adeguato, anche telefonicamente.
Svantaggi:
- Progetto giovane (poche recensioni e buone valutazioni);
- Interfaccia del sito molto 'tecnica' e non sempre comprensibile;
- Manca una documentazione dettagliata, su molte questioni è necessario 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 a causa dell'assenza di supporto, poiché non era chiaro a chi rivolgersi in situazioni non standard. Inoltre, c'era sfiducia verso la sede americana dell'azienda.
Per ulteriori analisi è rimasto il Pvtbox, un'electronic safe. È stata condotta un'analisi tecnica completa di questa piattaforma, focalizzandosi sulla possibilità di intercettare, decrittografare i dati e penetrare non autorizzati negli archivi informatici.
Processo di audit
Abbiamo analizzato le connessioni all'avvio del programma, durante il suo funzionamento e in condizioni di inattività. Inizialmente, il traffico utilizza standard di crittografia moderna. Proveremo a eseguire un attacco MITM e sostituire il certificato "al volo" con Linux (Xubuntu Linux 18.04), Wireshark, Mitmproxy. Per fare ciò, inseriremo un intermediario tra l'app Pvtbox e il server pvtbox.net (c'è uno scambio di dati con il server pvtbox.net tramite connessione https).
Avviamo l'applicazione per assicurarci che il programma e la sincronizzazione dei file funzionino. In Linux, è possibile osservare direttamente il log se si avvia il programma dal terminale.

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

Prepariamo ora il nostro server proxy per l'attacco MITM su un computer con l'indirizzo 192.168.1.64 nella nostra rete locale. Per questo, 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 segnala che il client non si fida del certificato sostitutivo del server proxy. Nei log dell'applicazione notiamo anche che il certificato del server proxy non supera il controllo e l'applicazione si rifiuta di funzionare.
Installiamo il certificato del server proxy mitmproxy sul computer con l'applicazione Pvtbox, per rendere il certificato "fidato". Sull computer installiamo il pacchetto ca-certificates. Poi, copiamo il certificato mitmproxy-ca-cert.pem dalla cartella .mitmproxy del server proxy nella cartella /usr/local/share/ca-certificates del computer con l'applicazione Pvtbox.
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 è stato ancora verificato, l'applicazione si rifiuta di funzionare. Probabilmente, l'applicazione utilizza un meccanismo di protezione Certificate pinning.
Un attacco simile è stato effettuato sul host signalserver.pvtbox.net, e sullo stesso collegamento peer-to-peer tra i nodi. Lo sviluppatore indica che l'applicazione per l'installazione di collegamenti peer-to-peer utilizza il protocollo aperto webrtc, il quale implementa la crittografia end-to-end attraverso. DTLSv1.2.
Le chiavi vengono generate per ogni installazione dei collegamenti e vengono trasferite tramite un canale crittografato attraverso. signalserver.pvtbox.net.
Teoricamente sarebbe possibile intercettare i messaggi offer e answer di webrtc, sostituire le chiavi di crittografia e poter così decifrare tutti i messaggi inviati tramite webrtc. Tuttavia, non è stato possibile condurre un attacco man-in-the-middle su signalserver.pvtbox.net, quindi non ci sono opportunità di intercettare e sostituire i messaggi inviati tramite signalserver.pvtbox.net.
Di conseguenza, non è possibile effettuare questo attacco sui collegamenti peer-to-peer.
È stato anche trovato un file con i certificati fornito insieme al programma. Il file si trova nel percorso /opt/pvtbox/certifi/cacert.pem. Questo file è stato sostituito con un file contenente un certificato di fiducia dal nostro server proxy mitmproxy. Il risultato non è cambiato: il programma si rifiutava di connettersi al sistema, nel log si osservava lo stesso errore,
che il certificato non supera il controllo.
Conclusioni dell'audit
Non sono riuscito a effettuare un'intercettazione o una sostituzione del traffico. I nomi dei file, e tanto meno il loro contenuto, vengono trasmessi in forma criptata, utilizzando una crittografia end-to-end. L'applicazione implementa una serie di meccanismi di protezione che impediscono l'ascolto e l'inserimento non autorizzato.
Come risultato, l'azienda ha acquisito due server dedicati (fisicamente in luoghi diversi) per un accesso permanente alle informazioni. Il primo server è utilizzato per ricevere, elaborare e archiviare i dati, mentre il secondo è destinato al backup.
Al cloud privato è 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 tempo trascorso non ci sono state lamentele da parte del mio collega. Spero che la mia recensione possa aiutare i lettori di Habr in una situazione simile.
Fonte: habr.com
