O que é segurança de contêineres?

A segurança do contêiner envolve a proteção de aplicativos em contêiner e sua infraestrutura durante todo o ciclo de vida, desde o desenvolvimento até a implantação e o tempo de execução. Ele abrange a varredura de vulnerabilidades, o gerenciamento de configurações, o controle de acesso, a segmentação da rede e o monitoramento. A segurança do contêiner visa maximizar os benefícios intrínsecos do isolamento de aplicativos e, ao mesmo tempo, minimizar os riscos associados ao compartilhamento de recursos e à possível superfície de ataque. Ao aderir às práticas recomendadas e usar ferramentas de segurança especializadas, as organizações podem proteger seu ambiente de contêineres contra acesso não autorizado e violações de dados , mantendo a conformidade com as normas do setor.

 

Explicação sobre a segurança do contêiner

Oscontêineres nos dão a capacidade de aproveitar as arquiteturas de microsserviço e operar com maior velocidade e portabilidade. Os contêineres também apresentam benefícios intrínsecos de segurança. Oisolamento da carga de trabalho , a abstração de aplicativos e a natureza imutável dos contêineres são, de fato, fatores importantes para sua adoção.

OKubernetestambém oferece recursos de segurança integrados. Os administradores podem definir políticas de controle de acesso baseado em função (RBAC) para ajudar a proteger contra o acesso não autorizado aos recursos do cluster. Eles podem configurar políticas de segurança de pod e políticas de rede para evitar certos tipos de abuso nos pods e na rede que os conecta. Os administradores podem impor cotas de recursos para reduzir a interrupção causada por um invasor que compromete uma parte de um cluster. Com as cotas de recursos em vigor, por exemplo, um invasor não poderá executar um ataque de negação de serviço privando o restante dos recursos do cluster necessários para a execução.

Mas, como o senhor deve ter adivinhado, nenhuma tecnologia está imune a atividades mal-intencionadas. A segurança do contêiner, as tecnologias e práticas implementadas para proteger não apenas os aplicativos, mas também o ambiente em contêiner, desde hosts, tempos de execução e registros até plataformas de orquestração e sistemas subjacentes, é vital.

Vídeo: Detecte vulnerabilidades em imagens de contêineres e garanta a segurança e a conformidade durante todo o ciclo de vida do desenvolvimento com o escaneamento de contêineres.

Histórico

A segurança do contêiner reflete a natureza mutável da arquitetura de TI. O surgimento da computação nativa da nuvem alterou fundamentalmente a forma como criamos aplicativos. Acompanhar o ritmo da tecnologia exige que ajustemos nossa abordagem para protegê-los.

No passado, a segurança cibernética significava proteger um único perímetro. Os contêineres tornam esse conceito obsoleto, pois acrescentaram várias camadas de abstração que exigem ferramentas especializadas para interpretar, monitorar e proteger nossos ambientes em contêineres.

O ecossistema de contêineres pode ser difícil de entender, dada a infinidade de ferramentas e os problemas exclusivos que elas resolvem em comparação com as plataformas tradicionais. Ao mesmo tempo, a adoção generalizada de tecnologias de contêineres nos dá a oportunidade de mudar para a esquerda, protegendo os contêineres desde os primeiros estágios do pipelines de CI/CD até a implantação e o tempo de execução.

Mas antes de mergulhar nos detalhes da segurança do contêiner, é necessário entender as plataformas usadas para gerenciar contêineres. Vamos nos concentrar em uma das maiores e mais conhecidas plataformas, o Kubernetes.

O que é o Kubernetes?

O Kubernetes é uma das principais plataformas de orquestração que ajuda a otimizar e implementar uma infraestrutura baseada em contêineres. Mais especificamente, é uma plataforma de código aberto usada para gerenciar cargas de trabalho em contêineres , automatizando processos como desenvolvimento, implantação e gerenciamento de aplicativos.

Como uma plataforma de código aberto amplamente adotada, a proteção do Kubernetes é crucial para as organizações que implantam aplicativos em contêineres. As organizações devem estabelecer um ambiente seguro, especialmente ao incorporar código-fonte aberto em aplicativos de terceiros. O Kubernetes, com seu extenso ecossistema e inúmeras integrações para gerenciar contêineres, permite a criação de processos automatizados e sistemáticos que integram a segurança ao núcleo do pipeline de criação e implantação. Ao aproveitar os recursos nativos do Kubernetes, como RBAC, políticas de segurança de pod e políticas de rede, as organizações podem criar e manter uma postura de segurança sólida com uma infraestrutura de orquestração de contêineres resiliente.

