Recomendações para criar uma estratégia de segmentação

Aplica-se à recomendação de lista de verificação de Segurança do Well-Architected Framework:

SE:04 Crie segmentação intencional e perímetros em seu design de arquitetura e o volume da carga de trabalho na plataforma. A estratégia de segmentação deve incluir redes, funções e responsabilidades, identidades de carga de trabalho e organização de recursos.

Um segmento é uma seção lógica da sua solução que precisa ser protegida como uma unidade. Uma estratégia de segmentação define como uma unidade deve ser separada de outras unidades com seu próprio conjunto de requisitos e medidas de segurança.

Este guia descreve as recomendações para criar uma estratégia de segmentação unificada. Usando perímetros e limites de isolamento em cargas de trabalho, você pode criar uma abordagem de segurança que funcione para você.

Definições 

Termo Definição
Contenção Uma técnica para conter o raio de explosão se um invasor obtiver acesso a um segmento.
Acesso de privilégios mínimos Um princípio Confiança Zero que visa minimizar um conjunto de permissões para concluir uma função de trabalho.
Perímetro O limite de confiança em torno de um segmento.
Organização do recurso Uma estratégia para agrupar recursos relacionados por fluxos em um segmento.
Função Um conjunto de permissões necessárias para concluir uma função de trabalho.
Segment Uma unidade lógica isolada de outras entidades e protegida por um conjunto de medidas de segurança.

Principais estratégias de design

O conceito de segmentação é comumente usado para redes. No entanto, o mesmo princípio subjacente pode ser usado em uma solução, incluindo segmentação de recursos para fins de gerenciamento e controle de acesso.

A segmentação ajuda você a criar uma abordagem de segurança que aplica a defesa detalhadamente com base nos princípios do modelo de Confiança Zero. Verifique se um invasor que viola um segmento de rede não pode obter acesso a outro segmentando cargas de trabalho com controles de identidade diferentes. Em um sistema seguro, atributos de identidade e rede bloqueiam o acesso não autorizado e ocultam os ativos de serem expostos. Aqui estão alguns exemplos de segmentos:

  • Assinaturas que isolam cargas de trabalho de uma organização
  • Grupos de recursos que isolam ativos de carga de trabalho
  • Ambientes de implantação que isolam a implantação por estágios
  • Equipes e funções que isolam funções de trabalho relacionadas ao desenvolvimento e gerenciamento de cargas de trabalho
  • Camadas de aplicativo que isolam por utilitário de carga de trabalho
  • Microsserviços que isolam um serviço de outro

Considere esses principais elementos de segmentação para garantir que você esteja criando uma estratégia abrangente de defesa detalhada:

  • O limite ou perímetro é a borda de entrada de um segmento em que você aplica controles de segurança. Os controles de perímetro devem bloquear o acesso ao segmento, a menos que seja explicitamente permitido. O objetivo é impedir que um invasor quebre o perímetro e obtenha o controle do sistema. Por exemplo, uma camada de aplicativo pode aceitar o token de acesso de um usuário final ao processar uma solicitação. Mas a camada de dados pode exigir um token de acesso diferente que tenha uma permissão específica, que somente a camada de aplicativo pode solicitar.

  • A contenção é a borda de saída de um segmento que impede a movimentação lateral no sistema. O objetivo da contenção é minimizar o efeito de uma violação. Por exemplo, uma rede virtual do Azure pode ser usada para configurar grupos de segurança de rede e roteamento para permitir apenas padrões de tráfego esperados, evitando o tráfego para segmentos de rede arbitrários.

  • Isolamento é a prática de agrupar entidades com garantias semelhantes para protegê-las com um limite. A meta é a facilidade de gerenciamento e a contenção de um ataque dentro de um ambiente. Por exemplo, você pode agrupar os recursos relacionados a uma carga de trabalho específica em uma assinatura do Azure e aplicar o controle de acesso para que apenas equipes de carga de trabalho específicas possam acessar a assinatura.

