Sou engenheiro de formação, mas comunico-me mais com empresários e diretores de fábricas. Há algum tempo, o proprietário de uma empresa industrial me procurou em busca de conselho. Apesar de a empresa ser grande, e ter sido criada nos anos 90, a gestão e a contabilidade ainda operam de forma antiga, em uma rede local.
Isso é um reflexo do medo pela sua empresa e do aumento do controle por parte do governo. As leis e normas podem ser interpretadas de forma bastante ampla pelos órgãos de fiscalização. Um exemplo pode ser as emendas no Código Tributário, para infrações fiscais, causando uma real destruição .
Como resultado, o proprietário da empresa começou a procurar soluções para um armazenamento seguro de informações e transmissão segura de documentos. Um "cofre" virtual.
Trabalhei na tarefa com o administrador de sistemas da empresa: precisamos de uma análise profunda das plataformas existentes.
- o serviço não deve ser na nuvem, no sentido clássico dessa palavra, ou seja, sem armazenamento nos servidores de terceiros. Somente o nosso servidor;
- é necessário um criptografamento robusto dos dados transmitidos e armazenados;
- é obrigatória a possibilidade de remoção imediata de conteúdo de qualquer dispositivo com o pressionar de um botão;
- a solução foi desenvolvida no exterior.
Sugeri eliminar o quarto ponto, pois aplicativos russos têm certificações oficiais. O diretor afirmou diretamente o que deve ser feito com essas certificações.
Estamos escolhendo opções
Selecionei três soluções (quanto mais opções de escolha, mais dúvidas surgem):
- Open Source — projeto , mantido pelo entusiasta desenvolvedor Jacob Borg.
- , supervisionado pela Resilio Inc. americana (anteriormente esse serviço era conhecido como BitTorrent Sync).
- Projeto de , aplicativo para sincronização. Registro no Chipre.
O proprietário da empresa tem pouco conhecimento em detalhes técnicos, então eu organizei o relatório em forma de listas de prós e contras de cada opção.
Resultados da análise
Syncthing
Prós:
- Open source;
- Atividade do desenvolvedor principal;
- O projeto existe há muito tempo;
- Gratuito.
Pontos negativos:
- Falta de cliente para a interface iOS;
- Servidores Turn lentos (são gratuitos, por isso estão lentos). Para quem
não está a par, o Turn é usado quando não é possível conectar diretamente; - Configuração complicada da interface (é necessária uma longa experiência em programação);
- Falta de suporte comercial ágil.
Resilio
Acesso direto aos sistemas de cabos transpacíficos. Ping mínimo para a China, Japão, Austrália e costa oeste dos EUA. suporte para todos os dispositivos e servidores Turn rápidos.
Pontos negativos: Um ponto muito significativo – total desinteresse da equipe de suporte em relação a quaisquer solicitações. Nenhuma reação, mesmo quando se escreve de endereços diferentes.
Pvtbox
Acesso direto aos sistemas de cabos transpacíficos. Ping mínimo para a China, Japão, Austrália e costa oeste dos EUA.
- Suporte para todos os dispositivos;
- Servidores Turn rápidos;
- Possibilidade de baixar arquivos sem a necessidade de instalar o aplicativo;
- Serviço de suporte adequado, inclusive por telefone.
Desvantagens:
- Projeto jovem (poucos comentários e boas avaliações);
- Interface do site muito ‘técnica’, nem sempre clara;
- Não há documentação detalhada, em muitas questões é necessário contatar o suporte.
O que o cliente escolheu
Sua primeira pergunta: qual é o sentido de desenvolver algo gratuitamente? Rejeitaram o Syncthing imediatamente. Os argumentos não funcionaram.
Após alguns dias, o cliente descartou categoricamente o Resilio Sync devido à falta de suporte, pois não estava claro a quem recorrer em situações não padronizadas. Além disso, havia desconfiança em relação à sede da empresa nos Estados Unidos.
Para uma análise adicional, sobrou o Pvtbox Cofre Eletrônico. Realizamos uma auditoria técnica completa dessa plataforma com foco em interceptação, descriptografia de dados e acesso não autorizado ao armazenamento de informações.
Processo de auditoria
Realizamos uma análise das conexões ao iniciar o programa, em funcionamento e em estado ocioso. O tráfego, de acordo com o padrão moderno, inicialmente é criptografado. Tentaremos 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á troca de dados com o servidor pvtbox.net via conexão https).
Iniciamos o aplicativo para garantir que o programa e a sincronização de arquivos funcionem. Em Linux, é possível observar o registro imediatamente se iniciar o programa a partir do terminal.

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

