A sofisticação e o número de ataques cibernéticos 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 e pressupõem que os usuários são confiáveis (e que a comunicação entre eles é segura) quando estão dentro dos limites protegidos do ambiente. Nos atuais ambientes distribuídos, o conceito de uma zona segura dentro do perímetro deixou de existir – as comunicações originadas de “dentro” do ambiente podem ser tão perigosas quanto as ameaças externas.
Neste blog, exploramos os benefícios da adoção de um modelo de Confiança Zero para proteger sua infraestrutura Kubernetes e como o NGINX pode ajudar a melhorar sua postura de segurança.
O que é Zero Trust?
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 parecer estar no local, remotamente ou na nuvem.
Para implementar os três princípios fundamentais do Zero Trust — nunca confiar, sempre verificar e monitorar continuamente —, todos os usuários, serviços, aplicativos e dispositivos devem apresentar continuamente provas de autenticação e autorização. Privilégios com prazo determinado são concedidos com base em políticas de acesso dinâmicas e no princípio do menor privilégio.
Todas as comunicações são criptografadas e encaminhadas por meio de um ponto de decisão/aplicação de políticas (PDP/PEP), que autentica todas as partes e concede privilégios com base em políticas de acesso dinâmicas. Além disso, há recursos de auditoria, monitoramento, geração de relatórios e automação para analisar, avaliar e mitigar riscos de segurança.
Como o Zero Trust melhora sua postura de segurança
A abordagem Zero Trust melhora sua postura de segurança de várias maneiras:
- Bloqueia automaticamente atividades não autorizadas
- Impõe controles de acesso para reduzir a superfície de ataque exposta
- Detecta anomalias comportamentais e indicadores de comprometimento
- Define políticas de privilégio mínimo em tempo real que limitam o tempo de acesso
- Autentica e valida continuamente a identidade para bloquear ataques em andamento
A abordagem Zero Trust é especialmente importante para aplicativos modernos nativos da nuvem executados em um ambiente Kubernetes. Aplicativos e serviços distribuídos, portáteis e com baixo acoplamento são conteinerizados e executados em ambientes híbridos e multinuvem, nos quais 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, da criptografia de ponta a ponta e do monitoramento.
Como você pode implementar a segurança Zero Trust
Para atender aos princípios de Confiança Zero, seu ambiente Kubernetes deve oferecer recursos essenciais de segurança, como autenticação, autorização, controle de acesso, políticas, criptografia, monitoramento e auditoria para usuários, aplicações e serviços.
Uma possível maneira de conseguir isso é incorporar a segurança ao próprio aplicativo. No entanto, isso significa que seus desenvolvedores precisam implementar vários procedimentos de segurança — para estabelecer e verificar a confiança, gerenciar identidades de usuários e certificados, criptografar e descriptografar todas as comunicações e assim por diante. Eles também precisam entender e integrar tecnologias de terceiros, como TLS e logon único (SSO). Tudo isso não só aumenta a complexidade da sua implantação do Kubernetes, que já é complexa, como também desvia a atenção dos desenvolvedores daquilo em que eles precisam (e querem!) se concentrar: otimizar as funcionalidades de negócios do aplicativo.
Não entre em pânico — há uma maneira melhor: transfira a segurança e outros requisitos não funcionais para sua infraestrutura do Kubernetes! As ferramentas de conectividade para clusters do Kubernetes, como controladores Ingress e malhas de serviço, podem fornecer PDP e PEP para toda a comunicação entre seus aplicativos e serviços — seja ela iniciada por usuários, outros aplicativos ou serviços. Assim, você pode se concentrar na experiência e nas funcionalidades essenciais do negócio e, ao mesmo tempo, entregar aplicativos com mais rapidez e facilidade.
Como o F5 NGINX pode ajudar
Como ilustra o diagrama a seguir, a solução NGINX para conectividade segura do Kubernetes inclui todos os componentes e as ferramentas independentes de infraestrutura de que você precisa 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. Baseada no plano de dados mais popular do mundo, a solução combina:
- NGINX Ingress Controller como o controlador de Ingress para Kubernetes e um PDP/PEP que se integra a provedores de identidade e SSO de terceiros. Baseado no NGINX Plus, o NGINX Ingress Controller gerencia conectividade avançada, monitoramento e visibilidade, autenticação e SSO, além de atuar como um gateway de API.
- NGINX Service Mesh como uma malha de serviços leve, pronta para uso e fácil de usar para desenvolvedores, protege a conectividade dos serviços no cluster do Kubernetes. O sidecar de nível empresarial, que atua como PDP/PEP e é executado junto a cada serviço do Kubernetes, é baseado no NGINX Plus.
- NGINX App Protect para proteção abrangente de aplicações e APIs modernas, desenvolvido com base nas tecnologias de segurança líderes de mercado da F5. Ele utiliza uma abordagem modular para oferecer flexibilidade nos cenários de implantação e otimizar a utilização de recursos:
- NGINX App Protect WAF – Um WAF robusto e leve que oferece proteção contra as 10 principais vulnerabilidades da OWASP e garante conformidade com o PCI DDS
- NGINX App Protect DoS – Detecção e mitigação comportamental de DoS com proteção consistente e adaptável em diferentes nuvens e arquiteturas
A solução NGINX permite que você:
- Integre controles de segurança robustos em ambientes distribuídos sem reduzir a velocidade das entregas nem prejudicar o desempenho
- Bloqueie automaticamente ataques em andamento por meio de autenticação contínua, validação de identidade e detecção de anomalias comportamentais
- Implemente políticas de privilégio mínimo em tempo real, controle de acesso granular, criptografia de ponta a ponta e governança entre várias equipes
- Entregue aplicativos com segurança, do código ao cliente, com um WAF integrado e robusto e proteção contra DoS no nível do aplicativo
- Avalie e aprimore continuamente a postura de segurança do seu ambiente Kubernetes com métricas granulares históricas e em tempo real
- Simplifique a implantação e o gerenciamento de comunicações seguras entre usuários e serviços e entre serviços por meio da consolidação de tecnologias
Implemente uma segurança Zero Trust abrangente com o NGINX
À medida que as organizações crescem, torna-se essencial transferir da camada de aplicação os requisitos que não são específicos da funcionalidade de um aplicativo, como os recursos de segurança Zero Trust. Como explicamos acima, isso livra os desenvolvedores da tarefa de criar, manter e replicar a lógica de segurança em seus aplicativos; em vez disso, eles podem aproveitar facilmente as tecnologias de segurança no nível da plataforma. O NGINX oferece aplicação centralizada de políticas de segurança para 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 aplicações 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 da sua aplicação.
Vamos explorar em detalhes como a solução NGINX inclui os recursos necessários para implementar uma segurança Zero Trust abrangente em suas implantações do Kubernetes.
Autenticação e autorização
Para atender a esse princípio, a solução NGINX oferece 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 os serviços (assim como os usuários de aplicações recebem identificação na forma de certificados), permitindo que eles sejam autenticados e autorizados a executar ações em todo o cluster do Kubernetes. Além de gerenciar identidades de cargas de trabalho, a solução NGINX automatiza o gerenciamento de certificados com integrações nativas com a Infraestrutura de Chaves Públicas (PKI) e autoridades certificadoras.
Como o NGINX Ingress Controller já inspeciona todas as solicitações que entram no cluster e as encaminha aos serviços apropriados, ele é o local mais eficiente para centralizar a autenticação e a autorização de usuários, bem como para autenticar serviços em alguns cenários.
Para mais detalhes, leia Implementação da autenticação OpenID Connect para Kubernetes com Okta e NGINX Ingress Controller em nosso blog.
Criptografia e integridade de dados
Se a arquitetura do seu aplicativo não envolver comunicação entre serviços dentro do cluster do Kubernetes, o NGINX Ingress Controller poderá ser suficiente para atender às suas necessidades de integridade de dados. Há duas opções básicas:
- Com o TLS Passthrough, o NGINX Ingress Controller encaminha conexões criptografadas por SSL/TLS diretamente para o serviço, sem descriptografá-las nem exigir acesso aos certificados ou às 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 no lado do serviço para criptografar uma nova conexão com seus serviços do Kubernetes (servidores de backend e upstream).
Se a sua arquitetura envolve comunicação entre serviços dentro do cluster, para garantir a integridade dos dados, você precisa tanto do NGINX Ingress Controller quanto do NGINX Service Mesh. O NGINX Service Mesh garante que apenas serviços específicos possam se comunicar entre si e usa mTLS para autenticá-los e criptografar as comunicações entre eles. Você pode implementar mTLS de forma automatizada, sem intervenção manual, com o NGINX Service Mesh, o que significa que os desenvolvedores não precisam adaptar seus aplicativos para usar certificados nem sequer saber que a autenticação mútua está ocorrendo.
Para saber mais sobre como proteger a comunicação em um cluster do Kubernetes, leia A arquitetura mTLS no NGINX Service Mesh em nosso blog.
Controle de acesso e política de acesso
A solução de conectividade do NGINX para Kubernetes é compatível com RBAC, facilitando o alinhamento às políticas de segurança da sua organização. Com o RBAC implementado, os usuários têm acesso controlado às funcionalidades necessárias para realizar seu trabalho, sem precisar abrir um chamado de TI e esperar pelo atendimento. Sem o RBAC, os usuários podem obter permissões desnecessárias ou às quais não têm direito, o que pode gerar vulnerabilidades caso essas permissões sejam usadas indevidamente.
Ao configurar o RBAC com o NGINX Ingress Controller, você pode controlar o acesso de diversas pessoas e equipes, alinhando as permissões às diferentes funções no ambiente de desenvolvimento e entrega de aplicações da sua organização. Sua ferramenta de gerenciamento de acesso granular permite o autoatendimento e a governança entre várias equipes.
Para saber como aproveitar o RBAC com o NGINX Ingress Controller, assista ao nosso webinar na DevNetwork, Implantações avançadas do Kubernetes com o NGINX Ingress Controller. A partir de 13:50, nossos especialistas explicam como aproveitar o RBAC e a alocação de recursos para garantir segurança, autoatendimento e multilocação.
Observabilidade
Provavelmente, você já usa ferramentas de monitoramento em sua implantação do Kubernetes e não precisa de mais uma. Para oferecer uma visão completa do que está acontecendo dentro dos seus clusters, instrumentamos a API do NGINX Plus para facilitar a exportação de métricas para qualquer ferramenta de terceiros compatível com JSON e fornecer integrações prontas com ferramentas populares, como OpenTelemetry e Grafana e Prometheus. Você obtém insights direcionados sobre a conectividade dos aplicativos, com rastreamentos detalhados que permitem entender como as solicitações são processadas de ponta a ponta: o NGINX Ingress Controller oferece visibilidade da conectividade entre seu cluster e clientes externos, enquanto o NGINX Service Mesh abrange a conectividade entre aplicativos e serviços conteinerizados e baseados em microsserviços dentro do cluster.
Proteção contra WAF e DoS
O design modular do NGINX App Protect permite implantar uma ou ambas as proteções contra WAF e DoS nas mesmas instâncias ou em instâncias diferentes, dependendo das suas necessidades. Por exemplo, você pode optar por implantá-las com o NGINX Ingress Controller na borda do cluster, o que é ideal para oferecer proteção granular e consistente em todo o cluster. Se, em vez disso, você precisar de políticas específicas para vários aplicativos em um cluster, poderá implantar a proteção WAF e/ou contra DoS no nível do serviço ou do pod.
Para saber mais sobre a implantação da proteção contra WAF e DoS, leia Antecipando as ferramentas de segurança para ter aplicativos mais seguros em nosso blog.
Comece a usar a solução de segurança Zero Trust da NGINX para Kubernetes
Esteja você no início da sua jornada com o Kubernetes ou seja um usuário avançado que já executa o Kubernetes em produção há algum tempo, a NGINX oferece um conjunto abrangente de ferramentas e componentes básicos para atender às suas necessidades e aprimorar 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 faça o download do NGINX Service Mesh, que é sempre gratuito.
Sobre o autor