É importante observar a distinção entre perímetros e isolamento. Perimeter refere-se aos pontos de localização que devem ser verificados. Isolamento é sobre agrupamento. Contenham ativamente um ataque usando esses conceitos juntos.

Isolamento não significa criar silos na organização. Uma estratégia de segmentação unificada fornece alinhamento entre as equipes técnicas e define linhas claras de responsabilidade. Clarity reduz o risco de erros humanos e falhas de automação que podem levar a vulnerabilidades de segurança, tempo de inatividade operacional ou ambos. Suponha que uma violação de segurança seja detectada em um componente de um sistema empresarial complexo. É importante que todos entendam quem é responsável por esse recurso para que a pessoa apropriada seja incluída na equipe de triagem. A organização e os stakeholders podem identificar rapidamente como responder a diferentes tipos de incidentes criando e documentando uma boa estratégia de segmentação.

Compensação: a segmentação introduz complexidade porque há sobrecarga no gerenciamento. Há também uma compensação no custo. Por exemplo, mais recursos são provisionados quando os ambientes de implantação executados lado a lado são segmentados.

Risco: a micro segmentação além de um limite razoável perde o benefício do isolamento. Quando você cria muitos segmentos, fica difícil identificar pontos de comunicação ou permitir caminhos de comunicação válidos dentro do segmento.

Identidade como o perímetro

Várias identidades, como pessoas, componentes de software ou dispositivos, acessam segmentos de carga de trabalho. A identidade é um perímetro que deve ser a linha de defesa primária para autenticar e autorizar o acesso entre limites de isolamento, independentemente de onde a solicitação de acesso se origina. Use a identidade como um perímetro para:

  • Atribuir acesso por função. As identidades só precisam de acesso aos segmentos necessários para realizar seu trabalho. Minimize o acesso anônimo compreendendo as funções e responsabilidades da identidade solicitante para que você conheça a entidade que está solicitando acesso a um segmento e para que finalidade.

    Uma identidade pode ter escopos de acesso diferentes em segmentos diferentes. Considere uma configuração de ambiente típica, com segmentos separados para cada estágio. As identidades associadas à função de desenvolvedor têm acesso de leitura/gravação ao ambiente de desenvolvimento. À medida que a implantação passa para o preparo, essas permissões são restringidas. Quando a carga de trabalho é promovida à produção, o escopo para desenvolvedores é reduzido para acesso somente leitura.

  • Considere as identidades de aplicativo e gerenciamento separadamente. Na maioria das soluções, os usuários têm um nível de acesso diferente dos desenvolvedores ou operadores. Em alguns aplicativos, você pode usar diferentes sistemas de identidade ou diretórios para cada tipo de identidade. Considere usar escopos de acesso e criar funções separadas para cada identidade.

  • Atribuir acesso de privilégios mínimos. Se a identidade tiver acesso permitido, determine o nível de acesso. Comece com o privilégio mínimo para cada segmento e amplie esse escopo somente quando necessário.

    Aplicando o privilégio mínimo, você limita os efeitos negativos se a identidade for comprometida. Se o acesso for limitado por tempo, a superfície de ataque será reduzida ainda mais. O acesso limitado por tempo é especialmente aplicável a contas críticas, como administradores ou componentes de software que têm uma identidade comprometida.

Compensação: o desempenho da carga de trabalho pode ser afetado por perímetros de identidade. Verificar cada solicitação requer explicitamente ciclos de computação extras e E/S de rede extra.

O RBAC (controle de acesso baseado em função) também resulta em sobrecarga de gerenciamento. Manter o controle de identidades e seus escopos de acesso pode se tornar complexo em atribuições de função. A solução alternativa é atribuir funções a grupos de segurança em vez de identidades individuais.

Risco: as configurações de identidade podem ser complexas. Configurações incorretas podem afetar a confiabilidade da carga de trabalho. Por exemplo, suponha que haja uma atribuição de função configurada incorretamente que tenha acesso negado a um banco de dados. As solicitações começam a falhar, eventualmente causando problemas de confiabilidade que, de outra forma, não podem ser detectados até o runtime.

