Sou engenheiro de treinamento, mas me comunico mais com empresários e diretores de produção. Há algum tempo, o proprietário de uma empresa industrial pediu conselhos. Apesar do fato de a empresa ser grande e criada nos anos 90, a gerência e a contabilidade funcionam da maneira antiga na rede local.
Isso é consequência das preocupações com os negócios e do aumento do controle por parte do Estado. Leis e regulamentos podem ser interpretados pelos órgãos de inspeção de maneira muito ampla. Um exemplo são as alterações ao Código Tributário,
eliminando o estatuto de limitações por violações tributárias, a destruição real de
segredos bancários e de auditoria .
Como resultado, o proprietário da empresa começou a procurar soluções para o armazenamento confiável de informações e a transferência segura de documentos. Virtual "seguro".
Nós trabalhamos na tarefa com um administrador de sistema em tempo integral: precisamos de uma análise profunda das plataformas existentes.
- o serviço não deve estar nublado, no sentido clássico da palavra, ou seja, sem economizar nas instalações de uma organização de terceiros. Somente seu servidor;
- é necessária uma criptografia forte dos dados transmitidos e armazenados;
- a capacidade de excluir com urgência o conteúdo de qualquer dispositivo com o toque de um botão é necessária;
- A solução é desenvolvida no exterior.
Sugeri remover o quarto ponto, porque Os pedidos russos possuem certificados oficiais. O diretor disse explicitamente o que deve ser feito com esses certificados.
Escolha as opções
Selecionei três soluções (quanto mais opções, mais dúvidas):
- Open Source é um projeto Syncthing.net , suportado pelo entusiasta do desenvolvimento Jacob Borg.
- Resilio.com , com curadoria de American Resilio Inc. (anteriormente chamado BitTorrent Sync).
- Projeto Pvtbox Cofre eletrônico do aplicativo de sincronização pvtbox.net . Registro de Chipre.
O proprietário da empresa é pouco versado em sutilezas técnicas, por isso projetei o relatório na forma de listas dos prós e contras de cada opção.
Resumo da análise
Syncthing
Prós :
- Código aberto
- Atividade do desenvolvedor principal;
- O projeto existe há muito tempo;
- Grátis.
Contras:
- Não há cliente para o shell do iOS;
- Servidores de turno lento (eles são gratuitos e, portanto, ficam mais lentos). Para quem
não sabendo, Turn é usado quando é impossível conectar-se diretamente; - Configuração de interface complexa (muitos anos de experiência em programação são necessários);
- Falta de suporte comercial rápido.
Resilio
Prós: suporte para todos os dispositivos e servidores Turn ágil.
Contras: Uma e muito significativa é a completa ignoração pelo serviço de suporte de todas as chamadas. Reação zero, mesmo se você escrever de endereços diferentes.
Pvtbox
Prós:
- Suporte para todos os dispositivos;
- Servidor de turno rápido;
- A capacidade de baixar um arquivo sem instalar o aplicativo;
- Serviço de suporte adequado, incl. por telefone.
Contras :
- Projeto jovem (poucas críticas e boas críticas);
- Uma interface do site muito "técnica" nem sempre é clara;
- Não há documentação detalhada, muitos problemas precisam ser suportados.
O que o cliente escolheu
Sua primeira pergunta é: qual é o sentido de desenvolver algo de graça? A sincronização foi abandonada imediatamente. Argumentos não funcionaram.
Após alguns dias, o cliente dispensou categoricamente o Resilio Sync devido à falta de suporte, pois não está claro para onde ir em caso de emergência. Além de desconfiar do registro americano da empresa.
Para uma análise mais aprofundada, o Pvtbox Electronic Safe permaneceu. Realizamos uma auditoria técnica completa dessa plataforma, com ênfase na possibilidade de interceptação, descriptografia de dados e entrada não autorizada no armazenamento de informações.
Processo de auditoria
Fizemos uma análise dos compostos no início do programa, no processo de trabalho e em um estado calmo. O tráfego pelos padrões modernos é originalmente criptografado. Vamos tentar realizar um ataque MITM e substituir o certificado em tempo real usando
Linux (Xubuntu Linux 18.04), Wireshark ,
Mitmproxy . Para isso, implementaremos um intermediário entre o aplicativo Pvtbox e o servidor pvtbox.net (há uma troca de dados com o servidor pvtbox.net por meio de uma conexão https).
Iniciamos o aplicativo para garantir que o programa e a sincronização de arquivos funcionem nele. No Linux, você pode observar imediatamente o log se executar o programa a partir do terminal.

