O que é gerenciamento de segredos?

Pessoa segurando um smartphone ao lado de uma tela grande

Definição de gerenciamento de segredos

O gerenciamento de segredos é a proteção de credenciais (incluindo certificados, senhas e tokens) para usuários não humanos, como aplicativos, servidores e cargas de trabalho.

As organizações usam cada vez mais identidades não humanas para automatizar os principais processos de negócios e os fluxos de trabalho.Essas identidades podem incluir contas de serviço, pipelines de integração contínua e entrega contínua (CI/CD), contêineres, microsserviços e ferramentas de orquestração. Elas também podem incluir automação robótica de processos (RPA), bots de software que imitam ações humanas e, mais recentemente, agentes de IA.

Semelhante aos usuários humanos, as entidades não humanas precisam de credenciais, ou "segredos", para se autenticar em sistemas e serviços e acessar recursos organizacionais, muitas vezes com privilégios elevados. Por exemplo, um processo de backup automatizado pode ler arquivos confidenciais e modificar as configurações do sistema.

Para os hackers, essas contas não humanas privilegiadas são alvos de alto valor. Elas permitem que os agentes da ameaça abusem dos direitos de acesso para roubar dados e danificar sistemas críticos, ao mesmo tempo que evita a detecção.De acordo com o IBM X-Force Threat Intelligence Index, o sequestro de contas válidas é o segundo vetor de ataque cibernético mais comum, representando 32% de todos os incidentes aos quais a X-Force respondeu no ano passado.

Os sistemas de gerenciamento de segredos ajudam a combater essas ameaças cibernéticas, permitindo que as organizações criem, controlem e protejam os segredos que entidades não humanas usam para acessar recursos de TI.Com ferramentas de gerenciamento de segredos, as equipes de TI podem proteger credenciais não humanas ao longo de todo o seu ciclo de vida, otimizando os fluxos de trabalho automatizados e prevenindo a violação de dados, adulteração, roubo e outros acessos não autorizados.

O que é um segredo?

Um segredo é uma credencial digital contida em uma aplicação ou serviço que permite que usuários não humanos se comuniquem e executem ações em um serviço, banco de dados, aplicação ou outro recurso de TI. Os segredos ajudam as organizações a fortalecer sua postura de segurança ao garantir que somente usuários autorizados tenham acesso a dados e sistemas confidenciais.

Exemplos de segredos incluem, entre outros:

  • Credenciais de contas de serviço: as contas de serviço permitem que aplicações e fluxos de trabalho automatizados interajam com os sistemas operacionais. As credenciais de contas de serviço podem incluir senhas, tokens de segurança, tíquetes Kerberos e outros segredos.

  • Chaves de API: as chaves de API permitem que usuários, aplicações e serviços se verifiquem em interfaces de programação de aplicativos (APIs).

  • Chaves de criptografia: as chaves de criptografia permitem que os usuários criptografem e descriptografem dados.

  • Tokens de autenticação e autorização: tokens, como os usados no protocolo OAuth, são informações que podem verificar a identidade de um usuário e determinar os recursos específicos que ele pode acessar.

  • Chaves SSH (Secure Shell): as chaves SSH são usadas pelos servidores SSH para identificar um usuário ou dispositivo por meio de criptografia de chave pública.
  • Certificados PKI e chaves privadas (SSL/TLS/mTLS): os certificados emitidos por uma autoridade certificadora e suas respectivas chaves privadas autenticam os endpoints e estabelecem certificados e conexões SSL/TLS criptografadas, incluindo autenticação mútua TLS (mTLS).
  • Segredos arbitrárias: dados confidenciais, incluindo qualquer tipo de dados estruturados ou não estruturados, que podem ser usados para acessar uma aplicação ou recurso.
  • Cadeias de conexão: uma sequência de texto que contém as instruções necessárias para que um programa de computador se conecte a uma fonte de dados, incluindo bancos de dados, arquivos ou planilhas.
  • Outras chaves criptográficas: podem incluir chaves de código de autenticação de mensagem baseada em hash (HMAC), chaves de assinatura de código e outras chaves privadas usadas para assinatura ou verificação.