Benefícios dos contêineres

Para simplificar, os contêineres facilitam mais do que nunca a criação, a implantação e o dimensionamento de aplicativos nativos da nuvem. Para os desenvolvedores de aplicativos nativos da nuvem, os principais benefícios dos contêineres incluem

  1. Eliminação de atrito: Os desenvolvedores evitam grande parte do atrito associado à transferência do código do aplicativo do teste para a produção, pois o código do aplicativo empacotado como contêineres pode ser executado em qualquer lugar.
  2. Fonte única de verdade para o desenvolvimento de aplicativos: Todas as dependências associadas ao aplicativo são incluídas no contêiner. Isso permite que o aplicativo seja executado de forma fácil e idêntica em máquinas virtuais, servidores bare metal e na nuvem pública.
  3. Tempos de construção mais rápidos: A flexibilidade e a portabilidade dos contêineres permitem que os desenvolvedores obtenham ganhos de produtividade antes inatingíveis.
  4. Confiança para os desenvolvedores: Os desenvolvedores podem implantar seus aplicativos com confiança, sabendo que seu aplicativo ou plataforma será executado da mesma forma em todos os sistemas operacionais.
  5. Colaboração aprimorada: Várias equipes que usam contêineres podem trabalhar em partes individuais de um aplicativo ou serviço sem interromper o código empacotado em outros contêineres.

Como qualquer arquitetura de TI, os aplicativos nativos da nuvem exigem segurança. Os ambientes de contêineres trazem consigo uma série de desafios de segurança cibernética direcionados a suas imagens, contêineres, hosts, tempos de execução, registros e plataformas de orquestração - todos os quais precisam ser abordados.

 

Entendendo a superfície de ataque

Considere a estrutura de várias camadas do Kubernetes. Cada camada, desde o código e os contêineres até os clusters e os serviços de nuvem de terceiros, apresenta um conjunto distinto de desafios de segurança.

A segurança das implantações do Kubernetes exige a proteção da infraestrutura subjacente (nós, balanceadores de carga etc.), dos componentes configuráveis e dos aplicativos executados no cluster, incluindo a manutenção da postura dos nós subjacentes e o controle do acesso à API e ao Kubelet. Também é importante evitar que cargas de trabalho mal-intencionadas sejam executadas no cluster e isolar a comunicação da carga de trabalho por meio de controles de rederigorosos.

Os tempos de execução de contêineres podem estar sujeitos a falhas de codificação que permitem o aumento de privilégios em um contêiner. O servidor de API do Kubernetes pode estar configurado incorretamente, dando aos invasores a oportunidade de acessar recursos que se supõe estarem bloqueados. As vulnerabilidades que permitem ataques de escalonamento de privilégios podem existir em um aplicativo em contêiner ou nos sistemas operacionais em execução nos nós do Kubernetes.

Anatomia da superfície de ataque do contêiner

Figura 1: Anatomia da superfície de ataque do contêiner

Nesse sistema, um problema em uma camada é ampliado quando outra camada tem um problema de segurança.

E os contêineres podem, é claro, abrigar vulnerabilidades. Ao mesmo tempo, os contêineres podem obscurecer a visibilidade. Imagine uma única imagem insegura instanciada várias vezes como contêineres em execução separados. O que era uma única rachadura é agora uma vasta rede de fissuras na fortaleza.

O imperativo de manter a visibilidade das operações e da segurança do sistema à medida que o senhor implanta cada vez mais contêineres torna-se cada vez mais desafiador. E isso é apenas para manter a visibilidade, um dos inúmeros objetivos.

A Figura 1, com detalhes expandidos descritos na Tabela 1, oferece um ponto de partida para entender a superfície de ataque dos aplicativos em contêineres.

É importante observar que a representação é simplificada. Na realidade, os invasores têm várias possibilidades para explorar em suas tentativas de explorar vulnerabilidades em aplicativos em contêineres. A defesa dessa pilha de tecnologia não é necessariamente mais assustadora do que a proteção de outros ambientes e tecnologias. Acontainerização apresenta apenas considerações de segurança exclusivas que as organizações precisam abordar para ter uma infraestrutura segura e resiliente.