Para obter informações sobre controles de identidade, consulte Gerenciamento de identidade e acesso.

Ao contrário dos controles de acesso à rede, a identidade valida o controle de acesso no momento do acesso. É altamente recomendável realizar a revisão de acesso regular e exigir um fluxo de trabalho de aprovação para obter privilégios para contas de impacto crítico. Por exemplo, consulte Padrões de segmentação de identidade.

Rede como perímetro

Os perímetros de identidade são independentes de rede enquanto os perímetros de rede aumentam a identidade, mas nunca a substituem. Os perímetros de rede são estabelecidos para controlar o raio de explosão, bloquear o acesso inesperado, proibido e não seguro e ofuscar os recursos de carga de trabalho.

Embora o foco principal do perímetro de identidade seja o privilégio mínimo, você deve assumir que haverá uma violação ao projetar o perímetro de rede.

Crie perímetros definidos pelo software em seu volume de rede usando os serviços e recursos do Azure. Quando uma carga de trabalho (ou partes de uma determinada carga de trabalho) é colocada em segmentos separados, você controla o tráfego de ou para esses segmentos para proteger caminhos de comunicação. Se um segmento estiver comprometido, ele será contido e impedido de se espalhar lateralmente pelo restante da rede.

Pense como um invasor para obter uma base dentro da carga de trabalho e estabelecer controles para minimizar a expansão adicional. Os controles devem detectar, conter e impedir que os invasores obtenham acesso a toda a carga de trabalho. Aqui estão alguns exemplos de controles de rede como um perímetro:

  • Defina seu perímetro de borda entre redes públicas e a rede em que sua carga de trabalho é colocada. Restrinja a linha de visão das redes públicas à sua rede o máximo possível.
  • Implemente DMZs (zonas desmilitarizadas) na frente do aplicativo com controles adequados por meio de firewalls.
  • Crie uma micro segmentação em sua rede privada agrupando partes da carga de trabalho em segmentos separados. Estabeleça caminhos de comunicação seguros entre eles.
  • Crie limites com base na intenção. Por exemplo, segmente redes funcionais de carga de trabalho de redes operacionais.

Para obter padrões comuns relacionados à segmentação de rede, consulte Padrões de segmentação de rede.

Compensação: os controles de segurança de rede geralmente são caros porque estão incluídos nos SKUs premium. A configuração de regras em firewalls geralmente resulta em uma complexidade esmagadora que exige exceções amplas.

A conectividade privada altera o design arquitetônico, geralmente adicionando mais componentes, como jump boxes para acesso privado a nós de computação.

Como os perímetros de rede são baseados em pontos de controle ou saltos, na rede, cada salto pode ser um ponto potencial de falha. Esses pontos podem ter um efeito sobre a confiabilidade do sistema.

Risco: os controles de rede são baseados em regras e há uma chance significativa de configuração incorreta, o que é uma preocupação de confiabilidade.

Para obter informações sobre controles de rede, consulte Rede e conectividade.

Funções e responsabilidades

A segmentação que impede a confusão e os riscos de segurança é obtida definindo claramente linhas de responsabilidade dentro de uma equipe de carga de trabalho.

Documente e compartilhe funções e funções para criar consistência e facilitar a comunicação. Designe grupos ou funções individuais responsáveis pelas principais funções. Considere as funções internas no Azure antes de criar funções personalizadas para objetos.

Considere a consistência ao acomodar vários modelos organizacionais ao atribuir permissões para um segmento. Esses modelos podem variar de um único grupo de TI centralizado até equipes independentes de TI e DevOps.

Risco: a associação de grupos pode mudar ao longo do tempo à medida que os funcionários ingressarem ou saírem de equipes ou mudarem de função. O gerenciamento de funções entre segmentos pode resultar em sobrecarga de gerenciamento.

Organização do recurso