Por que o gerenciamento de segredos é importante

O gerenciamento de segredos é uma solução de segurança crítica que ajuda as organizações a armazenar, controlar e rotacionar com segurança credenciais confidenciais e outros segredos, como senhas, chaves de API e tokens.

É um dos quatro recursos principais de gerenciamento de acesso privilegiado (PAM), um subconjunto do gerenciamento de acesso e identidade (IAM), que se concentra na proteção de contas e usuários privilegiados.

Os outros três recursos do PAM incluem:

  • Gerenciamento de contas e sessões privilegiadas (PASM), que lida com o gerenciamento do ciclo de vida de contas privilegiadas, gerenciamento de senhas e monitoramento de sessões.

  • Gerenciamento de elevação e delegação de privilégios (PEDM), que envolve a avaliação, aprovação e negação automática de solicitações de acesso privilegiado.

  • Gerenciamento de direitos de infraestrutura em nuvem (CIEM), que supervisiona permissões e direitos em ambientes de computação em nuvem.

O gerenciamento de segredos é importante para a metodologia de DevOps, que enfatiza o desenvolvimento e a entrega automatizados e contínuos de software.

As equipes de DevOps frequentemente usam várias ferramentas de gerenciamento de configuração ou orquestração para gerenciar ecossistemas digitais, fluxos de trabalho e endpoints inteiros. As ferramentas geralmente usam automação e scripts que exigem acesso a segredos para serem iniciadas. Sem um serviço de gerenciamento de segredos de nível empresarial, o uso casual de segredos pode aumentar a vulnerabilidade do sistema.

Muitas organizações integram funções de gerenciamento de segredos ao pipeline de CI/CD. Isso ajuda a garantir que todas as partes móveis (desenvolvedores, ferramentas e processos automatizados) tenham acesso seguro aos sistemas confidenciais de que precisam, quando precisarem.

O gerenciamento de segredos é considerado um componente central do DevSecOps, uma evolução da metodologia DevOps que integra e automatiza continuamente a segurança durante todo o ciclo de vida do DevOps.

Como funciona o gerenciamento de segredos

O processo de gerenciamento de segredos normalmente depende de ferramentas de gerenciamento de segredos.Essas ferramentas, que podem ser implementadas no local ou como serviços em nuvem, podem ajudar a centralizar, simplificar e agilizar a criação, o uso, a rotação e a proteção de segredos.

Estão disponíveis soluções de gerenciamento de segredos comerciais e de código aberto. As opções de código aberto incluem a Infisical, enquanto as opções comerciais incluem a CyberArk Conjur (que também possui uma edição de código aberto) e a Hashicorp Vault (da HashiCorp, uma empresa IBM ).

Alguns recursos comuns das ferramentas de gerenciamento de segredos incluem:

  • Gerenciamento centralizado e padronizado de segredos.
  • Criação dinâmica de segredos e rotação automatizada de segredos
  • Controles de acesso
  • Monitoramento e auditoria de atividades

Gerenciamento centralizado e padronizado de segredos

Com um serviço de gerenciamento de segredos de nível empresarial, as organizações podem gerenciar vários tipos de segredos em um único painel de monitoramento.

Em vez de deixar que usuários individuais gerenciem segredos em pequenos silos, as soluções de gerenciamento de segredos podem armazenar segredos em um local central e seguro chamado de “cofre de segredos”.

Quando um usuário autorizado precisa acessar um sistema confidencial, ele pode obter o segredo correspondente no cofre. A ferramenta de gerenciamento de segredos pode verificar e autorizar automaticamente a solicitação e liberar o segredo necessário para a autenticação do fluxo de trabalho.