Área de superfície de ataque Vetor de ataque Descrição Exemplo
Via rede Tráfego de rede malicioso Explorar vulnerabilidades de rede ou configurações incorretas para obter acesso ao ambiente do contêiner. Verificação de portas abertas e exploração de configurações incorretas para obter acesso aos nós de trabalho.
Configuração do host Sistema host mal configurado Exploração de configurações incorretas no sistema operacional do host para obter acesso ao ambiente do contêiner. Descoberta de permissões de arquivo inseguras para acessar arquivos confidenciais, como arquivos de configuração de contêineres.
Vulnerabilidades do host Vulnerabilidades de host não corrigidas Exploração de vulnerabilidades no sistema operacional do host para obter acesso ao ambiente do contêiner. Identificação e exploração de vulnerabilidades não corrigidas do kernel para obter privilégios de root em nós de trabalho.
Vulnerabilidades de aplicativos de host Vulnerabilidades não corrigidas em aplicativos de host Exploração de vulnerabilidades em aplicativos host para obter acesso ao ambiente do contêiner. Visando versões mais antigas do Docker com vulnerabilidades para obter privilégios de root em nós de trabalho.
Vulnerabilidades e configurações incorretas de orquestração de contêineres Configurações incorretas da orquestração de contêineres Exploração de configurações incorretas no sistema de orquestração de contêineres para obter acesso ao ambiente do contêiner. Aproveitamento de políticas de controle de acesso inseguras em clusters do Kubernetes para acessar pods e serviços.
Imagens de contêineres comprometidas Atacante obtém acesso ao processo de criação de imagens de contêineres Comprometer o processo de criação de imagens de contêineres para injetar códigos maliciosos em imagens de contêineres. Exploração de vulnerabilidades em pipelines de CI/CD para injetar código malicioso durante o processo de criação de imagem do contêiner.
Vulnerabilidades e erros de configuração de contêineres Vulnerabilidades não corrigidas de contêineres Exploração de vulnerabilidades no próprio contêiner para obter acesso ao ambiente do contêiner. Visando vulnerabilidades não corrigidas em aplicativos populares executados em contêineres para obter acesso.
Fuga de contêineres O atacante obtém acesso privilegiado ao contêiner Romper o isolamento do contêiner e obter acesso ao sistema host. Exploração de vulnerabilidades no tempo de execução do contêiner ou abuso de configurações incorretas do sistema host para obter privilégios de root no sistema host.

Tabela 1: Quebrando a superfície de ataque do contêiner

Felizmente, cada camada da superfície de ataque pode ser fortalecida por meio de considerações de projeto e processo, bem como por opções de segurança nativas e de terceiros para reduzir o risco de cargas de trabalho comprometidas. O senhor precisará de uma estratégia multifacetada, mas nosso objetivo nesta seção do guia é fornecer exatamente isso.

Figura 2: A segurança do contêiner abrange todo o ciclo de vida do desenvolvimento de software

Figura 2: A segurança do contêiner abrange todo o ciclo de vida do desenvolvimento de software

 

Como proteger os contêineres

Os usuários de contêineres precisam garantir que tenham uma segurança de pilha completa criada especificamente para atender ao gerenciamento de vulnerabilidades, à conformidade, à proteção de tempo de execução e aos requisitos de segurança de rede de seus aplicativos em contêineres.

Segurança de rede de contêineres

Os aplicativos em contêineres enfrentam os mesmos riscos que os aplicativos bare metal e baseados em VM, como cryptojacking, ransomware e BotNet C2. Asegurança do contêiner de rede restringe proativamente a comunicação indesejada e evita que as ameaças ataquem seus aplicativos por meio de várias estratégias. Os principais componentes da segurança de rede envolvem microsegmentação, controle de acesso, criptografia e políticas para manter um ambiente seguro e resiliente. O monitoramento contínuo, o registro e as auditorias regulares ajudam a identificar e corrigir possíveis falhas de segurança, assim como a aplicação oportuna de patches para manter suas plataformas e infraestrutura atualizadas.

Enquanto as ferramentas de segurança shift-left oferecem proteção em tempo de implantação contra vulnerabilidades conhecidas, os firewalls de próxima geração em contêineres protegem contra vulnerabilidades desconhecidas e não corrigidas. Executando a inspeção profunda de pacotes da camada 7 e verificando todo o tráfego permitido, eles identificam e impedem que o malware entre e se espalhe dentro do cluster e bloqueiam conexões de saída mal-intencionadas usadas para exfiltração de dados e ataques de comando e controle (C2). A microssegmentação baseada em identidade ajuda a restringir a comunicação entre aplicativos nas Camadas 3 e 4.