Agora, vamos preparar nosso servidor proxy para o ataque MITM no computador com o endereço 192.168.1.64 em nossa rede local. Para isso, instalaremos o pacote mitmproxy versão 4.0.4.
Iniciamos o servidor proxy na porta 443:
$ sudo mitmproxy -p 443
Iniciamos o programa Pvtbox no primeiro computador, observamos a saída do mitmproxy e os logs do aplicativo.

Mitmproxy informa que o cliente não confia no certificado falsificado 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 funcionar.
Instalamos o certificado do servidor proxy mitmproxy no computador com o aplicativo Pvtbox, para tornar o certificado 'confiável'. No computador, instalaremos o pacote ca-certificates. Em seguida, copiaremos 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 -inform PEM -out mitmproxy-ca-cert.crt
$ sudo update-ca-certificates

Iniciamos o aplicativo Pvtbox. O certificado novamente não passou na verificação, e o programa se recusa a funcionar. Provavelmente, o aplicativo usa um mecanismo de proteção Certificate pinning.
Um ataque semelhante foi realizado no host signalserver.pvtbox.net, bem como na própria conexão peer-to-peer entre os nós. O desenvolvedor observa que o aplicativo para estabelecer conexões peer-to-peer utiliza o protocolo aberto webrtc, que utiliza criptografia de ponta a ponta pelo protocolo DTLSv1.2.
As chaves são geradas em cada estabelecimento de conexão e transmitidas por canal criptografado através de signalserver.pvtbox.net.
Teoricamente, seria possível interceptar as mensagens de oferta e resposta webrtc, substituir as chaves de criptografia e ter a capacidade de descriptografar todas as mensagens que chegam via webrtc. Mas a execução de um ataque mitm em signalserver.pvtbox.net não foi bem-sucedida, portanto, não há possibilidade de interceptar e substituir mensagens enviadas através de signalserver.pvtbox.net.
Consequentemente, não é viável realizar este ataque nas conexões peer-to-peer.
Também foi encontrado um arquivo com certificados, fornecido com o programa. O arquivo está localizado no caminho /opt/pvtbox/certifi/cacert.pem. Este arquivo foi substituído por um arquivo que contém o certificado confiável do nosso servidor proxy mitmproxy. O resultado não mudou — o programa continuou a se recusar a conectar-se ao sistema, e o log mostrava o mesmo erro,
de que o certificado não passava na verificação.
Resultados da auditoria
Não consegui interceptar ou substituir o tráfego. Os nomes dos arquivos, e muito menos seu conteúdo, são transmitidos de forma criptografada, utilizando criptografia de ponta a ponta. O aplicativo implementou uma série de mecanismos de proteção que impedem a escuta e a injeção.
A empresa adquiriu dois servidores dedicados (fisicamente em locais diferentes) para acesso permanente à informação. O primeiro servidor é utilizado para receber, processar e armazenar informações, enquanto o segundo é destinado ao backup.
O terminal de trabalho do diretor e o celular iOS foram conectados à nuvem individual recém-criada. Outros funcionários foram conectados pelo administrador de sistemas e pelo suporte técnico da Pvtbox.
Até o momento, não houve reclamações do conhecido. Espero que minha avaliação ajude os leitores do Habr em uma situação semelhante.
Fonte: habr.com