A padronização pode ajudar a evitar a propagação de segredos. A propagação de segredos ocorre quando os segredos são armazenados em vários lugares em toda a organização, geralmente codificados em aplicações ou como texto simples em um documento compartilhado. A propagação de segredos torna difícil proteger os segredos de agentes maliciosos e rastrear como os segredos são usados.  

Criação dinâmica de segredos e rotação automatizada de segredos

Os segredos criados em um secrets manager podem ser estáticos ou dinâmicos. Um segredo estático é um segredo que permanece válido por muito tempo, geralmente até ser alterado manualmente ou atingir uma data de validade predeterminada.

Ao contrário, um segredo dinâmico é criado pelo secrets manager sob demanda, no momento em que é necessário. Segredos dinâmicos expiram muito rápido. Eles podem até ser de uso único.

Um caso de uso para um segredo dinâmico seria proteger um recurso confidencial, como um banco de dados ou um ambiente em nuvem como AWS ou Microsoft Azure, gerando dinamicamente chaves de API cada vez que esse recurso é lido ou acessado. Isso ajuda a garantir que agentes maliciosos não possam roubar e reutilizar chaves de API.

Muitos secrets managers podem automatizar a rotação de segredos, ou seja, o ato de mudar os segredos regularmente. A rotação secreta pode ser automatizada dentro do cronograma ou sob demanda, sem a necessidade de reimplementar ou interromper aplicações. O tempo de vida (TTL) ou a duração da locação pode ser definido para um segredo em sua criação para reduzir o tempo de existência do segredo.

Controles de acesso

Os segredos podem ser concedidos apenas a entidades ou grupos específicos para organizar e restringir o acesso. O acesso a segredos geralmente é concedido usando o princípio de privilégios mínimos, ou seja, cada processo recebe apenas o conjunto mais restritivo de privilégios necessários para executar uma tarefa. Os usuários podem acessar apenas os segredos necessários para executar suas tarefas autorizadas.

Arquiteturas zero trust, que "nunca confiam, sempre verificam", geralmente regem o acesso a sistemas de gerenciamento de segredos. Isso ajuda a garantir que todas as solicitações de segredos sejam autenticadas e autorizadas, mesmo que tenham origem dentro da rede.

Monitoramento e auditoria de atividades

Muitos gerentes de segredo podem rastrear como os usuários e aplicações interagem e usam segredos para verificar se os segredos estão sendo tratados adequadamente durante seus ciclos de vida. Isso permite que a organização realize um monitoramento quase em tempo real dos eventos de acesso a segredos, incluindo autenticações e autorizações para o gerentes de segredo.

Os gerentes de segredo podem negar rapidamente tentativas não autorizadas de visualizar ou usar segredos e revogar o acesso quando necessário. Isso permite uma remediação mais rápida, antes que hackers, ameaças internas e outros agentes mal-intencionados possam causar danos.

Uma poderosa ferramenta de automação de segredos manterá registros de auditoria detalhados que rastreiam a autenticação do usuário e os eventos de acesso a segredos.

O monitoramento de segredos geralmente é muito mais fácil de alcançar quando uma organização começa a usar ferramentas dinâmicas de automação de segredos. Essas trilhas de auditoria detalhadas ajudam a validar o uso aprovado de segredos ou a detectar e rastrear possíveis ameaças.

Práticas comuns de gerenciamento de segredos