Segurança do tempo de execução do contêiner

A segurança do tempo de execução nativa da nuvem é o processo de identificar novas vulnerabilidades em contêineres em execução e proteger o aplicativo contra elas. As organizações que usam contêineres devem aproveitar a proteção aprimorada de tempo de execução para estabelecer as linhas de base comportamentais nas quais a detecção de anomalias se baseia. A segurança de tempo de execução pode identificar e bloquear processos, arquivos e comportamentos de rede mal-intencionados que se desviam de uma linha de base.

Usando uma estratégia de defesa em profundidade para evitar ataques de Camada 7, como o OWASP Top 10, as organizações devem implementar proteção de tempo de execução com segurança de aplicativos Web e API , além da segurança de rede de contêineres por meio de firewalls de próxima geração em contêineres.

Segurança do registro de contêineres

Incluir a segurança na fase de construção do contêiner significa mudar para a esquerda em vez de reagir no tempo de execução. A segurança da fase de compilação deve se concentrar na remoção de vulnerabilidades, malware e código inseguro. Como os contêineres são feitos de bibliotecas, binários e código de aplicativo, é fundamental proteger os registros dos contêineres.

A primeira etapa para a segurança do registro de contêiner é estabelecer um registro de contêiner oficial para a sua organização. Sem dúvida, um ou mais registros já existem. É função da equipe de segurança encontrá-los e garantir que estejam devidamente protegidos, o que inclui a definição de padrões e protocolos de segurança. O objetivo geral dos padrões de segurança do contêiner registry deve se concentrar na criação de imagens confiáveis. Para isso, as DevOps e as equipes de segurança precisam se alinhar às políticas que, acima de tudo, impedem que os contêineres sejam implantados a partir de registros não confiáveis.

Intrusões ou vulnerabilidades no registro oferecem uma abertura fácil para comprometer os aplicativos em execução. Monitorar continuamente os registros quanto a mudanças no status de vulnerabilidade continua sendo um requisito essencial de segurança. Outros requisitos incluem o bloqueio do servidor que hospeda o registro e o uso de políticas de acesso seguro.

Segurança de orquestração de contêineres

Asegurança de orquestração de contêineres é o processo de implementação de medidas adequadas de controle de acesso para evitar riscos de contas com privilégios excessivos, ataques pela rede e movimentos laterais indesejados. Ao aproveitar o gerenciamento de acesso à identidade (IAM) e o acesso com privilégios mínimos, em que a atividade do Docker e do Kubernetes é explicitamente incluída na lista de permissões, as equipes de segurança e infraestrutura podem garantir que os usuários executem apenas comandos com base nas funções apropriadas.

Além disso, as organizações precisam proteger as comunicações entre pods, limitar os danos impedindo que os invasores se movimentem lateralmente em seu ambiente e proteger todos os serviços de front-end contra ataques.

Segurança do sistema operacional (SO) do host

Segurança do sistema operacional do host é a prática de proteger seu sistema operacional (SO) contra um ataque cibernético. À medida que a tecnologia de desenvolvimento de aplicativos nativos da nuvem cresce, cresce também a necessidade de segurança do host.

O sistema operacional que hospeda o seu ambiente de contêiner é talvez a camada mais importante quando se trata de segurança. Um ataque que comprometa o ambiente do host pode dar aos invasores acesso a todas as outras áreas da sua pilha. É por isso que os hosts precisam ser verificados em busca de vulnerabilidades, reforçados para atender aos benchmarks do CIS e protegidos contra controles de acesso fracos (comandos do Docker, comandos SSH, comandos sudo etc.).

 

Soluções de segurança de contêineres

A proteção do seu ambiente em contêineres requer uma abordagem em várias camadas para lidar com possíveis vulnerabilidades e ameaças. Nos últimos anos, as soluções de segurança do contêiner com as quais as organizações podem contar para proteger seus aplicativos e sua infraestrutura em contêineres durante os estágios de desenvolvimento, implantação e tempo de execução adquiriram maior sofisticação e recursos. As ferramentas de segurança modernas minimizam efetivamente os riscos de violações e vazamentos de dados, promovendo a conformidade e mantendo ambientes seguros e, ao mesmo tempo, acelerando a adoção do DevSecOps .

