Compartilhar via


Melhores práticas para a proteção de segredos

Este artigo fornece diretrizes sobre como proteger seus segredos e reduzir o risco de acesso não autorizado. Siga essas diretrizes para ajudar a garantir que você não armazene informações confidenciais, como credenciais em código, repositórios do GitHub, logs, pipelines de integração contínua/implantação contínua (CI/CD) e assim por diante. As diretrizes desse artigo foram compiladas a partir de recomendações de serviços individuais, bem como do Microsoft Cloud Security Benchmark (MCSB).

Práticas recomendadas gerais

No cenário digital atual, a proteção de informações confidenciais, como credenciais de aplicativos e segredos, é primordial. Uma violação pode levar a graves consequências, incluindo perda de dados, penalidades financeiras e danos à reputação. A implementação de uma estratégia abrangente de gerenciamento de segredos é essencial para mitigar esses riscos.

Realizar uma auditoria para identificar segredos

Antes de proteger seus segredos, você precisa saber onde eles estão. A realização de uma auditoria completa de seus sistemas e aplicativos ajuda a identificar todas as informações confidenciais que precisam de proteção. Isso inclui senhas, chaves de API, cadeias de conexão e outras credenciais. Auditorias regulares garantem que novos segredos sejam contabilizados e os existentes sejam gerenciados corretamente.

É importante observar que mesmo segredos criados dinamicamente, como tokens OAuth, que podem ser temporários, ainda precisam ser protegidos com o mesmo rigor que os segredos de longo prazo.

Evitar segredos de hard-coding

Inserir segredos diretamente em seu código ou arquivos de configuração é um risco de segurança significativo. Se sua base de código estiver comprometida, seus segredos também estarão. Em vez disso, use variáveis de ambiente ou ferramentas de gerenciamento de configuração que mantenham os segredos fora do código-fonte. Essa prática minimiza o risco de exposição acidental e simplifica o processo de atualização de segredos.

Além disso, a integração da recuperação de segredos no pipeline de implantação automatizada e o uso de padrões de injeção de segredos podem evitar que os segredos sejam acidentalmente expostos em logs ou no controle de versão, aumentando ainda mais a segurança do processo de implantação.

Confira Recomendações para proteger segredos de aplicativos

Usar repositórios de chaves seguros

Aproveitar repositórios de chaves seguros garante que seus segredos sejam armazenados em um local seguro e criptografado. Serviços como o Azure Key Vault e o HSM Gerenciado do Azure fornecem recursos de segurança robustos, incluindo controle de acesso, registro em log e rotação automática. Essa abordagem centraliza o gerenciamento de seus segredos e reduz o risco de acesso não autorizado.

Para obter uma segurança ainda maior, especialmente para segredos altamente confidenciais ou críticos, considere criptografar o segredo com uma chave armazenada em um Modelo de Segurança de Hardware (HSM), que oferece proteção aprimorada em comparação com os repositórios de segredos baseados em software. Para obter uma visão geral de todas as ofertas de gerenciamento de chaves no Azure e diretrizes sobre as quais escolher, confira Gerenciamento de chaves no Azure e Como escolher a solução certa de gerenciamento de chaves.

Implementar ferramentas de verificação secreta

Verificar regularmente sua base de código em busca de segredos inseridos pode impedir a exposição acidental. Ferramentas como o Verificador de Credenciais do Azure DevOps e o recurso de Verificação de segredo do GitHub podem detectar e alertar automaticamente sobre os segredos encontrados em seus repositórios. A integração dessas ferramentas ao pipeline de CI/CD garante o monitoramento contínuo. É crucial tratar qualquer segredo encontrado por essas ferramentas de verificação como comprometido, o que significa que ele deve ser imediatamente revogado e substituído para manter a integridade de sua postura de segurança.

Aproveitar identidades gerenciadas

As identidades gerenciadas no Azure fornecem uma maneira segura de os aplicativos se autenticarem nos serviços do Azure sem armazenar credenciais no código. Ao habilitar identidades gerenciadas para recursos do Azure, você pode acessar com segurança o Azure Key Vault e outros serviços, reduzindo a necessidade de lidar com segredos manualmente. Essa abordagem não apenas minimiza a criação de segredos, mas também reduz a área de superfície para possíveis violações, pois a responsabilidade pelo gerenciamento de credenciais é delegada à plataforma.

Aplicar controle de acesso granular

