Como enviar com segurança os logs do seu aplicativo?

1

No momento, estou configurando o log com o graylog para meu sistema e tenho um problema, pois os logs podem conter informações confidenciais. O comportamento padrão é enviar os logs não criptografados via UDP para evitar que o aplicativo bloqueie. Existe alguma maneira de protegê-lo, mantendo a conexão UDP? Se o graylog não for a ferramenta certa para ele, terei prazer em mudar para o que oferece essa funcionalidade. Qual é a sua experiência, como devo implementar o log se eu quiser manter a segurança do meu aplicativo e não quiser introduzir a latência que vem com o logging via https?

    
por mryvlin 22.02.2016 / 09:06

2 respostas

5

Existem muitas opções que podem ser colocadas em conjunto para uma melhor privacidade:

  • configure o criador de logs de rede para usar criptografia ... se o greylog não suportar isso, isso significaria usar outra coisa. Por exemplo, o rsyslog suporta a criptografia com TLS .
  • faça o tunelamento através de uma VPN como o openvpn, por exemplo, com um chave estática que é trivial para configurar
  • faça o tunelamento por meio de um encaminhamento de porta local

Nenhuma criptografia deve ser considerada perfeita. Se você não é muito paranóico, apenas um dos itens acima pode ser suficiente. Se você é paranóico, use-os todos juntos, se possível. E, se for realmente paranoico com dados muito sensíveis, é melhor não enviá-lo por completo.

    
por 22.02.2016 / 09:19
1

Eu concordo completamente com a resposta de Peter, mas para expandir um pouco eu coloco mais uma pergunta: Você lida com mensagens simples de syslog ou seu aplicativo já envia mensagens estruturadas no GELF?

Para o syslog simples, a configuração comprovada e confiável é um servidor de logs central que usa rsyslog ou syslog-ng (ambos implementam o transporte TLS, usam o que você usa por padrão ou aquele com a melhor sintaxe de configuração). Peça-lhes para coletar todas as mensagens do syslog localmente e encaminhar via TLS para o seu servidor de logs central (pode ser idêntico ao seu servidor Graylog2). Faça com que a instância no servidor de logs receba todas as mensagens, arquive-as opcionalmente no disco (ou decida evitar esse risco se elas contiverem informações confidenciais) e, por fim, encaminhe-as para sua instância do Graylog2.

Para mensagens estruturadas, a configuração não é tão fácil. Não tenho certeza se existe um suporte GELF / TCP confiável. Se houver, você poderá proteger o transporte TCP com um túnel ssh ou uma conexão TLS stunnel. Caso contrário, você fica com UDP, que é um pouco mais difícil de encapsular, então você pode ter que configurar uma VPN (com openvpn) para proteger o transporte de log.

    
por 22.02.2016 / 10:19