Monitoramento de contêineres

A capacidade de monitorar seu registro em busca de vulnerabilidades é essencial para manter a segurança do contêiner. Como os desenvolvedores estão continuamente removendo e substituindo contêineres, as ferramentas de monitoramento que permitem que as equipes de segurança apliquem selos de séries temporais aos contêineres são essenciais ao tentar determinar o que aconteceu em um ambiente em contêiner.

As ferramentas populares para monitoramento de contêineres incluem Prometheus, Grafana, Sumo Logic e Prisma Cloud. O Prisma Cloud oferece detecção de ameaças em tempo de execução e análise de anomalias para aplicativos nativos da nuvem e tradicionais. Ele aproveita o aprendizado de máquina e a análise comportamental para identificar atividades suspeitas em todo o ciclo de vida do contêiner, desde a criação até o tempo de execução.

Ferramentas de escaneamento de contêineres

Os contêineres precisam ser continuamente verificados em busca de vulnerabilidades, tanto antes de serem implantados em um ambiente de produção quanto depois de serem substituídos. É muito fácil para os desenvolvedores incluírem por engano uma biblioteca em um contêiner que tenha vulnerabilidades conhecidas. Também é importante lembrar que novas vulnerabilidades são descobertas quase diariamente. Isso significa que o que pode parecer uma imagem de contêiner perfeitamente segura hoje pode acabar sendo o veículo pelo qual todos os tipos de malware serão distribuídos amanhã. É por isso que manter a confiança da imagem do contêiner é um componente central das ferramentas de varredura de contêineres.

As ferramentas de varredura de contêineres incluem Aqua Security, Anchore, Clair e Prisma Cloud. O Prisma Cloud fornece varredura de vulnerabilidade de camada profunda para imagens de contêineres em registros e durante pipelines de CI/CD. Ele detecta vulnerabilidades conhecidas, configurações incorretas e malware, ajudando o senhor a criar contêineres seguros desde o início.

Ferramentas de segurança de rede de contêineres

Uma vez implantados, os contêineres precisam ser protegidos contra as constantes tentativas de roubar dados proprietários ou recursos de computação. Firewalls de próxima geração em contêineres, segurança de aplicativos da Web e API (WAAS)e ferramentas de microssegmentação inspecionam e protegem todo o tráfego que entra e sai dos contêineres (norte-sul e leste-oeste), concedendo total visibilidade e controle da camada 7 sobre o ambiente Kubernetes. Além disso, os fogowalls em contêineres são dimensionados dinamicamente de acordo com o tamanho e as demandas em rápida mudança da infraestrutura de contêineres, garantindo segurança e largura de banda para as operações comerciais.

As ferramentas de segurança de rede incluem Calico, Flannel, plug-ins CNI (por exemplo, Istio, Cilium), Kubernetes NetworkPolicy e Prisma Cloud. O Prisma Cloud se integra às plataformas de orquestração de contêineres, como o Kubernetes, para fornecer detecção de ameaças à rede. Ele protege o tráfego leste-oeste entre contêineres e impede o movimento lateral não autorizado dentro do seu ambiente.

Mecanismos de políticas

As ferramentas modernas possibilitam que as equipes de segurança em nuvem definam políticas que determinam essencialmente quem e o que tem permissão para acessar um determinado microsserviço. As organizações precisam de uma estrutura para definir essas políticas e garantir que elas sejam mantidas de forma consistente em um ambiente de aplicativos de contêineres altamente distribuídos.

Os mecanismos de política populares incluem Cilium, OPA Gatekeeper, Neutrino, Kubernetes Network Policy API e Prisma Cloud. O Prisma Cloud aplica políticas de segurança em suas implantações de contêineres, incluindo controle de acesso à rede, limitações de recursos e assinatura de imagens. Isso garante uma postura de segurança consistente e a conformidade com os padrões de sua organização.

Escolhendo as soluções certas

Ao selecionar uma solução para proteger seu ambiente em contêineres, considere as necessidades e as áreas de risco de sua organização. O senhor precisa de detecção avançada de ameaças, gerenciamento de vulnerabilidades ou aplicação rigorosa de políticas? Avalie a integração com suas ferramentas e infraestrutura existentes. A integração perfeita com pipelines de desenvolvimento, plataformas de orquestração e sistemas SIEM está mudando o jogo.