Publicações relacionadas no blog

Como o F5 NGINX One aprimora o gerenciamento e a observabilidade
Descubra como o F5 NGINX One aprimora o gerenciamento e a observabilidade de ambientes híbridos e multicloud ao oferecer um console web centralizado baseado em SaaS, com insights em tempo real, conformidade automatizada e gerenciamento simplificado de configurações.

Do OpenAPI ao NGINX como gateway de API usando uma API declarativa
Descubra como transformar uma definição de esquema OpenAPI em uma configuração NGINX totalmente funcional, operando como um API Gateway com a segurança de um Web Application Firewall e um Portal do Desenvolvedor, usando uma abordagem declarativa de API.

Como gerenciar picos repentinos de tráfego e sobrecarga do servidor
Picos de tráfego e sobrecarga de servidores são preocupações sérias para varejistas online em qualquer época, mas especialmente durante a “Cyber Season” de compras de fim de ano. Detalhamos como você pode aproveitar as soluções de entrega de aplicações de nível de produção da NGINX para se preparar para aumentos repentinos de tráfego.

Distribuição segura de chaves privadas SSL com o NGINX
Descrevemos três maneiras progressivamente mais seguras de proteger chaves privadas SSL ao configurar o NGINX para processar tráfego HTTPS: permitir acesso de leitura apenas ao usuário root, criptografar as chaves com senhas armazenadas separadamente e distribuir as senhas a partir de um repositório central.
Agrupando solicitações de API em lotes com NGINX Plus e o módulo JavaScript do NGINX
O módulo JavaScript do NGINX lançado com o NGINX Plus R15 oferece suporte a subsolicitações, possibilitando uma classe totalmente nova de casos de uso para o NGINX Plus. Este exemplo completo também usa a API do NGINX Plus e os módulos de chave-valor para converter solicitações de API dos clientes em solicitações separadas para as APIs dos microsserviços que compõem um aplicativo.
Como superar o esgotamento de portas efêmeras no NGINX e no NGINX Plus
Confira dicas para evitar o esgotamento de portas efêmeras com ajustes no kernel do Linux, conexões keepalive e conexões vinculadas dinamicamente a endereços IP locais.