Práticas recomendadas para proteger aplicativos no Kubernetes
Os aplicativos no Kubernetes baseados em nuvem se tornaram o padrão para modernizar cargas de trabalho, mas seu design multicamadas pode criar facilmente vários pontos de entrada para atividades não autorizadas.
Para proteger seus aplicativos dessas ameaças, você precisa de controles de segurança em cada camada de sua infraestrutura Kubernetes.
Essa abordagem de segurança de aplicativos é um exemplo de estratégia de defesa, que ajuda as equipes de TI a aumentar a segurança e reduzir pontos únicos de falha que podem levar a uma violação de dados.
A seguir, abordaremos as práticas recomendadas para mitigar alguns dos riscos de segurança.
Código do aplicativo seguro
Falhas de design simples ou bugs de implementação no código do aplicativo podem ser aproveitados para comprometer um cluster.
Você pode mitigar esses tipos de riscos com algumas práticas recomendadas para escrever código mais seguro e obter melhor visibilidade da integridade do código:
Registrar todos os eventos de autenticação: os logs fornecem visibilidade completa da atividade do aplicativo, e práticas de log inadequadas colocam você em risco de ignorar ameaças potenciais. Registrar todos esses fluxos de trabalho de autenticação críticos permite detectar os sinais iniciais de atividade maliciosa.
Realize auditorias regulares com ferramentas de análise de código: o uso de ferramentas de análise de código para realizar auditorias regulares do código de seu aplicativo pode ajudá-lo a identificar outros tipos de riscos de segurança durante o desenvolvimento, para que você possa corrigi-los antes que sejam explorados por um invasor.
Monitore dependências de terceiros quanto a riscos de segurança: a verificação regular das dependências de código e a atualização sobre os problemas sinalizados pelos bancos de dados de vulnerabilidades podem ajudar a torná-lo mais ciente de seu estado e avaliar melhor os riscos de atualizar seu código para uma versão nova ou corrigida de uma dependência.
Imagens de contêiner e cargas de trabalho seguras
Em ambientes distribuídos, os aplicativos são divididos em cargas de trabalho menores, cada uma sendo executada em contêineres dedicados.
À medida que os aplicativos em contêiner crescem e aproveitam mais recursos, as chances de introduzir novas vulnerabilidades em suas cargas de trabalho aumentam.
A seguir as práticas recomendadas para reduzir esse risco:
Garanta que as imagens de contêiner venham de uma fonte confiável: você deve validar se as imagens são assinadas por usuários autorizados e se originam de uma fonte confiável que as mantém ativamente, como uma empresa conhecida ou um grupo de código aberto ou também você pode extrair imagens e monitorar os registros do seu provedor de nuvem.
Limite o uso de contêineres privilegiados: os contêineres privilegiados têm acesso direto aos recursos do host e outros dispositivos executados no host. Um invasor que tenha acesso a um desses contêineres pode, portanto, executar uma variedade de ações para modificar os recursos do host. Por isso é importante restringir seu uso e estar sempre ciente de seu status em seu ambiente.
Melhore o isolamento entre cargas de trabalho de contêiner e recursos de host: o isolamento de contêiner cria limites entre cargas de trabalho de contêiner e hosts, garantindo que cargas de trabalho — e invasores — tenham acesso limitado aos recursos do sistema.
Infraestrutura segura do Kubernetes na nuvem
A camada final da infraestrutura é o provedor de nuvem que hospeda seu aplicativo.
A maioria dos provedores oferece serviços gerenciados como Google Kubernetes Engine (GKE), Amazon Elastic Kubernetes Service (EKS) e Azure Kubernetes Service (AKS), para simplificar o processo de implantação e dimensionamento de seu ambiente de contêiner, mas eles podem ser vulneráveis.
As práticas recomendadas a seguir podem fornecer mais visibilidade da atividade em sua plataforma e garantir que todos os recursos de nuvem que dão suporte à infraestrutura do Kubernetes sejam configurados adequadamente:
Ativar registro de auditoria: os logs de auditoria na nuvem capturam detalhes sobre todas as atividades em uma plataforma, incluindo logins, o status de um recurso e muito mais. Habilitar e entender como interpretar esses logs pode ajudá-lo a descobrir recursos de aplicativos e contas de nuvem que não estão configurados de acordo com suas políticas de segurança, que são as vulnerabilidades mais comuns em um ambiente de nuvem.
Use o princípio de privilégio mínimo para contas na nuvem: os aplicativos Kubernetes baseados em nuvem exigem que diferentes usuários e serviços tenham níveis variados de acesso, o que pode introduzir configurações incorretas de permissão que podem ser exploradas por invasores. A criação de contas de usuário e serviço com privilégios mínimos — e a concessão de permissões adicionais somente quando necessário — pode ajudar a proteger os recursos do Kubernetes contra acesso não autorizado.
Restringir o acesso à API de metadados do provedor: as plataformas de nuvem geralmente fornecem um servidor de API de metadados para armazenar metadados sobre recursos do ambiente. Acessar a API de metadados de um provedor é uma maneira de os invasores explorarem a infraestrutura do Kubernetes para encontrar outros recursos que possam explorar.
Uma abordagem de várias camadas para proteger aplicativos no Kubernetes
Neste texto, analisamos algumas práticas recomendadas para proteger todos os níveis do seu aplicativo no Kubernetes.
Clique aqui e fale com nossos especialistas sobre como o Datadog Cloud SIEM , além das integrações do Datadog com serviços de segurança populares, permitirá identificar facilmente configurações incorretas de serviço arriscadas e mitigar ameaças legítimas aos seus recursos do Kubernetes.