Lembre-se de que a segurança eficaz do contêiner vai além das ferramentas individuais. A implementação de uma abordagem em camadas com monitoramento contínuo, varredura proativa, políticas sólidas e segurança de rede confiável aumentará significativamente a resiliência do seu ambiente em contêineres contra ameaças.

 

Perguntas frequentes sobre segurança de contêineres

Um mecanismo de política é um componente de software que permite que as equipes de DevSecOps definam, gerenciem e apliquem políticas que regem o acesso e o uso de recursos, como aplicativos, redes e dados. 

Os mecanismos de políticas avaliam as solicitações recebidas em relação a regras e condições predefinidas, tomando decisões com base nessas políticas. Eles ajudam a garantir a conformidade, aumentar a segurança e manter o controle sobre os recursos. No contexto de ambientes em contêineres, os mecanismos de políticas desempenham uma função crucial na manutenção consistente de políticas de acesso e segurança em aplicativos distribuídos e microsserviços, ajudando a gerenciar e automatizar a aplicação de políticas em infraestruturas complexas e dinâmicas.

Common Vulnerabilities and Exposures (CVE) refere-se a um sistema padronizado para identificar, catalogar e compartilhar informações sobre vulnerabilidades e exposições de segurança cibernética conhecidas publicamente. As entradas CVE consistem em um identificador exclusivo, uma descrição e uma pontuação de gravidade. O sistema, mantido pela MITRE Corporation, tem como objetivo facilitar o rastreamento, o gerenciamento e a comunicação de vulnerabilidades em diferentes bancos de dados, ferramentas e organizações. Ao fornecer uma referência comum para vulnerabilidades, o CVE ajuda os profissionais de segurança, pesquisadores e desenvolvedores a entender melhor os possíveis riscos, priorizar os esforços de correção e aprimorar a postura geral de segurança de softwares e sistemas.

A Matriz MITRE ATT&CK é uma base de conhecimento abrangente e globalmente acessível de táticas e técnicas de adversários cibernéticos. Ele é desenvolvido e mantido pela MITRE, uma organização sem fins lucrativos que opera centros de pesquisa e desenvolvimento patrocinados pelo governo dos EUA. ATT&CK significa Adversarial Tactics, Techniques, and Common Knowledge (Táticas, técnicas e conhecimentos comuns adversários).

A matriz serve como uma estrutura para compreender, categorizar e documentar os vários métodos que os adversários cibernéticos usam para comprometer sistemas, redes e aplicativos. Ele foi projetado para ajudar as equipes de segurança, os pesquisadores e as organizações em vários estágios do ciclo de vida da segurança cibernética, incluindo detecção, prevenção, resposta e mitigação de ameaças.

A MITRE ATT&CK Matrix está organizada em um conjunto de categorias, chamadas táticas, que representam diferentes estágios do ciclo de vida do ataque de um adversário. Cada tática contém várias técnicas que os adversários usam para atingir seus objetivos durante esse estágio. As técnicas são divididas em subtécnicas, que fornecem informações mais detalhadas sobre métodos e ferramentas específicos usados em ataques cibernéticos.

Um contexto de segurança é um conjunto de atributos ou propriedades relacionadas às configurações de segurança de um processo, usuário ou objeto em um sistema de computação. No contexto de ambientes em contêineres, um contexto de segurança define as configurações de segurança e controle de acesso para contêineres e pods, como permissões de usuário e grupo, acesso ao sistema de arquivos, níveis de privilégio e outras configurações relacionadas à segurança.

O Kubernetes permite que o senhor defina contextos de segurança no nível do pod ou no nível do contêiner. Ao configurar os contextos de segurança, o senhor pode controlar as configurações e restrições de segurança dos aplicativos em contêineres, garantindo que eles sejam executados com as permissões adequadas e de forma segura.

Alguns dos principais atributos que podem ser definidos em um contexto de segurança incluem:

  • User ID (UID) e group ID (GID): Essas configurações determinam o usuário e o grupo com os quais um contêiner ou pod será executado, controlando assim o acesso aos recursos e às capacidades do sistema.
  • Controle de escalonamento de privilégios: Essa configuração determina se um processo dentro de um contêiner pode obter privilégios adicionais, como a execução como usuário root. Ao desativar o escalonamento de privilégios, o senhor pode limitar o possível impacto de um contêiner comprometido.
  • Acesso ao sistema de arquivos: Os contextos de segurança permitem que o senhor defina como os contêineres podem acessar o sistema de arquivos, incluindo acesso somente leitura ou montagem de volumes com permissões específicas.
  • Capacidades do Linux: Essas configurações controlam os recursos específicos que um contêiner pode usar, como vínculos de rede, configurações de horário do sistema ou tarefas de administração.
  • Contexto do SLinux: Os contextos de segurança podem ser usados para definir o contexto do SELinux para um contêiner ou pod, impondo políticas de controle de acesso obrigatórias e isolando ainda mais o contêiner do sistema host.

