Nuvem privada. Buscando alternativas para soluções abertas

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, que eliminam o prazo de prescrição para infrações fiscais, causando uma real destruição do sigilo bancário e contábil..

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 Syncthing.net , mantido pelo entusiasta desenvolvedor Jacob Borg.
  • Resilio.com, supervisionado pela Resilio Inc. americana (anteriormente esse serviço era conhecido como BitTorrent Sync).
  • Projeto Pvtbox Cofre eletrônico de pvtbox.net , 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.
Nuvem privada. Buscando alternativas para soluções abertas

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.
Nuvem privada. Buscando alternativas para soluções abertas

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.
Nuvem privada. Buscando alternativas para soluções abertas

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
Nuvem privada. Buscando alternativas para soluções abertas

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

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster