BLOG | NGINX

Arquitetando segurança Zero Trust para aplicativos Kubernetes com NGINX

NGINX-Parte-de-F5-horiz-preto-tipo-RGB
Ilya Krutov Miniatura
Ilia Krutov
Publicado em 26 de setembro de 2022

A sofisticação e o número de ataques de segurança cibernética estão crescendo exponencialmente, criando um risco significativo de exposição para seus aplicativos implantados em ambientes Kubernetes locais, híbridos e multinuvem. Os modelos de segurança tradicionais são baseados em perímetro, assumindo que os usuários são confiáveis (e a comunicação entre eles é segura) se estiverem localizados dentro dos limites seguros do ambiente. Nos ambientes distribuídos de hoje, o conceito de zona segura dentro do perímetro não existe mais – comunicações originadas de “dentro” do ambiente podem ser tão perigosas quanto ameaças externas.

Neste blog, exploramos os benefícios de adotar um modelo Zero Trust para proteger sua infraestrutura Kubernetes e como o NGINX pode ajudar a melhorar sua postura de segurança.

O que é Zero Trust ou Confiança zero?

Zero Trust é um modelo de segurança baseado em identidade e não em localização. Ele pressupõe que qualquer solicitação de acesso a aplicativos, dados e dispositivos pode ser um ataque, independentemente de o solicitante estar localizado no local, remotamente ou na nuvem.

Para implementar os três princípios básicos do Zero Trust – nunca confiar, sempre verificar, monitorar continuamente – cada usuário, serviço, aplicativo e dispositivo é continuamente obrigado a apresentar prova de autenticação e autorização. Privilégios com limite de tempo são concedidos com base em políticas de acesso dinâmicas e com base no menor privilégio.

Todas as comunicações são criptografadas e roteadas por meio de um ponto de decisão/aplicação de política (PDP/PEP) que autentica todas as partes e concede a elas privilégios com base em políticas de acesso dinâmicas. Além disso, recursos de auditoria, monitoramento, relatórios e automação estão disponíveis para analisar, avaliar e mitigar riscos de segurança.

diagrama de confiança zero

Como o Zero Trust melhora sua postura de segurança

O Zero Trust melhora sua postura de segurança de várias maneiras:

  • Bloqueia automaticamente atividades não autorizadas
  • Aplica controles de acesso para reduzir a superfície de ataque exposta
  • Detecta anomalias comportamentais e indicadores de comprometimento
  • Define políticas de privilégios mínimos em tempo real que limitam o tempo de acesso
  • Autentica e valida constantemente a identidade para bloquear ataques em andamento

Zero Trust é especialmente crítico para aplicativos modernos e nativos da nuvem executados em um ambiente Kubernetes. Aplicativos e serviços distribuídos, portáteis e frouxamente acoplados, são conteinerizados e executados em ambientes híbridos de múltiplas nuvens, onde a segurança baseada em localização não é uma opção. A segurança depende necessariamente da validação contínua de identidades e privilégios, criptografia de ponta a ponta e monitoramento.

Como você pode alcançar a segurança Zero Trust

Para cumprir os princípios do Zero Trust, seu ambiente Kubernetes deve fornecer recursos de segurança essenciais, como autenticação, autorização, controle de acesso, políticas, criptografia, monitoramento e auditoria para usuários, aplicativos e serviços.

Uma maneira possível de conseguir isso é incorporar segurança ao próprio aplicativo. No entanto, isso significa que seus desenvolvedores devem implementar vários procedimentos de segurança – para estabelecer e verificar confiança, gerenciar identidades e certificados de usuários, criptografar e descriptografar todas as comunicações e assim por diante. Eles também devem entender e integrar tecnologias de terceiros, como TLS e logon único (SSO). Tudo isso não só adiciona complexidade à sua já complexa implantação do Kubernetes. Isso distrai os desenvolvedores do que eles precisam (e querem!) se concentrar: otimizar a funcionalidade comercial do aplicativo.

Não entre em pânico – há uma maneira melhor: descarregue a segurança e outros requisitos não funcionais para sua infraestrutura Kubernetes! Ferramentas de conectividade para clusters Kubernetes, como controladores Ingress e malhas de serviço, podem fornecer PDP e PEP para todas as comunicações entre seus aplicativos e serviços, sejam originadas por usuários ou outros aplicativos ou serviços. Isso significa que você pode se concentrar na experiência e na funcionalidade do seu negócio principal, ao mesmo tempo em que entrega aplicativos de forma mais rápida e fácil.

Como o F5 NGINX pode ajudar

Conforme ilustra o diagrama a seguir, a solução NGINX para conectividade segura do Kubernetes inclui todos os componentes e ferramentas independentes de infraestrutura necessários para proteger com sucesso seus usuários, aplicativos distribuídos, microsserviços e APIs em escala e de ponta a ponta em qualquer ambiente — local, híbrido e multinuvem. Alimentada pelo plano de dados mais popular do mundo, a solução combina:

  • NGINX Ingress Controller como controlador de entrada para Kubernetes e um PDP/PEP que se integra com provedores de identidade e SSO de terceiros. Com base no NGINX Plus , o NGINX Ingress Controller lida com conectividade avançada, monitoramento e visibilidade, autenticação e SSO, e atua como um gateway de API.
  • O NGINX Service Mesh, como um service mesh leve, pronto para uso e fácil de usar para desenvolvedores, protege a conectividade de serviços dentro do cluster do Kubernetes. O sidecar de nível empresarial que atua como PDP/PEP colocalizado com cada serviço Kubernetes é baseado no NGINX Plus.
  • NGINX App Protect para proteção holística de aplicativos e APIs modernos, desenvolvido com base nas tecnologias de segurança líderes de mercado da F5. Ele usa uma abordagem modular para flexibilidade em cenários de implantação e utilização ideal de recursos:
    • NGINX App Protect WAF – Um WAF forte e leve que protege contra o OWASP Top 10 e fornece conformidade com PCI DDS
    • NGINX App Protect DoS – Detecção e mitigação de DoS comportamental com proteção consistente e adaptável em nuvens e arquiteturas

diagrama de confiança zero 2

A solução NGINX permite que você:

  • Integre controles de segurança fortes em ambientes distribuídos sem diminuir a velocidade de lançamento ou prejudicar o desempenho
  • Bloqueie automaticamente ataques em andamento por meio de autenticação constante, validação de identidade e detecção de anomalias comportamentais
  • Implemente políticas de privilégios mínimos em tempo real, controle de acesso detalhado, criptografia de ponta a ponta e governança em várias equipes
  • Entregue aplicativos com segurança, do código ao cliente, com um WAF integrado e robusto e defesa DoS em nível de aplicativo
  • Avalie e melhore continuamente a postura de segurança do seu ambiente Kubernetes com métricas granulares em tempo real e históricas
  • Simplifique a implantação e o gerenciamento de comunicações seguras de usuário para serviço e de serviço para serviço por meio da consolidação de tecnologia

Implemente a segurança abrangente Zero Trust com NGINX

À medida que as organizações crescem, torna-se essencial descarregar requisitos que não são específicos para a funcionalidade de um aplicativo – como recursos de segurança Zero Trust – da camada de aplicativo. Explicamos acima como isso libera os desenvolvedores do fardo de criar, manter e replicar a lógica de segurança em seus aplicativos; em vez disso, eles podem facilmente aproveitar as tecnologias de segurança no nível da plataforma. O NGINX oferece aplicação centralizada de políticas de segurança para o Kubernetes na borda do cluster com o NGINX Ingress Controller e dentro do cluster com o NGINX Service Mesh. Você pode adicionar proteção avançada de aplicativos contra ataques cibernéticos sofisticados com o NGINX App Protect WAF e DoS implantado na borda ou dentro do cluster, dependendo dos requisitos de segurança do seu aplicativo.

Vamos explorar em profundidade como a solução NGINX inclui os recursos necessários para implementar segurança Zero Trust abrangente para suas implantações do Kubernetes.

Autenticação e autorização

Um dos princípios fundamentais da segurança Zero Trust é que cada dispositivo, usuário, serviço e solicitação seja autenticado e autorizado. Autenticação é o processo de verificação de identidade – em outras palavras, garantir que cada parte participante de uma comunicação é quem afirma ser. Autorização é o processo de verificação de que uma parte tem direito ao acesso que está solicitando a um recurso ou função.