Ao configurar adequadamente os contextos de segurança no Kubernetes, o senhor pode aumentar a segurança de seus aplicativos em contêineres, aplicar o princípio do menor privilégio e proteger seu sistema geral contra possíveis riscos de segurança.

A segurança do código refere-se às práticas e aos processos implementados para garantir que o código do software seja escrito e mantido de forma segura. Isso inclui identificar e atenuar possíveis vulnerabilidades e seguir as práticas recomendadas de codificação segura para evitar riscos à segurança. A segurança do código abrange vários aspectos, como:

  • Teste estático de segurança de aplicativos (SAST): Análise de código-fonte, bytecode ou código binário para identificar possíveis vulnerabilidades de segurança sem executar o código.
  • Teste dinâmico de segurança de aplicativos (DAST): Teste de aplicativos em execução para identificar vulnerabilidades de segurança, simulando ataques e analisando o comportamento do aplicativo.
  • Análise de composição de software: Verificar e monitorar as dependências (bibliotecas, estruturas etc.) usadas em seu código para identificar vulnerabilidades conhecidas e garantir que estejam atualizadas.
  • Práticas seguras de codificação: Seguir diretrizes e práticas recomendadas (por exemplo, OWASP Top Ten Project) para escrever código seguro e evitar a introdução de vulnerabilidades.

As políticas são regras e diretrizes de segurança específicas usadas para impor requisitos de segurança em um ambiente Kubernetes, enquanto a IaC é uma prática mais ampla para gerenciar e provisionar recursos de infraestrutura usando código. Ambos podem ser usados em conjunto para melhorar a segurança, a consistência e a automação em seu ambiente Kubernetes. 

Usando a IaC, o senhor pode definir e gerenciar configurações de segurança como políticas de rede, regras de firewall e controles de acesso como parte das definições de infraestrutura. Por exemplo, o senhor pode incluir políticas de rede do Kubernetes, configurações de entrada e saída e políticas de controle de acesso baseado em função (RBAC) nos manifestos do Kubernetes, que são gerenciados como infraestrutura como código.

Ferramentas como Terraform, CloudFormation e manifestos do Kubernetes permitem que o senhor gerencie os recursos de infraestrutura e as configurações de segurança de forma consistente e automatizada. Ao incorporar medidas de segurança às suas definições de IaC, o senhor pode melhorar a segurança geral do seu ambiente de contêineres e Kubernetes e garantir a adesão às práticas recomendadas e aos requisitos de conformidade.

Política como código (PaC) envolve a codificação e o gerenciamento de políticas de infraestrutura, conformidade e regras de segurança como código em um sistema controlado por versão. A PaC permite que as organizações automatizem a aplicação e a auditoria de suas políticas, garantindo que sua infraestrutura seja criada e mantida de acordo com os padrões exigidos. Ao integrar essas políticas ao processo de política como código ou como parte da criação da infraestrutura, as organizações podem garantir que suas ferramentas estejam alinhadas com os padrões e as práticas recomendadas necessárias.

A disposição do alerta é um método de especificar a sua preferência para quando deseja que um alerta notifique o senhor ou uma anomalia. As configurações incluem conservador, moderado e agressivo. As preferências são baseadas na gravidade dos problemas - baixa, média, alta. 

  • O conservador gera alertas de alta gravidade.
  • Moderado gera alertas de gravidade alta e média.
  • Agressivo gera alertas de gravidade alta, média e baixa.