Desligamos o aplicativo e substituímos o endereço do host pvtbox.net no
arquivo / etc / hosts por privilégios de superusuário. O endereço é substituído pelo endereço do nosso servidor proxy.

Agora, prepararemos nosso servidor proxy para o ataque MITM no computador com o endereço 192.168.1.64 em nossa rede local. Para fazer isso, instale o pacote mitmproxy versão 4.0.4.
Inicie o servidor proxy na porta 443:
$ sudo mitmproxy -p 443Iniciamos o programa Pvtbox no primeiro computador, observamos a saída do mitmproxy e os logs do aplicativo.
O Mitmproxy relata que o cliente não confia no certificado de falsificação do servidor proxy. Nos logs do aplicativo, também observamos que o certificado do servidor proxy não passa na verificação e o programa se recusa a trabalhar.
Instale o certificado proxy
mitmproxy no computador com o aplicativo Pvtbox para tornar o certificado "confiável". No computador, instale o pacote ca-certificates. Em seguida, copie o certificado mitmproxy-ca-cert.pem do diretório .mitmproxy do servidor proxy para o computador com o aplicativo Pvtbox no diretório / usr / local / share / ca-certificates.
Executamos os comandos:
$ sudo openssl x509 -in mitmproxy-ca-cert.pem -informa PEM -out mitmproxy-ca-cert.crt$ sudo update-ca-certificates
Inicie o aplicativo Pvtbox. O certificado falhou novamente, o programa se recusa a trabalhar. O aplicativo provavelmente usa o mecanismo de segurança de
fixação de certificados .
Um ataque semelhante foi realizado no host
signserver.pvtbox.net, bem como na conexão ponto a ponto entre nós. O desenvolvedor indica que o aplicativo para estabelecer conexões ponto a ponto usa o protocolo webrtc aberto, que usa criptografia de ponta a ponta usando o protocolo
DTLSv1.2.As chaves são geradas para cada instalação de conexões e transmitidas por um canal criptografado através do
signserver.pvtbox.net.Teoricamente, seria possível interceptar ofertas e respostas a mensagens webrtc, substituir as chaves de criptografia e ser capaz de descriptografar todas as mensagens que chegassem via webrtc. Mas não foi possível realizar um ataque de mitm no signserver.pvtbox.net, portanto, não há possibilidade de interceptar e substituir as mensagens enviadas através do signserver.pvtbox.net.
Consequentemente, não é possível realizar esse ataque em uma conexão ponto a ponto.
Também foi encontrado um arquivo com certificados que acompanham o programa. O arquivo está localizado no caminho /opt/pvtbox/certifi/cacert.pem. Este arquivo foi substituído por um arquivo que contém um certificado confiável do nosso servidor proxy mitmproxy. O resultado não foi alterado - o programa se recusou a se conectar ao sistema, o mesmo erro foi observado no log,
que o certificado não passa na verificação.
Resultados da Auditoria
Não consegui interceptar ou substituir o tráfego. Os nomes dos arquivos e, ainda mais, seu conteúdo são transmitidos de forma criptografada, são usados na criptografia de ponta a ponta.O aplicativo implementa vários mecanismos de proteção que impedem a escuta telefônica e a implementação.
Como resultado, a empresa adquiriu dois servidores dedicados (fisicamente em locais diferentes) para acesso permanente às informações. O primeiro servidor é usado para receber, processar e armazenar informações, o segundo - para backup.
O terminal de trabalho do diretor e um telefone celular iOS foram conectados à nuvem individual recebida. Outros funcionários foram conectados por um administrador de sistema regular e pelo suporte técnico da Pvtbox.
Nos últimos tempos, não houve reclamações de um amigo. Espero que minha resenha ajude os leitores de Habr em uma situação semelhante.