Para abordar esse princípio, a solução NGINX fornece várias opções para implementar autenticação e autorização, incluindo autenticação HTTP Basic , JSON Web Tokens (JWTs) e OpenID Connect por meio de integrações com provedores de identidade, como Okta e Azure Active Directory (AD). A solução NGINX também emite identidades seguras para serviços (assim como os usuários de aplicativos recebem identificação na forma de certificados), o que permite que eles sejam autenticados e autorizados a executar ações no cluster do Kubernetes. Além de manipular identidades de carga de trabalho, a solução NGINX automatiza o gerenciamento de certificados com integrações integradas com a Infraestrutura de Chave Pública (PKI) e autoridades de certificação.

Como o NGINX Ingress Controller já está examinando todas as solicitações que entram no cluster e as encaminhando para os serviços apropriados, ele é o local mais eficiente para autenticação e autorização centralizadas de usuários, bem como para autenticação de serviços em alguns cenários.

Para mais detalhes, leia Implementando a autenticação OpenID Connect para Kubernetes com Okta e NGINX Ingress Controller em nosso blog.

Criptografia e integridade de dados

Outro princípio do Zero Trust é que toda comunicação deve ser protegida – sua confidencialidade e integridade mantidas – não importa onde os participantes estejam localizados. Os dados não devem ser lidos por terceiros não autorizados nem modificados durante a transmissão. Para satisfazer esse princípio, a solução NGINX usa criptografia SSL/TLS para comunicações de usuário para serviço e autenticação e criptografia TLS mútuas (mTLS) para comunicações de serviço para serviço .

Se a arquitetura do seu aplicativo não envolver comunicação de serviço para serviço dentro do cluster do Kubernetes, o NGINX Ingress Controller pode ser suficiente para atender às suas necessidades de integridade de dados. Existem duas opções básicas:

 

  • Com o TLS Passthrough , o NGINX Ingress Controller roteia conexões criptografadas SSL/TLS diretamente para o serviço, sem descriptografá-las ou exigir acesso aos certificados ou chaves SSL/TLS.
  • Com a terminação SSL/TLS , o NGINX Ingress Controller atua como um proxy reverso, encerrando a conexão TLS com o solicitante e, em seguida, usando mTLS ou SSL/TLS do lado do serviço para criptografar uma nova conexão com seus serviços do Kubernetes (servidores backend e upstream).

Se sua arquitetura envolver comunicação de serviço a serviço dentro do cluster, para integridade de dados você precisará do NGINX Ingress Controller e do NGINX Service Mesh. O NGINX Service Mesh garante que apenas serviços específicos tenham permissão para se comunicar entre si e usa mTLS para autenticá-los e criptografar as comunicações entre eles. Você pode implementar o mTLS de forma “zero touch” com o NGINX Service Mesh, o que significa que os desenvolvedores não precisam adaptar seus aplicativos com certificados ou mesmo saber que a autenticação mútua está ocorrendo.

Para saber mais sobre como proteger a comunicação em um cluster Kubernetes, leia A arquitetura mTLS no NGINX Service Mesh em nosso blog.

Controle de acesso e política de acesso

O controle de acesso é outro elemento crítico no modelo Zero Trust. O Kubernetes usa o controle de acesso baseado em função (RBAC) para regular quais recursos e operações estão disponíveis para diferentes usuários. Ele determina como usuários, ou grupos de usuários, podem interagir com qualquer objeto ou namespace do Kubernetes no cluster.

A solução de conectividade NGINX Kubernetes é habilitada para RBAC para fácil alinhamento com as políticas de segurança da sua organização. Com o RBAC em vigor, os usuários obtêm acesso restrito às funcionalidades necessárias para realizar seu trabalho sem precisar registrar um tíquete de TI e esperar que ele seja atendido. Sem o RBAC, os usuários podem obter permissões que não precisam ou às quais não têm direito, o que pode levar a vulnerabilidades se as permissões forem mal utilizadas.

