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.
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.
O Zero Trust melhora sua postura de segurança de várias maneiras:
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.
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.
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:
A solução NGINX permite que você:
À 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.
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.
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:
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.
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.
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.
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.
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."