No contexto da segurança de aplicativos, um segredo é qualquer informação que prova que o possuidor é quem e o que afirma ser durante o processo de autenticação e autorização. Se agentes mal-intencionados obtiverem acesso aos segredos, eles obterão acesso não intencional aos seus sistemas, que poderão usar para vários propósitos, incluindo roubar segredos corporativos e informações de clientes ou até mesmo reter seus dados para resgate.
Um exemplo clássico é o nome de usuário e a senha que permitem que um aplicativo acesse seu banco de dados, mas um segredo também pode ser chaves de API, credenciais, certificados e chaves privadas, entre outros tipos de informação. Como os segredos são usados para controlar o acesso aos ativos de uma organização, armazená-los e protegê-los com segurança é crucial para reduzir o risco de a organização ser comprometida.
O gerenciamento de segredos é o processo que uma organização usa para:
Quando as organizações migram de arquiteturas monolíticas para microsserviços , o número de componentes independentes de aplicativos e infraestrutura — cada um com suas próprias credenciais — aumenta, o que significa que há muito mais segredos para gerenciar.
Vamos dar uma olhada mais de perto em duas opções para armazenar segredos com segurança:
A abordagem do cofre envolve a instalação de uma ferramenta de gerenciamento de segredos de terceiros. A solução de cofre criptografa cada segredo para impedir que usuários não autorizados o acessem. O cofre expõe uma API para dar aos usuários acesso a segredos com base em políticas estabelecidas. Quando os usuários da API se autenticam, eles só podem acessar os segredos para os quais foram autorizados.
Contras:
Prós:
Há muitas ferramentas no mercado que os desenvolvedores podem usar para armazenar e gerenciar segredos criptografados. Para um exemplo de como usar uma ferramenta de gerenciamento de segredos centralmente automatizada, leia nosso blog, “ Protegendo chaves privadas SSL no NGINX com o HashiCorp Vault ”.
Outra abordagem é usar um provedor de nuvem para gerenciamento de segredos como um serviço. Um benefício é que a ferramenta de gerenciamento de segredos geralmente se integra perfeitamente a outros serviços de nuvem, como bancos de dados gerenciados. Os serviços de provedores de nuvem também podem oferecer recursos como rotação automática, embora pesquisas futuras sejam necessárias para verificar se essa opção resulta em tempo de inatividade.
Contras:
Prós:
Os segredos devem ser gerenciados com cuidado para evitar interrupções no aplicativo quando forem desbloqueados e acessados. Uma prática recomendada é nunca verificar segredos em um sistema de controle de origem. Armazenar segredos ali expõe uma organização a possíveis desastres caso os segredos sejam acessados ou comprometidos acidentalmente quando uma equipe ou indivíduo atualiza o código ou o aplicativo. Por esse motivo, se um segredo for verificado no controle de origem, mesmo que brevemente, ele deve ser tratado como comprometido. Os dados confidenciais devem ser removidos do repositório e apagados do histórico do sistema de controle de origem.