Ao configurar o RBAC com o NGINX Ingress Controller, você pode controlar o acesso de várias pessoas e equipes alinhando permissões com as várias funções no ambiente de desenvolvimento e entrega de aplicativos da sua organização. Sua ferramenta de gerenciamento de acesso detalhada permite autoatendimento e governança em diversas equipes.

Para saber como aproveitar o RBAC com o NGINX Ingress Controller, assista ao nosso webinar sobre DevNetwork, implantações avançadas do Kubernetes com o NGINX Ingress Controller . A partir das 13h50, nossos especialistas explicam como aproveitar o RBAC e a alocação de recursos para segurança, autoatendimento e multilocação.

observabilidade

Auditoria, monitoramento, registro, rastreamento e relatórios são elementos-chave em um ambiente Zero Trust. Quanto mais informações você puder coletar sobre o estado da infraestrutura do seu aplicativo Kubernetes e quanto mais efetivamente você puder correlacioná-las, analisá-las e avaliá-las, mais você poderá fortalecer sua postura de segurança.

Você provavelmente já usa ferramentas de monitoramento em sua implantação do Kubernetes e não precisa de mais uma. Para lhe dar uma visão completa do que está acontecendo dentro dos seus clusters, instrumentamos a API NGINX Plus para fácil exportação de métricas para qualquer ferramenta de terceiros que aceite JSON e fornecemos integrações pré-criadas com ferramentas populares como OpenTelemetry , Grafana e Prometheus . Você obtém insights direcionados sobre a conectividade do aplicativo com rastros profundos para que possa entender como as solicitações são processadas de ponta a ponta : O NGINX Ingress Controller fornece insights sobre a conectividade entre seu cluster e clientes externos, enquanto o NGINX Service Mesh abrange a conectividade entre os aplicativos e serviços baseados em microsserviços e em contêineres dentro do cluster.

Proteção WAF e DoS

Com o NGINX App Protect, você pode fortalecer ainda mais a segurança de seus aplicativos distribuídos, protegendo-os de ameaças como o OWASP Top 10 e ataques de negação de serviço (DoS) de camada 7. O NGINX App Protect, um componente integral da solução de conectividade segura de ponta a ponta NGINX, fornece segurança ágil e centrada em aplicativos contra as ameaças mais avançadas, muito além das assinaturas básicas. Ele aproveita a experiência de segurança confiável e líder da F5 e não compromete a velocidade de lançamento nem o desempenho. Ele pode facilmente encaminhar telemetria de segurança para soluções de visibilidade e análise de terceiros e reduz falsos positivos com assinaturas de alta confiança e análise de comportamento automatizada.

O design modular do NGINX App Protect significa que você pode implantar uma ou ambas as proteções WAF e DoS na mesma instância ou em instâncias diferentes, dependendo de suas necessidades. Por exemplo, você pode decidir implantá-los com o NGINX Ingress Controller na borda do seu cluster, o que é ideal para fornecer proteção detalhada e consistente em todo o cluster. Se, em vez disso, você precisar de políticas específicas de aplicativo para vários aplicativos em um cluster, poderá implantar proteção WAF e/ou DoS no nível de serviço ou pod.

Para obter mais informações sobre como implantar proteção WAF e DoS, leia Mudando ferramentas de segurança para aplicativos mais seguros em nosso blog.

Comece a usar a solução de segurança NGINX Zero Trust para Kubernetes

Não importa se você está apenas começando sua jornada no Kubernetes ou se é um usuário avançado que já usa o Kubernetes em produção há algum tempo, o NGINX oferece um conjunto abrangente de ferramentas e blocos de construção para atender às suas necessidades e melhorar sua postura de segurança.

Comece solicitando sua avaliação gratuita de 30 dias do NGINX Ingress Controller com NGINX App Protect WAF e DoS e baixe o NGINX Service Mesh sempre gratuito.


"Esta postagem do blog pode fazer referência a produtos que não estão mais disponíveis e/ou não têm mais suporte. Para obter as informações mais atualizadas sobre os produtos e soluções F5 NGINX disponíveis, explore nossa família de produtos NGINX . O NGINX agora faz parte do F5. Todos os links anteriores do NGINX.com redirecionarão para conteúdo semelhante do NGINX no F5.com."