Por meio da personalização das configurações de anomalias, o senhor pode controlar o critério em que os alertas são gerados para as políticas de anomalias. Os usuários podem modificar as configurações de anomalias para alterar o limite de treinamento do modelo, personalizar a disposição dos alertas e adicionar listas confiáveis de anomalias para suprimir alertas de recursos confiáveis.
Os limites do modelo de treinamento de anomalias referem-se a um método para definir limites diferentes para o treinamento dos modelos de detecção de anomalias para UEBA e anomalias de rede. O senhor pode definir o limite do modelo de treinamento como baixo, médio ou alto. Esses limites são usados para determinar o volume (por exemplo, um mínimo de 100 eventos de usuário) e a duração dos dados usados (por exemplo, 30 dias) para treinar os modelos.
Uma lista confiável de anomalias é um método de suprimir recursos específicos para os quais o senhor não deseja gerar alertas. Por exemplo, se houver endereços IP que o senhor esteja usando para realizar testes de penetração, poderá adicionar esses IPs a uma lista confiável para suprimir seus alertas.
O evento de auditoria refere-se a um conjunto de políticas baseadas em RQL que monitora os eventos de auditoria em seu ambiente quanto a possíveis violações de políticas. O senhor cria políticas de auditoria para sinalizar eventos confidenciais, como atividades de raiz ou alterações de configuração que possam colocar em risco o ambiente de nuvem.
As políticas de anomalias de rede são políticas de anomalias que monitoram continuamente os registros de rede em busca de tráfego de rede mal-intencionado usando o aprendizado de máquina, bem como a correspondência de IPs com o AutoFocus. As políticas de anomalias de rede podem detectar várias ameaças, como ataques de botnet, ransomware e worms.
A autorização envolve a concessão de acesso de usuários autenticados a recursos ou funções do sistema com base em políticas predefinidas. No Kubernetes, esse conceito é conhecido como controle de acesso baseado em função (RBAC). O RBAC concede a grupos de usuários, como desenvolvedores, permissão para interagir com recursos ou funções específicas de acordo com seus requisitos de trabalho. A implementação de políticas de autorização de usuários robustas e consistentes garante que os usuários tenham apenas os privilégios mínimos necessários, reduzindo o risco de acesso não autorizado e escalonamento de privilégios.

O armazenamento seguro de identidade refere-se a soluções e mecanismos projetados para armazenar com segurança informações confidenciais, como senhas, chaves criptográficas, tokens de API e outros segredos, de forma altamente protegida e criptografada. Cofres secretos e módulos de segurança de hardware (HSMs) são dois exemplos comuns de armazenamento seguro de identidade.

Os Secret Vaults são sistemas de armazenamento seguros baseados em software, projetados para gerenciar, armazenar e proteger dados confidenciais. Eles empregam mecanismos de criptografia e controle de acesso para garantir que somente usuários ou aplicativos autorizados possam acessar os segredos armazenados. Exemplos de cofres secretos incluem o HashiCorp Vault, o Azure Key Vault e o AWS Secrets Manager. 

Recursos do Secret Vault

  • Criptografia em repouso e em trânsito
  • Controle de acesso refinado
  • Registro e monitoramento de auditoria
  • Rotação e controle de versão de chaves
  • Integração com os sistemas de gerenciamento de identidade e acesso (IAM) existentes

Os módulos de segurança de hardware (HSMs) são dispositivos físicos dedicados, invioláveis e altamente seguros que protegem e gerenciam chaves criptográficas, realizam operações de criptografia e descriptografia e fornecem um ambiente seguro para a execução de funções criptográficas confidenciais. Os HSMs são projetados para proteger contra ataques físicos e lógicos, garantindo a integridade e a confidencialidade das chaves armazenadas. Exemplos de HSMs incluem o SafeNet Luna HSM, o nCipher nShield e o AWS CloudHSM.

Principais recursos dos HSMs

  • Certificação FIPS 140-2 Nível 3 ou superior (um padrão do governo dos EUA para módulos criptográficos)
  • Geração, armazenamento e gerenciamento seguros de chaves
  • Geração de números aleatórios com base em hardware
  • Detecção e proteção contra violações
  • Suporte a uma ampla gama de algoritmos criptográficos

Tanto os cofres secretos quanto os HSMs têm como objetivo fornecer uma solução segura de armazenamento de identidade, reduzindo o risco de acesso não autorizado, violações de dados e outros incidentes de segurança. A escolha entre eles depende de fatores como requisitos de segurança, orçamento e necessidades de integração.

UEBA refere-se a um conjunto de políticas de anomalias para identificar atividades de usuários desviantes, como um usuário que faz login em um local desconhecido, tentativas sucessivas de login em locais geográficos distantes e um número geralmente grande de recursos de computação sendo criados.