Além de usar soluções de gerenciamento de segredos, muitas organizações seguem as principais práticas comuns em seus processos de gerenciamento de segredos. Essas práticas incluem:

  • Os segredos são gerados, armazenados e acessados em seu ambiente apropriado (por exemplo, ambientes separados de desenvolvimento, teste e produção). Algumas organizações usam diferentes ferramentas de gerenciamento de segredos para cada ambiente. Outras usam uma solução central e isolam os segredos de cada ambiente em um segmento dedicado. Os segredos nunca saem de seus ambientes e são protegidos por meio de medidas rígidas de controle de acesso.

  • O acesso dos usuários aos segredos é concedido no nível mínimo necessário para que qualquer usuário cumpra suas responsabilidades. O excesso de direitos, seja intencional ou não, pode levar a violações de dados.

  • Os segredos são rotacionados regularmente de acordo com os requisitos do sistema.

  • Os usuários não armazenam segredos no código fonte, nos arquivos de configuração ou na documentação.

  • As políticas de segurança podem ser aprimoradas ao exigir a criptografia de todos os dados confidenciais. As chaves de criptografia podem ser protegidas com um serviço de gerenciamento de chaves (KMS).

  • A organização monitora continuamente os segredos, com registros de auditoria rastreando cada solicitação: quem pediu o segredo, para qual sistema, se a solicitação foi bem-sucedida, quando foi emitida ou recuperada, quando expirou e quando e se o segredo foi atualizado. As anomalias devem, então, ser investigadas imediatamente.

Desafios do gerenciamento de segredos

À medida que os ecossistemas de TI se tornam mais complexos, o gerenciamento de segredos se torna cada vez mais difícil de controlar de forma eficaz. Os desafios comuns de gerenciamento de segredos podem incluir:

Gerenciamento descentralizado de segredos

Ecossistemas descentralizados onde administradores, desenvolvedores e usuários gerenciam seus segredos separadamente podem apresentar riscos, pois falhas de segurança e o uso de segredos podem não ser monitorados ou auditados adequadamente.

As soluções centralizadas de gerenciamento de segredos podem oferecer às organizações mais visibilidade e controle sobre os segredos.

Credenciais codificadas

Quando senhas ou outros segredos são incorporados como texto simples no código fonte ou scripts, os invasores podem descobri-los facilmente e usá-los para acessar informações confidenciais.

Segredos embutidos no código podem aparecer em diversos lugares, incluindo cadeias de ferramentas de CI/CD, repositórios de código, dispositivos de internet das coisas (IOT), plataformas de orquestração de contêiner como Kubernetes, servidores de aplicação, scanners de vulnerabilidade e plataformas de automação robótica de processos.

Rotação pouco frequente

A rotação regular de segredos pode ajudar a evitar roubos e abusos, mas a rotação pode ser inconsistente ou ineficaz sem um sistema de gerenciamento de segredos. Se um segredo permanecer inalterado por muito tempo, um hacker poderá liberá-lo por meio de suposições de tentativa e erro ou por meio de um ataque de força bruta.

Quanto mais tempo uma senha é usada, mais usuários têm acesso e maior é a chance de vazamentos.

Propagação de segredos

O crescimento dos sistemas de TI pode levar a uma propagação de segredos, com segredos espalhados por muitas partes isoladas do sistema. A propagação de segredos pode ser especialmente preocupante em ecossistemas multinuvem híbridos, onde as organizações misturam ambientes de nuvem pública e nuvem privada fornecidos por múltiplos provedores de nuvem.

As organizações podem ter milhares, até milhões, de segredos em todas as suas aplicações, contêineres, microsserviços e outros recursos de TI nativos da nuvem. Essa propagação cria uma enorme carga de segurança e expande a superfície de ataque potencial.

Em todos os serviços, a visibilidade pode ser limitada, e o gerenciamento de segredos pode rapidamente se tornar difícil se rastreado manualmente ou por sistemas díspares. A falta de um serviço centralizado de gerenciamento de segredos pode tornar a aplicação da higiene adequada de segredos mais difícil ou impossível.

Compartilhamento manual de segredos

Quando uma organização não tem um sistema de gerenciamento de segredos, os segredos podem ser compartilhados manualmente, como por meio de e-mails ou mensagens de texto, onde os agentes de ameças podem interceptá-los.

Autores

Jim Holdsworth

Staff Writer

IBM Think

Matthew Kosinski

Staff Editor

IBM Think

Annie Badman

Staff Writer

IBM Think