Siga o princípio do privilégio mínimo aplicando o controle de acesso granular aos seus segredos. Use o Controle de acesso baseado em função do Azure (RBAC) para garantir que somente entidades autorizadas tenham acesso a segredos específicos. Examine e atualize regularmente as permissões de acesso para impedir o acesso não autorizado. Também é aconselhável implementar funções distintas, como usuário, administrador e auditor, para gerenciar o acesso aos segredos, garantindo que apenas identidades confiáveis tenham o nível apropriado de permissão.

Confira o guia do RBAC do Azure Key Vault.

Girar segredos regularmente

Os segredos são suscetíveis a vazamento ou exposição ao longo do tempo. Girar regularmente seus segredos reduz o risco de acesso não autorizado. Você pode rotacionar segredos no Azure Key Vault para determinados segredos; para aqueles que não podem ser rotacionados automaticamente, estabeleça um processo de rotação manual e garanta que eles sejam limpos quando não estiverem mais em uso.

Automatizar o processo de rotação de segredo e criar redundância em seu gerenciamento de segredo pode garantir que a rotação não interrompa a disponibilidade do serviço. Implementar a lógica de repetição e padrões de acesso simultâneo em seu código pode ajudar a minimizar os problemas durante a janela de rotação.

Monitorar e registrar o acesso

Habilite o registro em log e o monitoramento do sistema de gerenciamento de segredos para controlar o acesso e o uso. Use o registro em log do Key Vault e/ou serviços como o Azure Monitor e a Grade de Eventos do Azure para monitorar todas as atividades relacionadas aos seus segredos. Isso fornece visibilidade de quem acessou seus segredos e ajuda a detectar qualquer comportamento suspeito ou possíveis incidentes de segurança. A manutenção de trilhas de auditoria detalhadas é essencial para inspecionar e validar o acesso a segredos, o que pode ajudar a prevenir o roubo de identidade, evitar o repúdio e reduzir a exposição desnecessária.

Implementar isolamento de rede

Reduza a exposição de seus segredos implementando o isolamento da rede. Configure firewalls e grupos de segurança de rede para restringir o acesso aos cofres de chaves. Permita que apenas aplicativos e serviços confiáveis acessem seus segredos, minimizando a superfície de ataque e impedindo o acesso não autorizado. Além disso, considere usar vários cofres de chaves para criar limites de isolamento para diferentes componentes, garantindo que, se um componente for comprometido, ele não poderá obter o controle de outros segredos ou de toda a carga de trabalho.

Criptografar segredos inativos e em trânsito

Verifique se seus segredos estão criptografados inativos e em trânsito. O Azure Key Vault armazena segredos com segurança usando criptografia de envelope, em que as chaves de criptografia de dados (DEKs) são criptografadas por chaves de criptografia de chaves (KEKs), fornecendo uma camada adicional de segurança. Essa abordagem aprimora a proteção contra acesso não autorizado. Além disso, use protocolos de comunicação seguros, como HTTPS, para criptografar dados em trânsito entre seus aplicativos e o cofre de chaves, garantindo que seus segredos sejam protegidos durante o armazenamento e a transmissão.

No Azure, a criptografia inativa é implementada em vários serviços usando a criptografia AES 256, enquanto os dados em trânsito são protegidos por meio de TLS e MACsec para impedir o acesso não autorizado durante a transmissão. Essas práticas de criptografia fornecem proteção abrangente para seus dados, sejam eles armazenados ou transmitidos entre sistemas. Para obter mais detalhes, confira Criptografia inativa e em trânsito.

Distribuição segura de segredos

Ao distribuir segredos, verifique se eles são compartilhados com segurança dentro e fora da organização. Use ferramentas projetadas para compartilhamento seguro e inclua procedimentos de recuperação de segredos em seus planos de recuperação de desastre. Se uma chave for comprometida ou vazada, ela deverá ser gerada novamente imediatamente. Para aprimorar ainda mais a segurança, use chaves distintas para cada consumidor em vez de compartilhar chaves, mesmo que elas tenham padrões de acesso semelhantes. Essa prática simplifica o gerenciamento e a revogação de chaves, garantindo que as chaves comprometidas possam ser revogadas sem afetar outros consumidores.

Práticas recomendadas específicas do serviço

Os serviços individuais podem ter práticas recomendadas e diretrizes adicionais para proteger segredos. Estes são alguns exemplos:

Próximas etapas

Minimizar o risco à segurança é uma responsabilidade compartilhada. É preciso ser proativo e tomar medidas para proteger suas cargas de trabalho. Saiba mais sobre a responsabilidade compartilhada na nuvem.

Confira Melhores práticas e padrões de segurança do Azure para ver mais melhores práticas segurança para usar ao projetar, implantar e gerenciar soluções de nuvem usando o Azure.