Como manter as chaves de acesso seguras no caso de um servidor comprometido?

2

Qual é a melhor estratégia para manter os tokens de acesso seguros no caso de um servidor comprometido?

Digamos que eu tenha um servidor da Web Linux no qual eu regularmente ssh. Há uma variedade de tokens de acesso críticos armazenados neste servidor (por exemplo, chaves de criptografia, Amazon S3 para backups, etc.). Se um invasor puder ssh no servidor, qual é a melhor estratégia para impedi-los de ler as chaves?

    
por Sergey 09.02.2016 / 20:44

2 respostas

3

É muito difícil manter as chaves sendo lidas. O controle de acesso obrigatório em seus daemons usando o AppArmor ou o SELinux aumentará a capacidade de limitar o acesso de leitura.

O uso de softwares como Vault aumenta um pouco. Como o sistema de credenciais temporário fornecido pelo STS da Amazon, isso pode ser aplicado a qualquer backend que você escreve um módulo para alguns, criando assim credenciais temporárias e facilmente revogáveis. Se for escrito diretamente no seu aplicativo, isso manterá as senhas fora dos arquivos de configuração.

Você pode usar um back-end de autenticação, como o ID do aplicativo ou se tiver hardware , fique super chique e escreva um baseado em TPM.

    
por 09.02.2016 / 21:39
6
  1. As chaves de criptografia devem ser assimétricas, portanto, se elas caírem nas mãos de outra pessoa, elas não poderão fazer nada além de criptografar dados com as chaves (não descriptografadas).
  2. As credenciais do
  3. S3 devem ser alternadas com frequência e de forma automática, e devem receber apenas o mínimo mínimo de acesso a intervalos. As chaves de backup devem somente ter acesso PUT aos buckets, não listar / excluir / modificar / obter, etc. Da mesma forma, se essas chaves caírem em mãos erradas, tudo o que elas podem fazer é enviar mais dados para você.
  4. Implemente os meios padrão para proteger um servidor: autenticação de chaves, senhas strongs para acesso ao sudo, etc.
  5. Use um HIDS (como o OSSEC) para auditar o acesso / modificação de arquivos e alertar sobre anomalias.
  6. Somente conceda acesso de leitura às chaves dos usuários específicos que precisam delas.

Além disso, você está precisando usar um HSM , que adiciona um pouco de despesa e complexidade . Se você já está na AWS, eles têm um serviço de gerenciamento de chaves que você pode usar para proteger e auditar o uso de suas chaves.

    
por 09.02.2016 / 20:53