A segmentação permite isolar recursos de carga de trabalho de outras partes da organização ou até mesmo dentro da equipe. Os constructos do Azure, como grupos de gerenciamento, assinaturas, ambientes e grupos de recursos, são maneiras de organizar seus recursos que promovem a segmentação. Aqui estão alguns exemplos de isolamento no nível do recurso:

  • A persistência poliglota envolve uma combinação de tecnologias de armazenamento de dados em vez de um único sistema de banco de dados para dar suporte à segmentação. Use persistência poliglota para separação por vários modelos de dados, separação de funcionalidades, como armazenamento e análise de dados, ou para separar por padrões de acesso.
  • Aloque um serviço para cada servidor ao organizar sua computação. Esse nível de isolamento minimiza a complexidade e pode ajudar a conter um ataque.
  • O Azure fornece isolamento interno para alguns serviços, por exemplo, separação da computação do armazenamento. Para outros exemplos, consulte Isolamento na nuvem pública do Azure.

Compensação: o isolamento de recursos pode resultar em um aumento no TCO (custo total de propriedade). Para armazenamentos de dados, pode haver complexidade e coordenação adicionais durante a recuperação de desastres.

Facilitação do Azure

Determinados serviços do Azure estão disponíveis para uso na implementação de uma estratégia de segmentação, conforme descrito nas seções a seguir.

Identidade

O RBAC do Azure dá suporte à segmentação isolando o acesso por função de trabalho. Somente determinadas ações são permitidas para determinadas funções e escopos. Por exemplo, as funções de trabalho que só precisam observar o sistema podem receber permissões de leitor versus permissões de contribuidor que permitem que a identidade gerencie recursos.

Para obter mais informações, consulte Práticas recomendadas para RBAC.

Rede

Diagrama que mostra as opções de rede para segmentação.

Redes virtuais: as redes virtuais fornecem contenção de recursos no nível da rede sem adicionar tráfego entre duas redes virtuais. As redes virtuais são criadas em espaços de endereço privados dentro de uma assinatura

NSG (grupos de segurança de rede): um mecanismo de controle de acesso para controlar o tráfego entre recursos em redes virtuais e redes externas, como a Internet. Implemente UDR (rotas definidas pelo usuário) para controlar o próximo salto para o tráfego. Os NSGs podem levar sua estratégia de segmentação a um nível granular criando perímetros para uma sub-rede, uma VM (máquina virtual) ou um grupo de VMs. Para obter informações sobre possíveis operações com sub-redes no Azure, consulte Sub-redes.

ASGs (grupos de segurança de aplicativo): os ASGs permitem agrupar um conjunto de VMs em uma marca de aplicativo e definir regras de tráfego que são aplicadas a cada uma das VMs subjacentes.

Firewall do Azure: um serviço nativo de nuvem, que pode ser implantado em sua rede virtual ou em implantações do hub WAN Virtual do Azure. Use Firewall do Azure para filtrar o tráfego que flui entre os recursos de nuvem, a Internet e os recursos locais. Use Firewall do Azure ou Firewall do Azure Manager para criar regras ou políticas que permitem ou negam o tráfego usando controles da camada 3 para a camada 7. Filtre o tráfego da Internet usando Firewall do Azure e terceiros direcionando o tráfego por meio de provedores de segurança de terceiros para filtragem avançada e proteção do usuário. O Azure dá suporte à implantação de dispositivo virtual de rede, o que ajuda na segmentação de firewalls de terceiros.

Exemplo

Aqui estão alguns padrões comuns para segmentar uma carga de trabalho no Azure. Escolha um padrão com base em suas necessidades.

Este exemplo se baseia no ambiente de TI (Tecnologia da Informação) estabelecido na linha de base de segurança (SE:01). O diagrama abaixo mostra a segmentação no nível do grupo de gerenciamento feito por uma organização.

Diagrama que mostra um exemplo da estratégia de segmentação de uma organização para várias cargas de trabalho.

Padrões de segmentação de identidade

Padrão 1: agrupamento baseado em cargo

Uma maneira de organizar grupos de segurança é por cargos como engenheiro de software, administrador de banco de dados, engenheiro de confiabilidade do site, engenheiro de garantia de qualidade ou analista de segurança. Essa abordagem envolve a criação de grupos de segurança para sua equipe de carga de trabalho com base em suas funções, sem considerar o trabalho que precisa ser realizado. Conceda aos grupos de segurança permissões RBAC, em pé ou just-in-time (JIT), de acordo com suas responsabilidades na carga de trabalho. Atribua princípios humanos e de serviço a grupos de segurança com base no acesso necessário.

A associação é altamente visível no nível de atribuição de função, facilitando a visualização de qual função tem acesso. Cada pessoa geralmente é membro de apenas um grupo de segurança, o que facilita a integração e a remoção. No entanto, a menos que os cargos se sobreponham perfeitamente às responsabilidades, o agrupamento baseado em título não é ideal para implementação de privilégios mínimos. Você pode acabar combinando a implementação com o agrupamento baseado em função.

Padrão 2: agrupamento baseado em função

O agrupamento baseado em função é um método de organização de grupo de segurança que reflete um trabalho discreto que precisa ser realizado, não levando em conta sua estrutura de equipe. Com esse padrão, você concede aos grupos de segurança permissões RBAC, em pé ou JIT conforme necessário, de acordo com a função necessária na carga de trabalho.

Atribua princípios humanos e de serviço a grupos de segurança com base no acesso necessário. Sempre que possível, use grupos homogêneos existentes como membros dos grupos baseados em função, como esses grupos do padrão 1. Exemplos de grupos baseados em função incluem:

  • Operadores de banco de dados de produção
  • Operadores de banco de dados de pré-produção
  • Operadores de rotação de certificado de produção
  • Operadores de rotação de certificado de pré-produção
  • Produção ao vivo/triagem
  • Pré-produção de todo o acesso

Essa abordagem mantém o acesso mais rigoroso de privilégios mínimos e fornece grupos de segurança em que o escopo é evidente, o que facilita a auditoria de associações relativas às tarefas de trabalho executadas. Geralmente, existe uma função interna do Azure para corresponder a essa função de trabalho.

No entanto, a associação é abstraida pelo menos uma camada, forçando você a ir para o provedor de identidade para entender quem está no grupo ao olhar da perspectiva do recurso. Além disso, uma pessoa precisa ter várias associações mantidas para cobertura completa. A matriz de grupos de segurança sobrepostos pode ser complexa.

O padrão 2 é recomendado para tornar os padrões de acesso o foco, não o gráfico da organização. Às vezes, os gráficos da organização e as funções de membro mudam. Capturar a identidade e o gerenciamento de acesso da carga de trabalho de uma perspectiva funcional permite abstrair sua organização de equipe do gerenciamento seguro da carga de trabalho.

Padrões de segmentação de rede

Padrão 1: segmentação dentro de uma carga de trabalho (limites suaves)

Diagrama que mostra uma única rede virtual.

Nesse padrão, a carga de trabalho é colocada em uma única rede virtual usando sub-redes para marcar limites. A segmentação é obtida usando duas sub-redes, uma para banco de dados e outra para cargas de trabalho da Web. Você deve configurar NSGs que permitem que a Sub-rede 1 se comunique apenas com a Sub-rede 2 e a Sub-rede 2 para se comunicar apenas com a Internet. Esse padrão fornece controle de nível de camada 3.

Padrão 2: segmentação dentro de uma carga de trabalho

Diagrama que mostra várias redes virtuais.

Esse padrão é um exemplo de segmentação no nível da plataforma. Os omponentes da carga de trabalho csão distribuídos entre várias redes sem emparelhamento entre elas. Toda a comunicação é roteada por meio de um intermediário que serve como um ponto de acesso público. A equipe de carga de trabalho possui todas as redes.

O Padrão 2 fornece contenção, mas tem a complexidade adicional do gerenciamento e do dimensionamento de rede virtual. A comunicação entre as duas redes ocorre pela Internet pública, o que pode ser um risco. Também há latência com conexões públicas. No entanto, as duas redes podem ser emparelhadas, quebrando a segmentação conectando-as para criar um segmento maior. O emparelhamento deve ser feito quando nenhum outro ponto de extremidade público é necessário.

Considerações Padrão 1 Padrão 2
Conectividade e roteamento: como cada segmento se comunica O roteamento do sistema fornece conectividade padrão com componentes de carga de trabalho. Nenhum componente externo pode se comunicar com a carga de trabalho. Dentro da rede virtual, o mesmo que o padrão 1.
Entre redes, o tráfego passa pela Internet pública. Não há conectividade direta entre as redes.
Filtragem de tráfego no nível da rede O tráfego entre os segmentos é permitido por padrão. Use NSGs ou ASGs para filtrar o tráfego. Dentro da rede virtual, o mesmo que o padrão 1.
Entre as redes, você pode filtrar o tráfego de entrada e saída por meio de um firewall.
Pontos de extremidade públicos não intencionais abertos As NICs (placas de interface de rede) não recebem IPs públicos. As redes virtuais não são expostas ao gerenciamento de API da Internet. O mesmo que o padrão 1. O ponto de extremidade público pretendido é aberto em uma rede virtual, que pode ser configurada incorretamente para aceitar mais tráfego.

Organização do recurso

Organizar recursos do Azure com base na responsabilidade de propriedade

Diagrama de um acervo do Azure que contém várias cargas de trabalho.

Considere um acervo do Azure que contém várias cargas de trabalho e componentes de serviço compartilhado, como redes virtuais de hub, firewalls, serviços de identidade e serviços de segurança como o Microsoft Sentinel. Os componentes em toda a propriedade devem ser agrupados com base em suas áreas funcionais, cargas de trabalho e propriedade. Por exemplo, os recursos de rede compartilhados devem ser agrupados em uma única assinatura e gerenciados por uma equipe de rede. Os componentes dedicados a cargas de trabalho individuais devem estar em seu próprio segmento e podem ser divididos ainda mais com base em camadas de aplicativo ou outros princípios organizacionais.

Conceda acesso para gerenciar recursos em segmentos individuais criando atribuições de função RBAC. Por exemplo, a equipe de rede de nuvem pode receber acesso administrativo à assinatura que contém seus recursos, mas não a assinaturas de carga de trabalho individuais.

Uma boa estratégia de segmentação possibilita identificar facilmente os proprietários de cada segmento. Considere usar marcas de recurso do Azure para anotar grupos de recursos ou assinaturas com a equipe de proprietário.

Configurar e examinar o controle de acesso

Conceda acesso apropriado com base na necessidade definindo claramente segmentos para seus recursos.

Considere o princípio de privilégio mínimo ao definir políticas de controle de acesso. É importante distinguir entre operações do painel de controle (gerenciamento do próprio recurso) e operações do plano de dados (acesso aos dados armazenados pelo recurso). Por exemplo, suponha que você tenha uma carga de trabalho que contenha um banco de dados com informações confidenciais sobre funcionários. Você pode conceder acesso de gerenciamento a alguns usuários que precisam definir configurações como backups de banco de dados ou usuários que monitoram o desempenho do servidor de banco de dados. No entanto, esses usuários não devem ser capazes de consultar os dados confidenciais armazenados no banco de dados. Selecione as permissões que concedem o escopo mínimo necessário para que os usuários executem suas tarefas. Revise regularmente as atribuições de função para cada segmento e remova o acesso que não é mais necessário.

Observação

Algumas funções altamente privilegiadas, como a função de proprietário no RBAC, dão aos usuários a capacidade de conceder a outros usuários acesso a um recurso. Limite quantos usuários ou grupos recebem a função de proprietário e examine regularmente os logs de auditoria para garantir que eles executem apenas operações válidas.

Lista de verificação de segurança

Consulte o conjunto completo de recomendações.